Estándares de visión artificial ¿Intercambiabilidad o compatibilidad?

1 Estándares de visión artificial

La llegada de los estándares de visión artificial ha supuesto el inicio de una colaboración inédita entre los agentes del sector. Fruto de esta colaboración han surgido en los últimos diez años interfaces genéricas para el uso de cámaras industriales, como GenICam, GigE Vision o USB3 Vision, que utilizan nombres de función unificados y paquetes de prestaciones predefinidos. De esta forma se simplifica y acelera la fase de integración de las cámaras en aplicaciones de visión artificial, lo cual redunda en una reducción de los costes de desarrollo. La intercambiabilidad y la funcionalidad "plug&play" universal siempre se destacan, en este contexto, como características esenciales.

Pero, ¿son estos los factores realmente decisivos para desarrollar una aplicación? ¿La solución genérica es siempre la mejor opción para cualquier tipo de aplicación? La respuesta es "no", porque depende de cada caso.

Para desarrollar con éxito una aplicación, la compatibilidad con distintas marcas y fabricantes puede ser una ventaja importante, pero esta característica depende de una serie de requisitos y condiciones que surgen durante el diseño de la aplicación y que se tienen que cumplir obligatoriamente.

Por el contrario, diseñar todos los componentes de visión artificial de acuerdo con las especificaciones de los estándares de visión establecidos es fundamental para que dichos componentes se puedan utilizar en muchas más aplicaciones que antes. El objetivo de los fabricantes es, por tanto, aumentar la compatibilidad de sus productos, algo que sucede de forma prácticamente automática cuando se aplican los protocolos de visión estandarizados.

La estandarización promulgada por las organizaciones AIA (Global Association for Vision Information) y EMVA (European Machine Vision Association) es un paso importante para poner orden en el barullo de interfaces que existe en el mundo de la visión artificial. Estos estándares dejan además a los fabricantes el margen de maniobra suficiente para implementar funcionalidades específicas fuera de los parámetros de la SFNC, a fin de que puedan diferenciar sus ofertas ("quality of implementation"). Cuando se implementan prestaciones específicas de fabricante, cambiar de un fabricante a otro puede requerir una adaptación del software.

En lo que a la interfaz de programación se refiere, las soluciones propietarias ofrecen más confort y facilidad de uso que una interfaz GenICam gracias a la inclusión de funciones de conveniencia que no incorporan los sistemas de visión estandarizados. Los fabricantes de cámaras industriales son perfectamente conscientes de ello y suelen ofrecer interfaces de programación propias, aunque basadas en las interfaces estandarizadas.

Una aplicación que incorpora "estándares propietarios" ¿sigue siendo compatible con todos los fabricantes? ¿O es mejor no arriesgarse y apostar exclusivamente por interfaces estándar?

2 Detalles clave del sistema estandarizado

Para poder cumplir todos los requisitos y objetivos en la realización de una aplicación, deben conocerse y aplicarse en la medida correcta los detalles clave de la solución genérica.

Arquitectura del sistema

Aunque las cámaras actuales de visión artificial estándar "funcionan" con las interfaces GigE Vision o USB3 Vision sin necesidad de un paquete de software específico de fabricante, es necesario mantener e implementar la arquitectura básica del sistema.

En el plano del hardware, este se basa en tecnologías, sistemas de conexión y protocolos de comunicación conocidos para la transferencia de datos (p. ej., USB, Gigabit Ethernet). El software cercano al equipo (controladores y bibliotecas de espacio de usuario) proporciona una API para establecer la comunicación entre el canal de transporte de la cámara y la aplicación del usuario.

Figura 1 – La estandarización de interfaces ofrece diferentes posibilidades de uso de cámaras de visión artificial estándar en las aplicaciones.

Sobre la base de GenICam se ha conseguido una estandarización en diferentes interfaces de la arquitectura del sistema, la cual ha permitido establecer varios puntos de enlace claramente definidos y documentados para la utilización de cámaras de visión artificial estándar.

De N a 1 y de 1 a N

Con GenICam (Generic Interface for Cameras) como canal de comunicación entre la aplicación del usuario y el software del dispositivo, se consigue reducir la gran cantidad de interfaces de programación específicas de fabricante a una interfaz única y universal. GenICam permite abstraer el acceso a todas las funciones de la cámara, independientemente del fabricante y del protocolo de transporte empleado. GenICam es un lenguaje descriptivo que permite acceder a todas las funciones disponibles sin conocerlas. De esta forma, constituye una herramienta idónea para ejecutar aquellas funciones que varían de un modelo a otro o que se pueden ampliar mediante actualizaciones de firmware.

La introducción de protocolos como GigE Vision y USB3 Vision a nivel de transporte obligó también a realizar un cambio de paradigma en los firmware de las cámaras. Las cámaras que incluyen estos protocolos de transporte estandarizados y definidos por los miembros de la AIA se comunican con el software de los dispositivos mediante un lenguaje uniforme. Gracias a esta característica, se rompe la férrea unión entre el firmware de la cámara, el protocolo de transmisión y el software del dispositivo, y la cámara deja de depender del software de un único fabricante.

Una independencia llena de nuevas posibilidades

Las cámaras compatibles con visión artificial estándar se pueden operar ahora con una "generic transportlayer" (GenTL) independiente de fabricante. La GenAPI (Generic Application Programming Interface) permite reconocer y configurar las prestaciones de la cámara mediante el análisis del archivo XML de la cámara conforme al estándar. El archivo describe todas las prestaciones implementadas de la cámara en una sintaxis definida en el módulo GenAPI de la especificación GenICam. Esto incluye los nombres de las funciones, las listas de parámetros, la descripción de las funciones y la información ampliada. El archivo XML incluye incluso los tooltips que aparecen en pantalla para describir las distintas herramientas de la aplicación. De esta forma, la cámara viene prácticamente con su propio manual de configuración.

Figura 2 – La GenAPI transmite direcciones de registro específicas del dispositivo mediante nombres de prestaciones predefinidos.

No importa entonces si se trata de prestaciones estándar definidas en la SFNC (Standard Feature Naming Convention) de GenICam o de prestaciones especificas del fabricante, aunque implementadas conforme al estándar.

Desde el punto de vista técnico, la compatibilidad universal entre el hardware y el software viene definida y "deseada" por el estándar. No obstante, la independencia total respecto del fabricante solo es capaz de proporcionarla al 100 % la cámara. Los GenICam Producer de algunos fabricantes parecen querer sugerir al usuario el tipo de cámara con el que prefieren trabajar, de forma que este no siempre tiene clara la intercambiabilidad.

La independencia abre un sinfín de posibilidades tanto a los fabricantes de cámaras como a los usuarios, entre otras el desacople de versiones de hardware y software. Esto permite lanzar nuevos modelos o nuevo firmware de cámara en mucho menos tiempo, ya que no es necesario adaptar, documentar y publicar el software del host para poder operar la cámara.

También es más fácil y rápido realizar actualizaciones para determinados modelos de cámara, independientemente del software del host y del resto de modelos. Los miembros de la organización EMVA ya están trabajando en una especificación para poder actualizar cámaras de visión artificial con paquetes de actualización específicos de fabricante a través de cualquier software conforme con el estándar. Se prevé que el próximo verano aparezca una especificación adicional para la actualización de módulos de acuerdo con el estándar GenICam.

La independencia conlleva automáticamente una ampliación de la compatibilidad de plataformas. Gracias a los protocolos de transporte estándar como GigE Vision o USB3 Vision, las cámaras pueden utilizarse en cualquier plataforma y sistema operativo para los que exista un software conforme al estándar no limitado por el fabricante y con la capa de transporte correspondiente.

Este tipo de independencia es la base de la "intercambiabilidad".

GenTL no es igual a GenTL

Las GenTL son todo menos iguales. El mero hecho de que tengan una interfaz estandarizada tanto con la cámara como con la aplicación del usuario (ver elementos en blanco en Figura 1) y de que su única finalidad sea la detección y activación de dispositivos, así como el registro de imágenes, no las hace automáticamente compatibles con todas las cámaras de visión artificial.

Una GenTL estandarizada es un complemento muy útil para bibliotecas de procesamiento de imágenes como HALCON, siempre que esté abierta a las cámaras de visión artificial de todos los fabricantes. Su ventaja principal es la integración "plug&play" de todas las cámaras sin necesidad de instalar una biblioteca ajena específica de fabricante. Por esta razón los desarrolladores de MVTec han dotado su producto HALCON de una GenTL propia compatible con todos los fabricantes (ver Figura 3), que puede trabajar con cualquier cámara que soporte el estándar Vision, sin software específico del fabricante.

A pesar de los requisitos marcados por el estándar, el diseño de una GenTL propia permite al fabricante ofrecer a sus clientes un componente de software que interacciona de forma óptima con sus cámaras y que, además, está cubierto por su servicio de soporte. Se trata de una cuestión no menor, sobre todo cuando surge algún problema con la cámara en una aplicación de visión artificial. ¿Quién se supone que tiene que solucionar el problema cuando la aplicación, la biblioteca de procesamiento de imágenes, la GenTL y la cámara son cada una de un fabricante distinto? Naturalmente, este problema no se da cuando todos los componentes son del mismo fabricante.

3 ¿Todas las cámaras son iguales?

Uno puede pensar que las cámaras conformes con el estándar comunican y transfieren datos usando los mismos protocolos y que ofrecen prestaciones estándar claramente definidas. ¿Se puede afirmar entonces que "una vez que conoces una las conoces todas"? No; nada más lejos de la realidad.

Donde antes se requerían diferentes controladores para establecer la comunicación entre la cámara y el host, ahora basta con un único "lenguaje". Y mientras que antes cada fabricante se encerraba en su laboratorio, ahora trabajan todos juntos para diseñar las interfaces e implementar las funcionalidades de la cámara según las especificaciones definidas; una forma de trabajar que sin duda ofrece grandes ventajas a los usuarios. Pero entonces, ¿en qué se diferencian los distintos fabricantes? Una cámara, aunque esté "estandarizada", sigue siendo un producto altamente complejo formado por diferentes componentes que determinan la calidad final, entre ellos la carcasa (resistencia, dimensiones, peso, conectores, ópticas, accesorios), la electrónica (características de CEM, resistencia a interferencias, generación de calor, memoria, potencia, durabilidad), el software (conocimiento de sensores, prestaciones, modularidad, mantenimiento, soporte/ayuda), por mencionar solo unos pocos. El conjunto de componentes determina el éxito de la cámara en una aplicación.

La compatibilidad total del software —para empezar a utilizar la cámara de forma fácil y rápida— es un criterio importante para muchos usuarios que se inician en el mundo de la visión artificial o que quieren cambiar de proveedor. IDS Imaging Development Systems GmbH ofrece siempre a sus clientes paquetes integrales de producto para que no se tengan que preocupar de nada. Una vez efectuada la instalación, el usuario dispone del práctico IDS Vision Cockpit con interfaz gráfica para la evaluación de imágenes y también de una GenTL propia del fabricante, que garantiza una compatibilidad total con todas las bibliotecas de procesamiento de imágenes actuales conformes al estándar.

Aunque todos los componentes del sistema sean intercambiables, el soporte integral del fabricante que incluyen los paquetes "todo en uno" aporta una tranquilidad total, sobre todo en proyectos de visión artificial, puesto que cubre desde el hardware de la cámara hasta la aplicación del cliente.

4 ¿Es fácil empezar?

Lo más fácil para empezar con componentes de visión artificial estandarizados es emplear un software de procesamiento de imágenes que sea conforme con el estándar, como HALCON, LabView o Cognex VisionPro. Entretanto, muchos de los paquetes de software más conocidos se entregan con proveedores de GenTL propios, lo cual demuestra que la intercambiabilidad de las cámaras sin necesidad de software específico del fabricante existe. Para integrar las cámaras a través de las GenTL propias del fabricante, algunos de los paquetes vienen con el conector GenICam correspondiente.

De esta forma, los fabricantes de software para el procesamiento de imágenes aprovechan de lleno las ventajas de la estandarización. El usuario puede empezar directamente a procesar las imágenes sin necesidad de realizar ninguna tarea de programación para integrar la cámara. El usuario solo entra en contacto con las interfaces estándar mediante la GUI dinámica del framework de procesamiento de imágenes correspondiente. En realidad, los frameworks son una interfaz gráfica "propietaria" muy intuitiva que facilita enormemente el trabajo al usuario.

Figura 3 – HALCON tiene una interfaz GigE directa gracias al GenTL Producer propio. GenICam permite además conectar el sistema con cualquier otra interfaz de visión estandarizada. Pero no todos los procesadores de imágenes de terceros vienen con el proveedor GenTL correspondiente, por lo que las funcionalidades plug&play se ven algo limitadas.

La segunda opción, es decir, desarrollar la aplicación de cero, es más costosa y sitúa la interfaz de programación en primer plano. Aquí entran en juego otros factores relevantes.

La programación genérica con GenICam puede resultar extremadamente complicada debido a los principios tan rígidos y complejos que implica. Para responder correctamente a las diferentes eventualidades, antes de modificar cualquier parámetro de cámara se deben consultar todas las funcionalidades y rangos de valor. El acceso indiscriminado a los diferentes componentes GenICam es un enfoque muy atómico y requiere de una profunda comprensión de estos principios. El usuario que prime la rapidez por delante de la complejidad, hará mejor en utilizar una herramienta de administración más sencilla y reducida en forma de API. Pero, ¿significa esto que el usuario ha de optar por una solución "propietaria" y renunciar a todas las ventajas que conlleva la visión artificial estandarizada?

5 Estándares propietarios

Las cámaras de visión estandarizadas se pueden utilizar de múltiples maneras gracias a las interfaces definidas. La funciones de conveniencia (también llamadas funciones auxiliares o de confort) son un concepto de diseño muy frecuente en las interfaces de programación propietarias, donde facilitan el trabajo de los desarrolladores. Permiten simplificar y organizar mejor el código mediante la agrupación específica de las llamadas atómicas de funciones. El reducido número de llamadas de funciones permite alcanzar el objetivo "definido" de forma más rápida y sencilla.

Si además la relación de la "API propietaria" con la cámara es conforme al estándar, se convierte en otra opción de acceso para la aplicación del cliente.

Figura 4 – Las interfaces propietarias amplían las opciones de aplicación de las cámaras de visión estandarizadas.

Siempre y cuando el fabricante de la API propietaria no incluya filtros que limiten el uso a dispositivos de la casa, esta solución es perfectamente viable en aplicaciones que integren productos de distintos fabricantes.

Las GUI propietarias de las bibliotecas de procesamiento de imágenes como HALCON, por ejemplo, siguen exactamente este criterio. HALCON sigue los estándares de visión artificial pero con su propia interfaz de usuario. Esto quiere decir que incluso con la estandarización se pueden seguir creando interfaces de programación simplificadas para facilitar el uso por parte del cliente.

6 Lo que cuenta es la aplicación

El empleo de interfaces estándar aporta ventajas en el caso de aquellas aplicaciones que integran diferentes cámaras con distintas funcionalidades. Por otra parte, la comunicación estandarizada a través de la interfaz GenICam facilita enormemente la combinación en un mismo sistema de cámaras estándar con diferentes tecnologías de transferencia, como por ejemplo USB3 Vision y GigE Vision. La aplicación no necesita conocer las características específicas de los dispositivos y mantiene su compatibilidad con cualquiera que sea conforme al estándar.

Una GUI totalmente dinámica posibilita la comunicación y el acceso a las funciones de la cámara sin tareas de programación específicas. De esta forma, lo único que tiene que hacer el usuario o procesador de imágenes para empezar a trabajar es ajustar la cámara.

En las aplicaciones que además incorporan su propia GenTL, ni siquiera hace falta el software específico del fabricante para integrar una cámara nueva.

Para los fabricantes de cámaras de visión artificial los estándares de visión no solo conllevan un alto grado de intercambiabilidad, sino también una compatibilidad mejorada con todas las aplicaciones desarrolladas conforme a las especificaciones de dichos estándares.

Naturalmente, seguirán existiendo en el mercado una gran cantidad de aplicaciones de cliente para las que las proposiciones únicas de venta que ofrecen los estándares son un factor secundario. En estos casos lo que prima es el uso inmediato de cámaras especiales mediante interfaces sencillas que cuenten con un amplio soporte del fabricante y que, en caso necesario, puedan adaptarse de manera flexible a la aplicación del cliente.

Al fin y al cabo es siempre el cliente el que decide, en función de su aplicación específica, cuáles son las marcas, dispositivos e interfaces más adecuados para obtener los resultados deseados y la mejor "experiencia de visión artificial".