RECONOCIMIENTO DE EXPRESIONES FACIALES … fileemociones humanas. El ... Reconocimiento de...

14
Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect - I - RECONOCIMIENTO DE EXPRESIONES FACIALES MEDIANTE IMÁGENES ADQUIRIDAS CON CÁMARA KINECT Autor: Ruiz Martín, Rodrigo Directores: Palacios Hielscher, Rafael. Muñoz San Roque, Antonio. RESUMEN DEL PROYECTO El objetivo de este proyecto es el desarrollo de una herramienta capaz de reconocer las expresiones de alegría (risa o sonrisa) y desagrado en el rostro de las personas, de forma automática e intuitiva, basándose para ello en la adquisición de información facial por parte de la cámara Kinect de Microsoft. La herramienta está compuesta por tres entornos que se corresponden con la adquisición de información, procesado de datos y análisis de resultados. Como base para el reconocimiento de las expresiones se han empleado los estudios del psicólogo Paul Ekman, pionero en el reconocimiento de expresiones y microexpresiones faciales. Introducción En la actualidad el campo de la psicología ha alcanzado un grado de madurez elevado en cuanto al reconocimiento de expresiones faciales. Un gran número de prestigiosos psicólogos han realizado estudios en profundidad obteniendo información sólida sobre el reconocimiento de expresiones faciales y su vinculación con las emociones humanas. El reconocimiento automático de expresiones faciales resulta especialmente interesante porque permite detectar sentimientos y estados de ánimo en

Transcript of RECONOCIMIENTO DE EXPRESIONES FACIALES … fileemociones humanas. El ... Reconocimiento de...

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- I -

RECONOCIMIENTO DE EXPRESIONES FACIALES MEDIANTE

IMÁGENES ADQUIRIDAS CON CÁMARA KINECT

Autor: Ruiz Martín, Rodrigo

Directores: Palacios Hielscher, Rafael.

Muñoz San Roque, Antonio.

RESUMEN DEL PROYECTO

El objetivo de este proyecto es el desarrollo de una herramienta capaz de

reconocer las expresiones de alegría (risa o sonrisa) y desagrado en el rostro de las

personas, de forma automática e intuitiva, basándose para ello en la adquisición de

información facial por parte de la cámara Kinect de Microsoft. La herramienta está

compuesta por tres entornos que se corresponden con la adquisición de información,

procesado de datos y análisis de resultados. Como base para el reconocimiento de las

expresiones se han empleado los estudios del psicólogo Paul Ekman, pionero en el

reconocimiento de expresiones y microexpresiones faciales.

Introducción

En la actualidad el campo de la psicología ha alcanzado un grado de madurez

elevado en cuanto al reconocimiento de expresiones faciales. Un gran número de

prestigiosos psicólogos han realizado estudios en profundidad obteniendo información

sólida sobre el reconocimiento de expresiones faciales y su vinculación con las

emociones humanas. El reconocimiento automático de expresiones faciales resulta

especialmente interesante porque permite detectar sentimientos y estados de ánimo en

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- II -

las personas, y el reconocimiento de estos estados de ánimo se puede aplicar en

campos tan diversos como la psicología, la enseñanza o el marketing.

Por otro lado, los avances tecnológicos acontecidos en los últimos años

permiten llevar a cabo tareas que en el pasado hubieran sido impensables. La

capacidad de procesamiento y de cálculo de las máquinas se ha incrementado de forma

exponencial, por lo que la tendencia actual es mecanizar y automatizar la mayor

cantidad posible de procesos, permitiendo a los expertos concentrar sus esfuerzos en

tareas menos triviales.

El objetivo del proyecto surge de la unión lógica de estos dos hechos, ya que las

condiciones actuales de madurez de ambas áreas son propicias para el desarrollo de

una herramienta informática capaz de reconocer automáticamente la ubicación del

rostro de una persona, y analizar sus expresiones faciales a lo largo de un período de

tiempo determinado.

Estado del Arte

La literatura al respecto muestra estudios en dos direcciones. La primera de

ellas en el campo de la psicología, para entender el grado de comprensión actual

existente acerca de las expresiones faciales y los rasgos que las caracterizan.

La identificación y clasificación de las emociones se basa eminentemente en el

trabajo del psicólogo Paul Ekman, considerado uno de los psicólogos más influyentes

del siglo XX. Sus estudios acerca de las expresiones faciales comenzaron en el año

1965[PAUL_EKMAN] y su culminación se alcanzó en el año 2002 con la publicación de

un manual que permite determinar las emociones sentidas por una persona a partir de

sus expresiones faciales codificadas mediante una serie de características llamadas

Action Units.[EKMA02]

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- III -

En el campo del reconocimiento automático de las expresiones faciales destaca

el trabajo realizado por el profesor Ifran A. Essa [ESSA97] por haber obtenido

resultados muy exactos basados en el análisis de secuencias de imágenes. No obstante,

a día de hoy no existe una herramienta de reconocimiento de expresiones faciales lo

suficientemente sencilla, asequible, automática y completa como para poder ser

empleada satisfactoriamente por una persona no experta en el campo de la psicología.

Asimismo, la gran versatilidad de una herramienta de estas características en cuanto a

sus posibles campos de aplicación supone una motivación añadida.

Implementación

La herramienta se ha descompuesto a su vez en tres herramientas dedicadas a:

La adquisición de información facial en forma de imágenes y parámetros en

tiempo real.

El tratamiento de dicha información y extracción de conclusiones.

El análisis gráfico de los resultados obtenidos.

Esta descomposición se ha realizado para aprovechar al máximo las

características de los distintos lenguajes de programación, con el fin de obtener el

mayor rendimiento posible y conseguir un alto grado de compatibilidad.

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- IV -

Tecnología empleada

Como mecanismo de adquisición de la información facial y las imágenes se ha

escogido la cámara Kinect para Xbox360 de Microsoft debido a sus características

especialmente enfocadas a la captación y seguimiento del rostro y el cuerpo humano

[KINECT], lo que facilita en gran medida la adquisición de los datos necesarios para

realizar el análisis de las expresiones faciales.

La herramienta de adquisición de la información facial se ha desarrollado en C#

para sacar el mayor partido posible a las librerías de Microsoft para Kinect. C# es una

versión ampliada del lenguaje C enfocada a la programación visual y orientada a

objetos, que actualmente es ampliamente usado por su versatilidad en diversos

ámbitos, entre los que destaca Windows Phone.

El análisis de datos y clasificación de resultados son llevados a cabo mediante

una serie de funciones elaboradas en Matlab. La principal razón de que haya sido este

el entorno elegido para esta fase de la aplicación es que Matlab es una plataforma

enfocada al cálculo matemático y al procesamiento de grandes cantidades de datos,

actividades que constituyen el pilar fundamental de esta parte de la herramienta.

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- V -

Para la elaboración de los árboles clasificadores de la alegría y el desagrado se

ha empleado el programa de clasificación y aprendizaje automático Weka.

Posteriormente, los clasificadores obtenidos con Weka han sido implementados dentro

de funciones Matlab.

La fase final del ciclo de vida de la herramienta lo constituye una aplicación

visual de análisis de resultados. Esta aplicación permitirá observar y comparar la

información inicial con la respuesta proporcionada, así como la evolución temporal de

los parámetros relevantes. El lenguaje elegido para el desarrollo de esta herramienta es

C#, ya que su potencia visual permite crear interfaces de gran complejidad.

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- VI -

Resultados Obtenidos

Para obtener los datos faciales y visuales necesarios se organizaron nueve

sesiones de grabación con voluntarios, que visualizaron un vídeo dividido en cuatro

secuencias ideadas para generar diferentes emociones. Con los datos recogidos se

realizó una clasificación manual fotograma a fotograma en función de la presencia o

ausencia de alegría y desagrado. Posteriormente se empleó esos datos en la

conformación de los árboles clasificadores en un proceso de tres iteraciones en el que se

añadían al conjunto de entrenamiento casos nuevos que anteriormente hubiesen sido

clasificados erróneamente.

Tras la optimización de los árboles de clasificadores en las tres iteraciones, éstos

han alcanzado la capacidad de reconocer de forma automática las expresiones de

desagrado y alegría presentes en el rostro de una persona con un porcentaje de acierto

del 96% para el desagrado y un 97.5% para la alegría.

Tras haber realizado la adquisición de la información facial y visual, y de haber

procesado dicha información, la herramienta permite realizar dos análisis diferentes de

dichos resultados. Por un lado, la herramienta diseñada en C# sirve para analizar las

expresiones faciales de desagrado o sonrisa presentes en la persona fotograma a

fotograma.

Por otro lado, se puede emplear una función Matlab para detectar la

predominancia de la alegría y el desagrado en intervalos de un segundo (diez

fotogramas), lo que permite obtener una idea general del estado de ánimo de la

persona, así como corregir errores puntuales. También han sido elaboradas una serie

de funciones que aportan información del conjunto de sesiones en suma, y del

porcentaje de tiempo que cada emoción es manifestada para cada secuencia de vídeo

mostrada.

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- VII -

Conclusiones

A modo de conclusión, el resultado final de este proyecto consiste en un

conjunto de herramientas basadas en el uso de la cámara Kinect como mecanismo de

adquisición de información facial, que permiten reconocer de forma precisa las

expresiones de alegría y desagrado.

Los resultados obtenidos permiten demostrar la viabilidad de Kinect como

mecanismo de adquisición de información facial y visual y ,por otro lado, se ha podido

apreciar su concordancia con la teoría darwiniana de las expresiones faciales.

Además, se han elaborado una serie de funciones y una aplicación que

proporcionan información detallada y completa para realizar el análisis de los datos y

los resultados extraídos. Esta información puede ser proporcionada fotograma a

fotograma o por secciones del vídeo y también puede analizarse de forma individual o

para la suma de todos los voluntarios del experimento,

Referencias

[EKMA02] – “Facial Action Coding System”. Paul Ekman, Wallace V. Friesen, Joseph

C. Hager. Estados Unidos 2002.

[PAUL_EKMAN] - http://www.paulekman.com/

[ESSA97] "Coding, Analysis Interpretation, Recognition of Facial Expressions". I. Essa,

A. Pentland. Julio 1997.

[KINECT] - http://www.microsoft.com/en-us/kinectforwindows/

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- VIII -

FACIAL EXPRESSIONS RECOGNITION THROUGH IMAGES

ACQUIRED WITH KINECT CAMERA

Author: Ruiz Martín, Rodrigo

Supervisors: Palacios Hielscher, Rafael.

Muñoz San Roque, Antonio.

PROJECT ABSTRACT

The main goal of this project is the development of an application capable of

recognizing the expressions of joy (laughter or smile) and displeasure on people’s faces

in an automatic and intuitive way, basing on the facial information acquired using the

Microsoft Kinect camera. The application consists of three tools which respectively

acquire facial information, process data and analyze the results. The facial expression

recognition system developed is based on the research done by the psychologist Paul

Ekman, which is a pioneer on facial expression and micro expression recognition

Introduction

At the present time psychology has reached a high degree of development in

facial expression recognition. A great number of prestigious psychologists have done

deep research obtaining detailed information about facial expression recognition and

its bond with human emotions. Automatic facial expression recognition is especially

interesting because it allows detecting the feelings and mood of people, and

recognizing this can be used in a very wide range of fields such as psychology,

teaching or marketing.

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- IX -

On the other hand, technology has evolved so fast in the last years that now we

can perform tasks that once would have been unconceivable. Processing and

computing capabilities of computers have increased exponentially, so the actual trend

is to automatize as much processes as possible, allowing the experts to focus their

efforts on less trivial tasks.

The aim of this project comes from the logical union of these two facts, because

now both areas have reached a progress state suitable for developing a computing tool

capable of recognizing automatically the location of a person’s face and analyzing its

facial expressions for a specific amount of time.

State of Art

Literature shows two main research directions. The first one has been done in

the field of psychology, in order to perceive the understanding level that has been

reached about facial expressions and the main features that characterize them.

Identification and classification of emotions is mainly based on psychologist

Paul Ekman’s research, considered as one of the most influential psychologists of the

twentieth century. His research about facial expressions began in

1965[PAUL_EKMAN] and their apex was reached in the year 2002 when he published

a complete guide on how to determine the feelings felt by a person from its facial

expressions coded using a series of facial features called Action Units.[EKMA02].

In the field of automatic facial expressions recognition, the most relevant

research has been made by Ifran A. Essa [ESSA97], which has achieved very accurate

results based on image sequence analysis. However, in the present time there hasn’t

been developed a facial expression recognition tool easy to use, affordable, automatic

and complete enough to be able to be used successfully by a non-expert in the field of

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- X -

psychology. Furthermore, the great versatility that a tool with these characteristics can

offer about its possible uses creates an extra motivation.

Implementation

The application has been divided into three tools, which are mainly focused on:

Gathering real-time facial information as images and parameters.

Dealing with that information and extracting conclusions.

Showing graphical information to allow users to analyze the results achieved and

compare them with the inputs of the camera.

This breakdown has been made to take the most advantage possible of the

characteristics of each programming language and environment, looking to get the best

performance possible and achieve a high compatibility.

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- XI -

Technology used

As facial information acquisition mechanism, Microsoft’s Kinect for Xbox360

has been chosen due to its features, mainly focused on detecting and following human

body and face [KINECT], which makes it easier to acquire the necessary data to

analyze facial expressions.

The facial information acquisition tool has been developed using C# in order to

take the most of Microsoft’s libraries designed to be used with Kinect. C# is an

extended and more complex version of C language focused on visual programming

and object-oriented, which now is widely used due to its versatility in a wide range of

fields, especially Windows Phone applications.

Data analysis and results classification are done using a series of functions

programmed using Matlab. The main reason why this was the chosen environment for

developing this phase of the application is because Matlab is a platform focused on

mathematic computation and processing great amounts of data, activities that form the

main goal of this part of the tool.

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- XII -

In the development of the classifying trees of joy and displeasure the program

chosen was Weka, specially focused on classifying data and machine learning.

Subsequently, the classifiers built using Weka have been implemented into Matlab

functions.

The final phase of the application’s lifecycle consists of a visual tool for

analyzing the results obtained. This tool allows the user to see and compare the inputs

acquired by the camera with the classification given, and also how relevant parameters

change with time. The programming language chosen to create this tool is C#, because

its visual capabilities are ideal for easily creating complex user interfaces.

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- XIII -

Results

To obtain the necessary visual and facial data nine recording sessions were

organized with volunteers, who were shown a video divided into four scenes designed

to generate different emotions. With the data acquired, each frame was manually

classified depending on the presence or absence of joy and displeasure. Afterwards,

these data were used in the development of the classifying trees in a process of three

iterations in which the previously incorrectly classified instances were added to the

training set.

Having optimized the classifying trees through the three iterations, they

reached the capability of recognizing automatically the expressions of displeasure and

joy featured in the faces of people with a success rate of 96% for displeasure

recognition and 97.5% for joy.

After having acquired the facial and visual information, and having processed

that information, the tool allows the users to do two different types of analysis from the

results gathered. On one hand, the application developed using C# can be used to

analyze the facial expressions of smile and displeasure detected in a person frame by

frame.

On the other hand, there have been created a series of Matlab functions to

detect the main expressions of joy and displeasure noticed for each second of recording

and to see the graphics of a whole recording at a glance, or even the sum of all of the

recordings done. This makes it possible to get a general idea of a person’s mood and

correct isolated errors.

Reconocimiento de expresiones faciales mediante imágenes adquiridas con cámara Kinect

- XIV -

Conclusions

To summarize all that has been said before, the final result of this project

consists of a set of tools based on the Kinect camera as a mechanism of facial

information acquisition, capable of recognizing the expressions of displeasure and joy

in different people in a very accurate way.

Results achieved have allowed to demonstrate the viability of Kinect as a

mechanism of facial and visual information acquisition and, on the other hand, it was

possible to confirm that the results agreed with Darwin’s theory about facial

expressions.

Besides, a group of functions and an application have been developed with the

aim of providing detailed and complete information to analyze the data and results

obtained. This information can be given for each frame or for each complete scene of

the video, and can also be analyzed individually or for the sum of all the volunteers of

the experiment.

References

[EKMA02] – “Facial Action Coding System”. Paul Ekman, Wallace V. Friesen, Joseph

C. Hager. United States 2002.

[PAUL_EKMAN] - http://www.paulekman.com/

[ESSA97] "Coding, Analysis Interpretation, Recognition of Facial Expressions". I. Essa,

A. Pentland. July 1997.

[KINECT] - http://www.microsoft.com/en-us/kinectforwindows/