Full text
Evaluaci´on y Optimizaci´on del proceso de reconocimiento de objetos con sensores de visi´on y profundidad Alberto S´anchez Romero Directores: Ana Cristina Murillo Arnal Eduardo Montijano Mu˜noz Trabajo Fin de M´aster M´aster en Ingenier´ıa de Sistemas e Inform´atica Departamento de Inform´atica e Ingenier´ıa de Sistemas Escuela de Ingenier´ıa y Arquitectura Universidad de Zaragoza Diciembre 2013
Resumen El reconocimiento autom´atico de objetos es uno de los temas m´as populares y que m´as inter´es provocan en el campo de la visi´on artificial. Esto se debe principalmente a las m´ultiples aplicaciones que pueden beneficiarse de algoritmos capaces de reconocer la informaci´on presente en el entorno. Pueden ser desde aplicaciones en el ´ambito de la industria, orientadas al control de la producci´on y la calidad, a aplicaciones en entornos dom´esticos como videojuegos o tareas de asistencia, sin olvidarse del ´ambito de la rob´otica de servicio. La actual aparici´on de sensores de bajo coste que combinan informaci´on de color y profundidad de la escena, conocidos como sensores RGB-depth o RGB-d, ha generado grandes oportunidades para el desarrollo de aplicaciones relacionadas con la detecci´on autom´atica de objetos. El hecho de incluir informaci´on de profundidad en la escena para cada p´ıxel de la imagen resulta un complemento muy beneficioso para los algoritmos t´ıpicos de reconocimiento. Sin embargo, los algoritmos que existen actualmente para resolver este problema todav´ıa se encuentran en una fase inicial de desarrollo, obteniendo resultados limitados y, en la mayor parte de los casos, siendo capaces ´unicamente de distinguir un n´umero peque˜no de objetos diferentes. Este proyecto presenta un sistema completo de reconocimiento autom´atico que es capaz de reconocer de manera eficiente un gran n´umero de objetos. Para ello se hace uso de informaci´on 3D proporcionada por los sensores RGB-d y de t´ecnicas de tratamiento de informaci´on 2D y 3D para poder realizar la clasificaci´on de los objetos. El conjunto de datos que se ha empleado para la implementaci´on se ha obtenido de una dataset de im´agenes muy utilizada en la comunidad investigadora a nivel internacional. Se parte de un estudio de la literatura relacionada con las t´ecnicas b´asicas de visi´on por computador, t´ecnicas para el manejo de la informaci´on obtenida de sensores RGB-d, sobre todo para representaci´on de la informaci´on mediante nubes de puntos en 3D y el c´alculo y uso de descriptores. Tambi´en ha implicado al aprendizaje de la plataforma de desarrollo ROS, as´ı como del sistema de reconocimiento del que se part´ıa en este trabajo (un trabajo previo del grupo de investigaci´on). Este proyecto presenta una evaluaci´on exhaustiva de dicho sistema base y propone una serie de mejoras, pr´acticas y te´oricas, para aumentar el rendimiento, flexibilidad y formalizaci´on del mismo. Los experimentos realizados durante este proyecto demuestran las mejoras obtenidas tanto en coste computacional, como la gesti´on de recursos; as´ı como las mejoras obtenidas por el algoritmo de clasificaci´on. El resultado final es un sistema completo de reconocimiento, dise˜nado para el manejo de dataset de im´agenes de gran tama˜no y con capacidad de devolver resultados probabil´ısticos en funci´on de cada objeto. Finalmente, se presentan las conclusiones y se proponen l´ıneas de trabajo futuro. i
ii
´ Indice general Indice II 1. Introducci´on 3 1.1. Motivaci´on y trabajo relacionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Objetivosyalcance.................................... 4 1.3. Herramientas y entorno de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4. Organizaci´on de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Proceso de reconocimiento de objetos 7 2.1. Representaci´on de la informaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.1. Nubedepuntos.................................. 7 2.2. Descriptoresdeimagen.................................. 9 2.2.1. Introducci´on ................................... 9 2.2.2. Tiposdedescriptores............................... 9 2.2.3. Descriptores utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3. Pre-procesado de la escena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3.1. Eliminar rango de visi´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3.2. Eliminar planos de fondo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.3. Clusterizaci´on de puntos pertenecientes al mismo objeto . . . . . . . . . . . 17 2.4. Clasificaci´on de una imagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4.1. Fase de entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4.2. Fasedeconsulta ................................. 20 3. Pruebas y Resultados 25 3.1. M´etodosdeevaluaci´on.................................. 25 3.1.1. Matrizdeconfusi´on ............................... 25 3.1.2. Precision-Recall ................................. 26 3.2. Dise˜no de los experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2.1. Entorno de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2.2. Dataset deim´agenes............................... 29 3.2.3. Base de datos de caracter´ısticas . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2.4. Proceso de clasificaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.3. An´alisisderesultados .................................. 33 3.3.1. Costecomputacional............................... 33 3.3.2. Evaluaci´on de la calidad del sistema de reconocimiento base . . . . . . . . . 34 4. Conclusiones y Trabajo futuro 43 4.1. Conclusiones ....................................... 43 4.2. TrabajoFuturo...................................... 43 Bibliograf´ıa 45 Anexos 46 iii
iv ´ INDICE GENERAL A. Sensor RGB-d Kinect 47 B. Arquitectura del sistema de reconocimiento 49 C. Informaci´on de los objetos del dataset 53 D. Experimentos sobre el sistema de reconocimiento 3D 59 E. Mejoras de rendimiento 65 F. Creaci´on de modelos de los objetos a reconocer 69
Agradecimientos Este proyecto no se podr´ıa haber realizado sin la ayuda de Ana Cris y Edu, a quienes agradezco la dedicaci´on que me han prestado durante la realizaci´on del mismo. Tambi´en quiero agradecerles la confianza depositada, permiti´endome trabajar en este proyecto que ha despertado mi inter´es por la investigaci´on. De igual manera quiero agradecerles a mis compa˜neros del CUD, en especial a Nuria, Etel, Tere y Marta, su tiempo. Y por ´ultimo mis padres y a mi hermana, por estar siempre apoy´andome. 1
2´ INDICE GENERAL
Cap´ıtulo 1 Introducci´on En el presente cap´ıtulo se describe la motivaci´on que ha llevado al desarrollo de este proyecto, los objetivos y alcance del mismo. As´ı mismo, se describen las herramientas utilizadas y el entorno de trabajo, para finalmente comentar la organizaci´on de la memoria. 1.1. Motivaci´on y trabajo relacionado La comprensi´on de escenas 3D es un problema fundamental en percepci´on y rob´otica. El poder reconocer, modelizar y localizarse en el entorno es un requisito previo para otras tareas m´as complejas de interacci´on en rob´otica. Hasta la explosi´on de la visi´on por computador (gracias a procesadores mas potentes y a sensores de visi´on cada vez mejores y m´as baratos), la mayor´ıa del trabajo en cuanto a localizaci´on en rob´otica se hab´ıa centrado en el uso de sensores de rango, como esc´aneres l´aser o dispositivos s´onar [1, 2]. Desde hace varios a˜nos, se han empezado a utilizar de forma habitual sensores de visi´on artificial para estas tareas de localizaci´on y construcci´on de modelos del entorno [3, 4, 5]. En cuanto al an´alisis y modelado del entorno con sensores de visi´on, y en particular en las escenas interiores, como habitaciones o despachos, uno de los retos que siguen activos es la detecci´on y reconocimiento de objetos. Debido a la variaci´on en la apariencia de los objetos, el tama˜no, las oclusiones, la gran variedad de elementos que se pueden encontrar o las diversas escalas, entre otros factores. En los ´ultimos a˜nos, este problema de detecci´on y an´alisis de escenas 3D ha avanzado mucho. La aparici´on de sensores RGB-depth, de bajo coste como el sensor Kinect1o el sensor Asus2, que brindan la posibilidad de obtener informaci´on combinando color y profundidad, han favorecido el desarrollo de caracter´ısticas y algoritmos para trabajar directamente con informaci´on 3D; y de esta forma se ha mejorado notablemente la precisi´on en la detecci´on de objetos. Es precisamente el reconocimiento de objetos con sensores RGB-d el tema general de este proyecto. La idea es poder desarrollar un sistema de visi´on capaz de detectar y clasificar ciertos objetos de uso cotidiano para su posterior integraci´on en un sistema rob´otico que necesite interactuar con ellos, por lo que este proyecto se enmarca en el campo de la visi´on por computador aplicada a la rob´otica. Encontramos un amplio abanico de investigaciones relacionadas con el reconocimiento de objetos, atendiendo a diferentes par´ametros o caracter´ısticas del objeto como pueden ser sus cualidades f´ısicas color, forma, material. Por ejemplo en [6] encontramos una propuesta para reconocimiento de objetos que necesita informaci´on combinada de varias vistas del objeto a reconocer. Adem´as de utilizar la informaci´on de apariencia de las im´agenes, se puede a˜nadir el uso del lenguaje natural para mejorarlo [7]; aunque precise seleccionar un gran vocabulario de palabras clave, y siendo muy dependiente del idioma. En general, todo sistema autom´atico de reconocimiento requiere de un conocimiento a priori del entorno, por parte del sistema, que debe poder interpretar im´agenes y reconocer objetos. Para 1www.xbox.com/es-ES/Kinect 2www.asus.com/Multimedia/XtionPROLIVE 3
10 CAP´ ITULO 2. PROCESO DE RECONOCIMIENTO DE OBJETOS Descriptores globales: resumen el contenido de la imagen en un ´unico vector o matriz de caracter´ısticas. Poseen la ventaja de encapsular una gran cantidad de informaci´on de la imagen requiriendo un peque˜na cantidad de datos para describirla. A pesar de su simplicidad, este tipo de descriptores han resultado ser ampliamente utilizados para diferentes tareas debido entre otras cosas a su bajo coste computacional unido a unas prestaciones relativamente buenas. Un representante de esta clase es el Histograma de color. Descriptores locales: son utilizados en aquellas tareas en las que una descripci´on local del contenido de la imagen resulta m´as apropiado. Act´uan sobre regiones de inter´es, previamente calculadas o identificadas, construyendo un vector de caracter´ısticas de esa regi´on que tiene en cuenta la informaci´on contenida tanto en el punto de inter´es como en la regi´on adyacente al mismo. Normalmente las regiones descritas se conocen como puntos de inter´es, tambi´en llamados puntos destacados o keypoints. Sin embargo estas regiones suelen referirse a bordes o peque˜nas partes de la imagen. El descriptor entonces, est´a construido por la totalidad de los vectores de caracter´ısticas calculados. A modo de ejemplo podemos mencionar el descriptor local SIFT. Es necesario mencionar que existen diferentes clasificaciones de descriptores, y sin ´animo de ser exhaustivos y solamente a modo de ejemplo, se ha elegido la clasificaci´on mencionada anteriormente debido a que abarca distintos tipos de descriptores exponiendo las diferentes categor´ıas o herramientas de descripci´on en las que se dividen los descriptores de bajo nivel respecto de las caracter´ısticas de la imagen sobre las que act´uan. A continuaci´on se detallan los descriptores de imagen elegidos para este proyecto. 2.2.3. Descriptores utilizados En este proyecto, despu´es de estudiar las opciones disponibles en la literatura y las librer´ıas de manejo de Kinect, se ha optado por utilizar el descriptor de forma VFH (Viewpoint Feauture Histrogram) como descriptor principal o discriminante. Para a continuaci´on apoyarnos en otros descriptores que se complementan mutuamente, el descriptor de textura SURF y el Histograma de color. Viewpoint Feature Histogram o VFH El primero y principal de los descriptores seleccionados para nuestro sistema. Se trata de un descriptor de datos para nubes de puntos 3D, que codifica geometr´ıa y punto de vista. Es decir, representa la informaci´on de la nube de puntos de forma m´as compacta, logrando capturar sus caracter´ısticas m´as discriminantes. Este descriptor encaja dentro de los descriptores globales. En concreto, es un histograma calculado por cada imagen, que captura tanto la forma del objeto como el punto de vista desde donde se toma la imagen. Entre las razones encontradas para utilizar este descriptor, resaltan los buenos resultados que muestran sistemas de reconocimiento estudiados como [16, 17] que utilizan dicho descriptor. Adem´as, al tratarse de un descriptor global, la memoria necesaria para almacenarlos es muy reducida, pues solo se calcula un descriptor por objeto, y las operaciones de comparaci´on entre ellos son r´apidas. No obstante, para almacenar el modelo de un objeto en la base de datos de caracter´ısticas de forma efectiva, es necesario almacenar varios de estos descriptores desde distintos puntos de vista, y de esta manera tener la forma del objeto desde varias perspectivas. Para calcular este descriptor, primero es necesario calcular las componentes normales de la nube de puntos, en nuestro caso del objeto. Estas componentes se utilizan en gran variedad de ´areas y existen numerosos m´etodos para calcularlas. Dada una superficie geom´etrica, suele ser trivial inferir la direcci´on de la normal de un punto en dicha superficie como el vector perpendicular a la superficie en dicho punto. Sin embargo, puesto que las nubes de puntos representan conjuntos de puntos en la superficie real es necesario usar aproximaciones para inferir las normales directamente desde el punto de la nube. Para calcular dichas normales se ha utilizado una funci´on implementada en la librer´ıa PCL. Para m´as informaci´on de los c´alculos utilizados se puede consultar [17]. En la Figura 2.3 se observa una representaci´on de las normales de un subconjunto de los puntos de un objeto.
2.2. DESCRIPTORES DE IMAGEN 11 Figura 2.3: Representaci´on de las normales de un objeto. El objeto, en este caso una jarra, se muestra como fondo y los vectores de color blanco representan la direcci´on de las normales en un subconjunto de los puntos de la nube capturada. Una vez calculadas las componentes normales, se puede calcular el descriptor VFH. Para ello, se calculan los ´angulos pan-tilt-yaw entre las normales de cada punto del objeto y las normales del centroide del objeto, para despu´es plasmar la informaci´on en un histograma. Concretamente, para cada punto pidel objeto, su componente normal niy el centroide pcse calculan los siguientes ´angulos: α=v·ni φ=u·pi−pc d(2.2) θ= arctan(w·ni, u ·ni) Donde u, v ywrepresentan un marco de Darboux 1elegido en pi. La Figura 2.4 representa la selecci´on del marco de Darboux y una representaci´on gr´afica de los tres ´angulos calculados. A parte de los datos calculados hasta ahora, que describir´ıan la forma del objeto, el descriptor incorpora informaci´on sobre el punto de vista desde el que se tom´o la foto. Figura 2.4: El descriptor almacena estad´ısticas de los ´angulos relativos entre las normales de cada punto a la normal del centroide del objeto. La parte de abajo a la izquierda describe los tres ´angulos calculados para un par de puntos de ejemplo. 1En geometr´ıa diferencial de superficies, un marco m´ovil construido en una superficie.
12 CAP´ ITULO 2. PROCESO DE RECONOCIMIENTO DE OBJETOS Esta informaci´on resulta ´util para poder reconocer la orientaci´on en la que se encuentra el objeto, aplicaci´on interesante en campos como la rob´otica. Para obtener la informaci´on sobre el punto de vista se calcula un histograma de los ´angulos que hacen cada componente normal con el punto de vista central trasladado a dicha normal. La Figura 2.5 representa gr´aficamente el concepto. Figura 2.5: Parte de la informaci´on del descriptor VFH se calcula a partir de las estad´ısticas de los ´angulos relativos del punto de vista central con cada componente normal de la nube. Toda esta informaci´on se distribuye en un histograma. En la Figura 2.6 se muestra una representaci´on de dicho histograma. Figura 2.6: Ejemplo de un histograma VFH obtenido para un objeto. El histograma se distribuye o en 60 subdivisiones para cada uno de los tres ´angulos pan-tilt-yaw, y 128 subdivisiones para la componente del punto de vista, lo que en total hace un total de 308 componentes. En la siguiente Figura 2.7 podemos ver dos ejemplos de histograma VFH obtenidos para dos objetos diferentes. Figura 2.7: Histogramas VFH de dos de los objetos usados. Se pude apreciar tanto la diferencia en las componentes de forma, como de punto vista.
2.2. DESCRIPTORES DE IMAGEN 13 Speed-Up Robust Features o SURF El siguiente descriptor que se ha decidido emplear es el SURF [18, 19], ya que se trata de uno de los m´as empleados y que mejor rendimiento han dado en aplicaciones de reconocimiento y visi´on por computador. Se trata de un descriptor que trabaja sobre informaci´on de los gradientes en 2D alrededor de ciertos puntos de inter´es de la imagen, es decir se engloba dentro de los descriptores locales. Este detector y descriptor surge como alternativa a los descriptores SIFT [20], descriptores muy robustos, invariantes a escala y orientaci´on, pero a la vez demasiado complejos como para realizar aplicaciones de reconocimiento en tiempo real. La principal ventaja frente al descriptor SIFT es una mayor velocidad de calculo sin producirse perdidas en el rendimiento del descriptor. Estas mejoras se consiguen mediante la reducci´on de la dimensionalidad y la complejidad en el c´alculo de los vectores de caracter´ısticas de los puntos de inter´es obtenidos, mientras contin´uan siendo suficientemente caracter´ısticos e igualmente repetitivos. Como ya hemos mencionado, fue desarrollado como un algoritmo capaz de detectar puntos caracter´ısticos o de inter´es estables en una imagen. Estos puntos presentan cierta invarianza frente a diferentes transformaciones como translaci´on, escala, rotaci´on, iluminaci´on y transacciones afines. En la Figura 2.8 puede verse el resultado de la extracci´on de puntos SURF de un objeto. Figura 2.8: Puntos SURF encontrados en un objeto perteneciente al dataset de im´agenes. La estabilidad de los puntos de inter´es es importante debido a que la comparaci´on realizada entre objetos pertenecientes a dos im´agenes diferentes se lleva a cabo mediante la comparaci´on de los mismos puntos de inter´es. Sin embargo el problema m´as destacable de este tipo de descriptores es que solo son aplicables a objetos con textura. Adem´as toda la robustez que presenta, tiene un precio, tanto en el coste computacional como en el tama˜no del descriptor, aunque puede obtenerse con una mayor velocidad que los descriptores SIFT. Para subsanar alguno de estos inconvenientes, se ha optado por emplear de manera adicional un histograma de color, para buscar descriptores que se complementen entre si. Histograma de color Se ha empleado el histograma color [21], en adelante histograma, como alternativa para los casos en los que el reconocimiento tiene que abordar objetos que carecen de textura, en donde el descriptor SURF no pueden ayudarnos. Se trata de un descriptor global que trabaja sobre informaci´on 2D. Este histograma representa la frecuencia de aparici´on de cada una de las intensidades de color en la imagen. El histograma esta compuesto por diferentes rangos que representan un valor o conjuntos de valores de intensidad de color. El espacio color se define como un modelo de representaci´on del color con respecto a los valores de intensidad. La dimensionalidad del espacio de color puede ser de una a cuatro dimensiones, siendo los espacio m´as representativos y utilizados los formados por tres componentes o canales de color. Para este proyecto, se consider´o el espacio de color RGB (Red,Green,Blue), uno de los m´as utilizados para este tipo de tareas. El sistema RGB esta formado por los colores primarios Rojo Verde y Azul con valores entre [0,1], y cuya mezcla proporcionada resulta en el color deseado. El sistema RGB utiliza las coordenadas cartesianas como se
14 CAP´ ITULO 2. PROCESO DE RECONOCIMIENTO DE OBJETOS muestra en la Figura 2.9. Pero al tratarse de un sistema muy sensible a cambios de escena los histogramas obtenidos a partir de este espacio de colores son de poca utilidad. Por lo tanto, se ha utilizado otro espacio de color que es algo m´as robusto a cambios de iluminaci´on, el sistema HSV. El sistema HSV [22] (Hue, Saturation y Value) esta formado por estas componentes, que se muestran en la Figura 2.9. La componente Value representa la intensidad del color o brillo, la componente Hue representa lo que se conoce como tonalidad, y la componente de Saturation representa la densidad del propio color o la pureza. Siendo la componente Hue la que mayor peso tiene de las tres. Figura 2.9: Espacios de color : (a) RGB y (b)HSV La resoluci´on de las distintas componentes no es uniforme, sino que se utiliza un mayor numero de bits para representar la componente Hue que para las dos restantes. Sin embargo todas las componentes var´ıan en un rango tambi´en normalizado de entre [0,1]. El espacio de color HSV guarda una mayor relaci´on o esta m´as pr´oximo a la manera que tienen el sistema de visi´on humano de percibir el color, que el espacio RGB. Teniendo en cuenta que la descripci´on del color expuesta est´a formada por tres componentes, el histograma de color de una imagen, como descriptor, estar´a formado por la composici´on de los distintos histogramas de cada uno de los canales o componentes de color, construyendo as´ı un ´unico vector. A continuaci´on podemos ver en la Figura 2.10 un representaci´on del histograma en el espacio de color HSV. Figura 2.10: Representaci´on del histograma HSV. a) representa la imagen original en el espacio de color HSV. b)Representaci´on vertical de las tres componentes de color H,S,V de la imagen. c) representaci´on del histograma de cada una de las componentes de la imagen. El aspecto m´as atractivo y ventajoso del histograma es su simplicidad y velocidad de computaci´on, tanto en la tarea de comparaci´on como en la creaci´on del descriptor. Resulta robusto frente a peque˜nos cambios de escala o peque˜nos movimientos de los elementos representados en la imagen y se muestra invariante respecto de la rotaci´on sobre los ejes. Es sencillo y
2.3. PRE-PROCESADO DE LA ESCENA 15 compacto; presenta un bajo coste computacional, respecto del tama˜no y tiempo de c´alculo as´ı como poca memoria necesaria para almacenarlo. Sin embargo existen diversos inconvenientes asociados al mismo, como por ejemplo la falta de consideraci´on de informaci´on espacial de las distribuciones de color. Se trata de un descriptor que no incluye informaci´on espacial: 2 im´agenes completamente distintas pueden tener histogramas similares si tienen un numero similar de p´ıxeles de cada color. Adem´as las variaciones de iluminaci´on pueden alterar el histograma de forma muy significativa. Al tratarse de un descriptor global es menos representativo que los locales, por lo que el rendimiento que ofrecen a nivel requerido para identificar un objeto puede ser demasiado bajo, es por eso que, como en este trabajo, se suele utilizar en combinaci´on con descriptores adicionales. 2.3. Pre-procesado de la escena Es posible que no toda la informaci´on recibida del sensor sea ´util para el sistema, ya que los objetos se encuentran sobre un fondo con ruido, por lo que es necesario realizar un pre-procesado de los datos antes de realizar la clasificaci´on de los posibles objetos visibles. La etapa de reconocimiento dada una imagen de test comienza por tanto con el pre-procesado de la escena, la Figura 2.11 muestra un resumen, en el cual, se intenta eliminar la informaci´on no relevante contenida en la nube de puntos mediante tres pasos: el filtrado del rango de percepci´on del sensor, la substracci´on de planos dominantes y la clusterizaci´on de los puntos restantes. Una vez que se han obtenido las regiones con posible informaci´on relevante, se pasar´an al algoritmo de clasificaci´on. A continuaci´on se detallan estos tres pasos de segmentaci´on o pre-procesado de la nube de puntos. Es decir, esta es la etapa en la que se tratan los datos antes de proceder a su clasificaci´on. Figura 2.11: Proceso de pre-procesado de una nueva imagen. En la figura se pueden ver las diferentes etapas que atraviesa la nube de puntos, antes de poder obtener la informaci´on ´util de cada posible objeto. El resultado al final de este proceso (clusters de p´ıxeles contiguos), es lo que se le entrega al algoritmo de clasificaci´on de objetos. 2.3.1. Eliminar rango de visi´on El primer paso del pre-procesado consiste en la eliminaci´on del rango de visi´on del sensor. El sensor Kinect tiene un rango de visi´on de alrededor 3,5 metros, pero solo vamos a considerar elementos a menos de 1.1 metros de distancia, ya que supondremos que lo que este m´as lejos, sera demasiado peque˜no para ser reconocido o corresponde con elementos del entorno tipo puertas y paredes. Adem´as, el sistema rob´otico final podr´a “acercarse” a mirar m´as de cerca los elementos que considere. En la siguiente Figura 2.12, se muestra un ejemplo de la captura de una escena, y la eliminaci´on del rango de visi´on del sensor.
16 CAP´ ITULO 2. PROCESO DE RECONOCIMIENTO DE OBJETOS Figura 2.12: Imagen que representa como queda la escena una vez eliminado el rango de visi´on del sensor. La imagen superior representa la nube de puntos original. En la imagen inferior la nube de puntos eliminando todo lo que se encuentra m´as all´a de 1.1 metros. 2.3.2. Eliminar planos de fondo El segundo paso de pre-procesado consiste en el c´alculo de los puntos pertenecientes a superficies planas dominantes en la escena, para eliminarlos de nuestros puntos de inter´es (ya que corresponden a la estructura de la escena: paredes, mesa, suelo,....). Es decir, este paso consiste en una eliminaci´on o substracci´on de los planos dominantes. La eliminaci´on de planos suele realizarse mediante un algoritmo robusto, en nuestro caso el algoritmo Random Sample Consensus [23] o RANSAC. Se trata de un algoritmo que estima, dado un conjunto de datos, un modelo matem´atico deseado. En este proyecto, el modelo matem´atico buscado son los planos (suelo, mesa, pared), y el conjunto de datos, las nubes de puntos de los objetos detectados por el sensor. El principio sobre el que se basa el algoritmo es sencillo. Es un algoritmo iterativo, en el que en cada iteraci´on, se elige aleatoriamente un subconjunto de datos del conjunto total que formaran parte del hipot´etico modelo final. Despu´es se comprueban los puntos restantes, para saber si encajan en el modelo. La estimaci´on de las iteraciones restante cambia en cada iteraci´on y significa el n´umero de intentos necesarios para conseguir un conjunto en el que todos los datos pertenezcan al modelo con probabilidad K. En este paso los puntos calculados por el algoritmo RANSAC se eliminan de la nube de puntos final que contienen los objetos a clasificar. Respecto a las nubes de puntos, puede ocurrir que en el proceso de c´alculo del plano, algunos de los puntos de la parte inferior de los objetos pueden ser tomados como parte del plano. Esto hace que en objetos relativamente planos como pueden ser los libros, cajas ... muchos puntos del objeto sean eliminados y como consecuencia no se pueda alcanzar el tama˜no m´ınimo necesario para poder ser detectados. Continuando con la escena de ejemplo, en la Figura 2.13 se puede ver como queda la escena una vez eliminados los planos dominantes.
2.3. PRE-PROCESADO DE LA ESCENA 17 Figura 2.13: En la imagen superior podemos ver la imagen a la que hab´ıamos eliminado el rango de visi´on. Debajo la misma imagen una vez eliminado el plano dominante, el suelo. 2.3.3. Clusterizaci´on de puntos pertenecientes al mismo objeto El tercer paso del pre-procesado de la nube de puntos consiste en una “clusterizaci´on” de la nube de puntos para agrupar los puntos en grupos contiguos que son candidatos a representar posibles objetos. Si los pasos anteriores se han realizado de manera correcta, la nube de puntos solo contendr´a conjuntos o grupos de p´ıxeles aislados entre si que no formen un plano. Esta informaci´on aparentemente desordenada (cada uno de estos grupos tiene una etiqueta en com´un, que se ocupa de diferenciar entre los grupos de p´ıxeles), contiene los objetos que se quieren reconocer, adem´as de ruido u otros elementos de la escena, necesita ser ordenada en clusters y as´ı poder reconocer cada objeto de forma separada. Para lograr la agrupaci´on de la informaci´on, se ha optado por utilizar un m´etodo de extracci´on de clusters eucl´ıdeo. Se trata de un m´etodo que divide el modelo de nube de puntos desorganizado Pen partes m´as peque˜nas para reducir el tiempo de procesamiento de Psignificativamente. La implementaci´on del modelo se lleva a cabo mediante el uso de de una subdivisi´on del espacio 3D en una rejilla, utilizando cajas de un tama˜no fijo, o algo m´as general, una estructura de datos octree2. Esta representaci´on en particular es muy r´apida de construir y es ´util en situaciones en las que o bien se necesita una representaci´on volum´etrica del espacio ocupado, o los datos resultantes en cada caja 3D (u hoja octree) puede ser aproximada con una estructura diferente. En un sentido m´as general, se puede hacer uso de los vecinos m´as cercanos y poner en pr´actica una t´ecnica de clustering que esencialmente es similar a un algoritmo de relleno 3. Supongamos que tenemos una nube de puntos con una mesa y objetos sobre ella. Queremos encontrar y procesar los clusters individuales de los posibles objetos situados sobre el plano. Suponiendo que se utiliza un estructura kd-tree4para encontrar los vecinos m´as cercanos, los pasos del algoritmo ser´ıan: 2Un octree es una estructura de datos basada en ´arbol para la gesti´on de datos 3D dispersos. Cada nodo interno tiene exactamente ocho hijos 3Determina el ´area formada por elementos contiguos en una matriz multidimensional 4Un kd-tree es una estructura de datos utilizado en inform´atica para la organizaci´on de un n´umero determinado de puntos en un espacio de dimensiones k.
18 CAP´ ITULO 2. PROCESO DE RECONOCIMIENTO DE OBJETOS 1. Crear una representaci´on con un Kd-tree para la nube de puntos de entrada P; 2. Crear una lista de cluster C, y una cola de puntos que necesitan ser comprobados Q; 3. Despu´es, para cada punto pi∈Prealizar los siguientes pasos: A˜nadir pia la cola actual Q; Para cada punto pi∈Q: •Buscar el conjunto de Pi kde vecinos de pien una esfera con radio r < dth; •Para cada vecino pk i∈Pk i; comprobar si el punto ya ha sido procesado, y si no a˜nadirlo a Q. Cuando la lista de todos los puntos en Qse ha procesado, a˜nadir Qa la lista de clusters Cy limpiar la cola Qdej´andola vac´ıa 4. El algoritmo termina cuando todos los puntos pi∈Phan sido procesados y son ahora parte de la lista de clusters de C. Una vez acabado este proceso, es conveniente nuevamente, eliminar aquella informaci´on que no vaya a servirnos. De lo que se trata es de ignorar los cluster demasiado peque˜nos o demasiado grandes, los primeros, porque lo m´as probable es que sean producto del proceso de la eliminaci´on de planos; mientras que los segundos sean de un tama˜no superior a los objetos que queremos reconocer. En la Figura 2.14 se puede ver el resultado del proceso de clusterizacion. Figura 2.14: Objetos de la escena ya clusterizados. Debajo el resultado de agrupar la imagen, donde cada tonalidad representa un cluster distinto.
2.4. CLASIFICACI ´ ON DE UNA IMAGEN 19 2.4. Clasificaci´on de una imagen Esta secci´on presenta las dos fases de las que se compone el m´etodo de clasificaci´on, la fase de entrenamiento o aprendizaje y la fase de consulta o test. Cada fase se puede desglosar en varios apartados. 2.4.1. Fase de entrenamiento En esta fase, el sistema es entrenado con diferentes instancias de cada objeto, que le permitan reconocer un objeto diferente de una misma clase m´as adelante durante la fase de consulta. En esta fase de entrenamiento se deben atender los siguientes aspectos: Figura 2.15: Fases en las que se divide el proceso de clasificaci´on de una imagen. En esta imagen se resalta la fase de entrenamiento. Recopilaci´on de datos. Hay que tener en cuenta cual va a ser el campo o criterio de clasificaci´on, es decir, que tipo de clases se van reconocer y clasificar. Los dataset son muy diferentes en funci´on de lo que se quiera clasificar: objetos, personas, palabras, etc. Estos presentan una organizaci´on estructurada en forma de ´arbol, donde cada rama del dataset es una clase f´acil de reconocer y las hojas son los diferentes objetos, que a su vez tienen otras ramas que pueden contener instancias. En internet podemos encontrar varios dataset en funci´on del campo de aplicaci´on en el que queremos evaluar el clasificador. Por ejemplo Caltech 1015, Warehouse google6incluso otra opci´on puede ser la creaci´on de un dataset propio. M´as adelante, en la secci´on 3.2.2, se describe el dataset de im´agenes elegido, compuesto por una gran variedad de clases de objetos, que pueden verse en detalle en el Anexo C. En la Figura 2.15 este punto se corresponde con las im´agenes de referencia. 5www.vision.caltech.edu 6sketchup.google.com/3dwarehouse.
26 CAP´ ITULO 3. PRUEBAS Y RESULTADOS Falso negativo (FN) es la predicci´on incorrecta de una muestra positiva; siguiendo con el ejemplo, una taza que el clasificador no ha sido capaz de identificar como tal. Falso positivo (FP) es la predicci´on incorrecta de una muestra negativa; por ejemplo, un objeto que NO es una taza el clasificador la identificado como una taza. Verdadero negativo (VN) es la predicci´on correcta de una muestra negativa; un objeto que NO es una taza, el clasificador lo identifica como que NO es una taza. Las entradas de la matriz contienen el n´umero de VPs, FNs, FPs y VNs de un sistema de clasificaci´on. Utilizando los valores contenidos en esta matriz se pueden calcular indicadores de la calidad del proceso de reconocimiento. 3.1.2. Precision-Recall Estos coeficientes son medidas utilizadas para evaluar los sistemas de reconocimiento, y cuyos valores vienen determinados de la siguiente manera: enti´endase Precision como cuantos de los clasificados positivamente son realmente ciertos, y se calcula usando la expresi´on: Precision =V P V P +F P Mientras que la medida Recall, o sensibilidad traducido al castellano, viene a describir la proporci´on de muestras positivas existentes que han sido correctamente clasificadas, y se obtiene usando la expresi´on: Recall =V P V P +F N A continuaci´on presentamos un peque˜no ejemplo para poder ver como se entienden estos conceptos en el escenario desarrollado. Nuestro clasificador ha sido entrenado para distinguir entre las clases manzana, con objetos apple 1 apple 2 y pelota, con objetos ball 1 y ball 2. Asumiendo un ejemplo de 20 consultas a la base de datos, correspondientes a los siguientes objetos: 5 apple 1, 10 apple 2, 10 ball 1 y 12 ball 2, el resultado de la matriz de confusi´on de las pruebas es: Clasificado como apple 1apple 2ball 1ball 2 Realmente es apple 1 4 1 0 0 apple 2 6 3 1 0 ball 1 0 0 7 3 ball 2 0 0 0 12 Tabla 3.1: Matriz de confusi´on. En esta matriz de confusi´on todas las respuestas correctas se encuentran en la diagonal de la tabla, por lo que es f´acil de inspeccionar visualmente los errores cometidos por el clasificador, representados por valores distintos de cero fuera de la diagonal. En la Tabla 3.1 podemos ver que el sistema distingue bien entre ball 2 y el resto de objetos. En el caso del objeto apple 1, de las cinco consultas sobre dicho objeto, el sistema ha clasificado cuatro correctamente y una de las muestras de manera err´onea (correspondiente al elemento de la primera fila y segunda columna). Mas en detalle, la tabla de confusi´on, Tabla 3.2, para el objeto apple 1 es:
3.2. DISE ˜ NO DE LOS EXPERIMENTOS 27 4 Verdaderos Positivos (4 apple 1 que fueron clasificadas como apple 1) 1 Falso negativo (1 apple 1 que fue marcada como apple 2) 6 Falsos Positivos ( 6 apple 2 que fueron clasificados como apple 1 ) 28 Verdaderos Negativos (todas las instancias restantes clasificadas como NO apple 1) Tabla 3.2: Tabla de confusi´on para el objeto apple 1 y la clasificaci´on obtenida en la Tabla 3.1 3.2. Dise˜no de los experimentos 3.2.1. Entorno de desarrollo Como se mencion´o en la Secci´on 3.1, todo el proyecto ha sido desarrollado sobre el framework de desarrollo en rob´otica ROS. Tambi´en se han empleado un conjunto de herramientas y librer´ıas, como OpenCV , OpenNI y PCL, de car´acter open source y de f´acil integraci´on en ROS. El entorno empleado se muestra esquematizado en la Figura 3.2. Figura 3.2: Esquema de comunicaci´on entre el sistema y el sensor RGB-d empleado. El interfaz OpenNI simplifica la tarea al usuario, proporcionando un conjunto de funciones que hacen que todo el proceso de control de la c´amara sea transparente. Los elementos utilizados para el desarrollo de los experimentos son: Sensor Kinect El sensor Kinect es un dispositivo hardware que es capaz de obtener im´agenes 3D comprimiendo color y profundidad. Cuenta con una c´amara RGB, un sensor de infrarrojos, y micr´ofonos. En el Anexo A se detallan m´as caracter´ısticas. OpenNI (Open Natural Interaction) De las diferentes librer´ıas que existen para obtener y transmitir informaci´on del sensor Kinect se ha buscado la que ofrece una mejor compatibilidad con ROS. Finalmente se ha optado por utilizar OpenNI, porque tiene un gran rendimiento, y proporciona capacidades al sensor, incluyendo registro de RGB y profundidad (no requiere de una calibraci´on previa), adem´as de soportar diferentes resoluciones de profundidad y color. El principal objetivo de OpenNI es crear una API est´andar que permita la comunicaci´on entre los dispositivos de entrada de informaci´on y la aplicaci´on o sistema que los recibe.
28 CAP´ ITULO 3. PRUEBAS Y RESULTADOS ROS (Robot Operating System) A pesar de su nombre, ROS no es un sistema operativo propiamente dicho (de hecho funciona sobre otro sistema operativo que hace de “host”, normalmente linux), sino m´as bien un metasistema o una infraestructura de desarrollo, despliegue y ejecuci´on de sistemas rob´oticos, que cuenta con un gran n´umero de repositorios que ofrecen paquetes software de todo tipo, para robots. ROS provee de un mecanismo de comunicaciones (middleware) distribuido entre nodos del sistema rob´otico. Enti´endase un nodo como cualquier pieza de software del sistema (desde un algoritmo SLAM hasta un driver para el manejo de un motor). Estos nodos se comunican entre ellos mediante mecanismos de paso de mensajes RPC o Publish/Subscribe,Service lookup, etc. Y permite crear arquitecturas P2P de componentes rob´oticos distribuidos. Uno de los principales motivos por los que se ha decidido implementar el sistema de clasificaci´on utilizando ROS es su popularidad en el mundo cient´ıfico. De esta manera se puede facilitar la diseminaci´on del algoritmo de reconocimiento desarrollado en este proyecto y la posibilidad de integrarlo en otros sistemas, gracias a la modularidad que brinda ROS. OpenCV (Open Source Computer Vision Library) OpenCV es una librer´ıa de funciones, escritas en C/C++, para realizar tareas de procesamiento de im´agenes y visi´on computacional, que van desde lo mas b´asico (acceso a p´ıxeles individuales, despliegue en pantalla, dibujo de formas geom´etricas) hasta lo m´as avanzado (filtrado, detecci´on de bordes, transformaciones geom´etricas). Figura 3.3: Comunicaci´on entre ROS y OpenCV. ROS permite un f´acil formateo de informaci´on. Como muestra la Figura 3.3, ROS cuenta con mecanismos que permiten convertir la informaci´on y poder procesarla en OpenCV. PCL (Point Cloud Library) Point Cloud Library (PCL) es otra librer´ıa, en este caso para el procesamiento de nubes de puntos, cuyo prop´osito es acelerar los algoritmos 3D de percepci´on para el uso en aplicaciones rob´oticas. El framework PCL contiene numerosos algoritmos como filtering,surface reconstruction,registration,model fifting ysegmentation, por nombrar algunos. De igual manera se ha empleado PCL debido a su f´acil integraci´on en ROS y a su gran popularidad en el procesamiento de nubes de puntos.
3.2. DISE ˜ NO DE LOS EXPERIMENTOS 29 3.2.2. Dataset de im´agenes El dataset de im´agenes que se ha empleado en este proyecto es uno de los mas referenciados a nivel mundial en la comunidad investigadora1, el cual est´a formado por un gran conjunto de objetos de uso cotidiano. Los objetos se encuentran organizados en 51 categor´ıas, que han sido dispuestas usando WordNet2. El conjunto de datos ha sido obtenido grabando con una c´amara RGB-d Kinect, las capturas se han sincronizado y alineado a 640x480 p´ıxeles RGB e im´agenes de profundidad a 30Hz. Cada objeto cuenta con capturas de secuencia de video sobre una rotaci´on entera, la Figura 3.4 es un ejemplo. Para cada objeto hay 3 secuencias de video, cada una grabada desde una altura diferente de modo que el objeto se ve desde diferentes ´angulos Figura 3.4: M´ultiples vistas de un caja de cereales, pertenecientes a una secuencia de video. A diferencia de otros dataset de im´agenes existentes, como Caltech 1013o IMAGEnet4, los objetos de este dataset se organizan en clases, objetos y lo que hemos denominado instancias (correspondientes a los frames de cada secuencia de video). Una clase es, por ejemplo, lemon, un objeto de esa clase es lemon 2, y una instancia del objeto lemon 2 es lemon 2 8. En los otros, la clase pelota, por poner un ejemplo, contiene im´agenes de muchas pelotas diferentes, y no hay manera de saber si dos im´agenes contienen la misma pelota, mientras que el dataset de im´agenes RGB-d la clase pelota se divide en instancias ´unicas, como pelota roja o pelota amarilla. La Figura 3.5 muestra algunos ejemplos de objetos que estan incluidos en el dataset de im´agenes. Figura 3.5: Algunos de los objetos del dataset de im´agenes RGB-d. Cada objeto, es un ejemplo de una clase. 1www.cs.washington.edu/rgbd-dataset 2wordnet.princeton.edu 3www.vision.caltech.edu 4www.image-net.org
30 CAP´ ITULO 3. PRUEBAS Y RESULTADOS En la Figura 3.6 se puede ver un ejemplo de como una clase, en esta caso apple, est´a dividida en varios objetos que van desde apple 1 hasta apple 5. Cada objeto a su vez lo podemos dividir en cada uno de los frames de las secuencias de video, que denominamos instancias, apple 5 65. En el Anexo C se detallan todo las clases que conforman el dataset. Figura 3.6: Ejemplo de una instancia de cada objeto de la clase apple. 3.2.3. Base de datos de caracter´ısticas Una vez que se ha elegido el dataset de im´agenes, se procede a generar un modelo para cada una de las im´agenes de cada instancia que van a componer la base de datos que se utilizar´a como referencia en el sistema de reconocimiento. Cada modelo consta de un conjunto de descriptores VFH, que sirven para describir su forma desde varios puntos de vista, un conjunto de histogramas de color y si el objeto tuviera textura, se obtendr´ıan sus descriptores SURF. En el Anexo F se detallan los pasos de extracci´on de los descriptores para crear los modelos. La creaci´on de una base de datos de caracter´ısticas a partir de un dataset de im´agenes, adem´as de permitir extraer la informaci´on m´as representativa y ´util de cada objeto, tambi´en permite reducir el tama˜no que ocupa esta informaci´on. En la Tabla 3.3 podemos ver el espacio que ocupa la informaci´on proporcionada por el dataset de im´agenes(para cada instancia de cada objeto tenemos un archivo con la nube de puntos, otro con la imagen 2D m´ınima, otro con la m´ascara m´ınima y otro con la profundidad); y la informaci´on que es ´util para nuestro sistema, almacenada en la base de datos de caracter´ısticas (una vez generados los modelos para cada instancia). Espacio en GB Numero de ficheros Dataset de im´agenes 70 1,113,000 Base de datos de caracter´ısticas de referencia 2,4 617,000 Tabla 3.3: Tabla comparativa de n´umero de ficheros que conforman el dataset de im´agenes y la base de datos de caracter´ısticas, as´ı como el espacio que ocupan. 3.2.4. Proceso de clasificaci´on 3.2.4.1 Fase de entrenamiento A partir de la base de datos de caracter´ısticas obtenida empleando todo el dataset de im´agenes, se ha procedido a generar otras bases de datos de caracter´ısticas m´as reducidas, y que vendr´an determinas por un par´ametro, que hemos denominado step. Este par´ametro nos ha permitido realizar un muestreo de los modelos que conforman la base de datos de caracter´ısticas en cada uno de los training-set. Denominamos training-set a cada uno de los conjuntos que se emplean en esta fase. Estos conjuntos est´an formados por una base de datos de caracter´ısticas, cuyo contenido se obtiene de la base de datos de caracter´ısticas principal, y cuyo tama˜no var´ıa en funci´on del par´ametro anteriormente mencionado step. En el Anexo E se da una explicaci´on m´as detallada con ejemplos. training-set 1: Para este primer conjunto, la base de datos est´a formada por todos los descriptores VFH de cada instancia de cada objeto de la base de datos de caracter´ısticas tomados de 1 en 1, es decir est´a formada por todos los descriptores VFH.
3.2. DISE ˜ NO DE LOS EXPERIMENTOS 31 training-set 2: La base de datos est´a formada por los descriptores VFH seleccionados de 2 en 2. Es decir, se emplea ´unicamente solo la mitad de los descriptores VFH contenidos en la base de datos de caracter´ısticas training-set 3: La base de datos est´a formada por todos los descriptores VFH de la base datos de caracter´ısticas tomados de 10 en 10, en este caso solo se contar´a con la d´ecima parte de los descriptores. Esta reducci´on en el n´umero de descriptores seleccionados se lleva a cabo buscando obtener un equilibrio entre el n´umero de modelos empleados y la precisi´on del sistema. training-set 4: La base de datos de este conjunto solo cuenta con la vig´esima parte de los descriptores VFH (unos 10420 elementos). Para este ´ultimo caso el n´umero de descriptores VFH para cada objeto es de entre 30 a 40. Los descriptores SURF e Histograma de color ´unicamente se cargan cuando se dispone de la lista de posibles candidatos en la fase de consulta. 3.2.4.2 Fase de consulta Se van a realizar tres experimentos mediantes los cuales se pretende estimar el grado de respuesta del sistema de clasificaci´on, analizando en un primer lugar su coste computacional, para a continuaci´on evaluar la calidad de respuesta del mismo. Experimento 1: Evaluaci´on del sistema de reconocimiento utilizando escenas sencillas. Se denominan escenas sencillas porque se tratan de escenas recortadas y preparadas sin apenas ruido. En la figura 3.7 se pueden ver un par de ejemplos. Figura 3.7: Ejemplos de lo que se ha considerado escena simple. Puede observarse que apenas tienen planos que eliminar ni ruido de fondo. Evaluaremos nuestras t´ecnicas en dos niveles, a nivel de categor´ıa o clase y a nivel de objeto. El reconocimiento y detecci´on a nivel de clase implica clasificar los objetos como pertenecientes a una misma clase. Mientras que el reconocimiento y detecci´on a nivel de objeto consiste en identificar si un objeto es el mismo objeto que se hab´ıa visto anteriormente. La capacidad de reconocer y detectar objetos en ambos niveles es importante si queremos utilizar este sistema de reconocimiento en el contexto de tareas rob´oticas aplicadas a servicios. Por ejemplo, la identificaci´on de un objeto como un taza de caf´e gen´erica o una taza de caf´e amarilla puede tener implicaciones diferentes seg´un el contexto. Para este experimento se har´a uso en la fase de entrenamiento del sistema de los cuatro traning-set. En la fase de consulta se seleccionar´an dos subconjuntos independientes. Uno que denominaremos, subconjunto A, en el que las escenas etiquetadas con ´ındice par ser´an
32 CAP´ ITULO 3. PRUEBAS Y RESULTADOS las que conformen la base de datos de modelos de la fase de entrenamiento. Y otro que denominaremos,subconjunto B, en el que las escenas est´an etiquetadas con ´ındice impar, cuyos descriptores no formar´an parte de la base de datos caracter´ısticas de la fase de entrenamiento. Para cada subconjunto se obtendr´an de forma aleatoria 10 instancias de cada objeto del dataset de im´agenes, teniendo un total 2970 objetos a evaluar (el dataset de im´agenes esta formado por 51 clases y 297 objetos). A la vez que se realicen estas pruebas, tambi´en se evaluar´a el coste computacional del sistema. Experimento 2 : Evaluaci´on y comparaci´on de la respuesta del sistema de reconocimiento base con la del sistema de reconocimiento propuesto ante escenas sencillas (con el pre-procesado ya realizado). Para el siguiente experimento se va a realizar la evaluaci´on del sistema haciendo uso en la fase de entrenamiento de clases obtenidas del dataset(emplearemos los training-set 3 y 4, la justificaci´on de esta elecci´on responde a los buenos resultados obtenidos en el Experimento 1 3.3.2) mientras que la fase de consulta estar´a formada por un conjunto de escenas, que contienen un solo objeto, capturados mediante el sensor Kinect, y preparadas para contener la menor cantidad de ruido. Algunos de los objetos de las escenas s´ı que pertenecen a algunas de las clases que conforman el dataset, mientras que otros no. En la Figura 3.8 podemos ver dos objetos de la misma clase, lata de comida, pero tenemos otros casos en los que el objeto a identificar no est´a presente dentro del “conocimiento” del sistema, y es ah´ı donde radica lo interesante del experimento. Figura 3.8: Ejemplo de objeto de dataset y objeto capturado. Para este segundo test se cuenta con 32 clases a evaluar y 10 objetos por clase, lo que hacen un total de 320 objetos a evaluar. Experimento 3: Evaluaci´on y comparaci´on de la respuesta del sistema de reconocimiento base con la del sistema de reconocimiento propuesto ante escenas cotidianas complejas. Una vez evaluada la respuesta del sistema de reconocimiento, tanto el sistema de reconocimiento base como para el desarrollado, ante escenas ya recortadas y pre-procesadas; vamos a proceder a su evaluaci´on ante escenas m´as complejas. Esto nos va a permitir evaluar la respuesta del sistema de reconocimiento desarrollado, del sistema de reconocimiento base y de manera secundaria obtener informaci´on sobre posibles carencias del sistema a lo largo de las distintas fases de pre-procesado de la escena. Estas escenas van desde muy simples a m´as complejas, a˜nadiendo grados de dificultad como oclusi´on de objetos o poca separaci´on de las superficies. En la Figura 3.9 podemos observar dos ejemplos de los distintos tipos de escenas capturados para este experimento. Se dispondr´a de 100 frames correspondientes a 25 escenas divididas en cinco niveles en funci´on de la complejidad de la escena, cada escena es tomada desde 4 puntos de vista distintos. En las escenas aparecen objetos muy similares y objetos bastante distintos, aunque siempre pertenecientes a alguna de las clases etiquetadas. En cuanto al conjunto de elementos que
3.3. AN ´ ALISIS DE RESULTADOS 33 componen la fase de entrenamiento, para este ´ultimo experimento solo se ha empleado el training-set 4. Figura 3.9: Ejemplos de escenas complejas capturadas. Cada rect´angulo en las escenas indica que el sistema ha detectado un objeto e indica lo que piensa que es. En la escena de la izquierda ha identificado y clasificado de manera correcta los objetos de la escena, mientras que en la escena de la derecha no ha identificado todos los objetos, y tampoco los ha podido clasificar de manera correcta. 3.3. An´alisis de resultados 3.3.1. Coste computacional Durante la realizaci´on de los diferentes experimentos se ha tenido presente la gran cantidad de informaci´on que se ha empleado. Es por este motivo que se ha tenido que implementar una nueva manera de adquirir la informaci´on durante la fase de entrenamiento. Adquirir esta informaci´on no es otra cosa que cargar todos los descriptores de los que el sistema va ha hacer uso. Conviene recordar que la cantidad de informaci´on que el sistema va a tomar para construir su base de datos de caracter´ısticas viene dada por el par´ametro step. En el Anexo E se detalla la implementaci´on del sistema propuesto que hemos realizado. Este an´alisis se ha llevado a cabo con la configuraci´on del experimento 1, para que se tenga presente los par´ametros empleados. A continuaci´on se muestran las Tablas comparativas 3.4 y 3.5 de los tiempos medios, expresados en segundos, correspondientes a las fases m´as significativas del sistema. En ellas se muestran los tiempos obtenidos por el sistema de reconocimiento base y por nuestro sistema de reconocimiento. En la Tabla 3.4 los tiempos para step=1 y step=2 no se han podido calcular por limitaciones del hardware (estas limitaciones no permit´ıan mantener todos los descriptores en memoria antes incluso de poder llegar a cargarlos todos). Fase de Entrenamiento Fase de Consulta training-set step Load Kd-tree Query Total Querys Total 1 1 >3600 − − − − 2 2 >3600 − − − − 3 10 305,38 2,13 0,08619 256,01 563,52 4 20 283,11 1,07 0,07715 229,16 513,34 Tabla 3.4: Tiempos medios de ejecuci´on (en segundos) del sistema de reconocimiento base. En las Tablas 3.4 y 3.5 se puede ver que el sistema de reconocimiento propuesto ha aportado un mejora significativa al rendimiento del sistema. Se puede apreciar esta mejora en el tiempo de carga, (Load), de los descriptores necesarios para la construcci´on de la estructura de b´usqueda durante la fase de entrenamiento, construcci´on del kd-tree. Tambi´en se observa una mejora en el tiempo medio de ejecuci´on de cada test (Query), durante la fase de consulta; lo que implica una reducci´on
34 CAP´ ITULO 3. PRUEBAS Y RESULTADOS Fase de Entrenamiento Fase de Consulta training-set step Load Kd-tree Query Total Querys Total 1 1 1713,83 21,29 0,10404 309,02 2044,14 2 2 1107,44 10,6 0,08660 257,21 1375,25 3 10 49,09 2,11 0,06189 183,82 235,02 4 20 24,71 1,13 0,06075 180,45 206,29 Tabla 3.5: Tiempos medios de ejecuci´on (en segundos) del sistema de reconocimiento propuesto. en tiempo total de la fase de consulta (Total Querys). Si se suman todas estas reducciones, se consigue mejorar sustancialmente el tiempo global de ejecuci´on. 3.3.2. Evaluaci´on de la calidad del sistema de reconocimiento base Experimento 1: Evaluaci´on del sistema de reconocimiento utilizando escenas sencillas. Con este primer experimento se ha evaluado la respuesta del sistema de clasificaci´on, adem´as de determinar que cantidad de informaci´on m´ınima, n´umero de descriptores de cada objeto, es necesaria para poder obtener una respuesta aceptable por parte del sistema. Los resultados obtenidos para este primer experimento muestran una gran tasa de acierto, tanto a nivel de clase, como a nivel de objeto. En la siguientes Tablas 3.6 y 3.7 se muestra la Precision yRecall obtenidos por el sistema base, expresados en tanto por uno; as´ı como los tiempos medios en el Load, expresados en segundos (porque es la etapa que mayor tiempo consume dentro del workflow del sistema). En una primera parte dentro del experimento 1 se eval´ua el sistema a nivel de clase. Como se describe anteriormente en la Secci´on 3.2.4, tenemos dos subconjuntos: Subconjunto A: Las instancias de los objetos empleados en la fase de consulta, podr´an estar contenidos dentro de las instancias de los objetos que conforman la base de datos de caracter´ısticas generada durante la fase de entrenamiento. Subconjunto B: Para este segundo subconjunto, las instancias de los objetos que se emplean en la fase de consulta no est´an contenidos dentro de las instancias de objetos que conforman la base de datos de caracter´ısticas generada durante la fase de entrenamiento. Pero el sistema si tiene ejemplos de otras instancias de los mismos objetos. Subconjunto A Precision Recall Tiempo medio de carga de la informaci´on - Load training-set 1 0,997 0,999 1713 training-set 2 0,978 0,997 1107 training-set 3 0,958 0,993 49,089 training-set 4 0,931 0,992 24,705 Tabla 3.6: Tabla de resultados Precision yRecall para el Subconjunto A, a nivel de clases. Subconjunto B Precission Recall Tiempo medio de carga de la informaci´on - Load training-set 1 0,997 0,998 1713 training-set 2 0,965 0,989 1107 training-set 3 0,923 0,982 49,089 training-set 4 0,886 0,976 24,705 Tabla 3.7: Tabla de resultados Precision yRecall para el Subconjunto B, a nivel de clases.
3.3. AN ´ ALISIS DE RESULTADOS 35 Se puede observar en la Tablas 3.6 y 3.7 que conforme utilizamos menos informaci´on en el training-set los resultados empeoran, como cabe esperar, el training-set 1 presenta mejores resultados que el training-set 4. Otro hecho importante a analizar en este experimento, es que al clasificar instancias nuevas, el valor de Precision baja, como era esperado, pero se mantiene en unos valores bastante buenos, lo cual indica que el sistema es robusto a la hora de clasificar nuevas instancias de las clases que conoce. De la misma forma, tambi´en se ha procedido a evaluar el sistema a nivel de objeto, al igual que a nivel de clase, se han empleado los Subconjuntos A y B: Subconjunto A Precision Recall Tiempo medio de carga de la informaci´on - Load Training-set 1 0,997 0,999 1713 Training-set 2 0,968 0,997 1107 Training-set 3 0,925 0,993 49,089 Training-set 4 0,887 0,991 24,705 Tabla 3.8: Tabla de resultados Precision yRecall para el Subconjunto A, a nivel de objetos. Subconjunto B Precision Recall Tiempo medio de carga de la informaci´on - Load Training-set 1 0,997 0,998 1713 Training-set 2 0,935 0,989 1107 Training-set 3 0,852 0,979 49,089 Training-set 4 0,789 0,974 24,705 Tabla 3.9: Tabla de resultados Precision yRecall para el Subconjunto B, a nivel de objetos. Al emplear un mayor nivel de detalle para clasificar los objetos, se puede observar en las Tablas 3.8 y 3.9, un comportamiento muy similar al presentado a nivel de clases, en cuanto a la cantidad de informaci´on empleada por el sistema y la respuesta del mismo.
42 CAP´ ITULO 3. PRUEBAS Y RESULTADOS Ejemplo 2: Ejemplo demostrativo de los similares que son los objetos: binder,notebook y hand towel. Nuevamente las im´agenes de la Figura 3.18 corresponden a objetos que comparten ciertas similitudes en forma y color. Figura 3.18: Objetos (a) binder, (b) notebook y (c) hand towel. En la Figura 3.19 podemos ver la respuesta devuelta por el sistema identificando el objeto en la escena. Como se puede ver, se trata de un notebook, pero la respuesta de nuestro sistema de clasificaci´on indica que tiene mayor probabilidad de ser otro de los objetos m´as parecidos. La respuesta del sistema, indicando la probabilidad de que sea cada objeto: Cluster 0: binder 49.3833 % notebook 16.1147 % keyboard 12.8217 % calculator 11.3537 % plate 10.3267 % Figura 3.19: Resultado devuelto por el sistema. El sistema identifica y clasifica un objeto notebook como un objeto binder. Los resultados obtenidos en algunas escenas generan preguntas que se plantean como propuesta de trabajos futuros en cuanto al uso de descriptores.
Cap´ıtulo 4 Conclusiones y Trabajo futuro 4.1. Conclusiones El objetivo de este proyecto ha sido desarrollar un sistema de reconocimiento que sea capaz de identificar objetos dentro de escenas cotidianas 3D, proporcionadas por un sensor RGB-d. Ello ha implicado un estudio del estado del arte de la literatura previa, desde librer´ıas y drivers para el manejo del sensor Kinect, pasando por las t´ecnicas de reconocimiento que utilizan informaci´on 2D y 3D, hasta la integraci´on de todos los requisitos funcionales bajo un misma plataforma ROS. Se ha conseguido el objetivo general, de construir un nuevo sistema mejorado que presenta una serie de funcionalidades que mejoran los sistemas desarrollados con anterioridad. Es capaz de gestionar dataset de im´agenes de gran tama˜no de manera m´as eficaz y m´as r´apida. Este objetivo se ha alcanzado mediante la reducci´on y mejor ordenaci´on de la cantidad de informaci´on que el sistema necesita adquirir durante su fase de entrenamiento. Adem´as, la nueva implementaci´on posibilita samplear la informaci´on que el sistema necesita cargar para poder llevar a cabo su labor, llegando a un compromiso entre la precisi´on de respuesta del sistema y el coste computacional que supone. Tambi´en se ha mejorado y formalizado la fase de la toma de decisiones. En la fase de consulta para reconocer el contenido de una nueva imagen, se responde al usuario con una lista de candidatos priorizada, en vez de un ´unico candidato, y estimando la probabilidad de que sea cada uno de estos candidatos, teniendo en cuenta la frecuencia de aparici´on de cada uno en la salida del sistema. Todas estas mejoras se han evaluado extensivamente dise˜nando una bater´ıa de conjuntos de test con un grado creciente de dificultad, y con ciertas caracter´ısticas necesarias para evaluar distintas caracter´ısticas del sistema. Se han analizado las prestaciones del sistema, as´ı como los errores, para determinar los puntos d´ebiles y pasos futuros donde seguir investigando.. En conjunto podemos afirmar que se han cumplidos los objetivos, presentado un sistema de reconocimiento m´as eficaz, que da una mejor respuesta, de manera m´as eficiente ante una evaluaci´on m´as elaborada, adem´as de haber formalizado la representaci´on y evaluaci´on del mismo. 4.2. Trabajo Futuro Durante la realizaci´on de este proyecto han surgido ciertas cuestiones que han quedado fuera del alcance del mismo, pero que pueden ser abordadas en una investigaci´on futura. Y que servir´ıan para completar o mejorar el sistema de reconocimiento desarrollado. Como posible trabajo futuro estar´ıa emplear otro tipo de segmentaci´on en las regiones de inter´es. Durante la fase experimental se ha podido apreciar que el algoritmo de segmentaci´on b´asico empleado, la clusterizacion eucl´ıdea, presenta ciertas cadencias. Algunas de estas cadencias o fallos se aprecian m´as significativamente en escenas en las que los objetos se encuentran demasiado juntos o solap´andose unos a otros. En tales casos los objetos son considerados como uno. El uso de t´ecnicas m´as novedosas de pre-procesamiento podria subsanar esta serie de errores, aunque siempre habr´a que tener en cuenta el balance rapidez/calidad de esta fase. 43
44 CAP´ ITULO 4. CONCLUSIONES Y TRABAJO FUTURO Un estudio m´as exhaustivo de los descriptores empleados tambi´en podr´ıa ayudar a resolver alguno de los fallos que se producen. Durante el la fase experimental se pudo observar ciertas pautas para el descriptor SURF. En ciertos objetos, el descriptor SURF obtiene suficientes puntos para que el sistema decida utilizarlo, pero sin embargo no son correctos o no tiene la precisi´on suficiente para obtener correspondencias entre una nueva imagen y la informaci´on de referencia. Esto puede ocurrir si se producen variaciones en los detalles (que captura el descriptor SURF). Por lo tanto, intentar utilizar m´as descriptores de forma global del objeto quiz´as ayudar´ıan a no cometer errores por cambios en los detalles como por ejemplo los cambios de textura de unas cajas de cereales a otras, o los de una lata de cocacola a otra. Por ´ultimo, otro paso interesante ser´ıa ampliar de manera a´un m´as si cabe el base de datos de referencia, mediante la inclusi´on de m´as objetos, as´ı como creaci´on un base de datos m´as heterog´enea en cuanto a variedad dentro de cada categor´ıa. Esto nos permitir´ıa evaluar nuevamente si los descriptores empleados siguen siendo ´utiles ante esta nueva premisa o tendr´ıamos que proceder a emplear otros.
Bibliograf´ıa [1] J. D. Tard´os, J. Neira, P. M. Newman, and J. J. Leonard, “Robust mapping and localization in indoor environments using sonar data,” The International Journal of Robotics Research, vol. 21, no. 4, pp. 311–330, April 2002. [2] S. Daniel, “Side-scan sonar image matching,” The IEEE Journal of Oceanic Engineering, vol. 23, no. 3, pp. 245–259, Jul 1998. [3] S. Se, D. G. Lowe, and J. J. Little, “Vision-based global localization and mapping for mobile robots,” IEEE Transactions on Robotics, vol. 21, no. 3, pp. 364–375, Jun. 2005. [4] A. C. Murillo, P. Campos, J. Kosecka, and J. J. Guerrero, “Gist vocabularies in omnidirectional images for appearance based mapping and localization,” in 10th IEEE Workshop on Omnidirectional Vision, Camera Networks and Non-classical Cameras (OMNIVIS), held with Robotics, Science and Systems, 2010. [5] A. J. Davison, I. D. Reid, N. D. Molton, and O. Stasse, “Monoslam: Real-time single camera slam,” IEEE Transactions on Pattern Analysis Machine Intelligence., vol. 29, no. 6, pp. 1052– 1067, Jun. 2007. [6] K. Lai, L. Bo, X. Ren, and D. Fox, “Detection-based object labeling in 3d scenes,” in IEEE International Conference on on Robotics and Automation, May. 2012, pp. 1330–1337. [7] Y. Sun, L. Bo, and D. Fox, “Attribute based object identificacion,” in IEEE International Conference on Robotics and Automation, May. 2013, pp. 2096–2103. [8] K. Lai, L. Bo, X. Ren, and D. Fox, “A large-scale hierarchical multi-view rgb-d object dataset,” in IEEE International Conference on on Robotics and Automation, May. 2011, pp. 1817–1824. [9] P. Liang and M. I. Jordan, “An asymptotic analysis of generative, discriminative, and pseudolikelihood estimators,” in Proceedings of the 25th International Conference on Machine Learning, Jul. 2008, pp. 584–591. [10] Y. Freund and R. E. Schapire, “A decision-theoretic generalization of on-line learning and an application to boosting,” Journal of computer and system sciences, vol. 55, pp. 119–139, Dec. 1997. [11] C. Cortes and V. Vapnik, “Support-vector networks,” Journal of Machine Learning Research., vol. 20, no. 3, pp. 273–297, Mar. 1995. [12] H. Zhang, “The optimality of naive bayes,” in Proceedings of the Seventeenth International Florida Artificial Intelligence Research Society Conference, 2004. [13] D. B. Monge, “Reconocimiento de objetos en 3d utilizando sensores de vision y profundidad de bajo coste,” Universidad de Zaragoza, Tech. Rep., 2012, pFC. [14] R. B. Rusu and S. Cousins, “3d is here: Point cloud library (pcl),” in IEEE International Conference on Robotics and Automation, May. 2011, pp. 1–4. 45
[15] J. Rodr´ıguez, “Metodolog´ıa experimental, m´etodos y t´ecnicas de miner´ıa de datos,” Ph.D. dissertation, Departamento de Inform´atica de la Universidad de Burgos, 2004. [16] R. B. Rusu, G. Bradski, R. Thibaux, and J. Hsu, “Fast 3d recognition and pose using the viewpoint feature histogram,” in International Conference on Intelligent Robots and Systems (IROS) IEEE/RS, Oct 2010, pp. 2155–2162. [17] R. B. Rusu, “Semantic 3d object maps for everyday manipulation in human living environments,” Ph.D. dissertation, Computer Science department Technische Universit at Munchen Germany, 2009. [18] A. C. Murillo, J. J. Guerrero, and C. Sagues, “Surf features for efficient robot localization with omnidirectional images,” in IEEE International Conference on Robotics and Automation, Apr. 2007, pp. 3901–3907. [19] H. Bay, A. Ess, T. Tuytelaars, and L. Van Gool, “Speeded-up robust features (surf),” Computer Vision and Image Understanding, vol. 110, no. 3, pp. 346–359, Jun. 2008. [20] D. G. Lowe, “Distinctive image features from scale-invariant keypoints,” International Journal of Computer Vision, vol. 60, no. 2, pp. 91–110, Nov. 2004. [21] B. S. Manjunath, J. R. Ohm, V. V. Vinod, , and A. Yamada, “Color and texture descriptors,” IEEE Transactions on Circuits and Systems for Video Technology, Special Issue on MPEG-7, vol. 11, no. 6, pp. 703–715, Jun. 2001. [22] S. Siggelkow, “Feature histograms for content-based image retrieval,” Ph.D. dissertation, Albert-Ludwigs-Universitat Freiburg, 2002. [23] M. A. Fischler and R. C. Bolles, “Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography,” Communications of the ACM, vol. 24, no. 6, pp. 381–395, Jun. 1981. [24] J. L. Bentley, “Multidimensional binary search trees used for associative searching,” Communications of the ACM, vol. 18, no. 9, pp. 509–517, Sep. 1975. [25] Y. Rubner, C. Tomasi, and L. J. Guibas, “The earth mover’s distance as a metric for image retrieval,” International Journal of Computer Vision, vol. 40, no. 2, pp. 99–121, Nov. 2000. [26] S. Rachev, “The monge-kantorovich mass transference problem and its stochastic applications,” Theory of Probability and Its Applications, vol. 29, no. 4, pp. 674–676, Apr. 1984.
Anexo A Sensor RGB-d Kinect Kinect es un controlador de juego y entretenimiento desarrollado por Microsoft para la videoconsola Xbox 360 y para PC, lanzado al mercado en Noviembre de 2010. En la Figura A.1 se muestra una fotograf´ıa del dispositivo y sus componentes. Figura A.1: Dispositivo Kinect y sus componentes. El sensor Kinect es una barra horizontal conectada a una peque˜na base con un pivote motorizado y esta dise˜nado para posicionarse encima o debajo de una pantalla de v´ıdeo. El dispositivo cuenta con una c´amara RGB, un sensor de profundidad y varios micr´ofonos. Tambi´en integra un software propietario que permite la captura de movimiento en 3D del cuerpo, reconocimiento facial y reconocimiento por voz. No obstante, en este anexo solo se van a describir las caracter´ısticas relacionadas con la visi´on. El sensor de profundidad consiste en un proyector de l´aser infrarrojo combinado con un sensor CMOS monocrom´atico, lo que captura datos de v´ıdeo en 3D bajo cualquier condici´on de luz ambiental. La c´amara RGB del sensor es una c´amara de v´ıdeo que ayuda al reconocimiento facial y otras funcionalidades mediante la detecci´on de tres componentes de color: rojo, verde y azul. Tambi´en proporciona v´ıdeo a un frecuencia de 30 Hz, con una resoluci´on de 640x480 p´ıxeles y una profundidad de 8 bits, mientras que el sensor de profundidad cuenta con una resoluci´on de 640x480 p´ıxeles con una profundidad de 11 bits, lo que provee hasta 2048 niveles de sensibilidad. el sensor tiene un campo de visi´on angular de 57◦horizontalmente y de 43◦verticalmente, mientras que el pivote motorizado puede inclinar el sensor hasta 27◦, hacia arriba o hacia abajo. Desde su lanzamiento han aparecido varios controlados de c´odigo abierto que permiten integrarlo en un ordenado bajo cualquier sistema operativo, lo cual ha permitido su explotaci´on para 47
48 ANEXO A. SENSOR RGB-D KINECT fines de investigaci´on. Actualmente este sensor es la herramienta de trabajo de multitud de investigaciones, pues sus caracter´ısticas abren nuevas posibilidades a ´areas de investigaci´on relacionadas con la visi´on por computador, como pueden ser la reconstrucci´on de escenas 3D, la detecci´on y reconocimiento de objetos, captura de gestos, etc.
Anexo B Arquitectura del sistema de reconocimiento En este anexo se presentan las diferentes partes o m´odulos principales de los que se compone el sistema, apartado B.1, y a continuaci´on en el apartado B.2 se detalla el funcionamiento del sistema. B.1. Funcionamiento del sistema La Figura B.1 muestra el diagrama de los principales m´odulos del sistema desarrollado. Dichos m´odulos se describen a continuaci´on: Figura B.1: Representaci´on de los principales m´odulos del sistema desarrollado y su correlaci´on con las librer´ıas del sistema de desarrollo. Reconocedor. Es el m´odulo principal del sistema de reconocimiento, es como el main en programaci´on. Se encarga de realizar las llamadas al resto de m´odulos o funciones y de decidir mediante las respuestas obtenidas cuales son los objetos a reconocer. •Captura de datos de entrada. La funci´on de este m´odulo es conseguir una nube de puntos a trav´es del sensor Kinect. El modulo utiliza el driver OpenNI para comunicarse con el sensor. •Procesamiento de nubes de puntos. Este m´odulo se encarga de pre-procesar las nubes de puntos de entrada. Entre sus funciones est´an la de eliminar el rango de visi´on del sensor, substraer los planos dominantes como paredes, suelo, mesas, etc y agrupar los puntos en clusters que representan los puntos de la nube que pertenecen a un mismo objeto. El modulo utiliza funciones implementadas en la librer´ıa PCL. 49
50 ANEXO B. ARQUITECTURA DEL SISTEMA DE RECONOCIMIENTO •Reconocimiento 3D. Este m´odulo es el encargado de todo lo relacionado con reconocimiento que emplea informaci´on 3D. Sus funciones son extraer los descriptores VFH de los clusters, compararlos con los descriptores almacenados en la base de datos de objetos a trav´es de una b´usqueda en un kd-tree, crear una lista de objetos candidatos y calcular una medida de similitud para cada objeto de la lista. El modulo utiliza funciones de la librer´ıa PCL para extraer los descriptores VFH y la librer´ıa FLANN para realizar la b´usqueda. •Reconocimiento SURF. Este m´odulo se encarga de todo lo relacionado con el reconocimiento por descriptores SURF. Sus funciones son extraer los descriptores SURF de la imagen m´ınima que engloba el cluster a reconocer, compararlos con los descriptores SURF de los objetos de la lista de candidatos y calcular una medida de similitud con cada objeto de la lista. El modulo utiliza funciones de la librer´ıa OpenCV para extraer los descriptores SURF. •Reconocimiento histogramas de color. Este m´odulo se encarga de todo lo relacionado con el reconocimiento por histogramas de color. Sus funciones son calcular el histograma de color del cluster a reconocer, compararlo con los histogramas de los objetos de la lista de candidatos y calcular una medida de similitud con cada objeto de la lista. El modulo utiliza funciones de la librer´ıa OpenCV para calcular el espacio de color HSV a partir de la informaci´on RGB y para calcular la distancia EMD entre dos histogramas. B.2. Funcionamiento del sistema En este apartado se va a explicar como funciona el sistema de reconocimiento, describiendo todos los pasos que sigue hasta dar con la soluci´on. En la Figura B.2 se describe gr´aficamente el proceso, y a continuaci´on se explica con detalle los pasos del algoritmo. Figura B.2: Diagrama de reconocimiento del contenido de una imagen de test. Realizada la etapa de pre-procesado, para cada cluster que se obtiene se procede a extraer sus descriptores y se realizan las b´esquedas pertinentes en busca de las similitudes con los descriptores de los objetos ya almacenados en el base de datos de caracter´ısticas. Una vez obtenida dicha informaci´on, el algoritmo de decisi´on nos devolver´a una lista de los posibles objetos.
51 La informaci´on de entrada al sistema se corresponde con una imagen(nube de puntos) capturada mediante el sensor RGB-d. Esta imagen es pre-procesada con el fin de poder definir los posibles clusters que representan los objetos contenidos en la imagen. Una vez identificados los clusters, para cada uno, se tiene la nube de puntos recortada, a partir de la cual se obtiene la imagen 2D m´ınima y su m´ascara; como en el proceso de creaci´on de los modelos del Anexo F. A partir de este momento, los siguientes pasos se realizan para cada cluster encontrado son: Extraer el descriptor VFH del cluster y realizar una b´usqueda con la base de datos de descriptores VFH almacenados. Esta b´usqueda se realiza en un kd-tree y se calcula la distancia Chi−cuadrado del descriptor de test a los k vecinos m´as cercanos. El resultado es un lista de posibles objetos candidatos, que el sistema considera que pueden ser el cluster en cuesti´on, visto en la Secci´on 2.4.2.2. Esto permite al sistema realizar las siguientes b´usquedas sobre un subconjunto bastante reducido de posibles objetos, lo que permite una mayor rapidez. Como se explica en el ejemplo del Anexo E, la lista de objetos candidatos puede presentar tres posibles opciones. Si la lista no contiene ning´un candidato, se dice que el objeto a reconocer no corresponde con ning´un objeto de la base de datos, si solamente hay un candidato, esa ser´a la soluci´on. Pero si la lista contiene m´as de un candidato, son necesarios los siguientes pasos para intentar decidir de qu´e objeto se trata. Extraer los puntos SURF de la imagen del cluster, con ayuda de la m´ascara para solo hacerlo en las zonas que pertenezcan al objeto. Si se supera un umbral determinado de puntos encontrados, se considera que el objeto tiene textura y se realiza una b´usqueda, mientras que si no se alcanza el umbral se pasa al paso siguiente. Esta b´usqueda est´a basada en el algoritmo de b´usqueda del vecino m´as cercano, pero solo se compara con los objetos de la lista de candidatos. Por este motivo la b´usqueda que se hace es exhaustiva en lugar de aproximada, pues se comparar´a con pocos candidatos. A continuaci´on, obtener el histograma de color del cluster y realizar una b´usqueda con los histogramas de los objetos de la lista de candidatos. Como medida de similitud se utiliza la distancia EMD explicada en 2.4.2.1. Finalmente tenemos una la lista de candidatos los cuales tiene asociada uno valores normalizados obtenidos de las diferentes b´usquedas. Un algoritmo de decisi´on se encarga de estimar a partir de esa informaci´on cual es el objeto. Para m´as informaci´on sobre este paso del algoritmo v´ease la Secci´on 2.4.2.2.
58 ANEXO C. INFORMACI ´ ON DE LOS OBJETOS DEL DATASET
Anexo D Experimentos sobre el sistema de reconocimiento 3D En este anexo se presentan con detalle las pruebas llevadas a cabo sobre el sistema reconocimiento con el objetivo de evaluar su robustez, haciendo uso de las m´etricas descritas en 3.1. Estos resultados son la ampliaci´on del Experimento 1, Secci´on 3.2.4. En todas las matrices de confusi´on se pueden encontrar identificados los verdaderos positivos (TP) con un color verde, falsos negativos(FN) con un color azul y los falsos positivos (FP) de color rojo. Adem´as en al pie de cada matriz se puede encontrar el numero de verdaderos positivos (TP) , de falsos negativos(FN), y de falsos positivos (FP) clasificados, as´ı como el total de objetos evaluados. Antes de mostrar los resultados, se va a explicar los par´ametros empleados en el experimento: Se han planteado dos subconjuntos de pruebas: Subconjunto A: las instancias de los objetos empleados en la fase de consulta, podr´an estar contenidos dentro de las instancias de los objetos que conforman la base de datos de caracter´ısticas generada durante la fase de entrenamiento. Subconjunto B: Para este segundo subconjunto, las instancias de los objetos que se emplean en la fase de consulta no est´an contenidos dentro de las instancias de objetos que conforman la base de datos de caracter´ısticas generada durante la fase de entrenamiento. Pero el sistema si tiene ejemplos de otras instancias de la mismos objetos. Se ha parametrizado la informaci´on de la que puede hacer uso el sistema, durante la fase de entrenamiento, mediante los conjuntos training-set: training-set 1: Para este primer conjunto, la base de datos est´a formada por todos los descriptores VFH de cada instancia de cada objeto de la base de datos de caracter´ısticas tomados de 1 en 1, es decir est´a formada por todos los descriptores VFH. training-set 2: La base de datos est´a formada por los descriptores VFH seleccionados de 2 en 2. Es decir, se emplea ´unicamente solo la mitad de los descriptores contenidos en la base de datos de caracter´ısticas. training-set 3: La base de datos est´a formada por todos los descriptores VFH de la base datos de caracter´ısticas tomados de 10 en 10, en este caso solo se contar´a con la d´ecima parte de los descriptores. Esta reducci´on en el n´umero de modelos seleccionados se lleva a cabo buscando obtener un equilibrio entre el n´umero de modelos empleados y la precisi´on del sistema. 59
60 ANEXO D. EXPERIMENTOS SOBRE EL SISTEMA DE RECONOCIMIENTO 3D training-set 4: La base de datos de este conjunto solo cuenta con la vig´esima parte de los descriptores VFH (unos 10420 elementos). Para este ´ultimo caso el n´umero de descriptores para cada objeto es de entre 30 a 40. A continuaci´on se muestran las matrices de confusi´on obtenidas para los subconjuntos A y B, en funci´on del traning-set empleado. Para todas las Figuras la imagen de la izquierda es la respuesta obtenida para el Subconjunto A y la de la derecha para el Subconjunto B. En este primer conjunto de resultados se muestra la evaluaci´on de la respuesta del sistema de reconocimiento a nivel de clases. Figura D.1: Matrices de confusi´on correspondiente al traning-set 1. A la (izq) matriz correspondiente al Subconjunto A, a la (drch) matriz correspondiente al Subconjunto B. Figura D.2: Matriz de confusi´on correspondiente al traning-set 2.A la (izq) matriz correspondiente al Subconjunto A, a la (drch) matriz correspondiente al Subconjunto B.
61 Figura D.3: Matriz de confusi´on correspondiente al traning-set 3. A la (izq) matriz correspondiente al Subconjunto A, a la (drch) matriz correspondiente al Subconjunto B. Figura D.4: Matriz de confusi´on correspondiente al traning-set 4. A la (izq) matriz correspondiente al Subconjunto A, a la (drch) matriz correspondiente al Subconjunto B. Visualmente se puede apreciar que la tasa de acierto en el Subconjunto A, es mayor que en el Subconjunto B. Esto se puede corroborar haciendo uso de los indicadores Precision yRecall. Los resultados se muestran en las siguientes Tablas de D.1. Subconjunto A Precision Recall Training-set-1 0,997 0,999 Training-set-2 0,978 0,997 Training-set-3 0,958 0,993 Training-set-4 0,931 0,992 Subconjunto B Precision Recall Training-set-1 0,997 0,998 Training-set-2 0,965 0,989 Training-set-3 0,923 0,982 Training-set-4 0,886 0,976 Tabla D.1: Tablas Precision yRecall a nivel de clases, para los Subconjuntos A y B. Los resultados obtenidos de Precision yRecall, muestran que se trata de un sistema robusto, que es capaz de encontrar bastante bien as´ı como de identificar de manera correcta lo que ha encontrado.
62 ANEXO D. EXPERIMENTOS SOBRE EL SISTEMA DE RECONOCIMIENTO 3D En este segundo grupo de resultados se muestra la evaluaci´on de la respuesta del sistema de reconocimiento a nivel de objetos. Figura D.5: Matriz de confusi´on correspondiente al traning-set 1. A la (izq) matriz correspondiente al Subconjunto A, a la (drch) matriz correspondiente al Subconjunto B. Figura D.6: Matriz de confusi´on correspondiente al traning-set 2. A la (izq) matriz correspondiente al Subconjunto A, a la (drch) matriz correspondiente al Subconjunto B.
63 Figura D.7: Matriz de confusi´on correspondiente al traning-set 3. A la (izq) matriz correspondiente al Subconjunto A, a la (drch) matriz correspondiente al Subconjunto B. Figura D.8: Matriz de confusi´on correspondiente al traning-set 4. A la (izq) matriz correspondiente al Subconjunto A, a la (drch) matriz correspondiente al Subconjunto B. Visualmente lo m´as destacable respecto a la evaluaci´on a nivel de clases, es que al elevar el nivel de precisi´on a la hora de clasificar, ha implicado una mayor tasa de error en la clasificaci´on, que no en la detecci´on, pero como se puede ver en las Tablas de D.2, el sistema mantiene su robustez. Subconjunto A Precision Recall Training-set-1 0,997 0,999 Training-set-2 0,968 0,997 Training-set-3 0,925 0,993 Training-set-4 0,887 0,991 Subconjunto B Precision Recall Training-set-1 0,997 0,998 Training-set-2 0,935 0,989 Training-set-3 0,852 0,979 Training-set-4 0,789 0,974 Tabla D.2: Tablas Precision yRecall a nivel de objetos, para los Subconjuntos A y B
64 ANEXO D. EXPERIMENTOS SOBRE EL SISTEMA DE RECONOCIMIENTO 3D
Anexo E Mejoras de rendimiento Para poder llevar a cabo la implementaci´on del sistema se han tenido varias cuestiones presentes, entre ellas la cantidad de informaci´on empleada, as´ı como las limitaciones del hardware y la b´usqueda de la eficiencia. Lo que se plantea es un nuevo enfoque para gestionar la informaci´on que el sistema va adquirir durante la fase de entrenamiento. En vez de cargar (Load) todos los descriptores que conforman el modelo de cada instancia: descriptor VFH, SURF e Histograma de color, durante la fase de entrenamiento, para emplearlos posteriormente o no; se ha optado por cargar (Load) solo los descriptores VFH, empleados por el algoritmo de b´usqueda 2.4.2 para construir el ´ındice kd-tree. Dependiendo de la respuesta obtenida por el algoritmo de b´usqueda nos encontraremos ante una de estas tres posibles opciones: 0 : el cluster a reconocer es desconocido. 1 : el cluster a reconocer es el objeto elegido. N : el cluster a reconocer puede se alguno de la lista de posibles candidatos. Atendiendo a este resultado, opci´on N, se procede a cargar (Load) los descriptores SURF e Histograma de color de las instancias seleccionadas como posibles candidatos. De esta forma se consigue completar los modelos de las instancias que se van a necesitar en cada test (Query). Pero toda esta explicacion se puede ver de una manera m´as clara con un ejemplo. Se captura una escena, Figura E.1, compuesta por 3 objetos: una caja de cereales, un plato y una taza. Figura E.1: Escena capturada compuesta por objetos cotidianos. Una vez capturada la escena, el sistema procede a cargar los descriptores VFH de todas las instancias de objetos que conforman la base de datos de caracter´ısticas, para construir la estructura que se emplea en el algoritmo de b´usqueda, el kd-tree. Una vez construido el kd-tree, se procede a la fase de pre-procesamiento de la escena, la Figura E.2 muestra el resultado de esta fase, descrita en la Secci´on 2.3 . Terminada esta etapa, en la escena ya solo quedan los cluster, que puede ser un 65
66 ANEXO E. MEJORAS DE RENDIMIENTO objeto, es en este momento donde entre en juego el algoritmo de decisi´on. Figura E.2: Resultado del pre-procesamiento de la escena. Se pude apreciar que de los posibles cluster, la caja de cereales ha desparecido, posiblemente por que el sistema la ha interpretado como un plano. Y es aqu´ı atendiendo a la respuesta del reconocedor cuando procedemos a la segunda fase de nuestro sistema: Si el reconocedor, atendiendo al descriptor VFH, indica que no lo ha reconocido, se etiqueta como unrecogniced. Si lo detecta y reconoce solo uno; devuelve el objeto. Pero si devuelve una lista de posibles objetos candidatos Figura E.3, es en este punto donde se procede a cargar los descriptores SURF e Histograma de color de cada uno de los posibles instancias, necesarios para el resto de la fase de reconocimiento. De esta forma solo se mantienen el sistema aquellos modelos necesarios para cada test (Query). Figura E.3: Lista de los posibles objetos devueltos por el sistema (izquierda), Lista de los descriptores cargados en el sistema(derecha). El sistema solo emplear´a en cada query o consulta la informaci´on de los descriptores de la base de datos de caracter´ısticas que necesite.
67 De la misma manera se repite el proceso para cada cluster detectado. Una vez evaluados todos los clusters, el reconocedor devolver´a un resultado. Podemos ver en la Figura E.4 como ha identificado y reconocido la taza de caf´e, ha identificado el cluster correspondiente al plato, pero no lo ha reconocido, y la caja de cereales ha sido discriminada en la fase de pre-procesamiento. Figura E.4: Respuesta del sistema de evaluaci´on ante la escena captura. A continuaci´on podemos ver una tabla comparativa Tabla E.1, que indica los tiempos medios, expresados en segundos, obtenidos para el sistema de reconocimiento base (B) y para el sistema de reconocimiento propuesto (P), en cada una de las etapas mas representativas del workflow del sistema. B P B P B P B P B P step Load Load Kdtree Kdtree Query Query PQuerys PQuerys Total Total 1>3600 1713,83 −21,29 −0,10404 −309,02 −2044,14 2>3600 1107,44 −10,6−0,0866 −257,21 −1375,25 10 305,38 49,09 2,13 2,11 0,08619 0,06189 256,01 183,82 563,52 235,02 20 283,11 24,71 1,07 1,13 0,07715 0,06075 229,16 180,45 513,34 206,29 Tabla E.1: Tabla comparativa de los tiempos medios de cada secci´on para el sistema de reconocimiento base (B) y para el sistema de reconocimiento propuesto (P). Se puede apreciar claramente la mejora significativa en todas las etapas que permite el sistema propuesto.