Inteligencia aplicada a Sistemas de Visión Artificial: Evolución y Hardware
Los últimos avances en programación y electrónica han permitido implementar sistemas de aprendizaje a la visión artificial. Este cambio ha permitido aplicar sistemas de visión inteligentes en un mayor número de entornos, no solo industriales. A continuación, explicamos los orígenes, la evolución y el hardware necesario para crear un sistema de visión artificial inteligente.
Los primeros sistemas de Visión Artificial
Cuando hablamos de sistemas de Visión Artificial lo primero que nos viene a la cabeza en el más estricto sentido ingenieril es el procesado de imágenes de una cámara con el fin de ver o detectar algo. Y en efecto, esa es la base de unos de los primeros sistemas de visión que se aplican hoy en día en industria para inspección y control de calidad de productos fabricados en serie, por ejemplo en una cadena de embotellado.
Planta de embotellado de agua
A este sistema de visión primario, lo podemos denominar sistema de detección de imágenes y consta de:
- Captación: Captura la imagen de la botella.
- Acondicionamiento: Procesamiento de la imagen.
- Detección: Detecta el parámetro definido (p.e. tapón de color azul).
- Decisión: Toma la decisión (cumple o no cumple el parámetro).
Diagrama de bloques de un sistema de visión artificial primario
Aplicación de Inteligencia a la Visión Artificial
La visión artificial tal y como la entendemos hoy en día lleva asociado otros dos conceptos: Inteligencia y Aprendizaje.
Volviendo al ejemplo anterior, si a nuestro sistema básico le añadimos la capacidad de detectar no solo el color sino también forma y posición, con la información de esos tres parámetros también será capaz de detectar si la colocación es correcta. Estamos dotando al sistema de cierta inteligencia.
Diagrama de bloques de un sistema de visión artificial con detección de color, posición y forma
Cuando un sistema de visión es capaz de procesar y extraer datos, y estos datos a su vez pueden ser ponderados de forma adecuada y re-inyectados al sistema, contribuimos al aprendizaje (learning) y perfeccionamiento del sistema de visión.
Diagrama de bloques de un sistema de visión artificial con capacidad de aprendizaje
En el ejemplo, estaríamos delante de un sistema de visión artificial propiamente dicho, con capacidad de ver, analizar, decidir y aprender. Si además, el volumen de datos proviene de diversas fuentes y es elevado, el tratamiento adecuado de esos datos los convierte en información útil que se puede emplear tanto para entrenar los propios sistemas, para perfeccionar otros o para predecir comportamientos. Este último caso es la base del mantenimiento preventivo y el deep learning.
Hardware de un Sistema de Visión Artificial Inteligente
Entremos ahora en detalle en el hardware necesario para desarrollar una aplicación de visión artificial como la del ejemplo. Se compone de:
- Captador
- Procesador
- Módulo de adquisición
- Módulo de salida
- Software de procesado
A continuación entramos en detalle de cada uno de estos componentes:
Captador
Lo primero que necesitamos es el captador, en esencia, una cámara. Existen diversas tecnologías de captadores: ópticas, infrarrojos, térmicas, resolución, velocidad, etc. Podemos clasificarlas también según el formato de salida de las imágenes: analógicas con salida S-Video, AV; digitales con salida SDI, MIPI/CSI, USB, Ethernet, etc. pudiendo el formato de vídeo de salida ser transmitido en banda base (imagen sin tratar) o comprimida por ejemplo en MPEG H264.
Un tipo de cámara popular para muchos sistemas de visión son las conocidas como cámaras IP. Su salida es básicamente un interfaz ethernet a través del que envía las imágenes en paquetes IP. Pueden ser conectadas directamente a redes Ethernet de área local y ser controladas como un dispositivo más desde internet. Las más sofisticadas disponen de la capacidad de manejar jumbo frames y PoE.
La tramas jumbo frame son tramas IP de más de 1500 bytes que optimizan el ancho de banda y aumentan el rendimiento de la red que suele ser Giga Ethernet en la mayoría de casos. PoE (Power Over Ethernet), en su estándar más común 802.3af, soluciona el problema de alimentar las cámaras suministrando la tensión de alimentación a través del propio cable ethernet.
Procesador
El siguiente bloque necesario es el procesador. El abanico de posibilidades es tan extenso como el número de aplicaciones que nos podamos encontrar.
Por un lado, podemos encontrar procesadores del tipo ARM con interfaces para cámaras MIPI/CSI, ampliamente utilizados en dispositivos multimedia de consumo como móviles, tablets o consolas y posteriormente adoptados para todo tipo de aplicaciones industriales portátiles o de bajo consumo.
En el otro extremo tenemos los procesadores de propósito general con arquitectura x86/x64 en formato BOX PC ampliamente soportados a nivel de sistemas operativos de alto nivel, drivers, librerías y software que nos facilitarán la vida en el desarrollo de la aplicación.
En medio quedan los procesadores con arquitecturas dedicadas al procesado gráfico intenso como puedan ser:
- GPU (graphic processing unit). Plataformas NVIDIA y AMD, arquitecturas con múltiples cores que facilitan el procesado paralelo, clave para reducir latencias en procesado de imagen.
- VPU (video processing unit)
- GPPU
- Jetson
En artículos anteriores os hablábamos más en detalle sobre GPUs en el entorno profesional y Software para GPUs
Módulo de adquisición
Dependiendo del formato de salida de las imágenes del captador o cámara, nuestro sistema puede requerir de un módulo para capturar las imágenes previo a introducir los datos al procesador. Podemos estar hablando, por poner algunos ejemplos, de:
- Capturadora de video analógico AV: típica de los sistemas de videovigilancia tradicionales con cámaras analógicas en resoluciones típicas PAL/NTSC.
- Capturadora de video SDI: Similares a las anteriores pero que utilizan un flujo de datos ya digital y serializado.
- Interface Ethernet con PoE: por seguir el ejemplo que adelantábamos en los distintos tipos de cámaras.
Módulos de salida
El resultado del análisis puede llevar asociado la actuación sobre un elemento externo, por ejemplo activación de una alarma o un semáforo o el envío de datos a través de un bus de campo, puerto de comunicaciones o hacia la nube.
Software de procesado
Pieza clave, pues suele ser donde se dedican más esfuerzos en tiempo de desarrollo y la elección de las herramientas para llevar a cabo estos desarrollos vinculan con mucha frecuencia las plataformas hardware.
Ámbitos de Aplicación de la Visión Artificial Inteligente
Lo expuesto hasta ahora, aplica básicamente a desarrollos dentro del mundo industrial. Pero la utilidad de los sistemas de visión artificial trasciende el sector industrial. Otros ejemplos de sistema de visión artificial son:
Sistemas de seguridad
- Reconocimiento facial en puestos de gran afluencia de público como puedan ser aeropuertos, estaciones, controles fronterizos: requieren de gran capacidad de proceso, escalabilidad y adaptación continua. Se emplean típicamente BoxPCs con tarjetas GPU o VPU, cámaras IP, sistemas operativos y software de alto nivel. En las versiones más compactas se pueden emplear arquitecturas Jetson NVIDIA. En las versiones más intensas se puede llegar a integrar varias tarjetas GPU dentro de un servidor tipos rack 19”.
- Reconocimiento facial o huella dactilar en controles de acceso: en aquellas aplicaciones de seguridad en las que la velocidad no es un requisito, los sistemas embedded basados en procesadores ARM con módulos de cámaras CSI ofrecen soluciones lowcost.
Elaboración de patrones de conducta en retail
La evolución de los tradicionales equipos de videovigilancia a sistemas de visión artificial permite la extracción de patrones de movimiento de personas dentro de establecimientos comerciales, tiendas de ropa o supermercados. Estos patrones se utilizan para determinar los sitios más frecuentados donde colocar los productos en oferta o la cartelería con la publicidad.
Transporte
Smart Traffic, donde podemos englobar las aplicaciones de reconocimiento de matrículas que se emplean no solo para imponer sanciones a los infractores sino para establecer las limitaciones ambientales, control y gestión del tráfico en horas punta, habilitación de carriles adicionales, etc.
Contador de pasajeros: una aplicación nueva surgida de la pandemia COVID-19 es el control del número de pasajeros que acceden a los transportes públicos con el fin controlar en tiempo real el número de ocupantes de un convoy, ya sea tren, autobús o tranvía, y poder establecer así límite de ocupantes o aumentar las frecuencias de paso.
Conclusión
Los sistemas de visión artificial inteligente han empezado a desplegarse en multitud de ámbitos fuera de las cadenas de producción. Su integración con sistemas de deep learning los han hecho evolucionar rápidamente y sustituir las tareas realizadas tradicionalmente por humanos, consiguiendo altas tasas de eficiencia. El futuro inmediato de la visión artificial inteligente es muy prometedor.
En Venco somos proveedores de Avalue, Kontron, Axiomtek y CTi entre otros fabricantes de soluciones de Visión Artificial.
Contacta con nosotros y te asesoraremos en estos y otros aspectos de tu proyecto.