You are on page 1of 16

DETECCIÓN DE CARAS Y ANÁLISIS DE EXPRESIONES FACIALES

1. Introducción. 3
2. Preliminares. 4
3. Detección de caras. 5
3.1. Enfoques basados en los rasgos faciales. 5
3.1.1. Análisis a bajo nivel 5
3.1.2. Análisis de rasgos. 6
3.1.3. Modelos de silueta activa. 7
3.2. Enfoques basados en la imagen. 7
3.2.1. Subespacios lineales. 7
3.2.2. Redes neuronales. 8
3.2.3. Análisis estadístico. 8
4. Análisis de expresiones faciales. 9
4.1. Extracción de rasgos. 9
4.2. Cálculo de las unidades de acción. 10
4.2.1. Modelo frontal 10
4.2.2. Modelo lateral 12
4.2.3. Combinación de los modelos. 12
4.3. Clasificación emocional 13
5. Conclusiones. 14
6. Bibliografía. 15
1. Introducción

Dentro de las aplicaciones de procesado de imágenes digitales, un campo muy interesante y ahora
en auge es el que trata acerca de la detección de rostros humanos en una fotografía o en un vídeo.

La detección de caras lleva ya algún tiempo desarrollándose; fue en la década de los setenta
cuando surgieron los primeros algoritmos, basados en técnicas heurísticas y antropométricas. Dichos
algoritmos fallaban bastante, y eran muy sensibles a los cambios. En principio sólo detectaban una cara en
una fotografía con fondo blanco (la típica foto carné). Si queríamos además reconocer a un sujeto con
gafas, había que cambiar todo el algoritmo.

Estas investigaciones se abandonaron debido a que por entonces la detección facial no tenía
utilidad, a causa de la falta de desarrollo de la tecnología. Fue en la década de los noventa cuando el
desarrollo de algoritmos que detectaban rostros inició su auge, dado que la tecnología empezaba a
permitir la reproducción de vídeos, videoconferencias, los procesadores eran cada vez más rápidos, etc.
De todos modos, incluso hoy detectar caras en una imagen puede llevar desde pocas milésimas hasta
varios segundos, según el tamaño de la imagen, la fiabilidad del algoritmo, etc.

En cuanto al reconocimiento de expresiones faciales, es un campo cuyo estudio se ha iniciado


hace poco. El interés por hacer interfaces hombre-máquina cada vez más inteligentes ha propiciado el
desarrollo de algoritmos capaces de detectar emociones en un rostro humano. Aunque esto tal vez suene
ahora mismo a ciencia-ficción, puede que algún día los ordenadores sean capaces de mostrarse más o
menos amables con nosotros en función del estado de ánimo que tengamos...
2. Preliminares

Detectar una cara supone el primer paso hacia el reconocimiento de la misma. Es decir, antes de
saber quién es la persona que aparece en una imagen, debemos idear algoritmos que permitan detectar
automáticamente que en la fotografía aparece una cara. Los objetivos de este ámbito de desarrollo
(detección y posterior reconocimiento) son:

· Videoconferencias. Se podrían idear algoritmos para detectar una cara en una secuencia de
vídeo y hacerle un seguimiento, de forma que la cámara ajuste su campo de visión
adecuadamente si el individuo se mueve, o cuelgue de forma automática si se va.
· Vigilancia de multitudes. Estos algoritmos son perfectos en caso de que alguien buscado por
la justicia se intente camuflar en medio de una multitud, por ejemplo, una manifestación o un
estadio de fútbol. No hay más que hacer barridos entre la gente y dejar que el ordenador haga
el resto.
· Seguridad doméstica. Existen sistemas que vigilan un hogar mediante cámaras de seguridad,
y que avisan a la policía en caso de que alguien entre en la casa. Con estos algoritmos se podría
averiguar además si el que entra es conocido (por lo que no hay que dar parte) o desconocido.

También se encuentra aplicación en el campo del diseño de interfaces hombre-máquina


inteligentes, aunque sólo como paso previo para la detección de expresiones faciales.

En este documento trataremos de explicar los distintos métodos que se pueden utilizar para
detectar una cara, y veremos como ninguno de ellos es efectivo al cien por cien, dado que cada uno tiene
sus deficiencias. Igualmente, expondremos un posible método para la detección de expresiones faciales.
3. Detección de caras

Hay dos tipos de enfoque básicos a la hora de abordar el problema de detectar una cara en una
imagen:

· Enfoques basados en los rasgos faciales. Estos métodos se basan en buscar determinados
elementos que los que componen una cara, como pueden ser los ojos, líneas de contorno, etc.
· Enfoques basados en la imagen. En este caso los métodos trabajan con la imagen completa o
zonas concretas de la misma, efectuando cálculos que determinan si hay una cara o no, sin
buscar rasgos concretos.

3.1. Enfoques basados en los rasgos faciales

3.1.1. Análisis a bajo nivel

Son técnicas que trabajan a nivel de píxel. Hay diversas técnicas dentro de este apartado, las más
características son:

Detección de bordes. Fue una de las primeras técnicas utilizadas. La idea se basa en analizar las
líneas que componen los bordes de una cara y utilizarlas para detectar los rasgos faciales. Para llevar a
cabo su propósito, el algoritmo sigue los siguientes pasos:

· Detectar los bordes de la imagen, utilizando para ello alguno de los operadores existentes,
como el de Marr-Hildreth.
· Una vez obtenidos los bordes, se procede a efectuar un adelgazamiento a fin de obtener para
cada borde una línea de un píxel de ancho que lo represente.
· Filtrado de componentes. El algoritmo se queda ahora sólo con las componentes que sean
más susceptibles de formar parte de una cara. Por ejemplo, buscando líneas que en conjunto se
asemejen a una elipse de determinadas proporciones de ancho y alto.
· Etiquetado. Una vez obtenidas dichas componentes, se etiquetan como lado derecho de la
cara, lado izquierdo, línea del pelo, etc.

Las componentes etiquetadas se combinan para formar posibles candidatos para ser una cara,
decisión que toma una función de coste, que utiliza la proporción áurea para sus cálculos.

Esta técnica detecta correctamente aproximadamente tres de cada cuatro caras, con un dos por
ciento de falsos positivos. Este algoritmo puede trabajar (aunque con más dificultad) incluso si el fondo de
la imagen no es uniforme. Si la cara no está de frente, es totalmente ineficiente.

Información de grises. Trabaja sobre la idea de que rasgos faciales tales como las cejas, las
pupilas y los labios aparecen como zonas más oscuras de la imagen que las zonas que corresponden a las
regiones faciales que los rodean. Este algoritmo se compone de las siguientes partes:

· Aumentar el contraste de la imagen. De esta forma resaltamos aún más la diferencia de


luminosidad entre las citadas partes de la cara.
· Thresholding. El algoritmo se queda sólo con las zonas de la imagen cuyo valor de gris
supere un cierto umbral.
· Detección de caras mediante el uso de plantillas ponderadas. Hasta aquí habremos obtenido
una imagen compuesta por multitud de manchas negras. Este paso trata de comparar la
distribución de esas manchas con las manchas “tipo” de una cara, usando plantillas. Hay varias
propuestas de plantillas, algunas se basan en detectar primero las zonas de los ojos y a partir
de ahí intentar detectar el resto de componentes. Otros métodos tratan de buscar máximos
locales, como la punta de la nariz.

Este algoritmo produce diferentes resultados en función del color de la piel del sujeto que aparece
en la imagen. Para corregir este problema, existe una técnica similar aunque más potente que usa la
información del color, dado que dos siluetas con la misma información de gris pueden ser completamente
diferentes si se tiene en cuenta la información del color.

3.1.2. Análisis de rasgos

El análisis a bajo nivel puede dar información ambigua, por ejemplo, si aparecen en la imagen
objetos que tengan un color similar al del modelo de color de piel utilizado. Los métodos que vienen a
continuación se basan en la geometría de la cara para caracterizar y posteriormente verificar rasgos a fin
de evitar dicha ambigüedad.

Búsqueda de rasgos. Hay varias formas de llevar a cabo este algoritmo, siendo una de ellas la
siguiente:

· Búsqueda de la parte superior de la cabeza. Se efectúa una hipótesis sobre lo que puede ser
una posible línea del pelo en lo alto de la frente. Puede ser difícil si la persona tiene pelo
cubriendo zonas de la frente.
· Búsqueda de los ojos. A partir de dicha línea efectúa un barrido hacia abajo tratando de
buscar zonas donde la densidad de gris aumente y disminuya bruscamente en el plano
horizontal. Dichas zonas corresponden con las pupilas. Falla si el individuo usa gafas, si uno de
los ojos no aparece por cualquier motivo, o evidentemente si la imagen está rotada.
· Uso de plantillas flexibles. La distancia entre la línea del pelo y el plano de los ojos se usa
como medida de referencia para inicializar una plantilla flexible que cubre el resto de rasgos,
como la nariz y la boca. La plantilla trata entonces de ajustarse a dichos rasgos usando una
función de costes basada en bordes.

Este método es capaz de detectar de forma correcta aproximadamente cuatro de cada cinco
caras.

Análisis de constelaciones. Los métodos vistos hasta ahora son muy rígidos, y sólo funcionan bajo
condiciones muy específicas. Para subsanar este problema se ideó el método del análisis de
constelaciones, que se basa en el uso de un modelo probabilístico que estudia la posición espacial de los
rasgos faciales, intentando buscar patrones que se asemejen a una cara. Este método tiene un gran
contenido matemático, y por eso no nos vamos a centrar en él, aunque debemos decir que falla si se
produce una rotación significativa de la cara del sujeto. Existen variantes de este algoritmo que llegan
hasta el noventa por ciento de aciertos.

3.1.3. Modelos de silueta activa

Los modelos de silueta activa trabajan usando la información de los bordes y el brillo de la
imagen, interactuando con los rasgos locales de la imagen de forma que poco a poco se van deformando y
tomando la forma del rasgo.

Snakes. Se usan comúnmente para localizar el contorno de la cabeza. Se inicializa una snake en
las proximidades de una cara, y posteriormente se va fijando a los contornos que encuentra hasta asumir
la forma de la cara. La evolución de la snake se lleva a cabo minimizando una función de energía, que
depende de la energía interna (que depende de las propiedades intrínsecas de la snake y define su
evolución natural, expandirse o contraerse) y de la energía externa (que contrarresta la interna y hace que
la snake se desvíe de su evolución natural para ajustarse a los contornos). Cuando la snake llegue al
equilibrio se habrá ajustado a la forma de la cara.

Plantillas deformables. Es el siguiente paso, usando las snakes para encontrar más rasgos faciales
además del contorno de la cara. Por ejemplo, se pueden encontrar los ojos usando para las snakes un
mecanismo de deformación que incluye el cálculo de gradientes de una función de energía.

3.2. Enfoques basados en la imagen

3.2.1. Subespacios lineales

El modelo de los subespacios lineales tiene un gran contenido matemático, por lo que puede no
ser demasiado interesante desde el punto de vista de esta asignatura. La base del método es la siguiente:

· Construir la base canónica. Partiendo de un conjunto de imágenes que representan caras (y


sólo caras), se encuentran los componentes principales de una cara, expresados en términos de
autovectores, aquí llamados “autocaras”. Cada cara del conjunto anterior puede ser aproximada
por una combinación lineal de las autocaras usando los pesos apropiados.
· Detección de caras. Tomando la imagen global como punto de partida, se intentan
representar todos los elementos de la imagen en el espacio de las autocaras. Cada fracción de
la imagen representada produce un error residual llamado “distancia desde el espacio de las
caras”. Observando los valores mínimos de estas distancias podemos determinar la posición de
las caras en la imagen.

3.2.2. Redes neuronales

Es el método más utilizado en la detección de caras en una imagen, dado el alto porcentaje de
aciertos que produce, siendo en algunos casos superior al 95%. Las redes neuronales se usan
generalmente para la clasificación de imágenes según patrones establecidos, por ejemplo, conseguir
averiguar qué representa una imagen borrosa o incompleta. En nuestro caso, la red neuronal se entrena
usando un conjunto de imágenes que representan caras (por ejemplo, de 16x16 píxeles) de todo tipo (de
varias razas, tonos de piel, con y sin gafas, pendientes, posiciones de los labios y ojos, ligeras rotaciones,
e incluso caras humanoides) y otro conjunto de imágenes que no representan caras, de forma que la red
neuronal pueda establecer el criterio adecuado acerca de lo que es una cara y lo que no lo es. La
respuesta de la red neuronal ante una imagen de entrada es la de decidir si dicha imagen corresponde o
no a una cara, es decir, una respuesta binaria.

Cuando se trata de una imagen grande, compleja, en la que pueden aparecer varios rostros, se
procede de la siguiente forma:

1. Establecer el tamaño de cara mínimo reconocible en la imagen, medido en píxeles.


2. Crear una ventana cuadrada de la imagen del tamaño mínimo establecido en el paso anterior,
partiendo de la esquina superior izquierda.
3. Introducir la porción obtenida de la imagen en la red neuronal, y determinar si hay una cara o no.
4. Repetir el paso 3 para todas las posiciones posibles de la ventana de imagen, desplazándola
horizontal y verticalmente.
5. Repetir desde el paso 2, aumentando en cada iteración el tamaño de la ventana, hasta que la
ventana alcance el tamaño de la imagen original.
Este algoritmo se caracteriza por ser más lento que los demás vistos hasta ahora, pero compensa
por su alto porcentaje de aciertos.

3.2.3. Análisis estadístico

Bastante similar al método anterior, también supone un entrenamiento del algoritmo. En este
caso, se usa un método estadístico en vez de una red neuronal: lo que más se parezca estadísticamente a
lo que yo sé que es una cara, tendrá más probabilidades de ser una cara.

El método concreto consiste en calcular la varianza entre dos funciones probabilísticas de densidad
(creadas durante el entrenamiento), correspondientes a la probabilidad de que la imagen sea una cara, y a
la probabilidad de que no lo sea.
4. Análisis de expresiones faciales

El análisis de expresiones faciales es un campo aún en desarrollo, apenas se encuentran trabajos


dada la escasa aplicación actual de estos tipos de algoritmos. Los que existen ya realizados tienen aún un
amplio margen de error y sólo son capaces de detectar emociones “puras”: enfado, disgusto, miedo,
alegría, tristeza y sorpresa, además del estado neutral.

En realidad, una persona en raras ocasiones pone un gesto facial clasificable al cien por cien
dentro de una de estas emociones base. La expresividad humana es tan amplia y diversa como personas
hay en el mundo, de forma que a la hora de clasificar una emoción lo mucho que podemos hacer hasta el
momento es representarla como porcentajes de emociones puras (ejemplo: para un ordenador una cara
puede denotar un ochenta por ciento de sorpresa y un veinte por ciento de alegría, aunque para un ser
humano esa misma cara puede denotar “ese ha visto a una persona muy querida a la cual hacía mucho
tiempo que no veía”).

Para llegar a clasificar una expresión, son necesarios diversos pasos, que van desde la detección
de la cara en la imagen (visto en el apartado anterior) hasta la recopilación de lo que se llaman “unidades
de acción”, concepto que veremos más adelante y a partir de cual se produce el resultado final.

4.1. Extracción de rasgos

Una emoción viene representada ni más ni menos (como bien saben los dibujantes de cómics) que
por una combinación de posiciones de las distintas partes de la cara: ojos, cejas y boca, sobre todo. Por
tanto, y habiendo realizado como paso previo la detección de la cara, hay que proceder a identificar cada
una de las partes de la cara por separado.

Un primer paso podría ser detectar el eje de simetría de la cara. A partir de dicho eje podemos
detectar puntos concretos como la punta de la nariz y la barbilla mediante la distribución del brillo de la
imagen a lo largo del eje. Si representamos en una gráfica dicha distribución (el brillo según su
intensidad), veremos una serie de picos y valles que se corresponden con los máximos y mínimos locales
de brillo. Determinados puntos de esa gráfica son los puntos que buscamos, como el primer máximo local
tras el primer valle comenzando por la parte inferior de la cara, correspondiente a la barbilla.

Dado que la finalidad del algoritmo no es buscar una cara sino analizar la expresión de la misma,
supondremos que la imagen muestra una cara en condiciones adecuadas de luminosidad.

Una vez calculado el eje de simetría y conociendo los extremos de la cara, podemos dividir la
imagen en cuadrantes, ya que más o menos podemos averiguar dónde se hallan el resto de rasgos que
buscamos. Por ejemplo, para las cejas podemos usar código de cadenas, una vez calculado el color de la
piel y de las propias cejas, sabiendo que éstas se encuentran en los cuadrantes superiores izquierdo y
derecho. Para los ojos también se puede utilizar código de cadenas.

Para detectar los labios, y dado que tal vez sea la boca la parte de la cara que mayor diversidad
de posiciones tiene, se requiere un método algo más sofisticado. En el apartado anterior estudiamos la
posibilidad de usar “snakes” para detectar el contorno de la cara. Aquí las podemos utilizas para detectar
las curvas de tanto el exterior como del interior de la boca. Se puede imaginar una snake como una
gomilla que primero la estiras, la colocas alrededor del objeto que quieres encerrar y luego la sueltas
hasta que la gomilla adopta la forma de dicho objeto (situación de equilibrio de energía entre la tensión de
la gomilla y la resistencia del objeto). Para detectar la curva exterior se usa una snake que tienda a
encoger, inicializada alrededor de la boca; para la curva interior se usa una snake que tienda a
ensancharse (concepto de la gomilla pero al revés), inicializada en el centro de la boca.
4.2. Cálculo de las unidades de acción

Una vez detectados todos los componentes faciales hay que determinar en qué posición se
encuentran. Para ello se llevan a cabo una serie de mediciones entre determinados puntos. El sistema que
se presenta, que corresponde con el presentado por M. Pantic y L.J.M. Rothkrantz en su artículo “Sistema
experto para el análisis automático de expresiones faciales”, hace uso de dos imágenes: la de frente y la
de perfil del individuo a estudiar. Existen otras posibilidades, como la de usar simplemente la imagen
frontal; algunas llegan incluso a crear un modelo 3D de la cabeza de la persona cuya expresión se quiere
identificar.

A partir de estas mediciones se calculan las “unidades de acción”, que se corresponden con la
contracción de uno o más músculos de la cara. Las combinaciones de dichas unidades de acción serán las
que nos digan la emoción que se ha detectado en el individuo.

4.2.1. Modelo frontal


El modelo frontal se basa en una serie de puntos clave obtenidos a partir de los rasgos principales
de la cara. En la siguiente imagen podemos observar la posición de los puntos, comentados en la tabla
adjunta.
Punto Descripción

A Esquina exterior ojo izquierdo (estable)

A1 Esquina exterior ojo derecho (estable)

B Esquina interior ojo izquierdo (estable)

B1 Esquina interior ojo derecho (estable)

H Centro agujero izquierdo nariz (no


estable)

H1 Centro agujero derecho nariz (no estable)

D Esquina interior ceja izquierda (no


estable)

D1 Esquina interior ceja derecha (no estable)

E Esquina exterior ceja izquierda (no


estable)

E1 Esquina exterior ceja derecha (no estable)

F Parte superior ojo izquierdo (no estable)

F1 Parte superior ojo derecho (no estable)

G Parte inferior ojo izquierdo (no estable)

G1 Parte inferior ojo derecho (no estable)

K Parte superior del labio superior (no


estable)

L Parte inferior del labio inferior (no estable)

I Esquina izquierda de la boca (no estable)

J Esquina derecha de la boca (no estable)

M Punta de la barbilla (no estable)


Las mediciones propuestas son las siguientes:

Rasgo Descripción

f1 Ángulo BAD

f2 Ángulo B1A1D1

f3 Distancia AE

f4 Distancia A1E1

f5 Distancia 3F (3 es el centro de AB)

f6 Distancia 4F (4 es el centro de A1B1)

f7 Distancia 3G

f8 Distancia 4G1

f9 Distancia FG

f10 Distancia F1G1

f11 Distancia CK (C es el centro de HH1)

f12 Distancia IB

f13 Distancia JB1

f14 Distancia CI

f15 Distancia CJ

f16 Distancia IJ

f17 Distancia KL

f18 Distancia CM

f19 Intensidad de imagen en el círculo de radio


0.5*BB1 y centro en 2 sobre la línea DD1

f20 Ídem bajo la línea DD1

f21 Intensidad de imagen en el círculo de radio


0.5*AB y centro en A a la izquierda de la línea AE

f22 Intensidad de imagen en el círculo de radio


0.5*A1B1 y centro en A1 a la derecha de la línea
A1E1

f23 Intensidad de la imagen en la mitad izquierda del


círculo de radio 0.5*BB1 y centro en I

f24 Intensidad de la imagen en la mitad izquierda del


círculo de radio 0.5*BB1 y centro en J

f25 Distribución del brillo a lo largo de la línea KL


Además se tendrán en cuenta otras características, como la ausencia de alguno de los labios (en
caso de que estén metidos hacia dentro de la boca).

Una vez realizadas estas mediciones se procede a determinar las unidades de acción presentes en
la expresión. Cuando en la siguiente tabla (que presenta tan sólo algunas de las posibles unidades de
acción) se dice que determinado rasgo está incrementado o decrementado, se refiere a la diferencia entre
la medición en la imagen y la medición sobre una supuesta expresión neutral en una cara del mismo
tamaño.

UA Descripción Rasgos del modelo

1 Interior del ceño elevado f1 y f2 incrementados

2 Alguna ceja elevada f1 o f2 incrementado

4 Ceño fruncido f1 y f2 decrementados


(o f19 incrementado)

5 Párpado superior elevado f5 o f6 incrementado

6 Mejillas elevadas f21 o f22 incrementado

7 Párpado inferior elevado f20, f21 y f22 no


incrementados, f9>0,
f10>0, f5>0, f6>0, f7 o
f8 decrementado

8 Labios enfrentados (dientes visibles yf25 decrementado, f11


labios poco visibles) incrementado, f17>0

9 Nariz arrugada f20 incrementado

10 Labio superior elevado f20 no incrementado,


f11 decrementado

12 Esquinas de la boca hacia arriba f12 y f13


decrementados, f14 y
15 incrementados

15 Esquinas de la boca hacia abajo f12 o f13 decrementado

20 Boca alargada f16 incrementado, f12 y


f13 no incrementados

26 Mandíbula caída f18 ha de estar entre


dos valores
determinados

28 Labios metidos hacia dentro f17=0

35 Mejillas metidas hacia dentro Silueta de la boca


encogida

39 Agujeros de la nariz comprimidos Distancia HH1


decrementada
4.2.2. Modelo lateral

En el modelo lateral se sigue una pauta similar al modelo frontal, sólo que ahora los puntos se
toman a partir de la línea del perfil de la cara, tomando los sucesivos máximos y mínimos locales de la
misma:

Punto Descripción

P1 Parte superior de la frente, punto de unión con el pelo

P2 Arco de las cejas, primer máximo local del contorno

P3 Origen de la nariz, primer mínimo local del contorno

P4 Punta de la nariz, máximo absoluto del contorno

P5 Mandíbula superior, primer mínimo local tras P4

P6 Labio superior, primer máximo local tras P4

P7 Unión de los labios, primer máximo local tras P6

P8 Labio inferior, primer máximo local antes de P10

P9 Mandíbula inferior, primer mínimo local antes de P10

P10 Punta de la barbilla, primer máximo local desde el final de la curva

En este caso no tenemos que efectuar el paso intermedio de las mediciones, sino que podemos definir las
unidades de acción, que son las mismas que en el apartado anterior (por lo que nos ahorramos la
descripción). Mostramos algunas de ellas:

U Movimiento de los puntos del perfil


A

1 P2 hacia arriba, la curva entre P1 y P2 contiene una serie de


máximos y mínimos locales

4 P2 hacia abajo, sin incremento de la curvatura entre P2 y P3

8 Distancia entre P5 y P6 incrementada, P6 hacia fuera, P8


hacia fuera, la curvatura entre P6 y P8 es más recta y
angulosa, distancia entre P8 y P10 incrementada

9 Incremento de la curvatura entre P2 y P3

1 Distancia entre P5 y P6 decrementada,


2

1 Distancia entre P5 y P6 incrementada, no se incrementa la


5 curvatura entre P5 y P6, P6 hacia abajo, P8 hacia abajo,
distancia entre P6 y P8 no incrementada

2 Distancia entre P5 y P6 incrementada, no se incrementa la


0 curvatura entre P5 y P6, P6 hacia dentro, P8 hacia dentro,
distancia entre P6 y P8 no decrementada

2 Los puntos P6 y P8 están ausentes


8

También se pueden dar variaciones de algunas UAs, como la 28, que cuenta con las variaciones
28s y 28i, correspondientes a los rasgos “labio superior metido hacia dentro” y “labio inferior metido hacia
dentro” respectivamente. También aparecen otras nuevas, muy difíciles o casi imposibles de medir en el
modelo frontal, como la UA 19 correspondiente al rasgo “lengua visible”, marcada por la aparición de dos
mínimos y un máximo locales entre P6 y P8; y las UAs 36s y 36i correspondientes respectivamente a los
rasgos “bulto sobre el labio superior producido por la lengua” (incremento de curvatura entre P5 y P6) y
“bulto bajo el labio inferior producido por la lengua” (P9 está ausente).

4.2.3. Combinación de los modelos

Una vez definidas las unidades de acción para cada modelo, se puede ver como algunas se
pueden determinar más fácilmente en el modelo frontal (por ejemplo, la UA 1, que el modelo de perfil da
problemas, puesto que al levantar las cejas se arruga la frente y aparecen una serie de máximos y
mínimos locales de más), y otras se determinan mejor con el modelo lateral (como hemos visto en la
sección anterior). Es menester por tanto elaborar una lista determinando qué unidades de acción medimos
en el modelo frontal, y cuáles medimos en el modelo lateral, lo cual se puede dejar al criterio de cada uno.

Se dice que una determinada unidad de acción está activada si la medición que hemos tomado
difiere sustancialmente del modelo neutral.

4.3. Clasificación emocional

El último paso del algoritmo consiste en clasificar la expresión facial dentro de una determinada
emoción, para lo cual usamos las unidades de acción que hemos calculado.

Por ejemplo, la unión de las siguientes unidades de acción:

· 1 y 2 (cejas muy elevadas)


· 5 (párpado superior elevado) pero no 7 (párpado inferior elevado)
· 26 (mandíbula caída)

da lugar a la emoción “sorpresa”. El resto de emociones se clasifican del mismo modo, según diferentes
combinaciones de unidades de acción presentes y no presentes, teniendo en cuenta (como dijimos al
principio) que es difícil que una persona tenga una expresión totalmente pura.

Por otro lado, existen diferentes clasificaciones de las unidades de acción. La propuesta
anteriormente sería una posibilidad, otra podría ser descomponiendo cada emoción en menos unidades de
acción y cada vez que aparezca una de las siguientes combinaciones incrementar la posibilidad de que la
emoción final sea la establecida:
· 1 + 2 = sorpresa
· 1 + 4 + 5 = miedo
· 1 + 4 + 5 + 7 = miedo
· 1 + 4 + 7 = tristeza
· 4 = furia
· 15 = tristeza
· 10 = disgusto
· 12 = alegría
· etc.
5. Conclusiones

Acerca de la detección de caras en imágenes, el método que nos ha parecido más adecuado es el
de las redes neuronales, que además es el más utilizado en las webs y programas de demostración que
hemos hallado en Internet. Las redes neuronales no sólo se usan para la detección de caras, tienen otras
muchas aplicaciones, y por eso es un campo de investigación que está bastante desarrollado. No es como
el resto de algoritmos estudiados, que se han creado única y exclusivamente para la detección de caras.

Por tanto, lo único que hay que hacer es entrenar una red neuronal con un conjunto de caras. Y ni
siquiera tenemos que preocuparnos por crear nuestra propia colección. Existen en Internet colecciones ya
hechas, como la BioID Face Database. De su página web se puede descargar un conjunto de 1521
imágenes de 384x286 píxeles, que ocupan un total de 124 MB aproximadamente. La utilidad de esta
colección no es sólo la de entrenar una red neuronal (sobre todo porque para entrenar una red neuronal
antes habría que recortar y escalar las imágenes a un tamaño inferior), sino también la de comprobar la
eficacia de nuestro algoritmo detector de caras usándolas como método de evaluación estándar.

Nuevas líneas de investigación en este campo incluyen el buscar caras de frente pero rotadas, y
caras de perfil a distintos grados. Las redes neuronales son capaces de encontrar caras ligeramente
rotadas, el grado máximo de rotación dependerá del conjunto de entrenamiento. Hay varias posibilidades:

 Entrenar la red neuronal con caras rotadas y de perfil, aunque eso podría incrementar la tasa de
falsos positivos.
 Entrenar la red neuronal con caras en distintos grados de perfil, y hallar las caras rotadas mediante
un bucle más en el algoritmo, tal que para cada posición de la ventana de la imagen, dicha ventana
sea rotada en cada paso un determinado número de grados, hasta completar una vuelta entera o
hasta encontrar una cara. Se podría combinar este método con otros que determinen la
probabilidad de que haya una cara en la ventana (según el color de la piel, por ejemplo) y aplicar el
nuevo bucle que gira la ventana sólo en ese caso.

Acerca de la detección de expresiones, no hemos encontrado información en la red que pudiera


complementar el trabajo de M. Pantic y L. J. M. Rothkrantz. Existe una web con una aplicación de
demostración (ver bibliografía) que calcula la expresión facial de cada cara en una imagen usando tan sólo
la perspectiva frontal, pero produce unos resultados que fallan en ocasiones. Hay que tener en cuenta la
escasa aplicación que estos algoritmos tienen en el mercado actual.
6. Bibliografía

Puntos de partida de este trabajo:

 Eric Hjelmås y Boon Kee Low. Face Detecion: A Survey.

 M. Pantic y L. J. M. Rothkrantz. Expert system for automatic analysis of facial expressions.

Páginas web con información relativa a la detección de caras:

 The BioID Face Database. http://www.bioid.com/downloads/facedb/facedatabase.html

 Face Detecion Home Page: Face detection and recognition. http://home.t-


online.de/home/Robert.Frischholz/face.htm

Desde esta última web se puede acceder a multitud de sitios con información acerca de la
detección de caras, demostraciones on-line, descargas de ficheros con código fuente, aplicaciones de
ejemplo, etc. Destacamos las siguientes webs: http://aias.csd.uch.gr:8999/cff/, que contiene un ejemplo
de detección de caras y http://markov.ucsd.edu/cgi-bin/face_tracker/index.pl, que contiene un ejemplo de
detección de expresiones faciales.

You might also like