Professional Documents
Culture Documents
Ingeniera de Telecomunicacin
Javier Eslava Ros
Julio 2013
RECONOCIMIENTO FACIAL EN
TIEMPO REAL
Resumen
Resumen
En este proyecto se estudia, implementa y evala un sistema automtico de reconocimiento
facial en tiempo real. Para llevarlo a cabo, se han utilizado diversas tcnicas del estado del arte y
estudiado su aplicacin a sistemas de vdeo aprovechando as las ventajas que los mismos pueden
ofrecer.
Como punto de partida se ha realizado un estudio de los sistemas comerciales y las tcnicas
de reconocimiento facial existentes en el estado del arte seleccionando aquellos funcionales para
su aplicacin a sistemas en tiempo real. Se han diseado e implementado todas las etapas que
componen a un sistema automtico de reconocimiento facial con el objetivo de comparar aspectos
relevantes como la precisin y el coste computacional.
El diseo del proyecto ha seguido dos lneas principales de trabajo organizadas en el tiempo,
primero se implement un sistema o-line de reconocimiento facial basado en libreras OpenCV/C++, cuyo rendimiento fue evaluado con diversas bases de datos: BANCA y FOCS, de libre
acceso a la comunidad cientca. Posteriormente se adapt y mejor el diseo e implementacin
para su funcionamiento en tiempo real (on-line). Estos sistemas han sido diseados siguiendo
una estructura modular de forma que cada etapa pueda ser modicada o ampliada fcilmente.
Para la parte experimental se han llevado a cabo experimentos diferenciados de cada una de
las etapas del sistema, de modo que podamos evaluar el sistema desarrollado de forma detallada
con sus puntos fuertes y dbiles. Los experimentos se han centrado en el estudio de las etapas
ms relevantes para el rendimiento: deteccin facial, extraccin de caractersticas y clasicacin.
Para dichas etapas se llevaron a cabo experimentos evaluando las tasas error y los tiempos de
procesamiento vinculados a las mismas. Por ltimo se ha evaluado el rendimiento global del
sistema desarrollado comparndolo con sistemas de referencia del estado del arte.
El proyecto culmina con la implementacin de un sistema nal (demostrador/prototipo con
interfaz grca de control) totalmente funcional disponible en el laboratorio de investigacin
donde se ha desarrollado dicho proyecto. Generando as una herramienta educativa que servir
de base para la investigacin y desarrollo de nuevas tcnicas y desarrollos aplicados al reconocimiento facial en tiempo real y a la videovigilancia.
Palabras Clave
Sistema biomtrico, reconocimiento facial en tiempo real, eigenfaces, extraccin de caractersticas.
Abstract
In this project, an automatic real time face recognition system is studied, implemented and
evaluated. To accomplish this, various state of the art techniques have been used and their
applications in video systems studied in order to take advantage of the benets they may oer.
First of all, the commercial systems and state of the art face recognition techniques are
studied in order to select the ones capable of functioning under real time applications. All the
phases that form an authomatic facial recognition system have been designed and implemented
with the goal of comparing relevant aspects such as precision and computational cost
The design of the project has followed two main areas of work organized in time. First
of all, an o-line face recognition system based in OpenCV/C++ libraries was implemented.
The performance of said system, was evaluated with two databases: BANCA and FOCS, freely
available to the scientic community. Afterwards, the design was adapted and enhanced for real
time use (on-line). Those systems have been designed following a modular struchture that easily
allows modications and extensions of each phase.
For the experimental part, tests have been carried out for each phase of the system so it can
be evaluated extracting the strong and weak points. The experiments have been focused in the
study of the most relevant phases in terms of performance; facial detection, feature extraction
and classication. Experiments where carried out for the mentioned phases evaluating error
rates and processing times bound to them. Lastly, the global performance of the system has
been evaluated and compared to state of the art reference systems.
The project nishes with the implementation of a nal, fully functional system (demo/prototype with graphic user interface for control) available at the research laboratory where the
project has been developed. This generates an educational tool that serves as the basis for research and development on new techniques as well as development applied to real time facial
recognition and video surveillance.
Key words
Biometric system, real time face recognition, eigenfaces, feature extraction.
ii
Agradecimientos
Me gustara agradecer en primer lugar la dedicacin durante todo el proyecto de mi tutor
Pedro Tom. Su esfuerzo y su capacidad para abordar todo tipo de problemas es digno de admirar
sobre todo en esos momentos cuando tiene una gran cantidad de trabajo a sus espaldas y sin
embargo nunca te niega su atencin cuando necesitas su ayuda. Gracias adems por tu apoyo
en el resto de tareas que hemos realizado aparte del proyecto y por esa gran organizacin para
cumplir con todos los plazos.
A Javier Ortega y a Julin Firrez me gustara tambin agradecer especialmente la oportunidad que me brindaron de poder contribuir al grupo y de poder formarme en otras reas al
mismo tiempo que realizaba el proyecto. Javier, gracias por la conanza que depositaste en m
para abordar las tareas del congreso, fue una etapa en la que tuve la oportunidad de aprender
muchas cosas trabajando contigo. Julin, te agradezco tu apoyo y preocupacin por mis estudios
tanto dentro del grupo como por los futuros.
Gracias al grupo ATVS puesto que durante mi relativamente corta pero intensa estancia, me
he sentido en todo momento apoyado y ayudado por todos. Todas las personas que lo componen
contribuyen al buen ambiente que hay y siempre estn dispuestos a echar una mano con lo
que sea. Me gustara mencionar especialmente a Ester Gonzlez por su gran ayuda durante el
congreso. Ester gracias a tu ayuda pudimos hacernos con el congreso y me evitaste una alopecia
prematura. Ahora ya podemos mirar atrs y reirnos de los momentos en que tenamos pesadillas
con las facturas. Sin olvidarme de la inestimable ayuda de Sara, Ftima, Sandra y Mara que
realizaron una gran organizacin de todos los recursos y personas as como de la ayuda de Alicia
la cual tena una particular obsesin con cierta caja, nunca sabremos por qu. A todos vosotros
atvsianos, muchas gracias por este ao.
Por ltimo agradezco a mi familia su apoyo durante toda la carrera y la conanza que
siempre han tenido en m. Gracias por hacer posible que pueda perseguir mis metas y por
apoyarme incondicionalmente en cualquiera de mis decisiones de futuro, todo esto me motiva a
seguir esforzndome. Gracias tambin a mis amigos y compaeros por los buenos ratos que te
hacen recordar que no todo se reduce a los estudios, sobre todo a Sergio y Maya, compaeros
de das interminables en el laboratorio nimo que ya no os queda nada!. Gracias a ti Leyre,
porque eres la que literalmente ha hecho que esto sea posible.
iii
Groucho Marx
ndice general
ndice de guras
vii
ndice de tablas
1. Introduccin.
1.5. Contribuciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
10
11
12
13
2.6.2. Deteccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
14
15
18
20
20
25
3. Sistemas desarrollados.
29
29
3.1.1. Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
31
3.1.3. Deteccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
34
36
39
40
3.2.1. Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
42
44
50
53
53
53
54
55
56
62
66
71
5.1. Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
72
Glosario de acrnimos
75
Bibliografa
76
A. Presupuesto
81
B. Pliego de condiciones
83
87
87
88
NDICE GENERAL
91
ndice de guras
11
12
13
14
14
15
16
17
18
2.13. Clculo del plano que mejor divide las dos clases en un problema de dos dimensiones. 19
2.14. Empresas desarrolladoras de sistemas de reconocimiento facial. . . . . . . . . . .
20
21
22
22
23
24
24
. . . . . .
25
26
30
31
vii
32
33
34
34
35
35
3.9. Punto de seleccin de 200 componentes principales una vez entrenado el PCA. . .
36
37
38
38
39
41
43
46
47
48
49
50
50
54
55
4.3. Usuarios con fallos en la deteccin de cara en los grupos a) controlled, b) degraded
y adverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
59
59
61
62
4.8. Curva ROC para las tcnicas implementadas en BANCA a) grupo g1 b) grupo g2. 63
4.9. Curvas ROC para las tcnicas implementadas en los grupos a) good b) bad y c)
ugly de FOCS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
4.10. Comparacin de los resultados del sistema baseline respecto a los obtenidos con
el sistema system2mod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
4.11. Diagrama de etapas del sistema en tiempo real de las cuales se extraen los tiempos
de procesamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
viii
NDICE DE FIGURAS
68
69
NDICE DE FIGURAS
ix
ndice de tablas
53
54
56
57
60
. . . . . . . . . . . . . . . . . . . .
61
4.7. Comparacin de tasas de error en varios sistemas que utilizan LBP (junto con dos
mtodos del estado del arte) y los implementados. Tabla extrada de [1]. . . . . .
64
4.8. Medidas de tiempos (ms) para cada etapa del sistema (los resultados pueden tener
un error de 5ms). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
4.9. Medidas de tiempos (ms) para cada etapa del sistema en modo entrenamiento. .
69
xi
Introduccin.
1.1. Motivacin del proyecto.
Las necesidades de mejorar la seguridad en diferentes contextos de la sociedad actualmente,
dan lugar al desarrollo de varias tcnicas de reconocimiento automtico basadas en rasgos biomtricos. Los sistemas de biometra permiten la identicacin de individuos de forma segura y
rpida, puesto que no se precisa mayor informacin que la contenida en dichos rasgos inherentes
a las personas. Es por ello que estos sistemas suponen una ventaja frente a sistemas tradicionales
que suelen requerir informacin adicional como documentos de identidad, tarjetas de acceso, etc.
que puede ser perdida o robada provocando brechas de seguridad.
El gran nmero de campos de aplicacin de tcnicas biomtricas hace de las mismas un
objeto de estudio muy interesante para la comunidad cientca. Junto con la mejora signicativa
de diferentes sistemas biomtricos en los ltimos aos y la imparable expansin y evolucin de
la tecnologa, algunos sistemas se empiezan a imponer como una solucin robusta y able de
identicacin con tasas de reconocimiento muy ables [2]. Estos sistemas son capaces de mejorar
en gran medida los resultados humanos aadiendo adems la robustez que otorga la unicidad de
algunos rasgos biomtricos.
En la actualidad, sistemas biomtricos como los basados en huella dactilar o iris obtienen unas
tasas de reconocimiento formidables siendo la eleccin preferida en muchos campos de aplicacin.
Uno de los inconvenientes de estas tcnicas es el problema de la adquisicin, ya que a menudo
resultan demasiado intrusivas para algunas aplicaciones. El reconocimiento facial es una tcnica
muy estudiada y que, debido a su baja intrusividad y buenos resultados, la convierten en una
gran candidata para ser aplicada en entornos donde otras tcnicas no son viables. La cara es un
rasgo biomtrico con gran capacidad discriminativa y con el cual los humanos nos identicamos
entre nosotros. Por todo ello, es un rasgo comnmente aceptado y de fcil adquisicin.
Tener la posibilidad de implementar sistemas biomtricos en tiempo real abre las puertas a
gran variedad de aplicaciones realmente interesantes. Un sistema de reconocimiento que funciona
en tiempo real permite aumentar la rapidez y comodidad de uso. Un ejemplo de un sistema en
tiempo real sera el reconocimiento de individuos por medio de videocmaras. De esta forma se
podran obtener respuestas inmediatas cuando el individuo an se encuentra en la zona que son
1
CAPTULO 1. INTRODUCCIN.
llo del sistema por el cual el programa va a realizar todas las funciones de reconocimiento.
Las diferentes etapas del sistema se van desarrollando con la mayor modularidad posible
para que, llegado el momento, se pueda sustituir un algoritmo por otro con sencillez. El
desarrollo del sistema se realiza ntegramente en C++ con la incorporacin de las libreras
de OpenCV que proporcionan funciones de tratamiento de imagen.
que valdr como estructura externa controlando todos los mdulos de trabajo en segundo
plano. Esta etapa se separa del desarrollo del sistema, puesto que se realiza en un entorno
diferente utilizando la plataforma Qt de desarrollo de programas con interfaces grcas.
Uno de los aspectos clave de esta etapa es la fusin de las libreras de OpenCV con las
funciones y lenguaje de Qt para que la transicin entre una y otra sea continua y sin
obstculos.
Formacin
avanzada
(Reconocimiento
(Reconocimiento
biomtrico)
facial)
FORMACIN
Investigacin
INVESTIGACIN
(Biometra
PROYECTO
facial)
FIN DE
CARRERA
DESARROLLO
Desarrollo (Sistemas
Pruebas y
de reconocimiento
experimentos de
facial)
funcionamiento
ESCRITURA Y
PUBLICACIONES
(PFC)
Escritura y
publicaciones
Captulo 1: Introduccin. En este captulo se exponen las razones que han motivado
a la realizacin del proyecto as como los objetivos perseguidos para la consecucin del
mismo. Para lograr satisfacer las motivaciones y objetivos, se expone la metodologa y el
plan de trabajo que se va a seguir.
Captulo 2: Estado del arte. Los fundamentos y trabajos relacionados son detallados en
este captulo. Inicialmente se explican los fundamentos del reconocimiento facial aadiendo
un trasfondo histrico exponiendo los hitos ms relevantes al reconocimiento facial hasta el
presente. Se dene adems, el reconocimiento facial en trminos comparativos respecto a
otros sistemas de reconocimiento biomtrico. Por ltimo y debido al enfoque de desarrollo
e implementacin del proyecto, se incluye un breve repaso de aplicaciones comerciales
desarrolladas y los SDKs ms conocidos.
Captulo 3: Sistemas desarrollados. En este captulo se exponen los dos sistemas que
han sido desarrollados durante la duracin del proyecto. En cada sistema se describen
las etapas de las consta para su funcionamiento y de las diferentes tcnicas implementadas en cada una. Adicionalmente se detalla el equipamiento utilizado para el sistema
implementado en el laboratorio.
1.5. Contribuciones.
Las contribuciones de este proyecto se resumen en los siguientes puntos:
Resumen del estado del arte de SDKs y sistemas comerciales de reconocimiento facial.
Diseo, desarrollo e implementacin de un sistema o-line de reconocimiento facial.
Diseo, desarrollo e implementacin de un sistema de reconocimiento facial en tiempo real
junto al equipamiento necesario para su funcionamiento.
Desarrollo de una interfaz grca congurable para controlar el sistema.
4
CAPTULO 1. INTRODUCCIN.
CAPTULO 1. INTRODUCCIN.
El reconocimiento facial es una tcnica que ha tenido un uso muy extendido incluso desde
antes de desarrollarse sistemas de reconocimiento automtico. El reconocimiento automtico
de individuos a partir de sus rasgos caractersticos desde siempre ha suscitado el inters de la
comunidad cientca puesto que esto permite obtener mayores niveles de eciencia. La cara es
un rasgo muy discriminativo por el cual se pueden identicar individuos a simple vista y que
ha sido utilizado como rasgo de identidad en diversos mbitos. Algunos usos destacables de
reconocimiento a partir de la cara son, entre otros, el control de aduanas de los aeropuertos,
las entradas de zonas restringidas de ciertas empresas (ver Figura 2.1) o la identicacin de
sospechos en la polica.
Orejas. Las orejas estn situadas en los laterales de la cara. Habitualmente la variabilidad
que presentan entre individuos es eminentemente geomtrica, siendo el tamao la caracterstica que mejor las dene. Debido a su localizacin, las orejas pueden estar ocluidas
por el pelo, generando variaciones no deseadas. Es por ello por lo que en muchos sistemas
de reconocimiento la regin de la cara que se extrae excluye a las orejas para evitar esta
variabilidad.
Cejas. Compuestas por vello situado en la parte superior de la cara justo encima de los
ojos, ofrecen diferentes caractersticas a tomar en cuenta como son el grosor, la forma, el
espesor y el color del vello. Su localizacin puede estar modicada por la expresin aunque
por lo general no existe mucha variacin del resto de caractersticas frente a diferentes
gestos.
Ojos. Los ojos, dada su complejidad, son quiz unos de los rasgos ms discriminativos de
la cara. Situados en la mitad superior de la cara, estn compuestos por pestaas, prpados
y el globo ocular que a su vez se diferencia en crnea, iris y pupila. Los ojos ofrecen gran
variabilidad entre sujetos puesto que su geometra es diferente para cada uno y el iris,
un rasgo biomtrico por si solo, dota a los ojos de gran informacin discriminativa. El
inconveniente de los ojos es que en ocasiones los prpados ocluyen parcial o totalmente
este rasgo, y adems son bastante sensibles a cambios de expresin.
gran medida entre los usuarios y la misma no suele ser afectada en los cambios de expresin.
Los dos oricios nasales suelen ser un buen punto caracterstico cuando se miden distancias.
CAPTULO 2. ESTADO DEL ARTE.
Boca. Por ltimo, la boca situada en la parte inferior de la cara, es otro rasgo caracterstico
que facilita informacin del individuo. Como caracterstica particular, debido a la gran
exibilidad y diversidad de movimientos que puede realizar este rasgo, es posible encontrar
gran variabilidad en un mismo sujeto dependiendo de si est sonriendo, si tiene la boca
abierta, est sacando la lengua, etc. Los labios son el componente que siempre est visible
y que suelen denir el aspecto de la boca.
Adicionalmente a estos rasgos, tambin cabe destacar que la forma de la cara tambin es una
caracterstica discriminativa, as como otras zonas de la misma como pueden ser los pmulos, la
frente o la barbilla. La cara es un rasgo con una componente simtrica bastante elevada, algo de
lo que las tareas de localizacin o extraccin de distancias se pueden beneciar.
Existen, sin embargo, ciertas caractersticas de la cara que pueden introducir mayor variabilidad en el mismo individuo. En este sentido, el elemento ms destacado es el pelo. El pelo puede
contribuir a la oclusin de los rasgos (ya sea cabello o barba) y a cambiar el aspecto de una
persona. Otros elementos articiales comunes que suelen contribuir a la prdida de abilidad
en el sistema son las gorras, bufandas y gafas, siendo las gafas de sol las que mayor oclusin
generan.
Baja intrusividad.
Gran poder discriminante. Aunque la cara no sea uno de los rasgos con mayor poder
to bsico la cara de las personas en gran variedad de mbitos. Esto hace que haya una gran
disponibilidad de bases de datos y que este rasgo haya sido obtenido de la mayor parte
de la poblacin con anterioridad. Al haber sido este rasgo muy utilizado, se han llevado a
cabo multitud de investigaciones referentes al reconocimiento facial que han resultado en
diferentes tcnicas y algoritmos de los cuales hoy en da nos podemos beneciar.
Al igual que las ventajas aqu descritas, el reconocimiento facial, como cualquier otra tcnica
biomtrica, presenta ciertos inconvenientes que deben ser mencionados. Uno de los grandes
inconvenientes que presenta esta tcnica, es el hecho de que existe variabilidad intra-clase. Esta
10
11
televisin para aadir una capa ms de seguridad al sistema de videovigilancia. Las cmaras
son capaces de detectar las caras de los individuos que aparecen en la imagen y realizar
tareas de reconocimiento en tiempo real contra una base de datos de sospechosos y alertar
en caso de obtener alguna coincidencia. La utilizacin de estos sistemas est facilitada por
la gran extensin de los sistemas de vigilancia a innidad de reas.
Biometra forense.
los telfonos mviles son cada da capaces de realizar una mayor variedad de tareas debido
al desarrollo de la tecnologa. Los telfonos con cmara integrada son capaces de beneciarse de sistemas de reconocimiento facial para permitir el acceso al dispositivo por parte del
dueo o para, por ejemplo, detectar las caras en una foto y reconocer si se trata de gente
guardada en la lista de contactos para utilizar esa informacin como clasicador. Muchos
programas de fotografa tambin llevan integrados sistemas de reconocimiento facial para
automatizar las tareas de compartir fotos en redes sociales.
Deteccin
Adquisicin
Preprocesado
Extraccin de
caractersticas
Comparacin y
reconocimiento
2.6.2. Deteccin.
La etapa de deteccin en los sistemas de reconocimiento facial es crtica puesto que el resto
de etapas se vern afectadas si no se ha realizado una deteccin y localizacin correctas. La
deteccin est formada por dos partes:
Deteccin de la posicin de los ojos. Para realizar una correcta alineacin de la imagen
13
Rotacin. Una de las utilidades de calcular las coordenadas de los ojos, radica en poder
determinar el ngulo de giro de una cara en una imagen y compensarlo. Al tener caras sin
14
Escalado. Para conseguir que todas las imgenes tengan el mismo tamao, se utiliza la
distancia entre los centros de los ojos para conseguir un ratio por el cual la imagen debe ser
aumentada o reducida. Esto es necesario puesto que muchas tcnicas de reconocimiento
requieren que todos los datos de entrada tengan el mismo tamao (En nuestro caso la
matriz de pxeles).
Recorte. Una vez la imagen ha sido rotada y escalada, se procede al recorte de la misma
para obtener slo la regin de inters. Para denir la regin se utiliza la coordenada del ojo
derecho. Existen varios tamaos de imagen estandarizados por los cuales se puede extraer
la regin de inters relativa a las necesidades del sistema. Los formatos de imagen estn
recogidos por el estndar ISO/IEC 19794-5 [18] que dene un rea similar a una foto de
carnet, en base a dicho estndar se establece una regin que comprende exclusivamente el
rea de la cara.
Normalizacin de histograma.
Las imgenes pueden presentar variabilidad en la luminosidad y en el contraste lo que produce que imgenes similares sean muy diferentes
respecto al valor de intensidad de sus pxeles. Mediante la normalizacin de su histograma, se pretende que las imgenes que tienen la mayor parte de sus valores de intensidad
concentrados en una zona reducida del histograma, pasen a extenderse por todo el rango
de valores del histograma. Esto resulta en imgenes con mayor contraste y con menor
variabilidad lumnica entre ellas.
a
)
b)
c
)
d)
15
Algorithms
Pose-dependent
Pose-invariant
Viewer-centered
Images
Object-centered
Models
Appearancebased
(Holistic)
Featurebased
(Analytic)
PCA, LDA,
ICA, LPP
Kernel . . .
Gabor sets
LBP . . .
Hybrid
LFA
EGBM/JETs
AAM . . .
Figura 2.10: Eigenfaces obtenidas a partir de la proyeccin de las imgenes en el espacio PCA.
- Linear Discriminant Analysis.[20] Derivada del PCA, se implement una tcnica
que ana PCA con Linear Discriminant Analysis (LDA) denominada sherfaces, con el
cual se consigue mayor robustez frente a cambios de iluminacin.
16
17
Mtodos hbridos. Estos mtodos realizan una fusin de los dos mtodos antes descritos
para obtener una mejora en los resultados. Un ejemplo de este mtodo es el resultado
de realizar PCA tanto a la cara global como a cada rasgo por separado, obtenindose
eigenfaces y eigenfeatures que describen la cara [4].
Este proyecto se centra en el uso de mtodos tanto basados en apariencia como locales para
la realizacin de un sistema de reconocimiento completo.
calcular distancias. Esta distancia se dene como la distancia directa entre dos puntos
en un plano. El ejemplo ms claro es la distancia entre dos puntos en un plano de dos
dimensiones de coordenadas x e y . Si tuviramos dos puntos P1 y P2 con coordenadas
x1 , y1 y x2 , y2p
respectivamente, el clculo de la distancia eucldea entre los mismos sera:
dE (P1 , P2 ) = (x2 x1 )2 + (y2 y1 )2
- Chi-Square (2 ) La distancia Chi-Square toma este nombre ya que la frmula que
la calcula es prcticamente idntica a la prueba de bondad de ajuste 2 utilizada para
comparar distribuciones de probabilidad discretas. En el caso de reconocimiento biomtrico, 2 se utiliza para medir la distancia entre dos vectores de caractersticas creados a
partir de histogramas. El clculo de la distancia para el caso de dos histogramas S y M
P (Si +Mi )2
es: 2 (S, M ) =
Si +Mi
i
18
Clasicadores.
- K-Nearest Neighbours.[28] El mtodo k-NN es una tcnica no paramtrica de
clasicacin de objetos basado en las muestras de entrenamiento ms cercanas del espacio
de caractersticas, El algoritmo se basa en encontrar los k vecinos ms cercanos al objeto
para, en funcin de la cantidad de los mismos, clasicarlo en el conjunto que tenga un
mayor nmero de muestras cercanas.
- Support Vector Machines.[29] Los SVMs son modelos de aprendizaje usados para
clasicacin y regresin. El objetivo de este mtodo es el de representar en un espacio una
serie de clases y tratar de encontrar un hiperplano que las divida de forma que cree zonas
en las cuales, cuando entra un dato, sea clasicado por dichas zonas. El espacio donde se
representan las clases tendr un nmero de dimensiones igual al nmero de clases, por lo
que un ejemplo sencillo de representar es el caso de clasicacin de dos clases.
Tal y como muestra la Figura 2.13, las clases se distribuyen por el plano en dos dimensiones
y los SVM tratan de buscar un hiperplano (en este caso una recta) que divida ambas clases
de una forma ptima, es decir, que la distancia entre ambas sea mxima. El clculo de este
hiperplano depende en gran medida de la distribucin de las clases, puesto que el ejemplo
expuesto es un caso ideal en el que hay una gran separacin entre clases, pero en los casos
reales las clases suelen tener muestras mezcladas haciendo ms difcil la clasicacin. Es
por ello que, dependiendo de la tcnica utilizada para extraer caractersticas, los SVMs
funcionarn mejor, o en ciertos casos no sern viables.
Figura 2.13: Clculo del plano que mejor divide las dos clases en un problema de dos dimensiones.
- Gaussian Mixture Models. Los GMMs son funciones de densidad de probabilidad
paramtricas representadas como una suma de componentes gaussianas. En clasicacin
biomtrica se suelen utilizar en conjunto con EM (Expectiation Maximization) para estimar
sus parmetros. Cabe destacar que OpenCV no tiene an una implementacin de esta
tcnica.
CAPTULO 2. ESTADO DEL ARTE.
19
SmartGate.
A nales de 2007, el servicio de aduanas Australiano instaur el sistema de reconocimiento
facial automtico SmartGate. El sistema pretende sustituir al control de aduanas humano situado
en los aeropuertos que se encarga de vericar la identidad de un individuo con su pasaporte como
se puede ver en la Figura 2.16. El funcionamiento de SmartGate es el siguiente; el usuario entra
en la cabina de reconocimiento e introduce su pasaporte electrnico donde su foto ser obtenida.
Posteriormente el sistema toma imgenes del individuo a partir de tres cmaras situadas en
diferentes posiciones. El sistema realiza una tarea de vericacin con las fotos obtenidas. Si la
vericacin es positiva, el sistema deja continuar al usuario. Si por el contrario, el sistema no es
capaz de vericar la identidad del individuo, un ocial de aduanas se encarga de la situacin.
Con este sistema se consigue aligerar el proceso de vericacin de identidad en las horas punta
aunque por el momento slo est permitido para pasajeros con nacionalidad Australiana.
MorphoFace Investigate.
La empresa de biometra Safran Morpho ofrece gran variedad de productos lanzados al
mercado centrados en el reconocimiento biomtrico basado en huella dactilar. Esta empresa crea
CAPTULO 2. ESTADO DEL ARTE.
21
aplicaciones, SDKs y sensores para un amplio rango de campos como son controles de aduanas,
identicacin en empresas o bases de datos policiales. Entre estos productos, tambin ofrecen
un sistema de reconocimiento facial enfocado a la identicacin de criminales conocido como
MorphoFace Investigate (ver Figura 2.17). Esta aplicacin sirve de ayuda a los departamentos
de la polica para gestionar las bases de datos de sospechosos con funcionalidades como el
poder etiquetar delitos a individuos y as poder optimizar los tiempos de bsqueda. El sistema
de reconocimiento permite incorporar nuevas imgenes a la base de datos de forma rpida y
ecaz. Cabe destacar que existe una gran seccin de la empresa llamado MorphoTrust USA
que trabaja conjuntamente con el gobierno de los Estados Unidos desarrollando todo tipo de
sistemas biomtricos de seguridad para las agencias federales y el ejrcito.
22
Porttiles Toshiba.
Los ltimos modelos de porttiles Toshiba llevan incorporado un sistema de reconocimiento
facial para realizar diversas tareas que requieren autenticacin como iniciar sesin (Figura 2.18),
otorgar permisos de administrador o como sustituto de clave numrica en algunos programas.
Sistemas de comportamiento similar pero haciendo uso de la huella dactilar ya haban sido
implantados con xito anteriormente. En este caso, los porttiles con sistema de reconocimiento
facial no requieren de un sensor adicional como ocurre con los de huella, ya que se valen de la
cmara integrada para realizar estas funciones.
Face Unlock.
De forma similar que con el software de Picasa, en 2011 Google compr a la compaa especializada en reconocimiento facial PittPatt. El objetivo de Google era llevar los sistemas de
reconocimiento facial a la plataforma Android para que pudieran ser utilizados por dispositivos mviles. Valindose del SDK desarrollado por PittPatt, Android lanz en 2012 una nueva
funcionalidad del sistema operativo, Face unlock. Con Face unlock, un sistema completo de reconocimiento facial en tiempo real se hizo posible en dispositivos con capacidades limitadas de
procesamiento. Esta funcionalidad permite a los usuarios de mviles con Android cambiar el
desbloqueo mediante clave por el desbloqueo mediante el reconocimiento de la cara. Para realizar esto, el sistema previamente lleva a cabo una fase de entrenamiento por la cual almacena
imgenes de la cara del usuario haciendo uso de la cmara frontal como se muestra en la Figura
2.19.
Una vez se ha guardado correctamente al usuario, el dispositivo realizar tareas de deteccin y
reconocimiento cuando la pantalla est bloqueada y un usuario la enciende. Si el reconocimiento
es positivo, el dispositivo permitir el acceso al usuario. Con este reconocimiento de usuario
tambin se pretende cargar conguraciones y preferencias personalizadas basadas en el uso.
CAPTULO 2. ESTADO DEL ARTE.
23
Google Glass.
Un proyecto que est todava en fase de pruebas, pero que ha despertado el inters de
mucha gente son las Google Glass, unas gafas capaces de proyectar informacin en el cristal y
grabar vdeo gracias a su cmara incorporada (Figura 2.20). Este prototipo hace uso de tcnicas
de realidad aumentada para plasmar la informacin, y se comunica con el dispositivo mvil del
usuario para realizar tareas complejas como bsquedas en internet u obtencin de contactos para
realizar llamadas sin tener que manejar el dispositivo. Debido a sus cualidades, las gafas estn
ganando inters en la comunidad cientca por todas las aplicaciones que se podran desarrollar
en torno a las mismas, entre ellas sistemas de reconocimiento facial en tiempo real. El reto que
se plantea para que esto sea posible es la necesidad de utilizar bases de datos, en ocasiones muy
extensas con la carga computacional y de espacio que conllevan. Existen tambin preocupaciones
al respecto puesto que la privacidad se ve comprometida con la aparicin de dispositivos de este
tipo.
25
Verilook SDK.
La empresa Neurotechnology es la creadora del SDK de reconocimiento facial Verilook. Este
software cuenta con tres versiones; la versin de escritorio, la versin para mviles y la optimizada para videovigilancia. La versin de videovigilancia ofrece funcionalidades como la posibilidad
de tener todos los dispositivos conectados a travs de un servidor que contiene la base de datos
compartida. El reconocimiento en tiempo real del SDK es compatible con mltiples caras simultneas en la misma imagen. El entrenamiento del sistema (ver Figura 2.22) se realiza aparte del
sistema de reconocimiento.
FaceIt.
Este SDK desarrollado por Bayometric Inc. contiene todas las funciones necesarias para
realizar tareas de deteccin y reconocimiento en un sistema de reconocimiento facial centrado
en equipos de sobremesa y cmaras de videovigilancia. FaceIt contiene mdulos para deteccin
de cara, creacin de plantillas y anlisis de calidad todos ellos empaquetados en un interfaz de
programacin en C. Este SDK es utilizado por la empresa MorphoTrust USA, encargada de
varios servicios destinados a la seguridad federal en Estados Unidos.
Disponible en: http://www.bayometric.com/products/Face-Recognition-SDK.htm
Face Forensics.
Face Forensics es un SDK creado por 360 Biometrics que permite implementar sistemas de
reconocimiento conectados entre s a una misma base de datos por medio de conexin a un
26
FaceSDK.
La empresa de biometra Luxand tiene disponible un SDK de reconocimiento facial para
crear aplicaciones multiplataforma. El software es compatible con Windows, Mac OS y Linux.
Este SDK incluye integracin con un amplio rango de entornos de desarrollo como son Microsoft
Visual C++, C#, VB.NET, VB6, Java, Delphi y C++Builder haciendo que el SDK sea muy
verstil en cuanto a posibilidades de diseo. Entre sus caractersticas destacan la deteccin de
cara, de ojos y 66 rasgos faciales as como reconocimiento facial del que arman que consiguen
tasas de reconocimiento del 85 % cuando la tasa de falsa aceptacin se establece en un 0,1 %
para la base de datos FERET. Finalmente, ofrece funciones de paralelizacin con el objetivo de
mejorar el rendimiento.
Disponible en: http://www.luxand.com/facesdk/
27
Sistemas desarrollados.
En este captulo se describen en detalle los dos sistemas diseados, desarrollados e implementados en el proyecto:
Sistema en tiempo real. El segundo sistema tomar parte de las etapas del primero y
Entrenamiento
e inicializacin
Deteccin
Deteccin de
cara
Deteccin de
ojos
Preprocesado
Base de
datos
Rotacin
Escalado y
recorte
Ecualizacin de
histograma
Extraccin de caractersticas
PCA
LBP
Comparacin
Chi-Square
SVM
Fusin
30
a)
b)
3.1.3. Deteccin
La primera etapa por la que pasa la imagen de test una vez ha sido capturada es la etapa
de deteccin. La informacin que se necesita detectar para las siguientes etapas son la cara y la
posicin de los ojos. En el caso de deteccin de la cara se utiliza el algoritmo de Viola-Jones [31]
puesto que da muy buenos resultados. En el caso de la deteccin de ojos, se han implementado
dos tcnicas con diferentes caractersticas expuestas ms adelante.
CAPTULO 3. SISTEMAS DESARROLLADOS.
31
Deteccin de la cara
La deteccin de la cara es un aspecto crucial en el sistema puesto que un error al detectar
la misma resultar en un error en el resto de etapas. Para esta funcin, se ha implementado
deteccin de la cara mediante el algoritmo de Viola-Jones por su bajo coste computacional
respecto a otras tcnicas y su precisin en la deteccin.
El algoritmo de Viola-Jones fue desarrollado a partir de la obtencin de sets de caractersticas
basadas en Haar Wavelets, reduciendo signicativamente el coste computacional que las tcnicas
basadas en intensidades de las imgenes suelen tener. Dicho algoritmo hizo posible la deteccin
de objetos en tiempo real obtenindose el primer detector de caras en tiempo real a travs
del mismo. El coste computacional, aunque es mucho menor que otras tcnicas, sigue siendo
signicativo en aplicaciones en tiempo real. Por esta razn, el sistema slo detecta una cara (la
de mayor tamao) en cada imagen de test dado que detectar mltiples caras hace que el sistema
se ralentice de sobremanera, algo que se pretende evitar en la medida de lo posible para un
correcto funcionamiento en tiempo real.
OpenCV incluye una implementacin de deteccin de objetos utilizando este algoritmo [32]
(ver Figura 3.3). Con esta funcin es posible variar el tamao de la ventana mnima de deteccin
e imponer un escalado a la propia imagen para reducir los tiempos de cmputo. La deteccin
de mltiples objetos no est del todo optimizada y requiere un tiempo diez veces mayor al de la
deteccin de un solo objeto (aunque slo haya dos caras en la imagen).
30%
Al
t
o
50%
Al
t
o
33
a
)
b)
Rotacin
La primera transformacin que se lleva a cabo en la etapa es la de rotacin de la imagen.
Utilizando la informacin de las coordenadas de los centros de los ojos obtenidas en la etapa
de deteccin, es posible calcular el ngulo de giro de la cara detectada respecto al eje horizontal y compensarlo mediante una transformacin afn de rotacin (ver Figura 3.8). En esta
transformacin se toma como centro el ojo derecho, puesto que ser la referencia del resto de
transformaciones.
Escalado y recorte
Una vez se tiene la imagen rotada y nivelada, se procede a realizar una transformacin
geomtrica de escalado en la misma para que la separacin entre los ojos cumpla con el estndar.
Una vez ms, con las coordenadas actualizadas de los ojos se calcula la distancia entre los
mismos y se obtiene una relacin de proporcin respecto al tamao deseado. Como mtodo de
interpolacin, la funcin de escalado de OpenCV utiliza interpolacin bilineal.
Por ltimo, utilizando como referencia las coordenadas del ojo derecho y una ventana de
tamao 168x192 colocada a una distancia del mismo como dicta la Figura 3.7, se recorta para
obtener la imagen normalizada nal. Como las funciones de recorte de OpenCV no autorellenan
la imagen si alguna zona del rectngulo queda fuera, hay que asegurarse de aadir un marco
negro a la misma ya que de lo contrario OpenCV da un error relativo a acceso de memoria
invlida (los pxeles que quedan fuera de la imagen y que por consiguiente no apuntan a zonas
vlidas de memoria) provocando que el programa termine de forma incorrecta.
CAPTULO 3. SISTEMAS DESARROLLADOS.
35
PCA - Eigenfaces
Como se ha explicado anteriormente, PCA pretende reducir la informacin quedndose con
un conjunto llamado componentes principales capaces de representar mejor los datos en trminos
de mnimos cuadrados. Para ello, proyecta los datos en un subespacio de coordenadas calculado
mediante el entrenamiento previo con imgenes de caras. Durante dicho entrenamiento se obtiene una serie de autovalores y autovectores que realizarn la transformacin de las imgenes
de entrada. Las componentes principales quedan ordenadas en funcin de la informacin que
contienen por lo que se puede comprobar que a partir de un cierto nmero de componentes, la
informacin que se aporta es mnima.
La aplicacin de PCA en imgenes de caras se conoce comnmente como Eigenfaces ya que
al representar los autovectores, la imagen resultante tiene la apariencia de ser una media de las
caras entrenadas como se muestra en la Figura 2.10. Para el sistema, se utilizan 200 componentes
principales para describir cada imagen ya que tal y como muestra la Figura 3.9, la prdida de
informacin no es realmente signicativa.
Figura 3.9: Punto de seleccin de 200 componentes principales una vez entrenado el PCA.
El procedimiento para proyectar una imagen de entrada en el subespacio PCA es el siguiente:
Ecualizacin de histograma.
a)
b)
LBP histograms
La segunda tcnica de extraccin de caractersticas implementada es la basada en histogramas
de Local Binary Patterns. LBP es un algoritmo bastante sencillo que transforma las imgenes
sin necesidad de un entrenamiento previo como ocurre con PCA.
El funcionamiento bsico de LBP es el siguiente; se recorre la imagen pxel a pxel y en
cada posicin se obtiene tanto el valor del pxel estudiado como de su vecindario. Los valores
del vecindario son binarizados tomando como umbral el valor del pxel estudiado tal y como
muestra la Figura 3.11. Una vez hecho esto, el vecindario ser una sucesin de 8 cifras a uno y a
cero, esta cadena se toma a partir del valor central izquierdo en sentido antihorario creando un
CAPTULO 3. SISTEMAS DESARROLLADOS.
37
Distancia Eucldea
En el caso del sistema utilizando PCA, en vez de tener dos dimensiones como se ejemplic
en el estado del arte, se tendran doscientas pero el clculo se realizara de la misma forma. Una
vez se obtiene la distancia, un valor menor indicar que los vectores de caractersticas estn ms
cerca el uno del otro o, particularizando, que dos imgenes de cara tendrn mayor parecido.
CAPTULO 3. SISTEMAS DESARROLLADOS.
39
SVM
La segunda tcnica implementada para el sistema funcionando con PCA es el uso de SVMs
para realizar la clasicacin. Una desventaja de los mismos frente a las tcnicas de medidas
de similitud es que requieren un entrenamiento previo para poder realizar clasicaciones pero
suelen obtener mejores resultados.
Para el caso del sistema, en vez de entrenar un SVM con todas las clases y obtener la clase
en la que se encuentra cada dato de test que entra, se ha optado por entrenar un SVM por cada
imagen de entrenamiento para poder obtener una medida de distancia [30]. Para entrenar cada
SVM, se toma el vector de caractersticas de la imagen de entrenamiento como una clase y el
resto de vectores de las imgenes en la base de datos como otra clase, teniendo slo dos clases.
Con esto se obtiene la distancia que se tiene a cada imagen por separado. Dado que OpenCV
no tiene implementado este tipo de funcionamiento en SVMs [36], se ha tenido que
modicar el cdigo de la funcin que trae la librera para poder acceder a los parmetros internos.
El kernel utilizado para el clculo del hiperplano es lineal, este kernel dar peores resultados que
los no lineales sin embargo estos ltimos son mucho ms lentos por lo que los hacen poco viables
para una aplicacin en tiempo real.
Chi-Square
Para el caso de los LBPs, la utilizacin en conjunto con la medida de distancia 2 obtiene
buenos resultados. Aunque no tiene la capacidad de clasicacin de los SVMs, 2 se calcula de
una forma muy rpida y sin necesidad de entrenamiento previo por lo que, unido a la rapidez de
clculo de los LBPs, lo convierten en un mtodo interesante para los sistemas en tiempo real.
Entrenamiento
e inicializacin
Captura
Modo
Demostracin
Modo
Identificacin
Modo
Entrenamiento
Deteccin
Deteccin de
cara
Deteccin de
ojos
Preprocesado
Rotacin
Base de
datos
Escalado y
recorte
Ecualizacin de
histograma
Extraccin de caractersticas
PCA
LBP
Comparacin
Distancia
Eucldea
Chi-Square
Fusin
41
Ordenador de sobremesa.
Procesador.
Memoria RAM. Dos pastillas de 2048 MB a doble canal. Frecuencia de trabajo 400
MHz. Tipo de memoria DDR2.
Cmara web. La cmara web encargada de capturar las imgenes es una Logitech C920
capaz de grabar vdeo en Full HD (1080p). Tambin es capaz de grabar vdeo en otras resoluciones por lo que se aprovecha esto para que el programa pueda trabajar con diferentes
resoluciones. La tasa de fotogramas por segundo mxima es de 30, por lo que el sistema se
ver limitado por esta especicacin. Las diferentes resoluciones se traducen en imgenes
de mejor calidad por lo que cabe esperar que con una mayor resolucin, el sistema funcione de manera ms precisa (siempre y cuando el entrenamiento se realice tambin con
resoluciones altas) respecto a resoluciones ms bajas, sobre todo en distancias alejadas.
Cabe aadir que una mayor resolucin tambin contribuye a que el sistema se ralentice
porque las imgenes son de mayor tamao.
Televisor. El
3.2.3. Adaptacin e implementacin del sistema o-line para su funcionamiento en tiempo real
Como se ha explicado anteriormente, el sistema o-line ha sido usado en el segundo sistema
para realizar las tareas de reconocimiento. Al estar este ltimo programado en el entorno Qt, es
necesario realizar algunos cambios antes de realizar la adaptacin al funcionamiento en tiempo
real.
Las versin utilizada de Qt es la 5.0.1 siendo el Qt Creator (entorno de programacin) la
versin 2.6.2, mientras que con la versin de OpenCV se intent utilizar la misma con la que se
haba programado el sistema oine, la ltima versin en su da 2.4.2. Tras congurar la librera
42
43
44
men pone en marcha el sistema y lo prepara para identicar individuos utilizando tcnicas
de PCA con distancia eucldea. Al hacer click en el botn, se llama a la funcin que busca
la base de datos en el directorio especicado y realiza el entrenamiento de las imgenes.
Una vez hecho esto, activa el temporizador y la cmara para que comience a capturar
imgenes. Cuando el sistema termina de inicializar, los controles para identicar, detectar
y entrenar se habilitan. Volver a pulsar el botn hace que se vuelva a inicializar el sistema
con lo que se puede cambiar de tcnica simplemente pulsando el botn deseado. Debido
a que se tiene control absoluto sobre la base de datos, el PCA se entrena con las mismas
imgenes de entrenamiento que se utilizan posteriormente en el reconocimiento.
CAPTULO 3. SISTEMAS DESARROLLADOS.
3.
4.
Cambio de resolucin. Como la cmara web es compatible con varias resoluciones, este
5.
Giro de la imagen.
6.
Identicacin.
7.
Demostracin de deteccin.
En este men se controla la deteccin de mltiples caras. El nmero de caras a detectar se controla mediante el men desplegable. El tipo de
inicializacin no afecta en este funcionamiento puesto que no llega a pasar de la deteccin.
8.
el sistema para su funcionamiento utilizando LBPs con 2 . En este caso, las imgenes de
la base de datos son transformadas a los histogramas de caractersticas generados por el
mtodo de LBP. Como no se requiere un entrenamiento previo, el tiempo necesario para
inicializar este sistema es menor.
men permite cambiar entre tres resoluciones diferentes. Las resoluciones disponibles son
640x480, 1280x720 y 1920x1080. El cambio entre las mismas se puede realizar durante cualquier funcin, incluso entrenando. La resolucin por defecto que se ha elegido es 1280x720
puesto que ofrece buena calidad de imgen sin ralentizar de sobremanera el sistema. Con
este elemento, se puede comprobar como afectan los cambios de resolucin en el tiempo
de procesado y en la precisin del sistema.
Debido a que ciertas cmaras web (entre ellas la utilizada en el
proyecto) capturan las imgenes con un giro de 180 , este botn se ha aadido al sistema
para corregir este fenmeno.
En este men se puede activar la identicacin. Pulsando el botn comienza el proceso haciendo uso del sistema o-line. Este funcionamiento es explicado con
mayor detalle en la siguiente seccin.
9.
Captura y resultado. En esta zona se muestra la imagen que captura la cmara web.
10.
11.
Imagen normalizada. En esta pequea zona se muestra la imagen normalizada siempre que la deteccin haya sido correcta. De esta forma, se tiene informacin visual si el
sistema est siendo capaz de detectar con xito tanto la cara como los ojos y cmo est
normalizando los mismos.
45
Tiempos de procesado. En este ltimo grupo de elementos se muestran los tiempos rela-
10
1
2
3
4
5
11
12
Modo 2. Demostracin.
Modo 1. Identicacin
Uno de los modos principales de funcionamiento es el modo de identicacin. Este modo es
el ms cercano al funcionamiento del sistema o-line haciendo uso de casi todas las funciones
involucradas en el mismo. Cuando una imagen es detectada por la cmara web, comienza el
46
47
Eyes:
E.D.
:
Modo 2. Demostracin
El modo demostracin es un funcionamiento del sistema en el que slo realiza deteccin de
cara pero, a diferencia del sistema completo, existe la opcin de detectar ms de una cara cada
fotograma. Las caras detectadas se ordenan en tamao por lo que si, por ejemplo, se selecciona
deteccin de tres caras y hay cinco posibles caras en la imagen, se marcaran con un recuadro
rojo las tres caras ms grandes que se hayan detectado. Un ejemplo de este funcionamiento se
puede ver en la Figura 3.19.
OpenCV ofrece la posibilidad en su funcin de detectar una sola cara o varias caras [32]. El
48
Modo 3. Entrenamiento
El ltimo modo de funcionamiento del que consta el sistema es el encargado de registrar
a los usuarios y almacenar las imgenes de sus caras en la base de datos. En este modo se
utilizan principalmente las funciones de deteccin de cara y ojos as como la de normalizacin.
Para realizar el entrenamiento de un usuario, se introduce un identicador en el campo de
texto como por ejemplo su nombre y se selecciona el nmero de imgenes que sern entrenadas
y almacenadas. Si no se dene un valor para el nmero de imgenes a entrenar, el sistema
realizar un entrenamiento sin detenerse hasta que el usuario vuelva a hacer click en el botn
de deteccin.
Una vez que el sistema inicia el entrenamiento, se detectar la cara del usuario y, en caso
de xito, los ojos. Si la deteccin de la cara o algn ojo no es correcta, la imagen no ser
procesada y almacenada. De esta forma se obtienen las caras con mayor precisin al igual que en
la identicacin. Visualmente en el rea de deteccin se marcar la cara que est siendo entrenada
con una etiqueta para conocer el estado. En el rea de informacin adicional aparecer la imagen
normalizada una vez haya sido procesada, siendo esta misma la que se almacenar en la base de
datos (ver Figura 3.20).
En la parte inferior donde se muestra la imagen normalizada, aparece un contador de el
nmero de imgenes entrenadas en la sesin mientras dura el proceso. Este contador hace un
recuento de las imgenes que se estn entrenando para dar informacin sobre el estado, si existen
ms imgenes del usuario en la base de datos, estas no son contabilizadas. Como se puede ver en
CAPTULO 3. SISTEMAS DESARROLLADOS.
49
Registro de
identificador
Comprobacin
Base de datos
Identificador nuevo
Entrenamiento
Identificador existente
Aviso de
conflicto
51
Tamao de las
imgenes
720x576
Imgenes por
individuo y sesin
10
Num. total
imgenes
6240
Protocolo BANCA
La base de datos contiene una serie de protocolos para realizar experimentos donde se denen
los conjuntos de entrenamiento y test necesarios para los experimentos de reconocimiento. En
la Tabla 4.1 se muestra la informacin ms relevante al contenido de la misma.
b)
a
)
c
)
adverse
cambios en el entorno o sesin. Todas las imgenes tomadas fueron evaluadas y fueron separadas
en funcin de los resultados de rendimiento que se obtuvieron con un sistema de referencia. Por
tanto en el grupo Good se encuentran las imgenes que generalmente mejores resultados dan
al usar el sistema de reconocimento baseline descrito en [4], en el grupo Bad se encuentran las
que dan malos resultados y, por ltimo en el grupo Ugly se encuentran las que ofrecen peores
resultados frente al reconocimiento [39].
Individuos
totales
437
Hombres Mujeres
245
192
Tamao de las
imgenes
3008x2000
Imgenes por
individuo y grupo
(Variable) 1-4
Imgenes de
entrenamiento
1085
Imgenes de
test
1085
Num. Total
imgenes
6510
a
)
b)
c
)
Figura 4.2: Muestra de imgenes en la base de datos FOCS. a) good b) bad c) ugly
Como se puede ver en la Tabla 4.2, la base de datos est compuesta por 437 usuarios (245
hombres y 192 mujeres). El entorno de las imgenes es variable y el nmero de imgenes que se
toman por cada individuo tambin vara entre 1-4 imgenes haciendo un total de 1.085 imgenes
por cada conjunto de entrenamiento y test. La distribucin de imgenes por persona en ambos
conjuntos (entrenamiento y test) es de 117 sujetos con 1 imagen, 122 sujetos con 2 imgenes, 68
sujetos con 3 imgenes y 130 sujetos con 4 imgenes Cabe resaltar que las imgenes tomadas
para esta base de datos son de alta resolucin si bien la distancia del individuo a la cmara es
variable.
Protocolo FOCS
La base de datos de FOCS, a diferencia de BANCA, ya tiene las imgenes de cada grupo
divididas en imgenes de entrenamiento y de test por lo que no es necesario realizar ninguna
separacin especial respecto a la misma. Tanto en entrenamiento como test, coinciden la cantidad
de imgenes por usuario y el nmero total de imgenes en los conjuntos como muestra la Tabla
4.2. Los experimentos son separados en las tres categoras previamente descritas teniendo as
conjuntos de entrenamiento y test para good, bad y ugly por separado.
se medirn a travs del sistema o-line haciendo uso de las bases de datos presentadas. Los
experimentos analizarn las fases de deteccin de cara (Exp.Det1) y deteccin (Exp.Det2)
de ojos con las diferentes tcnicas propuestas.
CAPTULO 4. EXPERIMENTOS REALIZADOS Y RESULTADOS.
55
de procesado, se har uso del sistema en tiempo real. Se realizarn experimentos que
contabilicen el tiempo que requiere cada etapa para ejecutarse y cmo afectarn diferentes
factores como la resolucin o la distancia de un usuario a las mismas.
los subconjuntos de imgenes cuyas caras han sido correctamente extradas por la
anterior deteccin.
Exp.Det1. Rendimiento de la deteccin de cara
Fail To Acquire (FTA). Fallo producido por no haber encontrado ninguna cara en la
imagen.
Controlled
Degraded
Adverse
Nmero de
imgenes
2080
2080
2080
FTA
FTD
16
55
14
91
31
46
Usuarios
con fallos
13
21
15
Total
Fallos
107
76
60
Porcentaje
de fallos
5,14%
3,61%
2,88%
57
a)
b)
c
)
Figura 4.3: Usuarios con fallos en la deteccin de cara en los grupos a) controlled, b) degraded y
adverse
58
a)
b)
c)
Figura 4.4: Ejemplos de deteccin correcta e incorrecta para a) Controlled b) Degraded c) Adverse.
a)
b)
c)
Figura 4.5: Ejemplos de deteccin correcta e incorrecta para a) Good b) Bad c) Ugly.
59
Vi
ol
aJone
s
Bi
nar
i
z
ac
i
n
a)
b)
c)
61
Vi
ol
aJone
s
Bi
nar
i
z
ac
i
n
a)
b)
c)
Kernel lineal
= 20
Coste, C = 1000
Sin pesos por clase
Iteraciones mximas; 1000
Error, = 1e 6
En este caso, los resultados se ven altamente afectados por el tipo de kernel que utilice el
SVM. El kernel lineal es el que peores resultados ofrece frente a otros como el gaussiano
pero a su vez es el ms rpido. En este proyecto se ha optado por utilizar el kernel lineal
62
System2. LBP+Chi-Square.
System3. Fusin. La fusin que se realiza de las tcnicas de PCA y LBP es una fusin a
nivel de score. Para que los resultados obtenidos se puedan fusionar, se deben normalizar.
El tipo de normalizacin elegido es la normalizacin por tangente hiperblica debido a los
buenos resultados que ofrece respecto a otras tcnicas[37].
a)
b)
Figura 4.8: Curva ROC para las tcnicas implementadas en BANCA a) grupo g1 b) grupo g2.
Como se puede comprobar, la tcnica de LBP con los parmetros ajustados, mejora sensiblemente los resultados obtenidos respecto a la tcnica con los parmetros preestablecidos.
CAPTULO 4. EXPERIMENTOS REALIZADOS Y RESULTADOS.
63
Sys
1
Sys
2
Sys
2
mo
d
Sys
3F
g
1
1
6
.
6
2
4
.
3
1
5
.
7
1
6
.
9
g
2
1
5
.
4
2
2
.
4
1
7
.
0
1
5
.
6
Tabla 4.7: Comparacin de tasas de error en varios sistemas que utilizan LBP (junto con dos
mtodos del estado del arte) y los implementados. Tabla extrada de [1].
Los datos extrados de la Tabla 4.7 muestran cmo para cada grupo hay un sistema que
obtiene los mejores resultados quedando todos menos system2 por encima de algunos de los
sistemas de referencia. Tambin se puede observar que la fusin no llega a mejorar las tasas de
error por lo que se puede decir que no son dos sistemas que ofrezcan buenos resultados fusionando
a nivel de score.
Figura 4.9: Curvas ROC para las tcnicas implementadas en los grupos a) good b) bad y c) ugly
de FOCS.
Respecto a la Figura 4.10, se comprueba como el sistema desarrollado obtiene mejores resultados que el de referencia en good y ugly sin embargo en bad no se obtienen tan buenos
resultados. Estos datos pueden deberse a la naturaleza de la base de datos ya que en bad se
agrupan el mayor nmero de imgenes tomadas en el exterior cuyas caractersticas pueden hacer
que el sistema no funcione tan bien.
65
0.
72
S
Y
S
2
M
O
D
1
0.
09 0.
B
A
S
E
L
I
N
E
Figura 4.10: Comparacin de los resultados del sistema baseline respecto a los obtenidos con el
sistema system2mod.
Deteccin
Deteccin
de cara
Deteccin
de ojos
Preprocesado
()
Extraccin de
caractersticas
Medidas de
similitud
()
()
()
()
_ = + + + + ()
1
=
_
Figura 4.11: Diagrama de etapas del sistema en tiempo real de las cuales se extraen los tiempos
de procesamiento.
La distancia se jar en 1 metro puesto que esta afectar a la etapa de deteccin que ser
estudiada en el siguiente experimento. En la tcnica de fusin, los tiempos de extraccin de
caractersticas y medida de similitud de son almacenados en una nica variable. La base de
datos tiene un total de 200 imgenes durante la realizacin de los experimentos
Tabla 4.8: Medidas de tiempos (ms) para cada etapa del sistema (los resultados pueden tener
un error de 5ms).
Como se puede observar en la Tabla 4.8, las etapas de deteccin y procesado se ven altamente
inuenciadas por la resolucin seleccionada mientras que las etapas de extraccin de caractersticas y medidas de similitud permanecen relativamente constantes. Estas medidas aumentarn
su tiempo de procesado conforme la base de datos se ample. Como es de esperar, los tiempos
de procesado de distancia eucldea son muy bajos puesto que el tamao de los vectores de caractersticas producidos por PCA (dimensin: 200) son mucho menores que los producidos por
los LBPs (dimensin: 2891) y la versin con modicacin de parmetros (dimensin: 5900).
67
t
dc
t
dc
t
dc
t
dc
t
dc
t
dc
a
)
b)
Figura 4.12: Tiempos de proceso para a) la deteccin de una cara y b) deteccin mltiple.
Como se puede observar en la Figura 4.12, para el caso de un slo objeto a detectar, el
tiempo de procesado aumenta conforme el objeto se aleja de la cmara. Esto es debido a que en
el momento en que el algoritmo encuentra un objeto, deja de realizar barridos en la imagen por
lo que cuanto mayor sea el objeto detectado menos tardar ya que se ahorra todo el tiempo que
sera invertido en proseguir con el barrido. En la deteccin mltiple, sin embargo, los tiempos
permanecen relativamente constantes teniendo una mayor uctuacin cuanto ms alta es la
resolucin.
Los tiempos mnimos de deteccin son conseguidos por la resolucin ms baja en deteccin
de una cara y oscilan en el rango de 25 ms. Obteniendo los fotogramas por segundo resulta
1
en 0,025
= 40f ps por lo que en este caso el sistema funcionara a la velocidad mxima de la
cmara (30 fps). Los tiempos mximos en deteccin de una cara oscilan en los 600 ms, lo que se
traduce en 1,67 fotogramas por segundo. Teniendo en cuenta que el ojo humano empieza a notar
discontinuidades por debajo de 15 fps, los picos de procesado producirn una gran ralentizacin
haciendo que el vdeo se vea a saltos.
68
Deteccin
Deteccin
de cara
Deteccin
de ojos
Preprocesado
()
()
()
_ = + + ()
Figura 4.13: Diagrama de tiempos para las etapas involucradas en el modo entrenamiento.
Tabla 4.9: Medidas de tiempos (ms) para cada etapa del sistema en modo entrenamiento.
70
En el presente proyecto se han estudiado, desarrollado, implementado, evaluado y documentado dos sistemas completos de reconocimiento facial, uno o-line para el trabajo con bases de
datos del estado del arte y otro para el funcionamiento en tiempo real. Dichos sistemas han sido
evaluados en diferentes aspectos como el rendimiento en deteccin y reconocimiento y como el
tiempo de procesado de cada etapa (aspectos relevantes en el reconocimiento en tiempo real).
En primer lugar, para el funcionamiento de los sistemas se han utilizado tcnicas del estado
del arte para cada etapa, implementndose dos tcnicas diferentes en la deteccin y dos tcnicas,
una basada en caractersticas globales y otra en caractersticas locales, para el reconocimiento. La
utilizacin de diferentes tcnicas permite su estudio y comparacin frente a diferentes escenarios
impuestos por las bases de datos elegidas. Tras el desarrollo completo de los dos sistemas, se han
llevado a cabo experimentos que tienen como objetivo evaluar las etapas con mayor inuencia
sobre el funcionamiento global. Gracias a la posibilidad de generar resultados a partir de las
bases de datos por parte del sistema o-line, ha sido posible medir la precisin tanto de la etapa
de deteccin como de la etapa de reconocimiento y as obtener una precisin aproximada para el
sistema on-line. En el caso del sistema on-line, uno de los aspectos ms importantes es el tiempo
que se tarda en el proceso de las etapas para garantizar un funcionamiento en tiempo real.
Las dos bases de datos utilizadas en los experimentos, permiten tener informacin sobre
el rendimiento en diferentes condiciones. Por una parte, la base de datos de BANCA otorga
imgenes de secuencias de vdeo de una calidad media como podran obtenerse a partir de un
sistema de videovigilancia. Por otro lado, la base de datos de FOCS proporciona imgenes de
alta calidad con una gran cantidad de usuarios nicos y con imgenes de entrenamiento variables
asemejndose a lo que podra ser la base de datos de una comisara.
En un sistema de reconocimiento facial del que no se dispone de informacin adicional como
las coordenadas de los ojos, la deteccin automtica juega un papel crucial ya que de realizarse
incorrectamente, producir casi seguramente un fallo en el resto de etapas siguientes. Los experimentos realizados referentes a la deteccin de cara, muestran una buena precisin con tasas de
fallo bajas. Se puede comprobar que la tasa de fallos aumenta cuanto ms grande sea la imagen
71
73
74
Glosario de acrnimos
API: Application Programming Interface
DCT: Discrete Cosine Transform
DET: Detection Error Tradeo
DFT: Discrete Fourier Transform
DWT: Discrete Wavelet Transform
EBGM: Elastic Bunch Graph Matching
EER: Equal Error Rate
FA: False Acceptance
FAR: False Acceptance Rate
FOCS: Face and Ocular Challenge Series
FR: False Rejection
FRR: False Rejection Rate
FTA: Fail To Acquire
FTD: Fail To Detect
GMM: Gaussian Mixture Models
HMM: Hidden Markov Models
IPD: Interpupilary Distance
KNN: K-Nearest Neighbours
LBP: Local Binary Patterns
LDA: Linear Discriminant Analysis
NIST: National Institute of Technology
PCA: Principal Component Analysis
ROC: Receiver Operating Characteristic
SDK: Software Development Kit
SVM: Support Vector Machine
75
Bibliografa
[1] Sbastien Marcel, Yann Rodriguez, and Guillaume Heusch. On the recent use of local binary
patterns for face authentication. International Journal on Image and Video Processing
Special Issue on Facial Image Processing, 0 2007. IDIAP-RR 06-34, accepted for publication
but withdrawn because of author charges.
[2] Ajay Kumar Anil K. Jain. Biometrics of next generation: An overview. In Second Generation
Biometrics. Springer, 2010.
[3] Enrique Bailly-baillire, Samy Bengio, Frdric Bimbot, Miroslav Hamouz, Josef Kittler,
Johnny Marithoz, Jiri Matas, Kieron Messer, Fabienne Pore, and Belen Ruiz. The banca database and evaluation protocol. In In Proc. Int. Conf. on Audio- and Video-Based
Biometric Person Authentication (AVBPA03, pages 625638. Springer-Verlag, 2003.
[4] P. Jonathon Phillips, J. Ross Beveridge, Bruce A. Draper, Geof H. Givens, Alice J. O'Toole,
David S. Bolme, Joseph P. Dunlop, Yui Man Lui, Hassan Sahibzada, and Samuel Weimer.
An introduction to the good, the bad, & the ugly face recognition challenge problem. In
FG, pages 346353. IEEE, 2011.
[5] Opencv documentation page. http://docs.opencv.org/.
[6] Qt documentation page. http://qt-project.org/doc/qt-5.0/qtdoc/index.html.
[7] Woodrow Wilson Bledsoe. The model method in facial recognition. Technical report,
Panoramic Research Inc, 1966.
[8] T. Kohonen. Self-organization and associative memory: 3rd edition. Springer-Verlag New
York, Inc., New York, NY, USA, 1989.
[9] L. Sirovich and M. Kirby. Low-dimensional procedure for the characterization of human
faces. Journal of The Optical Society of America A-optics Image Science and Vision, 4,
1987.
[10] M.A. Turk and A.P. Pentland. Face recognition using eigenfaces. In Computer Vision and
Pattern Recognition, 1991. Proceedings CVPR '91., IEEE Computer Society Conference on,
pages 586591, 1991.
[11] Anil K. Jain and Stan Z. Li. Handbook of Face Recognition. Springer-Verlag New York,
Inc., Secaucus, NJ, USA, 2005.
[12] Zhifeng Li, Unsang Park, and Anil K. Jain. A discriminative model for age invariant face
recognition. IEEE Transactions on Information Forensics and Security, 6(3-2):10281037,
2011.
77
BIBLIOGRAFA
BIBLIOGRAFA
79
80
BIBLIOGRAFA
Presupuesto
1) Ejecucin Material
Compra de ordenador personal (Software incluido)
1900
200
Material de ocina
200
2300
800
85
Televisor
600
200
3) Gastos generales
sobre Ejecucin Material
368
4) Benecio Industrial
sobre Ejecucin Material
138
5) Honorarios Proyecto
1800 horas a 15 / hora
27000
6) Material fungible
Gastos de impresin
150
Encuadernacin
200
34141
8) I.V.A. aplicable
21 % Subtotal Presupuesto
7169,51
9) Total presupuesto
Total Presupuesto
41310,51
82
APNDICE A. PRESUPUESTO
Pliego de condiciones
Pliego de condiciones
Este documento contiene las condiciones legales que guiarn la realizacin, en este proyecto,
de un sistema de reconocimiento biomtrico basado en la forma de andar. En lo que sigue, se
supondr que el proyecto ha sido encargado por una empresa cliente a una empresa consultora
con la nalidad de realizar dicho sistema. Dicha empresa ha debido desarrollar una lnea de
investigacin con objeto de elaborar el proyecto. Esta lnea de investigacin, junto con el posterior
desarrollo de los programas est amparada por las condiciones particulares del siguiente pliego.
Supuesto que la utilizacin industrial de los mtodos recogidos en el presente proyecto ha
sido decidida por parte de la empresa cliente o de otras, la obra a realizar se regular por las
siguientes:
Condiciones generales.
Condiciones particulares.
85
86
En esta seccin se incluyen los manuales de utilizacin con instrucciones de uso y consideraciones a tener en cuenta de los dos sistemas o-line y en tiempo real.
dev.txt. Archivo con las rutas completas de las imgenes que sern utilizadas para el entrenamiento del PCA.
train.txt. Contiene las rutas absolutas de las imgenes que sern utilizadas para el entrenamiento.
test.txt. En este archivo se encuentran las rutas absolutas de las imgenes utilizadas como
imgenes test.
Los archivos de las imgenes tendrn en el nombre el identicador nico de usuario separado
por un guin bajo del resto del mismo (ejemplo: 0021_02g1.JPG ). Para las diferentes tcnicas,
87
score_log_lbp.txt. Resultados y decisiones generados por el reconocimiento mediante tcnicas de LBP con Chi-Square.
89
En este anexo se detallan las cabeceras de las funciones que utiliza el sistema. Puesto que el
sistema en tiempo real utiliza todas las funciones del sistema o-line, las funciones aqu expuestas
sern todas las del sistema en tiempo real.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
);
// Function prototype for detecting and drawing an object from an image
// Inputs : image Input image
//
i d e n t i f i e d Flag to know i f the detected face has been identified
// Outputs : Rect Rectangle of the detected area
Mat scale_and_border_isov ( Mat img , eye reye , eye leye , double distance ) ;
//
leye Structure containing the coordinates for the l e f t eye
//
distance Interpupilar Distance (IPD)
// Outputs : Mat Scaled image
( Mat hist , int neighbor =12) ;
// Function that finds the peaks of an histogram
// Inputs : h i s t Input histogram
//
neighbor Value to s p e c i f y the width of the peak
void find_peaks
void eyes_coord_y ( Mat y_lvector , Mat y_rvector , Rect r , Rect rect_leye , Rect rect_reye ) ;
void eyes_coord_x ( Mat x_lvector , Mat x_rvector , Rect r , Rect rect_leye , Rect rect_reye ) ;
// Crops a rectangle of an
// Inputs : m_img Input
//
r Rectangle
// Outputs : Mat Cropped
image
image
of the previously detected face
image
92
i s one row)
operation
void ELBP ( const Mat& src , Mat& dst , int radius = 1 , int neighbors = 8) ;
// Performs a Nradius MNeighbours LBP operation
// Inputs : src Input image
//
dst Resulting image
//
radius radius of the LBP operator
//
neighbors number of samples to obtain per neighborhood
void VARLBP ( const Mat& src , Mat& dst , int radius = 1 , int neighbors =
// Performs a Nradius Mneighbours Variance Based LBP operation
// Inputs : src Input image
//
dst Resulting image
//
radius radius of the LBP operator
//
neighbors number of samples to obtain per neighborhood
8) ;
void spatial_histogram ( const Mat& src , Mat& spatialhist , int numPatterns , int gridx =8, int gridy =8, int overlap =0) ;
93
//
overlap
);
= 1 ) ;
// Attempts to s t a r t camera ,
// Inputs : cameraIndex camera number ( see cvCaptureFromCAM docs )
Mat initialize_PCA () ;
void initialize_LBP () ;
void initialize_Fusion () ;
void master_initialize () ;
);
// Switch i d e n t i f i c a t i o n with PCA on / o f f
// Inputs : on Flag to turn on/ o f f the system
);
// Switch training on / o f f
// Inputs : on Flag to turn on/ o f f the system
94
//
name
);
// switch image f l i p p i n g on / o f f
// Inputs : on Flag to turn on/ o f f the f l i p p i n g system
void stopCapture () ;
95