atenci on al cliente por medio de reconocimiento facial

39
Atenci´ on al cliente por medio de reconocimiento facial Adelaida Zuluaga Cajiao Universidad de Los Andes Facultad de Ingenier´ ıa, Departamento de Ingenier´ ıa El´ ectrica y Electr´ onica Bogot´ a, Colombia 2019

Upload: others

Post on 24-Jul-2022

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Atenci on al cliente por medio de reconocimiento facial

Atencion al cliente por medio de reconocimiento facial

Adelaida Zuluaga Cajiao

Universidad de Los Andes

Facultad de Ingenierıa, Departamento de Ingenierıa Electrica y Electronica

Bogota, Colombia

2019

Page 2: Atenci on al cliente por medio de reconocimiento facial
Page 3: Atenci on al cliente por medio de reconocimiento facial

Atencion al cliente por medio de reconocimiento facial

Adelaida Zuluaga Cajiao

Universidad de Los Andes

Presentado en cumplimiento parcial de los requisitos para el grado de:

Ingeniera Electronica

Asesor:

Fernando Enrique Lozano, Carolina Higuera

Diciembre 17, 2019

Universidad de Los Andes

Facultad de Ingenierıa, Departamento de Ingenierıa Electrica y Electronica

Bogota, Colombia

2019

Page 4: Atenci on al cliente por medio de reconocimiento facial
Page 5: Atenci on al cliente por medio de reconocimiento facial

A mi abuela Blanca Helena, quien tiene un gusto

especial por los robots.

Page 6: Atenci on al cliente por medio de reconocimiento facial

vi

Agradecimientos

En primer lugar, quiero agradecer a mis asesores

Fernando Lozano y Carolina Higuera, por todo

el apoyo que me brindaron y el conocimiento

que me transmitieron, pues esto hizo posible la

realizacion del proyecto.

A mi novio, Juan Jose Garcıa quien me brindo

una ayuda fundamental. El proyecto no fue facil,

pero el estuvo ahı motivandome y ayudandome

en todo momento.

A toda mi familia por su paciencia y apoyo in-

condicional.

Page 7: Atenci on al cliente por medio de reconocimiento facial

vii

Abstract

Due to the rapid progress in artificial intelligence and algorithms applied to machine learning,

social robotics is now part of the most important technological advances that have been

reached today. Hence, the biggest challenge facing this field is figuring out how to get robots

into human environments [1], therefore research in natural interaction between humans and

robots is growing. Nowadays, robots are used to assist with the performance of daily life tasks

in areas such as education, health, entertainment, security, customer services, among many

others. Because of this, social robots must acquire the ability of interacting with people

in a natural way, this is called Natural Language Processing. The first step to reach this

capacity is to detect and recognize people in a natural way. Because of this, through this

undergraduate dissertation a customer service application, focused on detection and face

recognition, will be developed.

Keywords: Robotics, Artificial Intelligence, Social robots, Natural Language Processing, Human-

robot interaction

Page 8: Atenci on al cliente por medio de reconocimiento facial

Tabla de contenido

Lista de figuras X

Lista de tablas XI

1 Introduccion 1

1.1 Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Objetivos 3

2.0.1 Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.0.2 Objetivos especıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1 Alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3 Marco teorico 5

3.1 Robotica social . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.2 Robots sociales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.3 Interaccion humano-robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.4 Lenguaje natural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.5 Deteccion facial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.6 Reconocimiento facial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.7 ROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.8 OpenCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.9 Scikit-Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4 Propuesta metodologica 13

4.1 Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.2 Propuesta metodologica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5 Analisis de resultados 18

5.1 Resultados obtenidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

5.1.1 Deteccion facial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

5.1.2 Reconocimiento facial . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5.1.3 Integracion de los dos modulos . . . . . . . . . . . . . . . . . . . . . . 24

6 Conclusiones 25

Page 9: Atenci on al cliente por medio de reconocimiento facial

Tabla de contenido ix

Bibliografıa 26

Page 10: Atenci on al cliente por medio de reconocimiento facial

Lista de figuras

3-1 Pepper:robot semi humanoide [6] . . . . . . . . . . . . . . . . . . . . . . . . 6

3-2 Formas de interaccion humano-robot[4] . . . . . . . . . . . . . . . . . . . . . 7

3-3 Pasos para el desarrollo de Viola Jones . . . . . . . . . . . . . . . . . . . . . 8

3-4 Estructura de un grafo de ROS[16] . . . . . . . . . . . . . . . . . . . . . . . 11

4-1 Grafo implementado para la aplicacion . . . . . . . . . . . . . . . . . . . . . 14

5-1 Multiples personas detectadas . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5-2 Deteccion de rostros para dos personas . . . . . . . . . . . . . . . . . . . . . 20

5-3 Preprocesamiento: alineamiento de las imagenes . . . . . . . . . . . . . . . . 21

5-4 Varianza vs numero de componentes . . . . . . . . . . . . . . . . . . . . . . 21

5-5 Eigenfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5-6 SVM con kernel RBF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5-7 SVM One vs All . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5-8 Proceso de reconocimiento facial . . . . . . . . . . . . . . . . . . . . . . . . . 24

Page 11: Atenci on al cliente por medio de reconocimiento facial

Lista de tablas

4-1 Criterios de evaluacion del modelo . . . . . . . . . . . . . . . . . . . . . . . . 16

5-1 Primeros resultados obtenidos . . . . . . . . . . . . . . . . . . . . . . . . . . 18

5-2 Resultados optimos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Page 12: Atenci on al cliente por medio de reconocimiento facial

1 Introduccion

1.1. Motivacion

Debido a los grandes avances a los que se ha llegado en el campo de la Inteligencia Artificial

y Machine Learning, la robotica social se ha convertido en uno de los avances tecnologicos

mas importantes a los que se ha llegado hoy en dıa. Aun ası, el reto mas grande que presenta

este campo de investigacion es como integrar los robots a los ambientes humanos. Por este

motivo, la investigacion en la interaccion natural humano robot esta creciendo significati-

vamente. Hoy en dıa los robots tienen un rol de asistentes en aplicaciones del dıa a dıa de

las personas como por ejemplo en la educacion, en temas de la salud, de entretenimiento,

seguridad, atencion al cliente, entre otros. En este orden de ideas, una de las metas que

se tiene hoy en dıa es permitir que los robots sociales tengan una buena relacion con las

personas y alcancen un papel beneficioso en la cotidianidad. Para ello se requiere desarrollar

habilidades cognitivas y sociales que sean aplicadas al comportamiento de los robots, dentro

de las cuales se encuentran la identificacion y el reconocimiento facial.

En efecto, el reconocimiento facial es trascendental para la cotidianidad de las personas, pues

es la habilidad que permite entablar relaciones interpersonales, razon por la cual mediante

este proyecto de grado se busca trabajar alrededor de este tema. Si los robots llegan a tener

la capacidad de reconocer y recordar las personas con las cuales interactuan, serıan capaces

de aprender sus caracterısticas especıficas a medida que interactuan con estos. Eventual-

mente, esto mejorarıa, en gran medida, la relacion entre los humanos y los robots. Ası pues,

el proyecto propuesto consiste en la implementacion y desarrollo de un sistema que pueda

ser de gran utilidad para oficinas, hoteles, universidades, entre otros, pues es una aplicacion

que permitira brindar atencion al cliente. La aplicacion sera implementada en un robot se-

mi humanoide, con el fin de apropiarse del contexto de interaccion entre el robot y los clientes.

Se propone utilizar el robot semi-humanoide Pepper creado por Softbank Robotics, el cual se

encuentra en uno de los laboratorios de la Universidad de los Andes. El prototipo se desa-

rrollara utilizando modelos pre-entrenados y tecnicas de Machine Learning. Adicionalmente,

se creara una base de datos con imagenes de estudiantes de la Universidad de los Andes,

con el fin de probar la aplicacion a desarrollar. El modelo a implementar de reconocimiento

facial se entrenara con esta base de datos y se espera que el robot sea capaz de reconocer la

persona con la cual interactua. En caso de que el robot no conozca a la persona, es decir que

no se encuentre en la base de datos, el robot tomara una serie de imagenes de la persona y

Page 13: Atenci on al cliente por medio de reconocimiento facial

2 1 Introduccion

se reentrenara el modelo, de manera tal que esta persona pueda ser reconocida por el robot

en futuras interacciones. El producto final sera una prueba en tiempo real con el robot, el

cual se encargara de detectar una o mas personas en el lugar de prueba y podra, despues de

interactuar con las personas, reconocer a los que se encuentren allı.

1.2. Estructura del documento

El informe de esta tesis esta dividido en seis capıtulos los cuales se distribuyen de la siguien-

te manera, el primer capıtulo se centra en la presentacion de la motivacion del proyecto. El

segundo capıtulo presenta los objetivos y el alcance del proyecto.

El tercer capıtulo proveera informacion relacionada con el marco teorico e historico. Se ini-

ciara con el concepto de interaccion humano robot, seguido de un resumen de las teorıas y

principios involucrados en el desarrollo del proyecto, incluyendo tecnicas de Machine Lear-

ning utilizadas para el procesamiento de imagenes y reconocimiento de rostros. Luego, se

describira, analizara y compararan diferentes referencias sobre trabajos previos relacionados

con la problematica desarrollada.

En el cuarto capıtulo se define la propuesta metodologica. Para ello se planteara el problema

a abordar, el cual consiste en un sistema de deteccion y reconocimiento facial. Seguido de

esto, se procede a plantear la propuesta de la solucion, es decir como se busca resolver el

problema incluyendo los supuestos y criterios utilizados.

El quinto capıtulo es una recopilacion de los resultados obtenidos. En este se encontrara

el caso de estudio, la comparacion de los resultados ante variaciones en los modelos y un

analisis de lo que se pudo observar al finalizar la solucion del problema.

Finalmente, en el sexto capıtulo se concluye el proyecto, incluyendo la retroalimentacion so-

bre lo que se desarrollo a lo largo de la tesis, enfatizando en los objetivos que se alcanzaron,

los que no y en las posibles mejoras y trabajo futuro.

Page 14: Atenci on al cliente por medio de reconocimiento facial

2 Objetivos

2.0.1. Objetivo general

Desarrollar un sistema de atencion al cliente, con el cual un robot semi-humanoide sea capaz

de detectar y reconocer personas. Adicionalmente, el robot debe interactuar con el cliente

para brindarle un buen servicio.

2.0.2. Objetivos especıficos

El proyecto busca alcanzar los siguientes objetivos especıficos:

1. Evaluar, integrar y adaptar modelos y herramientas existentes para deteccion facial.

2. Investigar diferentes tecnicas de reconocimiento facial.

3. Integrar y adaptar modelos para reconocer y etiquetar personas

4. Construir base de datos para el reconocimiento facial.

5. Evaluar el desempeno del sistema utilizando el robot.

6. Construir un sistema de interaccion con las personas que detecta y reconoce el robot.

2.1. Alcance

Para el desarrollo del proyecto se tuvieron en cuenta algunas restricciones y se definieron

los alcances del mismo. Mediante este proyecto se busca disenar una aplicacion para que el

robot semi-humanoide pueda brindar un servicio personalizado para clientes en un escenario

especıfico. Para ello, el sistema a desarrollar cuenta con dos modulos, uno para deteccion de

rostros y el otro para reconocimiento facial. Se pretende que el sistema sea rapido y auto-

matizado, lo cual permitira que el robot interactue con la persona a la cual esta atendiendo.

Se utilizara el procesador del robot para la ejecucion de la aplicacion, por lo cual se debio

tener en cuenta las limitaciones del mismo para la construccion de los modulos del siste-

ma. Esto quiere decir que se debe buscar algoritmos con bajo costo computacional para el

desarrollo de la aplicacion. En cuanto al desarrollo del sistema, se busca utilizar Python

como el lenguaje de programacion y librerıas como OpenCV y Sklearn para el desarrollo

Page 15: Atenci on al cliente por medio de reconocimiento facial

4 2 Objetivos

de la aplicacion. Adicionalmente, el sistema debe ser implementado mediante un sistema

operativo robotico, conocido como ROS. Finalmente, las pruebas y resultados obtenidos y

presentados en este documento seran obtenidos en la Universidad de los Andes, al igual que

la construccion de la base de datos.

Page 16: Atenci on al cliente por medio de reconocimiento facial

3 Marco teorico

3.1. Robotica social

La robotica juega un papel fundamental dentro de los desarrollos tecnologicos que se han

alcanzado actualmente, pues su estudio busca aportar un apoyo en el desarrollo de tareas

que representen alguna dificultad para los humanos y por lo tanto ofrece una mejora en

la vida cotidiana [2]. En este campo de estudio se encuentran aquellos robots disenados y

programados para interactuar con otras personas en entornos asistenciales, urbanos o en

general en el sector de servicios; a estos robots se les denomina robots sociales [3].

Los estudios y avances entorno a la robotica social han hecho posible que estas maquinas

sean integradas al dıa a dıa de las personas. Esto significa que mediante estos robots se ha

buscado alcanzar la interaccion con los humanos, lo cual permite incluir poco a poco a estas

maquinas en la vida social humana. Aun ası, para que los robots alcancen una inteligencia

social se debe trabajar en desarrollar su capacidad de autonomıa y dotarlos de capacidades de

aprendizaje y adaptabilidad a ambientes dinamicos[2]. En este orden de ideas, integrar estas

maquinas a la vida cotidiana de las personas permitirıa brindarles a estos ultimos un apoyo en

escenarios como el hogar, almacenes, hospitales, en situaciones donde se requiera vigilancia

o apoyo en la seguridad, entre otros. Los mecanismos de interaccion entre los humanos y los

robots implican un nuevo paradigma de trabajo en el campo de la robotica, dando lugar a

nuevas tecnologıas, estrategias y metodos encaminados a permitir una comunicacion entre

la maquina y las personas atendiendo normas sociales [4].

3.2. Robots sociales

Segun [5], los robots sociales son robots autonomos o semiautonomos que interactuan y se

comunican con los humanos siguiendo las normas dadas por estos ultimos. Los robots sociales

pueden ser humanoides o semihumanoides, por lo cual estan disenados especialmente para

mantener una conversacion, empatizar, ser amigables, identificar a las personas y reconocer

lenguajes verbales y gestos. Actualmente, los robots sociales mas populares del mercado son

ASIMO, Qrio, NAO, Maggie, Romeo y Pepper [5]. Cada uno de ellos contiene caracterısti-

cas de hardware y software que difieren segun su objetivo. Aun ası, cada uno de ellos debe

ser equipados con un conjunto de sensores. Estos les permiten obtener informacion visual,

por medio de camaras, informacion de distancia con el uso de sensores tipo sonar o laser e

Page 17: Atenci on al cliente por medio de reconocimiento facial

6 3 Marco teorico

informacion auditiva con el uso de microfonos [4]. Para el proyecto de grado se utilizara al

robot Pepper, por lo cual a continuacion se presentan sus especificaciones.

En la figura 3-1 se presenta al robot semi humanoide utilizado para el proyecto de grado.

Pepper es un robot semi-humanoide de 120 centımetros, programable y disenado para in-

Figura 3-1: Pepper:robot semi humanoide [6]

teractuar con personas. Cuenta con sensores, actuadores y camaras, cuya informacion es

adquirida con base en la documentacion facilitada por la empresa SoftBank. En cuanto a

las camara con las que cuenta, estas facilitan el reconocimiento del entorno en el que se

encuentra el robot y de los objetos y personas que se encuentren cerca de este. En cuanto

a los actuadores, el robot cuenta con 5 tipos diferentes de motores que permiten realizar el

movimiento de articulaciones. Adicionalmente, cuenta con LED’s, microfonos, parlantes y

camaras 2D y de profundidad. A continuacion se hablara mas en detalle de los elementos

relevantes para el proyecto.

Camara de profundidad: Se encuentra en el ojo derecho del robot, cuyo angulo de

vision es de 58◦. Alcanza una velocidad de 20 Frames por Segundo.

Camaras 2D: Estan ubicadas en la frente y boca de Pepper. Tienen una resolucion

de 5MP. Dependiendo de la resolucion se alcanza una velocidad de 30 Frames por

Segundo. Su angulo de vision es de 55,20◦.

Por otro lado, Pepper cuenta con una tablet para facilitar la interaccion con personas. Cuenta

con una memoria RAM de 1GB y una Flash de 4 GB. Hablando sobre los sensores, Pepper

cuenta con acelerometro, giroscopio, laseres, sensores infra-rojos, sonares y encoders de rota-

cion magnetica. Adicionalmente, tiene un sensor tactil en la cabeza y una tablet en el pecho

para facilitar su interaccion [7].

Page 18: Atenci on al cliente por medio de reconocimiento facial

3.3 Interaccion humano-robot 7

Figura 3-2: Formas de interaccion humano-robot[4]

3.3. Interaccion humano-robot

La informacion adquirida por medio de los sensores del robot es procesada para poder entrar

en la etapa de procesamiento la informacion y de comunicacion con el ser humano. En la

figura 3-2 se presentan algunas formas de interaccion entre los humanos y los robots. El

robot es considerado como el receptor de los mensajes o senales enviadas por el humano. Los

mecanismos de interaccion se centran en la deteccion de gestos, expresiones y reconocimiento

de voz [4]. Como se puede ver en la figura 3-1, mediante gestos o palabras la persona puede

presentarle alguna solicitud al robot, el cual reconocera el gesto o el audio para tomar una

u otra decision segun la forma en la que se procese el mensaje. Adicionalmente, mediante el

reconocimiento de expresiones el robot puede pronosticar el estado actual de la persona y

con algun sistema de reconocimiento facial, la maquina podra determinar si la persona con

la cual se encuentra interactuando es conocida o desconocida para el mismo.

3.4. Lenguaje natural

Para mejorar las interacciones entre los robots y los humanos con el paso del tiempo, el

sistema debe ser capaz de aprender de sus experiencias, sus errores y las retroalimentaciones

ofrecidas por el usuario. El objetivo a largo plazo de la interaccion entre las maquinas y los

humanos, es lograr las capacidades de autoaprendizaje de las maquinas.

El procesamiento de lenguajes naturales, abreviado PLN, es un campo de la inteligencia ar-

tificial que estudia las interacciones entre los computadores y el lenguaje humano [13]. Este

campo busca disenar una comunicacion que no solo se base en la comprension del lenguaje,

sino en aspectos generales cognitivos. Para esto, la maquina debe adquirir la capacidad de

comprender el significado de la informacion que recibe e integrarla con lo ya conocido.

3.5. Deteccion facial

Un sistema de deteccion facial busca identificar automaticamente si en una imagen de tamano

arbitrario se encuentra un rostro humano, y de ser ası, debe identificar donde esta. Para que

Page 19: Atenci on al cliente por medio de reconocimiento facial

8 3 Marco teorico

esto se pueda lograr, se utiliza una base de datos con millones de fotos positivas y negativas,

es decir fotos con informacion sobre personas y otras que no contengan esta informacion.

Para que un modelo, o clasificador, logre aprender a detectar personas en diferentes espacios

y situaciones, se asume un escenario totalmente supervisado y para ello se proporcionan

imagenes positivas y negativas con etiquetas. A continuacion se presentan algunos de los

algoritmos mas implementados para la aplicacion de deteccion facial.

Viola-Jones

El algoritmo de Viola-Jones, implementado por Paul Viola y Michael Jones [8], se destaca por

su bajo costo computacional y su baja posibilidad de clasificar erroneamente. El algoritmo

se basa en una serie de clasificadores debiles llamados Haar-like features, las cuales son

calculadas a partir de una imagen integral. Con el fin de trabajar sobre un clasificador fuerte,

se agrupan varios clasificadores debiles en cascada empleando un algoritmo de aprendizaje

conocido como AdaBoost, o Adaptive Boosting [9].

En la figura 3-3 se presentan los pasos requeridos para que el

algoritmo de Viola-Jones detecte personas en tiempo real.

Caracterısticas Haar:

Las caracterısticas Haar son similares a los wavelet de Haar

que se describe como un conjunto de ladrillos, los cuales se

encargan de reconstruir o representar una funcion, senal o

imagen [10]. Cada caracterıstica, encontrada en la imagen

a analizar, constituye la diferencia de intensidades lumino-

sas entre regiones rectangulares adyacentes [9]. Las carac-

terısticas son definidas por unos rectangulos y su posicion es

relativa a la ventana de busqueda. En el trabajo de Viola-

Jones las caracterısticas se definen sobre una ventana de

busqueda de 24x24 pıxeles, lo que resulta en aproximada-

mente 180,000 caracterısticas [9].

Imagen integral :

Las imagenes integrales son una manera intermedia de re-

presentar una imagen. La imagen integral en un punto (x,y)

contiene la suma de todos los pıxeles de los rectangulos en-

contrados para las caracterısticas haar, que se encuentran

arriba y a la izquierda de ese punto en la imagen. La ima-

gen integral es finalmente, una representacion mas sencilla

de la imagen original, construida por la suma por regiones

de los pıxeles de la imagen original.

Figura 3-3: Pasos para el

desarrollo de

Viola Jones

Page 20: Atenci on al cliente por medio de reconocimiento facial

3.6 Reconocimiento facial 9

Adaptive Boosting:

Mediante un algoritmo basado en AdaBoost, se lleva acabo el entrenamiento super-

visado necesario para crear la cascada de clasificadores. El boosting consiste en crear

un clasificador robusto a partir de la integracion de clasificadores debiles. Este pro-

ceso consiste en corregir, para clasificadores subsecuentes, los errores cometidos por

clasificadores anteriores. Esto se logra mediante la asignacion de pesos a cada ejemplo

de entrenamiento, luego se entrena el clasificador y se elige el mejor. Se actualizan

los pesos de acuerdo al error de clasificacion, los ejemplos que obtuvieron una etique-

ta erronea obtienen mayor peso para darle mayor importancia y poder ser clasificado

correctamente por el siguiente clasificador.

Clasificadores en cascada:

Una vez se obtiene el clasificador fuerte, o preciso se construyen clasificadores mas

pequenos y mas simples. El procedimiento consiste en dividir las imagenes en sub

ventanas para facilitar la clasificacion. Los clasificadores pequenos buscan entonces

rechazar las sub ventanas que no contengan informacion sobre rostros. De esta manera

se desea enfocar el clasificador en aquellas sub ventanas positivas, es decir en aquellas

que contienen informacion sobre rostros. De esta manera se obtiene un clasificador en

cascada, donde cada clasificador es entrenado con AdaBoost [9].

Identificacion de personas:

Las imagenes usadas para el entrenamiento son normalizadas, por lo cual la imagen

que se clasifica tambien debe ser normalizada. De esta manera se garantiza una mini-

mizacion de los efectos de diferentes condiciones de iluminacion. Una vez normalizada,

comienza el proceso de deteccion de rostros teniendo en cuenta el proceso mencionado

previamente.

3.6. Reconocimiento facial

Una de las aplicaciones del reconocimiento facial es identificar y etiquetar a una persona

en un cuadro de imagen o video con su nombre. Segun [11], los metodos de reconocimiento

facial se dividen en procesos geometricos y fotometricos. Los primeros se encargan de extraer

caracterısticas especıficas de la imagen de una persona. Con este metodo se puede analizar

particularidades como dimension, forma y posicion relativa de los ojos, la nariz, la boca,

entre otros. La segunda categorıa utiliza una base de datos de imagenes y se extraen las

caracterısticas o datos de los rostros, se normalizan y se comprimen. De esta manera, con el

metodo estadıstico la imagen a analizar es cuantificada con los mismos terminos.

Entre los metodos mas implementados para reconocimiento facial se encuentra el metodo

Eigenfaces, el algoritmo Fisherfaces, el modelo de Markov Oculto, entre otros. Para este

Page 21: Atenci on al cliente por medio de reconocimiento facial

10 3 Marco teorico

proyecto se desarrollo el metodo Eigenfaces para el modulo de reconocimiento facial, el cual

sera descrito a continuacion.

Eigenfaces

El termino eigen hace referencia a un conjunto de vectores propios. Una de las ventajas de

este metodo es que se puede representar un conjunto de imagenes usando una base formada

de imagenes eigen cuya dimension es mucho menor a la del conjunto original [12]. El patron

que representa a cada imagen debe estar compuesto por los elementos mas importantes

de la imagen, lo cual permite reducir los datos usados en el proceso de clasificacion. Por

otro lado, esta tecnica es comunmente utilizada porque presenta una gran simplicidad en

su implementacion y los resultados obtenidos son altamente precisos. A continuacion, para

comprender mejor el que se lleva acabo en este metodo de reconocimiento, se explicara el

paso a paso del modelo.

1. Un set de n imagenes {x1, x2, ...xn} toma valores en una imagen de espacio n-dimensional,

y cada imagen pertenece a una de c clases {X1, X2, ...Xc}

2. Se hace una transformacion lineal, que mapea la imagen original n-dimensional en una

m-dimensional, donde se cumple:

m < n.

Para hacer esta reduccion de dimensionalidad se utiliza una tecnica conocida como

PCA o analisis de componentes principales. Mediante esta tecnica se debe calcular la

matriz de covarianza de los datos, es decir la covarianza de la matriz que contiene la

informacion de todas las imagenes de la base de datos, y se considera el vector propio

mas grande de esa matriz. A este vector se le conoce como eigen vector. Sobre este

vector se proyectan los datos para reducir sus dimensiones, creando nuevos vectores

caracterısticos yk definidos por la siguiente ecuacion:

yk = wTxk (3-1)

Al seleccionar el vector con mayor dispersion, se retienen los aspectos mas imporantes

de los datos y para el clasificador es mas facil hacer una buena prediccion sobre unos

datos dispersos que sobre unos acumulados.

Con esta tecnica de reduccion de dimensionalidad se logran extraer los elementos esenciales

de las imagenes y rechazar las caracterısticas o segmentos de las imagenes que son menos

crıticos.

Page 22: Atenci on al cliente por medio de reconocimiento facial

3.7 ROS 11

3.7. ROS

ROS o Robot Operating System es una coleccion de frameworks para el desarrollo del software

de los robots. Esta basado en una arquitectura de grafos que ocurre en los nodos, los cuales

pueden recibir y mandar mensajes. Las areas mas relevantes que incluye ROS son [15]:

Nodo principal de coordinacion

Publicacion o subscripcion de flujo de datos. Pueden ser imagenes, mensajes tipo en-

tero, caracteres, etc.

Creacion y destruccion de nodos

La comunicacion entre nodos permite la ejecucion de tareas especıficas, y esta comunicacion

se lleva acabo mediante la publicacion de mensajes en algo llamado topicos.En la figura 3-4

se presenta un ejemplo de la comunicacion entre nodos. Uno de los nodos invoca el servicio

del nodo que envıa la informacion, este ultimo publica mensajes a traves de topicos y el otro

nodo se subscribe a estos. De esta manera se garantiza que la informacion llegue de un nodo

a otro.

Figura 3-4: Estructura de un grafo de ROS[16]

3.8. OpenCV

Open Source Computer Vision, OpenCV es una librerıa de vision por computaor que, como

lo indica su nombre, es de libre acceso. Permite ejecutar analisis de imagen y aprendizaje

automatico [14]. Para ello, la librerıa dispone de multiples algoritmos que permiten reco-

nocer objetos, clasificarlos, detectar movimientos de manos, detectar rostros, entre otros.

Adicionalmente, es una librerıa multiplataforma disponible para diferentes sistemas opera-

tivos como Windows, Mac, Linux y Android.

3.9. Scikit-Learn

Segun [18], Scikit-Learn es una de las librerıas mas utilizadas para Machine Learning en

Python. Al igual que OpenCV, es de codigo abierto y se utiliza en diferentes contextos,

Page 23: Atenci on al cliente por medio de reconocimiento facial

12 3 Marco teorico

proporcionando una amplia gama de algoritmos supervisados y no supervisados. Algunos

de los algoritmos de Machine Learning desarrollados por esta librerıa son regresion lineal,

maquinas de vectores de soporte (SVM),arboles de decision, entre otros.

Page 24: Atenci on al cliente por medio de reconocimiento facial

4 Propuesta metodologica

4.1. Planteamiento del problema

La propuesta del proyecto de grado es desarrollar una aplicacion de atencion al cliente,

mediante la cual el robot semi humanoide Pepper pueda interactuar con los usuarios y

brindarles un servicio agradable. El proyecto se enfoco en el desarrollo de dos modulos, el

primero consiste en deteccion facial el cual se baso en el modelo Viola-Jones. Adicionalmente,

para la integracion de Viola-Jones al proyecto se utilizaron las librerıas de OpenCV, mas

especıficamente las librerıas enfocadas en identificacion de personas.

El segundo modulo le corresponde al reconocimiento facial, para el cual se construyo una

base de datos con imagenes de multiples personas, etiquetadas con su nombre, para luego

desarrollar el modelo de Eigenfaces para reconocer a las personas que se encuentran en la

base de datos. Para esto se utilizaron las librerıas de Scikit-Learn. Adicionalmente, se busca

que Pepper interactue y hable con las personas mientras el modelo determina si el usuario

con el cual interactua el robot se encuentra o no en la base de datos, lo cual equivale a decir

que es conocido o desconocido. Ahora bien, para construir toda una herramienta de servicio

al cliente, se utilizo ROS para integrar los modulos y poder acceder a la informacion de los

sensores y las camaras del robot.

4.2. Propuesta metodologica

Para obtener un buen desempeno con los modelos construidos para la aplicacion, se propuso

la implementacion de un sistema en ROS que facilitara el envıo y recepcion de mensajes

por parte del robot. El grafo del sistema en ROS se presenta en la figura 4-1. Mediante la

explicacion de cada uno de los elementos del grafo se pretende exponer la metodologıa que

se llevo acabo para la realizacion del proyecto.

Nodo principal:

En primer lugar, como se menciono en el Capıtulo 3 , uno de los elementos mas rele-

vantes en un grafo de ROS es el nodo principal o de coordinacion. En este caso, ese

nodo corresponde al robot toolkit. El Robot Toolkit es una herramienta desarrollada

por la Alianza SinfonIA [17] que busca gestionar y facilitar la comunicacion con los

componentes del hardware del robot Pepper. Esta herramienta contiene cinco modu-

los, cada uno de ellos se encarga de agrupar los topicos, suscriptores y los servicios de

Page 25: Atenci on al cliente por medio de reconocimiento facial

14 4 Propuesta metodologica

Figura 4-1: Grafo implementado para la aplicacion

ROS necesarios para gestionar de manera correcta cada una de las funcionalidades del

robot. Los modulos corresponden a:

• Herramienta de navegacion: incluye las funcionalidades necesarias para la aplica-

cion de navegacion autonoma

• Herramienta de vision: incluye una serie de herramientas para el uso de las dife-

rentes camaras del robot

• Herramienta de audio: incluye las funcionalidades necesarias para el uso de los

microfonos y el habla del robot.

• Herramientas de movimiento: incluye las funciones necesarias para mover el robot

• Herramienta de interaccion: contiene funcionalidades para interactuar

Como se puede ver en la figura 4-1, para este proyecto las herramientas utilizadas del

Robot Toolkit son las de vision y audio, pues mediante estas se adquiere la informacion

de las camaras, se accede al microfono y se procesa la informacion que escucha el robot.

Nodo face detection:

En este nodo se desarrollo el algoritmo para deteccion facial. Como se menciono en

el Capıtulo 3, el algoritmo implementado fue Viola-Jones. Siguiendo el procedimiento

presentado en la figura 3-3 y con ayuda de las librerıas de OpenCV se programo el

nodo de deteccion facial, el cual funciona de la siguiente manera: se activa el servicio

de las camaras de Pepper, lo cual se le solicita al Robot Toolkit y en tiempo real el

algoritmo de Viola-Jones se encarga de detectar la presencia de personas en el rango de

vision de Pepper. Una vez se encuentra una persona, se determina el bounding box que

encierra el rostro de la personas. Mediante este algoritmo tambien es posible conocer el

numero de personas presentes, en caso de que sea mas de una. El nodo face detection

publica un bool para indicar si se detecta o no alguna persona, y adicionalmente guarda

la imagen de la o las personas detectadas. En el diagrama, el topico de la imagen se

denomino /face.

Page 26: Atenci on al cliente por medio de reconocimiento facial

4.2 Propuesta metodologica 15

Nodo face recognition:

En este nodo se desarrollo el algoritmo de Eigenfaces para el reconocimiento facial.

Para que esto fuera posible, antes se construyo una base de datos con estudiantes de la

Universidad de los Andes. Esta base de datos contiene 150 imagenes de 12 estudiantes

que componen el conjunto de datos. Las imagenes fueron tomadas explotando dos

observaciones:

• Todas las imagenes son obtenidas desde el campo visual del robot, pero bajo

diferentes condiciones de luz

• Hay variaciones en las condiciones de luz y en las expresiones faciales

Por este motivo, las 150 imagenes fueron tomadas en 3 grupos de 50 imagenes, pues

cada uno de ellos contenıa una condicion de luz diferente.

Ahora bien, continuando con la explicacion del algoritmo de reconocimiento facial, en

el Capıtulo 3 se explico el procedimiento necesario para la construccion del modelo de

Eigenfaces. Teniendo en cuenta estos pasos y con la ayuda de Scikit-Learn se desarrollo

el modelo de reconocimiento facial. En primera instancia se realizo toda la importacion

de los datos, que corresponde a las imagenes de la base de datos. Luego se construyo

el sistema de reduccion de dimensionalidad o PCA y finalmente el clasificador imple-

mentado fue un SVM, mas especıficamente One vs All.

Por otro lado, la prediccion del modelo se realiza con base en la imagen publicada en

/face, por el nodo face detection. Una vez se procesa la imagen, el nodo face recognition

publica informacion al nodo bot, indicando si la persona es conocida o desconocida

(/k u). Esto se repite para todas las imagenes enviadas por el nodo face detection.

Nodo bot :

Este nodo es encargado de toda la parte de interaccion con el usuario. Mas especıfi-

camente, utiliza las herramientas de audio e interaccion proporcionadas por el toolkit.

Segun los mensajes que recibe este nodo, por ejemplo si la persona detectada por Pep-

per es conocida o desconocida, el bot activara los servicios de speech para hablar con el

usuario, y decirle algo como “Hola humano, parece que aun no nos conocemos” en caso

de que la persona sea desconocida, o en caso de que sea conocida saludara al usuario

con su respectivo nombre.

Existen dos casos en este proyecto, que la persona que se aproxima a Pepper es co-

nocida o desconocida. En caso que el nodo face recognition le publique a bot que la

persona es conocida, este ultimo construye el mensaje mencionado previamente con el

nombre de la persona. Mientras que si la persona es desconocida suceden dos cosas:

1. Pepper le dice a la persona que no la conoce y por lo tanto le pregunta su nombre.

En el nodo speech recognition se ejecuta una herramienta conocida como ALS-

peechRecognition [19]. Esta herramienta le da al robot la capacidad de reconocer

Page 27: Atenci on al cliente por medio de reconocimiento facial

16 4 Propuesta metodologica

palabras o frases predefinidas, por lo cual, dada una lista de nombres el robot es

capaz de escuchar y guardar el nombre que el usuario le comunica. Este nombre

es publicado en /text, y el bot se encarga de almacenar este nombre para poder

agregar a la persona a la base de datos.

2. Una vez se guarda el nombre, Pepper procede a tomarle 35 imagenes al usuario, las

cuales son almacenadas en la base de datos original con el nombre escuchado por

el robot. Una vez se toman las 35 fotos, se reentrena el modelo de reconocimiento

facial, para posteriormente reconocer al nuevo usuario. Idealmente, una vez el

modelo es reentrenado Pepper es capaz de llamar al usuario por su nombre, pues

ya no sera una persona desconocida.

Esto corresponde a la construccion del grafo de ROS y la integracion de cada una de las

herramientas hace posible la ejecucion de la aplicacion. Por otro lado, es relevante mencionar

que durante el proceso de construccion de los modelos, mas especıficamente los de deteccion

y reconocimiento facial, se presentaron inconvenientes y fallas en los modelos que impedıan

tener alta precision al momento de clasificar las imagenes. Por esto, a lo largo del proyecto se

utilizaron diferente criterios de evaluacion del rendimiento de los modelos, para ası definir si

se debıa modificar o mejorar algun parametro o algun procedimiento para llegar a un mayor

nivel de precision. En la tabla 4-1 se expone la manera en la cual se presentan algunos de

los criterios de evaluacion utilizados.

Prediccion

Negativo Positivo

RealNegativo real NR FP Verdadero negativo (NR/NR+FP)

Positivo real FN PR Exactitud (PR/FN+PR)

Sensibilidad Especificidad

(PR/PR+FN) (NR/NR+FP)

Tabla 4-1: Criterios de evaluacion del modelo

Especıficamente, se utilizo [9]:

Verdaderos positivos (PR): numero de detecciones acertadas.

Falsos positivos (FP): numero de detecciones que no contienen rostros.

Falsos negativos (FN): numero de detecciones de rostros que no son detectados.

Precision o exactitud: razon entre verdaderos positivos y total de detecciones realizadas.

Exactitud =PR

PR + FN(4-1)

Page 28: Atenci on al cliente por medio de reconocimiento facial

4.2 Propuesta metodologica 17

Recall o sensibilidad: es la razon entre los verdaderos positivos y el total de detecciones

existentes.

RC =PR

PR + FN(4-2)

Ademas de estos criterios, para el modelo de reconocimiento facial se construyeron matrices

de confusion, para conocer aquellos casos en los cuales el modelo tendıa a fallar con mayor

frecuencia.

Page 29: Atenci on al cliente por medio de reconocimiento facial

5 Analisis de resultados

5.1. Resultados obtenidos

Para presentar los resultados se hablara en primer lugar del modulo de deteccion facial y

luego del modulo de reconocimiento facial.

5.1.1. Deteccion facial

Para la implementacion de la herramienta de Viola-Jones, se utilizaron las librerıas de de-

teccion facial de OpenCV. OpenCV cuenta con clasificadores pre-entrenados para caras,

particularmente contiene archivos XML donde se almacenan los pesos correspondientes al

pre-entrenamiento para rostros. Ası pues, el detector facial construido se baso en el archivo

de pesos de OpenCV para deteccion de rostros.

Ası pues, para el desarrollo del codigo, en primer lugar se cargaron los clasificadores XML

necesarios para luego encontrar rostros en las imagenes percibidas por el robot. Si se encuen-

tra una cara, el codigo devuelve las posiciones de la misma y se pinta un recuadro alrededor

del rostro. Con el fin de evaluar el primer modelo desarrollado, se realizaron pruebas sobre

149 imagenes. El resultado obtenido se presenta en la tabla 5-1. Como se puede ver, la

Prediccion

Negativo (modelo) Positivo(modelo)

RealNegativo real 10 65 Verdadero negativo 0,133

Positivo real 44 30 Exactitud 0,405

Sensibilidad Especificidad

0,405 0,133

Tabla 5-1: Primeros resultados obtenidos

clasificacion presenta una exactitud del 40, 5 %, pues tiene un alto numero de falsos positivos

comparado con el numero de reales positivos. Para 65 imagenes en las cuales no habıa ros-

tros, el clasificador etiquetaba otro tipo de objetos como falsos positivos. Por esta razon, se

busco el clasificador optimo mediante la evaluacion del desempeno del mismo al variar ciertos

parametros. El cambio mas importante se realizo en uno de los parametros de la funcion del

clasificador en cascada creado por OpenCV. Esta funcion corresponde a detectMultiScale(),

la cual recibe como parametro la imagen a evaluar, un factor de escala, un factor de mınimos

Page 30: Atenci on al cliente por medio de reconocimiento facial

5.1 Resultados obtenidos 19

vecinos y dos valores del tamano mınimo y maximo que puede llegar a tener la imagen . Los

dos parametros mas relevantes para efectos de precision del modelo son el factor de mınimos

vecinos y el factor de escala. El factor de escala hace referencia a que tanto es reducido el

tamano de la imagen en cada escala de la imagen. En otras palabras, el modelo tiene un

tamano fijo definido para las imagenes en el entrenamiento, el cual corresponde al tamano

de las caras detectadas en cada imagen. Por lo cual, al cambiar el tamano de la imagen de

entrada, reduce su tamano para poder facilitar su deteccion por el algoritmo. Por otro lado,

el valor correspondiente al mınimo numero de vecinos, indica cuantos vecinos debe tener

cada rectangulo o sub ventana, que sean candidatos a clasificar como verdaderos positivos.

Entre mas alto es este valor, el clasificador se vuelve mas exigente al momento de clasificar

un rostro, pues debe encontrar el mınimo numero de vecinos que tambien sean candidatos a

clasificar como rostro, para tener una buena clasificacion.

Para los resultados de la tabla 5-1 no se tuvo en cuenta ninguno de los dos parametros des-

critos para la funcion detectMultiScale(), pero al identificar la importancia de estos valores

se encontro experimentalmente que los mejores valores, para este caso son:

Factor de escala (scaleFactor) = 1.3

Mınimo numero de vecinos (minNeighbors) = 5

Modificando estos parametros, se obtuvo el resultado presentado en la tabla 5-2. Para un

Prediccion

Negativo (modelo) Positivo(modelo)

RealNegativo real 10 2 Verdadero negativo 0,83

Positivo real 1 95 Exactitud 0,99

Sensibilidad Especificidad

0,99 0,83

Tabla 5-2: Resultados optimos

total de 108 muestras, el modelo tuvo una exactitud del 99 %, presentando unicamente 2

casos en los cuales se clasifico un objeto negativo como positivo, es decir falsos positivos.

Comparando los dos resultados, se puede decir que el desempeno del modelo mejoro signi-

ficativamente gracias a la inclusion de los dos parametros de la funcion de OpenCV. Con

esta modificacion, el modelo es capaz de detectar multiples personas en una misma imagen,

como se puede ver en la figura 5-1.

Page 31: Atenci on al cliente por medio de reconocimiento facial

20 5 Analisis de resultados

Figura 5-1: Multiples personas detectadas Figura 5-2: Deteccion de rostros para dos

personas

En las figuras 5-1 y 5-2 se puede ver que dentro de las posibilidades del clasificador de

OpenCV, se puede identificar caracterısticas como el perfil, los ojos y el contorno del rostro

de las personas. Las caracterısticas mas relevantes son el contorno de la cara y el perfil, pues

al tener en consideracion estas dos caracterısticas se puede garantizar que el modelo seguira

identificando a las personas aun cuando su rostro es rotado o cuando se encuentra de lado a

la camara del robot. Por esto, se decidio trabajar con estas dos caracterısticas al momento

de detectar personas.

5.1.2. Reconocimiento facial

Ahora bien, el segundo modulo de la aplicacion consiste en el desarrollo del algoritmo de

Eigenfaces explicado en el Capıtulo 3. A continuacion se presenta la explicacion de la imple-

mentacion practica del clasificador [21].

1. Primero se realizo la division de la base de datos en entrenamiento y prueba, con

un porcentaje del 70 % y 30 % respectivamente.

2. Luego, se procedio a preparar el conjunto de entrenamiento. Cada imagen se

trata como un vector, concatenando las filas de pıxeles en la imagen original, resul-

tando en una sola columna por cada imagen. Ası, todas las imagenes del conjunto de

entrenamiento se almacenan en una sola matriz T.

3. Para el pre procesamiento, se busca estandarizar las variables. En primer lugar se

calcula la imagen media y luego se alinean las imagenes originales, mediante la resta

de la media. Es decir:

φj = xj − µ (5-1)

Donde φj representa la imagen j alineada. A la imagen original xj se le resta la media

µ. En la figura 5-3 se representan algunos ejemplos de imagenes alineadas.

Page 32: Atenci on al cliente por medio de reconocimiento facial

5.1 Resultados obtenidos 21

Figura 5-3: Preprocesamiento: alineamiento de las imagenes

Con base en estas imagenes se procede al siguiente paso en el reconocimiento.

4. Despues de esto se lleva acabo el proceso de reduccion de dimensionalidad, PCA.

Esto con el fin de obtener un numero mas reducido de dimensiones sobre el cual se

presentara el conjunto de vectores de imagenes. Existen dos formas de encontrar el

numero optimo de dimensiones al cual se busca reducir la base de datos. En primer

lugar se puede determinar la matriz de covarianza, encontrar sus vectores propios y

luego, ordenando de mayor a menor los valores y vectores propios, se selecciona el

mayor vector propio de la matriz de covarianza. Sobre el vector propio mas grande

se proyectan los datos para reducir sus dimensiones. Al seleccionar el vector propio

mas grande, se retienen los aspectos mas importantes de las imagenes lo cual facilita

la clasificacion de cada una de ellas. La segunda opcion, que resulta mas sencilla,

es encontrar el numero de componentes a considerar de cada imagen que garantice

maxima varianza entre las imagenes. Gracias a las herramientas de Scikit-Learn, esto

se puede hacer graficamente.

Figura 5-4: Varianza vs numero de componentes

En la figura 5-4 se presenta el comportamiento de la varianza de la base de datos

respecto al numero de componentes a considerar. Como se puede ver, al alcanzar 200

componentes la varianza se estabiliza en 1. Esto es lo que se busca con la reduccion

de dimensionalidad, pues al seleccionar el numero de caracterısticas que permita tener

Page 33: Atenci on al cliente por medio de reconocimiento facial

22 5 Analisis de resultados

maxima varianza entre los datos, quiere decir que hay mayor dispersion entre los datos

y esto representa una ventaja al momento de clasificar las imagenes. Adicionalmente,

se hace un blanqueamiento de datos lo cual garantiza que los datos resultantes tengan

varianza unitaria.

5. Al hacer la reduccion de dimensionalidad, se obtienen las eigenfaces, que corresponden

a la reduccion de dimension de la imagen original, a partir de la proyeccion con el vector

propio mas grande o eigenvector. En la figura 5-5 se presentan algunos ejemplos de

las eigenfaces obtenidas.

Figura 5-5: Eigenfaces

Como se puede ver en la figura 5-5 se resaltan las caracterısticas mas importantes

de cada rostro, por ejemplo los ojos, la boca y las cejas.

6. Luego de esto, se pasa a entrenar el clasificador. Para esto se utilizo el SVM de Scikit-

Learn. El clasificador se construyo con las siguientes caracterısticas:

Parametro de penalizacion o regularizacion C : indica que tanto se quiere evitar

error en la clasificacion. Entre mas grande es este valor, menor es el error en la

clasificacion. Por este motivo, se selecciono un C=1000.

Gamma γ: determina las fronteras de decision. Con un menor gamma existe ma-

yor distancia entre las observaciones que separan los espacios del SVM. Por esto,

se selecciono un gamma pequeno, para evitar ignorar aquellos puntos que se en-

cuentren lejos del lımite de decision. Se definio γ = 0,01.

Adicionalmente, debido a la gran cantidad de clases se definio un kernel RBF, o

Radial Basis Function. Este ofrece mayor flexibilidad con las fronteras de decision,

lo cual se requiere para poder seleccionar, dentro de las 12 clases de la base de

datos, cual de ellas es la correcta segun la imagen de prueba.

7. Ahora bien, la primera estrategia o modelo construido corresponde a un SVM con

base a un kernel RBF, por lo cual unicamente hay un clasificador para las 12 clases

existentes. En la figura 5-6 se presentan los resultados obtenidos para este caso.

Como se puede ver, las precisiones oscilan entre 50 % y 20 %, lo cual no es muy bueno.

Adicionalmente, para el caso del usuario desconocido presenta una mayor cantidad

de desaciertos, por lo cual la aplicacion no podra tener un buen desempeno con este

modelo.

Page 34: Atenci on al cliente por medio de reconocimiento facial

5.1 Resultados obtenidos 23

Figura 5-6: SVM con kernel RBF

Analizando estos resultados, se opto por construir un SVM One vs All. Esta estrategia

consiste en ajustar un clasificador por clase. Para cada clasificador, la clase se ajusta a

las otras clases restantes. Este metodo resulta eficiente computacionalmente y ademas

solo se requiere n clasificadores, correspondientes a las n clases existentes. Dado que

cada clase esta representada por un unico clasificador, obtener conocimiento sobre

una clase corresponde a inspeccionar su clasificador correspondiente [22]. Esto permite

alcanzar una precision mucho mayor al momento de etiquetar las imagenes. El resultado

se presenta en la figura 5-7.

Figura 5-7: SVM One vs All

Como se puede ver en la figura, hay una mejora significativa en la precision del modelo.

Con la estructura de One vs All se alcanzan precisiones por clase cerca al 60 %, 70 %

y 80 %.

Teniendo en cuenta los resultados obtenidos, se puede decir que la estructura optima del

SVM, manteniendo los parametros de C, γ y el kernel mencionado, es utilizar una estructura

de One vs All. Esto permite tener menor error en el momento de clasificar a los usuarios

percibidos por el robot.

Page 35: Atenci on al cliente por medio de reconocimiento facial

24 5 Analisis de resultados

5.1.3. Integracion de los dos modulos

Recopilando los modelos disenados para los dos modulos de la aplicacion y seleccionando las

estructuras optimas, se obtiene una aplicacion de atencion al cliente enfocada en la deteccion

y el reconocimiento facial. El funcionamiento de los dos modulos en conjunto es presentado en

la figura 5-8 Teniendo en cuenta esta figura y el diagrama de ROS presentado en la figura

Figura 5-8: Proceso de reconocimiento facial

4-1 sobre el cual se desarrolla toda la aplicacion, se puede ver que en primera instancia se

desarrolla la clasificacion con Viola-Jones para detectar una persona, esto se logra mediante

los servicios de la camara que se solicitan al Robot Toolkit. Seguido de esto, se guarda la

imagen de la persona detectada y luego es pre procesada por PCA para luego ser clasificada

con el SVM implementado. Finalmente, con base a la base de datos construida se etiqueta

al usuario que se encuentra frente al robot.

Page 36: Atenci on al cliente por medio de reconocimiento facial

6 Conclusiones

En primer lugar, es relevante resaltar que la optimizacion de los modelos y clasificadores

desarrollados para cada uno de los modulos hizo posible que la integracion de estos mismos

fuera exitosa. Se aseguro que la deteccion de las personas tuviera el mejor desempeno sin

importar las variaciones en la orientacion del rostro o en el movimiento de las personas,

mientras que para el modulo de reconocimiento seleccionando el clasificador One vs All se

evidencio una mejora significativa en el desempeno del mismo. Se trabajo sobre cada parte

y clasificador de la aplicacion para poder tener el mejor desempeno en el producto final. De

esta manera, el robot es capaz de brindar una atencion personalizada y de alta calidad al

usuario con el cual interactua. Desafortunadamente, el sistema de reconocimiento facial pre-

senta fallas y errores cuando hay grandes variaciones de luz y con cambios en la orientacion

del rostro de las personas. Esto se debe al tipo de metodo de clasificacion seleccionado, si

bien la prioridad era alcanzar una aplicacion robusta y confiable, una de las restricciones mas

grandes del proyecto es el procesador del robot sobre el cual se debe ejecutar el aplicativo,

lo cual impide tener la maxima exactitud en la clasificacion. Debido a esta restriccion, la

seleccion de Eigenfaces se realizo debido al bajo costo computacional, pero por esto mismo

el modelo no logra ser lo suficientemente robusto como para reconocer a los usuarios ante

variaciones o perturbaciones del entorno.

Por otro lado, existen diferentes cambios que se pueden realizar sobre el sistema construido

para generar una mejora significativa en el desempeno de la aplicacion de atencion al cliente.

En primer lugar, si se pudiera contar con un procesador externo al robot con mayor capa-

cidad de almacenamiento y procesamiento, se podrıa implementar metodos de clasificacion

mucho mas robustos. La idea serıa mejorar la capacidad de computo de Pepper anadiendole

una unidad de procesamiendo adicional. Es decir, poder extender la capacidad de procesa-

miento del robot a traves una GPU. Por ejemplo, los estudiantes de la universidad de Chile,

para el mundial de robotica del 2019 [23] crearon un sistema embebido para el robot Pepper,

a traves del cual aumentan su capacidad de procesamiento del procesador actual. Con este

sistema, se podrıa implementar una red neuronal convolucional, con la cual se garantiza que

con un numero mas reducido de imagenes en la base de datos y sin necesidad de entrenar el

modelo con diferentes condiciones de luz, el robot sera capaz de clasificar con mayor precision

al usuario con el cual interactua incluso cuando el rostro tiene variaciones en su orientacion.

Adicionalmente, serıa ideal trabajar con tecnologıa mas avanzada por ejemplo con camaras

3D para capturar datos sobre los rostros de las personas. Con estas camaras no existe sensi-

Page 37: Atenci on al cliente por medio de reconocimiento facial

26 6 Conclusiones

bilidad a los cambios de luz ni a diferentes expresiones faciales, pues se concentra en detalles

del rostro que una camara 2D no es capaz de detectar.

Finalmente, otro de los problemas que presenta la aplicacion de atencion al cliente es el tiem-

po que tarda el robot en procesar la informacion y el tiempo de interaccion entre el robot y

el usuario. Por ejemplo, cuando el usuario es desconocido Pepper debe tomar aproximada-

mente 35 imagenes para poder garantizar que con estas, al reentrenar el modelo el robot sera

capaz de identificar al nuevo usuario sin problema. Este proceso toma aproximadamente 2 o

3 minutos, lo cual no representa una interaccion natural entre el robot y el humano. En este

sentido, a futuro se busca trabajar en el lenguaje natural del robot, logrando que procesos

como estos tomen un tiempo razonable, algo similar al tiempo que le tomarıa a una persona

recordar a otra que acaba de conocer.

Page 38: Atenci on al cliente por medio de reconocimiento facial

Bibliografıa

[1] The next frontier in robotics: social, collaborative robots — Andrea Thomaz — TEDx-

Peachtree

[2] A.Castro Gonzalez, J.C.Castillo , F.A.Martın, M.A. Salichs. “Evolucion de la robotica

social y nuevas tendencias”

[3] C.Torras “Robots sociales. Un punto de encuentro entre ciencia y ficcion”

[4] P.Nunez, P.Bachiller, P.Bustos, I.Garcıa Varea “Robots sociales para mejorar la calidad

de vida de las personas”

[5] Alisys “Los robots mas populares del mercado” Obtenido de:

https://www.alisys.net/es/blog/los-robots-sociales-mas-populares-del-mercado

[6] SOLTEQ. “Pepper Robot” Obtenido de:https://www.solteq.com/en/solutions/pepper-

robot?

[7] Pepper. “Pepper Robot Discover its technical specifications” Obtenido de:

https://www.generationrobots.com/pepper/technical-specifications.html?lang=e

[8] P. Viola and M. Jones, “Robust real-time face detection”. In Proc. Of IEEE Workshop

on Statistical and Computational Thories of Vision, 2001.

[9] E.Parra Barrero “Aceleracion del algoritmo de Viola-Jones mediante rejillas de procesa-

miento masivamente paralelo en el plano focal”

[10] J.A.Cortes, J.A.Chavez Osorio. “APLICACION DE LA WAVELET HAAR PARA RE-

CONSTRUIR LA FUNCION f(t)=t SOBRE EL INTERVALO [-3,3] EN DIFERENTES

GRADOS DE RESOLUCION ” 2008.

[11] P.Viorica Andreea “Aplicacion para deteccion y reconocimiento facial en interiores”

Sevila, 2016.

[12] F.G.Caballero Julian, M.Vidal Reyes, A.L.Sanchez, C.A.J.Rıos. “Reconocimiento facial

por el metodo de eigenfaces” Mexico, 2017

[13] Medium. “Episodio 1:Procesamiento de lenguaje natural”, 2018. Obtenido de:

https://planetachatbot.com/1-procesamiento-de-lenguaje-natural-1443ff471ed0

Page 39: Atenci on al cliente por medio de reconocimiento facial

28 Bibliografıa

[14] Robologs, “OpenCV”, 2019. Obtenido de: https://robologs.net/tutoriales/tutoriales-

opencv/

[15] D.Ortego Delgado “¿Que es ROS?” Obtenido de:https://openwebinars.net/blog/que-

es-ros/

[16] P.Lepej “ROS tutorial”, 2013. Obtenido de: http://lsi.vc.ehu.es/pablogn/investig/ROS/lepejROSTutorialSS2014.pdf

[17] Alianza SinfonIA https://gitlab.com/sinfonia-sspl-robocup-team/sinfonia-robot-

toolkit/robottoolkit/wikis/home

[18] L.GOnzalez. “Introduccion a la librerıa Scikit-Learn de Python”, 2018.Obtenido de:

http://ligdigonzalez.com/libreria-scikit-learn-de-python/

[19] SoftBank Robotics Documentation “What’s new in NAOqi 2,5?” Obtenido

de:http://doc.aldebaran.com/2-5/naoqi/audio/alspeechrecognition.html

[20] OpenCV. “Cascade Classification”, 2014. Obtenido de:

https://docs.opencv.org/2.4/modules/objdetect/doc/cascadeclassification.html

[21] S.Ansari “Eigenfaces Vs Fisherfaces” Indian Institute of Technology Kharagpur, 2016

[22] Scikit-Learn “Multiclass and mulitlabel algorithms” Obtenido de:https://scikit-

learn.org/stable/modules/multiclass.html

[23] UChile Robotics Team. “Universidad de Chile’s RoboCup”. Obtenido

de:http://www.robocup.cl/