Sistema Minimalista Embebido de Reconocimiento en Tiempo real de Figuras Geométricas
Texto completo
(2) OBJETIVOS DEL PROYECTO Objetivo General . Implementar sobre una plataforma de desarrollo un algoritmo que permita el reconocimiento de figuras geométricas.. Objetivos Específicos . Establecer las características del algoritmo y el hardware que se requieren para el desarrollo del sistema.. . Implementar un algoritmo que permita el reconocimiento de 3 figuras geométricas básicas (Rectángulo, Circulo y Triangulo) en el sistema ensamblado.. . Establecer un protocolo de pruebas y realizar una validación del algoritmo desarrollado y funcionando en conjunto con el software.. . Realizar un artículo que muestre la metodología, resultados y conclusiones obtenidas con el desarrollo del proyecto.. METODOLOGÍA DESARROLLO. Y. PROCESOS. DE. ESTADO DEL ARTE El procesamiento digital de imágenes permite modificar características propias de las imágenes digitales, utilizando un sistema de procesamiento en el que funciona un software destinado para tal fin, cuyo objetivo principal es poder extraer la mayor cantidad de información relevante para cada tipo de usuario. Debido a esto surgen varios tipos de aplicaciones dentro de las cuales se puede encontrar: detección y/o presencia de objetos en movimiento, medición de características (morfológicas o de superficie), inspección visual automatizada, identificación del color de los objetos y/o piezas, mejoramiento de la calidad de imágenes y restauración de imágenes degradadas. Una herramienta para el procesamiento de imágenes [1], para la detección visual e identificación de objetos conocidos situados aleatoriamente en ambientes complejos. Donde la técnica utilizada representa los objetos o puntos de interés en diferentes escalas y busca coincidencias dentro de los diferentes fotogramas que componen la secuencia de imágenes donde se va a realizar la búsqueda. Otra herramienta para la identificación de figuras [2], propone un método geométrico y dinámico basado en la búsqueda de formas en algunos conjuntos de imágenes. El algoritmo acopla las diferentes formas contenidas en estos conjuntos para realizar una segmentación de la imagen. Se realiza una transformación de la imagen a un espacio de dos dimensiones, y un análisis de componentes principales para representar la variación de la forma y calcular un número suficiente de proyecciones posibles en las direcciones que puede tener un objeto y así realizar su detección.. Otros autores [3] se basan en la geometría de la cara para el reconocimiento de la expresión facial, utilizando un ASM (Modelo Forma Activa) que toma como base la normalización y el modelo de Markov (Ehmm), implementando su algoritmo en un sistema embebido. Muestra que se pueden detectar diferentes expresiones de la cara, realizando una alineación para que se asemeje a las eigenface (Base de datos de imágenes de caras) y luego las compara con la expresión actual y concluye que el método de adquisición de las caras basado en ASM mejora el rendimiento del sistema. Sin embargo se propone [4] un método sencillo de detección de movimiento incorporando una técnica de detección de patrones y formas, difiere del anterior [3] el cual es usado generalmente en la detección de formas y contornos. Utiliza una función bayesiana para obtener la distribución de probabilidad de las imágenes y prever un movimiento futuro. La principal contribución de este artıculo es la optimización aplicada en la detección de movimiento. La detección de la imagen obtiene formas geométricas y características [5] exteriores del objetivo en una distancia muy corta y suministra la información relevante sobre el objetivo. Pero debido a la gran cantidad de la información suministrada en tiempo real por la cámara, en algunas ocasiones se encuentra algo de ruido o distorsiones del objetivo, para resolver este problema se optó por usar un indicador laser el cual permite marcar la región de interés. El algoritmo binariza la imagen para obtener y orientar el esqueleto. En segundo lugar, se extrae la forma del objetivo. Por último, se realiza un mapeo utilizando la técnica FMW (Característica Red Mapeo Wave) para obtener el estado del objetivo.. Interpretación de una Figura de Manera Computacional La reinterpretación de formas es realizada por herramientas de diseño computacional, esto permite a un modelo digital ser creado, el cual se define utilizando un conjunto fijo de elementos geométricos como bordes y superficies. A partir de esta estructura se pueden reconocer patrones y asociaciones, cuando formas emergentes se ajustan a subconjuntos del conjunto original de elementos geométricos [4]. Sin embargo, algunas de estas herramientas no permiten al diseñador manipular fácilmente todos los subconjuntos de figuras, ocasionando que no puedan generar nuevas estructuras. Como resultado, no son libres de explorar los patrones y asociaciones que surgen por defecto durante el desarrollo del diseño. Ellos se limitan a formas de manipulación según la estructura, por lo que el diseño en algunas ocasiones no es ideal [4]. Se ha propuesto un enfoque que tiene como objetivo hacer frente a este problema al permitir la manipulación de los patrones de diseño de acuerdo con las estructuras percibidas. El WYPIWYG (What You Perceive is What You Get) [7] es un sistema que permite la interpretación de imágenes basado en un grupo de figuras base. Estas figuras base están ordenadas de modo tal que permiten interpretaciones perceptuales es decir encontrar el objeto de mayor similitud con la base de figuras. Del mismo modo [8] elabora un algoritmo que automatiza el reconocimiento.
(3) de subconjuntos de figuras en un boceto. El algoritmo reconoce estas formas emergentes mediante el uso de un patrón estándar empleado comúnmente en los sistemas de dibujo para reconocer e identificar elementos y configuraciones en las de entradas a mano alzada. Por último se encuentra un enfoque [9] basado en formas gramaticales, en el que las reglas de sustitución se aplican para reconocer y manipular subconjuntos de imágenes percibidas en una imagen. Estas reglas de forma proporcionan una doble ventaja, ya que además de permitir a la estructura percibida ser fácilmente reconocida, también formalizan el proceso creativo mediante el cual se genera una señal de percepción y repetición del proceso. Una limitación importante de cada uno de estos procesos radica en las tareas de aprendizaje, tareas necesarias para inter-actuar con ellos. Por ejemplo en un algoritmo [7] el usuario es requerido para entrenar al sistema con gestos específicos con el fin de especificar una percepción particular de un diseño. O el sistema [8] requiere formación previa con respecto a lo que los diseñadores podrían encontrar interesante. En cada uno de estos se requiere un esfuerzo adicional para interactuar con el sistema y no importa lo pequeño que este esfuerzo sea, puede ocasionar una distracción durante el ciclo de trabajo del usuario. Lo ideal es que el sistema sea dinámico y que pueda soportar una proceso cognitivo de en tiempo real, el cual ofrecería beneficios evitando la necesidad de que los usuarios definan explícitamente su interpretación de formas diseñadas. Debido a esto surge la tecnología de seguimiento ocular que se presenta como una interfaz para sistemas de dibujo [10].. Figura 1. Sistema Embebido [11].. Módulo de Cámara para “Raspberry pi Model B+” La Raspberry Pi puede ser conectada a diferentes tipos de cámara (Ver figura 2), algunas de estas pueden ser conectadas como un periférico a puerto USB o directamente a la interfaz gráfica mediante un bus de datos, como la cámara empleada es un complemento los controladores están definidos por defecto dentro del sistema operativo.. CONSTRUCCIÓN DEL PROTOTIPO El sistema de procesamiento, se ensamblo con el fin de tener una plataforma de bajo costo para realizar las tareas de reconocimiento y representación visual de figuras geométrica. Las partes que lo componen son: . Tarjeta ”Raspberry pi Model B+”. Una cámara 5 Megapíxeles. Un adaptador de 5V 800mA. Un cable HMI.. Sistema embebido “Raspberry pi Model B+”. Figura 2. Cam-pi [11]. La cámara fue equipada con un circuito de control de iluminación (Ver figura 3), dicho circuito se encarga de controlar la luminosidad del lugar de pruebas, es decir cuando el espacio donde se está realizando el experimento es oscuro el controlador aumentara el brillo de los LED y viceversa. Este circuito se basa en 4 diodos LED de chorro blanco que se encargan de iluminar, un transistor que amplifica la corriente y una fotorresistencia para censar la cantidad de luz.. La Raspberry Pi (Ver figura 1) es un computador de bajo costo que se conecta a un monitor, utiliza dispositivos periféricos como un teclado y un ratón estándar. Su sistema operativo se basa en Linux y se llama ”Raspbian”, la cual es una variante de Ubuntu y se programada en el lenguaje ”python”. Tiene la capacidad de interactuar con el mundo exterior mediante puertos de entrada y salida de señales digitales, sin embargo debido a su versatilidad es usada por usuarios de todo el mundo para aprender a programar y entender cómo funcionan los computadores [11]. Figura 3. Control de luz..
(4) Ensamblaje Operativo. e. Instalación. del. Sistema. El ensamblaje de la estructura es bastante sencillo solamente se conectan los periféricos en los puertos marcados con su nombre y se protegen dentro de una carcasa (Ver figura 4). Figura 5. Imagen Sin Procesar.. Figura 4. Montaje final.. Figura. 6. Imagen HSV.. Para instalar el sistema operativo (Raspbian) se realizó el siguiente procedimiento; . Descargar la imagen del SO desde el siguiente enlace; http://www.raspberrypi.org/downloads/.. . Seguidamente se instaló el programa Win32DiskImager y con este se grabó el SO en la tarjeta micro SD.. . Se insertó la tarjeta micro SD en la Raspberry, se conectó a un monitor mediante un cable HMI y se configuro el SO a través de un teclado USB.. . Por último se Descargó el OpenCV desde el siguiente enlace; http://opencv.org/ e instalo en la raspberry.. Figura. 7. Imagen Binarizada. A esta nueva imagen binarizada (color azul=1, otros colores=0) se aplican dos tipos de operaciones morfológicas, la primera es una operación de cierre la cual se encarga de unir los pixeles de color blanco sueltos (Para rellenar huecos en la imagen) y la segunda de apertura que expande los grupos de pixeles de color blanco (Para eliminar estrecheces o grupos de pixeles pequeños) (Ver figura 8).. DESARROLLO DE LOS ALGORITMOS DE PROCESAMIENTO DE IMAGENES Se realizaron dos algoritmos de procesamiento de imágenes, los cuales permiten el reconocimiento de figuras geométricas básicas, entre las cuales se encuentran círculos, triángulos y rectángulos. Dichos algoritmos reconocen figuras geométricas sin importar el color o textura de fondo, sin embargo le favorecen ambientes con fondos de un solo color y hagan contraste con el color de la figura geométrica.. Algoritmo A Este Algoritmo se encarga de procesar la información del entorno capturada mediante una cámara (Ver figura 5), realizando una conversión de RGB (Formato propio de la cámara) a HSV (tiene un rango de azules mayor que RGB (Ver figura 6)) filtrando el color azul (Ver figura 7) de la imagen capturada utilizando la cámara.. Figura. 8. Imagen filtrada. Con el fin de desenfocar la imagen, aumentar el área de representación de la figura y suavizar los bordes, la imagen se difumina aplicando una operación de ruido Gaussiana y seguidamente se realiza un filtro canny para la extracción de los bordes (Ver figura 9).. Figura. 9. Bordes de La imagen..
(5) Una vez terminada la extracción de los bordes se realiza un cálculo de las áreas delimitadas, con este procedimiento se eliminan las áreas menores a 50 pixeles, que en algunos casos no son representativas o simplemente son ruido y por ultimo una función se encarga de aproximar los diferentes puntos de los bordes mediante un polinomio, con el fin de encontrar el número de puntas de la figura y con dicho numero estimar el tipo de figura (Ver figura 10 y 11).. Algoritmo B De la misma forma que el algoritmo A tienen una estructura similar, sin embargo se realizó una modificación en el sistema de detección de puntas, este sistema fue cambiado por un algoritmo basado en la normalización y detección de errores. Esta función realiza una medición de distancia entre los puntos reconocidos de la figura y guarda la longitud del segmento más largo. Dicho segmento es utilizado para escalar los segmentos restantes, es decir todas las longitudes de los segmentos de la figura son divididas entre la longitud del segmento más largo (Ver figura 12). Seguidamente alrededor circunferencia (Ver figuras áreas sobrantes y así según figura (Áreas sobrantes circulo>4).. de cada figura se traza una 13-15), y se cuentan la cantidad de este número se determina el tipo de para: triangulo=3, rectángulo=4,. Figura. 10. Aproximación.. Figura. 12. Segmento Mayor Figura. 11. Salida.. El funcionamiento de la aplicación desarrollada se muestra en el siguiente seudocódigo: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:. Iniciar Variables(); Iniciar Cámara(); Imagen=Capturar Imagen(); Imagen=Convertir a Formato HSV(Imagen); Imagen=Operación Morfológica de Cierre (Imagen); Imagen=Operación Morfológica de Apertura (Imagen); Imagen=Ruido Gaussiano(Imagen); Imagen=Filtro Canny(Imagen); [Número de objetos, Contornos, Áreas]=Encontrar Contornos(Imagen); for i=1:Numero de objetos do if Áreas(i) > 50 then Numero de pun-tas=Aproximar mediante un polinomio(Contorno(i)); if Numero de puntas==3 then Imprimir(Triangulo); end if if Numero de puntas==4 then Imprimir(Rectángulo); end if if Numero de puntas>=5 then Imprimir(Circulo); end if end if end for. Figura. 13. Triangulo.. Figura. 14. Cuadrado.. Figura. 15. Círculo..
(6) Para mostrar el funcionamiento de esta aplicación se realizó el siguiente seudocódigo; 1: 2: 3: 4: 5: 6:. Iniciar Variables(); Iniciar Cámara(); Imagen=Capturar Imagen(); Imagen=Convertir a Formato HSV(Imagen); Imagen=Operación Morfológica de Cierre (Imagen); Imagen=Operación Morfológica de Apertura (Imagen); 7: Imagen=Ruido Gaussiano(Imagen); 8: Imagen=Filtro Canny(Imagen);. 1: [Número de objetos, Contornos, Áreas]=Encontrar Contornos(Imagen); 2: for i=1:Numero de objetos do 3: Longitud segmento mayor=medir segmentos(Áreas(i)); 4: Imagen normal-izada=normalizar(Áreas(i),Longitud segmento mayor); 5: Nueva imagen=trazar circunferencia(Imagen normalizada, Longitud segmento mayor); 6: Cantidad de áreas sobrantes=contar áreas(Nueva Imagen); 7: if Numero de áreas Sobrantes==3 then 8: Imprimir(Triangulo); 9: end if 10: if Numero de áreas Sobrantes==4 then 11: Imprimir(Rectángulo); 12: end if 13: if Numero de áreas Sobrantes>4 then 14: Imprimir(Circulo); 15: end if 16: end for. función de cronometro implementada dentro del código y estos fueron tabulados en la siguiente tabla 1; Tabla 1. Tiempo de procesamiento para reconocer 1 figura.. Figura. 16. Patrón de reconocimiento. Este algoritmo resalta el color del borde de la figura detectada, para indicar que dicha figura ya fue reconocida (Azul=rectángulo, Rojo=Circulo, Verde=triangulo). El tiempo de procesamiento de cada algoritmo, fue medido con una. Algoritmo B. 500ms. 550ms. Raspberry. 2s. 2.5s. Para probar el margen de error de cada uno de los algoritmos, se realizaron pruebas con varios fondos que varían el número y forma de las figuras presentes en el fondo, cuyos resultados son reportados en las siguientes tablas 2 y 3; Tabla 2. Figuras procesadas algoritmo A. Cantidad. Círculos. Triángulos. Rectángulos. Aciertos. 1. 1. 0. 0. 1. 1. 0. 1. 0. 1. 1. 0. 0. 1. 1. 6. 2. 2. 2. 6. 7. 3. 3. 1. 6. 8. 2. 2. 4. 8. 9. 5. 2. 2. 9. 10. 2. 5. 3. 9. Tabla 3. Figuras procesadas algoritmo B.. RESULTADOS Los algoritmos desarrollados fueron probados en un computador de escritorio y posteriormente salvados en el sistema embebido. Se tomaron varias siluetas de color blanco de fondo que contienen un rango entre 6 y 10 de figuras geométricas (Ver figura 16).. Algoritmo A PC Escritorio. Cantidad. Círculos. Triángulos. Rectángulos. Aciertos. 1. 1. 0. 0. 1. 1. 0. 1. 0. 1. 1. 0. 0. 1. 1. 6. 2. 2. 2. 6. 7. 3. 3. 1. 7. 8. 2. 2. 4. 8. 9. 5. 2. 2. 9. 10. 2. 5. 3. 10. CONCLUSION . Se diseñó una estrategıa para el reconocimiento de figuras geométricas, basada en la normalización de la imagen, que a pesar de sacrificar tiempo de procesamiento mejora la capacidad de reconocimiento de las figuras por el sistema.. . La estrategıa de reconocimiento de figuras a partır de una aproximación polinómica, es útil cuando el contorno de la figura es continuo, es decir no hay líneas cortadas y funciona para figuras cerradas.. . El sistema embebido puede consolidarse como una solución a problemas de ingeniería de bajo costo, gracias a que es un sistema versátil y multiplataforma.. AGRADECIMIENTOS . Este trabajo está dedicado a Dios, Familiares, Amigos y compañeros que nos han apoyado a lo largo del desarrollo de nuestros estudios..
(7) REFERENCIAS. [6] M. Prats, Interpretation of Geometric Shapes ? An Eye Movement Study, ETRA, pp. 243-250, 2010.. [1] M. S. I. Andrzej Sluzek, Using Interest Points for Robust Visual De-tection and Identification of Objects in Complex Scenes, International Conference on Intelligent Robots and Systems, p. 5326, 2006.. [7] M. SAUND, Symposium on User Interface Software and Technology, Marina del Rey, 1994.. [2] A. Shalaby, Probabilistic shape-based segmentation method using level sets, IET Computer Vision, pp. 182-194, 2012. [3] D.-J. Kim, Geometric Feature-based Face Normalization for Facial Expression Recognition, Second International Conference on Artificial Intelligence, Modelling and Simulation, pp. 170-175, 2014. [4] T. Zeynep Yucel, Identification of Mobile Entities Based on Trajectory and Shape Information, IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 3589-3594, 2011. [5] S. Chengtian, The Image Processing and Target Identification of Laser Imaging Fuze, Proceedings of 2008 3rd International Conference on Intelligent System and Knowledge Engineering, pp. 1116-1120, 2008.. [8] G.M.D., Emergence in a recognition based drawing interface, Visual and Spatial Reasoning in Design II, pp. 51-65, 2001. [9] STINY, Talking about Seeing and Doing, Cambridge, 2006.. MIT-. [10] HORNOF, A system for drawing pictures with eye movements, Pro-ceedings of ASSETS- International ACM SIGACCESS Conference on Computers and Accessibility, 2004. [11] Raspberrypi Comunnity, What is a Raspberry Pi?, Consultado el 04 de Julio de 2016, disponible en: https://www.raspberrypi.org/help/what-is-a-raspberry-pi/.
(8)
Figure
Documento similar
Luis Miguel Utrera Navarrete ha presentado la relación de Bienes y Actividades siguientes para la legislatura de 2015-2019, según constan inscritos en el
Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..
La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de
You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you
Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information
The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the
Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in
La combinación, de acuerdo con el SEG, de ambos estudios, validez y fiabilidad (esto es, el estudio de los criterios de realidad en la declaración), verificada la