CAPÍTULO 3. RESULTADOS Y DISCUSIÓN
3.2 Resultados de aplicar el algoritmo de Viola-Jones para detectar rostros y AUs
A las fotos normalizadas a 512 x 512 píxeles y en niveles de grises, se le aplica el algoritmo de Viola-Jones entrenado para detectar rostros de frente. El desempeño fue exitoso en las 50 imágenes de la base de datos de prueba y en todas las de la base JAFFE original, aun con sus dimensiones de 256 x 256.
El escalado continuo de la ventana de búsqueda respecto a las dimensiones de la imagen de entrada, hace este algoritmo muy robusto (dentro de ciertos límites) ante cambios de resolución. Sin embargo, se verificó, como ya se expresó en el epígrafe anterior, que el algoritmo de Viola-Jones implementado en MATLAB no trabaja bien con resoluciones del orden de 3744 x 3744, lo que motivó bajarla a 512 x 512.
Fig. 9 Desempeño del algoritmo de Viola-Jones en la detección de un rostro.
La (Fig. 9) ejemplifica el desempeño del algoritmo de Viola-Jones en la detección de rostros. Observe que el mismo encuentra un cuadro que encierra la mayor parte del rostro, conteniendo todas las unidades de acción antes explicadas que participan en la detección de emociones faciales: ojos, cejas, nariz y boca. Observe que en ocasiones dicho cuadro con el rostro pudiera contener parte del fondo de la imagen y/o perder alguna fracción del rostro más externa, como el pelo, la barbilla o las orejas.
Luego de tener aislado el rostro dentro de la imagen inicial, se probaron varias instancias del algoritmo de Viola-Jones para detectar unidades de acción como objetos independientes. Debemos reconocer que la única unidad de acción que fue consistentemente detectada en las imágenes de rostros, usando el propio algoritmo de Viola-Jones convenientemente entrenado, fue la de los ojos (el par de ojos como objeto inicial). Las demás estructuras o unidades de acción (boca, nariz, cejas) fallaron alguna vez en las imágenes de prueba a tratar de detectarlas con Viola-Jones convenientemente entrenado.
Por dicho motivo, el paso siguiente a recortar el rostro detectado con Viola-Jones, fue detectar el par de ojos en el rostro. El resultado fue exitoso en el 100 % de los casos con las imágenes de prueba, aunque pudiera ser aún más segura la búsqueda, si se realizara solo en la parte superior del rostro detectado. Con esa misma lógica, se recortaron los ojos detectados como pares, en ojos individuales y también se recortó la parte inferior de la cara (por debajo de los ojos), para buscar nariz y boca, y la parte superior (casi todo por sobre los ojos, aunque con un pequeño solapamiento), para buscar las cejas.
Se debe señalar que todas las imágenes probadas son realmente sencillas, aunque no se debe descartar en un futuro, tener que lidiar con imágenes más complicadas, que incluyan personas con espejuelos, sin el pelo tan recogido detrás, sino más bien sobre las cejas, etc. Debe recalcarse que sobre esas regiones de rostros recortadas previamente, no funcionaron bien, en todos los casos, los algoritmos de Viola-Jones. Se dificultó la detección de las cejas, por lo que las mismas se aislaron simplemente en función de la posición de los ojos hallados previamente, con una caja contenedora ligeramente mayor que la de estos y ligeramente por encima de la de ellos, con cierto solapamiento entre ambas. En más detalle, para una caja contenedora de los ojos dada por BBOXo (x,y,w,h), se obtuvo la caja contenedora de las cejas en BBOXc (x-0,1w,y-1,4h,1,2w,1,43h). Dichas coordenadas fueron determinadas empíricamente y comprobadas exitosamente con las imágenes de la base de datos de prueba, aunque existen ciertos casos extremos en que resulta imposible aislar los ojos de las cejas, por estar muy próximos entre sí.
Sin embargo, se encontró que en la parte inferior de la cara (por debajo de los ojos) siempre se podía detectar la nariz y, en función de la misma, aislar también la boca, con éxito en la base de datos de prueba.
La (Fig. 10) ilustra cómo quedan aisladas las diferentes unidades de acción (ceja derecha e izquierda, ojo derecho e izquierdo, nariz y boca) en un rostro previamente detectado con el algoritmo de Viola-Jones.
3.3 Resultados de la detección automática de puntos significativos en las cejas
En cada unidad de acción aislada solo resta hallar convenientemente los puntos significativos asociados. En este trabajo solo nos centramos en la determinación de los puntos extremos de las cejas derecha e izquierda que serán numerados en lo adelante del 1 al 4, siguiendo un orden de derecha a izquierda en el rostro (de izquierda a derecha según el observador de frente). O sea, el punto 1 es el del extremo exterior de la ceja derecha, el 2 es el del extremo más cercano a la nariz de dicha ceja derecha, le sigue el 3 como el extremo interior de la ceja izquierda y el 4 que es el extremo exterior de dicha ceja(Fig. 11).
Fig. 11 Puntos significativos en los extremos de las cejas, numerados del 1 al 4, de izquierda a derecha en la imagen.
Para obtener dichos puntos significativos en los extremos de las cejas se aplicó inicialmente un filtrado de mediana de 3x3. Se determinó el tamaño del kernel experimentalmente, tratando de buscar un compromiso entre el beneficio que reporta el filtro y su costo computacional. Al comparar las cejas filtradas con un kernel de 3x3 y de 5x5 (Fig. 12.), no se apreciaron diferencias significativas entre ellas, ya que ambas logran una atenuación
aceptable de los ruidos, preservando los bordes. Sin embargo, el costo computacional del filtro de 3x3 es menor, por lo que se seleccionó esa variante.
Fig. 12 Efectos del filtrado de mediana sobre las cejas recortadas.
El siguiente paso consiste en un multi-umbralizado usando Otsu (Fig. 13). Se apreció una eficiente determinación de los tres umbrales que determinan las regiones de las diferentes clases en las cejas.
Fig. 13 Multi-umbralizado usando Otsu.
A la imagen reconstruida se le aplica un filtro morfológico con elemento estructurante en forma de disco y un radio de un píxel (Fig. 14).
Fig. 14 Efectos de la apertura morfológica.
El último paso consiste en esqueletizar la ceja y detectar sus puntos extremos, lo cual se muestra en la (Fig. 15).
Fig. 15 Esqueletización y puntos extremos de las cejas.
El Anexo III resume las coordenadas de los puntos significativos en las cejas (1-4) detectados según distintos criterios:
el de los algoritmos en el programa a evaluar: poidetect, (xp,yp).
el de un observador en un par de ocasiones diferentes, (x11,y11) y (x12,y12), así como su promedio, (x1,y1) = [(x11,y11) + (x12,y12)]/2.
el de un segundo observador en otro par de ocasiones diferentes, (x21,y21) y (x22,y22), así como su promedio, (x2,y2) = [(x21,y21) + (x22,y22)]/2.
el considerado „estándar dorado‟, que es el centroide de las coordenadas determinadas por ambos observadores, (x,y) = [(x1,y1) + (x2,y2)]/2 = [(x11,y11) + (x12,y12) + (x21,y21) +
(x22,y22)]/4.
Para visualizar mejor los resultados, la Tabla del Anexo III se reorganizó de forma tal que los 200 puntos (4 en cada una de las 50 imágenes de prueba) van en orden creciente de su coordenada x del „estándar dorado‟. Esta reorganización aparece en el Anexo IV, donde también se incluyeron los resultados de las distancias de Minkowski de orden 1 (City block, CB) y orden 2 (Euclidiana, ED), expresadas en píxeles.
Al graficar las coordenadas x determinadas por cada uno de los observadores, x1 y x2, el
„estándar dorado‟, x, y el programa, xp (Fig. 16), se observan detalles interesantes. Observe
que como los puntos significativos, del 1 al 4, van en orden creciente de las x, en la gráfica los primeros 50 puntos (primer escalón) se refieren, con una sola excepción, al punto 1 de las 50 imágenes. Luego se grafican los puntos 2, luego los 3 y, por último, los 4.
Fig. 16 Gráfica de las coordenadas x de los 200 puntos, según diferentes criterios: de 2 observadores y el programa, además del estándar dorado.
Según las tablas de los Anexos III y IV, existe cierta variabilidad intra-observador, o sea, diferencia entre la primera y la segunda vez que anotaron los puntos. Además, existe variabilidad inter-observador, o sea, diferencias entre los observadores.
Teniendo en cuenta esa organización de la (Fig. 16), se puede inferir que los mayores errores del programa se cometen al estimar los puntos de la extrema izquierda de la ceja izquierda (puntos 4), los de mayor orden (entre 151 y 200). Estos a su vez son los que presentan mayor lejanía del estándar dorado, lo que se denota en que la línea azul en este tramo es donde más se separa de la negra. No obstante, se aprecia que los mayores errores absolutos no los comete el programa, sino los observadores individuales que no logran ponerse de acuerdo entre sí en puntos como el 151 y el 153. Aquí parece que existen errores de anotación en las medidas x22 del 155 y x12 del 153.
La variabilidad en la posición estimada del punto 4 parece obedecer a que dicho punto se confunde con una sombra en esa región y a que la ceja se manifiesta más clara en la parte final, por lo que el programa falla.
Fig. 17 Gráfica de las coordenadas y de los 200 puntos, según diferentes criterios: de 2 observadores y el programa, además del estándar dorado.
La (Fig. 17) corrobora el buen desempeño de los algoritmos implementados (programa) para detectar los puntos, que obtienen resultados comparables con los de los observadores humanos.
La última columna (ED) en la Tabla del Anexo IV muestra que más de la mitad de las veces, la distancia Euclidiana (distancia física en línea recta) entre los puntos determinados por el programa y los del estándar dorado no superan los 4 píxeles, equivalentes a unos 2 mm. El máximo error es de 27 píxeles, unos 14 mm, al determinar el punto 1 en la imagen UY.DI1.149, o sea, en el punto 45. Observe, sin embargo, que en la estimación de ese punto específico hubo gran coincidencia entre el programa y el observador 2, por lo que parece haber existido un error de anotación del observador 1, específicamente en su segunda medición (x12).