Detector de emociones
usando OpenCV
Para su uso en un robot emocional
Autores:
Daniel Jesús García Moral
Jorge Miguel Peñalva Zambrano
Otras posibilidades aún no exploradas:
• Detectar la proximidad del
usuario dependiendo del
tamaño de la cara detectada.
• Detección de la posición del
usuario respecto de la cámara
mediante la comparación con
otras dos posiciones conocidas
(detección de movimiento).
• Clasificadores para gestos con
las manos.
¿Por dónde seguir ahora?:
• Entrenar al clasificador de sonrisas con
distintas personas.
• Realizar distintos clasificadores, como
pueden ser cejas y ojos.
• A partir de ahí cada emoción tendrá un
valor que será igual a la suma de los
distintos gestos detectados y ponderados;
de esta forma podremos decir la emoción
predominante con bastante acierto.
Preparando para detectar
emociones
• Recortar imágenes para tener la región
de interés de nuestra foto para el
HaarTraining.
• Crear archivo de texto con la info de
estas imágenes.
• Configurar CreateSamples, Haartraining y
Performance.
• Dejar el Haartrining computando.
Nuestros clasificadores
Mejor hacer clasificadores para cada uno
Clasificadores de bocas:
• Sonrisa fuerte
• Sonrisa débil
• Sorpresa
Fijar bien la región de interés pero luego
en facedetect decirle que busque en toda
la cara.
Nuestros clasificadores
Clasificadores de ojos:
• 1º Pasarle los ojos que nos daba
facedetect Resultado negativo
• 2º Pasarle la zona de los dos ojos
Mejora resultado pero sigue sin ser
positivo
• 3ºAumentar la zona del ojo que devuelve
facedetect para que incluya la
cejaClasificador de enfado correcto
Nuestros clasificadores
Filtrar las emociones en facedetect:
• Cada 20 capturas ve cuánto se ha
aumentado cada variable.
• Clasificador neutral nos ayuda a
incrementar la robustez
• Condiciones entre clasificadores: sorpresa
únicamente cuando se dispara sólo; en
cuanto hay enfadado, no se tienen en
cuenta los demás
Distinción entre personas
• Recortar la cara y buscar dentro de la
cara el recorte de la cara  Error.
• Dividir la cara en trozos y buscar esos
trozos dentro de la cara  Error.
• Muestras negativas caras de uno, positivas
caras del otro, muy difícil la distinción
• Clasificador de enfado de Dani detecta a
Jorge casi siempre enfadado, sin él
estarlo  Sacar de ahí la distinción 
Resultado satisfactorio.
Distancias, movimiento
• Distancias con el área de la cara
• Definición de zonas: cerca, óptimo, lejos
muy lejos.
• Robot pide que vayas a la zona óptima,
sólo en esa zona es donde miramos quién
es y lanzamos sus clasificadores.
• Viendo estado anterior y estado actual
vemos el movimiento, si se está
acercando o alejando.
Vídeos, parte visual
VENTANAS:
• Result: foto con las emociones detectadas
(cada una tiene un color).
• Estado: Emoción presente tras filtrado.
• ¿Quién es?
• Distancia
• Acción
¿PREGUNTAS?
Blog:
http://emotionalbot.wordpress.com/
Descargar

presentación