Visión Artificial en la Robótica

Dr. Juan José Muñoz César, Ing. Erick Edwin Espinoza Díaz, Aimé Veu Gordillo Valdés
drjjmunoz@esimez.mx, edwin_espinoza@esimez.mx, aimegova@esimez.mx
Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad Zacatenco,
Av. IPN S/N, México D.F., México, C.P. 07738

RESUMEN

La interacción exitosa de los robots con el mundo depende en gran parte de los sensores que integre, por esto, la “Visión Artificial” se vuelve importante convirtiéndose en un área con grandes expectativas; ya que mediante la utilización de las técnicas adecuadas, permite la obtención, procesamiento y análisis de cualquier tipo de información especial obtenida a través de imágenes digitales.

La visión artificial está encontrando un sin número de aplicaciones en la actualidad. Este artículo presenta solo algunas de estas, por ejemplo, los métodos para la detección de objetos, Haar-Cascade, utilizado para la detección de rostros y Matching Template, enfocado a la detección de líneas en carreteras, para la navegación autónoma de robots móviles. Por otra parte, la lectura de códigos QR es la nueva forma de almacenar gran cantidad información codificada dentro de un cuadrado, lo cual es útil para publicidad, marketing, diseño gráfico, papelería corporativa, entre otros.

PALABRAS CLAVE: Visión Artificial, Robots Móviles, Open CV, Python, Detección, Patrón.

VISIÓN ARTIFICIAL APLICADA AL CONTROL DE ROBOTS MÓVILES

Desde hace ya algún tiempo se habla mucho de los vehículos autónomos, especialmente de los coches que vendrán en el futuro, pero también vehículos aéreos no tripulados UAVs, (del inglés Unmanned Aerial Vehicle), submarinos autonomos AUVs (del inglés Autonomous Underwater Vehicles), barcos… etc. Este tipo de sistemas prometen traer grandes mejoras en seguridad, reducción de costes y optimización de recursos, eliminando, por supuesto, el error humano.

Para conseguir todo esto se utilizan una gran cantidad de sensores, como GPS, LIDAR (un acrónimo del inglés LIDAR, Light Detection and Ranging o Laser Imaging Detection and Ranging), radares o cámaras, y una multitud de técnicas procedentes de disciplinas tan diversas como son la ingeniería de control, la inteligencia artificial, la automatización, y la visión artificial.

Una de las principales necesidades de este tipo de vehículos es capturar una gran cantidad de información en sólo un instante de tiempo, por lo que la visión artificial es perfecta, ya que una cámara puede capturar muchos datos del entorno en centésimas de segundo [1].

BÚSQUEDA DE PATRONES MEDIANTE LA TÉCNICA TEMPLATE MATCHING

Figura 1. Línea detectada

La búsqueda de patrones es una técnica de análisis de imágenes que se utiliza para buscar una imagen dada (patrón o template) dentro de una imagen de mayor tamaño, donde no solo se busca apariciones exactas del patrón también se permite un grado de variación respecto al patrón original.

Template matching (Comparación de plantillas) es uno de los métodos más utilizados en la búsqueda de patrones, con la biblioteca de computación visual OpenCV esta tarea la realiza la función cv::matchTemplate() la cual se implementa con distintos métodos de comparación [2].

DETECCIÓN DE LÍNEAS EN CARRETERA

Figura 2. Plantilla

Una de las aplicaciones del método Template matching es el reconocimiento de líneas en carreteras y calles para el control de un robot autónomo, se toma como referencia la plantilla (Figura 2) de la línea de una carretera, este patrón se compara con el vídeo que se captura en el móvil (Figura 1) para posteriormente realizar la acción de control en la dirección y la velocidad.

AISLAMIENTO DE PATRONES RECTANGULARES

Figura 3. Detección de rectángulos

El aislamiento de patrones rectangulares tiene aplicación en la movilidad autónoma, se puede distinguir rectángulos que pertenezcan a una ruta determinada y realizar la acción de control para poder seguir estos patrones [3].

Se utiliza OpenCV importando la librería numpy, este asocia las coordenadas y colores de cada pixel para utilizarlas en el algoritmo, esto se requiere para obtener el contorno de la figura y determinar si es un rectángulo. Una vez que se detecta la figura se obtienen los centros de cada rectángulo, y de esta manera distinguir la ruta a seguir (Figura 3).

DETECTOR DE ROSTROS

A través del método de detección de objetos, Haar-Cascade en OpenCV se realiza la detección de rostros (Figura 4) o algún patrón determinado. La  finalidad de esta librería es realizar un aprendizaje automático, donde la función cascada es entrenada a partir de múltiples imágenes positivas y negativas, para posteriormente realizar la detección.

Figura 4. Detección de rostros

Una aplicación interesante es identificar personas dentro de un lugar establecido, como parques, tiendas, etc. [4].

LECTOR DE CÓDIGOS QR

La lectura de códigos QR proporciona información que puede ser de utilidad para indicarle al robot la acción a realizar. Por ejemplo, en un supermercado se encuentra un objeto posicionado en el pasillo incorrecto, el robot se percata de ello, realizando la lectura del código para poder mandar una alerta que indica que el objeto está mal posicionado.

Figura 5. Lectura de código QR

Para leer códigos QR se necesita la librería zbar y OpenCV instalada en Python 2.7.12. Son necesarias estas librerías puesto que con OpenCV se puede  realizar cualquier lectura de imagen que se presente a través de la cámara o imágenes predispuestas (Figura 5); mientras que con zbar se realiza la decodificación de los códigos [5].

REFERENCIAS

[1] Vehículos Autónomos y visión artificial, https://goo.gl/JonBKZ

[2] OpenCV Búsqueda de Patrones (Template Matching), https://goo.gl/yo6zwS

[3] Detección de figuras geométricas, https://goo.gl/FLsxa8

[4] Face Detection using Haar Cascades, https://goo.gl/FETfRT

[5] Detección de códigos QR en Python con OpenCV y ZBar, https://goo.gl/7H3UE4

[6] M. A. S. Oscar Möller, Javier W. Signorelli, “Algoritmo Para Detección De Bordes Y Ulterior Determinación De Objetos En Imágenes Digitales,” vol. XXX, pp. 1–4, 2011.

[7] Juan Daniel Estévez, Holger Ortega,Rodrigo Tufiño, ” Automatic identification of a playing card through kNN using a Raspberry Pi 3”

[8] L. R. Sudha and R. Bhavani, “Performance Comparison of SVM and kNN in Automatic Classification of Human Gait Patterns,” Int. J. Comput., vol. 6, no. 1, pp. 19–28, 2012

[9] [10] R. Padilla, C. F. F. Costa Filho and M. G. F. Costa, ”Evaluation of Haar Cascade Classifiers Designed for Face Detection”.

[11] Abhishek Kar, “Skeletal Tracking using Microsoft Kinect”.

[12] Y. Gang, L. Jiawei, L. Jiayu, M. Qingli and Y. Ming, “Illumination Variation in Face Recognition: A Review”, IEEE Second International Conference on Intelligent Networks and Intelligent Systems (ICINIS 2009), pp. 309-311.

[13] Ankit kumar, Akanksha Agrawal Template Matching In Remote Sensing & Image Processing (2015)

ACERCA DE LOS AUTORES

Dr. Juan José Muñoz César, Coordinador del Taller de Robótica en la ESIME Zacatenco. Profesor en el departamento de Ingeniería en Control y automatización del IPN ESIME Zacatenco. Áreas de investigación: inteligencia artificial, visión artificial, robótica y control.

 

Ing. Erick Edwin Espinoza Díaz, estudiante de posgrado en la Maestría en Ciencias en Diseño Mecánico por parte de la SEPI ESIME Zacatenco. Ingeniero Especialista brindando soporte técnico para los sistemas de monitoreo y control de los equipos y servicios auxiliares para la Compresión de Gas del Activo Abkatun Pol Chuc en la región marina suroeste de Pemex Exploración y Producción.

 

Aimé Veu Gordillo Valdés, estudiante de Ingeniería en control y automatización en la ESIME Zacatenco. Ganó el segundo lugar en el concurso de IDC Robocon 2017 en la universidad de Zhejiang, Hangzhou, China. Impartió  el workshop sobre programar autos con una tarjeta NXP en la Convención Internacional de Tecnología, Ciencia y Energía.

0
Comparte:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

This site uses Akismet to reduce spam. Learn how your comment data is processed.