Algoritmo de reconocimiento de personas mediante procesamiento digital de imágenes usando MATLAB
Algorithm of recognition of people by digital image processing using MATLAB
Algoritmo de reconhecimento de pessoas por processamento de imagem digital usando MATLAB
Heinerth Guillermo Romero- Macas I
heinerthromero@outlook.com
https://orcid.org/0000-0002-6972-9217
Correspondencia: heinerthromero@outlook.com
Ciencias técnicas y aplicadas
Artículo de investigación
*Recibido: 30 de julio de 2020 *Aceptado: 21 de agosto de 2020 * Publicado: 30 de agosto de 2020
- Ingeniero Electrónico (Sistemas Industriales) de la Universidad Salesiana de Quito, presidente de la Asociación Ecuatoriana de Robótica y Automatización. Creador y Director General de Robot Games Zero Latitud, la única competencia de Robótica a nivel local con acreditaciones internacionales. Ha participado en varias competencias de Robótica, a nivel nacional e internacional representando al Ecuador en países como Perú, Colombia, México y Japón. Desarrollador y Soporte técnico de proyectos expositivos como REMEDIACIÓN y NOOSFERA, uno de los primeros ingenieros locales en que desarrolla y automatiza proyectos artísticos que vinculan tecnología. Cofundador de la empresa de desarrollo en robótica para niños CHAR "Robótica, Educación y Arte". Docente de la Carrera de Tecnología Superior en Electrónica y Tutor del Club de Robótica del Instituto Superior Tecnológico Tsáchilas, Ecuador.
Resumen
El presente trabajo es el resultado de una investigación documental, experimental y proyectiva. Se desarrolló con el objetivo de diseñar un algoritmo para el reconocimiento de personas en robots móviles exploradores utilizando Matlab, debido a su sencillez de uso y configuración, y a su plena integración en el potente entorno de trabajo matemático. En este trabajo idealiza la formulación de técnicas de procesamiento digital, patrones de reconocimiento sobre imágenes y tecnología robótica empleada en las tareas de rescate de víctimas en condiciones de desastre, que sería posible de confeccionar en contexto ecuatoriano con recursos accesibles y optimizables para la gestión de emergencias.
Palabras claves: Algoritmo de reconocimiento, procesamiento de imágenes, robots, Matlab.
Abstract
This work is the result of documentary, experimental and projective research. It was developed with the aim of designing an algorithm for the recognition of people in mobile explorer robots using Matlab, due to its simplicity of use and configuration, and its full integration in the powerful mathematical working environment. In this work, he idealizes the formulation of digital processing techniques, image recognition patterns and robotic technology used in the rescue tasks of victims in disaster conditions, which would be possible to prepare in the Ecuadorian context with accessible and optimizable resources for the management of emergencies.
Key words: Recognition algorithm, image processing, robots, Matlab.
Resumo
Este trabalho é resultado de pesquisa documental, experimental e projetiva. Foi desenvolvido com o objetivo de projetar um algoritmo para o reconhecimento de pessoas em robôs exploradores móveis usando o Matlab, devido à sua simplicidade de uso e configuração, e sua total integração no poderoso ambiente de trabalho matemático. Neste trabalho, ele idealiza a formulação de técnicas de processamento digital, padrões de reconhecimento de imagem e tecnologia robótica usadas nas tarefas de resgate de vítimas em situações de desastre, que seriam possíveis de preparar no contexto equatoriano com recursos acessíveis e otimizáveis para o gerenciamento de emergências.
Palavras-chave: Algoritmo de reconhecimento, processamento de imagem, robôs, Matlab.
Introducción
En la actualidad, el avance de la tecnología es incontrolable y cada vez más se suman Universidades del Ecuador quienes están trabajando para adaptarse a los cambios que la sociedad y la educación demandan a fin de potenciar la adquisición de conocimientos prácticos y avanzados de mejor manera. Así, desde los laboratorios de robótica como práctica, y desde el pensamiento computacional como lógica, se buscan nuevas estrategias para solventar problemas matemáticos, económicos, ecológicos y humanos, que tienden a llamar algoritmos.
El mundo está lleno de algoritmos; en la vida diaria los algoritmos se emplean para poder resolver los problemas frecuentes, siendo los pasos a seguir, operaciones organizadas -basadas en actividades científicas, tecnológicas y en la toma de decisiones- que permiten llegar a una solución de un problema. Asimismo, no se puede obviar que existe una creciente importancia por el procesamiento digital de imágenes, que, en materia de tecnologías de la información y cómputo robótico, surge como disciplina fuente de datos esenciales para que una imagen sea efectivamente capturada por los sentidos, gracias a las oportunidades que ofrecen los dispositivos que incluso movilizamos desde nuestro bolsillo o aquéllos que se mueven entre los techos.
Es así como los sentidos humanos distinguen colores, intensidades de luz, olores, texturas, sabores, y procesar gran cantidad de información que recibe del ambiente que lo rodea, dándole a estos estímulos un significado y un contexto. Tecnológicamente, existen robots que desarrollan tareas específicas en un entorno previamente definido y si este entorno sufre alguna alteración, no prevista, el robot por sí solo no es capaz de sobrellevar su tarea. Sin embargo, se podría proveer al autómata de ‘"sentidos artificiales" como visión, detección o tacto, pero esto no es una solución inmediata ya que es necesario que el mismo lleve a cabo un procesamiento de todas estas variables las interprete y les dé un significado.
De acuerdo con el planteamiento de actuación artificial, la información esperada por los robots móviles es el conocimiento del ambiente en donde estos se desplazan. A diferencia de los robots manipuladores o fijos, que no pueden desplazarse y llevan a cabo tareas repetitivas, los robots móviles deben ser capaces de sortear cualquier eventualidad que se le presente durante su funcionamiento. Por tanto, el presente trabajo busca introducir los procesos de análisis y diseño algorítmico de reconocimiento de personas a partir del procesamiento digital de imágenes.
La idea fundamental es implementar aspectos adicionales que deben tenerse en cuenta para procesar imágenes en color, y así obtener buenos resultados tanto como aquéllos que aplican la mayoría de robots exploradores con sus sistemas avanzados de cámaras infrarrojas, sonares o incluso sistemas GPS, buscando maximizar los recursos en hardware y software en pro de la localización de personas, al considerar una simple cámara comercial y una efectiva segmentación de los atributos que conforman los objetos percibidos.
Desarrollo teórico
Importancia de los algoritmos
Un algoritmo es un método para resolver problemas, la popularización del término ha llegado con la aparición de la era informática, y Joyanes (1996) sostiene que dicha denominación proviene de Mohammed al-Khowarizmi, quien fuera un matemático, astrónomo y geógrafo persa musulmán, que vivió aproximadamente entre 780 y 850 (siglo IX) y alcanzó gran reputación por el enunciado de la reglas paso a paso para sumar, restar, multiplicar y dividir números decimales, dando los principios del álgebra y sentando la denotación traducida al latín de su apellido en la palabra Algorismus derivó posteriormente en Algoritmos.
En ciencias de la computación y en los procesos de secuencias detalladas y repetitivas de reglas, los algoritmos son muy importantes para poder llegar a finalizar una ejecución o solucionar un problema, por cuanto el diseño de ellos requiere creatividad y conocimientos profundos sobre técnicas de la programación; por eso, “en esencial, la solución de un problema se puede expresar mediante un algoritmo” (Joyanes, 1996, p. 4).
Combinando esta noción y el arquetipo de computadora que contiene dos aspectos tradicionalmente destacado que son el hardware -parte dura o física- y el software -parte blanda o lógica- que contribuyen al funcionamiento de las unidades de ejecución tecnológica, en particular, es destacable conectar la descripción del término algoritmo y su viabilidad observada por Chimbolema (2011) quien menciona:
“La importancia del software en un sistema informático se manifiesta si consideramos que es necesario para hacer que el hardware funcione. El software actúa en forma de dispositivos del ordenador, nos permiten comunicarnos con ellos y definen los procesos que aportaran resultados útiles, de esta forma partidos a los recursos hardware del sistema informático.” (pág. 33).
La palabra software se refiere a las instrucciones que se incorporan a un sistema informático para que este lleve a cabo una determinación función o procesamiento digital. Partiendo de esta sencilla definición, el campo que se esconde detrás es inmenso, porque engloba desde software de aplicación para llevar a cabo tareas muy específicas, y otras como software de sistema y de programación.
Introducción a MATLAB
Las herramientas computacionales han sido una gran ayuda para los ingenieros, ya que pueden tener un mejor entendimiento de conceptos aprendidos. Así mismo, se pueden realizar operaciones complejas en muy poco tiempo y tener más eficiencia al momento de hacer un trabajo. De ahí, la necesidad de contar con una herramienta que efectúe cálculos matemáticos de manera flexible y potente, con posibilidades gráficas para la presentación de los datos científicos, así como de desplegar comandos y funciones a medida.
En este trabajo se utilizó MATLAB, cuyo nombre proviene de “MATrix LABoratory'', el cual proporciona software interactivo para trabajar con facilidad y eficiencia con matrices, por lo mismo tiene un uso esencial tanto en industria como en universidades para el desarrollo de investigaciones. Según uno de los fundadores del proyecto entre los años 1970-80 y cofundador de la compañía Mathworks, Inc, Cleve Moler, MATLAB es un programa de cálculo técnico que brinda grandes prestaciones para el tratamiento de datos y la visualización de análisis numéricos, cálculo matricial, procesamiento de señales y gráficos.
Dada la incorporando de vectores y matrices, MATLAB se vale de un lenguaje de alto nivel y de ambiente interactivo que permite realizar tareas intensas y con una mayor velocidad que los lenguajes de programación comúnmente usados y realmente útil a la hora de expresar soluciones de la misma manera en que se escriben matemáticamente.
Figura 1. Entorno MATLAB
Sobre las bondades del lenguaje, éste fue construido por código llamado M-code que puede ser fácilmente ejecutado en la ventana de comandos, desde donde se pueden crear funciones, y potenciar otras librerías. Pero la razón principal para la elección de este lenguaje de programación son las herramientas que proporciona para el procesamiento de señales, y el conjunto de funciones para el procesamiento digital.
Además, para crear entornos gráficos se puede utilizar el GUIDE de MATLAB, que provee herramientas para crear GUIs, ‘Graphical User Interface’, con lo cual se puede crear la forma del entorno gráfico, así como asociar funciones a los elementos del GUI. MATLAB también incluye funciones para manipular archivos.
Procesamiento digital de imágenes
El procesamiento digital de imágenes desempeña un papel determinante como instrumento de las tecnologías de información y comunicación para establecer innovaciones en diversas áreas de conocimiento, sea evidenciada por mejoramiento en la calidad de la imagen a ser percibida por el ojo humano o bien, para ser interpretada por el computador (robot).
En tales caso, es importante asociar el concepto de imagen digital a la función ‘f(x,y)’ que posee dos dimensiones o coordenadas espaciales ‘x’ e ‘y’ que representan matemáticamente las propiedades visuales de una imagen analógica. Por tanto, cuando se observa una imagen gris o de color, dan cuenta de la descripción cuantitativa de los atributos de la función. Por lo tanto, una imagen digital refiere a una matriz donde a cada elemento le corresponde un valor de la función ‘f(x,y)’ representado por un número de bits finito, mientras que los índices de fila y columna representan la ubicación ‘x’ e ‘y’. A cada uno de los elementos de la matriz se le llama pixel (picture element). Los pixeles pueden ser escalares o vectores de la misma dimensión para toda la imagen, estos últimos pueden considerarse como compuestos por varios planos formados por píxeles escalares.
Ante estas descripciones prácticas, se conoce como procesamiento digital de imágenes al conjunto de técnicas y procesos para mejorar, extraer e interpretar la información contenida en una imagen por medio de un computador. Dicho de otra manera, es una forma especial del procesamiento de señales en dos (o tres) dimensiones, que busca extraer información contenida en la imagen, necesaria para que las aplicaciones intérpretes gestionen datos y potencialmente otorguen resultados satisfactorios.
De esta forma, es importante comprender el proceso de percepción visual, al momento de establecer criterios de fidelidad sobre la imagen, y así, desarrollar algoritmos de procesamiento y sistematizaciones de visualización, considerando sus propiedades implícitas de luminosidad, brillo y color. En este trabajo, el proceso que se llevó a cabo para el desarrollo del sistema es necesario conocer ciertos términos:
Espacios de color:
Son modelos matemáticos que permiten especificar, y manipular colores. El número de dimensiones del espacio depende del modelo que se utilice. Los colores se representan mediante puntos coordenados en estos espacios. Los modelos manejados en el diseño del algoritmo son el RGB y el HSV.
Modelo RGB (Red, Green y Blue):
Está formado por tres planos de imagen independientes, donde cada uno corresponde a un color primario (rojo, verde, azul); para producir una imagen de color compuesta, los tres planos se combinan en la pantalla.
Modelo HSV (Hue y Saturation y Value):
Permite reconocer un color en base al Matiz (Hue), la Saturación (Saturation) y el Valor o brillo (Value). El matiz indica el color al que se refiere (rojo, verde, naranja, etc.); la saturación indica la cantidad de blanco que tiene dicho color, siendo un color puro o completamente saturado el que no contiene blanco; y la componente brillo, es el grado de luminosidad del color.
Procesamiento morfológico de imágenes:
Técnica no lineal de tratamiento de las estructuras geométricas de una imagen basada en la teoría de conjuntos. Permite realizar operaciones de segmentación, restauración, detección de bordes, esqueletos, aumento de contraste, análisis de texturas, compresión, etc. El filtrado morfológico permite la atenuación de ruido y la extracción selectiva de estructuras y objetos en la imagen.
Figura 2. Procesamiento morfológico de imágenes
Debido a que el color de piel varía de persona a persona, el algoritmo reconoce distintos tonos de color naranja entre claros y oscuros. Para reconocer el color de piel se realiza un tratamiento morfológico de la imagen, el cual permite resaltar las zonas convenientes en función de un rango de valores de color dados.
Tal proceso se realiza en el espacio HSV para evitar medidas erróneas debidas a variaciones de iluminación del ambiente. Como es muy probable que se detecten varias regiones de piel, para evitar confundir al operador se selecciona la región con mayor número de píxeles para realizar el seguimiento.
Figura 3. Lógica de reconocimiento de patrones
Para cerrar, se puede declarar que las etapas o lógica algorítmica de procesamiento digital de imágenes fueron: Adquisición (captura de imágenes a través de sensor del dispositivo usado: cámara), Preprocesamiento (adecuación y caracterización de la imagen obtenida), Segmentación (región determinada o puntos de interés filtrados según patrones), Descripción (selección de rasgos y valores diferenciadores), Reconocimiento (etiquetado de los objetos según los datos descritos) e Interpretación (grupo de valores que se consideran para la toma de decisiones).
Materiales y Métodos
Siguiendo a Hernández, Fernández y Baptista (2014), la investigación es una herramienta para conocer lo que nos rodea y su carácter universal, mientras que la investigación científica es un proceso dinámico, cambiante y continuo. Ante esta definición este trabajo se realizó bajo el enfoque positivista, el cual promueve la discusión de las consecuencias y soluciones alternas para llegar a una conclusión crítica después de evaluar los datos analizados.
La metodología de investigación consistió en seleccionar el tema, generar preguntas sobre el tema, recolectar información significativa que sirviera al desarrollo de la investigación, diagnosticar y evaluar las fuentes, establecer una postura, y explicar el modelo operativo propuesto, sobre la base de código manipulado con la herramienta de software MATLAB, instrumentación requerida y condiciones de uso, a fin de cumplir con los objetivos del trabajo.
Igualmente, la investigación se ubica de tipo bibliográfica, porque proporciona fuentes documentales que profundizaron los diferentes, conceptos teorías y enfoques sobre el tema. Es una investigación con diseño experimental, debido a que sometió variables de datos capturados condiciones particulares para ser tratados y gestar resultados con base a fórmulas matemáticas para el reconocimiento de personas incluídos en robots; y también, refiere a una modalidad proyectiva de investigar, por cuanto sirve para establecer una propuesta viable de aplicación robótica posterior que incluya diversas opciones de configuración, pruebas y comercialización.
Discusión y resultados
Al momento que una unidad de rescatistas llega a un lugar siniestrado debe seguir una serie de pasos previo al rescate de una persona: buscar, localizar, ingresar, estabilizar y rescatar. Pero estos pasos deben llevarse a cabo aplicando todas las medidas de seguridad necesarias tanto para el personal de rescate como para la víctima, por medio de una estructura organizada, planes, protocolos y procedimientos de operación, sin embargo, todos estos protocolos retrasan el acceso al área del desastre reduciendo el tiempo y la probabilidad de supervivencia de las víctimas que se encuentren atrapadas.
Durante una catástrofe se presentan varios escenarios, unos donde la accesibilidad es relativamente fácil y las víctimas pueden ser rescatadas con mayor facilidad, pero los lugares de difícil acceso y potencial peligro van a ser los espacios donde los robots (drones, por ejemplo) se desenvolverían de la mano del software procesador de imágenes.
Para esto se implementó el sistema de reconocimiento de personas, con la herramienta MATLAB que redujo considerablemente la complejidad del procesamiento digital de señales y que traiga consigo facilitar la labor de búsqueda y recolección de datos en un robot móvil, disminuyendo tiempo y esfuerzo para supervivencia de personas en condiciones de emergencia.
Figura 4. Pruebas de sistema
|
|
Figura 5. Pruebas de ejecución
Conclusiones
Gracias a la información obtenida en las pruebas del sistema, se puede afirmar que el prototipo desarrollado cumple con los parámetros de procesamiento, maniobrabilidad y funcionalidad a lo cual definido, y al mismo tiempo, deja abiertas vías de investigación, realización de pruebas, implementaciones de base de conocimientos métodos de extracción, para futuros cambios que permitan mejorar el trabajo expuesto para la industria de sistemas de seguridad.
Referencias
1. Chimbolema, J. (2011). Software multimedia como herramienta didáctica. Guaranda (Chimborazo), Ecuador. UEB. 132p.
2. Fernández, C., Hernández, S. y Batista, P. (2014). Metodología de investigación. México: Sexta Edición, Editorial Mc Graw Hill Education.
3. Gil, M. (2003). Introducción rápida a Matlab y Simulink para Ciencia e Ingeniería. Ediciones Díaz de Santos, S.A. Madrid, España.
4. Gilat, A. (2006). MATLAB: una introducción con ejemplos prácticos. Editorial Reverté, S.A.
5. Joyanes, L. (1996). Fundamentos de programación: Algoritmos y estructura de datos. España: Mc Graw Hill.
6. Kuc, R. (1982). Introduction to digital signal processing. Prentice-Hall Singapore.
7. Oppenheim, A., Schafer, R.W., y Buck, J.R. (1989). Discrete-time signal processing. 2ª edición. Prentice-Hall, Inc. New Jersey.
8. Mejía, J. (2017). Desarrollo de un algoritmo en matlab para la optimización de la resolución de una tarjeta USRP B210 para aplicaciones SDRadar. Escuela Superior Politécnica de Chimborazo. Riobamba. Disponible en línea: http://dspace.espoch.edu.ec/handle/123456789/7523
9. Ramos, S. (2012). Aplicación del programa MATLAB en la resolución de ecuaciones diferenciales aplicado a la materia de Cálculo Tres. Universidad Católica de Santiago de Guayaquil. Facultad de Educación Técnica para el Desarrollo. Ingeniería en Telecomunicaciones mención Gestión Empresarial de las Telecomunicaciones. Tesis publicada. Disponible en línea: http://repositorio.ucsg.edu.ec/bitstream/3317/8531/1/T-UCSG-PRE-TEC-ITEL-202.pdf.
©2019 por los autores. Este artículo es de acceso abierto y distribuido según los términos y condiciones de la licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0) (https://creativecommons.org/licenses/by-nc-sa/4.0/).
Enlaces de Referencia
- Por el momento, no existen enlaces de referencia
Polo del Conocimiento
Revista Científico-Académica Multidisciplinaria
ISSN: 2550-682X
Casa Editora del Polo
Manta - Ecuador
Dirección: Ciudadela El Palmar, II Etapa, Manta - Manabí - Ecuador.
Código Postal: 130801
Teléfonos: 056051775/0991871420
Email: polodelconocimientorevista@gmail.com / director@polodelconocimiento.com
URL: https://www.polodelconocimiento.com/