Industria 4.0
Sistema de Visión Artificial para la Clasificación de Objetos en Líneas de Producción
F.H. Ledesma(1), J.C. Gómez(2)(3) fledesma@inti.gob.ar, juanca@inti.gob.ar
(1) Dto. Integración de Sistemas Micro y Nano Electrónicos-DT Micro y Nano Tecnologías SOAC-GODTeI-INTI. (2) Dto. Energía-DT Electrónica-SOEyE-GOSI-INTI. (3) Grupo de Inteligencia Artificial y Robótica UTN - FRBA.
Palabras Clave: Automatización y Robotización; Visión Artificial; Desarrollo tecnológico.
INTRODUCCIÓN
El sector productivo nacional y en particular la industria, demanda soluciones rápidas para la incorporación de tecnologías de visión artificial con el objeto de optimizar su producción y ofrecer productos competitivos en el mercado local e internacional, esto surge luego de las diversas experiencias en el asesoramiento a empresas de diferentes rubros como la industria textil, farmacéutica o la de producción frutihortícola. La visión artificial en conjunto con otras áreas del conocimiento como el aprendizaje automático o el reconocimiento de patrones, es una herramienta crucial para el desarrollo de las PyMEs que actualmente incorporan la tecnología importando comúnmente tanto hardware como software lo que genera una fuerte dependencia con el tipo de cambio o las condiciones internacionales impactando muchas veces en la competitividad. Por otra parte, teniendo en cuenta uno de los objetivos estratégicos del INTI en su agenda 2025 que es la incorporación de tecnología para el desarrollo de la industria 4.0, la visión artificial juega en ese sentido un papel fundamental. Es por esto que se decidió empezar a desarrollar un plataforma para la prueba de algoritmos de clasificación que es una de las aplicaciones más usadas en el sector productivo.
Cabe mencionar que el presente trabajo se realizó en el contexto de pandemia que comenzó en el 2020, lo cual obligó a usar los recursos disponibles para el logro de los objetivos propuestos.
OBJETIVOS
Desarrollar una plataforma que permita probar algoritmos de clasificación de objetos en tiempo real.
Desarrollar un algoritmo que resuelva las tareas críticas dentro de un sistema de visión típico.
DESARROLLO
El primer trabajo que se tuvo que realizar fue el relevamiento de los recursos humanos disponibles para este desarrollo. Se consideró especialmente la heterogeneidad y la complementariedad del grupo.
En una segunda etapa se hizo un estudio de las herramientas de desarrollo disponibles. Se consideró el nivel de dominio de las mismas en el grupo y se evaluaron las ventajas y desventajas de cada una. En la Tabla 1 se muestran las más importantes.
Tabla 1: Herramientas de desarrollo seleccionadas.
Lenguaje Entorno de Desarrollo Control de Versiones
Bibliotecas Sistema Operativo
Python Visual Studio Git OpenCV Multiplataforma
Posteriormente se estableció la arquitectura de un prototipo funcional (hardware+software) con el objeto de que sirva de referencia para el desarrollo de la plataforma: Fig.1.
Módulo de acceso
Simulador de señales de sensor
Módulo de adquisición
PC de sincronismo
Unidad de procesamiento
CAN bus
GigE
Figura 1: Diagrama en bloques del prototipo.
Luego se definió el algoritmo encargado de resolver las tareas que se consideran críticas. Se tuvieron en cuenta particularmente la latencia y la fluctuación de los retardos involucrados (jitter), para el correcto funcionamiento del sistema en tiempo real.
Esta obra está bajo una Licencia Creative Commons Atribución-No Comercial-Sin Derivadas 4.0 Internacional (CC BY-NC-ND 4.0)
Industria 4.0
Finalmente se definió un hardware mínimo considerando los recursos disponibles, ver Fig.2.
USB (Imágenes)
Adquisición y procesamiento
RS232 Sincronismo
RED Acceso remoto
contenga las 4 vistas de cada objeto correctamente almacenadas. Fig. 3.
Figura 2: Hardware mínimo para la prueba del algoritmo crítico..
La función del prototipo definido, en su estado de prueba de concepto, es obtener diferentes vistas de un objeto que pasa por una cinta transportadora en el campo de visión de una cámara. Este es el caso típico de una línea de producción que trabaja a una velocidad establecida según la aplicación. En este desarrollo se especificó que el sistema de visión tenga la capacidad de procesar hasta 5 objetos por segundo capturando 4 vistas de cada uno. Esto implica que cada 200ms se debe tomar una decisión de clasificación.
Hay dos factores críticos en los sistemas de tiempo real tales como el propuesto:
● Tiempo de ejecución de tareas. ● Administración de las mismas en el
tiempo.
En este trabajo se usó el modelo de máquina de estados (FSM) [1], que junto con herramientas de programación concurrente [2], permiten una mejor administración de las tareas en el tiempo y el uso más eficiente de la potencia de procesamiento de la computadora.
Para la generación de las señales de sincronismo necesarias se utiliza una placa de desarrollo OlinuXino A20 que envía la señal de sincronismo por un puerto serie RS232.
RESULTADOS
Hoy se cuenta una plataforma de desarrollo básica funcionando, compuesta no sólo por los módulos del programa desarrollado, sino también por las herramientas seleccionadas para el trabajo colaborativo dentro del INTI. Este conjunto permite programar y probar rápidamente algoritmos de visión artificial para satisfacer demandas de potenciales clientes.
El algoritmo desarrollado para resolver la tarea crítica funciona como se espera, pasando correctamente las primeras pruebas. Las cuales consisten en verificar que el buffer
Figura 3: Buffer de 4 objetos, con 4 vistas de cada uno en cada fila.
El tiempo de procesamiento durante un ciclo de clasificación por tamaño es de 80 ms. con un desvío de 20 ms. Estas mediciones se obtuvieron con una PC común, AMD FX-6100 Six-Core con 8GB de RAM bajo Windows 7 de 64 bits y una webcam.
DISCUSIÓN Y CONCLUSIONES
El tiempo de procesamiento que se obtuvo permite realizar clasificaciones simples, tal como la presentada en este trabajo donde se usó el criterio de separar por tamaño. Sin embargo, para clasificadores más complejos es necesario reducir el tiempo de procesamiento. Por ejemplo, cuando se selecciona por textura.
Un próximo trabajo es usar programación concurrente y una cámara industrial para optimizar el funcionamiento del programa y el uso de los recursos del sistema.
Se prevé también, el agregado de un servidor para acceder a las imágenes almacenadas en una máquina de supervisión.
Las imágenes generadas en una línea de producción podrían utilizarse para aplicar métodos de clasificación con aprendizaje automático. Este primer trabajo es base para el desarrollo de sistemas de clasificación más complejos.
REFERENCIAS BIBLIOGRÁFICAS [1] Harel, David. “Statecharts: A Visual Formalism for Complex Systems” Science of Computer Programming 8 (1987) 231 - 274 North Holland. [2] Python org. “Concurrent Execution” 06/2022 https://docs.python.org/3/library/concurrency.html
Esta obra está bajo una Licencia Creative Commons Atribución-No Comercial-Sin Derivadas 4.0 Internacional (CC BY-NC-ND 4.0)
Ver+/-