reconocimiento de imÁgenes faciales ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8...

57
1 RECONOCIMIENTO DE IMÁGENES FACIALES ORIENTADO A CONTROLES DE ACCESO Y SISTEMAS DE SEGURIDAD. DONOVAN CAMILO PLATERO PLAZAS CÓD.: 20132383007 UNIVERSIDAD DISTRITAL “FRANCISCO JOSÉ DE CALDAS” FACULTAD TECNOLÓGICA INGENIERÍA EN CONTROL BOGOTÁ D.C. 2015

Upload: trantuong

Post on 12-May-2018

225 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

1

RECONOCIMIENTO DE IMÁGENES FACIALES ORIENTADO A CONTROLES DE ACCESO Y SISTEMAS DE SEGURIDAD.

DONOVAN CAMILO PLATERO PLAZAS

CÓD.: 20132383007

UNIVERSIDAD DISTRITAL “FRANCISCO JOSÉ DE CALDAS”

FACULTAD TECNOLÓGICA

INGENIERÍA EN CONTROL

BOGOTÁ D.C.

2015

Page 2: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

2

RECONOCIMIENTO DE IMÁGENES FACIALES ORIENTADO A CONTROLES DE ACCESO Y SISTEMAS DE SEGURIDAD.

DONOVAN CAMILO PLATERO PLAZAS

CÓD.: 20132383007

MONOGRAFÍA PARA OPTAR POR EL TÍTULO DE INGENIERO

EN CONTROL

DIRECTOR: M.Sc. EDWAR JACINTO GÓMEZ

UNIVERSIDAD DISTRITAL “FRANCISCO JOSÉ DE CALDAS”

FACULTAD TECNOLÓGICA

INGENIERÍA EN CONTROL

BOGOTÁ D.C.

2015

Page 3: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

3

Resumen

En la actualidad, debido al fuerte avance de la tecnología, se han podido implementar diversos sistemas digitales, los cuales son capaces de solventar las distintas problemáticas de todo tipo, algunas de ellas a bajo costo, y con un nivel de aceptación comprensible dentro de la sociedad actual. Comprendidos dentro de estos sistemas, se encuentran las plataformas embebidas, las cuales han tenido una progresión significativa dentro de la tecnología aplicada a soluciones específicas o dedicadas, reduciendo así los costes de diseño e implementación y además dando la posibilidad de desarrollar sistemas de tiempo real.

Un sistema de reconocimiento facial es una aplicación que identifica automáticamente a una persona en una imagen[1][2]. Esto es posible mediante un análisis de las características faciales extraídas de la imagen o de un video[3], y comparándolas con una base de datos previamente adquirida.Sin embargo, los sistemas de seguridad y control de acceso se implementan sobre ordenadores, los cuales son operados por un personal específico lo cual conduce a un sistema que no es automático y que además no es capaz de generar alarmas ante una situación de riesgo, lo que puede conducir según sea el caso a robos materiales o de información. Debido a esto, este tipo de sistemas son poco confiables e ineficientes; y al estar funcionando sobre un ordenador requiere licencias y costos más elevados.

Cotidianamente se encuentran nuevas técnicas de reconocimiento facial, sin embargo son bastante complejas y difícilmente realizables debido a que requieren instrumentos y sensores más especializados y con mejores características, haciendo más complicada la adquisición de dichos sistemas, su uso y comercialización en el mercado colombiano.

Debido a esto, se logró implementar un sistema de reconocimiento facial, al interior de una plataforma de desarrollo embebida llamada Raspberry Pi, proporcionando una solución portable, con costo reducido y la posibilidad de actualizaciones del sistema de reconocimiento sencillas, sin la necesidad de modificar el hardware del dispositivo. Además se profundizo dentro de las técnicas existentes de reconocimiento facial.

El presente documento se estructura así: Introducción, Marcos de Referencia, Hardware y software empleado, Resultados y Conclusiones

Page 4: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

4

Contenido

INTRODUCCIÓN .................................................................................................... 8

OBJETIVOS .......................................................................................................... 10

Objetivo General ................................................................................................ 10

Objetivos Específicos ........................................................................................ 10

PLANTEAMIENTO DEL PROBLEMA ................................................................... 11

MARCOS DE REFERENCIA ................................................................................. 12

SISTEMAS BIOMÉTRICOS ............................................................................... 12

Arquitectura de un sistema de identificación biométrica ................................ 12

Modos de Funcionamiento ............................................................................. 14

Evaluación de los modos de funcionamiento ................................................. 14

SISTEMAS BIOMÉTRICOS DE RECONOCIMIENTO FACIAL ......................... 17

Condiciones de Captura ................................................................................. 17

Detección y Extracción del Rostro ................................................................. 18

SISTEMAS WAVELET....................................................................................... 19

Sistemas Wavelet de Primera Generación ..................................................... 19

WAVELET DE HAAR ......................................................................................... 22

Función Escala Haar ...................................................................................... 22

Función Haar Wavelet .................................................................................... 24

ALGORITMO DE VIOLA-JONES ....................................................................... 26

El Algoritmo AdaBoost ................................................................................... 26

El algoritmo de Viola-Jones para detección facial .......................................... 28

RECONOCIMIENTO FACIAL MEDIANTE EIGENFACES................................. 31

DESCRIPCIÓN DEL HARDWARE Y SOFTWARE UTILIZADO ........................... 35

CAMARA PI NOIR ............................................................................................. 35

RASPBERRY PI ................................................................................................ 35

Pre-procesamiento de la imagen ................................................................... 36

RGB a escala de grises.................................................................................. 36

Python ............................................................................................................ 37

OpenCV ......................................................................................................... 37

PRUEBAS Y RESULTADOS ................................................................................. 39

ETAPA DE DETECCIÓN ................................................................................... 39

Page 5: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

5

ETAPA DE RECONOCIMIENTO ....................................................................... 45

CONCLUSIONES .................................................................................................. 52

REFERENCIAS ..................................................................................................... 53

Page 6: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

6

ÍNDICE DE TABLAS Tabla 1. Datos obtenidos de detección de Rostros. Fuente: Autor ....................... 45 Tabla 2. Tiempos de Detección en imágenes que contienen Rostros ................... 56

Page 7: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

7

ÍNDICE DE FIGURAS

Figura 1. Etapas de un sistema de identificación biométrica. Fuente [1] ............... 12 Figura 2. Funciones densidad de probabilidad de individuos legítimos e impostores. Fuente [2] .............................................................................................................. 15 Figura 3. Tasas de Falsa aceptación y Falso rechazo en función del umbral de decisión. Fuente[2] ................................................................................................ 16 Figura 4. Diagrama de bloques para un Sistema de reconocimiento facial. Fuente: Autor ...................................................................................................................... 17

Figura 5. Función Escala. Fuente[28] .................................................................... 22

Figura 6. Reconstrucción de la función 𝒕𝟐 mediante la función Haar de escala. Fuente:[27] ............................................................................................................ 23 Figura 7. Wavelet de Haar. Fuente:[27] ................................................................ 24

Figura 8. Coeficientes 𝒅𝒌 de Reconstrucción. Fuente: Autor ................................ 25 Figura 9. Sumatoria función escala y Wavelet obtenidas ...................................... 26 Figura 10. Algoritmo AdaBoost. Fuente[2] ............................................................ 27

Figura 11. Demostración gráfica del algoritmo AdaBoost. Fuente[2] .................... 27 Figura 12. Haar-like Features. Fuente [25] ............................................................ 28 Figura 13. Cálculo de las características de una matriz. Fuente: [2] ..................... 29

Figura 14. Pixeles Utilizados para representar la imagen integral de un pixel (x, y). Fuente: [21] ........................................................................................................... 29

Figura 15. Ejemplo de una Imagen Promedio. Fuente [29] ................................... 32 Figura 16. Módulo Cámara Raspberry Pi NoIR. Fuente [30] ................................. 35

Figura 17. Raspberry Pi 2 Modelo B. Fuente [30] ................................................. 36 Figura 18. Cambio de imagen RGB a escala de grises. Fuente [31] ..................... 37

Figura 19. Estructura básica de OpenCV. Fuente: [32] ......................................... 38 Figura 20. Diagrama de flujo de la Programación. Fuente: Autor .......................... 40 Figura 21. Clasificador Haar. Fuente: Autor .......................................................... 41

Figura 22. Detección facial individuo 1. Fuente: Autor .......................................... 42 Figura 23. Detección facial individuo 2. Fuente: Autor .......................................... 42

Figura 24. Detección facial individuo 3. Fuente: Autor .......................................... 43 Figura 25. Detección facial individuo 4. Fuente: Autor .......................................... 43

Figura 26. Detección fallida individuo de perfil. Fuente: Autor............................... 44 Figura 27. Detección fallida individuo de perfil. Fuente: Autor............................... 44 Figura 28. Archivo utilizado para el aprendizaje. Fuente: Autor ............................ 46

Figura 29. Eigenfaces creadas en el Entrenamiento. Fuente: Autor ..................... 47 Figura 30. Test de Reconocimiento sujeto 0. Fuente: Autor ................................. 48 Figura 31. Test de Reconocimiento sujeto 0, imagen no contenida en la base de datos. Fuente: Autor .............................................................................................. 48

Figura 32. Test de Reconocimiento imagen no contenida en la base de datos. Fuente: Autor ......................................................................................................... 49 Figura 33. Imagen de la Base de Datos. Fuente: Autor ........................................ 50 Figura 34. Imagen fuera de la Base de Datos. Fuente: Autor ............................... 50 Figura 35. Imagen Promedio de la Base de Datos. Fuente: Autor ........................ 51

Page 8: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

8

INTRODUCCIÓN

La detección facial es una técnica utilizada para ubicar al interior de una imagen uno o varios rostros presentes en esta, teniendo como respuesta todas las imágenes de las caras encontradas para luego continuar con el proceso de identificación. Aunque actualmente en sistemas de reconocimiento de identidad se utilizan diversas señales como huellas digitales, la voz propia e incluso el iris de los ojos[4], la detección de rostros se ha convertido en una gran herramienta, gracias a la facilidad de instalación de los sensores (cámara) y al no ser un sistema invasivo, tiene gran aceptación por parte del público en general. Por otra parte, si no se utilizan algoritmos para el procesamiento de imágenes, este tiene un costo computacional bastante alto, debido a que una imagen únicamente del rostro podría tener una dimensionalidad de 2500 pixeles (50x50 pixeles)[5]. Abordando las técnicas más utilizadas dentro del reconocimiento facial y la extracción de características se encuentran: análisis de componentes principales (PCA) usualmente llamada en procesamiento de imágenes como eigenfaces[6][7]–[10] características locales y análisis de subregiones[11], [12], Redes neuronales artificiales (RNA)[13]–[15], análisis de componentes independientes (ICA)[16][17], correlación y la transformada coseno discreta (DCT)[18]. Los métodos enunciados anteriormente basan su teoría en imágenes fijas de la persona que se desea reconocer, aunque actualmente se desarrollan métodos basados en señales de video y en modelos 3D de la cabeza del individuo[19][5] Al implementar un sistema de reconocimiento de rostro, según[20] , hay definidas 6 etapas: Captura de la imagen, pre-procesamiento, localización, escalamiento y ajuste, extracción de características y en último lugar la clasificación y la toma de decisión.[17] En la etapa de pre-procesamiento de la imagen, se hace la selección del espacio de color con el que se va a trabajar, dependiendo del tipo de imagen que se capture y el formato de esta escala; si se va a trabajar en escala de grises se debe hacer la extracción de la intensidad. Luego de tener la imagen pre-procesada se debe obtener únicamente el trozo de la imagen donde se encuentra el rostro de la persona, para ello se determinan las coordenadas de una subimagen delimitada por el mentón, la frente y las orejas; normalmente se implementa un algoritmo el cual utiliza clasificadores en cascada y se denomina Adaboost[21][3]. Aunque también se utilizan otros métodos como la información del color de la piel extrayendo la región que forma la cara o la detección de la posición de los ojos.

Page 9: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

9

Antes de proceder a la extracción de características, muchos sistemas realizan un pre-procesamiento de la cara, como la normalización de esta, utilizando la información de lugares como la nariz o los ojos[22] o simplemente haciendo un escalado de la imagen. Al obtener únicamente la imagen del rostro, el siguiente punto consiste en extraer sus características, utilizando cualquiera de las técnicas mencionadas anteriormente. Estos métodos, producen un vector de características de baja dimensión que se debe comparar con la base de datos de personas previamente almacenada dentro del sistema de detección. Para realizar esta comparación existen diferentes métricas como la distancia lineal, la distancia euclidiana, redes neuronales, coseno del ángulo entre vectores, coeficiente de correlación, entre otras.[5][23]

Page 10: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

10

OBJETIVOS

Objetivo General

Diseñar e implementar un sistema de reconocimiento facial sobre un sistema embebido, orientado a controles de acceso.

Objetivos Específicos

Implementar el algoritmo propuesto por Viola y Jones sobre una plataforma embebida.

Emplear un hardware que permita la visualización de las imágenes captadas y además la posible generación de alarmas.

Realizar una serie de pruebas que verifiquen el correcto funcionamiento del algoritmo con diferentes individuos de prueba.

Page 11: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

11

PLANTEAMIENTO DEL PROBLEMA

Los sistemas de seguridad y control de acceso, se encuentran implementados en ordenadores, más exactamente con el sistema operativo Windows® lo cual exige a las empresas que los utilicen, la compra de licencias costosas para esta. Al adquirir el sistema mencionado anteriormente, este tiene la capacidad de realizar una base de datos, pero ya que un empleado debe controlar completamente cada paso del acceso (tomar fotografía, guardar en la base de datos, hacer la identificación, entre otras), lo cual genera una ineficiencia del sistema. Por otra parte, este control de acceso, no genera eventos o alarmas en el caso que sean necesarias, toda la responsabilidad recae sobre el operador del sistema de seguridad, originando una confiabilidad significativamente baja. Aplicando el Algoritmo de Viola y Jones para la detección del rostro en una imagen, tecnología poco utilizada en Colombia, para luego hacer el correspondiente reconocimiento mediante métodos basados en imágenes fijas, todo, al interior de un sistema embebido, permitirá realizar la detección, extracción e identificación facial de una forma más eficiente, además de reducir significativamente el valor monetario de este.

Con la implementación de este proyecto se da inicio a la mejora de algoritmos e implementación de nuevas tendencias para la detección e identificación facial, implementando un sistema económico, con gran capacidad de procesamiento; permitiendo al país desarrollarse en miras a convertirse en uno de los principales en transferencia de tecnologías dentro del marco de sistemas de seguridad y/o control de acceso.

Page 12: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

12

MARCOS DE REFERENCIA

SISTEMAS BIOMÉTRICOS La biometría, según el Diccionario de la Real Academia Española, se define como: “Estudio mensurativo o estadístico de los fenómenos o procesos biológicos”. Ahora, esta definición se hace mucho más concreta cuando dicho término se utiliza al hablar de identificación de personas. Según [24], la Biometría consiste en los métodos de reconocimiento de una persona basados en características fisiológicas o de comportamiento, es decir el objetivo es identificar o reconocer a una persona mediante su huella dactilar o a través de una imagen de su rostro.

Arquitectura de un sistema de identificación biométrica Existen actualmente diversas técnicas de identificación biométrica, debido a que cualquier característica presente en una persona puede ser procesada para reconocerla, sin embargo, dichos sistemas mantienen una arquitectura estándar, independiente de la técnica empleada[2]. En la figura 1 se pueden observar dos módulos o fases, el Reclutamiento o módulo de entrenamiento, y la Verificación o el módulo de reconocimiento.

Figura 1. Etapas de un sistema de identificación biométrica. Fuente [1]

Módulo de entrenamiento: En esta etapa, se toman las muestras del usuario, se les aplica un pre-procesado para posteriormente extraer una serie de patrones, los cuales se almacenaran dentro del sistema y será la base de datos que permitirá caracterizar el usuario. Dicho entrenamiento, se realiza de una forma supervisada,

Page 13: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

13

es decir que existe una persona encargada de obtener los datos de manera controlada, además de garantizar que la identidad de la persona que se está ingresando en el sistema sea verídica[2]. Módulo de reconocimiento: En el momento en el que ya se tiene almacenada la información de las características del usuario, este puede utilizar el sistema de reconocimiento con total regularidad, durante este procesos sus características son comparadas con las almacenadas dentro de la base de datos y finalmente se toma una decisión frente a la comparación. No obstante, esta fase de reconocimiento se divide en una serie de bloques, los cuales hacen que las características biométricas identifiquen al individuo. Dichos subprocesos son:

Captura: Se adquieren los datos fisiológicos o de comportamiento del individuo. La toma de datos es dependiente de la técnica biométrica que se está utilizando. Como ejemplo, un rostro puede ser obtenido mediante una cámara o un escáner 3D modelando la cabeza. En esta parte está contenida interfaz hombre-máquina (HMI) y el sensor de captura de información. La elección de dicho sensor afecta directamente al rendimiento del sistema ya que un mal diseño puede resultar en una alta tasa de error al adquirir la información[1].

Pre-procesado: Luego de adquirir los datos, estos deben ser tratados para facilitar el procesamiento que debe realizar el bloque de extracción de características. Al interior de este subproceso pueden implementarse filtros, extracción de bordes de una imagen, localización de regiones de interés; todo esto obedece a la técnica de extracción de características y al tipo de muestra.

Extracción de Características: Es el bloque más importante dentro de la fase de reconocimiento. Durante esta fase los datos son procesados y se extraen características discriminatorias para representar los rasgos a medir. En este bloque se fundamenta la capacidad del sistema para distinguir entre sujetos.

Comparación: Al obtener las características de la muestra, se compara esta con las previamente almacenadas, es decir el patrón. Esta comparación no se trata como binaria o de igualdad, sino que la variación de muestras, por el ambiente o por características del individuo, hacen que de la comparación resulte un grado de semejanza con el patrón. Por lo cual, se debe determinar un umbral de tolerancia para esta semejanza y así establecer el fracaso o éxito de la comparación. Es posible fundamentar la comparación en distintas posibilidades: Métricas como la Distancia Euclidiana.

Page 14: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

14

Decisión: En esta etapa es el sistema autónomo, el encargado de tomar una decisión frente a la identificación acatando los umbrales establecidos.

Modos de Funcionamiento Dentro de los sistemas biométricos existen dos modos de funcionamiento, el modo identificación y el modo de verificación[2][6]. Modo de identificación: En este modo el sistema determinará de manera automática la identidad del sujeto si este se encuentra almacenado dentro de la base de datos. Dentro de este modo existen demás dos tipos de identificación: Identificación en conjunto cerrado, en donde el sistema se restringe únicamente a identificar el individuo según los que están almacenados en la base de datos; y la identificación en conjunto abierto donde cabe la posibilidad del individuo no corresponda con los de la base de datos y el sistema lo identifique como sujeto desconocido[1][2]. Modo de verificación: El único objetivo de este modo de funcionamiento es comprobar si el individuo que ingresa al sistema es quien dice ser. Por lo tanto la persona debe proporcionarle al sistema su identidad antes de empezar el proceso de reconocimiento

Evaluación de los modos de funcionamiento Modo de verificación: Para este modo existen 4 posibles resultados: Correcta aceptación, Correcto rechazo, Falsa aceptación y Falso rechazo. Como sugieren cada uno de los nombres, una situación de correcta aceptación se obtiene cuando un individuo legítimo es clasificado correctamente, una situación de correcto rechazo se obtiene cuando un individuo impostor es rechazado por el sistema, una falsa aceptación se obtiene cuando un impostor es aceptado como legítimo y un falso rechazo se obtiene cuando un individuo legitimo es rechazado como impostor[2].

Si se llama 𝐻0 a la hipótesis en la que un sujeto es clasificado como impostor, 𝐻1 a

la hipótesis en la que el sujeto es clasificado como legítimo, 𝐷0 a la decisión del sistema cuando el sujeto es clasificado como impostor y 𝐷1 la decisión contraria; es posible definir las siguientes tasas de rendimiento del sistema biométrico:

Tasa de falsa aceptación (FAR, por sus siglas en inglés): como se muestra en (1), es la probabilidad de que un individuo impostor sea clasificado como legítimo.

𝐹𝐴𝑅 = 𝑃( 𝐷1 / 𝐻0) (1)

Page 15: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

15

Tasa de falso rechazo (FRR, por sus siglas en inglés): como se muestra en (2), es la probabilidad de que un individuo legítimo sea clasificado como impostor.

𝐹𝑅𝑅 = 𝑃( 𝐷0 / 𝐻1) (2)

Tasa de correcta aceptación (CAR, por sus siglas en inglés): como se muestra en (3), es la probabilidad de que un individuo legítimo sea clasificado como tal.

𝐶𝐴𝑅 = 𝑃( 𝐷1 / 𝐻1) (3)

Tasa de correcto rechazo (CRR, por sus siglas en inglés): como se muestra en (3), es la probabilidad de que un impostor sea clasificado como tal.

𝐶𝑅𝑅 = 𝑃( 𝐷0 / 𝐻0) (4) Estas tasas pueden ser representadas de forma gráfica utilizando funciones de densidad de probabilidad, produciendo curvas con una forma similar a las de la figura 2.

Figura 2. Funciones densidad de probabilidad de individuos legítimos e

impostores. Fuente [2]

Estas curvas se obtienen midiendo un patrón de entrada del individuo con su patrón correspondiente en la base de datos generando la función de densidad de individuos legítimos, y con los patrones almacenados de los otros individuos obteniendo la

Page 16: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

16

función de densidad de impostores. Las funciones de densidad de individuos legítimos e impostores se solapan como se observa en la figura 1, por lo cual es

necesario trazar un umbral 𝑠0 para que el sistema tome la decisión. Al trazar este umbral se forman las zonas de falsa aceptación, falso rechazo, correcta aceptación y correcto rechazo. Entonces, las tasas quedan definidas como (5), (6), (7) y (8):

𝐹𝐴𝑅 = ∫𝑃( 𝑠 / 𝐻0)

1

𝑠0

𝑑𝑠 (5)

𝐹𝑅𝑅 = ∫ 𝑃( 𝑠 / 𝐻1) 𝑑𝑠

𝑠0

0

(6)

𝐶𝐴𝑅 = 1 − 𝐹𝑅𝑅 (7)

𝐶𝑅𝑅 = 1 − 𝐹𝐴𝑅 (8) Graficando las tasas de falsa aceptación y falso rechazo en función del umbral decidido, se obtiene la gráfica que se muestra en la figura 3.

Figura 3. Tasas de Falsa aceptación y Falso rechazo en función del umbral

de decisión. Fuente[2]

Page 17: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

17

En donde se obtiene un punto de cruce entre ambas, denominado Tasa de igual error (ERR). Modo de identificación: Análogamente al modo anterior, en este modo se pueden definir tasas de Falsa No-coincidencia, y de Falsa Coincidencia[2].

SISTEMAS BIOMÉTRICOS DE RECONOCIMIENTO FACIAL El diagrama de bloques general de un sistema de reconocimiento facial a partir de imágenes se muestra en la figura 4.

Figura 4. Diagrama de bloques para un Sistema de reconocimiento facial. Fuente: Autor

Los términos detección facial y reconocimiento facial suelen confundirse entre sí, y debido a que existen técnicas de detección de rostros y de reconocimiento de rostros es importante definir cada uno de ellos. El primero, se refiere al proceso de localización del rostro dentro de una imagen y el segundo a la identificación o verificación de la identidad de un individuo a partir de una imagen de su rostro.

Condiciones de Captura Según [2] existen dos tipos de condiciones de captura: Ambiente controlado: Se dice que la imagen de una cara fue capturada en un ambiente controlado cuando se fijan las características de captura para hacerla más favorable al reconocimiento. Por ejemplo: el tipo de fondo (normalmente uniforme),

Page 18: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

18

sin ningún otro objeto en la imagen, la iluminación del sitio donde se realiza la captura, o incluso la distancia de la cámara al rostro. Ambiente no controlado: Contrario al anterior, en este caso no se garantiza ninguna característica favorable de captura, pudiendo tener la cara cualquier tamaño dentro de la imagen, estar obstruida por otros objetos, tener poca iluminación, contraluz, puede haber otros objetos en la imagen o la imagen puede tener cualquier tipo de textura de fondo.[2]

Detección y Extracción del Rostro La detección consiste en ubicar dentro de la imagen, la zona de esta en la cual se encuentra la cara, danto paso a una posterior extracción únicamente del rostro y procesando únicamente este. Existen distintos métodos para realizar la detección de un rostro dentro de una imagen, entre ellos se pueden destacar los métodos basados en ambientes controlados, métodos basados en movimiento, y los métodos basados en plantillas. Métodos basados en ambientes controlados: En los ambientes controlados, es muy común el uso de algoritmos sencillos de detección de borde[2]. Métodos basados en movimiento: Estos métodos, utilizan una entrada de video para realizar la detección, en este caso se le llama Tracking(seguimiento) debido a que se debe detectar el fotograma en el cual aparece la imagen con el rostro y luego seguirlo a través del video. Suelen combinarse con otros métodos pata comprobar que el objeto que se está moviendo es un rostro[17], [21], [22], [25], [26]. Métodos basados en plantillas: Consiste en hallar un modelo que pueda describir con seguridad un rostro. Un ejemplo de esto puede ser la descripción del contorno de la cara mediante un modelo matemático, o por su simetría. En otros casos, se divide el rostro en secciones que comprenden identificar por separado los ojos, la nariz y la boca.[21] Estos métodos son muy sensibles al tamaño del rostro dentro de la imagen, la pose de esta y los cambios de iluminación (lateral y frontal) que se evidencien. No obstante, existen métodos basados en los resultados arrojados por clasificadores simples, que al ser ponderados generan un clasificador fuerte. Este tipo de técnica se tratará en profundidad más adelante.

Page 19: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

19

SISTEMAS WAVELET Las Wavelets, son técnicas relativamente recientes que nacen de la necesidad de desarrollar nuevas técnicas de análisis sobre el comportamiento local de una señal. Estas funciones wavelet, se utilizan para expresar el segmento de una señal 𝑥(𝑡) encuadrada dentro de un intervalo, y únicamente se enfoca en dicho trozo de la señal. A continuación, se describirán los sistemas wavelet de primera generación, se definirán las funciones escala y wavelet, y posteriormente se mostraran las exigencias y propiedades que deben cumplir cada una de estas funciones[27].

Sistemas Wavelet de Primera Generación Los sistemas wavelet de primera generación son todos aquellos que son generados únicamente por translaciones y escalamientos de una única función wavelet Ѱ(𝑡), llamada wavelet madre o Wavelet generadora, constituyendo así una familia de funciones con de la forma de (9).

Ѱ𝑗,𝑘(𝑡) = 2𝑗2⁄ Ѱ(2𝑗𝑡 − 𝑘) 𝑑𝑜𝑛𝑑𝑒 𝑗, 𝑘 ∈ 𝑍 (9)

Donde el factor 2𝑗2⁄ mantiene una magnitud o norma constante independiente de la

escala 𝑗. Este conjunto de funciones es denominado expansión wavelet. La wavelet madre Ѱ(𝑡), trae asociada una función denominada la función escala 𝛷(𝑡). Con estas dos funciones, será posible representar o aproximar cualquier tipo

de función 𝑓(𝑡) ∈ 𝐿2(𝑅), mediante funciones de la forma de (10).

𝑓(𝑡) =∑∑𝑐𝑗.𝑘𝛷(𝑡) + ∑∑𝑑𝑗.𝑘Ѱ(𝑡) (10)

𝑗𝑘

𝑗𝑘

El set de expansión wavelet no es único, pueden existir muchos sistemas wavelet, sin embargo todos tienen estas características:

El sistema wavelet se puede describir como un conjunto de “ladrillos”, con los cuales es posible construir o representar una señal. Este sistema es una expansión bidimensional que es una base para alguna clase de señal de una o más dimensiones[27].

El conjunto de expansión wavelet, entrega una localización tiempo-frecuencia, es decir que la mayor parte de la energía es representada por pocos coeficientes 𝑑𝑗.𝑘, mientras que un coeficiente de Fourier representa

una frecuencia que se extiende a lo largo de toda la señal. Un coeficiente wavelet se encuentra perfectamente ubicado en el tiempo.

Page 20: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

20

Los sistemas wavelet deben satisfacer las condiciones de multi-resolución. Esto quiere decir que si un conjunto de señales puede ser representado por

una suma de 𝛷(𝑡 − 𝑘) 𝑘 ∈ 𝑍 , un conjunto más amplio de señales (que incluye

el conjunto original) puede ser representado por una suma 𝛷(2𝑡 − 𝑘) 𝑘 ∈ 𝑍

Es posible calcular a partir de los coeficientes de más alta resolución los coeficientes de más baja resolución, esto mediante un algoritmo en forma de árbol llamado banco de filtros. Esto permite un cálculo bastante eficiente de los coeficientes de expansión.

Las wavelets son ajustables y se fácilmente adaptables. Debido a que se han definido bastantes funciones wavelet, se pueden adaptar a una aplicación concreta.

La generación de funciones wavelet y el cálculo de los coeficientes de expansión se puede realizar de manera sencilla en una computadora o en un sistema embebido, debido a que estos cálculos se remiten solo a multiplicaciones y sumas.

Función Escala

Sea 𝛷(𝑡) ∈ 𝐿2(𝑅) , una función escala, que trasladada y escalada genera una familia de funciones 𝛷𝑗.𝑘(𝑡) 𝑑𝑜𝑛𝑑𝑒 𝑗, 𝑘 ∈ 𝑍, definida como se muestra en (11).

𝛷𝑗,𝑘(𝑡) = 2𝑗2⁄ 𝛷(2𝑗𝑡 − 𝑘) 𝑑𝑜𝑛𝑑𝑒 𝑗, 𝑘 ∈ 𝑍 (11)

Para todo 𝑗 ∈ 𝑍 , la función de escala define el subespacio 𝑉𝑗 ⊂ 𝐿2(𝑅) como (12)

𝑉𝑗 = 𝑆𝑝𝑎𝑛𝑘∈𝑍{𝛷𝑗,𝑘(𝑡)}̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ ̅̅ (12)

Por lo tanto una función 𝑓(𝑡) estará contenida en 𝑉𝑗 si se puede escribir como (13)

𝑓(𝑡) =∑𝑐𝑗.𝑘𝛷𝑗,𝑘(𝑡) (13)

𝑘∈𝑍

Con 𝑐𝑗.𝑘 definido como el producto interno de 𝑓(𝑡), 𝛷𝑗,𝑘(𝑡) como se muestra en (14)

𝑐𝑗.𝑘 =< 𝑓(𝑡), 𝛷𝑗,𝑘(𝑡) > = ∫ | 𝑓(𝑡)𝛷𝑗,𝑘(𝑡)|𝑑𝑡 (14)∞

−∞

Page 21: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

21

Una de las propiedades más importantes que entrega la definición de la función escala es (15)

𝑓(𝑡) ∈ 𝑉𝑗 ↔ 𝑓(2𝑡) ∈ 𝑉𝑗+1 (15)

Esto debido a (16-21)

𝑓(𝑡) =∑𝑐𝑗.𝑘𝛷𝑗,𝑘(𝑡) (16)

𝑘∈𝑍

𝑓(2𝑡) =∑𝑐𝑗.𝑘𝛷𝑗,𝑘(2𝑡) (17)

𝑘∈𝑍

𝑓(2𝑡) =∑𝑐𝑗.𝑘2𝑗2⁄ 𝛷(2𝑗+1𝑡 − 𝑘) (18)

𝑘∈𝑍

𝑓(2𝑡) =∑𝑐𝑗.𝑘2(𝑗+1)

2⁄

√2 𝛷(2𝑗+1𝑡 − 𝑘) (19)

𝑘∈𝑍

𝑓(2𝑡) =∑𝑐𝑗.𝑘

√2 2(𝑗+1)

2⁄ 𝛷(2𝑗+1𝑡 − 𝑘) (20)

𝑘∈𝑍

𝑓(2𝑡) ∈ 𝑉𝑗+1 (21)

Una función escala debe cumplir con las siguientes condiciones[27]:

Para cada 𝑗 ∈ 𝑍, { 𝛷𝑗.𝑘(𝑡) 𝑑𝑜𝑛𝑑𝑒 𝑘 ∈ 𝑍} forma una base ortonormal para el

subespacio 𝑉𝑗 ⊂ 𝐿2(𝑅)

Todos los subespacios están anidados es decir (22):

∀ 𝑗 ∈ 𝑍, {𝑉𝑗 ⊂ 𝑉𝑗+1 } (22)

La función escala debe tener soporte compacto Función Wavelet Se define un subespacio 𝑊𝑗 como el complemento ortogonal de 𝑉𝑗 en 𝑉𝑗+1 , es decir

que cada una de las componentes de 𝑉𝑗 son ortogonales a todas las componentes

de 𝑊𝑗 , por lo tanto (23) muestra la ortogonalidad:

Page 22: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

22

< 𝛷𝑗,𝑘(𝑡), Ѱ𝑗,𝑘(𝑡) > = ∫ | 𝛷𝑗,𝑘(𝑡)Ѱ𝑗,𝑘(𝑡)|𝑑𝑡 = 0 𝑑𝑜𝑛𝑑𝑒 𝑗, 𝑘 ∈ 𝑍 (23)∞

−∞

Con la función wavelet definida como (24)

Ѱ𝑗,𝑘(𝑡) = 2𝑗2⁄ Ѱ(2𝑗𝑡 − 𝑘) 𝑑𝑜𝑛𝑑𝑒 𝑗, 𝑘 ∈ 𝑍 (24)

Y además de esto se debe cumplir (25):

𝑉𝑗+1 = 𝑉𝑗 ⊕𝑊𝑗 (25)

WAVELET DE HAAR Es de gran importancia para el desarrollo del algoritmo de detección facial, la definición de la wavelet de Haar, la función wavelet más sencilla de representar y trabajar.

Función Escala Haar

Sea la función 𝛷(𝑡) ∈ 𝐿2(𝑅) definida como se muestra en (26):

𝛷(𝑡) = {1 𝑠𝑖 0 ≤ 𝑡 < 10 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜

(26)

Definida como la función de escalamiento, que se puede ver gráficamente en la figura 5.

Figura 5. Función Escala. Fuente[28]

Page 23: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

23

Ahora se define un conjunto de funciones de escalamiento, en función de

traslaciones enteras de la función de escala 𝛷(𝑡), evidenciada en (27)

𝛷𝑘(𝑡) = 𝛷(𝑡 − 𝑘) = {1 𝑠𝑖 𝑘 ≤ 𝑡 < 𝑘 + 10 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜

(27)

𝑑𝑜𝑛𝑑𝑒 𝑘 ∈ 𝑍

Siendo posible representar cualquier función 𝑓(𝑡) ∈ 𝐿2(𝑅) contenida en el

subespacio generado por 𝛷𝑘(𝑡).

𝑓(𝑡) =∑𝑐𝑘𝛷𝑘(𝑡) (28)

𝑘∈𝑍

𝑑𝑜𝑛𝑑𝑒 𝑘 ∈ 𝑍

Y los 𝑐𝑘 se obtienen con (29)

𝑐𝑘 =< 𝑓(𝑡), 𝛷𝑘(𝑡) > = ∫ | 𝑓(𝑡)𝛷𝑘(𝑡)|𝑑𝑡 (29)∞

−∞

En la figura 6, se muestra una representación de la función 𝑓(𝑡) = 𝑡2, con 6 coeficientes de reconstrucción 𝑐𝑘 dados por el intervalo [-3,3] y una resolución 𝑗 =0.

Figura 6. Reconstrucción de la función 𝒕𝟐 mediante la función Haar de

escala. Fuente:[27]

Page 24: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

24

Función Haar Wavelet Al utilizar funciones de escalamiento con dimensión mayor, se obtiene una mejor aproximación de la señal. Pero las características de la señal pueden ser representadas de una mejor forma sin necesidad de incrementar la dimensión del espacio de las funciones de escala, sino definiendo un subespacio 𝑊𝑗 de funciones

un poco diferentes a las funciones de escalamiento, que representen la diferencia entre 𝑉𝑗+1 y 𝑉𝑗 tal que cumpla (25).

Luego, la función que expande el subespacio 𝑊𝑗 se conoce como función Wavelet y

su definición se muestra en (30).

Ѱ(𝑡) =

{

1 𝑠𝑖 0 ≤ 𝑡 ≤

1

2

−1 𝑠𝑖1

2≤ 𝑡 < 1

0 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜

(30)

Su grafica se muestra en la figura 7.

Figura 7. Wavelet de Haar. Fuente:[27]

Al igual que con la función de escala, esta función hace posible obtener una representación, pero de la diferencia que existe en aproximar una señal con un nivel

de resolución 𝑗 y aproximar la misma señal con un nivel de resolución 𝑗 + 1. De forma análoga la función wavelet se puede expandir a un conjunto de funciones desplazadas, como se ve en

Page 25: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

25

Ѱ𝑘(𝑡) = Ѱ(𝑡 − 𝑘) =

{

1 𝑠𝑖 0 ≤ 𝑡 ≤ 𝑘 +

1

2

−1 𝑠𝑖 𝑘 +1

2≤ 𝑡 < 𝑘 + 1

0 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜

(31)

𝑑𝑜𝑛𝑑𝑒 𝑘 ∈ 𝑍 Los coeficientes de aproximación de la función wavelet se obtienen de la misma forma que con la función escala. Computando el producto interior entre la función a representar y la función wavelet. Dicha operación se muestra en (32).

𝑑𝑘 =< 𝑓(𝑡),Ѱ𝑘(𝑡) > = ∫ | 𝑓(𝑡)Ѱ𝑘(𝑡)|𝑑𝑡 (32)∞

−∞

A continuación en la figura 8 se muestra la función de reconstrucción adicional para

𝑡2 en el intervalo [-3,3] con una resolución 𝑗 = 0

Figura 8. Coeficientes 𝒅𝒌 de Reconstrucción. Fuente: Autor

Page 26: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

26

Y en la figura 9, se evidencia la suma de las dos funciones, escala y wavelet para la reconstrucción de la señal.

Figura 9. Sumatoria función escala y Wavelet obtenidas

ALGORITMO DE VIOLA-JONES El algoritmo de Viola-Jones, es uno de los métodos más eficientes y conocidos en la actualidad en cuanto a extracción de rostros, reconocido por su rapidez y efectividad. Sin embargo, es de gran importancia exponer que este algoritmo utiliza una variante del algoritmo propuesto por Freund y Schapire[2] denominado AdaBoost, el cual se basa en la filosofía de utilizar clasificadores débiles, unificarlos para crear un clasificador fuerte.

El Algoritmo AdaBoost El nombre de este algoritmo proviene del inglés Adaptative Boosting. Este algoritmo, consigue el aprendizaje a partir de la modificación de la distribución de las muestras al finalizar cada iteración[2][3]. En las figuras 10 y 11 es posible observar la generalización del algoritmo y una descripción gráfica, respectivamente.

Page 27: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

27

Figura 10. Algoritmo AdaBoost. Fuente[2]

Figura 11. Demostración gráfica del algoritmo AdaBoost. Fuente[2]

Page 28: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

28

El algoritmo de Viola-Jones para detección facial A continuación, se explicará el algoritmo de Viola-Jones, y los conceptos necesarios para comprender por qué la detección es tan rápida y eficiente. Características Al implementar un clasificador, siempre se deben especificar las características que se usan para dicho proceso. Las características usadas para clasificar una imagen en el algoritmo de Viola-Jones, hacen alusión a las Wavelets de Haar. Sin embargo se les conoce como características de Haar o su término en inglés Haar-like features. En la figura 12, se muestran las características de Haar usadas en Viola-Jones.[2], [3], [21], [25]

Figura 12. Haar-like Features. Fuente [25]

Cada característica se superpone sobre la imagen en todas las posiciones y todos los tamaños posibles, y el resultado o valor de la característica se obtiene al restar a la suma de los pixeles bajo la zona negra de la característica, la suma de todos los pixeles bajo la zona blanca de la característica. Un ejemplo de esto se muestra en la figura 13.

Page 29: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

29

Figura 13. Cálculo de las características de una matriz. Fuente: [2]

Imagen integral Para calcular rápidamente cada uno de los rectángulos se usa una representación de la imagen llamada Imagen Integral. La integral de una imagen respecto un punto (𝑥, 𝑦) consiste en la suma de los píxeles por arriba y a la izquierda de dicho puntos, (𝑥, 𝑦) incluidos, como se muestra en la ecuación 33.

𝑖𝑖(𝑥, 𝑦) = ∑ 𝑖(𝑥′, 𝑦′) (33)

𝑥′≤𝑥,𝑦′≤𝑦

Donde 𝑖𝑖(𝑥, 𝑦) es la imagen integral y 𝑖(𝑥, 𝑦) es la imagen original a procesar, en la figura 14 se muestran los pixeles por encima y a la izquierda para calcular la imagen integral

Figura 14. Pixeles Utilizados para representar la imagen integral de un pixel (x, y). Fuente: [21]

Page 30: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

30

Ahora, en la ecuación 34, se muestra un ejemplo de cálculo de la imagen integral en una matriz.

(𝑎 𝑏 𝑐𝑑 𝑒 𝑓

) → (𝑎 𝑎 + 𝑏 𝑎 + 𝑏 + 𝑐

𝑎 + 𝑑 𝑎 + 𝑏 + 𝑑 + 𝑒 𝑎 + 𝑏 + 𝑐 + 𝑑 + 𝑒 + 𝑓) (34)

La ventaja de utilizar imágenes integrales es que gracias a estas, el cálculo de las características no varía ante el número de escalas y posiciones posibles de las características de Haar, haciendo que el tiempo de ejecución al calcular varias características distintas sea aproximadamente igual al tiempo de ejecución de cálculo de características iguales. Variante del Algoritmo AdaBoost El algoritmo de aprendizaje de Viola-Jones es el siguiente: Se tienen T hipótesis, cada una es construida usando una característica sencilla. La hipótesis final es una combinación lineal ponderada de las T hipótesis donde las ponderaciones son inversamente proporcionales a los errores de entrenamiento.[21]

Dadas unas imágenes ejemplo (𝑥1, 𝑦1),…, (𝑥𝑛, 𝑦𝑛) en donde 𝑦𝑖 = 0,1, para ejemplos positivos y negativos respectivamente.

Se inicializan los pesos 𝑤1,𝑖 =1

2𝑚 ,1

2𝑙, para 𝑦𝑖 = 0, 1 respectivamente, donde

𝑚 y 𝑙 son el número de positivos y negativos.

Ahora se normalizan las ponderaciones o pesos como se ve en (35)

𝜔𝑡,𝑖 =𝜔𝑡,𝑖

∑ 𝜔𝑡,𝑗𝑛𝑗=1

(35)

Seleccionar el mejor clasificador débil con respecto al error ponderado. En (36) se muestra la ecuación correspondiente a este paso.

∈𝑡= 𝑚𝑖𝑛𝑓,𝑝,𝜃 ∑ 𝜔𝑖|ℎ(𝑥𝑖, 𝑓, 𝑝, 𝜃) − 𝑦𝑖|𝑖 (36)

Definir ℎ𝑡(𝑥) = ℎ(𝑥, 𝑓𝑡 , 𝑝𝑡, 𝜃𝑡) donde 𝑓𝑡 , 𝑝𝑡, 𝜃𝑡minimizan ∈𝑡

Actualizar los pesos, según se muestra en (37)

Page 31: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

31

𝜔𝑡+1,𝑖 = 𝜔𝑡,𝑖𝛽𝑡1−𝑒𝑖 (37)

Donde 𝑒𝑖 = 0 si el ejemplo 𝑥𝑖 es clasificado correctamente, 𝑒𝑖 = 1 en otro caso, y 𝛽𝑡 se enuncia en (38):

𝛽𝑡 =∈𝑡

1 −∈𝑡 (38)

El clasificador final fuerte se muestra en (37) y (38):

𝐶(𝑥) = {1, ∑ 𝛼𝑡ℎ𝑡(𝑥) ≥

1

2∑ 𝛼𝑡𝑇𝑡=1

𝑇𝑡=1

0, 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜 (39)

Dónde:

𝛼𝑡 = 𝑙𝑜𝑔1

𝛽𝑡 (40)

Mientras que AdaBoost utiliza una gran cantidad de clasificadores débiles, Viola-Jones se enfoca en la elección de los mejores clasificadores débiles entre los mismos, disminuyendo la cantidad implementada[21].

RECONOCIMIENTO FACIAL MEDIANTE EIGENFACES Este tipo de reconocimiento está basado en el Análisis de Componentes Principales (PCA), el cual es uno de los métodos más atractivos y eficientes, debido a su facilidad de implementación y el bajo coste computacional, permitiendo que el sistema sea de tiempo real.[2][6]

El primer paso es obtener un conjunto 𝑆 con 𝑀 imágenes de rostros de tamaño

𝑁 𝑥 𝑁. Cada imagen se transforma en un vector de tamaño 𝑁2 y se ingresa en el conjunto. Como se ve en (41).

𝑆 = {𝛤1, 𝛤2, 𝛤3, … 𝛤𝑀} (41) Después de tener el conjunto de imágenes, se debe calcular el promedio de las imágenes con la ecuación que se muestra en (42).

Page 32: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

32

Ѱ =1

𝑀∑𝛤𝑛

𝑀

𝑛=1

(42)

En la figura 15 se muestra un ejemplo de la imagen promedio obtenida de un conjunto de rostros.

Figura 15. Ejemplo de una Imagen Promedio. Fuente [29]

Obtenida la imagen promedio, se calcula la diferencia 𝛷 entre la imagen de entrada y la imagen promedio, como se muestra en (43)

𝛷𝑖 = 𝛤𝑖 −Ѱ (43) Este set de imágenes se somete entonces al análisis de componentes principales,

el cual busca un conjunto ortonormal de vectores 𝑢𝑛 y sus valores propios

(eigenvalores) 𝜆𝑘 los cuales describen de mejor manera la distribución de los datos.

Los vectores 𝑢𝑘 y los escalares 𝜆𝑘, corresponden a los vectores propios y valores propios respectivamente, de la matriz de covarianza[6]. Esta se muestra en (44) y (45).

𝐶 =1

𝑀∑𝛷𝑛𝛷𝑛

𝑇

𝑀

𝑛=1

(44)

Page 33: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

33

𝐶 = 𝐴𝐴𝑇 (45)

Donde la matriz 𝐴 se corresponde a (46)

𝐴 = [𝛷1 𝛷2 𝛷3… 𝛷𝑀] (46)

Sin embargo la matriz 𝐶, tiene una dimensión de 𝑁2 por 𝑁2 y determinar los 𝑁2 vectores propios y valores propios se convierte en una operación complicada para los tamaños de una imagen convencional. Es necesaria una forma realizable de encontrar los vectores propios. Es posible entonces, encontrar dichos vectores, en principio resolviendo una matriz

de dimensión 𝑀 𝑥 𝑀 y tomando luego combinaciones lineales apropiadas de las

imágenes 𝛷𝑖 , considerando los vectores propios 𝑣𝑖 de 𝐴𝐴𝑇 como (47).

𝐴𝐴𝑇𝑣𝑖 = 𝜇 𝑖𝑣𝑖 (47)

Multiplicando a ambos lados por 𝐴 se obtiene (48)

𝐴𝐴𝐴𝑇𝑣𝑖 = 𝜇 𝑖𝐴𝑣𝑖 (48)

A partir de los cuales se ve que 𝐴𝑣𝑖 son los vectores propios de (45)

Continuando el análisis, se construye la matriz 𝐿 de dimensión 𝑀 𝑥 𝑀 como se ve en (49)

𝐿 = 𝐴𝐴𝑇 (49)

Donde (50)

𝐿𝑚𝑛 = 𝛷𝑚𝛷𝑛𝑇 (50)

Y se buscan los 𝑀 vectores propios, 𝑣𝑙 de 𝐿. Estos vectores determinan las

combinaciones lineales del conjunto de imágenes de entrenamiento 𝑀 para formar las Eigenfaces 𝑢𝑙 (51).

𝑢𝑙 =∑𝑣𝑙𝑘𝛷𝑘

𝑀

𝑘=1

𝑙 = 1,… ,𝑀 (51)

Con este análisis se produce una reducción de las operaciones desde 𝑁2 hasta la cantidad de imágenes de entrenamiento 𝑀.

Page 34: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

34

Ahora, se mostrará la forma en la cual se clasifica una imagen utilizando Eigenfaces.

Se tiene una imagen de entrada 𝛤, la cual es transformada a sus componentes eigenfaces con una operación simple mostrada en (52)

𝜔𝑘 = 𝑢𝑘𝑇(𝛤 − Ѱ) 𝑝𝑎𝑟𝑎 𝑘 = 1,2, … ,𝑀′ (52)

Donde 𝑀′ corresponde a los vectores propios significativos dentro de la matriz 𝐿, los cuales se escogen de manera que tengan los valores propios asociados más

grandes. Según [6] en muchas de las pruebas realizadas con 𝑀 = 16 imágenes de rostros, 𝑀′ = 7 . (52), describe un conjunto de multiplicaciones y sumas de los

pixeles de la imagen. Estos 𝜔𝑘, forman un vector que describe el peso de cada eigenface en representación de la imagen de entrada, tomando las eigenfaces como un conjunto base para las imágenes faciales. El vector formado se puede ver en (53).

𝛺𝑇 = [𝜔1, 𝜔2, 𝜔3, … , 𝜔𝑀′ ] (53) El vector debe ser usado entonces, como un algoritmo de reconocimiento de patrones estándar para encontrar cual entre un número de clases de caras predefinidas, si la hay, describe de mejor forma la cara de entrada. El método más simple pata determinar cuál es la categoría de rostro que proporciona la mejor descripción de la imagen de entrada, es encontrando la categoría que minimice la distancia Euclidiana [6]como se muestra en (54).

𝜀𝑘2 = ‖𝛺 − 𝛺𝑘‖

2 (54)

Donde 𝛺𝑘 es un vector describiendo la categoría 𝑘. Dichas categorías 𝛺𝑖 se calculan promediando los resultados de la representación en eigenfaces sobre un número pequeño de imágenes faciales (puede ser una) de cada individuo. La cara se

clasifica en la categoría 𝑘 cuando el minimo 𝜀𝑘 esta por debajo de un umbral 𝜃𝜀. De otra forma la cara es clasificada como desconocida[6].

Page 35: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

35

DESCRIPCIÓN DEL HARDWARE Y SOFTWARE UTILIZADO

En esta sección se detallara cada uno de los bloques en los que se divide el sistema

de reconocimiento facial implementado, así como los dispositivos utilizados en cada

etapa.

ADQUISICIÓN DE LA IMAGEN

Cámara Pi NoIR Al orientar reconocimiento facial a controles de acceso, este debe ser capaz de captar las imágenes faciales aun en condiciones de poca iluminación. Por tal razón se decidió utilizar el módulo de cámara Pi NoIR. Este se compone de un sensor de 5 megapíxeles (2592 x 1944 píxeles) con un sistema de enfoque fijo. Esta cámara posee todas las características del módulo regular, exceptuando el filtro infrarrojo, haciendo que las imágenes tomadas en condiciones de baja luminosidad sean de mayor calidad y permitiendo utilizar lámparas infrarrojas para tomar fotografías en la oscuridad. En la figura 16 se muestra la cámara utilizada.

Figura 16. Módulo Cámara Raspberry Pi NoIR. Fuente [30]

PRE-PROCESAMIENTO Y EJECUCIÓN DEL RECONOCIMIENTO

Raspberry Pi 2 Como se indicó en la sección de sistemas biométricos, es necesario realizar un pre-procesamiento a la imagen, así mismo la implementación de los algoritmos se

Page 36: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

36

extracción y reconocimiento de rostro. Para ello se empleó como sistema embebido de procesamiento la plataforma Raspberry Pi 2 Modelo B. Cuya capacidad de procesamiento según la fundación Raspberry, llega a ser hasta 6 veces mayor a su antecesora.

Figura 17. Raspberry Pi 2 Modelo B. Fuente [30]

Este sistema es capaz de adquirir imágenes de la cámara mediante la conexión dedicada CSI (Camera Serial Interface), cuya principal ventaja es la conexión directa entre procesador y sensor, haciendo que se agilice la adquisición de la imagen por parte del procesador. Al poseer una arquitectura ARMv7, es capaz de ejecutar distribuciones ARM/GNU Linux, entre las que se encuentra Raspbian, un sistema operativo basado en Debian, optimizado para la Raspberry Pi.

Pre-procesamiento de la imagen Al adquirir la imagen, es necesario realizar un acondicionamiento de esta, para así ejecutar el reconocimiento, y debido a que se debe trabajar con imágenes en escala de grises se realiza una conversión de la imagen a dicho formato. Un ejemplo de esta conversión se muestra en la figura 19. RGB a escala de grises La transformación utilizada para convertir la imagen en formato RGB a Escala de grises se muestra en (55).

Page 37: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

37

Figura 18. Cambio de imagen RGB a escala de grises. Fuente [31]

𝑓(𝑥, 𝑦) = 0.299 ∗ 𝑅 + 0.587 ∗ 𝐺 + 0.114 ∗ 𝐵 (55) Donde R (Red), G (Green) y B (Blue) son los valores de los píxeles en cada uno de los tres planos de color y 𝑓(𝑥, 𝑦) es el valor del pixel en escala de grises.

Python La evidente interacción entre cámara y sistema operativo dentro de la implementación del reconocimiento facial, hace necesario el desarrollo de la programación en un lenguaje que permita el manejo de dispositivos externos. Para ello se usó Python, un lenguaje de programación nativo incluido en las distribuciones de Linux, el cual permite manipular datos de hardware externo a sin ningún problema. Incluye una librería dedicada a la Raspberry Camera, con la cual la adquisición de las imágenes se hace de manera sencilla, almacenándose dentro de una variable tipo matriz.

OpenCV Para ejecutar los algoritmos de detección y reconocimiento se utilizó la librería OpenCV (Open Source Computer Vision), además de implementar los respectivos pasos intermedios entre operaciones de imágenes. La estructura básica de OpenCV de divide en bibliotecas, como se muestra en la figura 19.

CXCORE, donde se encuentran las estructuras y algoritmos básicos que usan las demás funciones.

CV. Allí están las funciones principales de procesamiento de imágenes y algoritmos de visión artificial.

HighGUI contiene todo lo relacionado a la interfaz gráfica de OpenCV.

ML, cuenta con algoritmos de aprendizaje, clasificadores y herramientas de Clustering.

Page 38: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

38

Figura 19. Estructura básica de OpenCV. Fuente: [32]

Page 39: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

39

PRUEBAS Y RESULTADOS Luego de realizar la investigación y se continuó con la implementación al interior de la plataforma embebida, se realizó el entrenamiento de los algoritmos de detección y reconocimiento facial, simultáneamente se efectuaron pruebas para verificar el correcto funcionamiento del sistema. En la figura 20, se muestra el diagrama de flujo del sistema implementado.

ETAPA DE DETECCIÓN Inicialmente se generó un conjunto de entrenamiento con imágenes que contenían rostros e imágenes que no contenían rostros, ya que el algoritmo de Viola-Jones exige imágenes positivas y negativas de detección. El set de imágenes positivas se tomó de la base de datos de rostros de AT&T la cual se puede descargar desde [33]. Las muestras negativas corresponden a imágenes arbitrarias y también del fondo en donde se desea ejecutar la detección de rostros. Para comenzar el entrenamiento del algoritmo de debe ejecutar la siguiente línea de código en el LXTerminal de la Raspberry pi.

opencv_createsamples -img /home/user/logo.png -bg /home/user/bg.txt -info /home/user/annotations.lst -pngoutput -maxxangle 0.1 -maxyangle 0.1 -maxzangle 0.1

En donde se incluyen archivos de texto con las rutas o direcciones de las muestras positivas y negativas para el entrenamiento. Dicho comando, acondiciona las muestras que el entrenamiento de la cascada se elabore de manera correcta. Luego de esto, se debe hacer el entrenamiento de las cascadas, dicho entrenamiento se realiza con la siguiente línea de código: opencv_traincascade -data "data" -vec "samples.vec" -bg "out_negatives.dat" -numPos 26000 -numNeg 4100 -numStages 16 -featureType HAAR -w 20 -h 20 -bt GAB -minHitRate 0.995 -maxFalseAlarmRate 0.3 -weightTrimRate 0.95 -maxDepth 1 -maxWeakCount 100 -maxCatCount 256 -featSize 1 En el cual se entrenan las cascadas, se escoge el tipo de algoritmo a utilizar y el número de etapas que tiene el clasificador. Al final se obtiene un archivo .xml que se utilizará al interior de Python hacer la detección. El archivo .xml tiene arquitectura que se muestra en la figura 21.

Page 40: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

40

Figura 20. Diagrama de flujo de la Programación. Fuente: Autor

Page 41: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

41

Figura 21. Clasificador Haar. Fuente: Autor

Después de esta etapa, gracias a la librería cv2 en Python se realizaron los test de detección de rostros en la imagen obtenida. En Python se creó una variable tipo clasificador mediante la instrucción caras=cv2.CascadeClassifier(‘clasificador.xml’), en donde clasificador.xml es el clasificador entrenado anteriormente y caras es el nombre que se utilizara más adelante para llamar al clasificador. Es importante mencionar que se trabaja con imágenes en escala de grises, por lo que es necesario hacer una transformación de la imagen obtenida a este espacio antes de que sea clasificada la imagen con o sin rostros. Luego de esto, se realiza la detección del rostro utilizando la instrucción face=caras.detectMultiscale(imagen_grises, escala de la imagen, Minimo_vecinos), en la cual el primer ítem es la imagen a procesar, el segundo es la escala de la imagen con la que se va a trabajar y el tercero es el número mínimo de vecinos de cada rectángulo para que este sea retenido, es decir para clasificar o no un rostro dentro de la imagen. Es posible también discriminar el tamaño de los rostros por pixeles, sin embargo esta característica no se utilizó en el desarrollo del proyecto.

La variable face será entonces, un vector de 𝑛 𝑥 4 en donde 𝑛 es el número de rostros detectados al interior de la imagen y las cuatro columnas corresponderán a (𝑥, 𝑦, 𝑤, ℎ) con 𝑥 y 𝑦 como las coordenadas de la esquina superior izquierda del

rectangulo que encierra el rostro, y 𝑤 y ℎ el ancho y el alto de dicho rectángulo

Page 42: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

42

respectivamente. Con esto ya es posible dibujar un rectángulo en cada uno de los rostros sobre la imagen como se muestra en las figuras 22 a la 25.

Figura 22. Detección facial individuo 1. Fuente: Autor

Figura 23. Detección facial individuo 2. Fuente: Autor

Page 43: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

43

Figura 24. Detección facial individuo 3. Fuente: Autor

Incluso al abrir una imagen en un celular, el algoritmo se comporta perfectamente, detectando un rostro. Esto se puede ver en la figura 25.

Figura 25. Detección facial individuo 4. Fuente: Autor

Page 44: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

44

Sin embargo, debido a que el entrenamiento no se ejecutó con imágenes de perfil, el algoritmo no detecta rostros de costado como se evidencia en las figuras 26 y 27.

Figura 26. Detección fallida individuo de perfil. Fuente: Autor

Figura 27. Detección fallida individuo de perfil. Fuente: Autor

Page 45: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

45

En la tabla 1 se muestran los datos obtenidos de caras detectadas en conjunto de imágenes. Dichas imágenes tienen un tamaño de 640X480 pixeles

Cantidad Cara detectadas

Imágenes positivas(con rostros)

200 188

Imágenes Negativas (sin Rostros)

200 0

Tabla 1. Datos obtenidos de detección de Rostros. Fuente: Autor

Analizando la tabla anterior, se puede señalar que el porcentaje de error cuando en la imagen hay rostros es del 6%, mientras que cuando son negativas el error es del 0% en las muestras. Dicho error del 6% corresponde a movimientos en los que el rostro en la imagen se encuentra de perfil y cuando este no se encuadra completamente en la escena. Como anexo en la tabla 2 se pueden ver los tiempos de ejecución del algoritmo para detectar un rostro en la imagen. Esta prueba se hizo en tiempo real obteniendo un promedio de 0,18 segundos para detectar un rostro en la imagen. Las imágenes tienen las mismas dimensiones que en la prueba anterior

ETAPA DE RECONOCIMIENTO Al igual que la etapa anterior, la fase de reconocimiento debe contener un entrenamiento, sin embargo este debe ser más específico ya que lo que se busca es reconocer a la persona. Para este entrenamiento también se recurrió a la base de datos de AT&T cuyas imágenes son específicas para reconocimiento, ya que incluyen distintas posiciones de cámara el iluminación, incluyo algunas de ellas tienen cambios en las características del rostro del individuo, incluyendo accesorios como lentes. Inicialmente, para comodidad del desarrollo, se generó un archivo con extensión .csv, el cual contiene la siguiente estructura: /ruta_imagen/7.pgm; 0, en donde el número 0, corresponde al número del sujeto al que pertenece la imagen. El archivo.csv contiene todas las rutas de la base de datos de aprendizaje la cual es extraída y guardada en una matriz de datos al interior de Python. Se tomaron 9 sujetos de prueba, 8 de at&t y el jurado asignado a este proyecto; cada uno de estos contiene 9 imágenes capturadas en distintas condiciones. En la figura 26 se muestra el archivo utilizado imágenes_1.csv.

Page 46: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

46

Figura 28. Archivo utilizado para el aprendizaje. Fuente: Autor

Luego de tener el archivo para la lectura de las imágenes; se debe crear al interior del programa un modelo Eigenfaces mediante el código modelo=cv2.createEigenfaceRecognizer(número de eigenfaces, umbral de decisión). Con esto se crea únicamente un modelo, mas no se hace el entrenamiento de este. Luego de esto, y como se vio en el marco de referencia, las imágenes deben ser convertidas a vectores y ser guardadas en una matriz para realizar el calculo de los eigenvalores y los eigenvectores. Con la instrucción modelo.train(matriz,labels), se entrena el reconocimiento generando los eigenvectores y eigenvalores, asi como las eigenfaces, con matriz siendo el onjunto de vectores imagen, y labels el sujeto al que corresponde cada imagen. En la figura 30 se ven las eigenfaces generadas al entrenar.

Page 47: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

47

Figura 29. Eigenfaces creadas en el Entrenamiento. Fuente: Autor

A continuación en la figura 31 se mostrara una prueba realizada a una imagen contenida dentro de la base de datos, concretamente a /home/pi/Desktop/att/s23/7.pgm; 0 correspondiente al individuo 0. Observando la imagen, se evidencian 2 números dentro de la consola de Raspbian: 81, 0.0. El primero corresponde a la cantidad de imágenes dentro de la base de datos, el segundo corresponde a la distancia euclidiana entre la imagen a reconocer y la base de datos, siendo 0.0 en consecuencia a que dicha imagen se encuentra en la base de datos.

Page 48: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

48

Figura 30. Test de Reconocimiento sujeto 0. Fuente: Autor

En la figura 32 se observa la prueba con la imagen /home/pi/Desktop/att/s23/5.pgm; 0 correspondiente al individuo 0.

Figura 31. Test de Reconocimiento sujeto 0, imagen no contenida en la base de datos. Fuente: Autor

Page 49: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

49

Al igual que con la imagen contenida en el set, se detecta el sujeto 0, sin embargo la distancia euclidiana aumenta hasta 1076.72. Ahora se evidenciará que con una imagen que no se encuentra en la base de datos ni pertenece a los sujetos contenidos dentro de esta el reconocimiento es nulo. Esto se verá a continuación en la figura 28. La imagen fue la siguiente /home/pi/Desktop/att/s10/9.pgm

Figura 32. Test de Reconocimiento imagen no contenida en la base de datos. Fuente: Autor

Se muestra sujeto -1 correspondiendo a un sujeto desconocido que no se encuentra dentro de la base de datos. Ahora se mostrará el reconocimiento en imágenes del jurado de este proyecto, de las cuales 9 se encuentran en la base de datos, sin embargo fueron tomadas 22 imágenes para realizar las correspondientes pruebas. En la figura 33 se muestra el reconocimiento con una imagen encontrada en la base del entrenamiento, mientras que en la 34 el reconocimiento con una imagen del sujeto pero no contenida en la base.

Page 50: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

50

Figura 33. Imagen de la Base de Datos. Fuente: Autor

Figura 34. Imagen fuera de la Base de Datos. Fuente: Autor

Page 51: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

51

En la figura 35 se muestra la imagen promedio de la base de datos, necesaria para la proyección de las Eigenfaces.

Figura 35.

Figura 35. Imagen Promedio de la Base de Datos. Fuente: Autor

Page 52: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

52

CONCLUSIONES Cuando se implementan sistemas de procesamiento de imágenes al interior de plataformas embebidas, se logra obtener mayor versatilidad y menor costo en el desarrollo de distintas problemáticas. Dicho esto se puede afirmar que se obtuvo una aplicación la cual se orienta principalmente a los sistemas de seguridad, capaz de detectar y reconocer los rostros de individuos contenidos en un repositorio de imágenes. Durante las pruebas que se realizaron del algoritmo de Viola-Jones se obtuvo que un 94% de las imágenes con rostros fueron detectadas, mientras que el 100% de las imágenes que no contenían rostros fueron rechazadas completamente por el clasificador. En consecuencia, este algoritmo es una técnica excelente a la hora de detectar un rostro al interior de una imagen. Además de esto como se evidencio en los resultados, el algoritmo es lo bastante rápido, con un tiempo promedio de detección de 0,18 segundos aproximados, dando la posibilidad de implementar este en sistemas de tiempo real. Una de las ventajas de los sistemas de procesamiento digital de imagen radica en que se basan en plataformas programables por lo que se puede depurar errores de manera sencilla y rápida para así mejorar u optimizar las funcionalidades de la aplicación. El hardware utilizado representa una opción a bajo costo, con una gran comunidad de desarrolladores para esta, además de que combina módulos GPIO sencillos y puertos dedicados directamente programables en el sistema operativo permitiendo interactuar con una gran cantidad de dispositivos externos como pantallas, sensores, dispositivos de almacenamiento y actuadores. Al controlar las condiciones en las cuales se adquieren las imágenes de entrenamiento, se obtienen resultados satisfactorios; por lo cual es recomendable realizar la toma de las muestras en el mismo lugar en donde se encuentra el sistema de reconocimiento.

Page 53: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

53

REFERENCIAS

[1] M. Ruiz, J. Rodriguez, and J. C. Olivares, “Una mirada a la biometría,” Rev. Av. en Sist. e Inform., vol. 6, no. 2, pp. 29–38, 2009.

[2] A. A. Vivas, “Desarrollo de un sistema de reconocimiento facial.”

[3] A. Miguel and D. Rodríguez, “Extracción automática de caras en imágenes captadas con móviles Android,” 2012.

[4] D. O. Gorodnichy, “Video-based framework for face recognition in video,” pp. 1–9.

[5] H. A. Fuentes, “imagen facial Recognition systems based on the facial image,” vol. 8, pp. 7–15, 2011.

[6] M. Turk and A. Pentland, “Eigenface for Recognition,” J. Cogn. Neurosci., vol. 3, no. 1, pp. 71–86, 1991.

[7] J. Li, G. Poulton, Y. Guo, and R. Qiao, “Face Recognition Based on Multiple Region Features,” pp. 10–12, 2003.

[8] R. Gottumukkal and V. K. Asari, “System level design of real time face recognition architecture based on composite PCA,” Proc. 13th ACM Gt. Lakes Symp. VLSI - GLSVLSI ’03, p. 157, 2003.

[9] N. Morizet, F. Amiel, I. D. Hamed, and T. Ea, “A Comparative Implementation of PCA Face Recognition Algorithm,” 2007 14th IEEE Int. Conf. Electron. Circuits Syst., no. 2, pp. 865–868, Dec. 2007.

[10] A. Y. Yang, J. Wright, S. Member, Y. Ma, S. Member, and S. S. Sastry, “Feature Selection in Face Recognition : A Sparse Representation Perspective,” no. August, pp. 1–34, 2007.

[11] C. Nastar, M. Mitschke, and L. C. Cedex, “Real-Time Face Recognition Using Feature Combination Figure 1 . Finding the person ’ s silhouette using P nder .,” pp. 1–6.

[12] F. Zuo and P. H. N. De Withi, “Real-time Face Recognition for Smart Home Applications,” vol. 3, pp. 35–36.

Page 54: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

54

[13] S. A. Nazeer, N. Omar, and M. Khalid, “Face Recognition System using Artificial Neural Networks Approach,” 2007 Int. Conf. Signal Process. Commun. Netw., pp. 420–425, Feb. 2007.

[14] J. Lu, X. Yuan, T. Yahagi, and S. Member, “A Method of Face Recognition Based on Fuzzy c-Means Clustering and Associated Sub-NNs,” vol. 18, no. 1, pp. 150–160, 2007.

[15] G. Günlü, “Improving DSP Performance for Artificial Neural Networks Based Face Recognition,” pp. 2–7, 2005.

[16] M. S. Bartlett, J. R. Movellan, and T. J. Sejnowski, “Component Analysis,” vol. 13, no. 6, pp. 1450–1464, 2002.

[17] A. William, A. Damian, and F. Andrés, “TÉCNICAS DE EXTRACCIÓN DE CARACTERÍSTICAS EN IMÁGENES PARA EL RECONOCIMIENTO DE EXPRESIONES FACIALES,” 2008.

[18] J. M. Gilbert and W. Yang, “A Real-Time Face Recognition System Using Custom VLSI Hardware,” no. 617, pp. 58–66, 1993.

[19] C. Li and A. Barreto, “AN INTEGRATED 3D FACE-EXPRESSION RECOGNITION APPROACH,” pp. 1132–1135, 2006.

[20] A. U. Batur, B. E. Flinchbaugh, M. H. H. Iil, G. Inst, and O. Technology, “A DSP-BASED APPROACH FOR THE IMPLEMENTATION OF FACE RECOGNITION ALGORITHMS Texas Instruments,” pp. 253–256, 2003.

[21] P. Viola and M. J. Jones, “Robust Real-Time Face Detection,” vol. 57, no. 2, pp. 137–154, 2004.

[22] S. Kar, S. Hiremath, D. G. Joshi, V. K. Chadda, and A. Bajpai, “A Multi-Algorithmic Face Recognition System,” 2006 Int. Conf. Adv. Comput. Commun., pp. 321–326, Dec. 2006.

[23] S. Liao, A. K. Jain, and S. Z. Li, “Unconstrained Face Detection,” pp. 1–14.

[24] J. S. Dunn and F. Podio, “, The Biometric Consortium,” http://www.biometrics.org, 2009. .

[25] J. E. Ríos, “Reconocimiento facial en tiempo real,” 2013.

Page 55: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

55

[26] M.-H. Yang, D. J. Kriegman, and N. Ahuja, “Detecting Faces In Image : A Survey,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 24, no. 1, pp. 34–58, 2002.

[27] P. Faundez and A. Fuentes, “Procesamiento Digital de Señales Acústicas utilizando Wavelets.”

[28] J. Cordova, “Modelado de Series en Tiempo vía Redes Neuronales Wavelet de Haar,” 2012.

[29] S. Serrano, “Eigenface Tutorial,” http://www.pages.drexel.edu/~sis26/Eigenface%20Tutorial.htm, 2010. .

[30] Electronilab. "Cámara Pi NoIR Infrarroja Raspberry Pi" http://electronilab.co/tienda/camara-pi-noir-infrarroja-raspberry-pi/

[31] Inkscape: Guide to a Vector Drawing Program,http://tavmjong.free.fr/INKSCAPE/MANUAL/html_es/Extensions-Color.html

[32] G. Bradski and A. Kaehler, Learning OpenCV: Computer Vision with the OpenCV Library, vol. 1. 2008, p. 555

[33] AT&T " The Database of Faces "http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html

Page 56: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

56

ANEXOS

Tabla 2. Tiempos de Detección en imágenes que contienen Rostros

Muestra Positiva (imagen

Facial) Tiempo (s)

1 0,181033135

2 0,204460859

3 0,225909948

4 0,205593824

5 0,207441092

6 0,206315041

7 0,201406956

8 0,227529049

9 0,212543964

10 0,226692915

11 0,206330061

12 0,201519966

13 0,212565899

14 0,208988905

15 0,19470501

16 0,19652009

17 0,209335089

18 0,206588984

19 0,194593906

20 0,213836193

21 0,199702978

22 0,217770815

23 0,218871832

24 0,22556901

25 0,223264933

26 0,204888105

27 0,226866961

28 0,215950966

29 0,214741945

30 0,240242004

31 0,241487026

32 0,22269392

33 0,230304956

34 0,210577965

35 0,219570875

36 0,213141918

37 0,219254017

38 0,226004839

39 0,205537081

40 0,209329128

41 0,204277039

42 0,201290131

43 0,196572065

44 0,19514513

45 0,188803196

46 0,180069923

47 0,191651821

48 0,213438988

49 0,220628977

50 0,221047163

51 0,211257935

52 0,213328123

53 0,210748911

54 0,218719006

55 0,231929064

56 0,232277155

57 0,219352961

58 0,211884022

59 0,248275042

60 0,236813068

61 0,216273069

62 0,235720873

63 0,258161068

64 0,258625031

65 0,185471058

66 0,110199928

67 0,138757944

68 0,137573004

69 0,147580862

70 0,150441885

71 0,13786006

72 0,151249886

73 0,140754938

Page 57: RECONOCIMIENTO DE IMÁGENES FACIALES ...repository.udistrital.edu.co/bitstream/11349/7359/1/...8 INTRODUCCIÓN La detección facial es una técnica utilizada para ubicar al interior

57

74 0,146766901

75 0,153455019

76 0,157730103

77 0,146884918

78 0,157830954

79 0,150148153

80 0,147086859

81 0,154848099

82 0,150182962

83 0,147173166

84 0,162711144

85 0,160103083

86 0,144181013

87 0,147840977

88 0,153850079

89 0,153188944

90 0,148139954

91 0,150832892

92 0,160219908

93 0,153620005

94 0,169684887

95 0,16343689

96 0,151363134

97 0,153160095

98 0,149996042

99 0,152576923

100 0,147723913

101 0,153218031

102 0,157860041

103 0,160722971

104 0,159265041

105 0,158849001

106 0,161311865

107 0,146219969

108 0,157369852

109 0,150613785

110 0,139367819

111 0,142254114

112 0,145929098

113 0,141363859

114 0,192188025

115 0,135236025

116 0,149857044

117 0,143996954

118 0,150357008

119 0,149202108

120 0,148293018

121 0,143163204

122 0,14506197

123 0,150339127

124 0,199530125

125 0,144145012

126 0,160365105

127 0,142307997

128 0,145007849

129 0,142800093

130 0,149418116

131 0,147973061

132 0,150080919

133 0,155851126

134 0,154868126

135 0,14969492

136 0,165572166

137 0,140025139

138 0,155844212

139 0,148648977

140 0,150027037

141 0,144705057

142 0,147585869

143 0,14944005

144 0,162197828

145 0,148003101

146 0,160375118

147 0,149167061