Leer el artículo técnico "IA: ¿Un juego, o una herramienta industrial?

En estos momentos esta cuestión está suscitando un intenso debate. La respuesta, como en tantas ocasiones, está en el observador. Porque cada usuario tiene sus propias expectativas sobre lo que una tecnología debe conseguir o aportar para ser reconocida y, en última instancia, utilizada. En cualquier caso, ya existe el hardware que se necesita para un uso productivo y eficiente de la inteligencia artificial. Muchos fabricantes de hardware de visión artificial lo saben, por lo que la oferta de plataformas de IA de distintos grados de rendimiento no para de crecer. Pero todavía hay problemas para dar el salto definitivo. No es suficiente con disponer del hardware: hace falta un cambio de mentalidad.

¿Qué le falta a la IA?

De poco sirve saber que la IA o el aprendizaje automático (ML) funcionen de forma muy distinta al procesamiento de imágenes basado en reglas y que por tanto el enfoque y el procesamiento de las tareas de visión artificial también son diferentes. La calidad de los resultados ya no es producto de un código de programa desarrollado manualmente, sino que viene determinada por el proceso de aprendizaje con datos de imagen adecuados. Lo que parece tan sencillo sólo conduce al objetivo deseado con la suficiente pericia y experiencia. Sin un ojo entrenado para los datos correctos, a menudo se producen errores, que a su vez conducen a una aplicación incorrecta de los métodos de ML. Las pruebas han demostrado que distintos usuarios consiguen niveles de calidad muy distintos en el entrenamiento de las redes neuronales artificiales (RNA) para la misma tarea, porque en algunos casos se utilizaron para el entrenamiento imágenes con demasiado contenido sin importancia, mala exposición, falta de nitidez o incluso etiquetas erróneas.

Las competencias clave para trabajar con métodos de ML ya no son las mismas que para el procesamiento de imágenes basado en reglas, por lo que deben crearse unas específicas. Los que ahora tienen tiempo y recursos para trabajar, probar y jugar con dichos métodos están adquiriendo la experiencia necesaria y empezando a conocer las dificultades. Probablemente por esa razón las empresas nuevas y jóvenes son las que más trabajan con ellos ahora mismo. No tienen cargas del pasado, no están ligados a los procesos existentes y pueden aventurarse con afán de investigación a resolver tareas para las que el procesamiento clásico de imágenes no tenía solución. Pero mientras los "big players" no lancen la nueva tecnología de forma generalizada y la fomenten con decisión, existirá una falta de conocimiento y de confianza, también por parte de los clientes. Para sacar a los "veteranos" de su zona de confort tiene que haber un cambio. Porque la IA se enfrenta a un sistema establecido para el que se ha creado el entorno adecuado durante años. Los conocimientos, la documentación, la formación, el hardware, el software, los entornos de desarrollo, la aceptación de los clientes y la demanda han ido madurando a lo largo del tiempo. La IA, en cambio, sigue siendo muy inmadura y purista. Los que la dominan reciben la admiración y el reconocimiento de los demás, pero también sus dudas e incomprensión.

Otro aspecto importante para el futuro son los nuevos grupos objetivo. El Dr.-Ing. Peter Ebert, redactor jefe de la revista especializada inVISION y experto en la materia, afirma: "La comunidad de la visión artificial del futuro integrará no sólo a los clásicos expertos en visión artificial, sino también a cada vez más miembros del sector del IoT." Con los nuevos grupos de usuarios se generan inevitablemente otros casos prácticos y otros requisitos para utilizar las tecnologías existentes. El clásico SDK de programación no siempre es suficiente. Hay que romper las viejas reglas.

El software como pionero

Ya se dispone del hardware adecuado. Gracias a la eficacia de los aceleradores de IA, las posibilidades de aplicación del ML son especialmente interesantes para los sistemas de visión embebidos pequeños y de bajo consumo o para las plataformas de cámaras de inferencia totalmente integradas que ya ofrecen los fabricantes. Pero esto no es suficiente para resolver los problemas que obstaculizan el despegue industrial de la nueva tecnología. La IA debe ser probada, validada, reentrenada y finalmente integrada en un flujo de trabajo productivo: la aplicación. Pero, ¿quién hace eso? ¿Quién puede? En definitiva, son las mismas tareas recurrentes. Pero esto requiere competencias nuevas que van más allá del desarrollo de prototipos. Por lo general se necesita a un programador de sistemas que sea capaz de programar estas herramientas para una plataforma específica.

Con su plataforma IDS NXT, IDS está emprendiendo un nuevo camino y lo tiene claro: con las herramientas adecuadas y bien sincronizadas, cada grupo de usuarios puede explotar plenamente el potencial de una plataforma de visión artificial de IA sin tener que gastar mucho tiempo y dinero en adquirir nuevas competencias que en realidad no son necesarias para implementar sus aplicaciones propias de IA. Y esto, ¿qué significa? Los conocimientos especializados para el entrenamiento de las redes neuronales y la programación de aplicaciones propias se pueden integrar como un solo paquete en las herramientas para muchos flujos de trabajo de IA sencillos. De ese modo los usuarios pueden aplicar sus requisitos específicos sin tener que formar un equipo de especialistas propio. El software permite a cada grupo de usuarios utilizar las herramientas adecuadas para sus respectivas tareas y métodos de trabajo.

Una solución de procesamiento de imágenes es el marco que reúne varias tareas en un proceso específico de la aplicación y debe ejecutarlas sin errores y con eficacia. Tradicionalmente esta tarea la programaban los desarrolladores en un código de programa adecuado para la plataforma, como C++. La situación no es muy diferente en el caso de las nuevas plataformas de IA que salen al mercado. Un SDK (Software Development Kit) proporciona las interfaces de software necesarias para la programación de la plataforma asociada al hardware junto con los aceleradores de IA existentes. En la mayoría de los casos, esto proporciona a los desarrolladores de aplicaciones una plataforma ampliamente programable para sus propias soluciones de proceso. Para los que saben lo que hacen, el rendimiento del hardware y los SDK son lo único que limita su creatividad. Gracias a un SDK con muchos ejemplos de código fuente en C++, la cámara de inferencia IDS NXT es también una plataforma abierta para los desarrolladores que quieran diseñar enteramente sus propias aplicaciones de procesamiento de imágenes en forma de apps de visión artificial con el acelerador de IA deep ocean.

Asistente de la aplicación

Sin embargo, la mayoría de las aplicaciones de procesamiento de imágenes trabajan con procesos relativamente sencillos. Capturar la imagen → Analizar la imagen o extraer características (procesamiento de la imagen) → Tomar decisiones de proceso → Iniciar la acción. Esto puede ser un simple proceso de reconocimiento y clasificación de productos con señalización posterior o con envío de información a través de diversas interfaces para un autómata programable o para un sistema de clasificación. Se trata de funcionalidades básicas que sólo difieren en algunos detalles y, por tanto, no habría que reprogramarlas cada vez. Sin embargo, la selección de un Deep Learning (DL) Use Case, como la "clasificación" o la "detección de objetos", a menudo es ya demasiado abstracta como punto de partida para que un proyecto pueda inferir las acciones posteriores necesarias para la adquisición de datos y la configuración de la app de visión artificial.

Por eso IDS está trabajando para hacer que la visión artificial basada en IA sea accesible y fácil de usar para todo el mundo con las cámaras de inferencia IDS NXT. La creación de apps tiene que ser posible para cualquier grupo de usuarios, ya sea un programador, un profesional de la visión artificial, un operador de máquinas o un técnico. Para ello, con la próxima actualización el software de entrenamiento de RNA basado en la nube IDS NXT lighthouse incluirá un asistente más orientado a la resolución del problema concreto del usuario que le apoyará con las instrucciones adecuadas. El asistente amplía fácilmente el radio de acción del grupo objetivo y ahora acompaña todas las tareas específicas de una aplicación de visión artificial. Partiendo de la pregunta "¿Qué quiere hacer?", IDS NXT lighthouse ofrece una selección de problemas prácticos, como "Contar objetos", "Comprobar presencia o ausencia" o "Comprobar puntos de inspección". El asistente selecciona en segundo plano la base de la app con el caso práctico de aprendizaje profundo adecuado y sugiere al usuario las acciones para recopilar la información necesaria. También ofrece consejos, vídeos o instrucciones útiles para proporcionar al usuario los conocimientos previos necesarios. Esta "creación guiada de aplicaciones" recuerda más a un tutorial que al desarrollo clásico de aplicaciones. Al final el usuario puede descargar una aplicación de visión artificial totalmente personalizada que sólo tiene que activar e iniciar en una cámara IDS NXT.

Unir las piezas del puzle en lugar de programar

Si se desean crear procesos más complejos no es necesario recurrir a C++ u otros lenguajes de programación basados en texto. Si la biblioteca de funciones se empaqueta en bloques visuales y se añade un editor visual, los procesos pueden unirse como piezas de un puzle sin tener que pensar en los comandos exactos de los distintos lenguajes de programación. Blockly es un proyecto de Google creado precisamente para ese fin. IDS utiliza Blockly y adapta funcionalidades propias para poder reunir las tareas de inferencia de la cámara en una especie de módulo, en procesos con distintos grados de complejidad.

Con Blockly también se pueden reunir fácilmente en una secuencia de programas las pruebas de distintos niveles con varias RNA.
Con Blockly también se pueden reunir fácilmente en una secuencia de programas las pruebas de distintos niveles con varias RNA.

Gracias a la intuitiva interfaz de usuario del editor de Blockly incluso los principiantes y los profanos logran rápidamente buenos resultados. La ventaja de la programación visual con este sistema modular sobre el asistente de aplicaciones es la posibilidad de crear procesos propios. Así, las variables, los parámetros y los resultados de la IA pueden vincularse fácilmente a través de enlaces lógicos con cálculos matemáticos y condiciones if/else o acciones repetitivas mediante bucles. Esto también posibilita el uso de flujos de trabajo más complejos con inspección de objetos en dos etapas y múltiples redes neuronales. Por ejemplo, un reconocedor de objetos proporciona una clasificación previa básica de las diferentes piezas, seguida de un análisis detallado de los defectos por parte de un segundo clasificador para categorizar las piezas de forma aún más específica. Estos procesos sólo son posibles con el VAC (Vision App Creator) y con conocimientos de programación en C++.

Otra ventaja de las apps tipo puzle es que ofrecen un uso muy dinámico. De forma similar a Python, la programación de apps de visión artificial con Blockly permite ejecutar el "código" directamente, ya que no es necesaria una compleja compilación cruzada. Una aplicación creada en IDS NXT lighthouse puede seguir programándose en la propia cámara de forma sencilla e interactiva tras las pruebas iniciales en la cámara. También se pueden diseñar directamente en ella las apps de visión artificial. Esto convierte a este editor visual de apps en la herramienta ideal desde la fase de prueba y ensayo hasta la aplicación.

IDS NXT ofrece la herramienta adecuada para cada nivel de conocimiento: desde un configurador de aplicaciones totalmente automatizado hasta la programación completamente libre con el SDK clásico, pasando por un módulo de apps de visión artificial con una interfaz intuitiva. Esto ahorra tiempo y costes a la hora de poner en marcha y configurar aplicaciones individuales de procesamiento de imágenes con inteligencia artificial.

Resultados explicables

A pesar de las ventajas conocidas de la IA y de la gran precisión de las RNA utilizadas, el diagnóstico en caso de fallo suele ser difícil. La falta de conocimientos sobre el funcionamiento o los resultados inexplicables son la otra cara de la moneda, que inhibe la difusión de los algoritmos. Las RNA suelen percibirse erróneamente como una caja negra cuyas decisiones no son comprensibles. "Aunque los modelos de aprendizaje profundo son indudablemente complejos, no son cajas negras. De hecho, sería más exacto llamarlas cajas de cristal, porque literalmente podemos mirar dentro y ver lo que hace cada componente" [Cita de "The black box metaphor in machine learning"]. Las decisiones de inferencia de las redes neuronales no se basan en reglas clásicas comprensibles y las complejas interacciones de sus neuronas artificiales pueden no ser fácilmente entendibles para el ser humano, pero siguen siendo el resultado de un sistema matemático y, por lo tanto, reproducibles y analizables. Sólo nos falta ayudarnos de las herramientas adecuadas. Precisamente en el ámbito de la IA sigue habiendo mucho margen de mejora. Y es precisamente aquí donde se pone de manifiesto lo bien que los distintos sistemas de IA del mercado pueden ayudar al usuario a lograr su objetivo.

IDS investiga y trabaja en este campo junto con institutos y universidades para desarrollar precisamente estas herramientas. El software IDS NXT ocean ya contiene los resultados de esta colaboración. La visualización en forma de los llamados mapas de atención (mapas de calor) facilita la comprensión de las decisiones críticas de la IA para, en última instancia, aumentar la aceptación de las redes neuronales en el entorno industrial. También puede utilizarse para reconocer y evitar los sesgos de los datos entrenados (véase la figura "Mapas de atención"). Pronto también será posible realizar análisis estadísticos mediante la llamada matriz de confusión, tanto en el software de entrenamiento basado en la nube IDS NXT lighthouse como en la propia cámara IDS NXT, para poder determinar y comprender más fácilmente la calidad de las RNA entrenadas. Con la ayuda de estas herramientas de software, los usuarios pueden rastrear de forma más directa el comportamiento y los resultados de su IDS NXT con IA hasta llegar a los puntos débiles del conjunto de datos entrenado y corregirlos de forma precisa. Esto hace que la IA sea más explicable y comprensible para todos.

Un paquete integral apto para uso industrial

El enorme potencial de la inteligencia artificial es incuestionable. El hardware disponible en forma de cámaras de inferencia con aceleradores de IA también ha dado muestras de una gran eficacia. Pero el mero hecho de disponer del hardware no es suficiente para que la industria se "contagie" de la IA de forma generalizada. Los fabricantes se enfrentan al reto de ayudar a los usuarios compartiendo su competencia en forma de programas informáticos fáciles de usar y de procesos integrados. En comparación con los procedimientos consolidados, que han madurado a lo largo de los años y se asientan sobre una base de clientes fieles con mucha documentación, transferencia de conocimientos y muchas herramientas de software, a la IA aún le queda mucho camino por recorrer, pero ya ha emprendido dicho camino. También se está trabajando en la elaboración de normas y certificaciones para aumentar la aceptación y la explicabilidad de la IA, y ponerla en en el lugar que se merece. En definitiva, todo el mundo debería familiarizarse con esta nueva tecnología para no quedarse atrás. IDS ayuda a que sea posible. Con IDS NXT ocean ya ofrece un sistema de IA embebido con muchas herramientas de software de fácil manejo que puede funcionar de forma rápida y sencilla como herramienta industrial y ser utilizado de forma provechosa por cualquier grupo de usuarios sin amplios conocimientos de aprendizaje automático, de procesamiento de imágenes o e programación de aplicaciones.