1
Capítulo 1
INTRODUCCIÓN
En este capítulo se presentan los antecedentes de la tesis, se describe el problema
de investigación, los objetivos que se desean alcanzar, las limitaciones del proyecto
y las aportaciones al estado del arte.
2
1.1 Antecedentes.
El reconocimiento de rostros juega un papel muy importante en la vida diaria de los
seres humanos. La habilidad natural humana para aprender y reconocer rostros es
impresionante. Se pueden identificar una gran cantidad de rostros durante toda la
vida; incluso, sin verlos por algún tiempo. Esta capacidad es muy sólida, a pesar de
cambios en la expresión facial, distancia, iluminación, envejecimiento, y elementos
que modifican el rostro tales como gafas, barba, bigote o cambio de peinado.
No es difícil entender que siendo la identificación de rostros una capacidad tan
valiosa en la comunicación humana, sea también un medio relevante de
comunicación entre los hombres y las máquinas. El reconocimiento de rostros es un
elemento importante en muchas aplicaciones tales como: i) sistemas de seguridad,
ii) la identificación criminal, iii) las aplicaciones de ayuda a las personas con
capacidades diferentes y iv) en particular, el desarrollo de interfaces humano-robot.
En los últimos años ha crecido el interés por integrar a los robots de servicio en la
vida cotidiana de los seres humanos para realizar tareas como tirar la basura,
asistentes personales, guías de museos o en tareas de seguridad, etc. Para poder
realizar estas actividades estos robots deben poseer capacidades de
desplazamiento en su ambiente, localización, manipulación de objetos de interacción
natural con el hombre e identificación de personas. El reconocimiento de rostros
permite determinar la identidad de una persona, al comparar una imagen de su cara
con imágenes de referencia almacenada en una base de datos.
Algunos investigadores consideran que en un futuro no muy lejano los robots de
servicio podrían transformar la vida de las personas, al facilitar la elaboración de
tareas cotidianas realizándolas en forma segura, eficiente y rápida. Para incentivar la
investigación y el desarrollo de este tipo de robots los centros de investigación y
universidades principalmente han promovido una competencia internacional llamada
RoboCup@Home. Esta competencia tiene por objetivo proponer aplicaciones
relevantes donde una amplia gama de tecnologías pueden ser integradas y
3
examinadas en estos robots, en un marco estándar de pruebas dentro de la
competencia. Who is Who es una prueba de RoboCup@Home, su objetivo es
aprender y reconocer personas en un ambiente idéntico al de una casa.
En México uno de los centros de investigación que se dedica al desarrollo de robots
de servicio es el Departamento de Ciencias de la Computación del Instituto de
Investigaciones en Matemáticas Aplicadas y en Sistemas (IIMAS) de la Universidad
Nacional Autónoma de México (UNAM). En este departamento se ha desarrollado en
los últimos años el robot de servicio Golem II que es un asistente conversacional
situado con lenguaje hablado y visión computacional. Se implementó un sistema de
reconocimiento visual de rostros en la arquitectura cognitiva del robot Golem II
siguiendo las reglas de la etapa I de la prueba ¿Who is Who? Este sistema identifica
visualmente el rostro de usuarios en tiempo real en un ambiente de laboratorio.
1.2 Planteamiento del Problema.
El reconocimiento de rostro es un área del reconocimiento de patrones que ha sido
investigada desde varios años. Durante este tiempo se han propuesto técnicas
diferentes para la resolución de esta tarea, entre las que se pueden mencionar:
Igualamiento de plantillas.
Cálculo de características geométrica (eigenfaces).
Métodos que utilizan redes neuronales.
Independientemente de la técnica que sea implementada, se utilizan siempre dos
conjuntos de datos:
El primero es utilizado siempre para la etapa de aprendizaje, el cual es
llamado conjunto de entrenamiento. Se debe tratar de que los patrones que
se integran en este conjunto sean lo más diferentes posibles entre sí, y que
además, representen al problema, para poder tener un buen porcentaje de
generalización.
4
El segundo conjunto de patrones, es llamado conjunto de prueba, y es
utilizado en la etapa de reconocimiento.
En la figura 1.1 se muestran las etapas del reconocimiento de rostros.
Figura 1.1. Proceso del reconocimiento visual de rostros implementado en un robot [Héctor 2006].
Una o más videocámaras capturan las imágenes que registran el rostro. Mediante la
detección del rostro se aísla la cara del individuo en las imágenes. Luego se realiza
un pre-procesamiento de las imágenes con la finalidad de estandarizar el tamaño,
color y brillo. Posteriormente se extraen las observaciones relevantes para describir
el rostro. Finalmente, estas observaciones tienen asociado un identificador que
corresponde a uno de los rostros almacenados en una base de datos.
El problema general en el reconocimiento de rostro consiste en desarrollar sistemas
que sean capaces de reconocer con precisión la identidad de una persona.
Frecuentemente estos sistemas toman acciones basadas en los resultados del
reconocimiento.
Robot
Capturar de las imágenes
Pre-procesamiento de imágenes
Extracción de observaciones
Identificador
Base de datos de rostros
Reconocimiento de rostro
Detectar rostro
Cámara(s) de video
5
El desarrollo de este tipo de sistemas no es una tarea sencilla debido a: 1) los
distintos ambientes de aplicación con cambios de iluminación y fondo de imagen, 2)
diferentes posiciones de las personas frente a la cámara, 3) condiciones de captura
de las imágenes, 4) técnicas eficientes para el reconocimiento de rostros, 5)
resultados limitados en términos de tiempo de reconocimiento en las tareas actuales
para la aceptación en sistemas de tiempo real.
1. Distintos ambientes de aplicación con cambios de iluminación y fondo
de imagen.
Los cambios de iluminación pueden degradar el rendimiento de los sistemas de
reconocimiento de rostros debido a que pueden distorsionar la calidad, textura y
forma de la imagen. En un fondo complejo al aplicar modelos de reconocimiento
a la imagen del rostro de la persona se podría mezclar con el mismo fondo.
2. Diferentes posiciones de las personas frente a la cámara.
La posición del rostro frente a una cámara es muy importante, porque ayuda a los
sistemas a identificar las características faciales de las persona. Sin una
adecuada posición del rostro, los modelos de reconocimiento no podrán
identificar adecuadamente las características faciales de las personas y el
sistema aumentará su porcentaje de fracaso. Usualmente estos sistemas se
restringen al reconocimiento con rostros de frente a la cámara de video.
3. Condiciones de captura de las imágenes.
La gran variedad de cámaras con diferentes características no permite
generalizar la utilización de un sistema de reconocimiento debido a diferentes
factores, por ejemplo: la sensibilidad de la cámara a la luz, cambios de
iluminación en el ambiente, diferentes resoluciones de la imagen, etc., ya que en
cada cámara los aspectos mencionados anteriormente cambiarían de una a otra,
es decir, los diferentes cambios de la imagen afectaría a la base de datos de un
6
sistema de reconocimiento que contiene varias imágenes con las mismas
características.
4. Técnicas eficientes para el reconocimiento de rostros.
Existen varias técnicas que emplean diferentes formas para poder reconocer el
rostro de una persona pero resuelven esta problemática en un enfoque parcial
con porcentajes de errores variables.
5. Resultados limitados en términos de tiempo de reconocimiento en las
tareas actuales para la aceptación en sistemas de tiempo real.
Estos sistemas son costosos computacionalmente, además la cantidad de
operaciones matemáticas es alta y su tiempo de respuesta no suelen ser en
tiempo real, es decir, sufre algunos retardos dependiendo la técnica que se esté
utilizando.
Algunos de estos problemas han sido abordados y resueltos parcialmente con
diferentes investigaciones que se han realizado en los últimos años. No obstante, los
avances actuales prometen soluciones parciales y aceptables, permitiendo que los
sistemas de reconocimiento de rostros sean relevantes hoy en día.
1.3 Justificación.
La justificación de porqué se debe hacer este tipo de investigación radica en dos
puntos principales: 1) la importancia de dotar a los robots de servicios con
identificación de personas y 2) las ventajas de tener un sistema de reconocimiento
de rostros en el robot de servicio Golem II.
1. La importancia de dotar a los robots de servicios con identificación de
personas.
En un futuro no muy lejano los robots de servicios podrán desempeñar tareas
7
fáciles, como aspirar, servir de mascota, jugar con niños, preparar café, abrir
la puerta o recoger la basura. Para realizar de forma efectiva esas tareas,
dichos robots deben poseer habilidades de comunicación similares a las
utilizadas por los humanos en la vida diaria. Unas de tales habilidades es el
reconocimiento de rostros. Éstos conforman un medio visible para expresar
sentimientos, actitudes, y además, el robot realizaría sus tareas de forma
segura y eficiente. En el mundo existen robots con capacidades de identificar
personas, a continuación se mencionan algunos de ellos.
a) El Robot KornTeach puede reconocer rostros, caminar en dos pies y
alertar a sus dueños cuando hay un intruso en su casa por vía celular.
b) MechaDroid es un robot que puede identificar personas y objetos, fue
fabricado para trabajar como recepcionista en un hotel.
c) El robot Benri puede detectar sonido, movimiento, objetos y rostros, su
propósito es la vigilancia del hogar o negocio.
d) PepeRo tiene la habilidad de reconocer rostros y voces con la finalidad
de poder brindar una amistosa compañía para adultos y niños.
2. Ventajas de tener un sistema de reconocimiento de rostros en el robot de
servicio Golem II.
En la actualidad este robot no puede identificar personas, su sistema de visión
solo detecta diez gestos de apuntar y ciertos objetos establecidos en su
memoria tales como póster, revistas y cartas. Para detectar una persona
Golem II utiliza la voz, es decir, llama al usuario diciendo la siguiente frase
“Alguien quiera jugar conmigo”, si hay repuesta Golem II pide su nombre para
identificar al usuario, y empieza tener una conversación, pero nunca reconoce
la identidad de la persona. Con la realización de este sistema de
reconocimiento visual de rostros se pretende identificar una persona
desconocida cada vez que Golem II tenga una conversación, con la finalidad
de mejorar la iteración humano-robot.
8
1.4 Objetivo de la tesis.
Implementar un sistema visual de reconocimiento de rostros de personas sobre un
robot real que aprenda visualmente rostros en línea para su posterior identificación
en un ambiente de laboratorio. Este sistema se basará en las reglas de la prueba
¿Who is Who? de la competencia RoboCup@Home.
1.4.1 Objetivos específicos de la tesis.
Este objetivo general requiere del cumplimiento de los siguientes objetivos
específicos:
Desarrollar un sistema de visión que detecte y reconozca personas.
Integración en un robot real (Golem II).
Experimentación para evaluar el desempeño de reconocimiento.
1.4.2 Alcance y limitaciones de la tesis
Los experimentos se realizaron en un ambiente de laboratorio. Para la identificación
y detección del rostro, el usuario deberá situarse de frente al campo de visión de una
videocámara y se espera que el rostro no se salgan de los límites de cada imagen
capturada. Aunque el reconocimiento de rostros está incorporado en un robot móvil,
se considera que la videocámara se encuentra en una posición fija. No se permite el
desplazamiento del usuario una vez iniciado la captura de imágenes del rostro.
Tampoco se contemplan cambios bruscos de iluminación, ni oclusiones entre el
usuario y la videocámara, ni diferentes posturas del usuario, ni reconocimiento de
dos o más personas a la vez (dentro del campo visual de la videocámara).
9
1.5 Aportaciones.
Las aportaciones de este trabajo se presentan a continuación:
1. Fomentar la investigación en el desarrollo de nuevas alternativas para
sistemas de visión de reconocimiento de rostros de persona. Esta
investigación se propone como un prototipo para el desarrollo de nuevos
sistemas en el área de reconocimiento de rostros.
2. La experimentación extensa con dos bases de datos. Se realizaron dos
experimentos principales, con el propósito de evaluar el sistema de
reconocimiento de rostros. En el primer experimento se hicieron pruebas con
una base de datos de AT&T de la universidad de Cambridge, los resultados
que se obtuvieron fueron del 88 % al 93 % de reconocimiento. En el segundo
experimento se utilizó una computadora con una webcam para la filmación de
diferentes vídeos de rostros de personas. Los vídeos grabaron en diferentes
lugares del laboratorio, a distintos horarios, a varias distancias y con un
número determinado de personas. El resultado del segundo experimento fue
del 94 % al 98 % de reconocimiento.
3. La integración del sistema de reconocimiento visual de rostro dentro de
la arquitectura cognitiva. Este sistema se integró exitosamente en una
arquitectura cognitiva llamada modelos de diálogos que se desarrolla en el
Departamento de Ciencias de la Computación del Instituto de Investigaciones
en Matemáticas Aplicadas y en Sistemas de la Universidad Nacional
Autónoma de México.
4. La implementación del sistema completo en un robot real. Se espera que
este trabajo de investigación se implemente en un robot móvil con la finalidad
de que realice la prueba Who is Who de la competencia internacional
RoboCup@Home.
10
1.6 Contenido del documento.
Los siguientes capítulos de la tesis se encuentran organizados de la siguiente
manera:
En el capítulo 2 se da un panorama detallado del reconocimiento de rostro, así como
la técnica eigenfaces. Además se explica la competencia internacional
RoboCup@Home y la prueba Who is Who. Posteriormente en el capítulo 3 se
describe la detección de rostros, las mejores bases de datos que están disponibles
en la web, y además, se detalla los componentes de hardware, software y la
arquitectura del robot Golem II. El capítulo 4 se muestran los experimentos
realizados utilizando y creando base de datos de rostros, con la finalidad de evaluar
el sistema de reconocimiento en la arquitectura del robot Golem II. Finalmente en el
capítulo 5 se presentan las conclusiones de esta investigación, así como futura
líneas de este trabajo.
11
Capítulo 2
MARCO TEÓRICO Y TRABAJOS RELACIONADOS En este capítulo se presenta el marco teórico en cual se fundamenta este trabajo. Se
describe el reconocimiento visual de rostros y la técnica eigenfaces. Finalmente se
explica la competencia internacional RoboCup@Home, así como la prueba Who is
Who.
12
2.1 Reconocimiento visual de rostros.
La investigación en esta área está motivada no sólo por el reto que supone este
problema, sino por las numerosas aplicaciones prácticas en las que puede llegar a
ser aplicado. El reconocimiento facial se vuelve cada vez más importante ante los
contínuos avances de la tecnología digital, la comunicación por red, la telefonía
móvil, el incremento de demanda de seguridad y en la robótica. Es la técnica
biométrica primaria y con mayor interés en su demanda por las ventajas que supone
frente al resto: es natural, no intrusiva y fácil de utilizar.
Aunque su estudio comenzó en la década de los 60 del siglo pasado, continúa
siendo un problema sin una solución definitiva. Durante los últimos años se han
conseguido avances significativos en el modelado y las técnicas de análisis, y se
han logrado sistemas para detectar y seguir caras con resultados relativamente
satisfactorios.
Los sistemas de reconocimiento facial tuvieron un avance importante desde el primer
sistema propuesto y desarrollado por T. Kanade [Kanade 1973]. Los recientes
resultados en el análisis de características, reconocimiento de patrones y técnicas de
aprendizaje están ofreciendo las capacidades necesarias para atender a todas estas
nuevas aplicaciones. Sin embargo es especialmente difícil intentar conseguir
soluciones genéricas, especialmente en entornos y tareas sin condiciones fijas o
impuestas, sin limitaciones de iluminación, puntos de vista, oclusión, expresión,
accesorios y una gran variedad de elementos a considerar.
El problema de una detección robusta en entornos no controlados puede ser
formulado con el siguiente ejemplo: Dada una secuencia de fotografías de gente
utilizando un determinado servicio, mantener el listado de todos los conectados y
reconocer si pertenecen al nivel de usuarios. Identificar a quienes están en la lista e
insertar a quienes no han sido reconocidos. Los dos problemas fundamentales que
vienen asociados son:
13
Descartar una cara de un listado: Es una tarea más complicada que
reconocerla, puesto que el segundo caso es conocida y pertenece ya a una
base de datos.
Reconocer caras con oclusiones parciales: Es más difícil que reconocerlas
frontalmente, ya que en este último caso se pueden apreciar todas las
características.
El proceso de identificación pasa generalmente por uno o varios de los siguientes
pasos de procesamiento previo de la imagen:
Traslación, rotación y escalado de la imagen para fijar un número de filas y
columnas de píxeles, de modo que el centro de los ojos esté localizado.
Aplicar una máscara para eliminar el fondo de la escena y el pelo.
Implementar una ecualización a partir de un histograma.
Normalización de los datos faciales para tener una media cero y una
desviación estándar unitaria.
Los métodos de reconocimiento de rostros se pueden clasificar en tres grupos:
1. Métodos basados en características, donde las singularidades como ojos,
nariz y boca son extraídas de su posición inicial e introducidas en
clasificadores estructurales.
2. Métodos basados en apariencia, que utilizan la región facial completa como
una entrada al sistema de reconocimiento.
3. Métodos combinados, que en principio son los que obtienen mejores
resultados.
Desde el momento en que las condiciones para el reconocimiento de rostros
dependen de la posición, de las expresiones faciales y del entorno, no habrá, en
general, un método mejor que otro.
14
1. Métodos basados en características.
Está dividida en dos técnicas:
1.1 Matching Estructural.
Los primeros estudios de reconocimiento facial, como por ejemplo el de I. Cox
[Cox 1996] detectaban un conjunto de singularidades de la cara (ojos, ojos
marrones, nariz y boca). Las propiedades y relaciones tales como el área, las
distancias y los ángulos entre características eran utilizadas por los
descriptores de reconocimiento facial. Sin embargo el resultado en estos
métodos está muy ligado a la precisión del algoritmo de localización de las
singularidades.
1.2 Matching con Grafos.
Realiza primero una rejilla sobre la imagen de la cara, y los nodos se ajustan
a un conjunto de puntos definidos. Después se evalúa la convolución de un
conjunto de wavelets 2D de Gabor sobre cada nodo y la salida representa un
vector de características de un punto particular de la cara. Por último, se
realiza un algoritmo de matching con grafos. Es un método que da muy
buenos resultados, pero requiere que la cara esté muy próxima a la cámara y
de una resolución mínima de [128x128].
2. Métodos basados en apariencias.
Está dividida en dos técnicas:
2.1 Modelos de apariencia de Markov (HHMs).
Los primeros trabajos fueron propuestos por Samaria [Samaria 1994],
montando una estructura vertical de una dimensión compuesta por una
especie de súper estados que contenían cadenas de Markov horizontales.
15
Nefian propuso algo similar pero esta vez utilizando la transformada discreta
del coseno para observar los vectores de características [Kanade 1973]. Kohir
propone el escaneo de la imagen en zig-zag para definir secuencias de
observación [Kohir 2000]. En los últimos años, Othman han propuesto una
estructura de dos dimensiones y de baja complejidad [Othman 2003]. Esta
estructura resulta de asumir como cierta la independencia condicional entre
los entornos de vecindad de píxeles de los bloques observados dentro de la
imagen.
2.2 Análisis de componentes principales (PCA).
Dada una serie de imágenes de tamaño definido, son convertidas a vectores.
A partir de estos vectores se construye un espacio vectorial de características
faciales a partir del análisis de sus componentes principales. Es un método de
reducción dimensional mediante la traslación de los vectores del espacio real,
a un subespacio de características de menor dimensión. Este nuevo espacio
vectorial está definido por los vectores ortogonales propios de la matriz de
covarianza del conjunto de vectores iniciales. Se les ha dado el nombre de
eigenfaces por su aplicación final, y se corresponden con los vectores propios
con mayores valores propios asociados, que precisamente son los que
capturan mayor número de variaciones en el conjunto de vectores de
entrenamiento.
Las ventajas de éste método son:
Reducen la sensibilidad al ruido.
Reducen los requerimientos de memoria del sistema.
El espacio vectorial de menor dimensión es mucho más eficiente.
16
Y como desventajas:
Depende de una adecuada posición de la imagen.
Iluminación constante.
Lo cierto es que si una de estas condiciones no se cumple, puede dar lugar a
errores en el resultado puesto que los primeros autovectores codifican las
variaciones de localización e iluminación.
3. Métodos combinados.
Tratan de mejorar el reconocimiento mediante la combinación de métodos
basados en características y los basados en apariencia, su técnica más
reconocida es modelos faciales estadísticos.
Denominados generalmente Active Statistical Face Models, fueron
introducidos inicialmente por Coote [Cootes 1995]. Son modelos de forma
estadísticos que combinan:
Un modelo de distribución global de puntos (PDM) modelando la forma
del objeto y sus variaciones usando un conjunto de marcas.
Un conjunto de modelos de niveles de gris locales (LGL), que capturan
las variaciones de los niveles de gris observados en cada marca.
Un modelo PDM se puede usar para representar la forma de una cara
como un conjunto de marcas etiquetadas, recogidas en un vector X.
Los modelos de variación de la forma de la cara son definidos a partir
de los PCA a partir de la media de todas las muestras faciales que se
tengan para entrenar. Un modelo LGL es entrenado para cada marca y
junto con PDM se construye un Active Shape Model (ASM).
Mediante un proceso de búsqueda iterativo se compara el ASM de la
nueva imagen con los que ya se tienen, resultado del entrenamiento
previo.
17
2.2 Eigenfaces.
Muchos de los trabajos realizados en este campo han dejado a un lado el estudio de
las características que son verdaderamente importantes para identificar una cara. No
tanto desde la perspectiva de la percepción humana, cuyos principios se desconoce
en gran medida, sino desde un punto de vista computacional. Singularidades que
ofrezcan unas pautas claras, eficaces y precisas para la identificación. Esta y otras
carencias, llevaron a M. Turk y A. Pentland [Kirby 1990] a implementar un sistema de
codificación y decodificación de la imagen, en función de su información intrínseca.
El planteamiento consistía en enfatizar las características, locales y globales,
basándose en un método de reducción de dimensionalidad cuya idea inicial fue
desarrollada por Sirovich y Kirby [Matthew 1991] entre 1987 y 1992. El propósito final
es realizar las comparaciones entre las transformaciones de las imágenes y no entre
ellas en sí mismas, pudiendo tener así un sistema de identificación menos pesado
(en cuanto a gasto computacional) y más eficaz (por comparar únicamente
singularidades importantes para la toma de decisión).
En términos matemáticos, lo que se desea encontrar son los componentes
principales de una determinada distribución de píxeles. Es decir, los vectores
principales de la matriz de covarianza de un grupo de imágenes faciales, tratando
estas imágenes como puntos o vectores de un espacio vectorial de gran dimensión.
Estos vectores principales pueden ser entendidos como peculiaridades que
caracterizan la variación entre las imágenes de las caras, y van a ser utilizados para
construir un espacio vectorial de menor dimensión donde poder proyectarlas.
De este modo, cada imagen tendrá una aportación de cada vector principal que,
además, constituye una característica. Por eso reciben el nombre de eigenfaces o
caras principales. En la Figura 2.1 se pueden ver tres de las imágenes utilizadas en
la etapa de entrenamiento y sus correspondientes eigenfaces.
18
En un proceso inverso, cada imagen se puede sustituir exactamente por una
combinación lineal de los eigenfaces calculados. De este modo puede quedar
representada sólo por los mejores, es decir, aquellos eigenfaces que tienen los
mayores autovalores asociados, los cuales aportan las mayores varianzas entre el
conjunto de entrenamiento. Los eigenfaces no tienen que ser todos, porque el
objetivo no es la reconstrucción y, por lo tanto, la pérdida de información al prescindir
de uno de los vectores principales queda plenamente compensada por el aumento
de la capacidad computacional. Esto nos da la oportunidad de incrementar el rango
del entorno y reconocer a un grupo mayor de personas.
Figura 2.1. Imágenes de entrenamiento y eigenfaces.
En la fila superior se muestran tres de las imágenes usadas para el entrenamiento.
En fila inferior se presentan tres de los eigenfaces calculados a partir de las
imágenes de entrenamiento.
2.2.1 Operaciones de inicialización.
El procedimiento de identificación facial con análisis de componentes principales
requiere una serie de puntos de inicialización previos y supone una etapa
precedente imprescindible como se muestra a continuación.
1. Adquisición de un conjunto inicial de imágenes para el entrenamiento.
2. Cálculo de las caras principales del conjunto de entrenamiento, también
llamadas eigenfaces, manteniendo únicamente aquellos con mayores valores
propios asociados. Estos M vectores propios constituirán el nuevo espacio
19
vectorial de trabajo (facespace).Siempre que se tengan que incluir nuevas
imágenes al conjunto, se deberá repetir esta operación.
3. Cálculo de la correspondiente distribución de pesos en el espacio M
dimensional, proyectando cada imagen en dicho espacio.
Las operaciones de reconocimiento serán siempre posteriores a esta fase de
inicialización.
2.2.2 Secuencia de operaciones para el reconocimiento.
1. El proceso comienza con la recepción de una nueva imagen sobre la que se
solicita la identificación. Si el espacio de trabajo está codificado, se tendrá que
transformar igualmente esta nueva imagen para poder trabajar con ella bajo la
misma referencia. La sucesión de puntos a seguir es la siguiente:
Cálculo del conjunto de pesos de la imagen de entrada en el facespace.
Es decir, la proyección1 de dicha imagen para conocer la contribución de cada
eigenface en ella.
Determinación de si la imagen se corresponde con la de una cara o no,
evaluando su cercanía al facespace.
Determinación de si la cara es conocida o no, evaluando su cercanía a las
clases del facespace, definidas durante el entrenamiento.
Adicionalmente, se puede obtener un proceso de aprendizaje incluyendo aquellas
imágenes clasificadas como no conocidas repetidamente en el trayecto de una serie
de evaluaciones, y realizando de nuevo las operaciones de inicialización.
1 La proyección ortogonal de un vector a sobre otro vector b es la sombra perpendicular que
ejerce el primero sobre el segundo. Se calcula matemáticamente:
20
2.2.3 Cálculo de los eigenfaces.
Tal y como se dijo en el sección anterior, se iniciará de una imagen de entrada. Esta
imagen I(x,y) (con una profundidad de color de 8 bpp o 256 colores) se considerará
una matriz de datos de dimensión N x N. Esta matriz puede ser transformada en un
vector de dimensión N2 encadenando todas las filas:
(2,1)
Con esta transformación, una imagen típica de tamaño 256 x 256 viene a ser un
vector de dimensión 65,536, o de forma equivalente, un punto en un espacio 65,536-
dimensional. Ya que se tiene expresada la imagen en términos matemáticos para
poder procesarla. Se evaluará su información intrínseca.
Si se analiza una cara, se puede afirmar rápidamente que no tienen una distribución
de características aleatoria. Muy al contrario suelen tener una configuración
parecida, por lo que en principio es lógico pensar que podrían ser representadas en
un espacio vectorial de menor dimensión. Esta lógica tiene su base en algo tan
sencillo como eliminar la información común, las características comunes a todas
ellas, y trabajar únicamente con sus variaciones. Al suprimir las características
comunes, se elimina las dimensiones del espacio vectorial de características donde
inicialmente están representadas. Y al trabajar con las variaciones y no con las
características en sí mismas, se descarta la otra parte dimensional. El objetivo final
es encontrar un conjunto de direcciones de variación de características que no
cambien al someter la imagen a transformaciones, y las direcciones en álgebra lineal
vienen definidas por vectores.
21
Esta es la idea de los componentes principales2, encontrar el conjunto de vectores
que mejor definan la distribución de características y formar con ellos un nuevo
espacio vectorial de menor dimensión que será el nuevo espacio de trabajo: el
facespace. Estos vectores deben ser linealmente independientes y ortogonales.
Cada uno de estos vectores (de dimensión N2) es una combinación lineal del
conjunto de imágenes inicial. Uno de los motivos por el que se han dado en
denominar eigenfaces o caras principales es porque el resultado de la
implementación revela una cara fantasmagórica (ver Figura 2.3). Otro de los motivos
tiene que ver con el hecho de que las particularidades que definen pertenecen a
características faciales.
Figura 2.2. Muestra un posible conjunto inicial de imágenes de entrenamiento.
Se considera un conjunto de M imágenes (ver Figura 2.2) convertidas en vectores
Γ1, Γ2,…, ΓM. Tal y como se hace con las series de Fourier, se tendría un valor medio
que no a aportaría información distintiva entre ellas; es decir, si a cada imagen se le
sustrae este valor, se tendrá las características adicionales a la media (análogos a
eliminar el valor medio de una señal y realizar la codificación con los armónicos de
interés).
2 También llamada extensión de Karhunen-Loeve.
22
Una vez que tiene las imágenes convertidas en vectores, se organiza esta
información en una matriz de la siguiente manera:
donde
(2,2)
Siendo M el número de imágenes tomadas para el entrenamiento.
Se halla la media:
(2,3)
Restando dicho valor a cada una de las imágenes iniciales, se forman los vectores
diferencia:
Φi = Γi – Ψ
(2,4)
Estos vectores diferencia se someten al cálculo de los componentes principales, que
busca los M vectores propios ortonormales, un, que mejor definan la distribución de
los datos.
El criterio para la elección de estos vectores estará ligado a sus valores propios
asociados:
= Máximo
(2,5)
Sujeto a:
(2,6)
23
Siendo uk, λk los vectores y valores propios –respectivamente- de la matriz de
covarianza C:
(2,7)
La dimensión de la matriz de covarianza, determina un número de vectores y valores
propios del orden de N2, algo que es prácticamente imposible de procesar. Se
necesita un método para poder tratar el sistema computacionalmente.
Si el número de puntos en el espacio vectorial (número de imágenes) es mucho
menor que la dimensión del mismo (M << N2), únicamente habrá (M - 1) vectores
propios distintos de cero. Es decir, (M - 1) vectores propios significativos.
Afortunadamente se puede hacer el cálculo de los vectores propios (de dimensión
N2) determinando primeramente los de una matriz [M x M] y después estimando una
combinación lineal adecuada de las imágenes diferencia de las caras (Φi)
Se considera entonces que vi es un vector propio de ATA[M X M].
(2,8)
Multiplicando ambos factores por A:
(2,9)
Como puede ver en la [Fórmula 2,9], A·Vi constituyen los vectores propios de C=
AAT. Es decir, los vectores propios no son los vi como correspondería si la matriz de
covarianza fuera C=AAT. Los vectores propios son las proyecciones de cada imagen
(sin su valor medio) en la base ortogonal que forman los vi. La parte invariante la
establece A·Vi. En base a este resultado, se construye una matriz L [M x M]=ATA
donde cada elemento sea Lmn =ΦmT Φn. Se buscan los vectores propios de L, que
24
van a formar la primera base ortogonal sobre la que proyectar las imágenes. Estos
vectores propios determinan una combinación lineal del conjunto de las imágenes de
entrenamiento para formar los eigenfaces ul:
(2,10)
Y con estos eigenfaces calculados, se forma el nuevo espacio de trabajo: el
subespacio vectorial denominado facespace. Con esta transformación matemática,
el cálculo queda ampliamente reducido de un orden N2 a otro correspondiente al
número de imágenes de entrenamiento (el conjunto M).
Figura 2.3: Muestra los seis eigenfaces calculados a partir de las imágenes de entrada de la figura
anterior.
2.2.4 Clasificación de una imagen e identificación.
Los eigenfaces calculados en la sección anterior, parecen adecuados para describir
imágenes de rostros e identificarlas. Sin embargo, aunque el número de vectores
principales que se obtiene sea M, casi siempre se podrá alcanzar una buena
solución con una cantidad menor M’< M. No se necesita todos los vectores propios
puesto que la reconstrucción de imágenes no es uno de los requerimientos del
sistema. Sólo con estos M’ vectores se podrá construir un subespacio vectorial M’-
dimensional del espacio vectorial original N2-dimensional válido.
Se supone entonces que entra una imagen nueva (Γ) al sistema ya entrenado. Debe
ser transformada en sus componentes principales (eigenfaces) para obtener la
misma codificación que aquellas con las que se va a comparar. Dado que al entrenar
25
el sistema se substrajo previamente el valor medio a cada imagen, a esta nueva se
le debe aplicar el mismo proceso, y después proyectarla dentro del facespace.
(2,11)
Cada (ωk) es un peso, que viene a ser la coordenada en un sistema cartesiano
tradicional. Es decir, la contribución que hace el eigenface k en la representación de
la imagen. Todos los pesos correspondientes a una imagen forman el vector de
pesos de la misma:
(2,12)
Esto constituye un marco de trabajo típico de identificación de patrones. El vector de
pesos va a ser usado por un algoritmo sencillo de búsqueda para determinar si
alguna clase de las definidas se acerca a la que estamos evaluando. El método más
simple para decidir qué clase facilita la mejor descripción de la nueva imagen, es
encontrar la clase k que minimice la distancia Euclidiana:
(2,13)
Es decir:
(2,14)
26
La obtención del vector de pesos es el proceso equivalente a proyectar la nueva
imagen sobre el espacio vectorial de menor dimensión definido. Cualquier imagen,
facial o no, puede ser proyectada sobre este facespace obteniendo así un vector de
pesos. Se evaluaría primero la proyección de la imagen de una cara ya que, los
resultados que se obtienen, ayudan a explicar qué ocurriría si proyecta algo diferente
a una imagen facial.
Figura 2.4. Versión simplificada del facespace [Cootes 1995].
Dos eigenfaces (u1, u2), tres personas conocidas (Ω1, Ω2, Ω3) y 4 situaciones: 1)
cercano al facespace y a la clase 1; persona conocida. 2) cercano al facespace pero
lejos de cualquiera de las clases definidas; persona no conocida. 3) lejos del
facespace y dentro de una clase; falso positivo. 4) lejanía del espacio y de la clase;
no es una imagen facial.
Definiendo la distancia ε (siendo εk ≠ ε) como el alejamiento entre la nueva imagen y
las que pertenecen al facespace, se podría obtener un criterio discriminante de
pertenencia al mismo. Inicialmente es posible un proceso inverso de reconstrucción
de la imagen a partir de los eigenfaces:
(2,15)
Por otro lado, la imagen original estará siendo evaluada sin su valor medio:
(2,16)
27
Estas dos estimaciones, en una situación ideal de reconstrucción perfecta, deberían
de ser iguales. Por lo tanto y, ya que estamos en un espacio Euclidiano, podemos
usar su métrica para calcular la distancia entre ambos y proponer umbrales de
pertenencia al facespace.
(2,17)
En la implementación que se ha desarrollado para el robot de servicio
conversacional Golem II, se ha calculado el umbral de esta distancia estimando que
son las propias imágenes (con las que se ha construido este espacio vectorial) las
que deben definir en qué cantidad. Es decir, las M imágenes que se han utilizado,
tienen una distancia entre ellas y alguna debe ser máxima. Por lo tanto, es lógico
pensar que cualquier imagen que esté entre las entrenadas, debería tener una
distancia con las demás que no supere este alejamiento. Por ese motivo se ha
elegido como umbral la máxima distancia entre las imágenes del conjunto de
entrenamiento.
(2,18)
En la Figura 2.4 se pueden apreciar gráficamente las cuatro posibilidades de
pertenencia para una imagen de entrada a evaluar. En el primer caso se reconoce a
una persona y se identifica. En el segundo caso se reconoce la existencia de una
persona pero no se puede identificar: permanece desconocida al sistema. El tercer
caso es una cuestión típica de falso positivo.
28
2.3 Prueba ¿Who is Who? de la competencia RoboCup@Home.
RoboCup es un proyecto internacional con el propósito de promover, a través de
competencias integradas por robots autónomos, la Inteligencia Artificial y la robótica
inteligente. Este proyecto proporciona problemas estándar donde una amplia gama
de tecnologías que pueden ser integradas y examinadas. RoboCup contempla varias
ligas tales como: RoboCupSoccer, RoboCupRescue, RoboCupJunior y
RoboCup@Home. Esta última se centra en aplicaciones del mundo real y la
interacción hombre-máquina. El objetivo es fomentar el desarrollo de útiles
aplicaciones robóticas que pueden ayudar a los seres humanos en la vida cotidiana,
Está dividido en 2 etapas y la final. Cada etapa consiste en una serie de pruebas que
contiene problemas que se lleva a cabo en la vida diaria. La final es un desafío
abierto el objetivo es crear nuevas interfaces de comunicación humano-robot. En la
Figura 2.5 muestra los escenarios de la prueba Who is Who.
Esta investigación está basada en la reglas de la etapa I de la competencia
Robocup@Home del año 2010. La prueba I consiste en 5 pruebas: i) Robot
Inspection and Poster Sección: Su propósito es la presentación del equipo, la
apariencia del robot y las aportaciones tecnológicas e innovadoras del equipo y, ii)
Folle Me: Se centra en el reconocimiento y seguimiento de una persona
desconocida, en la interacción multimodal y en la navegación segura en un entorno
desconocido, iii) Go Get It: Se enfoca en la detección, reconocimiento y
manipulación de objetos, así como la navegación y búsqueda sistemática en un
entorno dinámico, iv)Open Challenge: Tiene como finalidad demostrar nuevos
enfoques y aplicaciones de valor científico, y v) Who is Who: Su objetivo es la
detección e identificación de personas desconocida para el robot y la navegación
segura en entornos diseñado para seres humanos.
29
a) b) c)
Figura 2.5: Imágenes de los diferentes escenarios de la prueba Who is Who.
2.3.1 Descripción.
Un robot debe ser capaz de reconocer personas de forma autónoma. El robot tendrá
que presentarse ante un grupo de personas, debe preguntarle su nombre,
memorizarlo y reconocer a las personas cuando se reúnan de nuevo.
Cincos personas conformarán el equipo que el robot será capaz de reconocer, serán
formado con dos integrantes del equipo del robot, dos elegidos aleatoriamente
(seleccionados por los jueces) y un desconocido.
Antes que empiece la prueba se les dará a los equipos esta información previa:
1. Una hora de la prueba se permite hacer un mapa del escenario.
2. Se dará una lista de 20 nombres de los posibles participantes.
3. La prueba dura 7 minutos.
4. El robot deberá entrar y salir por la puerta donde inicio de manera autónoma.
La prueba está dividida en dos etapas:
i. Inicio.
ii. Búsqueda en el escenario.
30
i. Inicio.
Dos personas entran por la puerta y se presentan al robot uno por uno.
El robot puede pedir a la persona que repita su nombre.
Después de que la persona dijo su nombre, el robot debe anunciar el nombre
que entendió.
Si el robot no entiende el nombre durante esta fase, aún puede utilizar el
nombre equivocado para identificar a la persona más tarde.
ii. Búsqueda en el escenario.
Cuando el robot encuentra a una persona, debe anunciar que la encontró y se
debe acercar de frente a ella. Tiene que reconocer a la persona indicando su
nombre o si es desconocida debe preguntar su nombre.
La distancia del robot a la persona no deberá ser superior a un metro.
La prueba termina cuando el robot encuentra todas las personas o deja de
buscarlas. El robot deberá salir por la puerta donde entró antes que termine la
prueba.
A continuación se muestran las i) puntuaciones y ii) sanciones de la prueba Who is
Who.
i. Puntuaciones.
Entender el nombre de las personas en la etapa de inicio .................... 2 x 25
Usando el micrófono de a bordo del robot ............................................. 200
La identificar una persona como humano............................................... 5 × 50
El reconocimiento de una persona conocida por su nombre.................. 4 × 75
Indicar correctamente a la persona desconocida…................................ 100
Abandonar el escenario en el plazo establecido…................................. 100
Abrir la puerta de salida autónomamente…........................................... 250
Excelente rendimiento…......................................................................... 100
31
ii. Sanciones.
No asistir a la prueba…............................................................................... 500
Utilizar el botón de paro…........................................................................... 50
Reconocer objetos, muebles o plantas como ser humano…...................... 150
Identificación incorrecta de una persona…................................................. 100
2.3.2 Objetivo.
Se enfoca en la detección, aprendizaje y reconocimiento de diferentes personas, en
la comunicación humano-robot y la navegación segura de entornos diseñados para
seres humanos.
2.3.3 Reglas.
Las reglas de RoboCup@Home 2010 son las siguientes:
Un equipo estará conformado por 10 personas.
Solamente 2 personas del equipo estará con el robot en el escenario.
El tamaño máximo del robot será: 1.80 metros de alto, 0.70 metro de ancho y
150 kilos.
El botón de emergencia debe estar visible y sin obstrucciones.
El robot deberá tener un botón de inicio, donde el juez podrá presionar al
inicio de cada prueba.
Los micrófonos y bocinas estarán incorporados al robot.
Los cables y dispositivos deberán ser cubiertos de manera atractiva.
El aspecto del robot debe ser amigable.
Todas las pruebas de la competencia deberán realizarse de manera
autónoma.
32
Capítulo 3
METODOLOGÍA
En este capítulo se presenta la metodología utilizada en esta investigación. Se
explica la detección de rostros. Además se detalla las mejores bases de datos de
rostros disponibles en la web. Por último se describe la construcción y desarrollo de
sistemas de diálogo multimodales.
33
3.1 Detección de rostros.
La detección del rostro es el primer paso en un sistema de reconocimiento facial.
Dada una imagen estática o un vídeo. Un identificador de rostros debe de ser capaz
de identificar y localizar todos los rostros independientemente de su posición, escala,
edad y orientación, la detección debe ser ajena, independientemente de las
condiciones de iluminación, así como el contenido de la imagen estática o vídeo.
El reconocimiento del rostro es una tarea que los humanos realizan rutinariamente y
fácilmente en sus vidas diarias. Desarrollar algoritmos capaces de hacer esta tarea
es uno de los desafíos fundamentales donde la investigación quiere llegar.
Diferentes subáreas y componentes abarcan el reconocimiento facial, detección,
seguimiento, alineamiento, extracción de rasgos, entrenamiento, identificación,
clasificación, análisis de expresión facial, análisis en 2 y 3 dimensiones entre otros.
Muchos de estos componentes comparten las mismas técnicas y algoritmos de
reconocimiento de patrones y análisis de imágenes a pesar que apuntan
aplicaciones distintas.
Algunos de los factores que afecta la detección facial, son la 1) escala, 2) la pose, 3)
iluminación, 4) la expresión facial y 5) la oclusión.
1. Escala.
En una imagen puede aparecer un grupo de diferentes escalas de rostros como
se puede apreciar en la Figura 3.1, el tamaño o escala de un rostro puede ser
tratado por un simple proceso de cambio de tamaño por deformación. Este
proceso de transformación requiere la localización de algunos puntos como los
ojos, la nariz, y boca.
34
Figura 3.1: Imágenes en diferentes escalas.
2. Pose.
El rendimiento de los sistemas de detección de rostro se ven afectados cuando
hay variaciones en la pose ver Figura 3.2, ya que la mayoría de los trabajos
están hechos para la detección del rostro frontal.
Figura 3.2: Imágenes con varias poses [María 2009].
3. Iluminación.
Los problemas creados por la iluminación se pueden apreciar en la Figura 3.3, en
la cual el mismo rostro con la misma expresión facial, y vista desde el mismo
punto de vista, se ve diferente debido a los cambios de iluminación, estos suelen
ser muy drásticos.
Figura 3.3: Rostro con diferentes iluminaciones [María 2009].
35
4. Expresiones faciales.
A diferencia de los efectos de escala, la pose y la iluminación, la expresión facial
puede modificar en forma significativa la geometría del rostro, como se muestra
en la Figura 3.4, las expresiones son significativas para la detección del rostro.
Figura 3.4: Rostros con distintas expresiones faciales.
5. Oclusión.
Es otro tema a confrontar para la detección facial, como lentes, bufandas todo lo
que pueda cambiar la apariencia del rostro como se muestra en la Figura 3.5.
Existen diferentes algoritmos para poder resolver este problema.
Figura 3.5. Rostros con oclusión [María 2009].
Viola y Jones presentaron un método rápido de detección de rostro basado en un
algoritmo en cascada usando descriptores simples llamados los descriptores de
Haar que pueden ser calculados de modo eficaz utilizando una representación
intermediaria de la imagen llamada imagen integral. Propusieron también un
procedimiento de clasificación a varias etapas, el cual reduce considerablemente el
36
tiempo de ejecución realizado casi con la misma exactitud con relación a un
algoritmo de clasificación monofase, que ciertamente es más lento y más complejo.
El principio de base del algoritmo de Viola y Jones es explorar una sub‐ventana
capaz de detectar rostros a través de una imagen de entrada. El acercamiento
estándar en procesamiento de imagen sería escalar la imagen de la entrada a
diversos tamaños y después convertir la ventana del detector en tamaño fijo en las
imágenes. Este acercamiento resulta ser bastante largo en tiempo de cálculo debido
al cálculo de las diversas imágenes en diferentes escalas.
Al contrario el acercamiento propuesto por Viola y Jones permite transformar en
diferentes escalas el detector en vez de la imagen de la entrada y de esta manera el
detector es aplicado muchas veces a la imagen, cada vez con un tamaño diferente.
Como se puede apreciar, ambos acercamientos son igualmente largos en tiempos
de cálculo, pero Viola y Jones han tenido la idea de un detector invariante de la
escala que requiere el mismo número de operaciones en cualquier escala. Este
detector se construye usando una imagen integral supuesta y algunas características
rectangulares simples derivadas de las wavelet (ondeletas) de Haar.
Todo proceso automático de detección y seguimiento de rostro debe tomar en
consideración varios factores que contribuyen a la complejidad de su tarea, porque
el rostro es una entidad dinámica que cambia constantemente bajo la influencia de
varios factores.
37
Figura 3.6: Etapas en la detección de rostros [Viola 2001].
En el mundo físico, hay tres parámetros que hay que considerar: i) la iluminación, ii)
la variación de postura y ii) la escala. La variación de uno de estos tres parámetros
puede influir considerablemente en los resultados de detección de rostro.
Siguiendo este esquema de la Figura 3.6, las tres últimas etapas son necesarias: el
pre‐procesamiento o tratamiento previo, la extracción de características y la decisión.
Como es sabido el método de Viola y Jones aplica escalas a grises a las imágenes,
la primera etapa describe el proceso que se aplica a la imagen en color. Las dos
siguientes etapas describen directamente el método de Viola y Jones.
Mundo físico: Rostros de las personas.
Cuantificación: Captura de la imagen por cámara.
Tratamiento previo: filtrado, cambio de tamaño y color.
Análisis: Extracción de características particulares.
Decisión: Medidas de similitud.
Resultado
38
3.1.1 Pre-procesamiento de imágenes, transformación a nivel de gris.
Este método basado en los descriptores de Haar, se aplica en imágenes en niveles
de gris. Para sistemas que funcionan con imágenes colores (la imagen y el vídeo
porque la detección se realiza en cada imagen de vídeo), es necesaria una etapa de
procesamiento previo que transformará los colores en niveles de gris. En la gran
parte de los casos, la imagen está representada en el espacio de los colores YUV.
En ese caso la imagen en nivel de gris correspondiente se deduce directamente de
la imagen original considerando únicamente la luminancia de cada píxel (Y). El
modelo YUV es un espacio de color en términos de una componente de luminancia y
dos componentes de crominancia. Es el modelo usado en los sistemas PAL y NTSC
de difusión de televisión, el cual es el estándar en la mayoría del mundo. El modelo
YUV está más próximo al modelo humano de percepción que el estándar RGB
usado en el hardware de gráficos por computadora, en la Figura 3.7 muestra la
conversión de YUV a RGB.
=
Figura 3.7: La conversión YUV a partir del modelo RGB [Viola 2001].
3.1.2 Escalado por Interpolación.
Otro procesamiento, que resulta útil, consiste en cambiar el tamaño de la imagen
para controlar mejor el tiempo de cálculo y el espacio memoria. Esta tarea se realiza
mediante uno de los métodos de interpolación. La interpolación puede considerarse
como el cálculo del valor de intensidad de un píxel, en una posición cualquiera,
como una función de los píxeles que lo rodea. Existen diferentes técnicas de
interpolación, entre los cuales los más utilizados en el procesamiento geométrico de
imágenes son: bilineal, vecino más cercano y bicúbica, en la Figura 3.8 se muestra
un ejemplo de esta última, donde se requiere del valor de los 16 puntos para calcular
el valor de punto central.
Y U V
0.299 0.587 0.114 -0.147 0.289 0.436 0.615 -0.515 -0.100
R G B
39
Figura 3.8: Interpolación bicúbica [Viola 2001].
3.1.3 Ecualización del histograma.
Es una transformación que pretende obtener, para una imagen, un histograma con
distribución uniforme. Es decir, que exista el mismo número de píxeles para cada
nivel de gris del histograma. La aplicación de esta operación debería transformar el
histograma en otro con una forma perfectamente uniforme sobre todos los niveles de
gris (ver Figura 3.9).
Figura 3.9: Ecualización del histograma H [Viola 2001].
Sin embargo, en la práctica esto no se va a poder conseguir pues se estaría
trabajando con funciones de distribución discretas en lugar de continuas. En la
transformación, todos los píxeles de un mismo nivel de gris se transformarán a otro
nivel de gris, y el histograma se distribuirá en todo el rango disponible separando en
lo posible las ocupaciones de cada nivel.
Se puede aplicar diferentes tipos de ecualización: 1) ecualización uniforme, 2)
exponencial, y 5) de Rayleigh. La librería OpenCV emplea la ecualización uniforme
según la expresión:
40
(3,1)
donde H(g) es el histograma.
El resultado de la ecualización maximiza el contraste de una imagen sin perder
información de tipo estructural, esto es, conservando su Entropía (información). Esta
operación constituye una regulación óptima y automática del contraste de la imagen
evitando los ajustes manuales, con los que no se consigue un equilibrio óptimo entre
el blanco y el negro, en la Figura 3.10 se ilustra un ejemplo, la fotografía de la
izquierda es la original, la imagen de la derecha con ecualización del histograma.
Figura 3.10: Mejoramiento del contraste por ecualización del histograma [Viola 2001].
3.1.4 Detección del borde mediante el algoritmo de Canny.
Algunas funciones de detección de rostro utilizan el detector del borde de Canny
para rechazar algunas regiones de la imagen que contengan demasiados o pocos
contornos, regiones que no puede contener el objeto buscado. El objetivo de este
procedimiento es acelerar el proceso de detección.
El algoritmo de Canny se considera uno de los mejores detectores del borde en
procesamiento de imágenes. Este algoritmo se fundamenta en la teoría de
operadores de la primera derivada, debido a que toma el valor de cero en todas las
regiones donde no varía la intensidad y tiene un valor constante en toda la transición
41
de intensidad. Por lo tanto un cambio de intensidad se manifiesta como un cambio
brusco en la primera derivada, característica que es usada para detectar un borde.
El detector de Canny resulta particularmente interesante porque extrae bordes y
cierra los contornos evitando posible rupturas de los mismos durante su extracción,
(ver Figura 3.11), este es desglosado en tres módulos:
Obtención del gradiente: en este paso se calcula la magnitud y orientación del
vector gradiente en cada píxel.
Supresión no máxima: en este paso se logra el adelgazamiento del ancho de
los bordes, obtenidos con el gradiente, hasta lograr bordes de un píxel de
ancho.
Histéresis de umbral: en este paso se aplica una función de histéresis basada
en dos umbrales; con este proceso se pretende reducir la posibilidad de
aparición de contornos falsos.
Figura 3.11. Detección del borde de Canny [Canny 1986].
3.1.5 Extracción de descriptores.
A partir de la imagen transformada en nivel de gris, redimensionada y con una
regulación óptima y automática del contraste, se realiza la extracción de
características o descriptores que van a constituir la entrada del sistema de
42
reconocimiento. Los descriptores son extraídos a partir de la imagen en nivel de gris
mediante la imagen integral. Se calcula la imagen integral de los cuadrados.
El valor de la imagen integral de los cuadrados al punto (x, y) es la suma de todos
los valores de píxeles al cuadrado situados encima y a la izquierda. La imagen
integral permite reducir considerablemente el tiempo de cálculo de los descriptores.
Lo mismo la imagen integral de los cuadrados es una representación de la imagen
que permite calcular el covariancia en una ventana muy rápidamente a partir de
cuatro referencias solamente.
3.1.6 Block de decisión.
La imagen integral y la función de clasificación son las entradas de un bucle. A cada
iteración, la ventana de barrido será redimensionada; siendo más precisos, será
aumentada por un factor bien escogido de escala. Por consecuencia, los datos de la
función de clasificación deben ser adaptados a este cambio.
La adaptación principalmente consiste en redimensionar los rectángulos de Haar
proporcionalmente al tamaño de la ventana. Este bucle garantiza la detección de
rostro a toda escala, pues su parámetro principal es el factor de escala. Este
parámetro generalmente es entre un rango de 1.1 a 1.4.
A fin de poder localizar los rostros en todo emplazamiento de la imagen, esta
ventana debe recorrer toda la imagen. Por consecuencia, un bucle imbricado se
impone, y cuyo paso es el parámetro determinante. A cada iteración, un algoritmo de
decisión se ejecuta.
43
Figura 3.12. Resumen del funcionamiento del método de detección de rostro [Canny 1986].
3.1.7 Descriptores de Harr.
El valor de un punto de la imagen solo nos informa sobre el color en este punto. Una
técnica más elaborada es encontrar detectores basados en características más
globales del objeto. Es el caso de los descriptores de Haar. Estos descriptores son
funciones que permiten acentuar la diferencia de contraste entre diferentes regiones
rectangulares adyacente en una imagen. Es una manera de codificar los contrastes
existentes entre un rostro y las relaciones espaciales.
Un descriptor como se muestra en la Figura 3.12 es representado por un rectángulo
definido por su vértice, su altura, su longitud y sus pesos (negativo o positivo, de
cada rectángulo).
Hay muchas motivaciones para el uso de los descriptores más bien que los píxeles
directamente: el sistema fundado sobre los descriptores es más rápido que un
sistema fundado sobre los píxeles ver Figura 3.13.
44
Figura 3.13. Representación de un descriptor [Viola 2004].
Los descriptores simples utilizados son inspirados por las funciones de base de Haar
que han sido empleados por Papageorgiou [Papageorgiou 1998]. Más
específicamente, Viola y Jones emplearon tres tipos de descriptores (Figura 3.14).
Un descriptor a dos rectángulos es la diferencia entra la suma de los píxeles
de ambas regiones rectangulares. Las regiones tienen el mismo tamaño y
forma y están horizontalmente o verticalmente adyacentes.
Un descriptor a tres rectángulos, es la suma de los píxeles en ambos
rectángulos exteriores sustraídos por la suma en el rectángulo central.
Un descriptor a cuatro rectángulos es la diferencia entre los pares diagonales
de los rectángulos.
Figura 3.14. Los tres tipos de descriptores de Harr [Viola 2004].
Lienhart et Maydt [Lierhart 2002] han propuesto una extensión de estos descriptores
incluyendo unos sometidos a una rotación de 45 grados (Figura 3.15).
45
Figura 3.15. Extensiones de los descriptores de Haar [Lierhart 2002].
Como ejemplo, en el caso que el tamaño de la ventana de base (imagen en entrada)
ha sido fijado sobre 24 × 24, este método utiliza un número grande de descriptores
(45396 descriptores según Viola y Jones). Así el número de descriptores es
considerablemente más grande que el espacio de la imagen (en este caso 576
píxeles).
3.1.8 Imagen integral.
Los descriptores rectangulares pueden ser calculados de modo eficaz utilizando una
representación intermediaria de la imagen llamada la imagen integral. Esta imagen,
resultado del trabajo publicado por Crow [Crow 1984], es obtenida a partir de un
algoritmo que permite generar de manera eficiente y rápida la suma de los valores
de un rectángulo adentro de una imagen.
La imagen integral es una matriz del mismo tamaño que la matriz de la imagen
original donde cada elemento de la Imagen Integral a la posición (x, y) contiene la
suma de todos los píxeles localizados en la región superior izquierda de la imagen
original (Figura 3.16).
46
Figura 3.16. El valor de la imagen integral al punto (x,y) [Crow 1984].
(3,2)
II(x,y) es la imagen integral y I(x,y) es la imagen original. Usando las siguientes
operaciones:
(3,3)
(3,4)
Donde S(x,y) es suma acumulada en línea y S(x,-1) = 0 y II(-1,y) = 0
Así la imagen integral puede ser calculada en un solo barrido sobre la imagen
original. Utilizando esta representación cualquier suma de píxeles en un rectángulo
correspondiente a un descriptor puede ser calculada a partir de cuatro referencias
solamente por la imagen integral.
Figura 3.17. Región calculada a partir de varias referencias [Crow 1984].
47
La suma del Píxel en el rectángulo D puede ser calculada con solamente cuatro
referencias. El valor de la imagen integral en el lugar 1 es la suma del Píxel en el
rectángulo A. El valor en el lugar 2 es A + B, en el lugar 3 es A + C, y en el lugar 4 es
A +B + C + D.
La Figura 3.17 muestra que la diferencia entre dos sumas de píxeles en una región
rectangular puede ser calculada a partir de ocho referencias. Ya que el descriptores
a dos rectángulos definidos anteriormente son por definición adyacentes, eso implica
que pueden ser calculados por seis referencias solamente de la imagen integral,
ocho en el caso el descriptores a tres rectángulos, y nueve para descriptores.
3.2 Base de datos de rostros.
En capítulo 2 se explicó detalladamente los problemas en el reconocimiento de
rostros tales como la iluminación, la oclusión, la postura del rostro, la expresión
facial, etc. El desarrollo de algoritmos robustos a estas variaciones requiere bases
de datos de tamaño suficiente para que incluya las variaciones cuidadosamente
controlado de estos factores. Por otra parte, bases de datos comunes son
necesarias para evaluar comparativamente los algoritmos, ver la Tabla 3.1. La toma
de una base de datos de alta calidad es una tarea intensiva en recursos: pero la
disponibilidad de bases de datos de imagen pública es importante para el avance del
campo.
Tabla 3.1: Descripción de las condiciones de grabación de las mejores bases de datos disponibles en la red.
Nombre de
la base de
datos
Número de
imágenes
Número de
poses
Iluminación
Números de
expresiones
Tiempo en
horas
AR 116 1 4 4 2
BANCA 208 1 ++ 1 12
CAS_PEAL 66-1040 21 9-15 6 2
CMU Hyper 54 1 4 1 1-5
CMU PIE 68 13 43 3 1
Equinox IR 91 1 3 3 1
48
FERET 1199 9-20 2 2 2
Harvard RL 10 1 77-84 1 11
KFDB 1000 7 16 5 1
MIT 15 3 3 1 1
MPI 200 3 3 1 10
ND HID 300 1 3 2 1
NIST MID 1574 2 1 ++ ++
ORL 10 1 ++ ++ 1
UMIST 20 ++ 1 ++ 1
U. Texas 284 ++ 1 1 1
U. Oulu 125 1 16 ++ 4
XM2VTS 295 ++ 1 1 1
Yale 15 1 3 ++ 1
Yale B. 10 9 64 6 1
En la primera columna describe la cantidad de imágenes de rostros. En la siguiente
columna se muestra el total de poses del usuario hacia la cámara. La posterior
columna muestra la cantidad de iluminación medida en lux cuando se grabó la base
de datos. La penúltima columna dice el total de posiciones faciales. Finalmente en la
última columna se muestra la duración de la captura de la base de datos.
3.3 Construcción y desarrollo de sistemas de diálogo multimodales.
Los sistemas de diálogo son sistemas computacionales desarrollados para
interactuar a través del lenguaje con los seres humanos. Esta sección tiene como
objetivo presentar los elementos que conforman los sistemas de diálogo, así como el
marco conceptual de su desarrollo tal y como se lleva a cabo en el Instituto de
Investigaciones en Matemáticas Aplicadas y en Sistemas. Para ello se tomó como
base el trabajo que se ha desarrollado en el contexto del proyecto Diálogos
Inteligentes Multimodales en Español (DIME), desarrollados en el Departamento de
Ciencias de la Computación (DCC) del IIMAS.
49
La descripción de los sistemas de diálogo va unida a la descripción de la
arquitectura cognitiva al amparo éstos se conciben para estructurar los procesos
computacionales.
Los modelos de diálogo constituyen abstracciones que permiten representar de
manera genérica protocolos conversacionales. Por último se explica el enfoque que
guía la forma en la que se conciben y construyen las conversaciones. Este enfoque
concibe las conversaciones como transacciones construidas con aportaciones que
realizan en turnos intercalados el agente y el usuario durante la conversación, las
cuales deben estar “balanceadas” para que se dé la comunicación.
3.3.1. Sistemas de diálogo y la arquitectura cognitiva.
Los sistemas computacionales desarrollados para interactuar con seres humanos
sedenominan sistemas de diálogo. De acuerdo con James Allen [James 2000], la
visión de lo que debe ser el alcance o la complejidad de la interacción ha ubicado a
los investigadores en dos grupos; por un lado están aquellos para quienes la
interacción implica una acción limitada, entendiendo como limitada la característica
de aquellos sistemas en los que el lenguaje y su uso se conciben como escasos.
Pone como ejemplo de este tipo de aplicaciones, aquellos sistemas utilizados en los
conmutadores en donde el usuario debe presionar la tecla “1” o decir “uno”. En
el extremo opuesto, ubica a aquellos investigadores cuya motivación en el desarrollo
de sistemas de diálogo es imitar, en la medida de la posible, una conversación tal y
como la mantienen los seres humanos, por lo que buscan expandir las opciones de
los usuarios durante la interacción.
Las aplicaciones que se desarrollan en el DCC del IIMAS, comparten los motivos del
segundo grupo, aunque la comunidad investigadora reconoce que en el corto plazo
no hay posibilidades de emular todas las competencias humanas que intervienen
para el desarrollo de una conversación, existe la convicción y la experiencia de que
es posible desarrollar sistemas que en un contexto determinado, además de
solucionar tareas específicas, utilicen el lenguaje con una variedad de fines para
50
reconocer las intenciones del usuario, por ejemplo, permitan a éste tomar la iniciativa
de la conversación para acelerar la solución de una tarea sin dejar de asegurar la
comunicación.
Cuando se habla de conversaciones y aplicaciones cuyo fin es solucionar una tarea
específica, como obtener información del usuario o solucionar un problema en un
contexto específico, hablamos de diálogos prácticos. En los diálogos prácticos las
competencias conversacionales requeridas son significativamente más simples de
alcanzar, comparadas con la competencia humana general para la conversación.
Las aplicaciones que se desarrollan en el DCC constituyen diálogos prácticos, es
decir, se trata de aplicaciones desarrolladas para ejecutar una tarea determinada en
un contexto previamente especificado utilizando un lenguaje con una variedad de
fines. En los diálogos prácticos, la complejidad de la interpretación y el manejo del
lenguaje son independientes de la tarea que se ejecuta.
Otra característica que distingue las aplicaciones que desarrolla el DCC de lIIMAS,
es que éstas están diseñadas con el objetivo de interactuar de manera activa con el
mundo y con los seres humanos, lo que ha dado lugar a una arquitectura cognitiva
[Luis 2010].
Esta arquitectura comparte algunos aspectos con la arquitectura cognitiva llamada
Beliefs, Desires and Intentions (BDI), creencias, deseos e intenciones [Luis 2011],
ha sido el resultado de una intensa actividad de investigación para combinarla
percepción de los estímulos de las personas, el pensamiento, la acción y la
interacción con el mundo. Para fines de este trabajo esta arquitectura nos permite
acotar las capacidades de los agentes, dar orden y sentido a los elementos que
intervienen en la construcción y funcionamiento de lasaplicaciones, tal como se
puede observar en la Figura 3.18.
51
Figura 3.18: Arquitectura cognitiva [Luis 2010].
En este diagrama están representados por una parte el mundo real, y por otra con
los diversos módulos que en un sistema están asociados con la percepción, el
pensamiento y la acción. En este sistema cada módulo tiene una función específica.
Si se sigue el curso marcado por las flechas puede observarse que el diagrama
conforma un círculo, ciclo que se recorre cada vez que hay una interacción entre
el sistema y el mundo.
El reconocimiento y la interpretación corresponden a la percepción. El
reconocimiento es el proceso mediante el cual el sistema capta, a través de algún
dispositivo, la información del mundo y la traduce en una imagen o un código
específicos, dependiendo del dispositivo utilizado. El producto del reconocimiento es
un código o una imagen no interpretada; es decir, en el caso del lenguaje, el sistema
de reconocimiento de voz produce texto en un formato particular, sin otorgar
interpretación alguna. Existen distintos dispositivos de interacción, como pueden ser
los dispositivos de navegación, visuales o sonoros; cada uno capta y genera códigos
a procesarse a través de algoritmos específicos correspondientes a cada
modalidad.
52
En el siguiente nivel de percepción encontramos el intérprete, encargado de traducir
las imágenes o códigos captados por el reconocedor y de traducirlos en el marco de
las expectativas y del contexto conocidos y de limitados en función de la tarea
específica a realizar. El intérprete entrega imágenes interpretadas.
Los módulos que corresponden a la memoria perceptual y semántica toman estos
nombres porque cumplen funciones semejantes a las que cada una de éstas tiene
con la memoria humana. La memoria perceptual está formada por una serie de
asociaciones entre la interpretación (significado) y las imágenes o códigos no
interpretados que el intérprete utiliza al momento de realizar su función. La memoria
semántica se refiere al conocimiento de las palabras, de su significado, de los
conceptos y de sus relaciones, cuando tal conocimiento no está ligado al contexto
espacio temporal de su adquisición.
Estos conjuntos de imágenes y significados se crean basados en las necesidades
del contexto y la tarea específica a solucionar, y se cargan en el sistema con
anticipación, utilizando los mismos dispositivos de reconocimiento con los que
cuenta la aplicación. La información se guarda en la memoria, tomando el orden de
la serie de expectativas que espera se cumplan a lo largo de la conversación, de tal
forma que la interpretación adecuada pueda ser recuperada en la situación
particular en la que esta información deba ser interpretada. La memoria episódica
almacena información de hechos, como nombres de personas o conceptos, no
asociados a ninguna otra memoria en particular.
Los módulos de especificación y respuesta corresponden a la acción o interacción.
La respuesta, al igual que el reconocimiento, está acotada por la serie de
dispositivos que tenga para su uso la aplicación.
3.3.2 Modelos de diálogo.
Una vez definidos los sistemas de diálogo y la relación que guardan con la
arquitectura cognitiva que guía el desarrollo de aplicaciones en el DCC‐IIMAS, se
53
procederá a explicar la noción de los modelos de diálogo. Los modelos de diálogo
constituyen abstracciones que permiten esquematizar los protocolos
conversacionales que se utilizan de manera recurrente. Estos esquemas permiten
representar las situaciones, las intenciones, las expectativas y las acciones que
ocurren en el transcurso de una conversación en aplicaciones desarrolladas para
ejecutar una tarea determinada en un contexto previamente especificado.
Los modelos de diálogo se definen a partir de por lo menos dos situaciones; una
situación inicial (Si) y otra final (Sj). Gráficamente, cada situación se representa por
un nodo y los nodos se relacionan a través de vínculos. Cada vínculo está formado
por una expectativa a satisfacer (α) y por las acciones a realizar una vez satisfecha
la expectativa (β). Una vez cumplida la expectativa y realizada la acción, el sistema
pasa de la situación inicial Si a la situación Sj, como se ilustra en la Figura 3.19.
Figura 3.19: Representación gráfica de los modelos de diálogos [Luis 2010].
Además de la situación inicial y la situación final, que no indican más que el inicio y
fin del protocolo, los modelos cuentan con un número variado de situaciones
intermedias que representan, cada una, parte de las acciones que se deben realizar
para solucionar la tarea global.
Las expectativas y acciones pueden estar vacías o ser concretas. Por ejemplo, si el
sistema despliega una imagen con dos botones para dos diferentes acciones cada
vez que se inicia, no esperará ninguna acción del usuario; haga o no haga nada,
el sistema desplegará la imagen con el saludo cada vez que se inicie y llegará a la
siguiente situación, donde esperará que se cumpla la expectativa siguiente.
Si Sj
α : β
54
Las expectativas y las acciones, cuando son concretas, pueden adoptar cualquiera
de las modalidades que sea mencionado, es decir, dependerán de los dispositivos
disponibles y podrán adoptar una acción perceptible al usuario en forma de texto,
lenguaje, una imagen, movimiento o una acción no perceptible como resolver un
problema mediante un cálculo interno.
Esta representación de las acciones, toma como premisa el concepto de acto del
habla introducido por Austin y posteriormente desarrollado por Searle [Luis 2010].
De acuerdo con esta visión, las acciones lingüísticas y las motoras son igualmente
acciones con efectos en el ámbito del conocimiento o en el físico, respectivamente.
En este sentido, las intenciones podrán expresarse con oraciones gramaticalmente
correctas, con frases sueltas, con interjecciones o simplemente con algún gesto, y la
interpretación consistirá en comprender la intención del hablante,
independientemente de la manera que haya elegido para expresarse [Luis 2011].
Una vez que el sistema atraviesa de una situación inicial a una subsecuente,
mediante el cumplimiento de expectativas y la realización de acciones, se irán
sucediendo una serie de situaciones que juntas conforman la conversación o la
interacción. La historia de la travesía del sistema por las distintas situaciones
queda guardada en el sistema, constituye el contexto específico de la conversación
y puede recuperarse cada vez que sea necesario.
La representación de los modelos de diálogo puede adquirir diversos grados de
complejidad; por ejemplo, cuando la acción se especifica con predicados que
incluyan variables o funciones. En el primer caso, el sistema ha requerido al usuario
su nombre, la expectativa es que escuche el nombre y la acción, es de confirmar si
el nombre que escucho es el correcto, ver la Figura 3.20.
Figura 3.20. Ejemplo del modelo de diálogo que incluye una variable en las expectativas y acciones.
Si Sj
nombre (Nombre):confirmar (Nombre)
55
Tabla 3.2: Golem II- Prueba Who is Who: Ejemplo nombre.
Golem II ¿Cómo te llamas?
Usuario Me llamo Ángel
Golem II Escuche Ángel ¿Es correcto?
Cuando la acción cambia con base en la historia de la conversación, es posible
utilizar funciones para especificar la expectativa y la acción correspondiente, la
cual dependerá del resultado del cálculo de la función. Supongamos la misma
situación anterior, en la que el sistema le pide al usuario diga su nombre. Si el
usuario dice el nombre y el sistema no percibe ningún sonido, le pedirá que repita
nuevamente la información. Si después de, por ejemplo, cuatro repeticiones, el
sistema sigue sin percibir sonido, informará al usuario que no puede seguir
interactuando, debido a que hay un problema mayor.
Por ello, antes de solicitar al usuario que repita su nombre, deberá recuperar la
historia y contar las veces que ha solicitado al usuario repita la información para
volver a solicitarla o dar el aviso correspondiente y proceder a la salida. En la Figura
3.21, el punto representa la función que hace el cálculo mencionado.
Figura 3.21. Ejemplo del modelo de diálogo que incluye una función.
Si Sj
nombre(Nombre):confirmar(Nombre)
Sk
no_escucha: puedes repetir
salida
56
Tabla 3.3: Golem II - Who is Who: Ejemplo de reparación con voz.
Golem II ¿Cómo te llamas?
Usuario
Golem II ¿Puede repetirlo?
Usuario
Golem II ¿Puede repetirlo?
Usuario
Golem II ¿Puede repetirlo?
Usuario
Golem II Salida
Conforme al concepto de los actos del habla, las expectativas y las acciones pueden
adoptar distintas modalidades. No obstante, existe la posibilidad de indicar el tipo de
modalidad perceptual que está involucrada en cada una de las situaciones,
dependiendo del tipo de dispositivos con que cuenta la aplicación. Las etiquetas
visión (v), walking (w) o listening (ls), indicarán la modalidad correspondiente, según
sea el caso. Otras etiquetas usadas recuentemente son neutral (n), utilizada cuando
la expectativa está vacía o final (fs) para señalar el fin del protocolo.
La representación de los modelos de diálogo es una abstracción que trata de ser
simple, aunque las tareas representadas no lo sean. Existen situaciones llamadas
recursivas, las cuales contienen modelos de diálogo completos embebidos y
subordinados, de tal forma que cuando el sistema llega a una situación recursiva,
recorre el modelo completo, una vez terminado regresa al modelo original y continúa
hasta llegar a la situación final, ver la Figura 3.22.
57
Figura 3.22: Estructura de la tarea de la prueba Who is Who.
Esta facilidad de representación, refleja la facilidad para construir las aplicaciones en
forma modular y para utilizar y reutilizar algún módulo en la misma aplicación o en
otra, conforme se vaya necesitando.
3.3.3 Estructura de la conversación.
La idea principal de presentar los elementos más representativos de una teoría de la
estructuración de diálogos, es que constituye el tercero de los sustentos teóricos
más importantes en el desarrollo de aplicaciones y en la especificación de sistemas
multimodales inteligentes que se lleva a cabo en el DCC-IIMAS.
La teoría toma como base los conceptos de estructura conversacional, obligaciones
y acuerdo común, los cuales cuentan con una larga tradición de estudio en la
filosofía, la lingüística, la psicología y la inteligencia artificial, así como en los trabajos
de investigación que se llevaron a cabo para el análisis de la estructura de diálogos
orientados a resolver tareas y el esquema de transcripción y clasificación [Luis
2009].
SSii
RB RP RS
FS
E: Saludo
ok_autorización:introducir_escenario Terminado: ya termine
Despedida: salir Fi()
E: Verificar_tiempo
Fj() Puntos _búsqueda : verificar
no_hay_persona: salir
58
Esta teoría sostiene que una conversación está formada por una serie de
transacciones que tienen como fin la resolución de una tarea. Las transacciones se
forman con actos del habla de los participantes. Los actos del habla pueden tener
distintas funciones, por ejemplo, solicitar una información o pedir al interlocutor que
realice una acción motora o mental. Estos actos reciben, para fines computacionales
y en el marco de la modelación de diálogos prácticos, el nombre de “tipos de actos
del habla” y se manejan como un conjunto finito en un dominio del imitado [Luis
2009].
La teoría toma prestadas las reglas y la terminología contable, en la conducta
conversacional, cuando uno de los participantes en una conversación hace una
solicitud, un requerimiento, un compromiso o una oferta, crea un cargo que deberá
ser satisfecho con un acto del habla para recobrar el equilibrio.
Estas pequeñas estructuras compuestas por actos del habla que se relacionan a
partir de la especificación de una intención por parte de un agente y la satisfacción
de esa intención por parte del oyente se denominan obligaciones y representan
el propósito global de una conversación (Tabla 3.4).
Tabla 3.4: Golem II - Who is Who: Ejemplo de reparación con voz.
Cargo Abono Participante
Solicitud de la información Respuesta Otro
Requerimiento de acción Acción Otro
Compromiso Acción Mismo
Oferta Acción Mismo
En una conversación ideal cada acto del habla se entiende en cuanto se ejecuta y
existe un acuerdo o un “piso común” entre los participantes durante toda la
conversación. Sin embargo, en la vida real, en una conversación espontánea, el
flujo de comunicación se interrumpe frecuentemente por lo que una buena cantidad
de elocuciones son necesarias para reparar y restablecer el flujo y proseguir la
conversación.
59
El acuerdo entre los dos participantes en una conversación, también llamado piso
común o acuerdo común, puede romperse por dos razones: por una falta de acuerdo
entre los participantes, porque uno de los participantes no está de acuerdo con todo
o parte del contenido expresado en la conversación; o por problemas de
entendimiento, ya sea porque el mensaje no es claro debido a alguna interferencia,
como el ruido. En este caso el agente se ve en la necesidad de reafirmar la base de
acuerdo en la conversación.
En el plano del acuerdo común se ubican los actos del habla a través de los cuales
los participantes en una conversación detienen el flujo de la conversación para
asegurar que comparten creencias, intenciones y que han entendido la
comunicación de la contraparte (Tabla 3.5).
Tabla 3.5: Relaciones de balance en el plano de los acuerdos.
Cargo Abono Participante
Solicitud de información Acuerdo-Acción-Afirmación Otro
Requerimiento de acción Acuerdo-Acción Otro
Oferta Acuerdo-Acción Otro
Opción abierta Acuerdo-Acción Otro
Afirmación Acuerdo-Acción Otro
Reafirmación Acuerdo-Acción Otro
Referencia vaga Reparación Mismo / Otro
Referencia ambigua Solución Mismo / Otro
Acto de entendimiento Elocución siguiente o actual Otro
Señal no comprensible Elocución siguiente misma señal Otro
Otro elemento importante a considerar cuando se habla de la construcción de
diálogos prácticos en un dominio específico es el contexto. Por el contexto de una
conversación se entenderá por una parte, un espacio, un tiempo, un tema, una serie
de conceptos relevantes, creencias, deseos e intenciones que los interlocutores
comparten en cierta medida; por otra parte, también se considera como parte del
contexto los actos del habla que van surgiendo durante la conversación y que no
sólo forman la historia de la misma y que son importantes para dar significado a los
actos lingüísticos y mantener la conversación, ya que la condicionan.
60
Una vez que se cuenta con una arquitectura cognitiva, con un objetivo global que la
tarea específica debe cumplir, con los objetivos parciales claros, un dominio del
lenguaje delimitado por el contexto, la técnica de los modelos de diálogo y el
conocimiento de la estructura conversacional, quedará todavía pendiente definir la
estrategia de la conversación.
La estrategia de la conversación y el modo elegido para transmitir un mensaje son
independientes de la estructura; es decir, si la estructura de la conversación que
utilizo establece en un momento dado la acción “saludo”, se puede utilizar no sólo
dos modalidades distintas, como vimos en unejemplo anterior, sino dos mensajes
también diferentes, como se muestra en la Tabla 3.6
Tabla 3.6: Diferentes representaciones de saludo en una conversación.
Participante Mensaje Participante Mensaje
Golem II ¡Hola! Golem II Hola todo, me llamo Golem estoy participando en la prueba who is who de robocup at home
Se ilustrará este hecho con otro ejemplo, retomando el diálogo que se utiliza para
ejemplificar el uso de las funciones como parte de las expectativas y las acciones.
De acuerdo con la estructura y estrategia definidas, el sistema requerirá hasta cuatro
veces a un usuario que repita la información cuando no reciba señal alguna. En el
ejemplo anterior, el sistema preguntó el nombre al usuario y se utilizó cuatro veces
la misma respuesta ¿Podrías repetirlo? Utilizando cuatro mensajes distintos, el
usuario repetirá igualmente la información requerida, pero elefecto del mensaje
será distinto, ver la Tabla 3.7.
61
Tabla 3.7: Golem II - Who is Who: Ejemplo de reparación con estrategia.
Golem II ¿Cómo te llamas?
Usuario
Golem II ¿Puede repetirlo?
Usuario
Golem II Estoy sordo y no escucho ¿Cuál es tu nombre?
Usuario
Golem II Lo siento necesito lavarme las orejas ¿Que me dijiste?
Usuario
Golem Estoy hablando solo, mejor me retiro
3.3.4 Robot Golem II.
Golem II es un robot de servicio que tiene como objetivo estudiar la integración de la
información multimodal (visual, de movimiento y de lenguaje natural) en español
hablado para su navegación en un ambiente de oficina.
Todo el sistema de Golem II esta implementado como un conjunto de agentes
computacionales, cada uno de los cuales corresponde a una modalidad de
información, ya sea de entrada o de salida, ver la Figura 3.23. Los agentes son:
Manejador de diálogo: Es el componente central de esta arquitectura. Es
responsable de la gestión de la conversación entre el usuario humano y el
robot. El gestor de diálogo (DM) realiza las siguientes tareas: a) interpreta los
modelos de diálogo, b) analiza los rastros del estado, c) el contexto de la
conversación, d) define las intenciones previstos para cada estado, e) genera
la respuesta adecuada y coordina todos los agentes que componen el
sistema.
Agente de navegación: Golem II navega en un mundo 2D asumiendo
conocimientos previos acerca de la posición de cada anunciante.
62
Agente de comprensión del habla: Se componen en los siguientes módulos:
a. El reconocimiento de voz: El reconocedor automático del habla en
español se basa en el proyecto DIME100. Las expresiones regulares
son usadas para extracto de las intenciones de espera de cada
enunciado.
b. La síntesis de voz: La voz de Golem II se ha generado utilizando
Mbrolay el texto Festival-to-speech software.
Agente de la visión: Tareas de visión incluyen reconocimiento de caras,
reconocimiento de gestos, la visión basada localización, y reconocimiento de
objetos.
Figura 3.23. Arquitectura de Golem II [Luis 2009].
Arquitectura
Arquitectura del sistema de diálogos
Manejador del diálogo
Agente de visión Agente de Compresión del habla
Agente de Navegación
Nivel de coordinación
Agentes de compresión y percepción
Secuencia de imágenes
Reconocimiento de voz Síntesis de voz
Motores del robot
63
3.3.4.1 Hardware.
Golem II es robot de la compañía PeopleBot (TM), ver la Figura 3.24. A continuación
se detalla los componentes físicos de este robot.
Tres arreglos de sonares con ocho sensores cada arreglo.
Dos sensores de infrarrojos de protección en el frente.
Un Gripper con 2 grados de libertad en la viga de descanso.
Dos romper vigas verticales.
Dos arreglos de protección de parachoques con cinco sensores cada uno.
Doble micrófonos y altavoces.
Una Computadora interna VersaLogic EBX-12.
Una Laptop externa Dell Latitude E6400.
Una Cámara estéreo Videre STH-MDCS,-VAR.
Un láser marca Hokuyo modelo UTM-30LX.
Una cámara monocular Canon PTZ modelo VCC5.
Una cámara web QuickCam Pro 9000.
Una Base omnidireccional micrófonos Shure x2.
Un condensador de micrófono direccional M-Audio.
Una tarjeta externa de sonido M-Audio Fast Track.
Un altavoces de dos vías de 3.5 pulgada.
Figura 3.24: Robot Golem II y sus componentes físicos [Luis 2010].
64
3.3.4.2 Software y librerías.
Librerías y software que usa el robot Golem II.
1. Librería OpenCv (Open sourse Computer Vision Library). Nos permite el
tratamiento de imágenes, destinadas principalmente aplicaciones de visón por
computadora en tiempo real, por ejemplo sistema de reconocimiento de
gestos y objeto.
2. Servidor Player/Stage. Es un simulador en 2D de las actividades programadas
que realizaría el robot, por ejemplo sistema de navegación entornos
complejos.
3. Compilador GCC (GNU Compiler Collection includes), MakeFile y DDD (Data
Display Debugger). GCC. Es un software libre que contiene un conjunto de
compiladores(c, c++, Ada, fortran, java, etc). MakeFile son los ficheros de
texto que utiliza make para llevar la gestión de la compilación de programas.
DDD es una interfaz de usuario gráfica para depuradores en línea de
comandos.
4. Sistema operativo Linux plataforma Ubuntu.
65
Capítulo 4
EXPERIMENTOS Y RESULTADOS
En esta sección se describe la experimentación que se le realizó al sistema de
reconocimiento de rostros. En primer término, se presenta el plan de pruebas y se
describe la plataforma de experimentación, posteriormente se describen los
experimentos realizados, se muestran los resultados obtenidos y se realiza el
análisis de los mismos.
66
4.1 Plan de pruebas.
El plan de pruebas que se desarrolló para evaluar al sistema de reconocimiento de
rostros se ilustra en la Figura 4.1. En el experimento 1, su finalidad fue obtener una
evaluación del desempeño del reconocedor de rostros utilizando la base de datos de
AT&T de la universidad de Cambridge. En el experimento 2, su objetivo fue evaluar
el reconocedor de rostros a diferentes cambios de iluminación en el ambiente. En el
experimento 3, su propósito fue analizar el control de la distancia del usuario a la
videocámara. En el experimento 4 se expone la aplicación del sistema de
reconocimiento de rostro en un robot móvil.
Figura 4.1. Plan de pruebas de la experimentación.
Con la finalidad de determinar cuál es la eficiencia del sistema de reconocimiento de
rostros a diferentes cambios de iluminación, distancia del usuario a la videocámara y
base de datos se utilizó la métrica de evaluación llamada matriz de confusión. En la
Tabla 4.1 se muestra un ejemplo. Esta matriz tiene dos clases, A y B, donde a
corresponde al número de muestras de la clase A clasificadas correctamente como
A y b al número de muestras de la clase B reconocidas correctamente como B; c y
d corresponden a los errores de clasificación de las muestras de A y B,
respectivamente. A partir de esta matriz de confusión puede calcularse el porcentaje
de reconocimiento de los experimentos para estimar la eficiencia del reconocedor de
rostros. Esta medida también llamada exactitud, se define en este documento de la
siguiente manera:
Experimento 3: Analizar el control de distancia del usuario a la videocámara
Experimento 1: Evaluación del desempeño del reconocedor de rostros utilizando una base de datos AT&T
Experimento 2: Evaluar el reconocedor de rostros con diferentes cambios de iluminación en el ambiente
Experimento 4: Aplicación del sistema de reconocimiento de rostros en un robot móvil
67
(4,1)
donde el total de rostros correctamente clasificados es la suma de los números
sobre la diagonal de la matriz de confusión y el total de rostros de prueba,
corresponde al número total de rostros que se utilizaron para la clasificación.
Tabla 4.1: Ejemplo de una matriz de confusión con dos clases, A y B.
Cla
se r
eal
Salida del clasificador
A
A B
a c
B d b
Cada renglón corresponde a las muestras de un rostro particular presentadas. Las
columnas corresponden a la salida de la clasificación.
4.2 Plataforma experimental.
El sistema de reconocimiento de rostro fue codificado en el lenguaje ANSI C, bajo el
compilador Gcc, además, se utilizó la librería de visión computacional OpenCv. Para
el experimento 1 se utilizó una computadora Dell Dimensión 8300 con procesador
Pentium 4 a 2.6 GHZ, memoria RAM de 512 MB y disco duro de 60 GB con Sistema
operativo Ubuntu 9.10. En el segundo y tercero experimento se utilizó una laptop
Dell Inspiron 1525 con un procesador CoreTM 2 duo a 1.83 GHZ, memoria RAM de 2
GB y disco duro de 120 GB con Sistema Operativo Ubuntu 10.04, también se utilizó
una webcam Logitech Pro 9000 para la grabación del vídeo. En el último
experimento se utilizó al robot Golem que cuenta con una laptop Dell XPS m1530
con procesador Core i3 a 4.2 GHZ, memoria RAM de 4 GB y disco duro de 500 GB
con Sistema Operativo Ubuntu 10.10, para captura vídeo el robot Golem cuenta con
una cámara Sonny PTZ.
68
4.3 Experimento 1: Reconocimiento de rostros utilizando la base de datos de
AT&T.
Para la realización de este experimento se utilizó las imágenes de rostros de la base
de datos desarrollada por AT&T del laboratorio de la universidad de Cambridge.
Dicha base de datos está constituida por 400 imágenes de 40 personas diferentes.
Con 10 fotografías para cada sujeto. Cada imagen cuenta con distintas poses,
expresiones faciales, punto de vista, en algunos casos presencia o no de anteojos e
iluminación controlada, además, cada fotografía está en escala de grises, en formato
PGM (Portable Gray Map) y tiene una resolución de 90 x 112 píxeles. De esta
manera los vectores-imágenes tendrán una dimensión de 10, 304 píxeles, ver la
Figura 4.2. A continuación se detallan las características de la base de rostros de
AT&T:
36 personas masculinas y 4 femeninas.
Una persona de raza negra.
Las personas presentan diversas edades.
Cada imagen presenta una ligera variación de luz.
Todas las fotografías presentan el mismo fondo por detrás del sujeto.
Algunas imágenes presentan diversas expresiones faciales: ojos
abiertos/cerrados, sonrisa/no sonrisa.
5 personas tienen anteojos.
7 personas presentan barba, de las cuales, 4 tiene barbas y anteojos.
Todas las imágenes son frontales (tipo fotografía para credencial o pasaporte)
algunas de la fotografías presentan ligeras variaciones angulares del rostros.
Figura 4.2: Ejemplo de una muestra de la base de rostros de AT&T.
69
Las 10 fotografías de cada sujeto se encuentran en subdirectorios separados, la
simbología que se utilizó para la realización de este experimento es la siguiente:
Cada nombre asignado a las fotografías presenta el nombre: sX/Y.pgm
En donde:
X = indica el número de la persona (de 01 a 40)
Y = número de fotografía (01 a 10)
Por ejemplo: s09/07.pgm, se refiere a la séptima fotografía de la novena persona.
4.3.1 Objetivo.
Obtener una evaluación del desempeño del reconocedor de rostros utilizando la
base de datos de AT&T de la universidad de Cambridge. Esta base de datos ha sido
utilizada en diversas investigaciones sobre reconocimiento de rostros.
4.3.2 Procedimiento experimental.
A continuación se describe cómo se seleccionaron las muestras de entrenamiento y
prueba de cada rostro que serán usadas para construir y evaluar el desempeño del
reconocedor de rostros. De las 40 personas con 10 imágenes cada una se
seleccionaron aleatoriamente dos personas. A cada persona seleccionada se le
tomaron 5 imágenes al azar. Para crear el conjunto de muestra de entrenamiento se
juntaron las 5 fotografías de las 2 personas elegidas. Del conjunto de muestras de
entrenamiento se crearon aleatoriamente 4 subconjuntos formados con 2, 3, 4 y 5
muestras por rostro. A este subconjunto se le aplicó el algoritmo eigenface para crear
los eigenvalores de entrenamiento (ver Figura 4.3). El objetivo es medir el
desempeño del reconocedor de rostros en función del número de muestras de
entrenamiento.
70
Figura 4.3: Representación gráfica de la metodología de entrenamiento.
Las 5 muestras restantes de cada persona se juntaron para crear el conjunto de
muestra de prueba. A este conjunto se le aplicó el algoritmo eigenfaces para crear
los eigenvalores de prueba. Por último se comparó el conjunto de prueba con cada
subconjunto de entrenamiento, con la finalidad de determinar la matriz de confusión,
ver la Figura 4.4. En la Tabla 4.2 se presenta los resultados de 7 repeticiones de la
metodología de entrenamiento y prueba. La Figura 4.5 presenta el promedio de 9
iteraciones con 2, 3, 4, 5 personas.
Figura 4.4: Representación gráfica de la metodología de prueba.
facedata con dos muestras
facedata con tres muestras
facedata con cuatro muestras
facedata con cinco muestras
facedata con 10 muestras
Matriz de confusión de 2
muestras
Matriz de confusión de
5 muestras
Matriz de confusión de 3
muestras Matriz de confusión de 4 muestras
Base de rostros
facedata con dos muestras
facedata con tres muestras
facedata con cuatro
muestras
facedata con cinco muestras
71
Tabla 4.2: Los resultados de 7 repeticiones de la metodología de entrenamiento y prueba con 2 personas.
Dos personas
Repeticiones Personas Distancia Euclidiana
2 3 4 5
1 s3 s31 94 100 100 100
2 s8 s4 100 100 100 100
3 s13 s18 88 92 94 100
4 s27 s8 98 100 100 100
5 s2 s20 100 100 100 100
6 s6 s23 100 100 100 100
7 s21 s24 100 100 100 100
Subtotal 680 692 694 700
Total 97.14 98.86 99.14 100
En la primera columna se presenta el número repeticiones del experimento. En la siguiente
columna muestra los nombres de las personas que se seleccionaron para cada interacción.
En la última se presenta el número de muestra de entrenamiento y el promedio por cada
repetición.
Figura 4.5: El promedio de 9 repeticiones con 2, 3, 4 y 5 personas con las mismas muestras de
entrenamiento.
72
Figura 4.6: Presenta el promedio de 9 repeticiones con 10, 20, 30 y 40 personas con 2, 3 y 4 muestras de
entrenamiento.
4.3.3 Análisis experimental.
En la Tabla 4.2 se probó el reconocedor de rostros con dos personas, se comparó
las 10 muestras de pruebas con las 2, 3, 4 y 5 muestras de entrenamiento, se puede
observar que al comparar con dos personas el reconocimiento es casi perfecto. En la
Figura 4.5, se utilizaron 2, 3, 4 y 5 personas con las mismas muestras de
entrenamiento, se obtuvo un incremento en el porcentaje de reconocimiento al
aumentar el número de muestras en el entrenamiento. En la Figura 4.6 se comprobó
que 5 muestras en el entrenamiento se obtiene un mejor porcentaje en
reconocimiento, además, al probar el reconocedor de rostros con un gran número de
personas disminuye la exactitud de reconocimiento. Estos resultados dirigen el
siguiente paso del proceso experimental probar al reconocedor de rostros con
diferentes cambios de luz y con mayor muestra de entrenamiento.
73
4.4 Experimento 2: Reconocimiento de rostros con cambios de iluminación en
el ambiente.
Para la realización de este experimento se creó una base de rostros con diferentes
cambios de iluminación en el ambiente, fue desarrollada por el autor de este
documento con los investigadores, académicos y estudiantes del DCC del IIMAS.
Dicha base de rostros está constituida por 16 personas con 20 imágenes de rostros
cada una. Cada fotografía cuenta con una ligera expresión facial, vista frontal, una
resolución de 90 x 112, en escala de grises e iluminación no controlada.
4.4.1 objetivo.
Probar el reconocedor de rostros a diferentes cambios de iluminación en el
ambiente, además checar el tiempo en la realización de conjunto de muestras de
entrenamiento y prueba.
4.4.2 Procedimiento experimental.
Se elegirán 4 personas para tomarle un vídeo de 5, 10 y 15 segundos a cada
persona. Los vídeo serán tomados en diferente horarios, con la finalidad de observar
cambios de luminosidad, paciencia de la persona en la duración del vídeo, posición
frontal (con una tolerancia de un cierto movimiento lateral), detalles (con lentes, sin
lentes y gorras) y expresiones faciales (ojos cerrados o abiertos, sonrisa o ausencia
de sonrisa y muecas).
Los vídeos serán tomados en diferentes horarios (11 am, 12 am, 4pm y 8 pm) con el
propósito de observar que tanto afecta la iluminación natural o artificial del ambiente
donde se toman las imágenes al sistema de reconocimiento de rostros.
La persona debe de estar de frente y mirando hacia la cámara, podrá realizar y
contener diferentes expresiones y/o detalles faciales, además se podrá mover
sutilmente a la lateral cuando se esté tomando los vídeos. Esto se realiza con la
finalidad de meterle ruido y probar al sistema de reconocimiento de rostros.
74
4.5 Aplicación del reconocimiento de rostros en un robot móvil.
4.5.1 Objetivo.
Probar las ideas presentadas en las secciones anteriores e implementar el sistema
de reconocimiento visual de rostros en la arquitectura cognitiva del robot de servicio
conversacional Golem II.
4.5.2 Procedimiento experimental.
El sistema inicia cuando 3 personas se presentan al robot una por una, de frente a la
videocámara y a 1 metro de distancia. El proceso de control es simple. Cuando un
usuario se presenta frente al robot, el sistema de reconocimiento deberá detectar su
rostro y tomarle 10 fotografías para aprender su rostro. Después el robot le pide el
nombre del usuario para utilizarlo como identificador, el objetivo de esta presentación
es que el robot entrene con las fotografías de las 3 personas. Posteriormente el
robot deberá buscar a las personas en un escenario parecido al de una casa,
cuando el robot encuentra una persona deberá tomarle 10 fotografías y compararlas
con las que se tiene en la base de rostros, el robot deberá identificar a las personas
con el nombre que se le dio previamente. La prueba termina cuando el robot
encontró a las 3 personas.
Figura 4.7: Aplicaciones del reconocedor de rostros en el robot Golem II.
75
4.5.3 Análisis experimental.
Los experimentos iniciales de esta aplicación en laboratorio obtuvieron resultados
prometedores. Aproximadamente 3 usuarios ejecutaron series 10 de repeticiones de
reconocimiento con el robot, en estas 10 repeticiones el robot reconoció con un
porcentaje de 83.3 % de reconocimiento.
76
Capítulo 5
CONCLUSIONES Y TRABAJOS FUTUROS
En este capítulo se presentan las conclusiones de esta tesis, y además, se
describen el trabajo futuro de esta investigación.
77
5.1 Conclusiones.
Este trabajo ha sido realizado en el contexto de la Robótica, particular en el campo
de Visión Artificial. Su aporte fundamental es la implementación de un sistema de
reconocimiento visual de rostros para el robot de servicio Golem II, robot
conversacional desarrollado en el Departamento de Ciencias de la Computación del
Instituto de Investigaciones en Matemáticas Aplicadas y en Sistemas (IIMAS) de la
Universidad Nacional Autónoma de México (UNAM), como plataforma de soporte a
la investigación sobre la interacción entre humanos y robots, la inteligencia robótica y
la autonomía en los robots.
El sistema de reconocimiento visual de rostros ha sido integrado a la arquitectura
cognitiva, denominada modelos de diálogos, como un conjunto de habilidades que le
permiten al robot ejecutar en tiempo real y en forma autónoma las siguientes
acciones: detectar los rostros de la personas en escenas visuales, tomar imágenes
de los rostros detectados, construir modelos de los rostros a partir de estas
imágenes, almacenar en bases de datos tanto las imágenes tomadas, como los
modelos obtenidos de los rostros, y usar la información de los rostros capturados en
las imágenes para reconocer personas a través de la comparación de determinadas
características, propiedades y rasgos de la imagen facial, con los almacenados en
las bases de datos.
Para la detección de los rostros en imágenes, las habilidades aplican métodos
basados en los clasificadores en cascada que trabajan con características tipo Haar.
Para la extracción de características del rostro, construcción del modelo del rostro a
ser almacenado en la bases de datos y para el reconocimiento de rostros se
emplean el algoritmo eigenfaces.
78
5.2 Trabajo Futuro.
Como trabajo futuro se propone:
Agregar el porcentaje de confiabilidad en el reconocimiento de rostro.
Diseñar un módulo de toma de decisiones en el reconocimiento de rostros, de
tal forma que pueda interactuar y recolectar mayor información del usuario,
cuando el nivel de confiabilidad del reconocimiento no es lo suficiente alto.
Optimizar el módulo de detección de caras, a fin de evitar las fallas y retardos
encontrados en los análisis experimentales.
Analizar y evaluar el comportamiento del sistema en condiciones de
iluminación no controlada, con el objetivo de evaluar el sistema de
reconocimiento de rostros.
Agregar un módulo de autoajuste de iluminación en el detector de rostros:
Permitiría controlar los cambios bruscos de iluminación en el ambiente.
Mejorar la detección de rostro incorporando color de piel del usuario: Daria
mayor confiabilidad en la detección de rostros evitando los falsos positivos
Incorporar diferentes posturas del usuario hacia la videocámara del robot en
el reconocimiento de rostros, reconocería personas de perfil y con oclusiones
parciales.
Convertir el sistema de identificación de rostros en un sistema bimodal: Un
sistema bimodal mejoraría la interacción con el usuario haciéndola más
natural la conversión, es decir, se podrá Interactuar en paralelo dos o más
agentes permitiendo obtener mayor información del usuario.
79
Referencias
[Stuart 1995] Stuart Ressell, Peter Norvig: Artificial Intelligence a Modern Approach.
Ed. Prentice-Hall Edition, 2a ed. vol. II, New Jersey, (1995)
[Endel 1972] Endel Tulving: Episodic and Semantic. Ed. Academic Press Edition, 3er
ed. vol. III New York, (1972)
[Tim 2008] M. Tim Jones: Artificial Intelligence a Systems Approach. Ed. Infinity
Science Press Edition, 1era ed. New York, (2008)
[Louis 1998] Louis Leithold, El Cálculo. Ed. Oxford University Press, 7 ed. USA (1998)
[Enrique 2003] Enrique Sucar: Visión Computacional. Ed. Alfaomega, 1era ed.
Puebla, México, (2003)
[Rafael 2006] Rafael Valvert: Métodos y Técnicas de Reconocimiento de Rostros en
Imágenes Digitales Bidimensionales. Tesis licenciatura. Universidad de San Carlos,
Guatemala (2006)
[María 2009] María Esther García Chang: Diseño e implementación de una
herramienta de detección facial. Tesis maestría. Instituto Politécnico Nacional,
México (2009)
[Rafael 2005] Carlos Villegas Quezada: Reconocimiento de rostros utilizando análisis
de componentes principales: Limitaciones del algoritmo. Tesis maestría. Universidad
Iberoamericana, México (2005)
80
[Danilo 2003] Danilo Simón Zorita: Reconocimiento automático mediante patrones
biométricos de huella dactilar. Tesis maestría. Universidad Politécnica de Madrid,
España (2003)
[Miguel 2009] Miguel Cortes Marlia: Reconocimiento de caras frontales mediante la
extracción de puntos característicos. Tesis licenciatura. Universidad Politécnica de
Madrid, España (2009)
[Diego 2006] Diego Xavier Gualle Calahorrano: Implementación de un sistema
distribuido de autenticación biométrica basada en la detección e identificación de
rostros humanos en imágenes extraídas de secuencias de video. Tesis licenciatura.
Instituto Politécnico Nacional, México (2006)
[Pedro 2003] Pedro Cruz Hernández: Identificación, caracterización y herencia de
microsatélites y su aplicación como marcadores moleculares en un programa de
mejoramiento de camarón blanco Litopenaeus vannamei. Tesis doctoral. Centro de
Investigaciones Biológicas del noroeste, S. C.,La Paz, B. C. S. (2003)
[Oscar 2008] Oscar Alfonso Sanhueza Riveros: Análisis y detección de características
faciales usando aprendizaje estadístico. Tesis licenciatura. Facultad de Chile,
Santiago de Chile (2008)
[Carlos 2006] Carlos Anguiano Guerrero: Análisis de características principales para
el reconocimiento de rostros en imágenes bidimensionales por computadora. Tesis
maestría. Instituto tecnológico de León, Guanajuato (2006)
[Ginés 2006] Ginés García Mateos: Procesamiento de caras humanas mediante
integrales proyectivas. Tesis doctoral. Universidad de Murcia, España (2007)
[Francisco 2002] Francisco Gonzalo Caceres Bascuñan: Reconocimiento de rostros
humanos basado en una red neuronal de retroprogramación. Tesis licenciatura.
Universidad Mayor, Santiago de Chile (2002)
81
[Luis 2008] Luis Ernesto Castillo Faune: Optimización de métodos de compensación
de iluminación para reconocimiento de rostros. Tesis licenciatura. Universidad de
Chile, Santiago de Chile (2008)
[Rodrigo 2007] Rodrigo José Flores Medina: Detección de rostro mediante redes
neuronales MIN-MAX difusas. Tesis licenciatura. Universidad de Chile, Santiago de
Chile (2007)
[Guadalupe 2009] Guadalupe Sánchez Escribano: Sistema de visión para un robot
social. Tesis licenciatura. Escuela Técnica Superior de Ingenieros Industriales,
España (2009)
[Maritza 2008] Maritza Bracho de Rodríguez: Sistema de reconocimiento de rostros
para maggie. Tesis doctoral. Universidad Centro Occidental Lisandro Alvarado,
Venezuela (2008)
[Mikaela 2003] Mikaela B., Joaquín V., Marcelo P., Gabriel M., Daniela L.: Sistema de
Autentificación, Universidad de Palermo, Argentina (2003)
[Marta 2008] Marta, G., Julián, E., William, A.: detección de rostros en imágenes
digitales usando clasificadores en cascada, Universidad Tecnológica de Pereira,
Colombia (2008)
[Karla 2007] Karla R., Hugo B.: Reconocimiento de rostros utilizando una red
neuronal, Escuela Politécnica Nacional, Ecuador (2007)
[Eduardo 2007] Eduardo Z., Salvador D., Jaime G.: Experiencias en robótica social.
Interacción, motivación y aprendizaje, Universidad de Valladolid, España (2007)
[Antonio 2005] Antonio R., Francesc T.: Un nuevo método para la detección de caras
basado en integrales difusas. Universidad Politécnica de Catalunya, España (2005)
82
[Aguerrebere 2003] C. Aguerrebere, G. Capdehourat, M. Delbracio, M. Mateu.:
Reconocimiento automático de caras. Universidad de Chile, Chile (2003)
[Heydi 2008] Heydi, M., Edel G., Reconocimiento de patrones. Centro de Aplicaciones
de Tecnologías Avanzadas, Cuba (2008)
[Carmen 2003] Carmen M., Olac F.: Reconocimiento de rostros usando datos no
etiquetados, INAOE, Puebla (2003)
[Heidy2010] Heidy, N., Alejandro M., Enrique R., Claudia L., Yisel D.: Algoritmo de
detección facial para sistemas de autenticación biométrica. Universidad de las
Ciencias Informáticas, Cuba (2010)
[Edwin 2008] Edwin, O., Henry A.: Reconocimiento de rostros utilizando PCA en
dispositivos DPS, Grupo de Investigación en Ingeniería Biométrica, España (2008)
[31] [Hyung 2007] Hyung C., Dong S.: Emotional head robot with behavior decision
model and face recognition, Universidad Nacional de Seúl, Corea del Sur (2007)
[Alex 1994] Alex P., Baback M.: View based and modular eigenspaces for face
recognition, Instituto Tecnológico de Massachusetts, USA (1994)
[Viola 2001] P. Viola, M. Jones: Rapid object detection using boosted cascade of
simple features, In Proceedings IEEE Computer Society Conference on Computer
Vision and Pattern Recognition, vol. 1, pp. 511‐ 518, Kauai, Hawaii (2001)
[Viola 2001] P. Viola, M. Jones: Robust real time object detection, In IEEE ICCV
Workshop on Statistical and Computational Theories of Vision, Vancouver (2001)
[Viola 2004] P. Viola, M. Jones: Robust Real‐Time Face Detection, International
Journal of Computer Vision, vol.57, no. 2, pp. 137‐154, (2004)
83
[Canny 1986] J. Canny: A Computational Approach to Edge Detection, IEEE Trans.
on Pattern Analysis and Machine Intelligence, vol. 8, no. 6, pp. 679‐698, 1986.
Diseño e implementación de un herramienta de detección facial, CIDETEC 99
[Papageorgiou 1998] C. Papageorgiou, M. Oren and T. Poggio: A general framework
for object detection, in International Conference on Computer Vision, (1998)
[Lierhart 2002] R. Lienhart and J. Maydt: An extended set of Haar‐like features for
rapid object detection, in IEEE ICIP, vol. 1, pp. 900‐903, (2002)
[Crow 1984] F. C. Crow: Summed‐area tables for textures mapping, computer
Graphics, vol. 18, No. 3, (1984)
[Kanade 1973] T. Kanade: Picture Processing by Computer Complex and
Recognition of Human Face, Tesis doctoral, Universidad de Tokio, Japón (1973)
[Cox 1996] Cox, I., Ghosn, J., Yianilos, P.: Feature-based face recognition using
mixture distance, In: Proc. Int. Conf. Comput. Vis. Patt. Recogn. (1996)
[Samaria 1994] Samaria, F.: Face Recognition using Hidden Markov model, tesis
doctoral, Universidad de Cambridge, USA (1994)
[Kohir 2000] Kohir, V., Desai, E.: Face recognition, In Proc. Image Processing. (2000)
[Othman 2003] Othman, H., Aboulnasr, T.: A separable low complexity 2D HMM with
application to face recognition, IEEE Trans. Patt. Anal. Mach. Intell. 25 (2003) 1229-
1238
[Cootes 1995] Cootes, T., Taylor, C., Cooper, D., Graham, J.: Active shape models
their training and application, Computer Vision and Image Understanding 61 (1995)
[Kirby 1990] M. Kirby and L. Sirovich: Application of the Karhunen–Loe procedure for
the characterization of human faces, IEEE Trans. Pattern Anal. Machine Intell (1990)
84
[47] [Matthew 1991] Matthew A. Turk and Alex P. Pentland: Face Recognition Using
Eigenfaces, Vision and Modeling Group, T, USA (1991)
[Vaishak 2009] Vaishak B., Thomas D., Stefan S.: Randomized Trees for Real-Time
One-Step Face Detection and Recognition, Computer Science Departament,
Inglaterra (2009)
[Marcelo 2006] Marcelo Armengot: Análisis comparativo de métodos basado en
subespacios aplicados al reconocimiento de caras, Universidad de Valencia, España
(2006)
[Marta 2008] Marta G., Julian E., William U.: Detección de Rostros en Imágenes
Digitales Usando Clasificadores en Cascada, Universidad Tecnológica de Pereira,
Colombia (2008)
[Deyvi 2009] Deyvi S.: Reconocimiento de Patrones, Universidad Nacional de San
Agustin, Perú (2009)
[Luis 2010] Luis P., Ivan M. y Lisset P.: Dialogue Model Specification and Interpretation
for Intelligent Multimodal HCI, UNAM, México (2010)
[Luis 2009] Luis P.: The Corpus DIMEx100: transcription and Evaluation. Language
Resources and Evaluation, UNAM, México (2009)
[Luis 2011] Luis P., Ivan M., Lisset P. y Héctor A.: A Multimodal Dialogue System for
Playing the Game Guess the Card, Procesamiento de Lenguaje Natural. Bahía
Blanca, Argentina (2010)
[Héctor 2006] Héctor Hugo Avilés Arriaga: Reconocimiento Visual de Ademanes
Aplicado a Robot Móviles, ITESM, México (2006)
[James 2000] James A.: An Architecture for a Generic Dialogue Shell.
Natural Language Engineering, Universidad de Cambridge, USA (2000)