scieee AI-readable full text Open interactive document viewer

Repositorio Institucional de Documentos

Abstract

En este proyecto se ha implementado un sistema de reconocimiento de acciones mediante el uso de una cámara que lleva el propio usuario sujeta en un casco. El objetivo es analizar la capacidad de reconocimiento de una cámara RGB-D portada por el propio usuario (es decir, según el término en inglés, una camara "wearable"). El objetivo a más largo plazo será poder reconocer las acciones de un individuo en primera persona, para su posterior análisis en diferentes aplicaciones, desde sistemas de guiado de instrucciones para realizar una tarea complicada, asistencia a discapacitados visuales o monitorización de la actividad de una persona por motivos de salud o rehabilitación. Este proyecto está incluido dentro de las líneas de investigación del grupo de Robótica, Percepción y Tiempo Real de la Universidad de Zaragoza. Las tareas realizadas en este proyecto han sido las siguientes: como parte del análisis del problema, se ha realizado un estudio de las imágenes RGB-D y de la información que proporcionan. También se han estudiado distintas opciones de segmentación en dichas imágenes para mejorar la extracción de información y de los posibles descriptores para representar y comprimir dicha información. Por último se han estudiado dos de los clasificadores más utilizados en materia de visión por computador para tareas de reconocimiento. Además se ha realizado un etiquetado de referencia con varias secuencias de imágenes para su uso en los experimentos. Como análisis de rendimiento del reconocedor, se han diseñado y realizado un conjunto de experimentos comparativos entre las distintas posibilidades de descripción y clasificación. Se ha analizado y documentado los resultados de dichos experimentos.Como análisis de rendimiento del reconocedor, se han diseñado y realizado un conjunto de experimentos comparativos entre las distintas posibilidades de descripción y clasificación. Se ha analizado y documentado los resultados de dichos experimentos. En estos experimentos, hemos probado una clasificación en distintos niveles mediante el uso de los descriptores estudiados y hemos visto que la clasificación para un nivel básico de manipulación o no manipulación funciona muy bien, pero que los descriptores estudiados no dan suficiente información como para realizar una clasificación más precisa. Además, también se ha analizado en detalle cuánto influyen los distintos descriptores y las posibles combinaciones de los mismos. Azagra Millán, Pablo; Murillo Arnal, Ana Cristina; Montesano del Campo, Luis

Full text

Reconocimiento de acciones egocéntricas desde una cámara RGB-D montada en un casco. RESUMEN En este proyecto se ha implementado un sistema de reconocimiento de acciones mediante el uso de una cámara que lleva el propio usuario sujeta en un casco. El objetivo es analizar la capacidad de reconocimiento de una cámara RGB-D portada por el propio usuario (es decir, según el término en inglés, una camara "wearable"). El objetivo a más largo plazo será poder reconocer las acciones de un individuo en primera persona, para su posterior análisis en diferentes aplicaciones, desde sistemas de guiado de instrucciones para realizar una tarea complicada, asistencia a discapacitados visuales o monitorización de la actividad de una persona por motivos de salud o rehabilitación. Este proyecto está incluido dentro de las líneas de investigación del grupo de Robótica, Percepción y Tiempo Real de la Universidad de Zaragoza. Las tareas realizadas en este proyecto han sido las siguientes: como parte del análisis del problema, se ha realizado un estudio de las imágenes RGB-D y de la información que proporcionan. También se han estudiado distintas opciones de segmentación en dichas imágenes para mejorar la extracción de información y de los posibles descriptores para representar y comprimir dicha información. Por último se han estudiado dos de los clasificadores más utilizados en materia de visión por computador para tareas de reconocimiento. Además se ha realizado un etiquetado de referencia con varias secuencias de imágenes para su uso en los experimentos. En materia de implementación, se ha diseñado e implementado un módulo que procesa y segmenta las imágenes, y obtiene los descriptores deseados. Se ha implementado un módulo de clasificación que, utilizando los descriptores calculados previamente, realiza un entrenamiento y dada una nueva secuencia realiza un reconocimiento de acciones. Como análisis de rendimiento del reconocedor, se han diseñado y realizado un conjunto de experimentos comparativos entre las distintas posibilidades de descripción y clasificación. Se ha analizado y documentado los resultados de dichos experimentos. En estos experimentos, hemos probado una clasificación en distintos niveles mediante el uso de los descriptores estudiados y hemos visto que la clasificación para un nivel básico de manipulación o no manipulación funciona muy bien, pero que los descriptores estudiados no dan suficiente información como para realizar una clasificación más precisa. Además, también se ha analizado en detalle cuánto influyen los distintos descriptores y las posibles combinaciones de los mismos. i Agradecimientos En primer lugar quiero agradecer a Ana Cris y a Luis la labor de dirección y supervisión realizada, sin la cual este trabajo no se hubiera podido llevar a cabo. Quiero expresar mi gratitud sobre todo por ser pacientes conmigo, ayudarme cuando algo no funcionaba y guiarme a lo largo de todo el proyecto. En segundo lugar, quiero mostrar mi agradecimiento a mi novia Clara que ha estado soportándome y dándome consejos durante todos los meses que ha durado este proyecto. Sin sus visitas al laboratorio con una sonrisa y sus ánimos este proyecto hubiera supuesto un camino mucho más difícil. Finalmente quiero agradecer muy especialmente a mi familia y amistades más allegadas su apoyo e interés incondicional, así como una enorme paciencia. Gracias a todos. Pablo Azagra Millán iii Índice general 1. Introducción 1 1.1. Distribución del tiempo empleado . . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Trabajorelacionado............................... 2 1.3. Entornodetrabajo ............................... 4 1.4. Estructura de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Procesado de imágenes RGB-D 5 2.1. ImágenesRGB-D................................ 5 2.2. Segmentación de una imagen RGB-D . . . . . . . . . . . . . . . . . . . . . 6 2.2.1. Segmentación en superpixels . . . . . . . . . . . . . . . . . . . . . . 6 2.2.2. Segmentación de pixels pertenecientes a piel . . . . . . . . . . . . . 8 2.2.3. Segmentación según restricciones geométricas: Planos . . . . . . . . 9 2.2.4. Comparativa segmentación . . . . . . . . . . . . . . . . . . . . . . . 10 2.3. Descripción de una imagen RGB-D . . . . . . . . . . . . . . . . . . . . . . 12 2.3.1. Descriptores globales . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.2. Descriptores Locales . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3. Reconocimiento de Acciones 17 3.1. Clasificadores utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1.1. Nearest Neighbor(Vecino más próximo) con Clusterización . . . . . 17 3.1.2. Clasificador SVM (Support Vector Machine) ............. 18 3.2. Normalización.................................. 20 3.3. Cross-Validation ................................ 20 4. Experimentos 21 4.1. Configuración de los experimentos . . . . . . . . . . . . . . . . . . . . . . . 21 4.1.1. DatosUtilizados ............................ 21 4.1.2. Acciones a reconocer . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.2. Resultados de clasificación . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.2.1. Resultados experimentos con la misma configuración . . . . . . . . 24 4.2.2. Experimentos fijando primer nivel de clasificación . . . . . . . . . . 25 4.2.3. Experimento sin niveles . . . . . . . . . . . . . . . . . . . . . . . . 29 4.2.4. Experimento adicionales . . . . . . . . . . . . . . . . . . . . . . . . 29 v 5. Conclusiones 33 5.1. TrabajoFuturo ................................. 34 Bibliografía 35 Índice de figuras 37 A. Cámaras RGB-D 39 A.1.Funcionamiento................................. 40 A.2. Especificaciones Técnicas Asus Xtation Pro ................. 40 B. Clasificadores 41 B.1. Nearest Neighbor(Vecino más proximo) . . . . . . . . . . . . . . . . . . . . 41 B.2. SVM (Support Vector Machine) ........................ 42 B.2.1.Kernel.................................. 43 C. Resultados 45 C.1.ResumenResultados .............................. 45 C.1.1. Experimentos Iniciales . . . . . . . . . . . . . . . . . . . . . . . . . 45 C.1.2. Experimentos por niveles . . . . . . . . . . . . . . . . . . . . . . . . 45 C.1.3. Experimentos fijando nivel 1 . . . . . . . . . . . . . . . . . . . . . . 47 C.1.4. Experimentos 11 etiquetas . . . . . . . . . . . . . . . . . . . . . . . 47 C.2. Secuencia User_Ada_Byron-1(Alejandro) . . . . . . . . . . . . . . . . . . 47 C.2.1. Experimentos Iniciales . . . . . . . . . . . . . . . . . . . . . . . . . 48 C.2.2. Experimentos por niveles . . . . . . . . . . . . . . . . . . . . . . . . 48 C.2.3. Experimentos fijando nivel 1 . . . . . . . . . . . . . . . . . . . . . . 50 C.2.4. Experimentos 11 etiquetas . . . . . . . . . . . . . . . . . . . . . . . 50 C.3. Secuencia User_Ada_Byron-2(Alejo) . . . . . . . . . . . . . . . . . . . . . 50 C.3.1. Experimentos Iniciales . . . . . . . . . . . . . . . . . . . . . . . . . 50 C.3.2. Experimentos por niveles . . . . . . . . . . . . . . . . . . . . . . . . 52 C.3.3. Experimentos fijando nivel 1 . . . . . . . . . . . . . . . . . . . . . . 52 C.3.4. Experimentos 11 etiquetas . . . . . . . . . . . . . . . . . . . . . . . 52 C.4. Secuencia User_Ada_Byron-3 . . . . . . . . . . . . . . . . . . . . . . . . . 52 C.4.1. Experimentos Iniciales . . . . . . . . . . . . . . . . . . . . . . . . . 55 C.4.2. Experimentos por niveles . . . . . . . . . . . . . . . . . . . . . . . . 55 C.4.3. Experimentos fijando nivel 1 . . . . . . . . . . . . . . . . . . . . . . 55 C.4.4. Experimentos 11 etiquetas . . . . . . . . . . . . . . . . . . . . . . . 55 C.5.SecuenciaUser_i3a-2.............................. 58 C.5.1. Experimentos Iniciales . . . . . . . . . . . . . . . . . . . . . . . . . 59 C.5.2. Experimentos por niveles . . . . . . . . . . . . . . . . . . . . . . . . 59 C.5.3. Experimentos fijando nivel 1 . . . . . . . . . . . . . . . . . . . . . . 59 C.5.4. Experimentos 11 etiquetas . . . . . . . . . . . . . . . . . . . . . . . 59 C.6. Secuencia User_Ada_Byron-4 . . . . . . . . . . . . . . . . . . . . . . . . . 62 vi C.6.1. Experimentos Iniciales . . . . . . . . . . . . . . . . . . . . . . . . . 62 C.6.2. Experimentos por niveles . . . . . . . . . . . . . . . . . . . . . . . . 62 C.6.3. Experimentos fijando nivel 1 . . . . . . . . . . . . . . . . . . . . . . 62 C.6.4. Experimentos 11 etiquetas . . . . . . . . . . . . . . . . . . . . . . . 65 vii 2.2 Segmentación de una imagen RGB-D 2. Procesado de imágenes RGB-D La segunda imagen obtenida representa un mapa de profundidad. Los valores de profundidad obtenidos por la cámara son entre [0,2048]. Sin embargo, para guardarlo se comprimen en imágenes de 8 bits con 1 canal. Por lo tanto tenemos imágenes como la Figura 2.1b, en escala de grises. 2.2. Segmentación de una imagen RGB-D Después de ver cómo son las imágenes, haremos un repaso a los modelos de segmentación utilizados en este proyecto además de una comparativa entre ellos. Estos modelos no son excluyentes entre sí, se pueden aplicar conjuntamente. Por lo tanto veremos tres tipos de segmentación de la imagen y sus posibles variaciones. 2.2.1. Segmentación en superpixels La segmentación en superpixels es un método de clustering de pixels. Este modelo crea una imagen formada por conjuntos de superpixels. Un superpixels es un conjunto de pixels adyacentes cuyo valor entra dentro de un rango de aceptación. El resultado final es una imagen donde cada pixel ha sido asignado a un superconjunto o ’superpixel’. Si visualizamos la imagen asignando a todos los pixels que han caido dentro del mismo superpixel el valor de la media de su superpixel veremos una imagen parecida a la Figura 2.2. Este paso nos va a ser muy útil a la hora de trabajar con los colores de pixels ya que evita variaciones entre pixels colindantes y añade robustez, por lo tanto será nuestro primer paso de pre-procesado de imagen. Figura 2.2: Visualización de la segmentación de una imagen en superpixels. Se estudiaron dos tipos de técnicas recientes de entre las más utilizadas para segmentación de superpixels: Seeds ySLIC. Se decidió utilizar estos métodos debido a que es de los métodos que, por lo visto en lecturas relacionadas, mejor resultado están dando y por 6 2. Procesado de imágenes RGB-D 2.2 Segmentación de una imagen RGB-D ser el estado del arte de los métodos de cálculo de superpixels. SLIC El algoritmo de segmentación SLIC utilizado en este proyecto fue presentado en [10].La implementación que utilizamos está disponible en la página del trabajo2. Las ventajas de este algoritmo son la facilidad de uso y rapidez. El funcionamiento de este algoritmo se basa en el crecimiento de regiones.Para ello inicializa los centros de los cluster muestreando pixels. Luego, para cada cluster, calcula la distancia a los pixels más cercanos. Si esa distancia es menor que la que tenía anteriormente, ese pixel cambia la etiqueta a la del cluster actual. Esto se repite hasta alcanzar un error residual menor a un umbral. En este algoritmo el parámetro modificable es K, el número de superpixels finales deseados. (a) 20 Superpixels (b) 50 Superpixels (c) 100 Superpixels (d) 200 Superpixels Figura 2.3: Visualización de un ejemplo de segmentación SLIC con distinto número de superpixels. En la Figura 2.3 podemos observar que con un número bajo de superpixels la imagen queda subsegmentada y se acoplan diferentes colores de forma que no deseamos. Vemos que a partir de 100 la imagen se segmenta de una manera más acertada y elegiremos 200 por ser la que mejor segmenta. SEEDS Este método de segmentación en superpixels fue propuesto por [11]. La implementación utilizada se encuentra en la página del trabajo3. El funcionamiento de este método se basa en el movimiento de bordes utilizando el algoritmo de ’Hill-climbing’ [12]. Inicialmente, divide la imagen en una cuadrícula con el número de superpixel deseado. A partir de ahí se utiliza el algoritmo de ’hill-climbing’ junto con un histograma basado en el color y una función de cálculo de bordes para calcular la posible mejoría del cambio. Por lo tanto, la modificación de un borde de un superpixel viene dada cuando la función de energía de ese superpixel aumente con el cambio. En la Figura 2.4 podemos ver la diferencia de funcionamiento con respecto a otros metodos. 2http://ivrg.epfl.ch/research/superpixels 3http://www.vision.ee.ethz.ch/~boxavier/seeds/ 7 2.2 Segmentación de una imagen RGB-D 2. Procesado de imágenes RGB-D Figura 2.4: Comparación Seeds con otros métodos. El primer método busca bordes con los que separar superpixels. El segundo realiza un crecimiento de regiones desde unos centros asignados.Figura obtenida del artículo [11]. (a) 20 Superpixels (b) 50 Superpixels (c) 100 Superpixels (d) 200 Superpixels Figura 2.5: Visualización de un ejemplo de segmentación Seed con distinto número de superpixels. Algunos ejemplos (véase Figura 2.5) con las secuencias con las que trabajamos y un distinto numero de superpixels. Veremos que al igual que en el caso de los superpixel, si el número de superpixels es muy pequeño la acoplación de colores es muy alta. Sin embargo, a partir de 100 la imagen queda segmentada de manera que los bordes están mejor definidos. 2.2.2. Segmentación de pixels pertenecientes a piel La segmentación en pixels de piel que queremos realizar se basa tanto en el color de los pixels como en la profundidad a la que se encuentran estos. Se propone realizar un barrido sobre toda la imagen desechando pixels que no cumplan una cierta restricción. 8 2. Procesado de imágenes RGB-D 2.2 Segmentación de una imagen RGB-D Para el color se utilizó un filtro detallado en la Fórmula 2.1. (R > 95)&(G > 40)&(B > 20)& ((MAX(R, G, B)−MIN(R, G, B)) >15) &(|R−G|>15)&(R > G)&(R > B). (2.1) Este filtro para el color de piel se basa en los resultados del trabajo mostrado en [13]. A esto se le añadió la limitación de profundidad. Después de una serie de pruebas de calibración, se vio que el valor 110 de profundidad se correspondía bien con la distancia con la que suelen estar los brazos. Aproximando este valor a la realidad y basándose en algunos resultados se podría aproximar a una distancia de 100 cm. En la Figura 2.7, donde los pixeles en blanco son pixeles aceptados por el filtro de piel pero no por el filtro de profundidad, vemos que el número de pixels aceptados incorrectamente aumenta sin el filtro de profundidad. Sin embargo, aún con este paso, la segmentación no es perfecta ya que algunas mesas o libros que están a una distancia parecida a la de los brazos y tienen un color parecido son reconocidos como piel. En la Figura 2.6 comprobamos como resulta la imagen tras el filtro tanto de color como de profundidad. Figura 2.6: Visualización de una imagen tras el filtrado de color y profundidad. 2.2.3. Segmentación según restricciones geométricas: Planos Con este tipo de segmentación buscábamos evitar o desechar falsos positivos de puertas, mesas, suelos... asi como poder utilizar la información para describir la imagen. Para ello haremos uso de la biblioteca PCL [14] que trabaja con nube de puntos y tiene funciones que facilitan la búsqueda y segmentación de planos. Usando la clase SACSegmentation4 con un modelo de plano y el método iterativo Ransac, buscamos planos en las imágenes. Este método busca planos en la imagen calculándolos en base a ciertos puntos de la nube y luego comprueba qué cantidad de puntos de la nube entran dentro del plano calculado. En la Figura 2.8 se puede observar un ejemplo de segmentación del plano dominante. 4http://docs.pointclouds.org/trunk/a01380.html 9 2.2 Segmentación de una imagen RGB-D 2. Procesado de imágenes RGB-D (a) Imagen Original (b) Visualización del filtro de profundidad. Figura 2.7: Visualización del la reducción de ruido mediante el uso del filtro de profundidad. Los pixels blancos son aquellos que el filtro de color admite pero el filtro de profundidad rechaza. (a) Imagen Original (b) Segmentación Plano (c) Segmentación Plano y Piel Figura 2.8: Segmentación del plano dominante de fondo. El algoritmo permite modificar la precisión mediante la distancia de threshold mínima, el número de iteraciones, el método de búsqueda... Sin embargo, cuanta mayor precisión se busca mayor será el coste de ejecución del algoritmo hasta llegar a un punto donde el aumento de precisión no sea visible. 2.2.4. Comparativa segmentación En esta sección vamos a realizar una comparativa entre cada una de las posibilidades de las distintas segmentaciones posibles, así como una entre distintas segmentaciones. Comparativa Superpixels Como vemos en la Figura 2.9 al comparar los algoritmos de segmentación de superpixels nos encontramos que, como bien se menciona en su publicación[11], el algoritmo Seed respeta mejor los bordes originales de la imagen. Sin embargo, en cuestión de coste 10 2. Procesado de imágenes RGB-D 2.2 Segmentación de una imagen RGB-D (a) Imagen Seeds (b) Imagen SLIC Figura 2.9: Visualización de la comparación entre la segmentacion Seeds(a) y SLIC(b). SLIC es mucho más rápido que Seed. Por lo tanto se nos plantea el problema de calidad contra tiempo. Como en un principio no estamos restringidos por la limitación de la ejecución en tiempo mínimo, tomaremos la calidad. Por tanto, utilizaremos en las pruebas la segmentación Seed para calcular los superpixels. Conclusión Segmentación de Piel (a) Imagen Original (b) Imagen Piel y Seeds (c) Imagen Piel y SLIC Figura 2.10: Comparativa piel con SuperPixel. En la Figura 2.10 vemos que los pixels de piel son segmentados en su mayoría, pero sin los superpixels tiene mayor forma de ruido, lo que podría empeorar siguientes etapas de extracción de descriptores. Cuando utilizamos superpixels, la segmentación es más limpia, aunque puede darse el caso de que segmente pixels que no pertenezcan como son elementos de la escena cuyo color y profundidad sean parecidos. Conclusión Segmentación de planos En el caso de la segmentación de los planos nos encontramos con la situación de que, siendo su coste de ejecución elevado, puede no merecer la pena combinarlo con la 11 2.3 Descripción de una imagen RGB-D 2. Procesado de imágenes RGB-D (a) Imagen Original (b) Imagen segmentación Plano,Piel y Seeds (c) Imagen segmentación Plano,Piel y SLIC Figura 2.11: Visualización de la segmentaciíon del plano dominante y las diferencias en entre SLIC ySeeds. segmentación de piel.Se han realizado varios experimentos para combinar las segmentación de planos junto con las otras dos segmentaciones, como en la Figura 2.8c.En ellos se puede observar qué pixels pertenecientes a piel sean tomados como pixels de un plano y desechados. Por lo tanto para las siguiente fases de reconocimiento se prescindió de la segmentación de planos ya que no solo es ineficiente sino que también empeora el resultado. Conclusión Segmentación Viendo los resultados obtenidos se ha decidido hacer uso de la segmentación en superpixels Seeds junto con la segmentación de piel dado que son los que aparentemente mejor segmentan los pixels de piel. La segmentación de planos no está incluida dado que aumenta el coste y empeora la precisión. 2.3. Descripción de una imagen RGB-D En cualquier tarea de reconocimiento, es difícil trabajar con los datos en crudo de la imagen, usando los valores individuales de cada pixel. En general hay que buscar descriptores de la imagen que compriman la información que pueda resultar más discriminante para la tarea que se quiere realizar y que sean más descriptivos que la información de cada pixel por separado. El rango y tipo de descriptores de imágenes que encontramos en la literatura es muy amplio, puede variar desde estadísticas sencillas como el número de pixels de un color hasta otras mucho más complejas basadas en los gradientes de la imagen. Se puede hacer una división del tipo de descriptores según sobre qué parte de la imagen se calculan: globales y locales. Los descriptores de tipo global son aquellos que se calculan sobre el conjunto total de la imagen. Los descriptores de tipo local son aquellos que se 12 2. Procesado de imágenes RGB-D 2.3 Descripción de una imagen RGB-D calculan sobre zonas de interés o partes de la imagen. A continuación se describen los descriptores estudiados para nuestro problema, según su tipo. 2.3.1. Descriptores globales En este apartado se discutirá qué descriptores globales se han implementado. Histograma de piel Ya que muchas de las actividades que realiza una persona están relacionadas con los objetos que manipula, se quería buscar un descriptor basado en los pixels de piel que aparecen en la imagen. Para analizar como están distribuidos los pixels que corresponden con piel en la imagen, calculamos dos histogramas de pixels de piel para cada eje como se ve en la imagen 2.12c y 2.12b. A partir de este análisis de la distribución, se diseño un descriptor global obtenido de manera similar, pero construyendo un único histograma, con un valor en el histograma para cada celda en vez de separar filas y columnas. Se dividió la imagen en una cuadrícula de un tamaño modificable y se calculó un histograma de cada celda. (a) Imagen segmentada con cuadricula (b) Histograma en el eje Vertical. (c) Histograma en el eje Horizontal. Figura 2.12: Histogramas de los ejes Horizontal(b) y Vertical(c) donde cada valor representa el número de pixels de piel en esa fila o columna. Visualización de la cuadrícula(a) con la que se calcula el histograma de piel. De esta forma ya tenemos un descriptor global de la imagen basado en los pixels de piel segmentados, que además es rápido de calcular y fácil de manejar. Lo siguiente que se buscaba era decidir qué tamaño de cuadrícula sería el aconsejable. Al ser una cuadrícula, y por no complicar en exceso el descriptor, se decidió que ambos ejes tuvieran el mismo tamaño. Dado que no nos interesaba un descriptor cuyo tamaño fuera excesivamente grande experimentalmente se decidió probar con tamaños de cuadricula con 5,10 y 15. El tamaño del descriptor es el cuadrado de los tamaños con lo cual tendríamos posibles descriptores de tamaños 25,100 y 225. Se decidió finalmente utilizar el tamaño de 10 ya que nos daba la suficiente información sin excederse en tamaño. 13 2.3 Descripción de una imagen RGB-D 2. Procesado de imágenes RGB-D Figura 2.13: Explicación del funcionamiento del descriptor GIST obtenida del trabajo [15]. GIST El descriptor de imagen GIST fue propuesto en [16]. Este descriptor es utilizado en trabajos como [15] donde muestra buenos resultados en materia de reconocimiento de elementos en un conjunto de imágenes. En este trabajo se deja disponible una implementación del descriptor en C++ que es la que utilizaremos en este proyecto. El funcionamiento de este descriptor es el siguiente. Inicialmente se reduce la imagen debido a que es un descriptor bastante robusto frente al redimensionamiento. Luego se separan los posibles canales de color y se trabaja sobre cada uno de ellos. Se divide la imagen en una cuadrícula de dimensiones definidas, dentro de la cual se calculan las orientaciones y el histograma de estas orientaciones por celda. Estos histogramas se concatenan formando el descriptor total GIST. El tamaño del GIST viene fijado por el tamaño que fijemos en la cuadrícula, no por el tamaño de la imagen. La Figura 2.13 muestra un resumen de como funciona. El descriptor GIST es calculado sobre la imagen total, sin ningún tipo de segmentación. En una serie de pruebas que se realizaron calculándolo imagen segmentada en superpixels, la fiabilidad del descriptor se redujo a la mitad. En nuestro trabajo, utilizaremos el GIST calculado solo sobre la imagen en nivel de gris, ya que ocupa un tercio que el descriptor de la imagen a color y no aportaba grandes diferencias. Otros descriptores estudiados También se estudiaron otros descriptores de imagen típicos en tareas de reconocimiento que estaban disponibles en la biblioteca OpenCV [21]: Brief [17] y Orb[18]. Sin embargo, tras realizar una serie de cálculos con varias imágenes vimos que el tamaño de estos descriptores (5000 y 16000 aproximadamente) era demasiado alto y rompía con nuestra idea de descriptores compactos, ademas del problema de memoria que pueda ocasionar 14 2. Procesado de imágenes RGB-D 2.3 Descripción de una imagen RGB-D un conjunto alto de imágenes con descriptores de ese tamaño. 2.3.2. Descriptores Locales Un descriptor local es aquel cuyos cálculos se basan en una o varias regiones de la imagen. Por lo tanto, al revés que los descriptores globales, no tiene en cuenta la imagen en conjunto sino una serie de regiones de interés. La búsqueda de estas regiones depende del tipo de descriptor elegido. En nuestro caso, nos centramos en calcular descriptores basados en el Bounding Box de los brazos/manos explicado a continuación. Bounding Box El termino Bounding Box proviene del ingles Minimal Bounding Rectangle[19], que significa rectángulo delimitador mínimo. En nuestro caso sera el rectángulo mínimo que contenga la mano o el brazo. Para ello haremos uso de la imagen segmentada tanto en superpixels como en piel. Para calcular las Bounding Box partimos de dos histogramas previamente calculados de la cantidad de pixels en cada uno de los ejes (vease Figura 2.12). A partir de estos histogramas buscamos ’zonas’ que parezcan de interés, porque contienen muchos pixels de piel. Estas zonas podrán ser luego los límites en un eje de un Bounding Box. Para aceptar unos límites tienen que contener más de un mínimo de pixels de piel y además no haber huecos. Esto último se mira con el hecho de que en una fila/columna no haya ningún pixel, es decir el valor del histograma sea 0. Una vez calculadas las posibles zonas, el número de posibles Bounding Box puede ser mayor del necesario. Para ello revisamos en cada candidato la cantidad de pixels aceptados que hay en la celda de la cuadrícula correspondiente a su centro. Si esta cantidad es superior a un umbral, se comprueba que los límites son correctos y se trata como un Bounding Box. Esta comprobación es necesaria debido a que no siempre se calculan los límites correctamente (puede haber confusión entre dos candidatos solapados en un eje). En la figura 2.14 podemos observar un ejemplo de Bounding Box donde se ha dibujado un cuadrado de color azul. Una vez calculado el Bounding Box se pueden analizar una serie de propiedades de dicho rectangulo. Entre las opciones estudiadas están: los momentos5basados en la imagen binaria de Piel/No-piel, atributos estadísticos de media, moda sobre cada canal de color, etc. Nos decantamos por dos cálculos sencillos y que podrían añadir información interesante. Primero el cálculo de los vectores propios y luego el cálculo del ratio de completitud del Bounding Box. Para calcular los vectores propios realizamos una Principant Component Analysis (PCA)[20] sobre todos los pixels de piel pertenecientes al Bounding Box. De ahí obtenemos los vectores propios y con ello el vector orientación, aunque este último solo sirva 5http://en.wikipedia.org/wiki/Moment_(mathematics) 15 4.2 Resultados de clasificación 4. Experimentos Se han utilizado 5 secuencias en total y, como se ha explicado en el apartado 3.3, en cada experimento utilizamos una secuencia de testeo y las otras cuatro de entrenamiento. Para realizar los experimentos se han limitado el número de imágenes de entrenamiento, debido tanto a las posibles limitaciónes técnicas de los ordenadores como a la búsqueda de un entrenamiento más equilibrado. Por lo tanto, para el primer nivel se acepta un total de 6000 ejemplos (un ejemplo quiere decir un ’frame’ de la secuencia) por etiqueta. En siguientes niveles, acepta un máximo de 1200 ejemplos por etiqueta, habiendo algunas etiquetas que lo saturan y otras de las cuales hay pocos ejemplos y no llegan a este límite, sino que se quedan en unos pocos cientos. Para elegir las imágenes de entreno se coge las cuatro secuencias y se van añadiendo un ejemplo sacado de cada secuencia hasta completar los límites o hasta acabar con las secuencias. 4.1.2. Acciones a reconocer La precisión o definición y cantidad de las etiquetas que definamos influirán en el nivel de precisión del reconocedor. Inicialmente partimos de un total de 27 etiquetas definidas en el nivel semántico más alto, más detallado (nivel 3 en la Tabla 4.3 junto con el nivel 2 de no-manipulacion en la Tabla 4.2 ). Como el reconocimiento muy detallado de acciones puede resultar muy complicado con poco ejemplos de cada una (los descriptores solo capturan la información 2D, no 3D) se decidió por una división de acciones por niveles. Definimos los niveles descritos en las Tablas 4.1, 4.2 y 4.3. Nivel 1 Nombre Descripción Manipulación Acciones que conllevan manipulación manual No Manipulación Acciones que no conllevan manipulación manual Cuadro 4.1: Nivel 1 de división de etiquetas. La división se realizó en base a las distintas posibilidades de acción. La primera división está basada en si en la imagen hay o no acción de manipulación. En el caso de que haya manipulación, qué tipo de manipulación hay(con una mano,dos manos o con un objeto) y en el caso de que no haya manipulación qúe tipo de acción podría definirse. Esta división nos dará un alto porcentaje de aciertos en el primer nivel que se reducirá en el segundo nivel.El tercer nivel es meramente orientativo debido que no buscamos tanta precisión de etiquetas. En el apartado de resultados veremos cómo de bien funciona cada unos de los niveles. 4.2. Resultados de clasificación En este capítulo hablaremos sobre los experimentos más importantes realizados para validar y evaluar el rendimiento del sistema propuesto. Para estos experimentos hemos 22 4. Experimentos 4.2 Resultados de clasificación Nivel 2 Nivel 2 (Manipulación) (No Manipulación) Nombre Descripción Nombre Descripción DosManos Acciones que conllevan el uso de dos manos Andar Movimiento del usuario UnaMano Acciones que conllevan el uso de una mano Escaleras Subir/bajar las escaleras Interacción Acciones que conllevan la interacción(coger/dejar) con objectos Parado El usuario está estático Desconocido Acciones no incluidas en el resto de etiquetas Sentado El usuario está sentado Pantalla Mirar/Leer en una pantalla Poster Mirar/Leer un poster/cartel Hablar Hablar con alguien Cuadro 4.2: Nivel 2 de división de etiquetas. Nivel 3(DosManos) Nivel 3(UnaMano) Nivel 3(Interacción) Escribir en el Teclado Abrir/Cerrar Puerta Beber Utilizar el ratón Abrir/Cerrar Ventana Comer Leer un papel Abrir/Cerrar Nevera Coger Objeto Leer un libro Abrir/Cerrar Microondas Dejar Objecto Escribir a mano en un papel Abrir/Cerrar Armario Utilizar maquina de cafe Escribir en la pizarra Utilizar Maquina expendedora Dar la mano/Saludar a alguien Hablar por teléfono Cuadro 4.3: Nivel 3 de división de etiquetas. usado las posibles configuraciones de los distintos clasificadores y los distintos descriptores. Las posibilidades en los descriptores eran las vistas en el capitulo 2.3 : GIST, histograma de piel y Bounding Box incluyendo los descriptores separados que se calcularon. Para las posibilidades de los clasificadores teníamos el Nearest Neighbor y el SVM, utilizando los posibles kernel de lineal,RBF, sigmoidal y polinómico. El uso de distintos kernel nos ayudará además a conocer como se comportan nuestros datos. En una serie de pruebas intermedias vimos que el comportamiento del kernel sigmoidal y polinómico era peor o igual que el del RBF, con lo que reducimos el número de kernels a lineal y RBF. Los resultados de estas pruebas se encuentran en el Anexo C. Por lo tanto, para los experimentos que explicaremos a continuación utilizaremos como combinaciones de descriptores: Histograma de piel, GIST,GIST+Histograma de piel, GIST+Histograma de piel+Total de descriptores de las Bounding Box,GIST+Total de 23 4.2 Resultados de clasificación 4. Experimentos descriptores de las Bounding Box,GIST+Vectores propios de las Bounding Box e Histograma de piel+Ratio completitud de las Bounding Box. Como clasificadores utilizaremos nuestra versión de Nearest Neighbor y el SVM con dos posibles kernels:RBF y lineal. 4.2.1. Resultados experimentos con la misma configuración El experimento de este apartado estudia los resultados cuando se usa la misma configuración en los tres niveles es decir, si en el primer nivel se utiliza la configuración GIST con SVM de kernel lineal, en los siguientes niveles se utiliza esa misma configuración. En las Figuras 4.1, 4.2 y 4.3 se muestran los resultados de probar todos los clasificadores con distintas combinaciones de descriptores. Estos resultados son la media de los resultados de 5 experimentos: cada uno usando como test cada una de las 5 secuencias, y las otras 4 de entrenamiento. La configuración mostrada es la misma utilizada en todos los niveles de reconocimiento. Los resultados de cada secuencia se encuentran en el Anexo C. Primer Nivel Figura 4.1: Gráfica que muestra el % de aciertos medio en el primer nivel de cada una de las posibilidades. En el Eje X tenemos los distintos descriptores, cada barra representa cada uno de los clasificadores y en el Eje Y tenemos los porcentajes de aciertos para el descriptor y el clasificador elegido. En la Figura 4.1, que nos muestra el resultado del experimento para el primer nivel, vemos que en materia de descriptores tanto el Histograma de piel solo o combinandolo con GIST o el descriptor de ratio de las Bounding Box funcionan de manera parecida, rondando los 84 % de aciertos. Para los clasificadores vemos que el SVM con kernel RBF tiene un ligero aumento de aciertos frente al Nearest Neighbor. Además podemos observar que el Bounding Box junto con el kernel lineal del SVM reduce los aciertos entre un 20 y un 30 %. 24 4. Experimentos 4.2 Resultados de clasificación Matriz de confusión Para analizar en más detalle el funcionamiento de un clasificador se calcula una matriz, llamada matriz de confusión, en la que se indica para cada etiqueta según el ground truth cuántas veces se ha reconocido otra etiqueta. Por ejemplo, siendo ei,j un elemento de la matriz de confusión nos indica el porcentaje de veces que se ha reconocido la etiqueta i siendo la etiqueta del ground truth j. Esto es muy útil a la hora de comprobar como funciona nuestro clasificador. En la Tabla 4.4 tenemos la matriz de confusión para el primer nivel en el mejor caso. Manipulación(2532) No-Manipulación(2538) Manipulación 0.72 0.09 No-Manipulación 0.28 0.91 Cuadro 4.4: Ejemplo de matriz de confusión para el nivel inicial. La fila representa la etiqueta reconocida y la columna el ground truth. Los números entre paréntesis indican el número de imágenes de test que teníamos de cada etiqueta. Nivel Manipulación En la Figura 4.2 se encuentran la media de los resultados del nivel 2 de manipulación. Vemos que los resultados se reducen bastante. Tanto estos porcentajes como los de no manipulación son relativos a los aciertos del primer nivel, es decir, no es el porcentaje total de apariciones de la etiqueta frente al número de aciertos. Esta reducción es comprensible debido a que buscamos una definición algo más concreta y las posibles confusiones aumentan. Por lo tanto tenemos que en esta división GIST funciona el que mejor con los tres posibles clasificadores. Nivel No Manipulación En la Figura 4.3 se encuentran la media de los resultados del nivel 2 de no-manipulación. Vemos que el nivel de acierto es parecido al del primer nivel. La mayoría de las opciones funcionan a un nivel parecido de aciertos, pero como veremos en el análisis maś detallado a continuación, este resultado era engañoso y no resulta tan bien como en el primer nivel. 4.2.2. Experimentos fijando primer nivel de clasificación Los resultados obtenidos en las pruebas anteriores para los niveles de manipulación y no-manipulación están influenciados por el nivel de división inicial. Por lo tanto realizaremos una prueba en la que fijaremos el primer nivel de etiquetas con el histograma de piel como descriptor y el SVM con el kernel RBF como clasificador. De esta manera podremos realizar un análisis más exhaustivo sobre las diferencias. Como podemos ver en los apartados siguientes, los porcentajes de acierto han variado lo que demuestra que 25 4.2 Resultados de clasificación 4. Experimentos Figura 4.2: Gráfica que muestra el % de aciertos medio en el nivel de Manipulación de cada una de las combinaciones de descriptores y clasificadores utilizados. Figura 4.3: Gráfica que muestra el % de aciertos medio en el nivel de No Manipulación de cada una de las combinaciones de descriptores y clasificadores utilizados. los resultados del primer nivel influyen en el tipo de imágenes que pasan a siguientes clasificaciones. Nivel Manipulación Vemos en la Figura 4.4 que para la división de manipulación la mayoría de las opciones dan resultados bastante reducidos, estando estos en un rango parecido a resultados ante26 4. Experimentos 4.2 Resultados de clasificación Figura 4.4: Gráfica que muestra el % de aciertos medio en el nivel de Manipulación, habiendo fijado el primer nivel, de cada una de las combinaciones de descriptores y clasificadores utilizados. riores. Como ha sido explicado antes, las acciones incluidas en este nivel son altamente confundibles . Por lo tanto, el GIST se alza como mejor candidato de los descriptores seguido por el conjunto de todos los descriptores. Junto al GIST se utilizara un clasificador SVM lineal, y junto al conjunto esta el clasificador Nearest Neighbor. En la Tabla 4.5, donde mostramos la matriz de confusión del mejor ejemplo para comprobar cómo se comporta nuestro clasificador, vemos que la dispersión es mucho mayor a la del nivel inicial, destacando las etiquetas de Interacción yDesconocido. Ambas tiene sentido que sean más problemáticas. La primera incluye acciones fácilmente confundibles con las acciones de una o dos manos. Y Desconocido incluye todo tipo de imágenes difícilmente clasificables. Por lo tanto podemos afirmar que para Dos Manos yUna Mano realiza una clasificación satisfactoria, pero que para una clasificación más óptima del resto de etiquetas haría falta mejor información discriminante. Nivel No Manipulación En el caso del nivel de No Manipulación nos encontramos con un problema. Si miramos los resultados obtenidos en porcentajes de aciertos, como se pueden ver en el Anexo C, tenemos que las mejores opciones obtienen porcentajes del 80 %. Sin embargo, tras estudiar más a fondo estos resultados, decidimos calcular la matriz de confusión. En la Tabla 4.6, donde está dicha matriz, vemos que los resultados son muy negativos. Estamos ante el problema de que el clasificador no está bien entrenado o no consigue discriminar bien las clases, ya que tiene un sesgo muy alto hacia la etiqueta de Andar. 27 4.2 Resultados de clasificación 4. Experimentos Dos Manos (1062) Una Mano (333) Interacción (597) Desconocido (313) Dos Manos 0.59 0.1 0.38 0.26 Una Mano 0.1 0.54 0.13 0.33 Interacción 0.11 0.27 0.25 0.15 Desconocido 0.2 0.09 0.24 0.26 Cuadro 4.5: Ejemplo de matriz de confusión para el nivel de manipulacion. La fila representa la etiqueta reconocida y la columna el ground truth. Los números entre paréntesis indican el número de test de cada etiqueta. Andar Escaleras Parado Sentado Pantalla Poster Hablar (1634) (33) (105) (3) (5) (7) (38) Andar 0.98 0.94 1 1 0.2 1 0.95 Escaleras 0 0 0 0 0 0 0 Parado 0.01 0.06 0 0 0 0 0.05 Sentado 0 0 0 0 0 0 0 Pantalla 0 0 0 0 0 0 0 Poster 0 0 0 0 0.8 0 0 Hablar 0 0 0 0 0 0 0 Cuadro 4.6: Ejemplo de matriz de confusión para el nivel de no-manipulacion. La fila representa la etiqueta reconocida y la columna el ground truth. Los números entre paréntesis indican el número de test de cada etiqueta. Por lo tanto, el porcentaje del 80 % es engañoso debido al alto porcentaje de Etiquetas Andar en el ground truth. Para poder obtener una clasificación más óptima habría que buscar información más discriminativa. Conclusión Por lo tanto, y gracias a este experimento, vemos que la mejor combinación final por niveles sería: En el primer nivel el descriptor del Histograma de piel junto con el clasificador SVM de kernel RBF, en el nivel de manipulación utilizaremos el descriptor GIST junto con el clasificador SVM de kernel lineal y en el tercer nivel utilizaremos el descriptor del histograma de piel junto con el clasificador Nearest Neighbor. Sin embargo, como hemos explicado antes, el comportamiento del clasificador en niveles superiores al primero no es deseado, aunque no pueda ser solucionado con los métodos estudiados( falta información discriminativa para la clasificación). 28 4. Experimentos 4.2 Resultados de clasificación 4.2.3. Experimento sin niveles Por último, realizaremos un experimento comprobando la diferencia entre la división de etiquetas en niveles o utilizar todas a un mismo nivel. Figura 4.5: Gráfica que muestra el % de aciertos medio en un único nivel con cada una de las combinaciones de descriptores y clasificadores utilizados. En la Figura 4.5 tenemos la gráfica con los resultados del experimento explicado antes. En ella podemos ver que la configuración con mejor porcentaje de acierto es utilizar el descriptor del histograma de piel junto con el clasificador SVM y su kernel lineal. El resultado obtenido no es concluyente a la hora de afirmar que la división es mejor o peor. Para ello, calcularemos la matriz de confusión donde nos mostrara el comportamiento de esta clasificación. En la Tabla 4.7 tenemos la matriz de confusión para una de las secuencias. Como se puede observar, el comportamiento del clasificador es muy parecido a lo que explicábamos en la sección 4.2.2, no discrimina suficientemente bien y utiliza en exceso una etiqueta(Andar). Pero además ahora, con respecto a los experimentos con división, ese exceso incluye las etiquetas de Manipulación (llegando a tener un 30 % de alguna de ellas). Por lo tanto, y dado que nuestro clasificador con la división por niveles era capaz de discriminar satisfactoriamente el nivel de Manipulación/No-Manipulación, nos será más útil utilizar la división por niveles para futuros análisis. 4.2.4. Experimento adicionales Como última prueba hemos clasificado una secuencia que no habíamos utilizado en ninguno de los experimentos anteriores. Esto nos indicara cómo de condicionado está 29 4.2 Resultados de clasificación 4. Experimentos Andar (1980) Escaleras (87) Parado (260) Sentado (9) Pantalla (0) Poster (78) Hablar (73) Dos Manos (484) Una Mano (351) Interaccion (331) Desconocido (556) Andar 0.97 1 0.81 0.22 0 0 0.68 0.01 0.35 0.27 0.12 Escaleras 0 0 0 0 0 0 0.01 0.11 0 0 0 Parado 0.01 0 0.05 0.22 0 0 0.05 0.04 0.13 0.13 0.18 Sentado 0 0 0 0 0 0 0 0 0 0 0 Pantalla 0 0 0 0 0 0 0.03 0.01 0 0 0.02 Poster 0 0 0 0 0 0 0.04 0 0 0.02 0 Hablar 0 0 0 0 0 0 0 0 0.02 0.01 0.03 DosManos 0 0 0.02 0 0 0 0.04 0.15 0.21 0.08 0.13 UnaMano 0.01 0 0.05 0.11 0 0 0.12 0.12 0.17 0.26 0.2 Interaccion 0.01 0 0.06 0.44 0 0 0 0.25 0.11 0.18 0.22 Desconocido 0 0 0 0 0 0 0.01 0.3 0.01 0.05 0.09 Cuadro 4.7: Ejemplo de matriz de confusión. La fila representa la etiqueta reconocida y la columna el ground truth. Los números entre paréntesis indican el número de test de cada etiqueta. nuestro clasificador con respecto a las secuencias utilizadas. La Figura 4.6 muestra un conjunto de ’frames’ de la secuencia con la etiqueta insertada en la imagen. Mediante una inspección visual observamos que el comportamiento es parecido al explicado en los experimentos anteriores: el primer nivel discrimina correctamente entre manipulación/nomanipulación, pero, en el nivel dos, esta discriminación es mucho más difusa. 30 4. Experimentos 4.2 Resultados de clasificación (a) El primer y el segundo nivel correcto. (b) El primer nivel incorrecto. (c) El primer nivel correcto y el segundo nivel incorrecto.(d) El primer nivel correcto y el segundo nivel incorrecto. Figura 4.6: Visualización de un conjunto de ejemplos de imágenes de una secuencia con el texto de la etiqueta reconocida insertada. La secuencia mostrada no ha sido utilizada en ningún otro experimento. 31 ÍNDICE DE FIGURAS ÍNDICE DE FIGURAS 3.1. Ejemplo de clasificación SVM. El hiperplano calculado divide el espacio en dos clases separando lo máximo posible los puntos frontera. . . . . . . . . . 19 3.2. Validación cruzada dejando uno fuera (LOOCV )............... 20 4.1. Gráfica que muestra el % de aciertos medio en el primer nivel de cada una de las posibilidades. En el Eje X tenemos los distintos descriptores, cada barra representa cada uno de los clasificadores y en el Eje Y tenemos los porcentajes de aciertos para el descriptor y el clasificador elegido. . . . . . 24 4.2. Gráfica que muestra el % de aciertos medio en el nivel de Manipulación de cada una de las combinaciones de descriptores y clasificadores utilizados. . 26 4.3. Gráfica que muestra el % de aciertos medio en el nivel de No Manipulación de cada una de las combinaciones de descriptores y clasificadores utilizados. 26 4.4. Gráfica que muestra el % de aciertos medio en el nivel de Manipulación, habiendo fijado el primer nivel, de cada una de las combinaciones de descriptores y clasificadores utilizados. . . . . . . . . . . . . . . . . . . . . . . 27 4.5. Gráfica que muestra el % de aciertos medio en un único nivel con cada una de las combinaciones de descriptores y clasificadores utilizados. . . . . . . . 29 4.6. Visualización de un conjunto de ejemplos de imágenes de una secuencia con el texto de la etiqueta reconocida insertada. La secuencia mostrada no ha sido utilizada en ningún otro experimento. . . . . . . . . . . . . . . . . 31 5.1. DistribuciónHoras ............................... 34 A.1. Modelo Asus Xtation Pro ........................... 39 B.1. Visualización de ejemplos de los kernels lineal, polinómico y RBF y de la forma de la función sigmoidal. . . . . . . . . . . . . . . . . . . . . . . . . . 44 C.1. Resumen Secuencia User_Ada_Byron-1 . . . . . . . . . . . . . . . . . . . 48 C.2. Resumen Secuencia User_Ada_Byron-2 . . . . . . . . . . . . . . . . . . . 52 C.3. Resumen Secuencia User_Ada_Byron-3 . . . . . . . . . . . . . . . . . . . 55 C.4. Resumen Secuencia User_i3a-2 . . . . . . . . . . . . . . . . . . . . . . . . 58 C.5. Resumen Secuencia User_Ada_Byron-4 . . . . . . . . . . . . . . . . . . . 62 38 Anexo A Cámaras RGB-D Las cámaras RGB-D llevan en el mercado desde principio de siglo cuando la tecnología fotográfica digital estaba en auge, con modelos como la cámara ZCAM 1, sin embargo en los últimos años con la presentación, por parte de Microsoft, de Kinect2y el desarrollo de cámaras más asequibles están aumentando el número de proyectos relacionados con ellas. Figura A.1: Modelo Asus Xtation Pro En nuestro proyecto utilizaremos un modelo parecido al de Kinect pero desarrollado por Asus: la Asus Xtation Pro, como vemos en la imagen A.1. 1http://en.wikipedia.org/wiki/ZCam 2http://en.wikipedia.org/wiki/Kinect 39 A.1 Funcionamiento A. Cámaras RGB-D A.1. Funcionamiento El sensor de profundidad está formado por dos componentes: un proyector de luz infrarroja (IR) y un sensor CMOS monocromo estándar. La idea principal consiste en un proceso en dos fases, una primera de calibración, y otra de funcionamiento. En la fase de calibración, se emplea el proyector de luz infrarroja para proyectar un patrón de puntos sobre un plano de la escena, variando su distancia entre posiciones conocidas. A su vez, la cámara captura una imagen del patrón proyectado sobre el plano para cada una de estas distancias. Las imágenes obtenidas se denominan imágenes de referencia y se almacenan en el sensor. En la fase de funcionamiento se emplean las imágenes de referencia para sustituir ’virtualmente’ al emisor del patrón IR, de tal manera que para cada nueva imagen capturada por el sensor, el cálculo de profundidad se resume a un problema de visión estéreo con configuración ideal: cámaras idénticas, ejes alineados y separados una distancia base. A.2. Especificaciones Técnicas Asus Xtation Pro Power Consumption below 2.5W Distance of Use between 0.8m and 3.5m Field of View 58◦H, 45◦V, 70◦D (Horizontal, Vertical, Diagonal) Sensor RGB+depth Depth Image Size VGA (640x480) : 30fps QVGA (320x240): 60fps Platform Intel X86 & AMD OS Support Win 32/64:XP/Vista/7/8 Linux Ubuntu 10.10:X86, 32/64bit Android(by request) Interface USB2.0 Software software development kit(OpenNI SDK bundled) Programming Language C++/C# (Windows) C++(Linux) JAVA Operation Environment Indoor Dimensions 18 x 3.5 x 5 cm 40 Anexo B Clasificadores B.1. Nearest Neighbor(Vecino más proximo) El método Nearest neighbor, también conocido como búsqueda de proximidad o búsqueda del punto más cercano, es un problema de optimización para encontrar el punto(o valor) más cercano.La cercanía es típicamente expresada en términos de una función de desemejanza: Cuanto menos parecidos son los objetos mayor es el valor de la función. Formalmente, el problema de búsqueda de Nearest Neighbor es definido de la siguiente manera: Dado un conjunto S de puntos en un espacio M y un punto de consulta q∈M, encontrar el punto más cercano en S a q. Donald Knuth en el Volumen 3 de ’The Art of Computer Programming’ (1973) lo llamó el problema de correos, refiriéndose a la aplicación de asignar a una residencia la oficina de correos más cercana. Una generalización directa de este problema es la búsqueda k-NN, donde necesitaremos encontrar los k puntos más cercanos. Se han propuesto varias soluciones al problema de la búsqueda NN. La calidad y utilidad de estos algoritmos viene determinada por la complejidad temporal de las consultas así como de la complejidad espacial de cualquier estructura de búsqueda que necesite mantenimiento. La observación informal, normalmente referida como la maldición de la dimensionalidad, mantiene que no hay una solución exacta de propósito general para el problema NN en el espacio de alta dimensián euclidiana utilizando preprocesamiento polinomial y un tiempo de bśqueda polilogarítmico. Algunos métodos utilizados son: Búsqueda Lineal La solución más simple al problema NN es calcular las distancias desde el punto de consulta a todos los demás puntos de la base de datos, manteniendo el mejor hasta el momento. Este algoritmo, algunas veces referido como aproximación ingenua, tiene un tiempo de ejecución de O(Nd)donde N es la cardinalidad de S y d es la dimensionalidad de M. No hay ningún tipo de estructura de datos que mantener, asi que la búsqueda lineal no tiene complejidad espacial más allá del almacenamiento de la base de datos. 41 B.2 SVM (Support Vector Machine) B. Clasificadores Particionamiento del espacio Otro enfoque a este problema es el particionamiento del espacio. En el caso de un espacio Euclidiano este enfoque es conocido como índice espacial o método de acceso espacial. Varios métodos de particionamiento del espacio se han desarrollado para resolver el problema de NN. El más sencillo y utilizado es el ’k-d tree’, el cual iterativamente disecciona el espacio de búsqueda en dos regiones que contienen la mitad de los puntos de la región padre. Las búsquedas son realizadas a través de un árbol desde la raíz hasta una hoja evaluando el punto de consulta en cada separación. Dependiendo de la distancia especificada en la búsqueda, ramas vecinas que pueden contener aciertos también necesitarán ser evaluadas. Fichero de vector de aproximación En espacio de alta dimensión, las estructuras de indexación en árbol se vuelve inútiles por el incremento del porcentaje de nodos que necesitan ser examinados de cualquier manera. Para acelerar la búsqueda lineal, una versión comprimida del vector de características guardado en la RAM es usada para pre-filtrar la base de datos en una pasada. Los candidatos finales son determinados en una segunda etapa usando los datos descomprimidos de disco para el calculo de distancias. Búsqueda basada en la ’clusterización’ La anterior aproximación es un caso especial de la búsqueda basada en la compresión, donde cada característica es comprimida uniformemente e independientemente. La técnica de compresión óptima en espacios multidimensionales es la Cuantificación Vectorial, implementada a traves de la clusterización. La base de datos es clusterizada y los clusters más prometedores son recuperados. B.2. SVM (Support Vector Machine) Las máquinas de soporte vectorial o máquinas de vectores de soporte (Support Vector Machines, SVMs) son un conjunto de algoritmos de aprendizaje supervisado desarrollados por Vladimir Vapnik y su equipo en los laboratorios AT&T. Estos métodos están propiamente relacionados con problemas de clasificación y regresión. Dado un conjunto de ejemplos de entrenamiento (de muestras) podemos etiquetar las clases y entrenar una SVM para construir un modelo que prediga la clase de una nueva muestra. Intuitivamente, una SVM es un modelo que representa a los puntos de muestra en el espacio, separando las clases por un espacio lo más amplio posible. Cuando las nuevas muestras se ponen en correspondencia con dicho modelo, en función de su proximidad pueden ser clasificadas a una u otra clase. Más formalmente, una SVM construye un hiperplano o conjunto de hiperplanos en un espacio de dimensionalidad muy alta (o incluso infinita) que puede ser utilizado en problemas de clasificación o regresión. Una buena separación entre las clases permitirá un 42 B. Clasificadores B.2 SVM (Support Vector Machine) clasificación correcta. Funcionamiento Dado un conjunto de puntos, subconjunto de un conjunto mayor (espacio), en el que cada uno de ellos pertenece a una de dos posibles categorías, un algoritmo basado en SVM construye un modelo capaz de predecir si un punto nuevo (cuya categoría desconocemos) pertenece a una categoría o a la otra. Como en la mayoría de los métodos de clasificación supervisada, los datos de entrada (los puntos) son vistos como un vector p-dimensional (una lista de p números). La SVM busca un hiperplano que separe de forma óptima a los puntos de una clase de la de otra, que han podido ser previamente proyectados a un espacio de dimensionalidad superior. En ese concepto de ’separación óptima’ es donde reside la característica fundamental de las SVM: este tipo de algoritmos buscan el hiperplano que tenga la máxima distancia (margen) con los puntos que estén más cerca de él mismo. Por eso también a veces se les conoce a las SVM como clasificadores de margen máximo. De esta forma, los puntos del vector que son etiquetados con una categoría estarán a un lado del hiperplano y los casos que se encuentren en la otra categoría estarán al otro lado. Los algoritmos SVM pertenecen a la familia de los clasificadores lineales. También pueden ser considerados un caso especial de la regularización de Tikhonov. En la literatura de los SVMs, se llama atributo a la variable predictora y característica a un atributo transformado que es usado para definir el hiperplano. La elección de la representación más adecuada del universo estudiado, se realiza mediante un proceso denominado selección de características. Al vector formado por los puntos más cercanos al hiperplano se le llama vector de soporte. Los modelos basados en SVMs están estrechamente relacionados con las redes neuronales. Usando una función kernel, resultan un método de entrenamiento alternativo para clasificadores polinomiales, funciones de base radial y perceptrón multicapa. B.2.1. Kernel Debido a las limitaciones computacionales de las máquinas de aprendizaje lineal, éstas no pueden ser utilizadas en la mayoría de las aplicaciones del mundo real. La representación por medio de funciones Kernel ofrece una solución a este problema, proyectando la información a un espacio de características de mayor dimensión el cual aumenta la capacidad computacional de la máquinas de aprendizaje lineal. Es decir, mapearemos el espacio de entradas X a un nuevo espacio de características de mayor dimensionalidad. Los kernels más utilizados son los siguientes: 43 B.2 SVM (Support Vector Machine) B. Clasificadores Lineal(Figura B.1a): K(xi, xj) = xt ixj Polinomial-homogénea(Figura B.1b):K(xi, xj)=(γxT ixj+coef0)degree, γ > 0 Función de base radial (RBF)(Figura B.1c): K(xi, xj) = e−γ||xi−xj||2, γ > 0 Sigmoidal(Figura B.1d):K(xi, xj) = tanh(γxT ixj+coef0) (a) Ejemplo kernel lineal (b) Ejemplo kernel Polinómico (c) Ejemplo kernel RBF (d) Ejemplo función sigmoidal Figura B.1: Visualización de ejemplos de los kernels lineal, polinómico y RBF y de la forma de la función sigmoidal. 44 Anexo C Resultados En este Anexo mostraremos todos los resultados utilizados o referenciados en la memoria principal. Primero mostraremos los valores medios de los datos para un resumen inicial y luego mostraremos los propios de cada secuencia. C.1. Resumen Resultados En esta sección mostraremos un resumen de los experimentos de las secuencias. C.1.1. Experimentos Iniciales En esta sección, y en la de cada secuencia, se mostrará el resultado de un experimento inicial con todos los posibles kernel de SVM para comprobar si era necesario continuar con todas las opciones de clasificador. En la Tabla C.1 vemos el resumen del resultado de este experimento. C.1.2. Experimentos por niveles En esta sección, y en la de cada secuencia, se mostrará el resultado de la ejecución del experimento utilizando la misma configuración en todos los niveles y la división por niveles. En las Tablas C.2, C.3 y C.4 vemos el resumen del resultado de este experimento. NN SVM-RBF SVM-Lineal SVM-Sigmoidal SVM-Polinómico GIST 61.91 60.78 49.64 57.63 58.102 SKIN_HIST 78.437 73.52 73.44 25.543 49.38 SKIN_HIST+GIST 64.02 74.25 58.086 57.63 47.914 SKIN_HIST+GIST+ 76.53 79.811 0 0 0 BB_dimensions GIST+BB_dimensions 0 79.141 0 0 0 Cuadro C.1: Resumen de resultados de la ejecución de un experimento inicial. 45 C.1 Resumen Resultados C. Resultados NN SVM-RBF SVM-Lineal GIST 60.91 64.43 65.83 SKIN_HIST 81.90 84 80.5 SKIN_HIST+GIST 79.48 81.05 80.56 SKIN_HIST+GIST+BB_dimensions(Total) 76.54 80.22 51.85 GIST+BB_dimensions(Total) 76.63 74.28 45.45 SKIN_HIST+BB(ratio) 80.69 83.67 55.8 GIST+BB(Vectores) 76.60 74.26 43.64 Cuadro C.2: % Aciertos medios primer nivel NN SVM-RBF SVM-Lineal GIST 38.20 33.21 37.9 SKIN_HIST 26.38 27.5 24.19 SKIN_HIST+GIST 24.95 27.55 26.68 SKIN_HIST+GIST+BB_dimensions(Total) 29.08 31.16 20.24 GIST+BB_dimensions(Total) 28.62 30.4 29.02 SKIN_HIST+BB(ratio) 26.77 30.95 22.19 GIST+BB(Vectores) 28.7 30.36 25 Cuadro C.3: % Aciertos medios nivel manipulación. NN SVM-RBF SVM-Lineal GIST 79.42 80.63 83.59 SKIN_HIST 77.16 80.87 78.01 SKIN_HIST+GIST 75.05 80.93 78.32 SKIN_HIST+GIST+BB_dimensions(Total) 78.42 82.11 52.07 GIST+BB_dimensions(Total) 77.79 83.14 60.99 SKIN_HIST+BB(ratio) 82.06 82.32 39.45 GIST+BB(Vectores) 77.93 82.94 16.58 Cuadro C.4: % Aciertos medios nivel no-manipulación 46 C. Resultados C.2 Secuencia User_Ada_Byron-1(Alejandro) NN SVM-RBF SVM-Lineal GIST 28.03 29.20 34.70 SKIN_HIST 23.98 18.70 23.43 SKIN_HIST+GIST 22.04 18.32 26.46 SKIN_HIST+GIST+BB_dimensions(Total) 31.59 15.43 21.97 GIST+BB_dimensions(Total) 31.46 19.31 26.02 SKIN_HIST+BB(ratio) 24.06 21.95 25.07 GIST+BB(Vectores) 29.04 15.76 21.16 Cuadro C.5: % Aciertos medios del nivel manipulación habiendo fijado el primer nivel. NN SVM-RBF SVM-Lineal GIST 57.98 64.52 68.62 SKIN_HIST 80.16 79.10 80.12 SKIN_HIST+GIST 60.65 69.65 74.66 SKIN_HIST+GIST+BB_dimensions(Total) 79.57 68.59 29.03 GIST+BB_dimensions(Total) 79.51 67.01 18.56 SKIN_HIST+BB(ratio) 74.5 77.94 64.24 GIST+BB(Vectores) 78.95 71.15 29.61 Cuadro C.6: % Aciertos medios del nivel no-manipulación habiendo fijado el primer nivel. C.1.3. Experimentos fijando nivel 1 En esta sección, y en la de cada secuencia, se mostrará el resultado de la ejecución del experimento habiendo fijado la configuración del primer nivel dado que este influía en el segundo nivel. No habrá resultados del primer nivel ya que son los mismos que en el experimento anterior. En las Tablas C.5 y C.6 vemos el resumen del resultado de este experimento. C.1.4. Experimentos 11 etiquetas En esta sección, y en la de cada secuencia, se mostrará el resultado de la ejecución del experimento utilizando las 11 etiquetas del nivel 2 sin división en el primer nivel. En la Tabla C.7 vemos el resumen del resultado de este experimento. C.2. Secuencia User_Ada_Byron-1(Alejandro) En esta sección veremos los resultados de los experimentos para la secuencia User_Ada_Byron1. En la Figura C.1 vemos un resumen de esta secuencia en forma de mosaico. 47 C.4 Secuencia User_Ada_Byron-3 C. Resultados NN SVM-RBF SVM-Lineal GIST 43.81 51.59 50.68 SKIN_HIST 71.673 72.02 72.25 SKIN_HIST+GIST 53.585 58.17 58.68 SKIN_HIST+GIST+BB_dimensions(Total) 71.91 57.993 72.36 GIST+BB_dimensions(Total) 71.91 54.65 2.27 SKIN_HIST+BB(ratio) 54.65 71.968 2.39 GIST+BB(Vectores) 69.52 71.859 71.501 Cuadro C.19: Resultados del experimento del nivel de no manipulación habiendo fijado el primer nivel para la secuencia User_Ada_Byron-2. NN SVM-RBF SVM-Lineal GIST 23.367 26.293 30.19 SKIN_HIST 30.668 13.531 22.78 SKIN_HIST+GIST 27.26 15.191 23.47 SKIN_HIST+GIST+BB_dimensions(Total) 29.113 13.34 22.3 GIST+BB_dimensions(Total) 29.89 31.16 28.53 SKIN_HIST+BB(ratio) 27.85 31.06 28.34 GIST+BB(Vectores) 21.62 13.34 23.082 Cuadro C.20: Resultados del experimento del nivel de manipulación habiendo fijado el primer nivel para la secuencia User_Ada_Byron-2. NN SVM-RBF SVM-Lineal GIST 30.55 30.55 31.016 SKIN_HIST 43.86 43.86 45.57 SKIN_HIST+GIST 36.555 36.555 40.554 SKIN_HIST+GIST+BB_dimensions(Total) 33.57 33.57 9.32 GIST+BB_dimensions(Total) 37.69 37.69 30.89 SKIN_HIST+BB(ratio) 43.585 43.585 45.29 GIST+BB(Vectores) 37.657 37.657 7.9208 Cuadro C.21: Resultados del experimento utilizando un único nivel de etiquetas para la secuencia User_Ada_Byron-2. 54 C. Resultados C.4 Secuencia User_Ada_Byron-3 Figura C.3: Resumen Secuencia User_Ada_Byron-3 C.4.1. Experimentos Iniciales En la Tabla C.22 se muestran los resultados del experimento inicial. C.4.2. Experimentos por niveles En las Tablas C.23, C.25 y C.24 se muestran los resultados del experimento utilizando la misma configuración en los dos niveles. C.4.3. Experimentos fijando nivel 1 En las Tablas C.27 y C.26 se muestran los resultados del experimento habiendo fijado el primer nivel con la configuración más óptima. C.4.4. Experimentos 11 etiquetas En la Tabla C.28 se muestran los resultados del experimento en el que no se utilizan niveles, solo un único nivel de 11 etiquetas. 55 C.4 Secuencia User_Ada_Byron-3 C. Resultados NN SVM-RBF SVM-Lineal SVM-Sigmoidal SVM-Polinómico GIST 65.59 70.16 51.875 66.937 58.485 SKIN_HIST 78.89 80.656 80.06 24.75 52.78 SKIN_HIST+GIST 68.25 76.84 73.16 66.937 60.984 SKIN_HIST+GIST+ 72.94 74.33 0 0 0 BB_dimensions GIST+BB_dimensions 0 68.66 0 0 0 Cuadro C.22: Resultados del experimento inicial para la secuencia User_Ada_Byron-3. NN SVM-RBF SVM-Lineal GIST 63.55 66.11 68.05 SKIN_HIST 79.08 81.16 77.81 SKIN_HIST+GIST 77.08 80.45 78.58 SKIN_HIST+GIST+BB_dimensions(Total) 71.52 80.14 53.695 GIST+BB_dimensions(Total) 71.313 73.704 44.75 SKIN_HIST+BB(ratio) 76.98 81.109 50.49 GIST+BB(Vectores) 71.52 73.69 43.055 Cuadro C.23: Resultados del experimento del primer nivel con la misma configuración en todos los niveles para la secuencia User_Ada_Byron-3. NN SVM-RBF SVM-Lineal GIST 87.14 88.92 92.54 SKIN_HIST 84.359 89.5 85.61 SKIN_HIST+GIST 82.71 91.02 87.33 SKIN_HIST+GIST+BB_dimensions(Total) 86.86 90.89 81.718 GIST+BB_dimensions(Total) 86.15 91.07 50 SKIN_HIST+BB(ratio) 89.032 89.83 0 GIST+BB(Vectores) 86.63 91.07 17.09 Cuadro C.24: Resultados del experimento del nivel de no manipulación con la misma configuración en todos los niveles para la secuencia User_Ada_Byron-3. 56 C. Resultados C.4 Secuencia User_Ada_Byron-3 NN SVM-RBF SVM-Lineal GIST 40.65 38.17 41.946 SKIN_HIST 27.01 26.652 31.81 SKIN_HIST+GIST 33.554 25.867 33.92 SKIN_HIST+GIST+BB_dimensions(Total) 29.79 45.28 15.18 GIST+BB_dimensions(Total) 32.18 42.696 32.024 SKIN_HIST+BB(ratio) 36.1 44.3 30.65 GIST+BB(Vectores) 31.41 42.72 24.348 Cuadro C.25: Resultados del experimento del nivel de manipulación con la misma configuración en todos los niveles para la secuencia User_Ada_Byron-3. NN SVM-RBF SVM-Lineal GIST 69.10 60.67 75.187 SKIN_HIST 87.29 85.5 87.34 SKIN_HIST+GIST 73.22 73.923 82.94 SKIN_HIST+GIST+BB_dimensions(Total) 86.86 72.19 19.988 GIST+BB_dimensions(Total) 86.75 69.8 52.04 SKIN_HIST+BB(ratio) 85.11 85.06 85.33 GIST+BB(Vectores) 86.75 59.8 66.11 Cuadro C.26: Resultados del experimento del nivel de no manipulación habiendo fijado el primer nivel para la secuencia User_Ada_Byron-3. NN SVM-RBF SVM-Lineal GIST 26.742 34.28 41.07 SKIN_HIST 27.66 16.988 30.574 SKIN_HIST+GIST 26.44 15.68 34.1 SKIN_HIST+GIST+BB_dimensions(Total) 34.156 13.59 25.96 GIST+BB_dimensions(Total) 33.485 17.941 36.984 SKIN_HIST+BB(ratio) 29.09 15.592 30.918 GIST+BB(Vectores) 32.266 18.12 34.67 Cuadro C.27: Resultados del experimento del nivel de manipulación habiendo fijado el primer nivel para la secuencia User_Ada_Byron-3. 57 C.5 Secuencia User_i3a-2 C. Resultados NN SVM-RBF SVM-Lineal GIST 30.324 30.324 30.574 SKIN_HIST 38.22 38.22 43.984 SKIN_HIST+GIST 32.125 32.125 42.72 SKIN_HIST+GIST+BB_dimensions(Total) 30.633 30.633 10.488 GIST+BB_dimensions(Total) 29.633 29.633 6.0694 SKIN_HIST+BB(ratio) 37.97 37.97 43.1 GIST+BB(Vectores) 29.68 29.68 12.45 Cuadro C.28: Resultados del experimento utilizando un único nivel de etiquetas para la secuencia User_Ada_Byron-3. C.5. Secuencia User_i3a-2 En esta sección veremos los resultados de los experimentos para la secuencia User_i3a2. En la Figura C.4 vemos un resumen de esta secuencia en forma de mosaico. Figura C.4: Resumen Secuencia User_i3a-2 58 C. Resultados C.5 Secuencia User_i3a-2 NN SVM-RBF SVM-Lineal SVM-Sigmoidal SVM-Polinómico GIST 59.704 60.923 47.13 46.83 60.984 SKIN_HIST 77.28 78.454 78.48 26.043 57.79 SKIN_HIST+GIST 63.468 74.296 63.56 46.82 54.49 SKIN_HIST+GIST+ 71.53 77.27 0 0 0 BB_dimensions GIST+BB_dimensions 0 71.891 0 0 0 Cuadro C.29: Resultados del experimento inicial para la secuencia User_i3a-2. NN SVM-RBF SVM-Lineal GIST 61.664 62.23 61.95 SKIN_HIST 80.735 83.3 81.11 SKIN_HIST+GIST 79.64 74.69 81.454 SKIN_HIST+GIST+BB_dimensions(Total) 72.17 74.62 37.93 GIST+BB_dimensions(Total) 71.36 68.45 45.07 SKIN_HIST+BB(ratio) 80.34 82.173 80.92 GIST+BB(Vectores) 71.61 68.344 54.055 Cuadro C.30: Resultados del experimento del primer nivel con la misma configuración en todos los niveles para la secuencia User_i3a-2. C.5.1. Experimentos Iniciales En la Tabla C.29 se muestran los resultados del experimento inicial. C.5.2. Experimentos por niveles En las Tablas C.30, C.32 y C.31 se muestran los resultados del experimento utilizando la misma configuración en los dos niveles. C.5.3. Experimentos fijando nivel 1 En las Tablas C.34 y C.33 se muestran los resultados del experimento habiendo fijado el primer nivel con la configuración más óptima. C.5.4. Experimentos 11 etiquetas En la Tabla C.35 se muestran los resultados del experimento en el que no se utilizan niveles, solo un único nivel de 11 etiquetas. 59 C.5 Secuencia User_i3a-2 C. Resultados NN SVM-RBF SVM-Lineal GIST 75.61 71.391 81.782 SKIN_HIST 77.66 82.62 77.86 SKIN_HIST+GIST 74.28 77.66 78.53 SKIN_HIST+GIST+BB_dimensions(Total) 79.97 79.44 40.94 GIST+BB_dimensions(Total) 79.827 78.437 77.13 SKIN_HIST+BB(ratio) 82.92 83.97 79.36 GIST+BB(Vectores) 79.718 78.33 34.43 Cuadro C.31: Resultados del experimento del nivel de no manipulación con la misma configuración en todos los niveles para la secuencia User_i3a-2. NN SVM-RBF SVM-Lineal GIST 44.234 26.742 42.976 SKIN_HIST 10.059 15.97 15.42 SKIN_HIST+GIST 10.459 13.34 18.5 SKIN_HIST+GIST+BB_dimensions(Total) 25.83 14.01 18.54 GIST+BB_dimensions(Total) 20.992 18.399 35.56 SKIN_HIST+BB(ratio) 14.541 15.55 16.86 GIST+BB(Vectores) 23.832 18.61 30.817 Cuadro C.32: Resultados del experimento del nivel de manipulación con la misma configuración en todos los niveles para la secuencia User_i3a-2. NN SVM-RBF SVM-Lineal GIST 58.77 67.12 73.359 SKIN_HIST 81.689 78.327 81.485 SKIN_HIST+GIST 63.836 67.83 75.032 SKIN_HIST+GIST+BB_dimensions(Total) 79.735 66.673 38.01 GIST+BB_dimensions(Total) 79.563 66.63 15.842 SKIN_HIST+BB(ratio) 77.77 77.28 77.83 GIST+BB(Vectores) 79.673 66.63 5.9493 Cuadro C.33: Resultados del experimento del nivel de no manipulación habiendo fijado el primer nivel para la secuencia User_i3a-2. 60 C. Resultados C.5 Secuencia User_i3a-2 NN SVM-RBF SVM-Lineal GIST 40.156 24.67 41.36 SKIN_HIST 15.121 6.94 17.133 SKIN_HIST+GIST 14.32 4.21 19.172 SKIN_HIST+GIST+BB_dimensions(Total) 39.47 4.01 16.328 GIST+BB_dimensions(Total) 37.46 13.918 30.53 SKIN_HIST+BB(ratio) 13.8 6.2607 17.93 GIST+BB(Vectores) 33.977 14.002 13.322 Cuadro C.34: Resultados del experimento del nivel de manipulación habiendo fijado el primer nivel para la secuencia User_i3a-2. NN SVM-RBF SVM-Lineal GIST 20.832 20.832 28.18 SKIN_HIST 30.832 30.832 37.75 SKIN_HIST+GIST 20.668 20.668 35.08 SKIN_HIST+GIST+BB_dimensions(Total) 20.59 20.59 14.7 GIST+BB_dimensions(Total) 23.02 23.02 7.5 SKIN_HIST+BB(ratio) 30.15 30.15 36.4 GIST+BB(Vectores) 22.96 22.96 5.5107 Cuadro C.35: Resultados del experimento utilizando un único nivel de etiquetas para la secuencia User_i3a-2. 61 C.6 Secuencia User_Ada_Byron-4 C. Resultados C.6. Secuencia User_Ada_Byron-4 En esta sección veremos los resultados de los experimentos para la secuencia User_Ada_Byron4. En la Figura C.5 vemos un resumen de esta secuencia en forma de mosaico. Figura C.5: Resumen Secuencia User_Ada_Byron-4 C.6.1. Experimentos Iniciales En la Tabla C.36 se muestran los resultados del experimento inicial. C.6.2. Experimentos por niveles En las Tablas C.37, C.39 y C.38 se muestran los resultados del experimento utilizando la misma configuración en los dos niveles. C.6.3. Experimentos fijando nivel 1 En las Tablas C.41 y C.40 se muestran los resultados del experimento habiendo fijado el primer nivel con la configuración más óptima. 62 C. Resultados C.6 Secuencia User_Ada_Byron-4 NN SVM-RBF SVM-Lineal SVM-Sigmoidal SVM-Polinómico GIST 58.37 45.875 56.274 61.1 44.29 SKIN_HIST 72.92 77.735 77.687 33.35 56.2 SKIN_HIST+GIST 59.13 76.015 71.204 61.1 45.23 SKIN_HIST+GIST+ 71.485 78.609 0 0 0 BB_dimensions GIST+BB_dimensions 0 81.156 0 0 0 Cuadro C.36: Resultados del experimento inicial para la secuencia User_Ada_Byron-4. NN SVM-RBF SVM-Lineal GIST 56.85 65.16 63.375 SKIN_HIST 78.92 78.38 78.88 SKIN_HIST+GIST 76.89 78.109 78.61 SKIN_HIST+GIST+BB_dimensions(Total) 70.89 76.45 46.64 GIST+BB_dimensions(Total) 71.77 71.249 44.75 SKIN_HIST+BB(ratio) 75.22 78.08 76 GIST+BB(Vectores) 71.89 71.17 50.2 Cuadro C.37: Resultados del experimento del primer nivel con la misma configuración en todos los niveles para la secuencia User_Ada_Byron-4. NN SVM-RBF SVM-Lineal GIST 77 80.77 83.09 SKIN_HIST 74.37 80 74.92 SKIN_HIST+GIST 76.032 79.327 76.12 SKIN_HIST+GIST+BB_dimensions(Total) 76.577 80.39 57.16 GIST+BB_dimensions(Total) 73.94 81.33 45.65 SKIN_HIST+BB(ratio) 79.437 79.84 79.05 GIST+BB(Vectores) 74.296 81.282 22.222 Cuadro C.38: Resultados del experimento del nivel de no manipulación con la misma configuración en todos los niveles para la secuencia User_Ada_Byron-4. 63