INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD PROFESIONAL “ADOLFO LÓPEZ MATEOS”
“RECONOCIMIENTO DE ROSTROS UTILIZANDO
HISTOGRAMAS SECUENCIALES DE IMAGEN”
TESIS
QUE PARA OBTENER EL TÍTULO DE:
Ingeniero en Comunicaciones y Electrónica
P R E S E N T A N:
Hernández Camargo José Angel
Michel Uribe Andrés
ASESORES:
Ing. Armando Mancilla León
Ing. Felipe Durán Federico
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA
UNIDAD PROFESIONAL "ADOLFO LÓPEZ MATEOS'
TEMA DE TESIS
Q U f , P A R A O B T E N s R E L T I T I J L O D E P O R L A O P C I Ó N D E T I T U L A C I Ó N D f , B E R A I N ) D E S A R R O L L A R
INGENIERO EN COMUNICACIONES Y EITCTRÓNICA TESIS COLECTWAY EXAMEN ORAL INDIVIDUAI-C.- JOSÉ ANGEL HERNANDEZ CAMARGo
C.- ANDRES MICHEL URIBE
"RECONOCIMIENTO DE ROSTROS I,"TILIZANDO HISTOGRAMAS SECUENCIALES DE IMAGEN"
IMPLEMENTAR UN AIGORITMO CAPAZ DE IDENTIFICAR ROSTROS UTILIZANDO HISTOGRAMAS SECUENCTALES DE IMAGEN.
> IMPLEMENTAR EL AI-GORITMO BASADO EN I.A TÉCNICA DE HISTOGRAMAS SECUENCIALES DE IMAGEN
> DESARROLLAR t]NA APLICACIÓN PARÁ PROBAR EL FUNCIONAMIENTO DEL AI-GORITMO.
> DESARROLLAR I-INA BASE DE DATOS CON FOTOGRA.FIAS DE DISTINTAS
PERSONAS PARA IDENTIFICACIÓN BIOMETRICA,
> REALIZAR I-IN ETEMPLO DE RECONOCIMIENTO DE R-EGISTRO.
MÉXTCO D.F., 23 DE NOVIEMBRE DE 2009.
A S E S O R E S
PE DUFÁN.
M. EN C. SALVADO IEFE DEL DEPART
i
ii
Agradecimientos.
A mi familia por todo el apoyo brindado durante toda mi vida, especialmente a mi mamá por ser una mujer que siempre ha luchado por nosotros, en quien he encontrado siempre comprensión y apoyo, y que me ha ayudado a ser un mejor hombre.
A Gerardo Cortés, quien siempre me ha brindado su apoyo incondicional y de quien he aprendido mucho, a mi gran amigo Ángel, quien ha sido mi amigo y compañero durante toda la carrera y hemos trabajado juntos todo este tiempo.
A Mariana Martínez, quien me acompañó toda la carrera, me entrego todo su amor, y comprensión y fue parte importante en mi vida.
Al Instituto Politécnico Nacional, todos mis maestros, nuestros asesores y jurados, por ayudarnos a concluir este trabajo de manera exitosa, y por habernos compartido su conocimiento, a todos mis amigos.
Andrés Michel Uribe.
iii
A mi mamá que por todo este tiempo me ha dado su apoyo incondicionalmente para poder lograr llegar hasta este punto de mi vida, por ser el pilar que ha sostenido mi carrera y mis estudios gracias a ella por sacarnos adelante a mí y a mi hermano.
A mi gran amigo Andrés por su ayuda y apoyo durante todo este tiempo, gracias por todos los buenos consejos que me ha dado y que me han sido de mucha ayuda.
Al Instituto Politécnico Nacional por el apoyo económico, por su gran calidad de educación y por todas las enseñanzas que obtuve, las cuales me serán útiles para toda la vida.
A mis asesores y jurado que nos apoyaron durante todo el proceso de realización del proyecto.
iv
Resumen.
Este trabajo aborda el problema de reconocimiento de rostros, tema muy abordado hoy en día por diversas instituciones que se dedican a la investigación de reconocimiento de patrones y formas.
El reconocimiento de rostros es un problema en el que se tienen que analizar diversos factores que influyen en la capacidad de reconocimiento del sistema, tales como pose, iluminación, gesticulación, entre otros, existen métodos ya desarrollados, con una eficiencia alta; sin embargo el objetivo de este trabajo es diseñar e implementar un método que sea capaz de reconocer rostros mediante el uso de histogramas secuenciales de imagen.
El histograma de una imagen es una estadística que muestra la frecuencia acumulada de pixeles de algún color en particular, o bien, de una combinación de diversos colores, en el caso particular del rostro el histograma presenta una distribución multimodal, debido a que las características de cada rostro son muy variantes.
Es necesario aplicar técnicas de segmentación de imágenes para poder aislar el rostro de la fotografía capturada y convertirlo a su respectivo en escala de grises, una vez realizado lo anterior, se procede a obtener el histograma de la imagen, el cual es comparado mediante un método estadístico conocido como distancias de Hamming, para poder hacer uso de histogramas secuenciales de imagen, es necesario comparar una imagen con una secuencia de diversas imágenes previamente almacenadas.
v
Glosario de términos.
Fotografía:
Es el resultado del proceso de capturar imágenes y almacenarlas, proviene del griego phos ("luz"), y grafis ("diseñar", "escribir").
Histograma de imagen:
Es una representación gráfica de una imagen en forma de barras donde la superficie de cada barra es proporcional al número de pixeles que existen en el color representado en el eje horizontal.
Imagen:
Es la proyección de los puntos de la superficie visible de un objeto sobre un plano.
Pixel:
El pixel (del inglés "picture element") es el elemento más pequeño que forma la imagen, en otras palabras son las unidades de color de la imagen digital.
Biometría:
Es la aplicación de técnicas matemáticas y estadísticas sobre los rasgos físicos o de un individuo, para identificarlo.
“Eigenfaces”:
Serie de vectores utilizados en visión por computadora para realizar reconocimiento de rostros.
“JPEG”:
vi “BMP”:
vii
Índice
Agradecimientos……….………ii
Resumen……….………..………….iii
Glosario de términos……….………..………v
Introducción. o Antecedentes……….………1
o Descripción del problema……….………6
o Objetivo……….………7
o Objetivos específicos……….……..7
o Metodología……….………….8
o Justificación……….………9
o Diagrama de Bloques del Sistema……….10
o Alcances y limitaciones……….11
o Hardware y software utilizado………...11
Capítulo 1. Marco Teórico. o 1.1 Análisis y comparación de algoritmos………..13
o 1.2 Etapas para el reconocimiento de patrones……….18
Capítulo 2. Método de histogramas secuenciales para el Reconocimiento de Rostros. o 2.1 Histograma de una imagen………22
o 2.2 Descripción del método de reconocimiento de rostros basado en el uso de histogramas secuenciales de imagen………23
o 2.3 Extracción de características………28
viii
Capítulo 3.Pruebas y resultados.
o 3.1 Descripción de la base de datos………40
o 3.2 Selección de imágenes para la realización de pruebas……….44
o 3.3 Plan de pruebas………...48
o 3.4 Resultados obtenidos………..……….55
Capítulo 4.Análisis de Resultados y Conclusiones. o 4.1 Análisis de resultados………57
o 4.2 Estudio económico……….62
o 4.3 Conclusiones………63
o 4.4 Recomendaciones y trabajo a futuro……….66
Apéndices. A. Instructivo de uso de la aplicación……….69
B. Diseño de clases del sistema………..76
C. Otros métodos de comparación………..95
ix
Índice de figuras.
Figura 1. Gráfica de relación entre FAR y FRR……….………2
Figura 2. Diagrama a bloques de un sistema de reconocimiento……….10
Figura 3. Variaciones fotométricas en iluminación, contraste, y pose………..11
Figura 2.1.1. Histograma RGB de una imagen a color………23
Figura 2.1.2. Histograma de los niveles de gris de una imagen………23
Figura 2.2.1. Esfera de color de Munsell……….25
Figura 2.2.2. Representación bidimensional del modelo de color HSI…………..…25
Figura 2.2.3. Imagen segmentada utilizando análisis de tonalidad….………27
Figura 2.3.1. Variaciones de brillo en fotografías……….31
Figura 2.3.2. Variaciones de contraste en fotografías………..31
Figura 2.3.3. Variaciones de intensidad en fotografías………32
Figura 2.4.1.1. Formulario para ingreso de nuevos usuarios………33
Figura 2.4.1.2. Vista previa de la imagen a capturar………..34
Figura 2.4.1.3. Herramienta de selección de dispositivo de captura……….34
Figura 2.4.1.4. Área de muestra de la captura discriminando elementos circundantes del entorno………..35
Figura 2.4.1.5. Vistas en miniatura de las capturas realizadas………….……….35
Figura 2.4.1.6. Campos de datos de la persona a ingresar……….………..36
Figura 2.4.2.1. Formulario de prueba de algoritmo……….………..36
Figura 2.4.3.1. Formulario para reconocimiento de registro………38
Figura 2.4.3.2. Campo para ingreso de clave……….38
Figura 2.4.3.3. Fotografía capturada de la persona a reconocer……….39
Figura 3.1.1. Sistema de archivos almacenados para una persona……….42
Figura 3.2.1. Imagen en formato bmp de 500 x 383 pixeles………45
Figura 3.2.2. Imagen en formato jpg de 500 x 383 pixeles………45
Figura 3.2.3. Interferencia del fondo al momento de capturar……….46
Figura 3.2.4. Discriminación de los elementos circundantes en el entorno de captura………..………….47
Figura 3.2.5. Interferencia de objetos del entorno nula……….…47
Figura 3.2.6. Imágenes utilizadas en las pruebas………48
Figura 3.3.1. Emulación de la persona presente en una captura nueva y la forma de comparar con las imágenes almacenadas……….49
x
Figura 3.3.3. Inicio de las pruebas personales………50
Figura 3.3.4. La aplicación haciendo pruebas con otra persona después de cierto tiempo………..…..51
Figura 3.3.5.Termino de las pruebas personales………..51
Figura 3.3.6. a),b),c),d)Capturas de la aplicación “Pruebas”………54
Figura 3.4.1. Detalle de resultados en pruebas personales………..55
Figura 3.4.2. Resultados obtenidos en pruebas personales……….55
Figura 3.4.3. Resultados de pruebas generales………..……..56
Figura 4.1.1. Fotografía con mal encuadre y variación de iluminación……….58
Figura 4.1.2. Caso particular de limitante del algoritmo……….59
Figura 4.1.3. Capturas realizadas con mal encuadre……….………60
Figura 4.1.4. Imágenes con histogramas similares……….……62
Figura A-1. Menú de selección de tareas………..…70
Figura A-2. Formulario para ingreso de nuevos usuarios………71
Figura A-3. Formulario de reconocimiento………..74
Figura A-4. Formulario para borrar registros……….74
Figura A-5. Formulario para realizar consultas……….75
Figura B-1. Estructura de las clases del método de reconocimiento………..76
Figura B-2. Estructura de la clase “Imágenes”………77
Figura B-3. Imagen que contiene en su gran mayoría al rostro de una persona………..79
Figura B-4. Resultado del aislamiento aplicando el método “Segmenta”………..79
Figura B-1.4. Estructura de la clase “Histograma”………80
Figura B-1.5. Estructura de la clase “OperHisto”………..82
Figura B-1.6. Estructura de la clase “Metodo”………84
Figura B-2.1. Estructura de la clase “Pruebas”………85
Figura B-3.1. Estructura de las clases de la aplicación de “Ejemplo de reconocimiento de registro”………..…89
Figura B-3.2. Estructura de la clase “Acceso”………90
Figura B-3.3 Estructura de la clase “Nuevo Ingreso”………92
Figura B-3.4. Estructura de la clase “Borrar_Consultar”………92
Figura B-3.5 Estructura de la clase “Device”………93
xi
1
Introducción.
Antecedentes.
Los sistemas de reconocimiento facial son un tipo de sistema de reconocimiento biométrico, el cual se efectúa gracias a un sistema automático basado en técnicas de inteligencia artificial y reconocimiento de patrones, que permite la identificación de una persona a partir de rasgos propios y exclusivos del individuo, a los que se denomina autentificadores.
Es bien sabido que los factores morfológicos de un individuo son mucho más estables que los de comportamiento facial, pues estos varían dependiendo del estado de ánimo, el cual se encuentra en una continua variación.
El procedimiento utilizado para un sistema de reconocimiento biométrico en general está conformado por tres etapas:
• La etapa de entrenamiento o modelado.
• Etapa de almacenamiento del modelo obtenido.
• Etapa de identificación.
En la etapa de entrenamiento o modelado se extraen las características relevantes de la señal de entrada, señal que varía de acuerdo al tipo de sistema de reconocimiento (fotos, video, grabaciones por mencionar algunas señales), la etapa de almacenamiento del modelo obtenido anteriormente, y la fase de identificación donde se realiza el reconocimiento propiamente dicho.
Evidentemente se requiere una base de datos de gran tamaño para realizar el procedimiento anteriormente descrito, así mismo se utilizan en ocasiones algoritmos de diversos niveles de complejidad.
2 Índice de admisión falsa (“FAR”):
Porcentaje de personas que no se encuentran en la base de datos y que son admitidas por el sistema.
Índice de rechazo falso(“FRR”):
Porcentaje de personas no identificadas por el sistema y que se encuentran en la base de datos.
Índice de error(“ERR”):
El “FAR” y el “FRR” responden a factores inversamente proporcionales por lo que variaran en función de las condiciones fijadas por el programa de reconocimiento facial. Entonces, si se desea utilizar un programa en un entorno de máxima seguridad se tratará de conseguir que el “FAR” sea lo más pequeño posible, aunque esto implique automáticamente el incremento drástico del factor “FRR”. Es necesario fijar un umbral que nos permita igualar los dos factores, asegurando de esta forma el óptimo funcionamiento del sistema. Este parámetro es denominado umbral de error, y es el que denominará el alcance del reconocimiento del sistema, la relación descrita puede ser observada gráficamente en la figura 1, donde se muestra la gráfica de “FAR-FRR”.
Figura 1.- Gráfica de relación entre “FAR” y “FRR”.
3
factores como cirugía estética, accidentes, y otros factores de acción prácticamente inmediata, que implican importantes cambios, como por ejemplo el bronceado de una persona, que puede variar significativamente.
Los sistemas de reconocimiento facial están englobados dentro de las técnicas “FRT” (técnicas de reconocimiento facial). Estas técnicas de aproximación al reconocimiento facial pueden clasificarse en dos tipos dependiendo del tipo de aproximación que se emplea que puede ser holística o analítica.
La aproximación holística [1] (método de las “eigenfaces ”) considera las
propiedades globales del patrón, mientras que la analítica evalúa una serie de características geométricas de la cara. Esta última a su vez se divide en el reconocimiento a partir de las líneas obtenidas de perfil y en las obtenidas mediante la vista frontal de la cara.
Antes de la aparición de las computadoras más rápidas y el sofisticado software de procesamiento de imágenes se utilizaron sistemas de reconocimiento facial en dos dimensiones. El problema con este tipo de reconocimiento es que para hacer posible la identificación precisa del individuo se requiere que su rostro se encuentre de frente a la cámara a no más de 35 grados. Además de que aún ligeras diferencias en las expresiones faciales causan una baja precisión al usar ese tipo de sistemas.
Los nuevos sistemas de reconocimiento facial hacen uso de imágenes tridimensionales y son más precisos que sus antecesores, al igual que los sistemas bidimensionales emplean las características de la cara para crear un patrón que le permita reconocerla. No obstante a diferencia de los sistemas bidimensionales pueden reconocer una cara incluso cuando se encuentra a un ángulo de 90° respecto a la cámara.
4
expresiones gestual. Construir esa base de datos requiere mucho tiempo y dinero y aun así surgen problemas debido a la calidad de las fotos.
Existen ahora métodos que permiten que los sistemas sean capaces de realizar el reconocimiento facial a partir de sólo una imagen [1]. Para esto se emplea un algoritmo que mejora el contraste en fotografías subexpuestas o sobreexpuestas. Permitiendo que se puedan reconocer detalles que de otra forma serian imperceptibles, lo cual permite que los sistemas mejoren considerablemente.
También se han desarrollado algoritmos que permiten reconocer expresiones faciales en tiempo real. Esto mediante un sistema que es capaz de procesar una secuencia de imágenes de un rostro de frente y en movimiento, las cuales se pueden procesar en una computadora de escritorio o incluso portátil. Cuando una persona se coloca frente a una cámara conectada al sistema de reconocimiento, se realiza un análisis de hasta 30 imágenes por segundo. El sistema sigue el movimiento del rostro de la persona hasta determinar cual es la expresión de su cara, comparándola con una base de datos que contiene las expresiones realizadas por diversas personas.
El reconocimiento facial tiene una amplia gama de aplicaciones comerciales, gubernamentales y militares, como son el desarrollo de interfases sofisticadas entre las máquinas y las personas, aplicaciones de internet, además de las aplicaciones ya muy extendidas de seguridad en instancias gubernamentales, instituciones financieras, por mencionar algunas.
5
Investigaciones actuales sobre reconocimiento de rostros.
Hoy en día se lleva a cabo una gran cantidad de investigaciones en sistemas de reconocimiento biométrico, muchas de ellas son enfocadas al reconocimiento de voz, iris y huellas digitales, es por eso que actualmente se posee una gran cantidad de avances en este campo.
Una de las compañías que se ha enfocado al estudio de este campo es Mitsubishi Electric, la cual se ha propuesto a revolucionar los sistemas de video vigilancia, utilizando una nueva tecnología que multiplica por 1000 la velocidad actual del procesamiento de imágenes, y es capaz de identificar a una persona de entre 100,000 personas en 1.4 segundos, esta tecnología planea ser enfocada entre otras en seguimiento de pasajeros en puertos, estaciones de ferrocarril y aeropuertos, con fines exclusivos de seguridad.
Lo anterior es logrado a través del uso de dos sistemas complementarios, el primero es denominado “Robust High Speed Pattern Matching”, el segundo es conocido como “Best Appearance Facial Image Selection”.
El reconocimiento de rostros tiene muy pocas aplicaciones fuera de un contexto bien controlado, la mayoría de los métodos utilizados actualmente utilizan por lo general redes neuronales.
6
Descripción del problema.
El reconocimiento de rostros es una tarea que los humanos realizamos rutinariamente sin ningún esfuerzo en nuestra vida diaria; sin embargo no es posible percatarse del complicado proceso que sigue el cerebro humano para poder realizar esta tarea.
El reconocimiento de rostros tiene un gran número de aplicaciones, incluyendo seguridad, verificación de personas, comunicación en internet y entretenimiento computacional. A través de la investigación en el reconocimiento de rostros automatizado ha sido conducido desde la década de los sesentas. Este problema sigue estando sin resolver en su totalidad.
Recientemente se han hecho diferentes progresos debido a los avances en el modelado de rostros y técnicas de análisis. Los sistemas para reconocimiento han sido desarrollados para la detección y seguimiento; sin embargo el reconocimiento confiable de rostros sigue ofreciendo un gran reto para los investigadores en reconocimiento de patrones y visión por computadora.
7
Objetivo.
Se espera de un sistema de reconocimiento facial que identifique caras en imágenes automáticamente.
El objetivo principal del proyecto en particular es crear un sistema de reconocimiento eficiente que permita identificar a una persona.
Objetivos específicos:
• Implementar el algoritmo basado en la técnica de histogramas secuenciales de imagen.
• Desarrollar una aplicación para probar el funcionamiento del algoritmo.
• Desarrollar una base de datos con fotografías de distintas personas para identificación biométrica.
8
Metodología.
Para conseguir la realización de este proyecto se realizó un análisis del problema para comprender de una mejor manera los alcances y limitantes de éste, en base a esto fue posible realizar un análisis de las soluciones existentes, las cuales son muy variadas y con diferentes niveles de complejidad, debido a que es un tema ampliamente abordado por diferentes centros de investigación en el mundo.
Considerando algunas de las soluciones existentes se elaboró una propuesta de solución, la cual fue implementada para poder así realizar pruebas sobre ésta, con esto fue posible comprobar que la propuesta de solución elaborada efectivamente cumplía con los requerimientos de eficiencia planteados en el análisis del problema.
9
Justificación.
Con la creciente necesidad de brindar seguridad a diversos tipos de instalaciones y personas, hoy en día es necesario utilizar sistemas de seguridad basados en reconocimiento biométrico.
El reconocimiento de rostros es uno de los sistemas biométricos utilizados en la actualidad, es por ello que es necesario desarrollar aplicaciones económicas, que consuman pocos recursos y sean versátiles.
La aplicación desarrollada es muy económica de implementar debido a que se utiliza un algoritmo que consume pocos recursos, y no es necesario utilizar un equipo dedicado a la tarea en específico, cabe mencionar que tampoco se requiere que la computadora que se utilice tenga características especiales, con respecto al hardware de captura, puede ser utilizada una cámara con cualquier resolución.
Debido al bajo consumo de recursos del algoritmo, éste puede ser implementado en dispositivos cuyos recursos son limitados como pueden ser:
• DSP’s.
• FPGA’s
• Microprocesadores o microcontroladores.
10
Diagrama a bloques del sistema.
Un sistema de reconocimiento de rostros generalmente consiste de 4 módulos como se muestra en la figura 2:
• Aislamiento.
• Conversión a escala de grises del rostro aislado.
• Extracción de características fotométricas.
• Comparación.
Los sistemas de reconocimiento facial aíslan el rostro del fondo. La alineación del rostro se utiliza para alcanzar una localización más precisa, donde la detección facial provee un estimado de la localización de cada cara detectada. El rostro es normalizado respecto a las propiedades fotométricas como iluminación y escala de grises.
Figura 2. Diagrama a bloques de un sistema de reconocimiento.
Una breve descripción del sistema de reconocimiento previamente mencionado es la siguiente:
El primer paso es obtener una fotografía de la persona a reconocer por el sistema, esa fotografía se convierte en su representación de escala de grises, basados en ésta imagen se procede a extraer sus características fotométricas esenciales, con las características específicas extraídas de la imagen, se realiza una comparación con una base de datos que contiene características específicas de diferentes rostros, dando como resultado la identificación positiva o negativa con un buen grado de confiabilidad.
Aislamiento del rostro
Escala de grises
Extracción de características fotométricas
Comparación
Registros
11
Alcances y limitaciones.
El desempeño de los sistemas de reconocimiento ha mejorado significativamente desde el primer sistema de reconocimiento facial, el cual fue realizado por Takeo Kanade [27]. Actualmente el reconocimiento facial y la extracción de características faciales, pueden ser realizados en tiempo real para imágenes capturadas bajo condiciones o situaciones controladas.
El progreso de reconocimiento facial ha sido motivante, incluso ha pasado a ser una labor difícil, especialmente debido a las variantes en las imágenes, tales como contraste, punto de vista, iluminación, expresión, oclusión, accesorios y algunas otras variantes de consideración, un ejemplo claro de variaciones fotométricas y de pose de un rostro es mostrado en la figura 3.
Figura 3. Variaciones fotométricas en iluminación, contraste, y pose. El reconocimiento de rostros es un problema de reconocimiento visual de patrones donde un rostro como un objeto de 3 dimensiones está sujeto a variaciones en la iluminación, poses y expresiones; sin embargo, éste será identificado a través de una imagen bidimensional.
12
asistencia, aplicaciones multimedia de entretenimiento tales como videojuegos o chat y donde la seguridad no sea un factor crítico.
Hardware y software utilizado.
Hardware.
Se utilizará una computadora con las siguientes características
• 1 GB de memoria RAM.
• Procesador Intel Centrino Duo a 1.77 GHz.
• Disco duro de 80 GB.
Así mismo se utilizará una webcam con 2 Megapixeles de resolución, además de una cámara alternativa de 100 Kilopixeles, esto para poder probar la eficiencia del sistema con diferentes dispositivos de captura de imagen.
Software.
• Entorno de desarrollo integrado Visual Studio 2008.
13
Capítulo 1. Marco Teórico.
1.1.- Análisis y comparación de algoritmos.
Antes de enfocarse en la solución del problema es necesario realizar distintas comparaciones de los algoritmos existentes para determinar cuál de ellos es el más apropiado aplicar a la solución de este problema en particular. Como el nivel de complejidad es bastante alto se tratará de elegir un algoritmo sencillo de implementar o en otro caso diseñar en base a los algoritmos analizados uno que sea confiable y a la vez sencillo de implementar.
En la actualidad existe una gran cantidad de algoritmos muy eficientes pero que son muy complejos por lo que serán sólo una base para comprender mejor al problema.
Para la elección del algoritmo se consideraran tres puntos clave. Una vez que sea implementado el algoritmo se tratará de optimizar al máximo hasta donde sea posible.
Estos puntos en los cuales se centrara la atención son los siguientes:
• Complejidad de implementación.
• Eficiencia.
En el primer punto nuevamente se hace hincapié:
Dado que la complejidad de implementar la solución a este problema es muy alta no se elegirá un algoritmo con características de implementación muy complejas, el elegir un algoritmo de esta naturaleza provocaría retrasos dadas las herramientas de cómputo y de programación con que se cuentan para la implementación de la solución, ya que este es un proyecto orientado a equipos de computo de capacidades estándar.
14
En el trabajo de A. Fernández Caballero et al [10], se describe en primer lugar, un modelo de reconocimiento de rostros humanos, utilizando redes neuronales espacio-temporales (STN). Esta red neuronal incorpora una capa de entrada que se encarga de transformar la imagen de entrada al sistema en una secuencia de vectores normalizados que serán aplicados a una red espacio-temporal.
Finalmente, la red tiene una capa de salida que utiliza unidades “outstar” de Grossberg (1982) [10].
Por otra parte, se presenta la utilización de las redes de contra propagación (“CPN”) para el reconocimiento facial. Básicamente el procedimiento que se sigue es convertir la imagen en un vector de números y pasarlas a la capa de entrada de la red.
Como vectores de entrada probaron vectores de niveles de gris de imágenes y vectores de histogramas por filas de las imágenes.
Después de leer y entender este algoritmo se concluye lo siguiente:
• Complejidad de implementación.
La implementación de un sistema basado en redes neuronales requiere de bastantes recursos de hardware y software, además de un conocimiento profundo del tema.
• Nivel de eficiencia.
En la utilización de redes STN la eficacia fue un poco baja de 16 series de pruebas sólo el 70% fueron reconocidas totalmente.
Con la utilización de redes CPN lograron éxito en más del 86% de las pruebas realizadas.
15
En el trabajo de Stefano Arca et al [13] proponen trabajar con imágenes a color y en escala de grises, localiza el rostro y lo aísla del fondo, también localiza las características faciales, después de esto determina 16 puntos faciales, los caracteriza aplicando una serie de filtros los cuales extraen la textura peculiar de alrededor de estos puntos.
El reconocimiento se realiza midiendo la similitud entre las diferentes texturas.
Una vez que se comprendió este algoritmo se concluye lo siguiente:
• Complejidad de implementación.
Al igual que en el trabajo de Fernández Caballero se requiere un conocimiento profundo del tema.
• Nivel de eficiencia.
Se obtuvo un 93% de confiabilidad, las pruebas se realizaron con 150 imágenes.
Observaciones: Resulta muy interesante el aislamiento del rostro del fondo lo cual nos da una precisión mayor en la identificación ya que no afectan otros elementos.
Rui Liao y Stan Z. Li [14] afirman que cada característica facial está representada por un vector complejo de Gabor y es localizada por una combinación automática de detección de características. Proponen 2 soluciones:
“Two – Layer Nearest Neighbor” (“TLNN”) y “Modular Nearest Feature Line” (“MNFL”), por sus siglas en inglés.
Ambas están basadas en la detección múltiple de características faciales para cada imagen analizada.
16
• Complejidad de implementación.
Se requiere un conocimiento profundo en las áreas de inteligencia artificial y reconocimiento de patrones.
• Nivel de eficiencia.
En las pruebas realizadas con 300 imágenes se obtuvieron los siguientes resultados:
Con TLNN se obtuvo el 93.4% de efectividad y con MNFL el 94.3%
Observaciones: Nuevamente la utilización del histograma es parte básica del algoritmo por lo que se decide que formará parte del algoritmo a implementar.
Elección del algoritmo.
Existe una gran cantidad de algoritmos orientados al reconocimiento de rostros, algunos de ellos son variaciones de los algoritmos explicados, otros son de un grado de complejidad mucho mayor a los presentados aquí, por lo que no se mencionarán.
Una vez analizados estos algoritmos se puede observar que son bastante complejos y el tiempo para el desarrollo del proyecto es relativamente pequeño, por lo que no se implementará ninguno de ellos, dado esto, se propone el desarrollo de uno basado en las características o requerimientos más sobresalientes de los algoritmos analizados anteriormente.
Estos requerimientos son los siguientes:
• Trabajar exclusivamente con imágenes en escala de grises.
• Hacer uso del histograma de estas imágenes.
• Eficiencia superior al 70%.
• Que el nivel en la complejidad de implementación esté acorde con el nivel de manejo de las herramientas que se conocen para la implementación de la solución.
17
Además de estos requerimientos mencionados se añaden algunos más específicos:
• La implementación del algoritmo funcional tiene que ser sencilla de manejar por los usuarios.
• Esta implementación tiene que ser compatible con los sistemas operativos utilizados en la actualidad.
• Los requerimientos de recursos del sistema en el que se trabaje tienen que ser bastante bajos.
Se trabaja con imágenes en escala de grises ya que cuando se aplica el método de comparación se requiere menos tiempo en comparación del tiempo que se requiere si se trabajara con imágenes a color, esto debido a que en una imagen de este tipo se tienen 3 histogramas diferentes, 1 para el rojo, 1 para el azul, y uno más para el verde, y a los cuales se les tiene que aplicar el mismo algoritmo de comparación, esto sin duda tiene su ventaja más significativa en cuanto a tiempo se refiere, aunque con esto se pierde cierta precisión y confiabilidad en los resultados arrojados.
Además de lo mencionado con respecto a los histogramas se tiene otro gran factor a tomar en cuenta y éste es el espacio requerido para almacenar las imágenes, una imagen en escala de grises ocupa aproximadamente 4 veces menos espacio del que se requiere para almacenar imágenes en color (cuando son de las mismas dimensiones), lo que tiene mucha importancia cuando se manejan grandes cantidades de imágenes.
18
Un punto que se toma en cuenta es que la implementación del algoritmo se pueda hacer con las herramientas conocidas y manejadas hasta el momento ya que si el algoritmo requiere herramientas especiales se podría caer en complicaciones que nos pueden afectar en el aspecto del tiempo de implementación, si la naturaleza del algoritmo las exige serán abordadas en el nivel de profundidad que mejor convenga para obtener los resultados esperados. Es necesario que el tiempo de implementación del algoritmo no sea demasiado extenso, ya que se tienen fechas establecidas para la presentación funcional de éste.
Finalmente haciendo una recopilación de los requerimientos, el algoritmo mostrado en la figura 2 mediante un diagrama a bloques.
1.2.- Etapas para el reconocimiento de rostros.
Básicamente se pueden comprender cuatro etapas en el proceso de reconocimiento de rostros, las cuales son:
1.- Con una fotografía capturada, realizar el aislamiento del rostro. 2.- Convertir la imagen en escala de grises.
3.- Extraer las características de la imagen en escala de grises, las características estarán determinadas por el histograma de esta imagen. 4.- Fase de comparación.
En la figura 2 se muestra un diagrama a bloques del sistema descrito.
1.2.1. Aislamiento del rostro.
19
Otra forma práctica de realizar esto es mediante el uso de una técnica de análisis de tonalidad o matíz de los pixeles de la imagen y discriminar los pixeles que no sean de importancia, consiguiendo con esto la división de la imagen en regiones de interés.
En este proyecto es analizado el segundo procedimiento descrito, por lo cual es posible separar el rostro de la fotografía.
1.2.2.- Conversión de imagen en escala de grises.
Dado un rostro aislado en una foto con colores, es necesario convertir la imagen en escala de grises, para que así sea posible llevar a cabo el método de reconocimiento facial de una manera eficiente, ya que sólo se utilizan 256 niveles de gris, mientras que en una imagen de color verdadero se tendrían 16,777,216 colores, esto se debe a la composición del color en el modelo de color RGB cuando se utilizan 24 bits de resolución de cuantización de la imagen.
Para realizar el procedimiento de conversión de la imagen a escala de grises se crea una matriz de escala de grises con factores de multiplicación .3(Rojo), .59(Verde) y .11(Azul), por cada byte de la imagen, de esta manera sólo se tienen 8 bits que representan la información del color de la imagen, lo cual nos da 2 combinaciones por pixel, teniendo como resultado 256 posibles niveles de gris.
1.2.3.- Extracción de características.
La extracción de las características de la imagen, se realiza mediante la obtención de su histograma de niveles de gris correspondiente, el histograma de la imagen es la frecuencia acumulada de cada nivel de gris, es decir, el número de pixeles que se tienen por cada tono de gris.
20
1.2.4.-Fase de comparación.
En esta fase, se realiza la comparación de dos histogramas, el histograma guardado en la base de datos, y el histograma obtenido con la nueva imagen capturada, para realizar ésta, se utiliza el siguiente método y se describen algunos otros en el apéndice C.
Distancias de Hamming.
Es un método que mide la similitud de dos histogramas. Para aplicar este método, es necesario realizar lo siguiente:
• Normalización de los histogramas a comparar.
• Cálculo de los índices de ponderación.
• Aplicar fórmula para calcular la distancia de Hamming.
En el primer punto se normalizan los histogramas para que den un máximo de uno, basándonos en la frecuencia acumulada de los niveles de gris.
Los índices de ponderación son calculados a través de la siguiente fórmula:
(1)
Donde:
Es el índice de ponderación respectivo al nivel ‘i’ de gris Es el número de pixeles del nivel i de gris.
21
Los datos mostrados en la ecuación anterior se encuentran almacenados en un arreglo, el cual, su número de posiciones, es el nivel de gris, mientras que el dato que esté guardado en la posición, indica el número de pixeles normalizado que tiene el respectivo nivel de gris.
Una vez calculados los índices de ponderación se procede a aplicar la fórmula propia del método distancias de Hamming con ponderación convexa, la cual está dada por:
1, 2 | 1 2 | 2
Donde:
1, 2 Es el resultado obtenido de aplicar el método de distancias de Hammnig a los dos histogramas.
Son los índices de ponderación del nivel i de gris.
1 El dato referente al número de pixeles del histograma normalizado a uno, el cual está almacenado en los registros.
22
Capítulo 2.
Método de histogramas secuenciales de
imagen para el Reconocimiento de Rostros.
2.1.- Histograma de una imagen.
El histograma de una imagen es la función discreta de la frecuencia relativa de ocurrencia de los pixeles de una imagen en función de sus niveles de intensidad, la frecuencia relativa del histograma se puede interpretar como una función de distribución de probabilidad, la cual se encuentra descrita por la siguiente función:
3
Donde:
• es conocida como función de distribución acumulativa.
• es el número de pixeles con intensidad f.
• es el tamaño de la imagen en pixeles.
23
Figura 2.1.1. Histograma RGB de una imagen a color.
Figura 2.1.2. Histograma de los niveles de gris de una imagen.
2.2.- Descripción del método de reconocimiento de rostros basado en el uso de histogramas secuenciales de imagen.
24
Básicamente, como fue explicado en capítulos previos, la utilización de histogramas de imagen para reconocimiento de rostros, es una técnica estadística basada en el tratamiento de imágenes, para poder utilizar este método es necesario contar con una fotografía capturada de la persona a reconocer, y otra fotografía previa de la misma persona.
Descripción del método.
Existen diversas etapas para poder llevar a cabo el reconocimiento de un rostro mediante la utilización de histogramas.
• Con una imagen capturada realizar segmentación de imagen utilizando la técnica de análisis de tonalidad.
• La imagen segmentada se tiene que transformar a su respectiva en escala de grises, utilizando 8 bits, lo cual nos da la posibilidad de 256 diferentes tonalidades de gris.
• Obtener, ecualizar y normalizar el histograma de la imagen, el cual será una representación gráfica del número de pixeles de cada tonalidad que componen a la imagen previamente capturada.
• Calcular los índices de ponderación del histograma obtenido.
• Aplicar el método de Distancias de Hamming, el cual fue descrito en el capítulo dos, en la sección de matemáticas.
• Obtener resultado de comparación.
Cada una de estas fases será explicada a detalle.
2.2.1.- Segmentación de fotografías utilizando la técnica de análisis de tonalidad
Generalmente en imágenes digitales es utilizado el modelo de color RGB; sin embargo, para poder realizar la segmentación de la imagen analizando la tonalidad de los pixeles es necesario cambiarla de modelo de color, en este caso se cambiara al modelo HSI (Hue, Saturation, Intensity)(Tonalidad o matiz, Saturación y Brillo).
25
visual humana, para este fin propuso el modelo de una esfera en la cual distribuyó perimetralmente cinco colores principales (rojo, amarillo, verde, azul y morado), y cinco colores intermedios (amarillo-rojo, verde-amarillo, azul-verde, morado-azul y rojo-morado), lo cual llamó tonalidad o matiz, en el eje vertical de la esfera colocó una variación de brillo de negro a blanco, y radialmente distribuyó los valores de saturación del color, una muestra de la esfera se puede observar en la figura 2.2.1, donde se puede contemplar la estructura de una esfera de color de Munsell.
Figura 2.2.1.- Esfera de color de Munsell.
En la figura 2.2.2 es posible observar el modelo HSI representado como generalmente se hace, para poder tener una mejor comprensión de la representación del color en este modelo.
26
Cabe destacar que se realiza un análisis de la tonalidad de cada pixel de la fotografía, de acuerdo con las condiciones de captura explicadas posteriormente, en las cuales se describe el control del ambiente donde se realizará la captura, ya que el objetivo principal del aislamiento del rostro es el de eliminar el fondo con el que se realice la captura.
Para realizar la segmentación entonces primero es necesario convertir cada pixel a su respectivo modelo de color HSI, mediante el siguiente procedimiento:
1.- El primer paso consiste en normalizar los valores RGB mediante las siguientes fórmulas.
" # $ % $ & '# # $ % $ & (% # $ % $ & 4 &
2.- Después de haber normalizado los valores RGB se procede a obtener sus respectivos valores HSI normalizados, mediante el uso de las siguientes ecuaciones.
* +,-. / 0.5 3 4 " ' $ " ( 5
4 " ' $ " ( 3 ' ( 5 / 7 * 8 40, 95 :;"; ( < ' 5
* 29 +,-. / 0.5 3 4 " ' $ " ( 5
4 " ' $ " ( 3 ' ( 5 / 7 * 8 40, 95 :;"; ( = ' 6
- 1 3 3 min ", ', ( ; - 8 40,15
# $ % $ &3 3 255 8 40,15 7
Es conveniente convertir los valores h, s y b a los intervalos [0,360], [0,100] y [0,250] respectivamente mediante las siguientes transformaciones:
27
Una vez obtenido el respectivo valor HSI de cada pixel se procede a utilizar la tonalidad de acuerdo al color de fondo seleccionado para realizar la captura, de acuerdo con este criterio se elige una tonalidad de 60 como el umbral para separar el fondo del rostro, estableciendo los pixeles que cumplan con esta característica en color negro, para poder después filtrar estos pixeles en el proceso de la comparación mediante el uso de histogramas secuenciales de imagen.
Es evidente que al utilizar esta técnica de segmentación de imágenes se tiene la deficiencia de que en ocasiones se eliminan pixeles de la imagen que forman parte de la región de interés, que es el rostro, pero así mismo brinda una gran ayuda para separar el rostro de la fotografía capturada, tal como se puede observar en la figura 2.2.3, donde es posible notar que el rostro queda aislado con un pequeño margen de error, la fotografía “a” muestra la captura a color, mientras que la fotografía “b” muestra la imagen segmentada y convertida en escala de grises, los pixeles negros mostrados en la fotografía “b” fueron establecidos a través de la segmentación de imágenes utilizando análisis de tonalidad.
[image:40.595.235.412.420.556.2]a) b)
Figura 2.2.3.- Imagen segmentada utilizando análisis de tonalidad.
3.2.2.- Conversión a escala de grises de fotografía segmentada.
28
entre el blanco y el negro. Estas tres constantes se obtienen como la separación entre los canales RGB y el negro:
Alfa
Separación entre el rojo y el negro. (0.299)
Beta
Separación entre el verde y el negro. (0.599)
Gamma
Separación entre el azul y el negro. (0.111)
3.2.3.- Obtención, ecualización y normalización del histograma de la fotografía en escala de grises.
El algoritmo para poder realizar este proceso es sumamente sencillo, se tiene que analizar pixel por pixel la imagen de la cual será obtenido su histograma, de cada pixel obtendremos su nivel de gris, el cual estará dado por cualquiera de sus niveles RGB, ya que después de realizar la transformación a escala de grises, cada pixel tiene el mismo nivel de rojo, verde y azul, es decir que la información de la tonalidad de gris estará contenida en los tres componentes RGB de la imagen, es por eso que se accede a cualquiera de los tres, una vez obtenido el nivel de gris del pixel, se almacenara en un vector, cuya posición determina el nivel de gris, y cuyo contenido será la frecuencia con la que aparece cada nivel de gris en los pixeles que componen la imagen.
Una vez obtenido el histograma de la imagen capturada de la persona a reconocer, se procede a almacenar, para poder tener un fácil acceso a esta información. Cabe destacar que el histograma que se utilizará será normalizado, por lo que es necesario hacer uso de sencillas herramientas matemáticas para poder normalizarlo.
2.3.- Extracción de características.
29
otros, por hablar de características de forma, pero existen también otras características propias de cada ser humano, como lo es su tono de piel, color de cabello, color y espesor de cejas, entre otros, en este proyecto es preciso abordar las segundas características, ya que son las que es necesario analizar en la técnica del uso de histogramas secuenciales de imagen, ya que son determinantes en el reconocimiento.
En el histograma de un rostro, como ya se mencionó se tienen características determinantes, la esencial es el tono de piel, aunque también se tienen otras, que es necesario analizar, porque el mal tratamiento de estas puede provocar un resultado inadecuado en el programa.
Un ejemplo de lo mencionado puede ser el cabello, que si no es tratado adecuadamente, puede causar serios conflictos con la eficiencia de la aplicación, ya que en algunas tomas, el cabello puede salir cubriendo la frente de la persona, y en otras, mostrando totalmente la frente, este hecho puede provocar que la persona no sea reconocida, aun siendo la misma y teniendo la misma iluminación.
Las características determinantes del histograma de un rostro son:
- Cabello. - Tono de piel. - Vello facial.
Es imprescindible tomar en cuenta que las características mencionadas anteriormente son las características de la persona a reconocer; sin embargo existen otras características igualmente importantes, que son las características fotométricas de la imagen, es preciso mencionar que estas características son de suma importancia en el programa de reconocimiento de rostros utilizando histogramas secuenciales de imagen.
Por mencionar algunas de estas características, es posible destacar las siguientes:
30 - Intensidad luminosa.
En la figura 2.3.1 es posible apreciar variaciones drásticas en el brillo de una fotografía, la fotografía “a” muestra una variación donde el brillo es muy poco, se puede notar que el histograma es desplazado a la izquierda donde se encuentran los niveles más obscuros, también es posible observar en la fotografía “c” una imagen con brillo excesivo, y ocurre el efecto contrario al de la fotografía “a”, la fotografía “b” muestra una imagen sin variaciones considerables en brillo.
El contraste es también una de las características importantes de una imagen, ya que produce variaciones drásticas en la distribución de los niveles de gris de su histograma, tal como es posible apreciar cuando se realiza una comparación entre los histogramas de la figura “a” y la figura “c”, de la tabla 3.3.2, en la primera se muestra un histograma distribuido en el centro, mientras que en la segunda se muestra un histograma distribuido en todos los niveles de gris.
Las variaciones en la intensidad de una imagen resultan ser críticas, tal como se puede observar en la figura 2.3.3, la fotografía “a” tiene una intensidad muy baja, y se puede observar claramente que su histograma es desplazado a la derecha, mientras que en la figura “c” se muestra una fotografía con mayor intensidad y es notorio como su histograma es distribuido en todo el intervalo de grises, sin tener variaciones importantes, salvo en los niveles más obscuros debido al cabello, la figura “b” muestra una imagen normal, sin variaciones considerables en intensidad.
Existe otra característica importante de la fotografía de un rostro, ésta es el encuadre, es recomendable que el rostro este centrado en el área de captura, para así evitar ruido que podría causar una baja en la eficiencia del programa.
31
la comparación debido a que las características descritas son determinantes en la eficiencia del programa, es por esto que el lugar donde es realizada la captura debe ser un lugar con un ambiente controlado, para así poder tener una mejor eficiencia en el funcionamiento del algoritmo implementado.
Figura 2.3.1.- Variaciones de brillo en fotografías.
32
Figura 2.3.3.- Variaciones de intensidad en fotografías.
2.4.- Diseño de la aplicación de usuario.
La aplicación realizada fue orientada para trabajar con el sistema operativo Windows mediante el uso de formularios.
Existen diversas tareas a realizar, como lo son:
• Ingreso de nuevos usuarios.
• Pruebas de funcionamiento.
• Ejemplo de reconocimiento de registro.
2.4.1.- Ingreso de nuevos usuarios.
Es necesario poseer un formulario el cual permita realizar la captura de fotografías y de datos para nuevas personas que se deseen ingresar a la base de datos, es por esto que se realizo el formulario mostrado en la figura 3.4.1, donde se puede observar que se cuenta con diferentes áreas, las cuales son las siguientes:
33
• Herramienta de selección de dispositivo de captura.
• Muestra de la captura discriminando elementos circundantes del entorno.
• Campos de datos de la persona a ingresar.
• Vistas en miniatura de las capturas realizadas.
En la figura 2.4.1.2 se puede observar el área de vista previa de la captura de la webcam, tiene un tamaño de 320x240 pixeles, su función es la de mostrar el entorno capturado por la webcam, así mismo, también se muestra un recuadro interno en el cual se debe de centrar el rostro de la persona para que ocupe el mayor espacio posible del recuadro y así evitar en lo posible la interferencia del entorno de captura.
Figura 2.4.1.1.- Formulario para ingreso de nuevos usuarios.
34
Figura 2.4.1.2.- Vista previa de la imagen a capturar.
Figura 2.4.1.3.- Herramienta de selección de dispositivo de captura.
Después de haber tomado una captura de la webcam es necesario mostrarla segmentada, para poder así determinar si la captura fue realizada correctamente, es por esto que después de realizar la captura se muestra en la sección del formulario que se muestra en la figura 2.4.1.4, como se mencionó, en esta sección es posible observar la fotografía que se capturo después de segmentarla, para que el usuario tenga la posibilidad de aceptar o rechazar la captura.
Una vez aceptada la captura se muestra en miniatura en los recuadros que aparecen en la región inferior derecha, los cuales se muestran en la figura 2.4.1.5, es necesario realizar 5 capturas de la misma persona, se recomienda que las capturas sean de la siguiente forma:
Captura 1.
Frente del rostro de la persona sin hacer ningún gesto
Captura 2.
35 Captura 3.
Perfil derecho de la persona a ingresar, con un giro de aproximadamente 30 grados.
Captura 4.
Persona viendo al frente de la cámara, haciendo algún gesto.
Captura 5.
Persona de frente con otro gesto.
Figura 2.4.1.4.- Área de muestra de la captura discriminando elementos circundantes del entorno.
Figura 2.4.1.5.- Vistas en miniatura de las capturas realizadas.
36
sistema, los campos en los cuales es posible realizar la captura de estos datos son mostrados en la figura 2.4.1.6.
Figura 2.4.1.6.- Campos de datos de la persona a ingresar.
2.4.2.- Pruebas de funcionamiento.
La función esencial de esta tarea es la de demostrar cómo se encuentra funcionando el programa, arrojando como resultado la eficiencia de éste.
Para poder llevar a cabo esta tarea, fue necesaria la creación de un formulario especial, el cual se muestra en la figura 2.4.2.1, como se puede observar, en la parte derecha se muestra las fotografías de las personas que se están comparando, en el recuadro que se encuentra debajo de las fotografías se muestran los histogramas, en la parte de la derecha se muestra una gráfica de barras que demuestra la eficiencia del programa, justo debajo de la gráfica de barras se muestra una etiqueta que indica si la persona de la izquierda es identificada con la persona de la derecha o no.
37
La base de datos realizada consta de 29 personas cada una de éstas con una serie de 5 fotografías, además por cada una de ellas se tienen 3 archivos más los cuales son: Histograma, Histograma ecualizado y normalizado y por ultimo Índices de ponderación, en el siguiente capítulo se describe a detalle cada uno de estos.
2.4.3.- Ejemplo de reconocimiento de registro.
Ya implementado el método de reconocimiento de rostros utilizando histogramas secuenciales de imagen, es necesario realizar un ejemplo sencillo, para reconocer el registro de una persona.
En la figura 2.4.3.1 se muestra la vista del formulario que se encuentra dedicado a ejemplificar un reconocimiento de registro.
Para poder realizar un reconocimiento es necesario conocer la clave personal del registro, esta clave debe de ser introducida en el campo mostrado en la figura 2.4.3.2, una vez introducida la clave es necesario seleccionar un dispositivo de captura.
Una vez seleccionado el dispositivo de captura, éste tiene que ser activado para que su captura sea mostrada en el área de vista previa, misma área en la que aparecerá un recuadro de color rojo, en este recuadro se tendrá que centrar el rostro de la persona a reconocer, para poder así adquirir la captura del rostro, esta captura se mostrará en la sección de captura que se muestra en la figura 2.4.3.3, ya segmentada y en escala de grises.
La captura realizada podrá ser aceptada o rechazada, en caso de aceptar la captura, se realizará la obtención de su histograma, para poder ecualizarlo y normalizarlo, y así aplicar el método de reconocimiento de rostros utilizando histogramas secuenciales de imagen, para comparar la captura con todos los rostros que se encuentren en la base de datos exclusivamente en el registro de la persona cuya clave fue introducida.
38
captura recientemente realizada será agregada a su registro, para poder así contar con una amplia gama de fotografías en la base de datos.
En caso de que se lleve a cabo una identificación positiva, se mostrará una ventana, en la que se menciona que el registro fue reconocido, y se da un pequeño mensaje de bienvenida mostrando el nombre del usuario.
En caso de que se lleve a cabo una identificación negativa, se mostrará una ventana en la cual no se reconoce el registro de la persona, y se muestra una serie de posibles causas, realizando una invitación a realizar la captura de nuevo.
Figura 2.4.3.1.- Formulario para reconocimiento de registro.
39
40
Capitulo 3. Pruebas y resultados.
3.1.-Descripción de la base de datos
Para poder operar el algoritmo de reconocimiento de rostros utilizando histogramas secuenciales de imagen es necesario realizar un sistema de
archivos que contenga ciertos elementos de suma importancia, los cuales son:
• Fotografías de personas admitidas en el sistema.
• Datos personales.
• Vector de histograma de imagen.
• Vector de histograma de imagen, ecualizado y normalizado .
• Índices de ponderación.
3.1.1.- Fotografías de personas admitidas en el sistema.
Estas fotografías serán capturadas mediante una cámara “web” con las características descritas en la sección de hardware y software utilizado, es recomendado capturar cinco fotografías con diferentes ángulos de vista de la persona, en un ambiente controlado, con iluminación constante y un fondo de color uniforme.
Las imágenes almacenadas tendrán el formato “jpeg” con una resolución de cuantización de 24 bits por pixel, y una resolución espacial de 150 x 200 pixeles.
3.1.2.- Datos personales.
41
Los datos son almacenados en un archivo especial, el cual tiene la extensión *.drhi, creada para tal fin.
3.1.3.- Vector de histograma de imagen.
Es importante resaltar que el histograma que se va a almacenar se encuentra como un vector de números enteros y no como una imagen, en este vector se encuentra almacenado el numero de pixeles de cada nivel de gris de la imagen segmentada de la persona, para poder así acceder al histograma de una imagen y poder compararla con otras mediante los procedimientos descritos en capítulos anteriores.
Los histogramas se encuentran almacenados en un archivo con extensión *.rhi, creada para tal fin.
3.1.4.- Vector de histograma de imagen segmentada, ecualizado y normalizado.
En el caso del vector de histograma ecualizado y normalizado se encuentra almacenado como un vector de números de precisión doble.
Al igual que el vector de histograma, se encuentra almacenado con la extensión *.rhi.
3.1.5.- Índices de ponderación.
Como se describió en capítulos anteriores, es necesario tener almacenado el vector de los índices de ponderación de cada nivel de gris para poder llevar a cabo el reconocimiento de rostros, al igual que los vectores anteriores se encuentra almacenado en un archivo con extensión *.rhi.
42
[image:55.595.93.525.182.440.2]la figura 3.1.1, donde se muestra como se encuentra conformado el sistema de carpetas donde se contienen los datos y las fotografías de las personas que se den de alta en el sistema.
Figura 3.1.1.- Sistema de archivos almacenados para una persona.
Como es posible observar en la figura 3.1.1 se cuenta con 5 capturas de cada persona, cada captura tiene su propio histograma, su histograma ecualizado y normalizado, y sus propios índices de ponderación, así mismo es posible observar, que como se mencionó anteriormente, se contó con un archivo que contiene los datos de la persona que se capturó.
43
Tabla 3.1.1.- Identificadores en nombres de archivos.
Archivo Nombre Descripción
Carpeta contenedora CLAVE
El nombre de la carpeta contenedora del registro de cada persona consiste sólo en su clave, puesto que es única y se encuentra constituida por sus iniciales y fecha de nacimiento.
Datos DatosCLAVE.drhi
El nombre del archivo que contiene los datos de cada persona se encuentra constituido por la palabra Datos, seguida de la clave de la persona.
Capturas CLAVEi.jpeg
La letra i representa el número de la captura, que varía entre cero y cuatro.
Histograma de captura después de convertirla en
escala de grises.
HCLAVEi.rhi
El nombre de este archivo se encuentra constituido por una H que viene de la palabra “Histograma”, seguido de la clave, la letra i representa el número de la captura a la cual pertenece.
Histograma ecualizado y normalizado de la imagen segmentada y en escala de
grises.
HECLAVEi.rhi
El nombre de este archivo se encuentra constituido por HE que viene de la frase “Histograma Ecualizado”, seguido de la clave, la letra i representa el número de la captura a la cual pertenece.
Índices de ponderación de la imagen segmentada y en
escala de grises.
IPCLAVEi.rhi
44
3.1.6.- Extensiones de archivos.
Como se mencionó previamente, se crearon dos extensiones para los archivos generados por la aplicación, las cuales son “drhi” y “rhi”, estas extensiones de archivos fueron elegidas de acuerdo con el nombre del algoritmo planteado y desarrollado, así “drhi” viene de la frase “Datos de Reconocimiento utilizando Histogramas de Imagen”, mientras que “rhi” tiene su origen en la frase “Reconocimiento utilizando Histogramas de Imagen”.
3.2.- Selección de imágenes para la realización de pruebas.
Una vez que se revisó la teoría expuesta de las imágenes digitales se observa que es de suma importancia conocer los tipos de formatos existentes ya que existen diversos factores que influyen directa o indirectamente en el desarrollo de las aplicaciones que hacen uso de éstas, al conocer las características de los formatos se puede determinar cuál de ellos es más conveniente para determinadas aplicaciones, lo que dará como resultado una aplicación eficiente, obviamente el uso de uno u otro tipo de formato traerá ventajas y desventajas que pueden ser o no determinantes.
Para las pruebas del algoritmo diseñado se determinó que el formato más adecuado a utilizar es el .JPG o .JPEG.
El uso de este formato ofrece grandes ventajas que para los objetivos propuestos fueron determinantes. Se mencionó que uno de los objetivos del algoritmo es que tiene que ser poco robusto o dicho de otra forma: de pocos requerimientos del sistema, con el uso de imágenes en este formato se logra que los requerimientos en espacio y memoria se reduzcan de manera muy considerable, con lo cual se logra un acercamiento al objetivo propuesto.
Esto es así porque en términos de comparación las imágenes en este formato son muy ligeras o dicho de otra forma ocupan menos espacio que otras imágenes en otro formato como el bmp por mencionar alguno.
45
Figura 3.2.1.- Imagen en formato bmp de 500 x 383 pixeles ocupa 374 Kb para su almacenamiento en disco.
Comparando las figuras 3.2.1 y 3.2.2 se puede observar la gran diferencia en cuanto a espacio necesario para almacenamiento de uno y otro formato además de que la imagen es prácticamente la misma.
[image:58.595.177.467.452.681.2]46
Otro factor de la elección de este formato es que en la actualidad la mayoría de los equipos tanto de captura como de procesamiento de imágenes digitales utilizan este formato, con esto se logra un acercamiento a otro de los objetivos planteados que es el de versatilidad ya que al tratarse de de un estándar no se requiere software ni hardware especializado para el tratamiento de estas imágenes, con esto también se logra que la implementación de este algoritmo sea económico como se mencionó en otro de los objetivos planteados.
Una vez que se conocen las características de este tipo de formato y el porqué de su elección sólo resta definir las características particulares de las imágenes que se utilizaron en las pruebas del algoritmo diseñado, y estas son:
• Tamaño.
• Características del procesamiento.
• Características de color.
En cuanto a tamaño se utilizan imágenes de 150 x 200 pixeles.
En un principio las imágenes son capturadas con una resolución de 320x240 pixeles, que corresponde con la resolución elegida en la webcam, al momento de la captura con esta resolución como se puede observar en la figura 3.2.3, se tiene una interferencia muy importante del fondo.
Figura 3.2.3.- Interferencia del fondo al momento de capturar.
47
[image:60.595.244.368.187.346.2]sombras, como esto no aporta ninguna información útil simplemente se discriminará, esto se hace con un recuadro de 150x200 pixeles como se muestra en la figura 3.2.4, asegurando con esto que la información a evaluar es la del rostro además de un poco de atuendo.
Figura 3.2.4.- Discriminación de los elementos circundantes en el entorno de captura.
Con este recuadro se discrimina la mayor cantidad de información que no aporta utilidad, para la mejor discriminación se tendrá que ajustar manualmente el dispositivo de captura.
Las capturas que se realizaron, estuvieron en un entorno de condiciones medianamente controladas, con esto se logra que la interferencia de objetos circundantes sea nula.
[image:60.595.268.378.542.690.2]