¡¡Chacho!! Que la lías, mira p’alante Beatriz Torre Jiménez Grado en Ingeniería en Sistemas de Telecomunicaciones [email protected] Índice Introducción .................................................................................................................................. 2 Motivación y Campos de aplicación .............................................................................................. 3 Hough Random Forest para detección de objetos y estimación de la pose ................................. 5 Entrenamiento .......................................................................................................................... 5 Entrenamiento con imágenes de profundidad ..................................................................... 6 Entrenamiento con imágenes de color ................................................................................. 7 Etapa de estimación .................................................................................................................. 8 Estimación en imágenes de profundidad .............................................................................. 8 Estimación en imágenes RGB ................................................................................................ 9 Resultados y conclusiones........................................................................................................... 11 Análisis en imágenes de profundidad ..................................................................................... 11 Análisis en imágenes RGB ....................................................................................................... 13 Conclusiones del análisis comparativo de ambos resultados ................................................. 15 Futuras líneas de trabajo ............................................................................................................. 18 Bibliografía .................................................................................................................................. 20 1 Introducción A pesar de que conducir es una tarea prácticamente rutinaria para la mayoría de nosotros, sigue siendo una actividad arriesgada que requiere de mucha atención por nuestra parte. Siempre se nos dice que el problema es la velocidad y no respetar los límites, quizás también se hace referencia al estado de las calzadas o incluso la meteorología, pero si analizamos el problema con curiosidad científica y nos fijamos en las estadísticas, vemos que en 1 de cada 2 accidentes graves ocurrido en el 2012, ha habido cierto grado de despiste o falta de atención [1]. Así pues, si nuestra intención es reducir esta tasa y mejorar la seguridad, debemos centrarnos en reducir las fuentes de distracciones, pero... ¿es eso posible? ¿es fácil? ¿es factible? A priori parece complicado: sólo hay que ver el gran presupuesto en publicidad para marquesinas de autobús o carteles que hay en las autopistas. Rótulos luminosos, carteles móviles, diseños enfocados en captar nuestra atención… en principio parece difícil resistirse a algo que ha sido específicamente diseñado para que nos fijemos. Así que en este trabajo que presentamos, vamos a rodear el obstáculo: en vez de eliminar las fuentes de distracción, vamos a detectar cuando el usuario se distrae y cuando dicha distracción supone un peligro grave y, de esta forma, alertarle convenientemente. Para ello vamos a recurrir a técnicas de machine learning y visión por computador. Lo que hemos hecho es entrenar a un ordenador a medir distintos parámetros en el usuario y entender si está mirando lo que tiene en la carretera o está distraído mirando un cartel de excelentes Miguelitos de la Roda y no ve que el coche de delante se ha parado por culpa del atasco. En este trabajo vamos a presentar un modelo de regresión que es capaz de estimar el acimut, cenit y altura del rostro de una persona, fijando como punto de referencia la nariz. Para ello hemos entrenado el modelo utilizando un algoritmo de la familia de los bosques de decisión conocido como Hough Random Forest. Dicho entrenamiento utiliza como fuente de información una base de datos de imágenes de personas, anotada cada imagen con cada uno de los tres parámetros a estimar. De esta forma, el algoritmo tratará de encontrar una función que, partiendo de unas características de entrada, halle una función de transformación no lineal que permita calcular los parámetros deseados. A continuación, si definimos una función de error entre este mapeo y los valores anotados, podremos abstraer el problema y reducirlo a un problema matemático de optimización. [2] 2 Motivación y Campos de aplicación El ejemplo que se menciona en la introducción, de distraerse con un cartel y chocarse con el coche de delante, no es fruto de la imaginación, sino que es un caso que me toca de cerca, lo que, unido a otras circunstancias, me ha llevado a interesarme por este campo. Como podemos ver, este trabajo es de aplicación directa, ya que el estudio de cómo mejorar la seguridad en la conducción es algo muy actual. Sin embargo, esta no es su única aplicación, la estimación de la pose puede servir para muchos campos distintos. Sin ir más lejos, para el desarrollo de experiencias 3D. Como podemos ver en la Figura 1, Amazon utiliza 4 cámaras integradas en las esquinas de su ultimo teléfono móvil para ser capaz de adaptar las imágenes mostradas por su pantalla al ángulo desde el cual las estamos visualizando, de esta forma es capaz de conseguir un efecto tridimensional: si mueves el teléfono podrás ver que hay detrás de la esquina del edificio de la Figura 2. Figura 1 Presentación de la característica “dynamic perspective” del teléfono Fire Phone de Amazon. 3 Figura 2. : Integración de “dynamic perspective” con Google Maps. Esta tecnología proporciona una experiencia inmersiva mucho mayor. Una aplicación muy importante de esta tecnología estaría en su uso como interfaz para personas con movilidad reducida. Utilizando una simple (y barata) webcam, una persona parapléjica podría, mediante pequeños movimientos de la cabeza, utilizar un ordenador de forma totalmente independiente y sin necesidad de pedir ayuda a otra persona (ver Figura 3) Figura 3. Persona parapléjica interactúa con un ordenador de forma autónoma. 4 Hough Random Forest para detección de objetos y estimación de la pose Para detectar y estimar la pose de la cabeza partimos de un sistema basado en Hough Random Forest (HFR) [1]. Este clasificador consiste en un conjunto de árboles de decisión que previamente han sido entrenados de forma aleatoria. Entrenamiento Inicialmente se va a detallar cómo se realiza el entrenamiento de estos árboles ya que resulta fundamental para poder comprender cómo se ha realizado la estimación. Se va a partir de un conjunto de imágenes anotadas, que contengan tanto la posición de la cabeza cómo su localización en la imagen. Posteriormente de dichas imágenes se extraen de forma aleatoria un conjunto de parches. Los parches vendrán definidos de la siguiente manera, Ecuación 1 Dónde ci es una etiqueta de clasificación. Se asigna valor “1” si el parche se encuentra en la cara y “0” si está en cualquier otra zona, considerándose que pertenece al fondo de la imagen. θ i = (θ1, θ2) (θ1 es la medida de localización y θ2 la de pose), e Ii representa la apariencia del parche (los valores de los píxeles). El siguiente objetivo consiste en construir los árboles de decisión, agrupando en una misma hoja los parches que posean una información similar. En una primera fase se van a considerar todos los parches en un único nodo, denominado nodo raíz (S). Para realizar la primera división en dos grupos, el modelo necesita encontrar aquel clasificador sencillo, denominado en este trabajo test binario, que separa los parches del conjunto de entrada S, en dos subconjuntos SD y SI de modo que la entropía de estos subconjuntos sea mínima. En este caso los nodos son optimizados para minimizar la entropía de clasificación utilizando las etiquetas ci de los parches, o las medidas de localización θ1 o pose θ2. Véase la Figura 4. Figura 4. Asignación de los conjuntos de entrenamiento a cada nodo. 5 Según se trabaje con imágenes de profundidad o RGB, las definiciones tanto de los test binarios como de las funciones de entropía utilizadas son diferentes, por lo que posteriormente se detallarán estas ecuaciones para cada uno de los casos. Entrenamiento con imágenes de profundidad Al trabajar con imágenes de profundidad, los test binarios φ(I) son definidos como: Ecuación 2 dónde, F1 y F2 son dos rectángulos asimétricos localizados en el interior del parche, τ es el umbral que se encarga de definir cuál será finalmente el resultado binario e I(q) representa el valor del píxel de la imagen de profundidad. La Ecuación 2 muestra que, la función de test binaria empleada se basa en la resta de los valores medios de los dos rectángulos asimétricos definidos en el interior del parche, un ejemplo se muestra en la Figura 5. Figura 5. Ejemplo de parche de entrenamiento (Rectángulo rojo, el de mayor tamaño), dentro del cual, los rectángulos F1 y F2 representan la elección de las zonas sobre las que realizar la función binaria de test, en el presente parche. También es necesario definir la función de entropía que vamos a emplear. En este caso seguimos la formulación propuesta en [1]. Dicha entropía se divide en dos partes. La primera realiza la medida de regresión Hr(P), la cual indica la impureza tanto en coordenadas (θ 1) como en orientación (θ2) incluidos en los parches, y se encuentra reflejada en la Ecuación 3: Ecuación 3 En esta ecuación, Σ representa la matriz de covarianza de las distribuciones Gaussianas computadas a partir de los vectores θ n, para n ∈ [1, 2], lo cual representa los vectores de localización y orientación, comentados anteriormente en esta sección. La segunda parte de la entropía realiza la medida de incertidumbre en las etiquetas de clasificación (c i), por ello se conoce como entropía de clasificación. Su expresión matemática es la siguiente: 6 Ecuación 4 dónde K = 1, y p(c = k|P) se corresponde con la probabilidad de clasificación, la cual es aproximada por la cantidad de parches con etiqueta de clasificación k en todo el conjunto de parches P , dividida por el número total de parches. Finalmente, en los nodos terminales o hojas, se almacenan tanto las probabilidades de clasificación p(c = k|P), como las distribuciones continuas de los parámetros de pose de la cabeza: p(θ1 = N(θ1; θ1, Σ1) y p(θ2 = N(θ2; θ2, Σ2). Tanto la probabilidad de clasificación como los vectores de offset y de orientación, son obtenidos por las hojas a través de los parches de entrenamiento que llegan a las mismas. Entrenamiento con imágenes de color En este tipo de imágenes, la apariencia Ii (Ecuación 1) de cada parche se distribuye a lo largo de 32 canales. Es decir, para cada parche, computamos 32 características visuales, consistentes en: 3 canales de color, los valores absolutos de las derivadas de primer y segundo orden para x e y, finalmente, 9 canales correspondientes a la característica HOG (Histograms of Oriented Gradients) [3]. Con el objetivo de reducir el ruido en dichos canales, se les procesa mediante sendos filtros de máximos y mínimos, por lo que se dispone finalmente, de C = 32 canales de características, 16 para el filtro de máximos, y 16 para el de mínimos. El test binario es similar al estudiado anteriormente para imágenes de profundidad, pero ahora se encuentra dotado de una mayor estabilidad, como consecuencia de la inclusión de cuatro rectángulos asimétricos en cada parche, en lugar de dos. Como se puede observar en la Ecuación 5, la operación se basa en la resta de, la suma de los valores de uno de los 32 canales (el canal identificado como τ1) computada en la región R1, y la suma de los valores del mismo canal en otras 3 regiones. Destacar que la posición de estas regiones se obtiene de forma aleatoria, como en el caso de las imágenes de profundidad. Ecuación 5 Una vez definida la función binaria, el resultado del test de cada nodo viene dado por el sistema mostrado a continuación, dónde τ2 es el umbral que se optimiza y fija dependiendo del nodo en el que caiga el parche. Ecuación 6 La entropía utilizada para hallar la incertidumbre en los datos etiquetados en cada parche, se representa mediante tres ecuaciones matemáticas, cada una de las cuales, se refiere a un aspecto distinto de las anotaciones mencionadas. Atendiendo a la siguiente ecuación de la impureza de clasificación: 7 Ecuación 7 se debe notar la presencia en la misma de la entropía de clasificación: Ecuación 8 La siguiente expresión hace referencia a la incertidumbre presente en las anotaciones de coordenadas: Ecuación 9 Adicionalmente a esta última ecuación, se ha empleado un criterio de pureza encargado de medir el nivel de incertidumbre en las anotaciones de orientación de la pose en cada parche. Ecuación 10 Esta ecuación está basada fundamentalmente en operar con la diferencia entre la información de la orientación, presente en una etiqueta θj2, y la información de la orientación media θA2 de todo el resto de parches de zona facial. El cálculo analítico de la orientación media obtenida proviene del concepto de media de cantidades circulares, y más concretamente, del cálculo de ángulos medios, cuya forma matemática se presenta de la siguiente forma: Ecuación 11 Finalmente, en los nodos hoja, se almacenan tanto las probabilidades de clasificación p(c =k|P), como las distribuciones continuas de los parámetros de pose de la cabeza: p(θ1 = N(θ1; θ1, Σ1) y p(θ2 = N(θ2; θ2, Σ2). Tanto la probabilidad de clasificación como los vectores de offset y de orientación, son obtenidos por las hojas a través de los parches de entrenamiento que llegan a las mismas. Etapa de estimación Estimación en imágenes de profundidad Una vez que se ha conformado el árbol se puede proceder a realizar la tarea de estimación. Para estimar la pose de la cabeza en una imagen de profundidad, primero se extraen diversos parches de la misma, los cuales son lanzados por todos los árboles del bosque, y recorren el camino de 8 forma guiada como consecuencia de los test binarios emplazados en cada nodo, los cuales van a encaminar cada parche al nodo hijo izquierdo o al derecho. La probabilidad p(c = k|P ) presente en las hojas evalúa la magnitud informativa de la hoja, es decir, que los parches que caigan en hojas donde la concentración de parches de cara sea baja, serán marcados como parches de fondo (y no cara). Dada una imagen de profundidad, en la Figura 6 podemos observar cómo se han obtenido diversos parches, posteriormente siendo clasificados como positivos (pertenecientes a la cabeza), menos el que aparece de negro, ya que se encuentra localizado en la zona de los hombros. Este último parche no se tendrá en cuenta a la hora de realizar las votaciones pos posicionamiento y orientación de la pose. Por lo tanto, sólo serán aceptados los parches que caigan en una hoja, cuya p(c = k|P ) = 1, así como serán filtradas las hojas con una covarianza Gaussiana mayor que el límite fijado en un parámetro maxv = 400 (dicho límite puede ser modificado si se desea). Una vez las hojas han determinado qué parches pertenecen a la cabeza, votan por diferentes localizaciones y estimaciones de la pose. La estimación final se corresponde con la localización y la pose más votada. Además, las votaciones referentes a cada uno de los parches de la cabeza se ubican en las proximidades de la nariz cómo se puede observar claramente a través de los puntos de color. Una vez realizadas las votaciones, la agrupación que disponga de un mayor número de las mismas, será la que proporcione los resultados finales que se emplearán para la representación final de la pose mediante un cilindro gráfico (véase Figura 6 b). Figura 6. Etapa final del proceso de estimación, votación y representación. a) Votaciones realizadas empleando los diferentes parches extraídos de una imagen de profundidad, b) Representación gráfica a modo de cilindro, de la situación de la cabeza y orientación de la pose facial. (Imagen tomada de [1]). Estimación en imágenes RGB En este caso el procedimiento que se va a seguir es diferente. Los parches irán cayendo en los nodos terminales de cada árbol realizando las votaciones por parte de los parches almacenados en dichos nodo hoja. Una vez más, solo votarán los parches de las hojas cuya concentración de parches de cara sea elevada. De este modo identificamos si el parche de test pertenece a la cara o al fondo. Las hojas de cada árbol acumulan sus votaciones en el espacio de Hough, donde al finalizar los procesos de votación de todas las hojas, se realiza un proceso de suavizado. La estimación final se toma como el valor con mayor número de votos presentes en el espacio de Hough. En la Figura 7 se puede observar cómo, a partir del fragmento de la imagen total 9 seleccionado como rostro, se realiza la votación en el espacio de Hough, se realiza la tarea de suavizado, y finalmente se obtienen unos valores a modo de resultado, que el demostrador utiliza para la localización y representación tanto del centro de la cabeza, cómo de la orientación de la pose. Figura 7. Pasos desde la votación a la representación. a) Acumulación de votaciones realizadas por la totalidad de las hojas del bosque en el espacio de Hough. b) Estado del espacio tras realizar el proceso de suavizado. c) Representación de la estimación de la pose, de acuerdo con los parámetros con número máximo de votaciones, facilitados por el detector. 10 Resultados y conclusiones Como se ha visto se puede realizar la estimación de pose tanto en imágenes de profundidad como en imágenes RGB, ya sean extraídas a partir de cámaras de baja resolución o webcams. A continuación se mostrarán tanto los resultados cuantitativos como los cualitativos obtenidos. Para los primeros se ha hecho uso de la base de datos BIWI [1]. Análisis en imágenes de profundidad La estimación en imágenes de profundidad se caracteriza por su velocidad, lográndose un refresco por imagen estimada a una velocidad de actualización muy próxima a los 30 fotogramas por segundo. La combinación de una velocidad de ejecución totalmente a tiempo real con el alto grado de precisión en las estimaciones, hace que el detector de pose, en su versión de profundidad, sea una herramienta ágil y dinámica de cara a la obtención de la pose deseada. A continuación, en la Figura 8 podemos observar una secuencia de imágenes tras la realización sobre las mismas del proceso de estimación. Figura 8. Secuencia de imágenes de profundidad tras la representación de la pose a través de un cilindro. Como puede observarse, las estimaciones se caracterizan por un alto grado de precisión, sin importar la dirección de la pose. En algunos casos, como por ejemplo en la Subfigura (g), determinadas zonas del pelo no se muestran dentro de la nube de puntos, lo que viene motivado por la no reflexión del rayo infrarrojo, desde dicha zona, de vuelta hacia el emisor de IR, y no por una excesiva distancia del usuario a la cámara. Además, cabe destacar el uso de la densificación, mediante polígonos triangulares, de la nube de puntos, para resaltar en mayor magnitud la figura del usuario experimental, lo que conlleva a una mayor claridad en la muestra de resultados. En los diversos experimentos el usuario se ha situado a una distancia de entre 60-70 cm, de manera que el sensor IR ejecute su función de forma correcta (no excede la distancia umbral de 1 metro) y garantizando de este modo unos resultados óptimos. 11 Se debe destacar también que el estimador responde muy bien ante oclusiones u ocultaciones parciales del rostro, que aunque dificulta la tarea de estimación permite una mayor varianza en las votaciones de las hojas de los árboles de Hough. En la Figura 9 se muestran los resultados obtenidos ante la presencia de un obstáculo frente al rostro. En general se obtienen resultados muy precisos a excepción de la Subfigura (g), donde la oclusión interfiere con el exceso de píxeles en el rostro, provocando un error en los resultados entregados por el estimador. Figura 9. Muestras experimentales de la precisión y comportamiento del estimador, en presencia de oclusiones frente al rostro. Por último, en la Tabla 1 se muestran los resultados cuantitativos del estimador en el caso de imágenes de profundidad. Tabla 1. Tabla de resultados cualitativos en la estimación de imágenes de profundidad: niveles de error, pérdidas y tiempo de estimación. Haciendo uso de la base de datos BIWI [1], se han realizado tres experimentos de análisis del nivel de error tanto en la estimación del centro, como de la orientación de la pose, para diferentes números de parches extraídos a la hora de realizar la estimación de las imágenes. El número de parches a omitir entre los que se utilizan para la estimación, viene dado por el 12 parámetro de pasos, a menor nivel de pasos, mayor número total de parches serán analizados. Para un mayor número de parches extraídos, la precisión tiende a aumentar, y el tiempo empleado en la estimación se ve incrementado, como consecuencia de disponer de una mayor cantidad de parches a analizar. Análisis en imágenes RGB En este caso, dado que se trabaja con imágenes en RGB y el número de características que se deben extraer es elevado (32), la velocidad alcanzada por el demostrador es de 1FPS. A continuación, en la Figura 10 se muestran los resultados obtenidos para una configuración tal que implica que el estimador de pose realiza la votación de 1 de cada 2 píxeles del fragmento de imagen introducido al mismo. Este hecho facilita agilizar el proceso de estimación, al no analizar la totalidad de la imagen. En términos de precisión, se observan los buenos resultados obtenidos, en todas las diferentes poses mostradas, incluso habiendo realizado el experimento en un entorno no controlado, dónde se pueden observar carteles y sillas de fondo, que podrían despistar al estimador de pose. Figura 10. Estimaciones de pose y detección de cabeza en imágenes RGB. Posteriormente se ha realizado un experimento del mismo tipo y en las mismas condiciones que el anterior con la diferencia de que ningún parche ha quedado exento de ser analizado por el estimador. Si analizamos las imágenes, la relación velocidad-precisión ha decrecido de manera notable con respecto al grupo de imágenes anterior. La velocidad se ha visto reducida, sin embargo la precisión no ha aumentado de una forma claramente visible (véase Figura 11). 13 Figura 11. Secuencia de imágenes RGB bajo el proceso de estimación de pose. Por otro lado, si realizamos un análisis de diferentes poses en las que el rostro se encuentre hacia arriba observamos como la precisión en la estimación de la pose decrece notablemente. En la Figura 12 se observan diversos fotogramas en los que apreciamos la disminución de precisión. Figura 12. EstimacióndeimágenesRGBenpersonascuyaposeseencuentraorientadahaciaarriba. Como se ha observado anteriormente para el análisis de imágenes en profundidad, el estimador de la aplicación para RGB también es funcional en presencia de oclusiones o elementos que 14 dificulte la visualización del rostro, aunque en aquellos casos, su precisión de estimación se vea reducida proporcionalmente a la magnitud o tamaño de la oclusión presente entre el sensor de imagen de la cámara y la cabeza del usuario. Las imágenes de la Figura 13 muestran lo robusto que es el estimador utilizado, con respecto a la ocultación de fragmentos del rostro, a la vez que también muestra los errores claros y puntuales del mismo, cuando el nivel de oclusión es demasiado alto, cómo es el caso de las Subfiguras (f) y (h). Figura 13 Secuencia de imágenes de estimación, en presencia de oclusiones, para demostrar la robustez del demostrador. Conclusiones del análisis comparativo de ambos resultados En imágenes de color no existe ninguna dependencia respecto de la distancia umbral entre el usuario y el sensor de imagen de la cámara, es decir, se pueden obtener resultados de la orientación de la pose tanto para distancias cercanas a la cámara como para distancias mayores de un metro lo que permite una mayor flexibilidad. En la Figura 14 se comprueba lo expuesto, ya que a una distancia fija de 30 cm entre los sensores de la cámara y el usuario, la aplicación no funciona correctamente. 15 Figura 14. Comparación del uso del demostrador par imágenes de profundidad o RGB a una distancia corta de los sensores de la cámara. Respecto a la dificultad de procesado, cuando se trabaja con imágenes en RGB se necesita realizar muchas más operaciones. Por ejemplo, si se añade un detector de piel, cómo herramienta de eliminación de zonas de la imagen no trascendentes para la estimación, además de ser vital para realizar las estimaciones en tiempo real, añade dificultad a la obtención de unos resultados adecuados, ya que un fallo en la selección del fragmento que debe incluir el rostro, produce un error total en los valores finales. En la Figura 15 se pueden observar imágenes extraídas directamente del detector de piel, para condiciones lumínicas y emplazamientos de enfoque algo diferentes. Figura 15 Resultados del detector de piel según la combinación de condiciones lumínicas y emplazamiento. 16 En la Figura 15 también se observa que cambio brusco de iluminación, combinado con un cambio notable de dirección de enfoque pueden contribuir a resultados erróneos dónde se detecte piel en píxeles del trasfondo de la imagen (véase Subfigura (c)). A pesar de la mayor complejidad d de procesado de imagen en las imágenes RGB, los resultados en cuánto a precisión no son necesariamente mejores en imágenes de profundidad, ya que los HRF de ambos modos de estimación han sido sometidos a procesos de entrenamiento diferentes y que permiten resolver el problema de forma satisfactoria. 17 Futuras líneas de trabajo De cara a un posterior desarrollo de este trabajo, hemos encontrado tres objetivos de estudio muy importantes: el aumento de la precisión, el aumento de la robustez y la reducción del tiempo de procesado. No obstante, para llevarlo al mundo industrial y desarrollar una aplicación práctica y real, nos encontramos con que también tenemos que optimizar el espacio ocupado por el dispositivo (cámara + procesador) más el coste de la producción, lo que incide de pleno en una de las características más importantes que un ingeniero debe poseer: ser capaz de balancear el grado de optimización de cada característica de tal forma que se cumplan los requisitos económicos del proyecto sin sacrificar la funcionalidad necesaria y conseguir mantener un nivel alto de calidad. Aumento de la precisión: al analizar los resultados hemos podido observar que al disponer de menos imágenes en las que el rostro se encuentra mirando hacia la parte superior de la imagen, su precisión con respecto a otras poses distintas empeora notablemente. Esta idea es consistente con una de las definiciones más populares del machine learning: “un algoritmo se dice que aprende de la experiencia E con respecto a un cierto tipo de tarea T midiendo su rendimiento como P si el rendimiento P en dicha tarea T incrementa a medida que aumenta la experiencia E.” [4] La manera de mejorar este aspecto, por tanto, es utilizar bases de datos mucho más grandes y mejor balanceadas. Esto impactará directamente en el tiempo de entrenamiento (fase de desarrollo), sin embargo el tiempo de estimación (cuando un usuario final está utilizando la aplicación) se mantendrá constante con lo cual no introducirá ninguna desventaja real. Aumento de la robustez: como hemos visto, nuestro demostrador es bastante robusto ante oclusiones, no obstante, al trabajar con cámaras en espacios abiertos tenemos que tener en cuenta los grandes cambios de iluminación que nos podemos encontrar. Para ello proponemos mejorar la segmentación de la piel estudiando otros modelos de color como pueden ser el HSV[5] y el CieLAB[6]. Otra forma también muy interesante es la adición de información temporal, es decir, dejar de analizar cada imagen de forma aislada y tratarla como un flujo de video. Es altamente improbable que de un fotograma al siguiente exista una diferencia de la pose demasiado grande, ya que estamos tratando con intervalos de tiempo muy reducidos. Así pues, imponiendo restricciones espaciales de movimiento, podremos reducir muchos errores de estimación. Una forma elegante de integrar esta información sería utilizando el estimador conocido como Filtro de Kalman [7]. Esta herramienta matemática nos permite predecir con gran precisión cual será la siguiente posición del punto que establezcamos como referencia. Si detectamos que la distancia euclidea dada por el Filtro de Kalman y por el Hough Random Forest es muy alta, podremos detectar una anomalía. La reducción del tiempo de procesado es crucial: necesitamos poder procesar los datos al mismo ritmo al que estos nos llegan. Para conseguir este objetivo hay multiples enfoques y, dado que se ha implementado en uno de los lenguajes más rápidos existentes en la actualidad, deberían probarse otras técnicas como el procesado en paralelo. Los algoritmos que tratan con imágenes, por su carácter matricial, son unos de los grandes candidatos a la paralelización. Este proceso podría implementarse en CPU con unos máximos rondando los 8 hilos de procesamiento o incluso en GPU, donde nos iríamos al rango de los millones de hilos. No obstante, esta elección influye negativamente en el coste, en el consumo y en el espacio (dado que necesita mayor 18 refrigeración), por lo que quizás sería interesante valorar implementaciones hardware como las FPGAs. 19 Bibliografía [1] Dantone M. Fossati A. Gall J. Van Gool L. Fanelli, G. Random forests for real time 3d face analysis. Technical report, Computer Vision Laboratory, ETH Zurich, 2012. ix, ix, xx, xxi, xxiii, xxiv, 1, 2, 3, 5, 7, 11, 35, 36 [2] García, M. Sistema de estimación en tiempo real de la pose de la cabeza utilizando Kinect. (2014) [3] Sudowe, P., Leibe, B.: Efficient use of geometric constraints for sliding-window object detection in video. In: ICVS. (2011) [4] Mitchell, T. (1997). Machine Learning, McGraw Hill. ISBN 0-07-042807-7, p.2. [5] https://es.wikipedia.org/wiki/Modelo_de_color_HSV [6] https://es.wikipedia.org/wiki/Espacio_de_color_Lab [7] R. E. Kalman, “A new approach to linear filtering and prediction problems,” Journal of Basic Engineering82 (1960): 35–45. 20