Tecnología |
Escrito por Redacción Matematicalia | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
viernes, 13 de febrero de 2009 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Recibido: miércoles, 30 de enero de 2008; revisado: jueves, 21 de febrero de 2008 ![]() Imago animi vultus est [1]
Modesto Castrillón Santana página web: http://mozart.dis.ulpgc.es/Gias/modesto.html
Departamento de Informática y Sistemas Universidad de Las Palmas de Gran Canaria
Introducción
Podemos discutir el título, un extracto de una cita de Cicerón, pero resulta evidente el valor que los humanos damos al rostro. Es difícil no ver un rostro en la portada de un periódico o de una revista, y son numerosos los artistas que han jugado y juegan con él en sus obras. Un ejemplo de esto último lo tenemos en la Figura 1. No es ésta una característica exclusiva de nuestra sociedad occidental sino, más bien, del género humano en general. Todas las culturas humanas cuentan con múltiples evidencias del interés que este conjunto de rasgos identificativos tienen entre nosotros. La importancia universal del rostro queda patente en pruebas variadas, como por ejemplo las caras de la Isla de Pascua, símbolos de poder que asustaron al viajero del siglo XIX Pierre Loti [McN00], que estaría hipotéticamente justificada por una razón evolutiva: un bebé que mira a sus padres facilitaría que estos lo hicieran algo suyo, y en definitiva le prestarán más atenciones, lo cual iría en beneficio de su supervivencia.
Sin embargo, no es el rostro la única fuente de información para identificar y describir a un individuo. Por mostrar un ejemplo, estudios sobre el sistema visual humano han sugerido una escasa habilidad para reconocer los rostros de las personas pertenecientes a una etnia no habitualmente presente en nuestro entorno cotidiano. Es el denominado efecto de otra raza [BY98]. Según este efecto, los habitantes de países occidentales haríamos uso de elementos del contexto, como por ejemplo la silueta de la cabeza, mientras que en países orientales, tradicionalmente con mayor homogeneidad, serían los elementos internos al rostro los más empleados para reconocer a una persona. Podemos observar este curioso efecto en la Figura 2, extraída de [SiP96], donde una primera observación nos muestra dos identidades, pero si la analizamos con más detenimiento descubrimos que ambas caras son idénticas. Podemos evidenciar esta habilidad de extracción de información del contexto, por ejemplo, en ciertos cuadros de August Macke (ver Figura 3) donde, a pesar de estar ausentes los elementos faciales, interpretamos fácilmente el género de quienes en ellos aparecen.
Si bien estas habilidades evidentes en los humanos siguen siendo tema de estudio en Psicología, la Inteligencia Artificial, y en particular la Visión por Computador, han venido prestando atención a las posibilidades que el análisis automático del rostro puede tener en el campo de la interacción hombre máquina. En este contexto, en la literatura especializada se han descrito, durante los últimos años, aplicaciones dentro del mundo de la interacción, la seguridad, el entretenimiento, etc.
Desde un punto de vista de automatización del proceso humano
de reconocimiento, identificación o descripción de caras, con el fin de
construir sistemas capaces de replicar esta habilidad, un paso previo al análisis
de cualquier rostro en un escenario concreto es el de la detección de la
presencia del mismo.
Detección del rostro
El precio de las cámaras como dispositivo de adquisición de imágenes ha experimentado un marcado descenso en los últimos años, lo que ha posibilitado una enorme expansión de un amplio arsenal tecnológico de bajo coste en multiplicidad de áreas de aplicación, incluida la informática de consumo en los hogares. Es por ello que hoy la disponibilidad de imágenes y vídeos es muy amplia. Esta circunstancia se ha dado a pesar de que los ordenadores actuales se distinguen por ser mayoritariamente sordos, mudos y ciegos, es decir, muy lejanos de los canales habituales de comunicación humana: la comunicación oral y la visual. Concretamente, la disponibilidad de estas tecnologías permite potencialmente utilizar las cámaras como entrada de datos para el sentido de la vista de un ordenador/máquina.
Una cámara proporciona imágenes que representan de forma numérica una proyección de la realidad. Estas imágenes pueden ser estáticas, es decir, estar aisladas en el tiempo, como una fotografía fija; o formar parte de una secuencia de imágenes que habitualmente conocemos como vídeo. Una imagen se compone de un número de puntos denominados píxeles, que se corresponden con las unidades sensibles a la luz en las cámaras. Cada uno de los píxeles posee uno o varios valores asociados al mismo, denominados canales (por ejemplo, una imagen de grises dispone de un único canal, que se correspondería con el nivel de iluminación de cada píxel, mientras que una imagen RGB, siglas en inglés para rojo, verde y azul, de tres, que se corresponderían con el nivel respectivo de cada uno de los tres colores anteriores para cada píxel de la imagen). Formalmente, una imagen estará definida por un ancho, n, y un alto, m, es decir, por nxm píxeles, y representa un punto en un espacio nxm-dimensional, que denominaremos espacio imagen:
El problema que abordamos es la detección del rostro humano en una imagen. La cuestión que se plantea es la siguiente: ¿cómo podemos saber si la imagen o parte de ella contienen un rostro? El problema de detección de rostros se puede definir como determinar cualquier rostro en la imagen, si lo hubiera, indicando su localización y tamaño [HL01], [YKA02].
Considerando esta definición, para resolver el problema basta con dar una aplicación funcional que nos permita establecer una correspondencia entre el espacio imagen y el de los conceptos. En este caso pretendemos quedarnos con aquella partición del espacio que lo segmenta en dos categorías: la de las caras, que denominaremos conjunto Cara, y la de las no caras o conjunto No cara, representados de forma ilustrativa en la Figura 4. Así, siendo ρ una imagen:
donde f es la aplicación funcional denominada clasificador, ya que permite clasificar cada zona de la imagen candidata como Cara o No cara. Este clasificador deberá indicar, para una imagen dada, si contiene un rostro, varios o ninguno. Es este un problema difícil para el que sin embargo se han aportado interesantes soluciones durante los últimos años, tal y como se puede concluir de la consulta de las revisiones sobre el problema, [HL01], [YKA02]. Sin embargo, existen numerosas situaciones en las que el sistema de visión humano es mejor que cualquier sistema automático de detección. Es por ello que este problema sigue contando con la atención de los investigadores, con el objetivo de continuar mejorando las prestaciones de los sistemas desarrollados.
Las soluciones más exitosas abordan el problema desde el punto de vista de las técnicas de reconocimiento de formas. Se asume de esta manera que se dispone de conocimiento a priori del objeto o patrón a buscar, en nuestro caso la cara humana, lo que permite inferir la función del clasificador. Por simplicidad en cuanto al problema planteado, la literatura aborda principalmente el problema de detección de rostros frontales que no presenten una marcada inclinación lateral.
Desde el trabajo presentado en [SuP98], el conocimiento a priori de la cara no se basa únicamente en la observación de ejemplos de caras, sino que además incluye ejemplos de imágenes que podrían confundirse con ellas, aspecto que permite delimitar mejor la hipotética frontera entre ambas clases ilustrada en la Figura 4.
Debemos observar que para determinar si una imagen contiene una cara, varias o ninguna, el clasificador se aplica de forma exhaustiva por toda la imagen, analizando trozos rectangulares de distinto tamaño extraídos de la misma. La duración total del proceso dependerá del tamaño de la imagen, de la duración de cada clasificación, y del rango de tamaños diferentes contemplados durante el proceso. Éste, por tanto, puede ser, lógicamente, un proceso lento.
Teniendo en cuenta esta situación, al diseñar un clasificador se plantea un compromiso entre la precisión o bondad del mismo y su velocidad de procesamiento. Por ejemplo, si el detector de caras se va a utilizar integrado en un sistema que permita ejecutar interactivamente acciones con un ordenador, el proceso de detección no puede durar más de unas decenas de milisegundos, o sería impracticable desarrollar dicha aplicación. Es por ello que las aproximaciones más recientes han apostado por soluciones basadas en un esquema en cascada que intenta eliminar de forma rápida zonas muy obvias de ausencia de caras, y realizar procesos más elaborados y costosos sólo en aquellas zonas que presenten una mayor evidencia de contener un rostro. Esto se justifica por el hecho de que, típicamente, en la mayor parte de cada imagen a analizar no se contiene el objeto de interés.
Una analogía con este esquema en cascada podría ser una central de depuración de agua, donde en una serie de etapas se van eliminando las impurezas. Por ejemplo, el primer filtro eliminaría grandes objetos sólidos, un segundo filtro más delicado se encargaría de eliminar otros de menor tamaño, etc. Un clasificador en cascada aplica una cadena de coladores o cedazos que eliminan subimágenes de nuestra imagen original, por no superar el test de clasificación del clasificador o cedazo actual al no cumplir las características del patrón de un rostro humano, permitiendo así que un próximo cedazo refine aún más el resultado. En un proceso real de depuración, puede perderse parte del agua, bien porque se adhiere a los objetos, bien porque se evapora… En nuestro clasificador, dado que los filtros no son perfectos, se podrían rechazar, de forma incorrecta, algunas imágenes que contengan a nuestro objeto, la cara, y permitirán que pasen algunas impurezas, es decir, imágenes que no contengan una cara. Ahora bien, un diseño adecuado puede minimizar tanto la fracción de falsos negativos o imágenes que siendo rechazadas contienen caras, como de falsos positivos o fracción de imágenes que, no conteniendo caras, son identificadas como tales. Un clasificador de este tipo, tendrá unas tasas de detección y de rechazo que dependerán de las tasas individuales de cada filtro de la cascada, di y fi, respectivamente, y del número de elementos clasificadores, K, en la cascada. La tasa resultante de detección, D, y la de falsas detecciones, F, para el detector serían:
A modo ilustrativo, un clasificador de 20 etapas con una
tasa de detección para cada filtro del 99.9%, es decir, que sólo rechaza un
0.1% de las imágenes que contienen una cara, y una tasa de rechazo de falsos
patrones del 50%, es decir, que elimina a la mitad de las imágenes que no
contienen patrones, presentará una tasa conjunta esperada para las muestras correctas
de 0.99920
Un clasificador basado en este planteamiento es el propuesto por Viola y Jones [VJ04], que utiliza un esquema de filtros de similar naturaleza para obtener resultados muy notables con rostros frontales. Sin embargo, no existe ninguna razón que obligue a limitar la naturaleza de los filtros. Por ejemplo, y una vez que dispongamos de la cara detectada, podríamos aplicar detección de elementos faciales como ojos, nariz o boca, para confirmar aún más que tenemos un rostro. Ciertamente, puede que perdamos alguna detección correcta pero, como veremos más adelante, si lo que nos interesa es un procesamiento rápido en vivo, el vídeo nos dará nuevas posibilidades para reducir la influencia de dichas pérdidas en el proceso.
Como hemos comentado, el detector de Viola-Jones proporciona resultados muy interesantes localizando rostros frontales, sin oclusiones ni inclinaciones laterales, ya que el proceso se basa en las características internas del rostro. ENCARA2 [CDHG07], el detector que hemos desarrollado, se concibe para mejorar el proceso de detección. Una primera idea ha sido la integración del contexto local en el proceso, ya que, si bien en ocasiones el rostro no se ve o está en una pose diferente a la frontal, nuestro cerebro sabe que está presente en la escena (y además extrae el género). Pinturas como Hombre con bombín de René Magritte (Figura 5) pueden darnos un ejemplo de lo que queremos expresar.
La detección del rostro basada en el contexto se ha llevado a la práctica utilizando clasificadores en cascada para obtener buena velocidad, y aunque los resultados no sean tan buenos como con rostros frontales, posibilitan la detección en situaciones de menor resolución, con inclinación lateral, y poses no limitadas a la frontal.
La combinación de varios detectores aumenta la tasa de detecciones pero tiene como desventaja un incremento de las falsas detecciones y del tiempo de procesamiento. La adición de nuevos filtros para detectar los elementos faciales permite obtener una solución que resulta más restrictiva, ya que eliminará falsas detecciones pero, a la vez, detectará menos buenos patrones. Sin embargo, esta pérdida de buenos patrones se minimiza a la hora de procesar vídeo, dado que este formato es adecuado para situaciones de interacción al proporcionar algunas ventajas: 1) se dispone de diversas oportunidades en cada segundo para detectar el rostro, 2) al existir coherencia temporal se pueden incorporar otras técnicas alternativas que permitan no realizar una búsqueda exhaustiva en la nueva imagen de la secuencia, sino que se pueda abordar de forma fiable y computacionalmente más ligera la relocalización del rostro en esa nueva imagen, y 3) el formato de vídeo permite además incluir la persistencia en el proceso de detección, de manera que una primera detección dudosa no se aceptaría, si bien varias detecciones algo dudosas, pero consecutivas en una misma localización, tendrían una mayor consideración.
La coherencia temporal presente en una secuencia de vídeo nos permite acelerar el proceso de detección. La coherencia es consecuencia de la combinación de variabilidad de la imagen debida al movimiento de objetos físicos ante una cámara con las limitaciones de la física del movimiento de los cuerpos. Por ejemplo, el movimiento físicamente posible de una persona como la de la Figura 6, entre dos cuadros generados por una cámara típica que adquiere su imagen (con una frecuencia de 25 cuadros por segundo), está limitado a lo que la persona es capaz de moverse en los 40 milisegundos que transcurren entre ambas imágenes consecutivas. Esto introduce una restricción al posible desplazamiento de las partes de la imagen entre cuadros consecutivos. Debido a ello se puede limitar la búsqueda a una cierta zona de la imagen en las cercanías de la zona donde estaba presente en la imagen anterior. Esta sencilla idea permite afrontar con mayores garantías de velocidad el contexto de análisis de vídeo en tiempo real.
Existen múltiples aproximaciones para realizar dicha
búsqueda en la nueva imagen. En nuestro caso, se ha aplicado una técnica
sencilla y rápida que resuelve muchas situaciones de forma satisfactoria. La
solución aplicada es la siguiente. Una vez que hemos detectado el rostro,
extraemos un modelo de diversas zonas rectangulares que ofrecen contenido, como
pueden ser la zona de los elementos faciales (ojos, nariz y boca). De forma
ilustrativa en la Figura 6 se extrae uno de los ojos, conformando nuestro
modelo, M
De forma ilustrativa se presentan resultados de detección para una secuencia en la Figura 7, donde, a pesar de aparecer el rostro inclinado de forma lateral, el detector aquí descrito es capaz de continuar su tarea de localización en situaciones donde el detector canónico de Viola-Jones no resuelve el problema.
Primera aplicación: selector de gafas
Son numerosos los contextos de aplicación de una solución como la descrita en la sección anterior, y nos gustaría remarcar que no todas ellas se restringen al ámbito de la seguridad y vigilancia. Un ejemplo de posible contexto de aplicación, dentro del sector comercial, es la selección de gafas en una óptica, facilitando al cliente la posibilidad de elegir, de forma virtual, entre una ingente gama de lentes, monturas, tintados, tratamientos polarizantes y fotocromáticos, etc.
El sistema, presentado de forma gráfica en la Figura 8, emplea dos cámaras. Incorpora, además del detector de caras y el gestor del modelo de gafas, un módulo de ajuste de la imagen que le permite mantenerla relativamente estable ante cambios en el entorno que afecten a las imágenes tomadas por las cámaras.
ENCARA2, el detector de rostros, no sólo permite la detección de caras, sino que adicionalmente, cuando el rostro está mirando hacia la cámara, provee la localización de los ojos.
La utilización de las dos cámaras permite al sistema
realizar el proceso con dos configuraciones de zoom diferentes, una de ellas con ángulo de visión mayor para localizar
la cara, mientras que la otra se cierra sobre el rostro para localizar los ojos
con más precisión y estabilidad.
La imagen de la montura elegida se superpone en la imagen de mayor ángulo de visión y se proyecta en el monitor que actúa de espejo para permitir al cliente observarse de forma completa. Sin embargo, como hemos comentado, los ojos se van a buscar también en la cámara de ángulo más cerrado dado que al ofrecer ésta mayor resolución del rostro, la detección puede hacerse más precisa. Puesto que ambas cámaras proporcionan imágenes en escalas diferentes, se arbitra un mecanismo de reescalado entre ambas imágenes que las pone en correspondencia.
Como hemos comentado anteriormente, una vez determinada la posición, orientación y tamaño de las gafas a visualizar, se superponen sobre la imagen para obtener el efecto de realidad aumentada que permita al cliente tener la sensación visual de verse en el espejo con unas gafas puestas. La técnica empleada para combinar la imagen real y el modelo virtual de gafas es conocida como alpha blending en el ámbito de los gráficos por ordenador. Esta técnica consiste básicamente en combinar dos imágenes de forma ponderada. La ponderación permite incluir efectos de transparencia para conseguir el efecto de realismo en la imagen final, tal y como ocurriría con unas gafas reales, donde en función de la opacidad de los cristales podremos ver con mayor claridad los ojos o no.
De esta forma cada modelo de gafas está compuesto por dos imágenes: las gafas y el canal alfa, tal y como muestra el ejemplo de la Figura 9, siendo el canal alfa el encargado de indicar la ponderación para cada píxel de la imagen virtual, las gafas, en relación a la imagen real.
Todas estas acciones son responsabilidad del módulo de gestión de monturas, que se encargará de ajustar las dos imágenes correspondientes al modelo de montura activo en cada momento, tanto en lo referente a su tamaño como a su orientación sobre la base de las posiciones de los ojos suministradas por el módulo de detección de ojos.
Una vez llegados a este punto, disponemos de un sistema que al detectar una cara y sus ojos, es capaz de combinar un modelo de gafas virtual con la imagen de entrada. Para dar mayores posibilidades al sistema, hemos querido además integrar el reconocimiento de unos gestos realizados con alguna de las manos, con el objetivo de, por un lado, permitir la selección del modelo de montura activo, y por otro facilitar el ajuste de las gafas en su posicionamiento vertical.
La interacción con el sistema se flexibiliza y agiliza al incluir la detección de la mano del usuario. Esta capacidad se obtiene detectando las zonas de color similar a la del rostro detectado, es decir, las zonas de color piel. La Figura 10 muestra el resultado de la detección de color piel para una escena en la que el individuo ha acercado su mano a la cara para ajustarse las gafas. Tras eliminar la zona de color piel coincidente con el rostro detectado, el resto de zonas con un tamaño coherente con el del rostro serán consideradas candidatas a ser manos. Analizando la evolución de estas zonas dentro de la imagen a lo largo del tiempo, el sistema es capaz de interpretar una serie de gestos como órdenes de interacción.
Por un lado, ciertas zonas de la imagen se activan como sensibles al movimiento, marcándose como tal en la imagen reproducida y permitiendo al usuario del sistema ordenar el cambio de modelo de gafas cuando éste mueva la mano en dichas zonas. Por otro lado, al acercar una mano a uno de los laterales de la cara se observa su movimiento en relación al rostro, y a partir del momento de contacto entre las regiones de la mano y la cara, las gafas se moverán de forma relativa hacia arriba o hacia debajo, acompañando al gesto realizado con la mano. Un ejemplo de uso de este gesto puede verse en la Figura 11. El lector puede acceder a mayor información sobre el sistema completo -incluyendo vídeos- en [Sel].
Segunda aplicación: detección de la sonrisa
El rostro humano nos proporciona información que va más allá de la identidad de la persona que tenemos ante nosotros: además podemos obtener conocimiento sobre su estado de ánimo y sensaciones, siendo ésta una importante característica social. Sin embargo, los ordenadores actuales evitan hacer uso de esta información.
Es probable que alguna vez hayamos utilizado los emoticonos (es decir, las combinaciones de caracteres ASCII que sintetizan expresiones faciales vistas con la cabeza inclinada, como por ejemplo “:-) ”, que representa una sonrisa) para matizar un comentario en un correo electrónico o en una aplicación de mensajería instantánea, complementando así a nuestro interlocutor el sentido de las frases textuales. Ello se debe a que la carga semántica de la comunicación no sólo reside en la expresión textual, sino también en la gestual o la inflexiva. Para facilitar la utilización de este complemento gestual a la comunicación se ha desarrollado una pequeña aplicación de fácil integración en un sistema de mensajería instantánea, que tiene por función detectar la sonrisa del usuario e introducir de forma automática el emoticono correspondiente.
El proceso seguido para determinar la presencia de una sonrisa es el siguiente. En primer lugar hemos recopilado un conjunto de 7.000 imágenes faciales, las cuales, sobre la base de a la posición de los ojos, han sido rotadas y escaladas hasta alcanzar un tamaño normalizado. A continuación se han clasificado en dos conjuntos, según que el rostro presente una sonrisa (conjunto positivo) o no (conjunto negativo). Algunos ejemplos se muestran en la Figura 12.
Una vez en disposición de ambos conjuntos, hemos creado nuestro módulo de detección de sonrisa, basado en la solución de Viola-Jones, alimentado con ambos conjuntos. En ejecución, una vez que nuestro detector de caras, ENCARA2, detecta un rostro y sus ojos, procede a normalizar su tamaño teniendo en cuenta las posiciones de éstos, y en ese momento se aplica el detector de sonrisa. Una respuesta positiva del detector durante varias imágenes consecutivas permite asumir con alta fiabilidad que el usuario sonríe en ese preciso momento (Figura 13).
La información del detector permite, adicionalmente, detectar la presencia o ausencia del usuario ante el ordenador para, por ejemplo, activar el estado Ausente en un sistema de mensajería instantánea. El lector interesado puede obtener un demostrador de esta aplicación, para ser integrado en el sistema de mensajería instantánea MSN Messenger®, en este enlace.
Referencias
[1] Imago animi vultus, indices oculi [la cara es el reflejo del alma, y los ojos lo delatan]. Cicerón, De oratore, III, 59.
![]() |