Sistema para detección y rastreo de sillas en tiempo real para el robot de servicios Golem II+ Memoria de proyecto

Sistema para detección y rastreo de sillas en tiempo real para el robot de servicios Golem –II+ Memoria de proyecto Que para obtener el título en Ing

0 downloads 24 Views 2MB Size

Recommend Stories


DESARROLLO DE UN SISTEMA DE NAVEGACION Y TELEMETRIA EN TIEMPO REAL PARA UN ROBOT MOVIL DESDE UN SMART PHONE
DESARROLLO DE UN SISTEMA DE NAVEGACION Y TELEMETRIA EN TIEMPO REAL PARA UN ROBOT MOVIL DESDE UN SMART PHONE Cichanowski Miguel Kornuta, Cristian Mar

Sistema Distribuido en Tiempo Real
Sistema Distribuido en Tiempo Real Julio Javier Castillo [email protected] Marina Elizabeth Cardenas [email protected] LIS-Laboratorio d

Manual de usuario Sistema de Rastreo MS03
Manual del usuario sistema de rastreo MS03 Manual de usuario Sistema de Rastreo MS03 V1 Dude Where is My SA de CV Te:(55)5341-3147 soporte@tra

RELOJ DE TIEMPO REAL
RELOJ DE TIEMPO REAL Planteamiento: Utilizar el Reloj de Tiempo Real del PLC SX (RTC y/o Real Time Clock) para configurar una hora y fecha para mostra

Desarrollo de un sistema de control y potencia de bajo costo para sillas de ruedas motorizadas
14th Argentine Symposium on Technology, AST 2013 Desarrollo de un sistema de control y potencia de bajo costo para sillas de ruedas motorizadas Walte

Story Transcript

Sistema para detección y rastreo de sillas en tiempo real para el robot de servicios Golem –II+ Memoria de proyecto Que para obtener el título en

Ingeniero en Mecatrónica

Presenta

Guadalupe Antonio Castro García

Cd. Obregón, Sonora;

Diciembre de 2014 1

Agradecimientos

A mi señora madre Hildelisa Garcia Herrera, que ha hecho hasta lo imposible para que pudiera seguir adelante en el camino de la vida, por su apoyo y amor incondicional que siempre me ha brindado. Porque ha sido y será un ejemplo a seguir y espero siempre se sienta tan orgullosa de mi como yo siempre lo he estado de usted. Gracias madre mía.

A mi hermano Alejandro con el que he compartido casi toda mi vida, gracias por compartir tantos bueno y malos momentos conmigo, gracias por apoyarme cuando lo he necesitado.

A mi pequeño hermano Cruz Alberto, por ser una persona tan noble, talentosa y buen amigo. Recuerda que yo siempre estaré para ti cuando lo necesites pequeño saltamontes.

A mis amigos de la universidad, David, Gildardo, José Luis, Héctor e Irving con los que compartí grandes experiencias durante toda esta gran travesía. Por todas las alegrías, pelas, risas, enojos y enseñanzas que vivimos juntos. Nunca los olvidaré nenas.

A mi asesor el Maestro Jose Manuel Campoy Salguero que me apoyado y motivado para concluir esta etapa de mi vida con éxito.

Por último pero no menos importante, al Dr. Ivan Vladimir Meza Ruiz y a todos mis compañeros del verano de investigación Alfredo, Héctor, Rocela, Karla, Raúl, Guillermo, Frine, Adrian, Fernando el grande y Fernando el chico con los cuales aprendí y compartí buenos momentos desarrollando este proyecto, experiencias que nunca olvidaré.

2

Índice Tabla de Figuras .................................................................................................................. 4 Capítulo I. Introducción ....................................................................................................... 6 1.1.- Antecedentes ........................................................................................................... 6 1.2.- Planteamiento del problema .................................................................................. 8 1.3.- Justificación .............................................................................................................. 9 1.4.- Objetivo ..................................................................................................................... 9 1.5.- Delimitaciones........................................................................................................ 10 1.6.- Limitaciones ........................................................................................................... 10 Capítulo II. Método ............................................................................................................. 11 2.1.- Sujeto ...................................................................................................................... 11 2.2.- Materiales ............................................................................................................... 12 2.3.- Procedimiento ........................................................................................................ 13 2.3.1.- Estudio del estado del arte. .......................................................................... 14 2.3.2.- Recolección de la base de datos. ................................................................ 14 2.3.3.- Etiquetación de la base de datos. ............................................................... 14 2.3.4.- Creación de Modelos. .................................................................................... 15 2.3.5.- Pruebas............................................................................................................ 16 2.3.6.- Resultados....................................................................................................... 16 Capitulo III. Desarrollo ....................................................................................................... 17 3.1.- Recolección de base de datos para el aprendizaje del sistema detector. ... 17 3.2.- Etiquetación de la base de datos. ...................................................................... 24 3.3.- Creación de modelos. ........................................................................................... 35 Capitulo IV. Resultados ..................................................................................................... 43 Capítulo V. Conclusiones.................................................................................................. 47 Referencias Bibliográficas ................................................................................................ 49

3 iii

Tabla de Figuras Figura 2 1. Procedimiento para la elaboración del proyecto....................................... 13 Figura 2 2. Diagrama del proceso de elaboración de modelos. ................................. 15 Figura 3 1. Fotografía con demasiada iluminación....................................................... 18 Figura 3 2. Fotografía borrosa. ........................................................................................ 19 Figura 3 3. Ninguna de las sillas muestra todas sus partes visibles en la fotografía. .............................................................................................................................................. 19 Figura 3 4. La silla que esta al centro de la fotografía muestra todas sus partes. .. 20 Figura 3 5. Silla con todas sus partes y en diferentes ángulos. ................................. 20 Figura 3 6. De cuatro patas, asiento, respaldo y color café. ....................................... 21 Figura 3 7. De cuatro patas, asiento, respaldo, apoya manos y color azul. ............. 21 Figura 3 8. De rueditas, asiento, respaldo y color azul. ............................................... 22 Figura 3 9. De rueditas, asiento, respaldo, apoya manos y color azul. .................... 22 Figura 3 10. De rueditas, asiento, respaldo, apoya manos y color negro. ............... 22 Figura 3 11. Paredes y muebles del laboratorio. .......................................................... 23 Figura 3 12. Pasillos de las instalaciones. ..................................................................... 24 Figura 3 13. Personas en interacción con Golem. ....................................................... 24 Figura 3 14. Librerías utilizadas y argumentos de entrada del programa. ............... 25 Figura 3 15. Lectura de imágenes, modificación de características y almacenamiento. ................................................................................................................ 26 Figura 3 16. Librerías utilizadas, lectura de imágenes y coordenadas. .................... 28 Figura 3 17. Movimiento de la etiqueta (mouse), salir del programa de etiquetación (tecla escape o “q”). ........................................................................................................... 28 Figura 3 18. Adición del recuadro rojo y azul (tecla control izquierdo). .................... 29 Figura 3 19. Incremento (tecla space) y decremento (tecla Shift izquierdo) de la etiqueta. ............................................................................................................................... 29 Figura 3 20. Recuadro de confirmación (tecla Alt izquierdo) y eliminación de recuadro rojo y azul (tecla “x” y “s” respectivamente). ................................................. 30 Figura 3 21. Para avanzar o retroceder en las imágenes a etiquetar. ...................... 30 Figura 3 22. Almacenamiento de etiqueta y coordenadas de la misma (tecla enter). .............................................................................................................................................. 31 Figura 3 23. Etiqueta para sillas de rueditas, asiento, respaldo y color azul. .......... 31 Figura 3 24. Para silla de cuatro patas, asiento, respaldo, apoya manos y color azul. ...................................................................................................................................... 32 Figura 3 25. Etiqueta para silla de rueditas, asiento, respaldo, apoya manos y color negro. ................................................................................................................................... 32

4 iv

Figura 3 26. Etiqueta para silla de rueditas, asiento, respaldo, apoya manos y color azul. ...................................................................................................................................... 33 Figura 3 27. Etiqueta para silla de cuatro patas, asiento, respaldo y color café. .... 33 Figura 3 28. Etiquetación de fotografías negativas (1). ............................................... 34 Figura 3 29. Etiquetación de fotografías negativas (2). ............................................... 34 Figura 3 30. Configuración para el descriptor HOG de una imagen. ........................ 35 Figura 3 31. Configuración del SMV para un conjunto de objetos. ........................... 36 Figura 3 32. Librerías utilizadas y argumentos de entrada del programa. ............... 36 Figura 3 33. Se abren las etiquetas positivas y se calcula su descriptor HOG. ...... 37 Figura 3 34. Se abren las etiquetas negativas y se calcula su descriptor HOG. ..... 37 Figura 3 35. Entrenamiento y almacenamiento del modelo. ....................................... 38 Figura 3 36. Argumentos de entrada del programa y configuración del descriptor HOG. .................................................................................................................................... 39 Figura 3 37. Se carga el modelo entrenado y se sincroniza con el descriptor HOG. .............................................................................................................................................. 39 Figura 3 38. Se carga la imagen y se buscan las sillas con el barrido y reducción de la imagen. ...................................................................................................................... 39 Figura 3 39. Se dibujan sobre la imagen rectángulos de las áreas localizadas. ..... 40 Figura 3 40. Ejemplo del modelo del sistema detector de sillas sin errores (1). ..... 40 Figura 3 41. Ejemplo del modelo del sistema detector de sillas sin errores (2). ..... 41 Figura 3 42. Ejemplo del modelo del sistema detector de sillas con errores. .......... 41 Figura 4 1. Modelo de detección aplicado al robot de servicios detectando correctamente. .................................................................................................................... 44 Figura 4 2. Ejemplo del modelo con deficiencia al detectar sillas por la falta de ejemplos (1). ....................................................................................................................... 45 Figura 4 3. Ejemplo del modelo con deficiencia al detectar sillas por la falta de ejemplos (2). ....................................................................................................................... 46

v5

Capítulo I. Introducción

1.1.- Antecedentes En la actualidad la mayoría de los sistemas electrónicos o mecánicos que se encuentran funcionando en el ámbito industrial como social, se busca que sean lo más autónomos posibles, es decir, que sean capaces de responder de la manera más idónea al tomar una decisión sin tener la necesidad de la intervención humana. Conforme el avance de la tecnología continúa la independencia de estos sistemas se hace cada vez más sólida, pero llegado a este punto se plantea la siguiente pregunta ¿Las máquinas pueden llegar a ser lo suficientemente inteligentes como los seres humanos?. El científico y matemático Alan Turing en la década de los 50’s preguntó, ¿Una máquina puede pensar?, quién apoyado de su artículo “Computing Machinery and Intelligence” plantea la posibilidad de que una máquina pueda imitar el comportamiento de la mente humana, en este mismo artículo se propone el conocido “Test de Turing” orientado a demostrar si una determinada máquina es 6

inteligente o no, aportaciones que lo llevaron a ser reconocido como padre de la inteligencia artificial.

Este artículo fue el catalizador que oriento el conocimiento acumulado con anterioridad en otras disciplinas llevando al nacimiento de una ciencia, la inteligencia artificial, pero no fue hasta el año de 1956 durante la conferencia denominada “Dartmouth Summer Research Conference on Artificial Intelligence” impartida por los investigadores Marvin L. Minsky, Claude E. Shannon, Herber Simon y Allen Newell que esta nueva ciencia fuera bautizada con dicho nombre.

Una vez abierta la puerta a este nuevo campo de la tecnología el desarrollo e investigación no se hizo esperar, pero debido a la época en que esto estaba siendo planteado, se carecía de financiamiento, las capacidades computacionales y conocimientos eran bastante escasos, los sistemas eran costosos de mantener e incapaces de aprender cometiendo grandes errores, esto se mantuvo así por casi cuatro décadas. A finales de los años 80´s y principios de los años 90´s se presentaron los primeros avances significativos en la creación de algoritmos de búsqueda, lenguaje natural, creación de máquinas capaces de conversar, interpretar imágenes y razonamiento como seres humanos.

La propagación obtenida por la inteligencia artificial como aplicación ha sido tal que ya se encuentra en ramas tan diversas como lo son robótica, procesamiento de lenguaje natural, videojuegos, lingüística computacional, sistemas de apoyo de decisión, prototipos informáticos, seguridad, procesos industriales e incluso medicina.

Instituciones académicas también han incursionado en esta nueva rama de la investigación. Tal es el caso de la Universidad Autónoma de México, la UNAM es líder nacional en investigación, formación de recursos humanos y difusión en computación realizando aportes teóricos y prácticos a las ciencias cognitivas e inteligencia

artificial,

reconocimiento

de

patrones,

vida

artificial,

diseños 7

combinatorios, sistemas complejos y procesamiento de imágenes. Estos avances han sido realizados dentro del Departamento de Ciencias de la Computación en el Instituto de Investigaciones de Matemáticas Aplicadas y de Sistemas (IIMAS) de la UNAM donde se cuentan con laboratorios con el equipo necesario para el desarrollo de nuevas tecnologías, uno de estos laboratorios es “Golem: Diseño y construcción de robots de servicio” o “Grupo Golem” mismo nombre que posee el robot de servicio de IIMAS, Golem.

Grupo Golem se enfoca en la investigación del modelado cognitivo de la interacción humano-sistema computacional aplicado a los robots de servicio. Un robot de servicio, según la Federación Internacional de Robótica (IFR) “es un robot que opera de forma parcial o totalmente autónoma para realizar servicios útiles para el bienestar de los humanos”. De acuerdo a esta definición el equipo de trabajo de grupo Golem se centró en el desarrollo de habilidades domésticas y de servicios de Golem obteniendo como resultado que este fuera capaz de mantener conversaciones sencillas, entendimiento de comando, reconocimiento de voz en español, y con sistemas de visión es capaz de dar una “visita guiada” a través de carteles de los proyectos de investigación del departamento.

Se busca que Golem sea capaz de interactuar con el entorno físico de una manera más natural aprendiendo de manera autónoma de la información constante que recibe por los diferentes dispositivos de entrada que posee.

1.2.- Planteamiento del problema Un robot de servicio tiene que interactuar con muchos cambios físicos en entornos complejos, ya sean personas, objetos fijos, objetos móviles en habitaciones, zonas urbanas,

áreas

verdes,

etc.

Elementos

proporcionan

información

poco

estructurada y muy variante en el tiempo. En muchas situaciones, el robot debe interactuar directamente con estos elementos, de los cuales tiene que aprender en un corto periodo de tiempo mientras se realiza la interacción para poder después identificarlos si así lo requiere la tarea. 8

Dentro del entorno de trabajo actual de Golem los principales elementos de interacción que pudieran presentarse van desde el cruce de personas hasta muebles como sillas o mesas de trabajo.

Por lo cual surge la interrogante ¿Qué se requiere hacer para crear un sistema que ayude al robot de servicios Golem a identificar y seguir objetos de interés de manera autónoma aprovechando los sistemas de visión que este posee?

1.3.- Justificación El desarrollar un sistema que contribuya a la localización y rastreo de objetos específicos para Golem conducirá a mejorar la interacción que el robot tiene con el entorno, reducirá el tiempo de respuesta en la toma de decisiones una vez encontrado con el elemento a interactuar, realizará en un tiempo menor las tareas que se le planteen, se contará con un análisis visual más completo y robusto, destacando el abrir la posibilidad para el desarrollo de nuevas habilidades del robot.

La manera en que Golem se traslada dentro de las instalaciones de IIMAS se ve fuertemente obstaculizada principalmente por sillas que por el hecho de ser un laboratorio estos son los principales elementos que están en constante movimiento, por lo tanto si el robot pudiera ver y seguir estos elementos buscaría la manera de evadirlos o evitarlos.

Al no crear dicho sistema de localización y rastreo para el robot se verá fuertemente afectada la interacción que tiene, llegando al punto de no realizar las tareas que se planteen.

1.4.- Objetivo Desarrollar un sistema de detección de sillas capaz de localizar y rastrear al objeto mediante un sistema de visión y algoritmos computacionales para el robot de servicios Golem-II+. 9

1.5.- Delimitaciones El sistema en su última instancia será capaz de realizar las siguientes tareas:

I.

Será capaz de detectar dentro del entorno visual que el robot de servicios posea los diferentes tipos de sillas que existan en el laboratorio.

II.

Las sillas que será capaz de identificar serán de las siguientes características:

III.



De cuatro patas.



De base con llantitas.



Con o sin apoyabrazos.



Color indistinto.

Una vez localizada la o las sillas, el sistema será capaz de seguir su cambio de posición o ubicación hasta donde el campo de visión se lo permita.

1.6.- Limitaciones Este proyecto fue realizado durante mi estancia de verano científico en el Distrito Federal, se contó con poco tiempo para desarrollar un sistema confiable y robusto. Además el robot de servicios es exclusivo del Instituto de Investigaciones de Matemáticas Aplicadas de la Universidad Autónoma de México por lo que es poco probable continuar con las pruebas del sistema desarrollado estando en el Instituto Tecnológico de Sonora.

10

Capítulo II. Método

2.1.- Sujeto El presente proyecto está dirigido a la comunidad científica que se encuentre interesada en el tema, ya sea para investigación o estudio.

El responsable del proyecto es el Doctor Ivan Vladimir Meza Ruiz, Ingeniero en Computación de la Facultada de Ingeniería – UNAM (1996), Maestro en Ciencias Especialidad en Procesamiento de Lenguaje Natural en la Universidad de Edimburgo (2003), Doctorado en Sistemas de Diálogo en la Universidad de Edimburgo (2006) y cuyas líneas de investigación son:

-

Inteligencia Artificial.

-

Lingüística Computacional.

-

Procesamiento de Lenguaje Natural.

-

Aprendizaje Automático. 11

-

Text Mining.

-

Patrones de Reconocimiento.

-

Recuperación de Información.

-

Reconocimiento de Voz.

2.2.- Materiales Los distintos elementos empleados para el desarrollo del presente proyecto se mencionan a continuación:

1. Computadora portátil. Para el manejo de los programas requeridos. Algunas características son: Laptop Dell, Procesador de Intel Core 5 de 1.60GHz, 6 Gb de memoria RAM, Disco duro de 685 Gb, Sistema operativo Windows 8 de 64 bits.

2. Cámara Digital. Para la captura de las fotos que son la base de datos.

3. Herramienta de programación Python 2.7. Software utilizado para la elaboración de los programas necesarios para la creación del sistema de localización y rastreo.

4. Bibliotecas extras para Python 2.7. (Pygame, OpenCV, Numpy, Matplotlib).

5. Robot de Servicios Golem. Principal elemento del proyecto el cual ejecutaba los modelos creados para ver su comportamiento. Algunas elementos que este contiene son: Arreglos de sonares con ocho sensores cada uno, dos sensores IR (infrarrojos) al frente, arreglos de sensores al tacto con cinco sensores cada uno, micrófonos y bocinas, computadora interna VersaLogic EBX-12, una laptop Dell Precision M4600, LAIDETECIIMAS brazos robóticos, Webcam QuickCam Pro 9000, Cámara Microsoft Kinect.

12

6. Herramientas de apoyo. Acceso a internet, presentaciones del académicas de IIMAS, vídeos.

7. Bibliografía. Se utilizó documentación de los manuales de programas y libros referentes a la programación y anteriores proyectos de Golem para el desarrollo de este proyecto.

2.3.- Procedimiento El procedimiento llevado a cabo para el desarrollo del presente proyecto se muestra a continuación:

Inicio

Investigación del estado del arte.

Recolección de la base de datos.

Etiquetación de la base de datos.

Creación de Modelos

Pruebas

Resultados

Fin Figura 2 1. Procedimiento para la elaboración del proyecto.

13

2.3.1.- Estudio del estado del arte. Para empezar a trabajar con el desarrollo del sistema detector de sillas para el robot de servicios Golem, primeramente fue necesario hacer un reconocimiento del robot, así como las técnicas de programación antes utilizadas para desarrollar las habilidades de esté.

Para ello se recurrió a hacer una investigación bibliográfica en los distintos artículos, libros y tesis que IIMAS ha desarrollado en base a Golem para así aprender tanto de la metodología del trabajo así como del software utilizado. Posteriormente se plantearon problemáticas donde el tema principal es el aprendizaje automático y cuyo principal objetivo fue crear códigos en el software de programación Python que solucionan dichos problemas y nos familiarizamos con el lenguaje que utiliza Python.

2.3.2.- Recolección de la base de datos. El método que se decidió utilizar para programar a Golem fue aprendizaje automático, el cual consiste en que el sistema tome decisiones en base a la “experiencia”, dicha experiencia la obtiene en base a ejemplos dados como lo son las sillas en cada una de las fotografías, una vez aprendido de los ejemplos tomara la decisión en un futuro de que es silla y que no lo es.

Para ello se necesita una base de datos de fotos donde haya sillas (fotos positivas) y una base de datos donde no haya sillas (fotos negativas), estas bases de datos tienen que ser grande y considerando la mayor cantidad de posibles casos en los que se podría encontrar el objeto a identificar por lo que se tomaron alrededor de 5000 fotos tanto positivas como negativas.

2.3.3.- Etiquetación de la base de datos. Este proceso consiste en seleccionar de manera manual en cada una de las fotos donde se encuentra la silla en cada una de las fotografías, esto con el fin de indicarle dentro de la programación que es silla de lo que no lo es y así pueda aprender el sistema. Una vez etiquetada la

14

silla se renombraba para mantener un estándar de las imágenes que el sistema utilizaría.

2.3.4.- Creación de Modelos. Para la elaboración de los modelos se utilizó el proceso mostrado en la Figura 2. Primero se tomaba un número establecido de las etiquetas de la base datos (tanto positivas como negativas), se entrenaba al sistema con el código de programación de Python y así obtener un modelo, se hacían pruebas a los modelos para comprobar que cumpliera con el objetivo, de no ser así se agregaban más etiquetas de la base de datos, positivas, negativas o ambas para mejorar los modelos.

Número de etiquetas de la base de datos.

Entrenamiento del modelo

Pruebas del modelo.

No ¿Cumple con el objetivo?

Si

Documentación

Figura 2 2. Diagrama del proceso de elaboración de modelos.

15

2.3.5.- Pruebas. Al obtener un modelo lo suficientemente confiable, este pasaba a ser aplicado a Golem para hacer las pruebas suficientes en tiempo real con el mismo, buscando obtener de manera más concreta como es que el modelo se comportaba y concluir si este funciona correctamente o es necesario mejorarlo siguiendo los pasos anteriores.

2.3.6.- Resultados. Después de realizarse las pruebas y correcciones necesarias para la obtención de un resultado satisfactorio, se procede a realizar la documentación de cada modelo.

16

Capitulo III. Desarrollo

3.1.- Recolección de base de datos para el aprendizaje del sistema detector. La base de datos que el sistema requiere consiste principalmente de dos tipos de muestras, fotografías de las sillas ejemplo de las que el sistema aprenderá (fotos positivas) y fotografías del entorno que rodean las sillas sin contener a las mismas (fotos negativas).

La recolección de las fotos positivas es un paso bastante importante, ya que esto es lo que define en gran medida la capacidad del sistema para detectar lo que es una silla de lo que no lo es. Por ello, se propusieron ciertas características que deberían de poseer las fotografías que contuvieran a las muestras y que se mencionan a continuación: 

No se toman en cuenta para la base de datos fotografías borrosas o con demasiada iluminación que impedían ver con claridad a la silla.

17



La silla tiene que estar vacía para considerarse válida, si una persona u objeto está sobre la misma no se toma en cuenta.



La silla no debe de abarcar más del 50% de la imagen total.



En caso de que dos o más sillas se sobreponían en una fotografía, se toma en cuenta soló la silla que se visualizaba completamente.



La silla debe contener todas y cada una de sus partes visibles en la fotografía (patas, asiento, respaldo, apoya brazos).



La silla no debe ser el único elemento contenido en la fotografía.



Las fotografías tomadas a las sillas deben ser de todos los ángulos y posiciones posibles para cubrir la mayor cantidad de casos que estás pudiesen presentar.

Ejemplos de una mala toma de fotografías para la base de datos se muestran en las figuras 3.1, 3.2 y 3.3.

Figura 3 1. Fotografía con demasiada iluminación.

18

Figura 3 2. Fotografía borrosa.

Figura 3 3. Ninguna de las sillas muestra todas sus partes visibles en la fotografía.

Ejemplos de una buena toma de fotografías positivas para la base de datos se muestran en las figuras 3.4 y 3.5.

19

Figura 3 4. La silla que esta al centro de la fotografía muestra todas sus partes.

Figura 3 5. Silla con todas sus partes y en diferentes ángulos.

Otro aspecto importante de la base de datos es la cantidad de muestras que debe poseer. Por lo tanto, además de que las fotografías deben tener “calidad” respetando las características antes mencionadas, también se busca que haya cantidad de las mismas.

20

Como el objetivo del proyecto es que el robot de servicios “Golem” fuera capaz de detectar las sillas que se encuentran en su entorno de trabajo, era necesario tomar en cuenta cada una de ellas para la base de datos. Dentro de IIMAS se cuentan con cinco tipos distintos de sillas. Las características que poseen cada una de ellas entre sí, es muy similar pero con pequeñas variaciones, a continuación se describe cada una de ellas, en las figuras 3.6, 3.7, 3.8, 3.9 y 310.

Figura 3 6. De cuatro patas, asiento, respaldo y color café.

Figura 3 7. De cuatro patas, asiento, respaldo, apoya manos y color azul.

21

Figura 3 8. De rueditas, asiento, respaldo y color azul.

Figura 3 9. De rueditas, asiento, respaldo, apoya manos y color azul.

Figura 3 103. De rueditas, asiento, respaldo, apoya manos y color negro.

22

Una vez definido cada ejemplo del cual el sistema tendría que ser capaz de aprender se inició con la recolección de las muestras. Se hizo uso de cámaras digitales o de celulares para la toma de las imágenes. Se tomaron aproximadamente 1000 fotografías por cada una de las sillas con las características antes mencionadas, por lo que al final la base de datos de fotos positivas contó aproximadamente con una cantidad cercana a los 5000 ejemplares.

La recolección de la base de datos de fotos negativas no fue tan rigurosa como la de fotos positivas, ya que simplemente se buscó que la imagen representase el área de trabajo de Golem sin contener a los elementos de ejemplo a identificar, siempre y cuando la imagen no estuviera borrosa o con demasiada iluminación.

Al igual que las fotos positivas fue necesario tener una gran cantidad de ejemplares de fotos negativas principalmente para que el sistema poseyera un contraste significativo entre lo que es o no una silla.

Ejemplos de fotografías negativas para la base de datos se muestran en las figuras 3.11, 3.12 y 3.13.

Figura 3 11. Paredes y muebles del laboratorio.

23

Figura 3 12. Pasillos de las instalaciones.

Figura 3 13. Personas en interacción con Golem.

3.2.- Etiquetación de la base de datos. La etiquetación de la base de datos consiste en hacer recortes exclusivamente de las sillas dentro de las fotografías tomadas en el paso anterior, esto con el fin de señalarle posteriormente al sistema las características que una silla posee y aprenda a identificarla.

24

Pero antes de realizar lo antes mencionado fue necesario estandarizar tanto las dimensiones como nombres de cada fotografía de la base de datos. Por lo tanto se creó un programa en Python que hiciera esta tarea. Se propuso que las dimensiones que deberían de tener las fotografías serían de 640 píxeles de ancho por 480 píxeles de alto y que el nombre que tendrían sería “silla_(número correspondiente)”.

Además de las librerías propias del software fue necesario hacer uso de librerías externas como lo es OpenCV que se enfoca en el procesamiento de imágenes para aplicaciones de tiempo real, estas mismas librerías fueron utilizadas para la elaboración de los próximos programas del proyecto. Dicho programa quedó de la manera como lo muestran las figuras 3.14 y 3.15.

Figura 3 14. Librerías utilizadas y argumentos de entrada del programa.

25

Figura 3 15. Lectura de imágenes, modificación de características y almacenamiento.

Una vez realizado lo anterior se procedió a realizar los recortes de las sillas de la nueva base de datos. Para ello se hizo uso del programa de etiquetación de imágenes que IIMAS ya poseía, cuyo autor es Rogelio Adrián Romero Cordero, pero antes de ser aplicado a nuestro sistema fue necesario hacer breves modificaciones y adaptarlo a nuestro proyecto.

El código funciona de la siguiente manera. 

El programa lee la primera imagen contenida dentro de la carpeta con todas las imágenes predispuestas a etiquetar y la muestra al usuario.



Una vez que usuario ve la imagen, este con el cursor del mouse se posiciona sobre la silla a etiquetar.



Ya sobre la silla, se presiona la tecla espaciadora del teclado (Space) para hacer crecer el rectángulo (color verde) de 48 por 96 pixeles de la etiqueta hasta que este rectángulo rodee completamente a la silla sin haberse excedido demasiado. En caso de que el rectángulo haya sido demasiado grande, presionando la tecla Shift es posible decrecer el rectángulo de la etiqueta, de igual manera si la posición de la etiqueta no fue el correcto 26

también se puede dar click sostenido sobre rectángulo verde y arrastrarlo a la posición deseada. Solo hay que tener en cuenta que al presionar la tecla Space o Shift para hacer crecer o decrecer el marco de la etiqueta esté lo hará a partir de donde se encuentre el cursor del mouse ya que este le indica el centro de la etiqueta. 

Cuando el rectángulo de color verde es de las dimensiones deseadas, sin mover el mouse se presiona la tecla control izquierdo (Left Ctrl) lo que ocasiona que el rectángulo cambie de color verde a rojo, indicando la posición preliminar de la etiqueta. En caso de haber ocurrido un error con el posicionamiento con la etiqueta, al presionar la tecla “x” elimina el rectángulo rojo.



Para confirmar que la etiqueta es correcta se presiona la tecla Left Alt, la cual hace que se muestre de nueva cuenta el rectángulo verde pero con las dimensiones que el rectángulo rojo ya posee. Posteriormente se presiona la tecla Left Ctrl de nueva cuenta, lo que hará que el rectángulo cambie de color azul. En caso de haber ocurrido un error con el posicionamiento con la etiqueta, al presionar la tecla “x” elimina el rectángulo azul.



Cuando se tenga el rectángulo en color azul al presionar “enter” la imagen que se encuentra dentro del rectángulo se almacena en la carpeta especificada así como un documento de “.txt” con las coordenadas de la misma imagen.



Una vez etiquetadas la o las sillas que se encuentren en la fotografía se puede cambiar a la siguiente fotografía con las flechas del teclado y seguir el procedimiento anterior para proseguir con las etiquetas de la base de datos.



Para salir del proceso de etiquetación solo es necesario presionar la tecla escape (esc) o la tecla “q” para terminar el proceso.

A continuación se muestran las partes más importantes del programa de etiquetación en las figuras 3.16, 3.17, 3.18, 3.19, 3.20, 3.21 y 3.22.

27

Figura 3 16. Librerías utilizadas, lectura de imágenes y coordenadas.

Figura 3 17. Movimiento de la etiqueta (mouse), salir del programa de etiquetación (tecla escape o “q”).

28

Figura 3 18. Adición del recuadro rojo y azul (tecla control izquierdo).

Figura 3 19. Incremento (tecla space) y decremento (tecla Shift izquierdo) de la etiqueta.

29

Figura 3 20. Recuadro de confirmación (tecla Alt izquierdo) y eliminación de recuadro rojo y azul (tecla “x” y “s” respectivamente).

Figura 3 21. Para avanzar o retroceder en las imágenes a etiquetar.

30

Figura 3 22. Almacenamiento de etiqueta y coordenadas de la misma (tecla enter).

Algunos ejemplos de las sillas etiquetadas de las fotografías positivas son mostradas en las figuras 3.23, 3.24, 3.25, 3.26 y 3.27.

Figura 3 23. Etiqueta para sillas de rueditas, asiento, respaldo y color azul.

31

Figura 3 24. Para silla de cuatro patas, asiento, respaldo, apoya manos y color azul.

Figura 3 25. Etiqueta para silla de rueditas, asiento, respaldo, apoya manos y color negro.

32

Figura 3 26. Etiqueta para silla de rueditas, asiento, respaldo, apoya manos y color azul.

Figura 3 27. Etiqueta para silla de cuatro patas, asiento, respaldo y color café.

Para la etiquetación de la base de datos de fotografías negativas se hizo uso del mismo programa que el de etiquetación de sillas, pero con la diferencia de que en

33

esta ocasión soló era necesario realizar etiquetas donde se estuviera seguro que no estuviera ninguna silla contenida. Ejemplos de etiquetas de fotografías negativas se muestran en las figuras 3.28 y 3.29.

Figura 3 28. Etiquetación de fotografías negativas (1).

Figura 3 29. Etiquetación de fotografías negativas (2).

34

3.3.- Creación de modelos. Una vez realizada la etiquetación de ambas base de datos el siguiente paso a realizar fue la del entrenamiento de sistema con la finalidad de obtener modelos con la capacidad para detectar sillas.

Para ello es necesario hacer uso de dos principales herramientas para el procesamiento y clasificación de imágenes. El primero de ellos es el histograma de orientaciones de gradientes (Hog) el cual es una técnica que se encarga de extraer características básicas de la imagen en estudio, esto lo logra hacer al transformar la imagen en componentes básicos que representen a la imagen original con el objetivo de reducir la cantidad de información. Este proceso se logra hacer directamente mediante una de las librerías contenidas dentro de OpenCV la cual calcula el descriptor HOG de una imagen (figura 3.30).

Figura 3 30. Configuración para el descriptor HOG de una imagen.

Lo segundo es por medio de las máquinas de soporte vectorial (SVM) las cuales son técnicas de aprendizaje automático que se especializan en aprender modelos de dos diferentes clases de objetos o un conjunto de estas. Se caracteriza por crear un trazado de línea que separa las dos diferentes clases de objetos desde la máxima distancia dada por dos ejemplos de cada clase que no tengan elementos en común entre ellos. A estos ejemplos se les conoce vectores de soporte, de ahí el nombre de la técnica. En nuestro caso los ejemplos de las dos diferentes clases son las etiquetas de las fotografías positivas y las etiquetas de las fotografías negativas.

35

Igual que en el caso anterior, OpenCV posee una implementación de SVM que puede utilizarse para el entrenamiento de los modelos (figura 3.31).

Figura 3 31. Configuración del SMV para un conjunto de objetos.

En conjunto con estas dos herramientas fue posible realizar la programación para el entrenamiento del sistema y poder generar los modelos de detección de sillas. Dichos modelos varían su efectividad y confiabilidad dependiendo del número de ejemplos tanto de etiquetas positivas como negativas eran ingresadas al código. Las partes más importantes son mostradas en las figuras 3.32, 3.33, 3.34 y 3.35.

Figura 3 32. Librerías utilizadas y argumentos de entrada del programa.

36

Figura 3 33. Se abren las etiquetas positivas y se calcula su descriptor HOG.

Figura 3 34. Se abren las etiquetas negativas y se calcula su descriptor HOG.

37

Figura 3 35. Entrenamiento y almacenamiento del modelo.

Una vez obtenido el modelo el siguiente y último paso para la detección de las sillas fue hacer uso de la implementación de OpenCV que viene equipada con un detector para la búsqueda de sillas en cualquier imagen la cual consiste de la siguiente manera.

Se hace un barrido sobre la imagen con una ventana de las dimensiones del descriptor HOG que ya poseemos (48 por 96 pixeles) hasta a completar con toda la imagen y esperando que la ventana se tope con alguna silla a la cual detectar. Esto no puede ser muy eficiente a la primera por lo que al hacer el segundo barrido se reduce el tamaño de la imagen para repetir el proceso. Esto se repite hasta que la ventana supere a la imagen donde se realiza la búsqueda.

La programación utilizada para la búsqueda y detección de las sillas fue la que se muestra en las figuras 3.36, 3.37, 3.38 y 3.39.

38

Figura 3 36. Argumentos de entrada del programa y configuración del descriptor HOG.

Figura 3 37. Se carga el modelo entrenado y se sincroniza con el descriptor HOG.

Figura 3 38. Se carga la imagen y se buscan las sillas con el barrido y reducción de la imagen.

39

Figura 3 39. Se dibujan sobre la imagen rectángulos de las áreas localizadas.

Los primeros modelos creados tuvieron un entrenamiento con un número aproximados de etiquetas positivas y negativas de entre 1500 a 2500 fotografías arrojando los resultados que se muestran en las figuras 3.40, 3.41 y 3.42.

Figura 3 40. Ejemplo del modelo del sistema detector de sillas sin errores (1).

40

Figura 3 41. Ejemplo del modelo del sistema detector de sillas sin errores (2).

Figura 3 42. Ejemplo del modelo del sistema detector de sillas con errores.

Para el mejoramiento de los modelos preliminares detectores de silla se hicieron dos principales cosas. La primera de ellas fue entrenar nuevamente el sistema con un número mayor de ejemplos tanto de etiquetas positivas así como negativas. La 41

segunda y más importante fue agregar a los nuevos modelos las áreas de error tal como se muestra en la Figura 3 38. Al hacer esto se agregan más negativos al sistema reduciendo el error para los próximos modelos considerablemente. A este nuevo ejemplo de negativos se le denominó, negativos duros. Por lo tanto ahora el sistema estará siendo entrenado por tres diferentes tipos de ejemplos, Etiquetas positivas, Etiquetas negativas y negativos duros.

42

Capitulo IV. Resultados

Los resultados obtenidos presentaron distintos niveles de confiabilidad de acuerdo a los diferentes modelos creados por el equipo de trabajo. Los primeros modelos creados presentaron errores bastantes notables, como ignorar sillas donde si había y detectar como sillas figuras o sombras que aparentaban serlo. Los modelos finales lograron ser mucho más robustos y eficientes eliminando errores de modelos iniciales y detectando en la mayoría de los casos las sillas del laboratorio (figura 4.1).

43

Figura 4 1. Modelo de detección aplicado al robot de servicios detectando correctamente.

En las implementaciones finales de los modelos se puede apreciar que algunas sillas no eran posibles detectarlas por el limitado número de ejemplos presentados en la base de datos de fotos positivas, lo que restringía hacer un buen trabajo de detección del sistema (figuras 4.2 y 4.3).

44

Figura 4 2. Ejemplo del modelo con deficiencia al detectar sillas por la falta de ejemplos (1).

45

Figura 4 3. Ejemplo del modelo con deficiencia al detectar sillas por la falta de ejemplos (2).

46

Capítulo V. Conclusiones

La creación de sistemas capaces de detectar objetos mediante el método de aprendizaje automático generaliza de manera muy completa la diversidad de casos que pudiese presentar un fenómeno en específico lo que resulta ser un método bastante bueno y confiable. El principal problema de este método de aprendizaje radica en los ejemplos de los que el sistema tiene que aprender. La cantidad de ejemplos tienen que ser bastante grande para que el sistema aprenda de todos los casos posibles.

Dentro del proyecto realizado la presencia de los errores radica en eso, el sistema requiere de muchos más ejemplos tanto de sillas como de no sillas para ser más robusto. Esa conclusión se puede apreciar de manera sencilla de acuerdo en los diferentes modelos realizados. Los primeros donde la base de datos fue pequeña los errores fueron más latentes pero conforme el número de la base de datos era mayor los errores se minimizaron.

47

Cabe aclarar que el sistema como todo sistema analógico también presenta una curva de aprendizaje donde a pesar de poseer un número infinito de ejemplos no aprenderá más que si poseyera 50,000 ejemplos (por decir un número). Esta curva se puede obtener de manera manual agregan poco a poco ejemplos a la base de datos y evaluar los resultados obtenidos. Cabe mencionar que esta curva de aprendizaje nos puede indicar la cantidad de ejemplos positivos o negativos que hay que agregar al sistema para ser más robusto los modelos.

48

Referencias Bibliográficas 

Julio Villena Román (2011). Inteligencia de Redes de Comunicación: Historia de la Inteligencia Artificial. Madrid. C.C. Autor.



Ciencias de la computación. Obtenida el 01 de Octubre de 2014, de Instituto de Investigaciones de Matemáticas Aplicadas y de Sistemas de la Universidad Autónoma de México (IIMAS-UNAM), página web institucional: http://www.iimas.unam.mx/iimas/



Grupo Golem. Obtenida el 01 de Octubre de 2014, de Instituto de Investigaciones de Matemáticas Aplicadas y de Sistemas de la Universidad Autónoma de México (IIMAS-UNAM), página web institucional: http://golem.iimas.unam.mx/



Rafael Barea (n.d.). Robótica de Servicios. Madrid. C.C. Autor.



Sumir Kumar Sahar (2008). Introduction to robotics (1ra ed.). India. Tata McGraw-Hill.



International Organization for Standardization (2012) ISO 8373:2012 Robots and robotic devices – Vocabulary.



Marcos Berreto. Applied ontologies and standards for service robots. [En línea]. Robotics and Autonomous Systems, Volume 61, Issue 11, November 2013.



Sebastien Lechevalier. Diversity in patterns of industry evolution: How an intrapreneurial regime contributed to the emergence of the service robot industry [En línea]. Research Policy, Volume 43, Issue 10, December 2014. 49



¿Cómo ves? Obtenida el 20 de Octubre de 2014, Revista de Divulgación de la Ciencia de la Universidad Autónoma de México, página web institucional: http://www.comoves.unam.mx



Sekou L. Remy. How to teach a new robot new tricks: Interactive learning freamwork applied to service robotics. Tesis (Doctor en Filosofía). U. E., Instituto de Tecnología de Georgia. (2009)



La Ciencia y el Hombre, Obtenida el 20 de Octubre de 2014, Revista de Divulgación Científica y Tecnológica de la Universidad Veracruzana, página web institucional: http://www.uv.mx



Aprendizaje Automático – Machine Learning. Obtenida el 21 de Octubre del 2014, Facultad de Ciencias Exactas y Naturales de la Universidad de Buenas Aires, página web institucional: http://www.dc.uba.ar



Kamal Priyantha Ranaweera. Optimization, Artificial Intelligence and Machine Learning in the Develpment of Image Processing Plans. Tesis (Ingeniero en Ciencias). Londres., Universidad del Este de Ontario. (2007)



Grupo Golem. Obtenida el 21 de Octubre de 2014, de Instituto de Investigaciones de Matemáticas Aplicadas y de Sistemas de la Universidad Autónoma de México (IIMAS-UNAM), página web institucional: http://golem.iimas.unam.mx/



Python. Obtenida el 22 de Octubre de 2014, de Tutorial de Python, página web: http://docs.python.org.ar/tutorial/pdfs/TutorialPython2.pdf

50

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.