pfc reconocimiento facial mediante visión artificial

of 134 /134
DEPARTAMENTO DE INGENIERÍA DE SISTEMAS Y AUTOMÁTICA ESCUELA TÉCNICA SUPERIOR DE INGENIEROS UNIVERSIDAD DE SEVILLA PROYECTO FIN DE CARRERA RECONOCIMIENTO FACIAL MEDIANTE VISIÓN ARTIFICIAL INGENIERÍA DE TELECOMUNICACIÓN Autor: César Reyes López Tutor: Dr. Eduardo Fernández Camacho Sevilla, Mayo de 2005

Upload: peter-galdamez

Post on 16-Dec-2015

15 views

Category:

Documents


0 download

DESCRIPTION

PFC Reconocimiento

TRANSCRIPT

  • 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