pfc reconocimiento facial mediante visión artificial
Embed Size (px)
DESCRIPTION
PFC ReconocimientoTRANSCRIPT
-
DEPARTAMENTO DE INGENIERA DE SISTEMAS Y AUTOMTICA
ESCUELA TCNICA SUPERIOR DE INGENIEROS
UNIVERSIDAD DE SEVILLA
PROYECTO FIN DE CARRERA
RECONOCIMIENTO FACIAL
MEDIANTE VISIN
ARTIFICIAL
INGENIERA DE TELECOMUNICACIN
Autor: Csar Reyes Lpez
Tutor: Dr. Eduardo Fernndez Camacho
Sevilla, Mayo de 2005
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 1
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 2
NDICE 1. MOTIVACIN Y OBJETIVOS.................................................... 7
1.1. INTRODUCCIN ......................................................................................................... 7
1.2. OBJETIVOS................................................................................................................. 8
1.3. ORGANIZACIN DE LA MEMORIA ............................................................................ 9
2. INTRODUCCIN TERICA .................................................... 11
2.1. ESTRUCTURA........................................................................................................... 11
2.2. ESTADOS DEL ARTE................................................................................................ 12
2.2.1. INTRODUCCIN................................................................................................... 12
2.2.2. MTODO DE TRABAJO ....................................................................................... 13
2.2.3. ALGORITMOS....................................................................................................... 14
2.2.3.1. Correlacin y FFT......................................................................................................16
2.2.3.2. PCA y Eigenfaces......................................................................................................18
2.2.3.3. Basado en Parmetros (LFA) ....................................................................................18
2.2.3.4. Basado en Redes Neuronales...................................................................................21
2.2.3.5. Basado en Plantillas ..................................................................................................23
2.3. TCNICAS EMPLEADAS.......................................................................................... 25
2.3.1. DETECCIN DE CARAS ...................................................................................... 25
2.3.2. RECONOCIMIENTO FACIAL................................................................................ 26
2.3.2.1. TRABAJO PREVIO: correlacin y FFT......................................................................27
2.3.2.2. PCA Y EIGENFACES................................................................................................29
2.3.3. REALCE MEDIANTE IGUALACIN DE HISTOGRAMA...................................... 36
3. COMPONENTES DEL SISTEMA ............................................ 40
3.1. ESTRUCTURA........................................................................................................... 40
3.2. ENTORNO DE TRABAJO.......................................................................................... 41
3.2.1. FUENTE DE ILUMINACIN.................................................................................. 41
3.2.1.1. Fuente de iluminacin directa....................................................................................41
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 3
3.2.1.2. Fuente de iluminacin arbitraria ................................................................................42
3.2.1.3. Iluminacin del entorno de trabajo.............................................................................42
3.2.2. ENTORNO ESTRUCTURADO.............................................................................. 42
3.2.3. CMARA WEB ...................................................................................................... 43
3.2.4. EQUIPO INFORMTICO ...................................................................................... 45
3.3. ENTORNO DE PROGRAMACIN ............................................................................ 45
3.3.1. OPENCV................................................................................................................ 45
3.3.2. MICROSOFT VISUAL C++ 6.0 ............................................................................. 47
4. IMPLEMENTACIN................................................................. 48
4.1. ESTRUCTURA........................................................................................................... 48
4.2. DISEO ..................................................................................................................... 49
4.2.1. DIAGRAMA DE FLUJO ......................................................................................... 49
4.2.2. ESTRUCTURA INTERNA ..................................................................................... 52
4.2.2.1. MAIN Funcin principal...........................................................................................52
4.2.2.2. NUEVO USUARIO ....................................................................................................55
4.2.2.3. RECONOCIMIENTO .................................................................................................56
4.2.2.4. SALIR ........................................................................................................................56
4.2.3. FUNCIONES INTERNAS ...................................................................................... 56
4.2.3.1. Funciones de librera de C++ ....................................................................................56
4.2.3.2. Funciones de Librera de OpenCV ............................................................................56 4.2.3.2.1. cvLoadImage ........................................................................................................56 4.2.3.2.2. cvSaveImage ........................................................................................................56 4.2.3.2.3. cvNamedWindow..................................................................................................57 4.2.3.2.4. cvShowImage .......................................................................................................57 4.2.3.2.5. load_object_detector ............................................................................................57 4.2.3.2.6. detect_and_draw_object.......................................................................................57 4.2.3.2.7. cvDestroyAllWindows ...........................................................................................58 4.2.3.2.8. cvCalcEigenObjects..............................................................................................58 4.2.3.2.9. cvEigenProjection .................................................................................................58 4.2.3.2.10. cvEigenDecomposite ...........................................................................................59 4.2.3.2.11. cvReleaseImage ..................................................................................................59 4.2.3.2.12. cvReleaseCapture ...............................................................................................59 4.2.3.2.13. cvCreateMemStorage ..........................................................................................60 4.2.3.2.14. cvReleaseMemStorage........................................................................................60 4.2.3.2.15. cvPyrDown...........................................................................................................60 4.2.3.2.16. cvHaarDetectObjects ...........................................................................................60 4.2.3.2.17. cvGetSeqElem.....................................................................................................61 4.2.3.2.18. cvRectangle .........................................................................................................61 4.2.3.2.19. cvResize ..............................................................................................................61 4.2.3.2.20. cvCaptureFromCAM ............................................................................................62 4.2.3.2.21. cvGrabFrame.......................................................................................................62 4.2.3.2.22. cvRetrieveFrame..................................................................................................62
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 4
4.2.3.2.23. cvCopy.................................................................................................................62 4.2.3.2.24. cvFlip ...................................................................................................................63 4.2.3.2.25. cvCvtColor ...........................................................................................................63 4.2.3.2.26. cvWaitkey ............................................................................................................63
4.2.3.3. Funciones Propias.....................................................................................................64 4.2.3.3.1. camara_y_foto ......................................................................................................64 4.2.3.3.2. almacena ..............................................................................................................64 4.2.3.3.3. guarda_foto...........................................................................................................64 4.2.3.3.4. compara................................................................................................................65 4.2.3.3.5. realce_mono .........................................................................................................66 4.2.3.3.6. parecido ................................................................................................................66 4.2.3.3.7. extract_and_norm.................................................................................................66 4.2.3.3.8. guardian................................................................................................................67
4.3. FUNCIONAMIENTO .................................................................................................. 67
4.4. CRITERIOS PARA EL RECONOCIMIENTO ............................................................. 76
4.4.1. COMPARA. Realce y Eigenfaces.......................................................................... 84
4.5. RESULTADOS........................................................................................................... 89
5. CONCLUSIONES Y LNEAS DE DESARROLLO FUTURAS. 91
5.1. ESTRUCTURA........................................................................................................... 91
5.2. CONCLUSIONES ...................................................................................................... 91
5.3. LNEAS DE DESARROLLO FUTURAS ..................................................................... 92
6. BIBLIOGRAFA........................................................................ 97
7. ANEXOS ................................................................................ 101
7.1. GUIA DE USUARIO ................................................................................................. 101
7.2. OBSERVACIONES.................................................................................................. 104
7.3. CDIGO FUENTE ................................................................................................... 106
7.4. FICHEROS DE TEXTO............................................................................................ 122
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 5
NDICE DE ILUSTRACIONES
Ilustracin 1: (a) y (c) imgenes faciales originales, (b) y (d) imgenes binarias de bordes. __ 19 Ilustracin 2: Ejemplos de redes neuronales ______________________________________ 22 Ilustracin 3: Ejemplo de Red Neuronal para Reconocimiento Facial ___________________ 23 Ilustracin 4: Ejemplo de Reconocimiento Facial por plantillas ________________________ 24 Ilustracin 5: Ejemplo de correlacin de caras. Caras y FFT __________________________ 28 Ilustracin 6: Ejemplo de correlacin de frontales de coches y camiones ________________ 29 Ilustracin 7: Ejemplo de base de datos de caras (Fuente FERET) _____________________ 33 Ilustracin 8: Eigenfaces de las caras anteriores ___________________________________ 33 Ilustracin 9: Cara original e histograma__________________________________________ 37 Ilustracin 10: Funcin de Distribucin ___________________________________________ 38 Ilustracin 11: Cara realzada e histograma _______________________________________ 38 Ilustracin 12: Diagrama de flujo del programa principal _____________________________ 50 Ilustracin 13: Diagrama de flujo de la funcin COMPARA ___________________________ 51 Ilustracin 14: Imgenes de la base de datos______________________________________ 53 Ilustracin 15: Interfaz Grfica. Pantalla inicial _____________________________________ 54 Ilustracin 16: Pantalla inicial __________________________________________________ 68 Ilustracin 17: Nmero de opcin introducido incorrecto _____________________________ 69 Ilustracin 18: Opcin 0, Nuevo Usuario__________________________________________ 69 Ilustracin 19: Introduccin del nombre del nuevo usuario Cesar Demo ______________ 70 Ilustracin 20: Cara de usuario Cesar Demo detectada ___________________________ 70 Ilustracin 21: Fichero caras.txt con el nuevo usuario almacenado ____________________ 71 Ilustracin 22: Captura de una fotografa de usuario con mala posicin _________________ 72 Ilustracin 23: Error, No se ha encontrado una cara_______________________________ 72 Ilustracin 24: Opcin 1, Reconocimiento_________________________________________ 73 Ilustracin 25: Usuario Reconocido. Acceso Permitido_______________________________ 74 Ilustracin 26: Caras de usuario actual y parecido (Reconocimiento correcto) ____________ 74 Ilustracin 27: Usuario No Reconocido. Acceso Denegado ___________________________ 75 Ilustracin 28: Valores de las distancias entre caras ________________________________ 77 Ilustracin 29: Valores inversos de las distancias entre caras _________________________ 80 Ilustracin 30: Ejemplo de reconocimiento fallido. No cumple 2 condicin _______________ 81 Ilustracin 31: Cumplimiento de la 3 condicin de reconocimiento _____________________ 82 Ilustracin 32: Fallo en el cumplimiento de la 1 y 2 condicin de reconocimiento _________ 83 Ilustracin 33: Ejemplo. Imgenes de la base de datos ______________________________ 84 Ilustracin 34: Imgenes originales y realzadas en escala de grises ____________________ 86 Ilustracin 35: Eigenfaces_____________________________________________________ 88 Ilustracin 36: Imagen del usuario a reconocer. Original y realzada ____________________ 88 Ilustracin 37: Tabla de resultados ______________________________________________ 89 Ilustracin 38: Icono de Instalacin de la librera OpenCV ___________________________ 102 Ilustracin 39: Face_Training.xml ______________________________________________ 103 Ilustracin 40: Ejecutar programa de Reconocimiento Facial_________________________ 103
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 6
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 7
1. MOTIVACIN Y OBJETIVOS
1.1. INTRODUCCIN
En los ltimos aos, el desarrollo de nuevo hardware y software
informtico para sistemas de seguridad ha experimentado un gran impulso, tal
es el caso de los sistemas de reconocimiento por huella dactilar, voz, iris y
facial. Entre estos, destaca por perfilarse como el ms prometedor el
reconocimiento facial.
La identificacin de caractersticas faciales ha recibido un fuerte impulso
gracias al avance en la tecnologa de video multimedia propicindose as un
aumento de cmaras en los lugares de trabajo y en el hogar con un reducido
coste. El reconocimiento facial se puede aplicar en el control de accesos a
edificios pblicos y privados, cajeros automticos, laboratorios de investigacin
y tambin como clave secreta de acceso para el uso de ordenadores
personales o terminales mviles de ltima generacin.
Podran utilizarse estos sistemas para tener bases de datos con las
personas que entran y salen de lugares emblemticos, como ya se ha hecho
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 8
en EEUU durante la ltima final de ftbol americano, conocida como Super
Bowl, donde las cmaras registraron las caras de cada uno de los
espectadores para contrastarlas con las de los criminales y sospechosos
almacenadas en sus bases de datos.
El proceso de identificacin facial se divide en dos tareas: deteccin y
reconocimiento. La primera de ellas, la deteccin, comprende la localizacin
de una o varias caras dentro de una imagen, ya sea una imagen fija, fotografa
o una secuencia de video. La segunda tarea, el reconocimiento, consiste en la
comparacin de la cara detectada con anterioridad con otras almacenadas
previamente en una base de datos. Estos procesos, deteccin y
reconocimiento, no deberan ser totalmente independientes, debido a que
segn la forma en la que se detecte una cara puede ser imposible su
reconocimiento con caras de una base de datos detectadas de manera
diferente, de ah que los sistemas de reconocimiento facial estn fuertemente
condicionados por la posicin y orientacin de la cara del sujeto con respecto a
la cmara y las condiciones de iluminacin, en el momento de realizar la
deteccin facial.
1.2. OBJETIVOS
El objetivo de este proyecto es la creacin de un software de
reconocimiento facial que utilice como medio de captacin de imgenes una
cmara web.
Se ha considerado este proyecto como parte de una instalacin
domtica, lo que ha conllevado una serie de restricciones e imposiciones
respecto a sus caractersticas.
De las muchas aplicaciones que puede ofrecer una vivienda inteligente,
una de ellas es la seguridad. Un sistema de reconocimiento facial sera parte
importante de est, permitiendo o denegando el acceso a aquellas personas
ajenas a la vivienda o enclave residencial que no pertenecieran a una base de
datos propia o no tuvieran el permiso requerido. Adems, un sistema de
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 9
reconocimiento facial proporciona al usuario cierta comodidad con respecto a
otros sistemas, como por ejemplo, memorizacin de cdigos en sistemas de
marcacin digital o prdidas u olvidos de tarjetas o llaves en sistemas con
cerraduras. Sin embargo, los sistemas de reconocimiento facial se utilizan
conjuntamente con alguno de los anteriores, ya que como se ha comentado,
una de las aplicaciones o caractersticas de una vivienda domtica es la
seguridad y por tanto, la diversidad de sistemas aumenta sta.
Por formar parte de una instalacin domtica la solucin aportada deba
de cumplir ciertos requisitos, uno de ellos era la utilizacin de una cmara web
como sistema de captacin de imgenes, dado su bajo coste y su alta
implantacin en el mercado de consumo de los ordenadores personales. Otro
requisito, quizs el ms restrictivo respecto al software, era que el tiempo de
procesado desde la captura de la cara del usuario hasta la indicacin de su
acceso o prohibicin de entrada fuese de un par de segundos como mximo.
Por tanto, el software desarrollado, ha sido diseado de forma
experimental e intuitiva, es decir, las funciones son robustas, pero la interfaz
grfica es sencilla, puesto que lo que se pretende es ilustrar el correcto
funcionamiento del mtodo desarrollado, dejando para un posterior trabajo su
insercin dentro de un sistema global en una instalacin domtica.
1.3. ORGANIZACIN DE LA MEMORIA
La memoria se ha estructurado en siete captulos. El primero de ellos
realiza una introduccin al reconocimiento facial y describe los objetivos que se
pretenden conseguir con este proyecto fin de carrera.
El segundo captulo realiza en primer lugar una introduccin terica a los
sistemas de reconocimiento facial y sus distintas tcnicas de realizacin, lo que
se ha denominado como Estados del Arte, as como una descripcin del
mtodo de trabajo a seguir y ejemplos de diferentes algoritmos matemticos
con los que implementar dicho sistema. En una segunda parte detalla las
diferentes tcnicas elegidas y empleadas para la consecucin de los objetivos
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 10
iniciales del proyecto, tanto para la deteccin como para el reconocimiento de
caras, as como el uso de otras herramientas matemticas utilizadas, como es
el realce de imgenes mediante la igualacin de histograma.
El captulo tercero describe las componentes del sistema, tanto las
pertenecientes al entorno de trabajo: fuente de iluminacin, cmara web y
equipo informtico, como las pertenecientes al entorno de programacin:
libreras y programas software utilizados.
El captulo cuarto muestra cmo se ha llevado a cabo la implementacin
del sistema de reconocimiento facial partiendo del diseo, diagramas de flujo,
descripcin de la estructura interna del sistema y funciones de librera utilizadas
y diseadas, hasta una descripcin detallada de su funcionamiento que incluye
capturas de pantalla con la ejecucin del programa. Se describen tambin en
este captulo los diferentes criterios necesarios para el reconocimiento as
como un apartado de resultados.
El siguiente captulo, el quinto, muestra las conclusiones a las que se ha
llegado tras el diseo y prueba del sistema, as como las diferentes lneas de
desarrollo futuras con las que continuar el trabajo realizado.
La bibliografa ocupa el captulo sexto. Se indican, tanto los volmenes
que versan sobre reconocimiento facial y visin artificial, como los de
programacin en C++. Adems, se incluyen multitud de enlaces a sitios web
donde se dispone de informacin y material adicional e interesante sobre las
diferentes partes y materias de las que consta el proyecto fin de carrera
realizado.
En el ltimo captulo, se incluye una gua de usuario que explica los pasos
a realizar para la ejecucin del programa de reconocimiento facial diseado. Un
apartado de observaciones, y el listado del cdigo fuente del programa as
como los ficheros de texto auxiliares que este utiliza.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 11
2. INTRODUCCIN TERICA
2.1. ESTRUCTURA
En este apartado se realiza una introduccin a las tcnicas y
conocimientos tericos requeridos para la ejecucin del proyecto as como una
visin de los diferentes mtodos de trabajo y estudios realizados hasta la fecha.
En una primera seccin se detalla como ha sido estudiado el problema
del reconocimiento facial, el mtodo de trabajo y las diferentes tcnicas
empleadas para la resolucin del mismo.
En la segunda y ltima parte se detallan las tcnicas empleadas en este
proyecto para la consecucin de los objetivos iniciales en el proceso del
reconocimiento facial, diferencindose entre tcnica para la deteccin de caras
dentro de una imagen y tcnica para el reconocimiento de dicha cara una vez
detectada.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 12
2.2. ESTADOS DEL ARTE
2.2.1. INTRODUCCIN
La cara es nuestro principal centro de atencin en el trato social,
desempeando un papel muy importante en la identificacin personal y
emocional.
Los seres humanos, somos capaces de reconocer multitud de caras
aprendidas a lo largo de nuestra vida e identificar rostros familiares de un
vistazo incluso despus de varios aos de separacin. Esta destreza es
bastante robusta a pesar de grandes cambios en los estmulos visuales
debidos a condiciones de iluminacin, expresin, edad o de distraccin tales
como gafas, cambios en el peinado, barba o bigote. Esta capacidad de
procesado visual y reconocimiento de caras humanas ha fascinado a filsofos y
cientficos durante siglos, incluyendo a figuras tales como Aristteles y Darwin.
El desarrollo de modelos y sistemas de reconocimiento facial es
bastante difcil, debido a que estos modelos son complejos, multidimensionales
y manejan estmulos visuales sujetos a multitud de condiciones.
Muchos de los trabajos de reconocimiento facial por ordenador han sido
enfocados hacia la deteccin de caractersticas individuales tales como ojos,
nariz, boca, contorno de la cabeza, definiendo un modelo facial mediante
posicin, tamao, y relaciones entre stas, es decir, distancia entre ojos,
distancia entre orejas, tamao de la frente, etc. Sin embargo, estos sistemas
presentan una gran dificultad a la hora de extenderse a mltiples y diferentes
vistas, convirtindose en sistemas frgiles, requiriendo un muy buen
entrenamiento inicial. Adems estos sistemas tienen un elevado coste
computacional y por lo tanto un elevado tiempo de procesado.
Sin dejar de lado la idea subyacente en los sistemas anteriormente
nombrados, actualmente se buscan mtodos de reconocimiento basados en la
bsqueda de informacin significativa contenida en "caractersticas" locales y
globales. Tales "caractersticas", pueden o no estar relacionadas, ni ser las que
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 13
intuitivamente podran entenderse como caractersticas faciales tales como
ojos, labios, etc.
Lo que se pretende, en trminos de la teora de la informacin, es
extraer la informacin relevante contenida en una imagen facial, codificarla de
la manera ms eficiente posible, y compararla con la informacin almacenada
en una base de datos creada a tal efecto. Una primera y simple aproximacin a
la extraccin de esta informacin contenida en una imagen facial podra ser
capturar la variacin en una coleccin de imgenes independientes y
diferentes, de ciertas caractersticas, y usar est informacin para codificar y
comparar imgenes de caras de manera individual.
En trminos matemticos, lo que se desea es encontrar los
componentes principales de una distribucin de caras, es decir, una serie de
valores indicativos de la variacin de la informacin contenida en cada una de
las imgenes de caras.
2.2.2. MTODO DE TRABAJO
Como ya se ha comentado con anterioridad, un sistema de
reconocimiento facial puede dividirse en dos etapas o fases, deteccin y
reconocimiento:
- Deteccin. Para realizar la deteccin de una cara, primero ha de
tenerse una imagen. Esta imagen de entrada puede ser una sola capturada a
travs de un sensor, cmara, etc, o varias desde diferentes ngulos para
permitir una bsqueda ms exacta. La deteccin de caras puede realizarse de
manera esttica: dada una imagen arbitraria y fija, hallar la localizacin de la o
las caras que contenga; o dinmica o en tiempo real donde dada una
secuencia de video arbitraria, hallar la localizacin de la o las caras que
contenga en cada fotograma o para una secuencia de los mismos.
- Reconocimiento. El proceso de reconocimiento consta en primer lugar
de la extraccin de caractersticas relevantes de la cara detectada y su
posterior normalizacin y acondicionamiento para una mejor representacin y
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 14
almacenamiento posterior en la base de datos. En segundo lugar ha de
realizarse la comparacin del rostro normalizado con el conjunto o
subconjuntos resultantes de una previa clasificacin de los rostros
normalizados en la base de datos del sistema. Ha de proporcionarse un
porcentaje de similitud o un valor equivalente para poder disponer de un umbral
con el que discernir si un rostro pertenece o no a la base de datos.
Por tanto, una vez que el nuevo rostro se ha procesado y se tiene un
valor de similitud con respecto a la base de datos del sistema, ya se ha
reconocido, entendindose por reconocimiento en este caso, y segn como se
definiera en un principio dicho valor de similitud, el admitir dicho rostro como
perteneciente a la base de datos o no. Con lo cual, aplicando lo anterior a un
sistema de acceso residencial, por ejemplo, segn dicho valor, se permitira o
no el acceso al interior de un usuario al que se le capturara una imagen de su
cara en el momento de intentar entrar.
De los dos procesos en los que se puede dividir un sistema de
reconocimiento facial y en cuanto al tiempo total de procesado, el ms
determinante es el de reconocimiento, ya que en l, adems del algoritmo
elegido, influye el tamao de la base de datos. Estas caractersticas han de
tenerse en cuenta a la hora de disear un sistema segn sea su utilidad.
2.2.3. ALGORITMOS
Existen actualmente multitud de algoritmos y mtodos para el
reconocimiento facial, a continuacin se describen brevemente sus
caractersticas y sus ventajas e inconvenientes para poder hacer una pequea
comparacin a priori; posteriormente se detallar su funcionamiento.
- Correlacin y FFT: Consiste en realizar la correlacin de la imagen con la cara a reconocer con cada una de las imgenes de la base de datos. Al
ser est un proceso que requiere un elevado poder computacional, sobre todo
si se tiene un elevado nmero de pxeles por cara, se aprovechan las
propiedades de la fft para realizar la correlacin.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 15
Ventajas: Algoritmo muy estudiado y fcil de implementar.
Desventajas: Algoritmo robusto para imgenes dispares pero muy
impreciso para rostros, donde las diferencias relativas entre imgenes son
pequeas.
- PCA y Eigenfaces: PCA (Principal Analysis Component) representa una cara por un conjunto reducido de valores que representan caractersticas
de la imagen. Un pequeo nmero de imgenes sirve para describir la
variacin entre ellas. Las componentes principales son los denominados
Eigenfaces o autovectores de la matriz de covarianzas formada por las
imgenes de la base de datos. El reconocimiento se realiza mediante la
proyeccin de una nueva cara en el subespacio formado por los eigenfaces y
comparando su posicin con las posiciones de los rostros conocidos.
Ventajas: Tiempo de cmputo pequeo y elevado
discernimiento en condiciones ptimas (igual iluminacin, orientacin y posicin
para todos los rostros)
Desventajas: Muy dependiente de las condiciones de iluminacin,
posicin y orientacin de la cara en la imagen inicial.
- Basado en parmetros (LFA): Derivado de Eigenfaces, solventa el problema de cambios en posturas, deformaciones de la cara,...
Se basa en caractersticas individuales de la cara.
Ventajas: Adaptacin a cambios de expresin.
Desventajas: Computacionalmente costoso
- Basado en Redes Neuronales: Entrenamiento de una red neuronal con las caractersticas faciales de una multitud de caras-ejemplo, incluyndose
cambios en la iluminacin, gestos, etc.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 16
Ventajas: Buena exactitud.
Desventajas: Necesidad de entrenamiento previo, sensible a
variaciones y computacionalmente costoso.
- Basado en Plantillas: Se extraen regiones de las imgenes y se almacenan en una base de datos, todas ellas como pertenecientes a una
imagen. Posteriormente con la imagen a reconocer, se comparan para cada
una y pxel a pxel las regiones almacenas.
Ventajas: Preprocesamiento de la imagen simple.
Desventajas: La bsqueda en la base de datos y la comparacin
son costosas.
2.2.3.1. Correlacin y FFT
Este mtodo de reconocimiento quizs pudiera entenderse como el ms
intuitivo de todos, ya que si se piensa en las imgenes de caras como en
seales, para saber cuanto se parecen unas a otras bastara con calcular la
correlacin y estipular un umbral de discernimiento.
La correlacin de una imagen I1 de tamao (X1,Y1) con otra I2 de
tamao (X2,Y2) es otra imagen IC de tamao (X1,Y1).
( ) ( ) ( )y,xCorry,xIC 2I,1I= (1) ( )'2I1I = (2) ( ) ( )
= =++=
2X
1i
2Y
1Jj,i2Iyj,xi1I (3)
con x = 1,,X1 e y = 1,, Y1.
(I2) es la imagen I2 rotada 180 y el smbolo * es el operador convolucin.
Definindose I1 de la forma I1(a,b) = 0 para todo a > X1 y b > Y1.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 17
La ecuacin (3) es una manera lenta de realizar la correlacin. Existen
tcnicas alternativas mucho ms rpidas, una de ellas se basa en la utilizacin
de la transformada discreta de Fourier (DFT).
Si se define:
If1= F(I1)
If2= F(I2)
IfC = F(IC)
Con F(I) la transformada discreta de Fourier de la imagen I.
Se tiene:
( )'2If1IfIfC = (4) ( ) ( ) ( )( )= j,i2Ifj,i1Ifj,iIfC (5) siendo x la transpuesta de x.
Puede observarse que ahora, el operador convolucin no son dos
sumatorios sino simplemente una multiplicacin en el dominio de Fourier, por
tanto para cada punto, ahora solo hay que calcular un producto.
La imagen deseada IC se haya sin ms que realizar la antitransformada
a IfC.
( )IfCFIC 1= (6) Para calcular la transformada discreta de Fourier (DFT) se utiliza un
algoritmo llamado FFT (Fast Fourier Transform), transformada rpida de
Fourier, que calcula la transformada de Fourier de manera ms eficiente, con
un menor nmero de operaciones, por tanto, ms rpidamente y teniendo en
cuenta que para poder aplicar dicho algoritmo, las imgenes de entrada han de
tener un tamao mltiplo de 2.
A raz de lo anteriormente expuesto, se observa la simplicidad de este
mtodo de reconocimiento, para una imagen de entrada, se realiza su
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 18
correlacin con cada una de las imgenes almacenadas en la base de datos y
si el valor supera un umbral establecido, se obtiene la correspondencia. Para
imgenes dispares, esto es, imgenes muy diferentes entre s como pudieran
ser por ejemplo frontales de coches y camiones, el sistema funciona
perfectamente, pero para imgenes faciales, donde las variaciones entre
individuos no es tan sustancial los valores de las correlaciones son todos muy
prximos entre si, lo que hace al sistema imposible discernir si una imagen
pertenece o se parece a alguna de la base de datos o no.
2.2.3.2. PCA y Eigenfaces
Al ser este el algoritmo utilizado en el proyecto, se describe
detalladamente su funcionamiento en el apartado 2.3.2.1 PCA Y
EIGENFACES, dentro del bloque de tcnicas empleadas.
2.2.3.3. Basado en Parmetros (LFA)
Esta tcnica necesita un preprocesamiento de la imagen diferente a las
anteriores, el objetivo de este es deshacerse del ruido de alta intensidad en la
imagen, transformando la imagen de la cara de entrada en una imagen binaria
por medio de un detector adaptativo de bordes y luego extraer la textura de la
cara. Posteriormente, mediante el empleo del anlisis de caractersticas locales
se combinarn ambos, los bordes de la forma de la cara y la textura.
En general, una cara contiene cuatro rasgos principales, cejas, ojos,
nariz y boca. Para reducir el ruido y algunas zonas oscuras alrededor de estos
cuatro rasgos se emplea una operacin de deteccin de bordes a la imagen de
la cara de entrada. Esta operacin puede evitar caractersticas indeseadas de
una imagen como brillos, ruidos o reflexiones en los ojos.
La ventaja de usar bordes como una de las caractersticas de la imagen
es que estos proporcionan robustez frente a los cambios de iluminacin y
simplifican la representacin. Por tanto, la imagen de entrada es en primer
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 19
lugar procesada con una deteccin morfolgica de bordes y el resultado es
convertido de una imagen en escala de grises a una imagen binaria, donde
solo se aprecian los bordes en negro sobre blanco. Un umbral fijo no trabaja
bien para convertir una imagen en escala de grises a una binaria. Esto es
debido al hecho de que el contraste en una imagen de bordes puede variar
significativamente. Una aproximacin es usar un umbral dinmico para cada
subbloque de la cara de la imagen de entrada mediante la consideracin de
intensidades de nivel de gris por encima del 15%, denominando a este umbral
calculado dinmicamente como T. Se asume que el histograma de cada
subbloque de la imagen de bordes es his(i), donde i = 0, 1, , 255. Luego T es
determinado como el mayor valor tal que satisfaga la siguiente ecuacin:
whihisTi
=
15.0)(255
donde h y w son el alto y el ancho de cada subbloque de una imagen de bordes
respectivamente.
Ilustracin 1: (a) y (c) imgenes faciales originales, (b) y (d) imgenes binarias de bordes.
El anlisis de caractersticas locales (LFA) define una serie de
topogrficas y locales semillas o kernels que son ptimamente comparadas y
emparejadas con el conjunto de entrada. Estas semillas estn derivadas de las
componentes principales, y consisten en una esferizacin de los coeficientes
PCA que ecualiza su varianza, seguida por una rotacin en el espacio de los
pxeles.
Se comienza con la matriz de ceros significativa formada por las
imgenes originales, X. La matriz X es la informacin de la textura de la imagen
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 20
de entrenamiento seguida por la informacin de bordes. Despus se calculan
las componentes principales o eigenvectors P de acuerdo a S = PDPT. Si se
define una serie de kernels, K como K = PVPT donde
==
i
diagDV 12
1
i = 1, , p
donde i son los eigenvalues de S. Las filas de K contienen los kernels. Los
kernels tienen espacialmente propiedades locales y son topogrficos en el
sentido de que estn indexados por localizaciones espaciales. La matriz semilla
K transforma X a la salida LFA O = KXT. La matriz V es la raz cuadrada inversa
de la matriz de covarianza de los coeficientes principales. Esta transformada
esfera los componentes principales (normalizada su varianza de salida a la
unidad) y minimiza la correlacin en la salida LFA. Otra manera de interpretar
la salida LFA O es que esta es la reconstruccin de la imagen usando los
coeficientes PCA esferizados, O = P(VPTXT).
LFA genera una representacin n-dimensional, donde n es el nmero de
pxeles de la imagen. Desde que se tienen n salidas descritas por p
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 21
2maxarg recOO
donde Orec en una reconstruccin de la salida completa O, usando un predictor
lineal para el subconjunto de salidas O generadas desde los kernels en M. El
predictor lineal es de la forma Y = X donde Y = Orec, es el vector de los
parmetros de la regresin, y X = O(M,N). Donde, O(M,N) denota al
subconjunto de O correspondiente a los puntos en M para todas las N
imgenes. es calculada de la siguiente manera:
),(),(),()(
)( NMONMONMOO
XXYX
T
Tres
T ==
Esta ecuacin puede expresarse tambin en trminos de la matriz de
correlacin de las salidas, C = OTO.
1),(),( = MMCNMC
La condicin de fin se produce cuando NM = .
2.2.3.4. Basado en Redes Neuronales
Las Redes Neuronales surgen en el contexto de computacin evolutiva y
cognitiva, lgica difusa, razonamiento aproximado, teora del caos, teora del
aprendizaje, y su funcionamiento se basa en la emulacin de los sistemas
nerviosos biolgicos.
Excepto en las tareas basadas en el clculo aritmtico simple, en la
actualidad, el cerebro humano es superior a cualquier computador.
Procesamiento de imgenes, voz, datos inexactos o con ruido, lenguaje
natural, prediccin, control,. El cerebro se comporta como un sistema robusto
cuyo funcionamiento no se altera ante fallos poco importantes, flexible, se
adapta con facilidad a un entorno cambiante, capaz de tratar con informacin
ambigua o incompleta, es pequeo, compacto y consume poca potencia.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 22
Una Red Neuronal, debe tener caractersticas que se asemejen a las de
un sistema nervioso biolgico.
La informacin se almacena en las interconexiones, es distribuida y
redundante y se direcciona por contenido. Las operaciones se realizan en
paralelo, de manera asncrona. Su funcionamiento se basa en el aprendizaje y
no en la algoritmizacin. Aplican razonamiento inductivo: dados una serie de
patrones de entrenamiento aprenden los pasos a ejecutar. Son tolerantes a
fallos porque la informacin es distribuida, las operaciones son colectivas y la
conectividad de los elementos puede adaptarse al problema.
Las Redes Neuronales estn formadas por neuronas y ests a la vez se
agrupan en capas.
Una de las caractersticas fundamentales es el aprendizaje o
entrenamiento al que hay que someter a una red neuronal antes de poder
aplicarla a la resolucin de algn tipo de problema.
Ilustracin 2: Ejemplos de redes neuronales
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 23
El reconocimiento facial desde el punto de vista de redes neuronales no
deja de ser un caso especial de reconocimiento de patrones y clasificacin. La
red neuronal es entrenada a tal efecto mediante el almacenamiento de un
conjunto de patrones, en este caso, caras y caractersticas de caras de
individuos. Cuando se le presenta a la entrada una nueva, distorsionada, o con
ruido, debe proporcionar el original o la ms parecida.
Ilustracin 3: Ejemplo de Red Neuronal para Reconocimiento Facial
Debido a que la informacin es distribuida y se trabaja de forma
colectiva, si el proceso de entrenamiento ha sido lo suficientemente bueno,
tenindose en cuenta cambios en la iluminacin, posicin, etc, el resultado
es ptimo. Todo ello a costa de un elevado coste computacional si se realiza en
computadores digitales convencionales donde solo se dispone de un
microprocesador relativamente complejo que trabaja de manera secuencial,
donde habra que emular el paralelismo.
2.2.3.5. Basado en Plantillas
Este mtodo est basado en la divisin de la imagen de la cara en
regiones o zonas caractersticas y almacenar estas en una base de datos,
aplicando esto a todas las caras del proceso de entrenamiento o aprendizaje
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 24
inicial. El siguiente paso es sencillo: para una nueva imagen se comparan las
regiones de sta con las almacenadas en la base de datos y se extraen
conclusiones.
El preprocesamiento de la imagen debe constar de mtodos de
deteccin de zonas significativas, como son la zona de la boca, nariz y ojos,
para su posterior almacenaje, para ello puede utilizarse el mtodo de la
correlacin explicado anteriormente. Pueden tenerse mscaras estndar de
ojos, por ejemplo, que al correlacionarlas con las imgenes, nos den las zonas
de las mismas donde se encuentran los ojos de la cara, y as para otras zonas
con otras mscaras.
Ilustracin 4: Ejemplo de Reconocimiento Facial por plantillas
A pesar de ser un sistema sencillo conceptualmente,
computacionalmente es muy costoso, ya que la informacin almacenada en la
base de datos y por tanto la que hay que comparar es muy elevada, para una
elevada precisin habra que tener almacenadas muchas imgenes con sus
respectivas regiones.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 25
2.3. TCNICAS EMPLEADAS
La eleccin de las siguientes tcnicas, tanto la de deteccin de caras
como la de reconocimiento facial basada en el uso de eigenfaces ha venido
determinada en gran medida por el uso de las libreras OpenCV (Intel Open
Source Computer Vision Library) de Intel, donde muchos de los algoritmos
necesarios para el desarrollo de dichas tcnicas estaban implementados, se
opt por continuar y aprovechar el trabajo realizado hasta el momento con
estas libreras, independientemente de las ventajas e inconvenientes que
dichas tcnicas presentan frente al resto.
2.3.1. DETECCIN DE CARAS
Aunque este proceso en s podra considerarse como no necesario, si se
usan eigenfaces (ver apartado 2.3.2.1) en determinadas condiciones,
condiciones de iluminacin controladas e invariantes, y caras dentro de la
imagen que ocupen la misma posicin y tamao, se ha optado por implementar
un mtodo de deteccin de caras dentro de una imagen para flexibilizar el
preprocesamiento de la imagen que necesitan los mtodos de reconocimiento
facial.
La deteccin de caras es necesaria en este proyecto puesto que se trata
de un sistema dinmico, donde las imgenes de partida no estn tomadas en
un laboratorio en condiciones ideales sino propiciadas por acciones de usuarios
en tiempos no determinados, ms concretamente con la pulsacin de una tecla
en el momento que el usuario quiera fotografiarse, tanto para almacenar su
rostro dentro de la base de datos como para comprobar su permanencia a la
misma. Por tanto, el sistema debera ser capaz de descartar, suponiendo
condiciones de iluminacin constantes, aquellas imgenes en las que la cara
del usuario no cumpliese con una serie de criterios establecidos a priori,
orientacin, tamao, posicin, etcDichos criterios deberan cumplirse en
todas y cada una de las caras almacenadas en la base de datos.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 26
En consecuencia, el proceso de deteccin de caras no es ms que una
interfaz que presenta al mdulo de reconocimiento facial imgenes de caras
homogneas, entendindose por imgenes homogneas, imgenes que
cumplen los criterios establecidos a priori para el ptimo funcionamiento en la
fase de reconocimiento facial.
El algoritmo de deteccin de caras est basado en una funcin que
busca regiones rectangulares dentro de una imagen, regiones que contengan
objetos que con una alta probabilidad se parezcan a otros de un conjunto de
entrenamiento, devolviendo la regin rectangular de la imagen donde se han
encontrado. La funcin escanea varias veces la imagen y con diferentes
escalas para encontrar objetos parecidos pero de diferentes tamaos. Por
tanto, para detectar caras, nicamente hay que pasarle a la funcin el conjunto
de caras de entrenamiento con las caractersticas deseadas para que las caras
detectadas sean parecidas a estas.
Una vez que se tiene la porcin de imagen de entrada en la que se
encuentra la cara deseada, aplicando un proceso de escalado, se estandariza
el tamao de dicho rectngulo a uno de referencia para que todas las imgenes
de caras a tratar, tanto para el proceso de reconocimiento como para el de
inclusin en la base de datos, tengan el mismo tamao.
2.3.2. RECONOCIMIENTO FACIAL
En un principio, la tcnica elegida fue la realizacin de la correlacin de
las imgenes usando para ello la FFT, tcnica que se ha explicado en el
apartado 2.2.3.2. En el primer apartado que sigue, Trabajo Previo: correlacin y
FFT, se muestra un ejemplo del por qu se desisti en el uso de dicha tcnica y
se enfocaron los esfuerzos al uso de eigenfaces, siguiente apartado.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 27
2.3.2.1. TRABAJO PREVIO: correlacin y FFT
Para el desarrollo de la aplicacin de est tcnica, se comenz con la
utilizacin del entorno de programacin Matlab, pues existen funciones ya
implementadas en dicho software que calculan la transformada FFT y su
inversa, pues como se ha explicado con anterioridad, la correlacin de dos
imgenes puede implementarse de manera ms eficiente como el producto de
dos FFTs y una antitransformacin. Posteriormente, si los resultados hubiesen
sido satisfactorios se hubiesen diseado las correspondientes funciones
necesarias utilizando el lenguaje C++, para poder utilizarlas con las funciones
de librera OpenCV y el resto de aplicaciones implementadas.
A continuacin se muestran algunos de los experimentos y estudios
realizados.
En primer lugar se utilizaron tres imgenes en escala de grises de caras
diferentes, se utiliz una como patrn y se correlacion con las otras dos
restantes y consigo misma, el resultado fue el siguiente:
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 28
Ilustracin 5: Ejemplo de correlacin de caras. Caras y FFT
Se observa como la tercera imagen para los dos primeros casos es
prcticamente idntica, y para el caso en el que se calcula la correlacin de
una cara consigo misma, el nivel de gris desciende levemente. Podra entonces
pensarse en definir un umbral segn el cual, la correlacin de las imgenes que
presentara el menor nivel de gris y estuviera por debajo de dicho umbral sera
la cara ms parecida a la del usuario. Sin embargo, esta pequea diferencia
entre caras iguales o diferentes se hace mucho menos notable cuando el
nmero de fotos se intensifica y aparecen caras parecidas unas a otras, incluso
para una misma cara de usuario pero ligeramente diferente, la probabilidad de
error aumenta significativamente, pues nunca se podran tener para comparar
dos fotos idnticas, una almacenada y la otra realizada en el momento de la
deteccin.
Tomando ahora imgenes dispares como por ejemplo frontales de
coches y camiones, se aprecia como los niveles de gris se distancian mucho de
un caso a otro.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 29
Ilustracin 6: Ejemplo de correlacin de frontales de coches y camiones
Con imgenes dispares, el mtodo de la correlacin funciona
correctamente. Por ejemplo, si se tuviera una imagen con multitud de vehculos
de frente, podra correlacionarse a modo de mscara la imagen de un tipo
determinado de frontal, y las zonas de la imagen que aparecieran con niveles
de grises prximos al blanco, como en el ejemplo anterior, podran clasificarse
de un determinado tipo, frente a las que aparezcan prximas al negro y del
mismo modo con diferentes frontales.
Por tanto, este mtodo de comparacin de imgenes es bueno para
clasificar objetos, como pudiera ser el caso anterior, pero no para distinguir
objetos parecidos unos a otros donde las diferencias no son significativas y la
probabilidad de equivocarse sera elevada.
2.3.2.2. PCA Y EIGENFACES
Como se ha comentado con anterioridad, matemticamente hablando, lo
que se desea es encontrar las componentes principales de una distribucin de
caras o lo que a partir de este apartado se le denominar como eigenvectors
de la matriz de covarianza de un conjunto de imgenes de caras, tratando a
una imagen como un vector en un espacio multidimensional. Los eigenvectors
son ordenados, cada uno de acuerdo a diferentes cantidades segn la
variacin entre las imgenes de caras.
Estos eigenvectors pueden ser interpretados como un conjunto de
caractersticas que juntas, caractericen la variacin entre las imgenes de las
caras. Cara localizacin de una imagen contribuye en mayor o menor medida a
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 30
cada eigenvector, por lo que puede mostrarse el eigenvector como una
representacin fantasmal de una cara, a la que se le denomina eigenface.
Cada eigenface se desva del gris uniforme donde alguna caracterstica facial
difiere entre el conjunto de caras de entrenamiento, las eigenfaces son por
tanto una especie de mapa de las variaciones entre imgenes.
Cada cara individual puede ser representada exactamente en trminos
de una combinacin lineal de las eigenfaces. Cada cara tambin puede ser
aproximada usando solamente las mejores eigenfaces las que tienen
mayores eigenvalues, y por tanto las que cuentan con una mayor variacin
dentro del conjunto de las imgenes de las caras -. Las M mejores eigenfaces
conforman un subespacio M-dimensional espacio de las caras de todas las
posibles imgenes.
Sirovich y Kirby (1987) fueron los primeros en desarrollar una tcnica
basada en el uso de eigenfaces para una representacin eficiente de imgenes
de caras, usando la descomposicin en componentes principales. Comenzaron
con un conjunto de imgenes originales de caras, posteriormente calcularon un
sistema de coordenadas para la compresin de imgenes, donde cada
coordenada es en realidad una imagen, a la que denominaron eigenpicture.
Argumentaron que, como mnimo, en principio, cualquier coleccin de
imgenes de caras poda ser reconstruida aproximadamente mediante el
almacenamiento de una pequea coleccin de pesos por cada cara y un
pequeo conjunto de imgenes estndar ( las eigenpictures ). Los pesos que
describen cada cara son encontrados mediante la proyeccin de la imagen de
la cara sobre cada eigenpicture.
Segn esto, si una multitud de imgenes de caras pueden ser
reconstruidas mediante clculos ponderados de una pequea coleccin de
caractersticas singulares o eigenpictures, un mtodo eficiente para aprender y
reconocer caras podra ser la acumulacin de caractersticas singulares
mediante una fase de entrenamiento o experiencia y reconocer caras
particulares mediante la comparacin de los pesos caractersticos necesarios
para aproximar o reconstruirlas con los pesos asociados a los conocidos
individuales. Cada individuo, por tanto, estar caracterizado por el pequeo
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 31
conjunto de pesos caractersticos o eigenpicture necesarios para describirlo y
reconstruirlo, una manera extremadamente compacta de representacin y
comparacin de imgenes.
Este mtodo de reconocimiento facial, utilizacin de eigenfaces, necesita
de una serie de operaciones iniciales, tales como:
1.- Adquisicin de una serie de imgenes de caras iniciales; proceso
de entrenamiento o de adquisicin de experiencia.
2.- Clculo de los eigenfaces del conjunto de entrenamiento,
almacenando nicamente las M imgenes que correspondan con los
eigenvalues mayores. Estas M imgenes definen el espacio de caras. Si se
aaden nuevas caras al sistema, las eigenfaces deben ser actualizadas o
recalculadas.
3.- Clculo de la correspondiente distribucin en el espacio de pesos
M-dimensional para cada individuo conocido mediante la proyeccin de su cara
sobre el espacio de caras.
Estas operaciones pueden llevarse a cabo cada vez, pero hacen al
sistema computacionalmente ms costoso.
Teniendo inicializado el sistema, para reconocer nuevas caras hay que
realizar los siguientes pasos:
1.- Clculo de un conjunto de pesos basados en la imagen de
entrada y las M-eigenfaces mediante la proyeccin de la imagen de entrada
sobre cada una de las eigenfaces.
2.- Determinar si la imagen de la cara pertenece o no al conjunto
viendo lo cercana que est al espacio de las caras.
3.- Opcionalmente, podran actualizarse las eigenfaces y/o los pesos
patrones, y si la misma cara desconocida es vista varias veces, podra aadirse
esta a la base de caras conocidas creada en el proceso de entrenamiento.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 32
CLCULO DE LAS EIGENFACES
Se define una imagen I(x,y) como una matriz bidimensional de N filas y
N columnas, cuyos valores de intensidad varen entre 0 y 255 (8 bits), imagen
en escala de grises. Tambin puede ser considerada como un vector de
dimensin N2, por lo que una imagen tpica de tamao 128 por 128 puede
convertirse en un vector de dimensin 16324 o, equivalentemente, en un punto
en un espacio de 16324 dimensiones. Un conjunto de imgenes, se mapean a
una coleccin de puntos en este espacio enorme.
Las imgenes de caras, an siendo similares en una configuracin
general, no estarn aleatoriamente distribuidas en este enorme espacio de
imgenes y de esta manera pueden ser descritas mediante un relativamente
pequeo subespacio dimensional. La idea principal del Anlisis de
Componentes Principales o PCA es encontrar los vectores que mejor describan
la distribucin de las imgenes de caras dentro de la totalidad del espacio de
imgenes. Estos vectores definen el subespacio de imgenes de caras, al que
se denomina face space, espacio de las caras. Cada vector es de longitud N2,
describe a una imagen de tamao N x N, y es una combinacin lineal de la
imagen de una cara original. Debido a que estos vectores son los eigenvectors
de la matriz de covarianza correspondiente a la imagen de la cara original y a
que aparentemente se parezcan a dicha cara, se les denomina eigenfaces.
A continuacin se muestran un conjunto de caras y sus correspondientes
eigenfaces.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 33
Ilustracin 7: Ejemplo de base de datos de caras (Fuente FERET)
Ilustracin 8: Eigenfaces de las caras anteriores
Definiendo al conjunto de imgenes de caras de entrenamiento como 1,
2, 3, , M, la cara promedio de este conjunto viene dada por ==
M
1nnM
1 .
Cada cara difiere de la media segn el vector = ii .
Este conjunto de grandes vectores est sujeto al anlisis de
componentes principales, el cual busca una serie de M vectores ortonormales
un que mejor describan la distribucin de los datos. El k-simo vector, uk, es
elegido de tal forma que
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 34
( )=
=M
1n
2n
Tkk uM
1
sea mximo, sujeto a
==
.c.o.e0kl1
uu kkTl
Los vectores uk y los escalares k, son los eigenvectors y eigenvalues
respectivamente de la matriz de covarianza
=
==M
1n
TTnn AAM
1C
donde A es la matriz [ ]M21 ...A = . La matriz C es de dimensin N2 x N2.
La determinacin de los N2 eigenvectors y eigenvalues es un proceso
computacionalmente costoso para el tamao tpico de las imgenes con las
que se trabaja.
Si el nmero de puntos de datos en el espacio de imgenes es menor
que la dimensin del espacio ( M < N2 ), habr solamente M - 1, menor que N2,
eigenvectors significativos ( los restantes eigenvectors estarn asociados a los
eigenvalues de cero). Puede resolverse el sistema para los eigenvectors N2-
dimensionales resolviendo primero para los eigenvectors de una matriz M x M y
luego realizando las apropiadas combinaciones lineales de las imgenes de las
caras i. Considerando los eigenvectors vi de AAT, tales que:
iiiT vvAA =
Premultiplicando ambos miembros por A, se tiene:
iiiT AvAvAA =
donde puede observarse que Avi son los eigenvectors de C = AAT.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 35
Se construye la matriz L = ATA, donde nTmmnL = y se encuentran los
M eigenvectors, vk de L. Estos vectores determinan la combinacin lineal de las
M imgenes del conjunto de caras de entrenamiento para formar las eigenfaces
ul,
=
=M
1kklkl vu l = 1, , M
El proceso de reconocimiento es el siguiente: una nueva imagen de una
cara de entrada (), es transformada a sus componentes eigenfaces
(proyectada dentro del espacio de caras) mediante una simple operacin:
( )= Tkk u para k = 1, M, obtenindose un conjunto de pesos que conforman el vector [ ]M21T ... = que describe la contribucin de cada eigenface en la representacin de la imagen de entrada o de otra manera,
cunto de cerca (parecido) est cada eigenface de la imagen de entrada. Por
tanto, este vector puede ser usado como un modelo estndar dentro de un
algoritmo de reconocimiento sin ms que evaluar una distancia entre vectores y
mediante un umbral de discernimiento determinar si una imagen de una cara
puede considerarse perteneciente al espacio de caras de entrenamiento o no.
Este valor sera el que minimice la distancia eucldea:
( ) 2k2k = donde k es el vector que describe la k-sima cara.
RESUMEN
Resumiendo y sintetizando, el proceso de reconocimiento facial
mediante el uso de la descomposicin en valores principales (PCA) y
Eigenfaces consta de los siguientes pasos:
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 36
1.- Almacenar un conjunto de imgenes de entrenamiento de
diferentes personas, pudindose tener subconjuntos de imgenes para cada
persona que contengan diferentes posturas, condiciones de iluminacin, etc.
2.- Crear una matriz formada por la nueva imagen de entrada y las ya
almacenadas en la base de datos. Mediante el proceso arriba descrito, se
calculan los eigenvectors mediante la matriz de covarianza.
3.- Una vez obtenidos los vectores caractersticos se comparan las
distancias entre el vector que representa a la imagen original con el resto.
4.- Establecido un umbral de discernimiento a priori, si el menor valor
del paso anterior es menor que este umbral, la imagen de la cara de entrada es
considerada como conocida, si es mayor, se considera desconocida.
De aqu se desprende que los valores de las distancias dependen en
cierta medida del tamao de la base de datos, puesto que la matriz de
covarianza y los vectores caractersticos son calculados a partir de la matriz
formada por la imagen de entrada y las ya almacenadas, por lo que el umbral
de discernimiento ha de ser dinmico y adaptarse segn la variacin de las
distancias entre caras, o lo que es lo mismo, segn el tamao de la base de
datos que almacena las imgenes de las caras.
2.3.3. REALCE MEDIANTE IGUALACIN DE
HISTOGRAMA
Un histograma de una imagen en escala de grises, no es ms que una
funcin discreta, en la que cada valor representa el nmero de puntos con el
mismo nivel de gris, sobre el nmero total de puntos de una imagen.
Para realzar una imagen mediante el uso de su histograma, se intenta
expandir en la medida que se pueda las zonas de dicho histograma que
presenten elevados valores y prximos entre si, igualacin de histograma, lo
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 37
que significa, ampliar el nmero de niveles de gris de la imagen en cuestin,
implica tener una mayor precisin en los detalles de la imagen. Para ello, se
construye una funcin que sea la suma para cada punto de las probabilidades
de los niveles de gris de la imagen, esta funcin es no multievaluada y
montona creciente, realizando la transformada inversa y aplicndosela a la
imagen original se tendr la imagen realzada, el nuevo histograma se ver
expandido con respecto al original.
A continuacin y a modo de ejemplo ilustrativo se muestra el
procedimiento de realce mediante el uso de la igualacin de histograma para la
imagen de una cara.
Ilustracin 9: Cara original e histograma
Puede observarse como la cara de la imagen presenta muchos valores
prximos al negro, en el histograma, valores elevados y prximos, cercanos al
cero (negro). Se pretender por tanto que dichos valores se separen entre s
ocupando una mayor zona entre el 0 y el 1 (negro y blanco).
Una vez obtenido el histograma de la imagen de la cara original, si se
profundiza un poco ms en el significado del histograma, si se divide cada
componente del mismo por el nmero total de pxeles que tiene la imagen, se
obtiene una funcin de probabilidad (fdp) de cierto tono de gris en la imagen.
Puede por tanto hallarse la funcin de distribucin (FD) de esta fdp, sin ms
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 38
que sumar para cada una de las componentes del eje horizontal del histograma
el valor de la componente vertical ms los valores de las componentes
anteriores, se tiene entonces una curva como la siguiente:
Ilustracin 10: Funcin de Distribucin
Aplicando ahora la transformada inversa de esta funcin a los pxeles de
la imagen anterior se obtiene el siguiente resultado:
Ilustracin 11: Cara realzada e histograma
Donde puede observarse como el histograma de la imagen de la cara
obtenida aplicando dicha transformacin se ha expandido en torno a los
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 39
lugares donde existan en un principio muchos puntos de igual valor y prximos
entre s.
Con la ecualizacin lo se consigue es obtener un histograma ms
uniforme, distribuyndose las gamas de tonos que ms aparecen por todo el
histograma. Esto logra un aumento del contraste en ciertas zonas de la imagen,
resaltando detalles que antes no se vean. De hecho, si en vez de trabajar con
variables discretas lo hiciramos con variables continuas, lo que obtendramos
sera una seal de salida con su histograma (continuo) plano.
Con una simple modificacin del contraste, adems de mejores
resultados, la diferencia es que tal y como est construida la funcin de
transferencia, no se pierde informacin y por tanto siempre se podra recuperar
la imagen original. Se podra decir que lo que se obtiene con la igualacin es
un aumento de contraste en las zonas de la imagen ms necesarias.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 40
3. COMPONENTES DEL SISTEMA
3.1. ESTRUCTURA
En este apartado se describen los diferentes componentes que
conforman el sistema desarrollado de reconocimiento facial, tanto a nivel fsico,
entorno de trabajo y hardware como software.
En la primera seccin se describen las caractersticas del entorno de
trabajo, comenzando con una pequea discusin sobre las fuentes de
iluminacin, directa, arbitraria y la utilizada. Luego se pasa a definir el entorno
de trabajo en s y sus peculiaridades. Posteriormente se describe el hardware
utilizado, tanto el tipo de cmara web como el equipo informtico del que se ha
dispuesto.
En la segunda y ltima seccin se describe el entorno de programacin
en el que se ha desarrollado el proyecto, tanto las libreras utilizadas (OpenCV)
como el paquete del software para la programacin del mismo (Visual Studio
6.0).
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 41
3.2. ENTORNO DE TRABAJO
3.2.1. FUENTE DE ILUMINACIN
En todo proceso de visin artificial es fundamental la eleccin del ms
adecuado tipo de fuente de iluminacin, ya que la obtencin de resultados
satisfactorios depender en gran medida de ello. Puede disminuirse de manera
significativa efectos indeseados como imgenes con un bajo contraste, brillos,
sombras y detalles espreos. Un sistema de luces apropiado simplifica la
imagen del objeto a estudiar aportando informacin de mayor calidad para la
deteccin y extraccin del mismo, haciendo innecesaria la aplicacin de
algoritmos de correccin en el proceso de visin.
El trabajar en entornos poco estructurados dificulta la aplicacin de los
procesos y tcnicas de visin, por lo que se intenta que las condiciones de
iluminacin permanezcan invariantes el mayor tiempo posible.
En un entorno de trabajo pueden diferenciarse dos tipos de fuentes de
iluminacin:
Fuente de iluminacin directa
Fuente de iluminacin arbitraria
3.2.1.1. Fuente de iluminacin directa
Si se tiene una fuente de iluminacin directa, la luz incide directamente
sobre la cara del usuario intentndose as reducir al mximo los efectos de
sombra puesto que se mejora sensiblemente el contraste de la imagen. Sin
embargo aparecen otros problemas como brillos y zonas oscuras indeseadas si
el foco de luz no se encuentra en posicin y orientacin cercana a la cmara
web de captura o si el plano de la cara del usuario no est completamente
perpendicular al haz de luz del foco emisor. Por tanto, puede falsearse el
proceso de captura de imgenes. Adems hay que tener en cuenta que un foco
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 42
de luz apuntando directamente sobre la cara del usuario resulta molesto,
disminuyendo el grado de aceptacin del sistema de reconocimiento facial.
3.2.1.2. Fuente de iluminacin arbitraria
Generalmente, la iluminacin arbitraria del entorno de trabajo no suele
ser recomendable en procesos de visin por computador ya que las imgenes
obtenidas presentan un bajo contraste y un nivel de sombras inadecuado. Las
imgenes obtenidas, ms si se trabaja en exteriores, pueden variar
enormemente de una a otra hora del da, dificultando tanto el proceso de
captacin como el de reconocimiento ya que influyen tanto factores climticos
como otras fuentes de iluminacin no naturales.
3.2.1.3. Iluminacin del entorno de trabajo
Vistas la particularidades de los diferentes tipos de iluminacin y
teniendo en cuenta que una de las caractersticas iniciales del proyecto es que
se asuma que las condiciones de iluminacin iban a ser constantes, para la
iluminacin del entorno de trabajo se ha elegido una mezcla de ambos tipos de
iluminacin, es decir, se cuenta con diferentes focos de luz directa, pero no se
prescinde de la iluminacin indirecta y arbitraria, ya sea natural o artificial,
procurndose sin embargo que la zona donde el usuario se establezca para
que se le capture una imagen de una cara tenga una variabilidad de
iluminacin prcticamente nula al igual que el fondo.
3.2.2. ENTORNO ESTRUCTURADO
Este sistema de reconocimiento facial, y en particular la parte de
deteccin de la cara de usuario, ha sido diseado para trabajar en un entorno
mnimamente no estructurado, es decir, a la condicin de invariabilidad de la
iluminacin se suma la invariabilidad del entorno. Si la iluminacin es uniforme
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 43
y constante, el fondo que pueda aparecer en la imagen capturada de la cara
del usuario se ver tambin constante y por tanto no afectar al resultado.
Existen sin embargo otros parmetros que s interfieren ms en el sistema.
- Distancia de la cara del usuario a la cmara. Para personas de distintas
edades y estaturas la distancia de la cara a la cmara puede verse alterada
significativamente, por lo que ser misin del software de extraccin y
normalizacin de la cara hacer que este efecto sea inapreciable.
- Posicin variable del plano de la cara del sujeto respecto del plano de
la cmara, pudindose tener por tanto diferentes orientaciones de una misma
cara de usuario e incluso no llegar a detectar una cara en una imagen.
Sin embargo, la robustez del sistema diseado hace posible que
pequeas variaciones de todas ests caractersticas del y en el entorno de
trabajo no influyan en los resultados.
3.2.3. CMARA WEB
Para la obtencin de las imgenes se ha utilizado una cmara web,
puesto que era uno de los requisitos iniciales del proyecto.
Sus caractersticas son las siguientes:
Construccin:
Creative WebCam Instant
Conexin:
USB
Sensor:
Sensor de imgenes CMOS CIF
Resolucin de video:
Hasta 352 x 288 pxeles
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 44
Resolucin de imagen, en modo esttico:
Hasta 352 x 288 pxeles
Hasta 640 x 480 pxeles con mejora por software
Formatos de video:
RGB24
I420
Control de exposicin:
Automtico
Balance de blancos:
Automtico
Campo de visin:
50 grados 5% (diagonal)
Rango de enfoque:
Desde 15 centmetros ( 6 pulgadas ) al infinito
Compatibilidad de puerto:
Universal Serial Bus (USB) 1.1
Compatibilidad de software:
Controlador TWAIN, de video para Windows, WDM MiniDriver
para DirectShow y controlador de Still Image ( STI ) que se ejecuta en Windows
XP, Windows 2000, Windows Me y Windows 98 SE.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 45
3.2.4. EQUIPO INFORMTICO
Para la instalacin de las libreras y software necesario para el desarrollo
del proyecto se ha utilizado el siguiente equipo informtico:
Procesador: AMD Athlon 1.40 GHz
Memoria: 512 Mb RAM DDR (266 MHz)
Tarjeta Grfica: Winfast GForce2 MX 64 Mb
Monitor: Proview 17
3.3. ENTORNO DE PROGRAMACIN
3.3.1. OPENCV
OpenCV, Open Source Computer Vision Library para arquitectura Intel,
es una librera cuyo principal objetivo es la visin por computador en tiempo
real, como por ejemplo, HCI (Human-Computer Interaction), interaccin
computador-humano, identificacin de objetos, segmentacin y reconocimiento,
reconocimiento facial, reconocimiento gestual, ajustes de movimientos,
comprensin de movimientos, SFM (Structure From Motion) y robtica mvil.
La librera OpenCV es una coleccin de funciones de alto rendimiento
para operaciones con imgenes, implementa una gran variedad de
aplicaciones para interpretacin y procesado de imgenes. Es compatible con
IPL (Intel Image Processing Library), librera que implementa operaciones a
bajo nivel en imgenes digitales. A pesar de que posee algoritmos tales como
binarizacin, filtrado, estadsticas de imagen o procesado piramidal, OpenCV
es principalmente una librera de algoritmos implementados de alto nivel para
tcnicas de calibracin, calibracin de cmaras, deteccin de caractersticas y
anlisis de formas y movimientos, reconstruccin 3D, segmentacin y
reconocimiento de objetos.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 46
La principal caracterstica de esta librera es la funcionalidad y calidad
con la que ha sido desarrollada. Los algoritmos estn basados en estructuras
de datos altamente flexibles y dinmicas emparejadas con las estructuras de
datos de IPL.
Las funciones y clases que componen la librera OpenCV han sido
desarrolladas en C y C++, por lo que para su uso es necesario tener instalado
en el ordenador algn compilador y editor de estos lenguajes como por ejemplo
Microsoft Visual Studio 6.0, Microsoft Visual Studio .NET 2003 o Borland C++
BuilderX.
Una de las ventajas de ser una librera de cdigo abierto es la aparicin
de comunidades dedicadas a compartir y ayudar en su uso, desarrollo y
actualizacin, sobre todo en el entorno de los ordenadores personales y
electrnica de consumo.
3.3.2. MICROSOFT VISUAL C++ 6.0
El uso de Microsoft Visual C++ 6.0 viene impuesto por el hecho de
utilizar las libreras OpenCV desarrolladas en C y C++.
Microsoft Visual C++ 6.0 se incluye dentro del paquete Microsoft Visual
Studio 6.0, proporciona una herramienta potente para la creacin de programas
tanto en C como en C++ y una gran versatilidad de uso y depuracin.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 47
4. IMPLEMENTACIN
4.1. ESTRUCTURA
En este apartado se describe detalladamente como se ha implementado
el sistema de reconocimiento facial, desde su diseo, hasta los resultados de
su funcionamiento.
Dentro del bloque de DISEO, en una primera seccin se muestran
los diagramas de flujo de la funcin o programa principal y del mdulo
compara, el ms importante del sistema de reconocimiento facial diseado.
En la segunda seccin se detalla la estructura interna del sistema, los
mdulos principales en los que se divide y una descripcin de los mismos.
La tercera seccin contiene la descripcin de todas las funciones
utilizadas para el diseo e implementacin del sistema de reconocimiento
facial, tanto funciones de librera de OpenCV, como las diseadas
exclusivamente para el sistema, funciones propias. Las funciones de librera de
C++ utilizadas no son descritas por no ser relevantes.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 48
Las dos ltimas secciones muestran respectivamente el funcionamiento
general del sistema, con ejemplos de su utilizacin y los resultados obtenidos
de la misma.
El siguiente bloque es el de FUNCIONAMIENTO, donde se describe de
forma detallada y grfica el manejo y funcionamiento del programa.
Los dos ltimos grandes bloques corresponden a CRITERIOS PARA EL
RECONOCIMIENTO, donde se explican los criterios que deben cumplirse para
que un usuario sea reconocido (dentro de la funcin compara), una vez
comparada su cara con las de la base de datos, y RESULTADOS, donde se
muestran diferentes resultados obtenidos en cuanto a tiempo de cmputo y
fiabilidad en los reconocimientos.
Dentro del apartado CRITERIOS PARA EL RECONOCIMIENTO, se
encuentra COMPARA. Realce y Eigenfaces que muestra un ejemplo del
trabajo que realiza la funcin compara mediante el uso del realce y los
eigenfaces.
4.2. DISEO
4.2.1. DIAGRAMA DE FLUJO
A continuacin se muestra el diagrama de flujo general del programa de
reconocimiento facial y el diagrama de la funcin compara, una de las ms
importantes y complejas ya que realiza todo el proceso de reconocimiento.
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 49
Ilustracin 12: Diagrama de flujo del programa principal
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 50
Ilustracin 13: Diagrama de flujo de la funcin COMPARA
-
PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIN ARTIFICIAL
Csar Reyes Lpez Pgina 51
4.2.2. ESTRUCTURA INTERNA
Como se ha visto en los diferentes diagramas de flujo, el programa se
divide en numerosos bloques, cada uno de los cuales consta de una o varias
funciones. En este apartado se va a proceder a una descripcin interna de
cada uno de estos bloques y funciones que constituyen el programa. No se
mostrar el cdigo constituyente de cada funcin ya que este aparece en el
apartado 7.3 CDIGO FUENTE, se pretende simplemente dar una visin
detallada de cmo se ha estructurado el programa de reconocimiento facial.
Para ello se ha seguido el orden de la pantalla de inicio del programa, como
puede verse en el bloque MAIN del diagrama de flujo del apartado anterior.
4.2.2.1. MAIN Funcin principal
La funcin MAIN es el programa de reconocimiento en s, es el programa
principal, realiza todas las tareas y llamadas a otras funciones necesarias para
el correcto funcionamiento del sistema, interacta con los diferentes procesos
de los que consta, inicializando parmetros al ini