Usuario:Davisclick/Taller

De Wikipedia, la enciclopedia libre

En la sociedad actual, dónde las tecnologías de la información (TI) ocupan un  papel cada vez más importante, los requerimientos de seguridad son cada vez mayores y  más demandados.

Las imágenes son ampliamente utilizadas como una de las fuentes más importantes de información, sobre todo en el contexto de las aplicaciones centradas en el ser humano, tal como: vigilancia de seguridad, desarrollo de sistemas biométricos, juegos multimedia de interacción hombre-máquina, robótica, realidad virtual, videoconferencias, entre muchas otras.

Gracias al progreso tecnológico en la fabricación de sensores que captan las imágenes digitales a un bajo coste y mejorando cada vez sus características, se puede constatar el crecimiento de su utilización en diversos campos y aplicaciones.

Uno de estos campos es la biometría, siendo una forma muy sencilla y en general incluso única para identificar a las personas. Los rasgos biométricos suelen ser más difíciles de duplicar o falsificar frente a otros métodos anteriormente utilizados como por ejemplo un PIN, una llave, etc. Esto se debe a que estos rasgos utilizan características propias de cada individuo y únicas de modo que pueden diferenciarlo de otras personas que intenten falsificar su identidad.

Los rasgos biométricos pueden ser divididos en rasgos fisiológicos, como  pueden ser las huellas dactilares, el iris, el ADN, etc. o rasgos del comportamiento, como la firma, el modo de andar, la voz. Mientras que los primeros tienen una menor variabilidad a lo largo del tiempo, son también mucho más invasivos y requieren de la cooperación del individuo para su obtención.

Dentro de los rasgos biométricos el reconocimiento facial se ha convertido en un área de investigación bastante popular. Comparando con otros sistemas biométricos como ADN, la huella dactilar o la voz, el reconocimiento facial es una técnica no intrusiva.

Un sistema automático de verificación de rostro está compuesto de dos etapas  principales: detección de rostro (primera etapa) y verificación de rostro (segunda etapa).

La biometría se apoya de la visión por computador la cual es una disciplina científica que incluye métodos para adquirir, procesar, analizar y comprender las imágenes del mundo real con el fin de producir información numérica o simbólica para que puedan ser tratados por un computador. 

El desarrollo del presente trabajo plantea la creación de un sistema de reconocimiento facial el cual podría ser implementado en una mediana empresa, oficinas de gobierno, escuelas, universidades, etc. y así convertirse en una herramienta que ayude a una de las necesidades importantes del presente, la seguridad.

MARCO TEORICO[editar]

Visión Por Computador[editar]

Aristóteles definió la palabra visión de la siguiente manera “es saber que hay y dónde mediante la vista” y el neurocientífico y psicólogo David Marr la definió “como un proceso que produce a partir de las imágenes del mundo exterior una descripción que es útil  para el observador y que no tiene información irrelevante”.

La definición de David Marr es la que más se acera a la idea actual sobre visión por computados. En esta definición hay tres aspectos importantes que hay que tener presentes:

  • Visión es un proceso computacional.
  • La descripción a obtener depende del observador.
  • Es necesario eliminar la información que no sea útil (reducción de información).

La visión por computador es una disciplina científica que incluye métodos para adquirir, procesar, analizar y comprender las imágenes del mundo real con el fin de producir información numérica o simbólica para que puedan ser tratados por un computador. Tal y como los humanos usamos nuestros ojos y cerebros para comprender el mundo que nos rodea, la visión por computador trata de producir el mismo efecto para que las computadoras puedan percibir y comprender una imagen o secuencia de imágenes y actuar según convenga en una determinada situación. Esta comprensión se consigue gracias a distintos campos como la geometría, la estadística, la física y otras disciplinas. La adquisición de los datos se consigue por varios medios como secuencias de imágenes, vistas desde varias cámaras de video o datos multidimensionales desde un escáner médico.

La facilidad con la que “vemos”, llevo a pensar a los primeros investigadores en inteligencia artificial, por 1960, que hacer que una computadora interpretara imágenes era relativamente fácil, Pero no resulto así, y muchos años de investigación han demostrado que es un problema muy complejo. Sin embargo, en los últimos  años hay avances considerables básicamente por 3 factores:

  • El desarrollo tecnológico en las capacidades de procesamiento y de memoria en las computadoras, que facilita el almacenamiento y procesamiento de las imágenes.
  • Los avances teóricos en los principios y algoritmos para el procesamiento y análisis de imágenes.
  • La creciente necesidad del procesamiento automático de imágenes, que se capturan y almacenan en grandes cantidades en diversos dominios, como en medicina, seguridad, tránsito de vehículos, etc.

El objetivo de la visión computacional es extraer características de una imagen para su descripción e interpretación por la computadora. Por ejemplo:

  • Determinar la localización y tipo de objetos en la imagen.
  • Construir una representación tridimensional de un objeto.
  • Analizar un objeto para determinar su calidad.
  • Descomponer una imagen u objeto en diferentes partes.

La visión por computador no tiene como objetivo mejorar la calidad de las imágenes para su posterior utilización o interpretación, es el procesamiento de imágenes que se encarga de hacer la tarea resaltando o ignorando ciertas características. La visión por computador se apoya en esta área de investigación.

El desarrollo de este proyecto utiliza algoritmos producto de años de investigación en la visión por computador, se implementara un algoritmo con aprendizaje supervisado cuyo objetivo es conseguir diferenciar automáticamente patrones utilizando cálculos matemáticos. En el aprendizaje supervisado se entrena al ordenador proporcionando patrones previamente etiquetados, de forma que el algoritmo usado debe encontrar las fronteras que separan los posibles diferentes tipos de patrones. Adaboost y algunas redes neuronales forman parte de este grupo. En el aprendizaje no supervisado se entrena al ordenador con patrones que no han sido previamente clasificados y es el propio ordenador el que debe agrupar los distintos patrones en diferentes clases. K-means y algunas redes neuronales forman parte de este grupo. Ambas técnicas son muy utilizadas en la visión artificial, sobre todo en clasificación y segmentación de imágenes

Igual la detección de objetos será implementada, es la parte de la visión por computador que estudia cómo detectar la presencia de objetos en una imagen sobre la base de su apariencia visual, bien sea atendiendo al tipo de objeto (una persona, un auto) o a la instancia del objeto (mi auto, el auto del vecino). Generalmente se pueden distinguir dos partes en el proceso de detección: la extracción de características del contenido de una imagen y la búsqueda de objetos basada en dichas características. La extracción de características consiste en la obtención de modelos matemáticos compactos que "resuman" el contenido de la imagen con el fin de simplificar el proceso de aprendizaje de los objetos a reconocer. Dichas características son comúnmente llamadas descriptores.

En capítulos posteriores se explicara todo el proceso para el desarrollo de un software basado en visión por computador y las técnicas empleadas.

Biometría[editar]

En nuestros días donde las personas tienen la facilidad de desplazarse de un lugar a otro con por medios terrestres, aéreos, marítimos y con el devenir de las redes de comunicación a nivel mundial a través de la Internet donde tenemos acceso desde nuestros celular, laptops, computadoras, relojes inteligentes a un número ilimitado de redes sociales, el establecimiento de la identidad se ha convirtiendo en algo crítico. El mundo vive cambios agitados, grandes movilizaciones de personas por causas religiosas, sociales, económicas y de guerras; los gobiernos a nivel mundial están gastando grandes cantidades de dinero para lograr identificar de manera fiable a las personas que entran a sus territorios y por ello la biometría en nuestra era es un asunto de seguridad de estados.

Actualmente, los sistemas de identificación tradicionales no dan abasto para la creciente demanda de seguridad de las empresas pues éstas requieren verificar con precisión la identidad del personal que puede acceder a sitios restringidos o bien a cierta información de carácter confidencial. De ahí la necesidad de implementar sistemas que empleen la biometría y sus ventajas como método de identificación pues mediante su uso no existe la posibilidad de compartir claves, códigos de ingreso ni tarjetas de acceso, además de que se considera que la posibilidad de suplantar la identidad del individuo es prácticamente imposible. Lamentablemente éste es un reto que la ciencia y la tecnología aún no han superado pues aunque algunos de estos sistemas son altamente fiables, ninguno es cien por ciento efectivo pues son susceptibles de ser engañados mediante suplantación, por ejemplo, sistemas de reconocimiento de huella dactilar pueden ser fácilmente engañados usando un molde del dedo realizado con gelatina o simplemente disponer de la huella dactilar.

La biometría se describió como la ciencia de reconocer un individuo basándose en su comportamiento físico o rasgos, empieza a ganar aceptación como método legítimo para determinar la identidad de un individuo. Los sistemas biométricos están hoy en día siendo desarrollados en aplicaciones comerciales, civiles y forenses, como medio de establecer la identidad.

La palabra biometría, se deriva del griego bios (vida) y metron (medida). Es la práctica tecnológica de identificar a un individuo por sus rasgos biológicos y conductuales; cuando tiene lugar de manera automatizada, mediante técnicas matemáticas auxiliadas por computadora, se conoce como biometría informática. La identidad así construida se denomina identidad biométrica del individuo.

Se basa en la premisa de que cada persona es única y posee rasgos distintivos que pueden ser utilizados para identificarla. Algunos ejemplos de características físicas son la cara, las huellas digitales, el iris de los ojos y en los últimos años se ha considerado el ADN. Por su parte, algunos ejemplos de características de comportamiento son la voz, la manera de firmar, la forma de caminar.

La biometría no se puso en práctica en las culturas occidentales hasta finales del siglo XIX, pero era utilizada en China desde al menos el siglo XIV. Un explorador y escritor que respondía al nombre de Joao de Barros escribió que los comerciantes chinos estampaban las impresiones y las huellas de la palma de las manos de los niños en papel con tinta. Los comerciantes hacían esto como método para distinguir entre los niños jóvenes.

En Occidente, la identificación confiaba simplemente en la memoria de Eidetic (memoria fotográfica) hasta que Alphonse Bertillon, jefe del departamento fotográfico de la Policía de París, desarrolló el sistema antropométrico (también conocido más tarde como Bertillonage) en 1883. Este era el primer sistema preciso, ampliamente utilizado científicamente para identificar a criminales y convirtió a la biométrica en un campo de estudio. Funcionaba midiendo de forma precisa ciertas longitudes y anchuras de la cabeza y del cuerpo, así como registrando marcas individuales como tatuajes y cicatrices. El sistema de Bertillon fue adoptado extensamente en occidente hasta que aparecieron defectos en el sistema, principalmente problemas con métodos distintos de medidas y cambios de medida. Después de esto, las fuerzas policiales occidentales comenzaron a usar la huella dactilar, esencialmente el mismo sistema visto en China cientos de años antes.

La idea para usar patrones de iris como método de identificación fue propuesto en 1936 por el oftalmólogo Frank Burch. Para la década de 1980 la idea ya había aparecido en películas de James Bond, pero permanecía siendo ciencia ficción.

En 1985 los doctores Leonard Flom y Aran Safir retomaron la idea. Su investigación y documentación les concedió una patente en 1987. En 1989 Flom y Safir recurrieron a John Daugman para crear algoritmos para el reconocimiento de iris. Estos algoritmos, patentados por Daugman en 1994 y que son propiedad de Iridian Technologies, son la base para todos los productos de reconocimiento de iris.

En 1993 la Agencia Nuclear de Defensa empezó a trabajar con IriScan, Inc. para desarrollar y probar un prototipo. 18 meses después el primer prototipo se completó y está disponible comercialmente.

Aunque los avances en biometría fuesen en un primer momento ideados con fines forenses para la identificación de delincuentes, en la actualidad se utiliza en aplicaciones civiles muy variadas abriéndose así a un mercado mucho mayor.

Características Biométricas[editar]

Una característica biométrica es una característica biológica o de la conducta de un individuo que puede ser medida y distinguida. Muchas de estas características biométricas se pueden extraer con el propósito de reconocimiento automático de los individuos.

Existen una serie de requisitos para que se pueda definir un sistema como sistema biométrico. Estos requisitos dependen de las características que se utilizan como parámetro de identificación y clasificación. Para poder decir que una característica es biométrica, ésta debería cumplir las siguientes condiciones:

  • Universalidad: Todos los individuos deben tener la característica.
  • Unicidad: Dos personas no pueden ser la misma en términos de la característica.
  • Permanencia: La característica debe ser invariante con el tiempo.
  • Medible: La característica se debe adquirir y digitalizar utilizando aparatos adecuados que no causen inconveniencias al individuo; y dicha señal debe ser medible.
  • Rendimiento: Referido a si es posible la identificación exacta, los recursos requeridos y los factores del entorno y de trabajo que afectan a la identificación.
  • Aceptabilidad: Referido a la extensión de población que estaría predispuesta a aceptar el sistema de identificación.
  • No falsificable: El rasgo biométrico tiene que garantizar que su falsificación sea dificultosa.

La relevancia de una característica biométrica en una aplicación es establecida dependiendo de la naturaleza, requerimientos de la aplicación y las propiedades de la característica biométrica.

Rasgos biométricos[editar]

La Identidad, lo que permite distinguir a un individuo de los demás, resulta de una combinación de rasgos biológicos (físicos) y sociales (conductuales) que le son únicos: la forma de la cara, la estatura, el color de ojos, la conformación de la dentadura, son ejemplos típicos de elementos constituyentes de la identidad biológica de una persona. Los rasgos sociales son en gran parte resultado de la interacción del individuo con su medio y en cierta manera almacenan información sobre la naturaleza de dicha interacción.

Ningún rasgo biométrico es ideal para el desarrollo de un sistema que emplee la biometría, la combinación de ellos puede dar resultados altamente fiables.  

Rasgos Biométricos  De La Cabeza[editar]
  • Reconocimiento facial: La cara es uno de los rasgos biométricos más aceptables debido a que es el rasgo biométrico más común usado por los humanos a la hora de reconocer a las personas así como las interacciones visuales diarias. Además, el método para adquirir imágenes de la cara es no intrusivo y no hace falta ninguna interacción por parte del usuario. En fase de prototipo, encontramos algunos métodos que no solo reconocen a la persona sino su estado de ánimo según la expresión facial, la edad, el sexo y la posición.
  • Iris: La utilización del ojo humano en la identificación de personas ha dado lugar a dos técnicas biométricas diferentes: una basada en las características del iris ocular y otra que utiliza las características distintivas de la retina. Únicamente tienen en común que se sirven de un mismo órgano, el ojo humano, sin embargo en numerosas ocasiones se suele confundir uno con otro y ambas se consideran como una única técnica denominada biometría del ojo, por lo tanto es importante resaltar que el iris y la retina oculares dan lugar a dos tipos de sistemas biométricos completamente diferentes, tanto en los métodos de captura de imagen y las técnicas de extracción de características como en los métodos de comparación. El ojo humano es un órgano fotorreceptor, cuya función consiste en recibir los rayos luminosos procedentes de los objetos presentes en el mundo exterior y transformarlos en impulsos eléctricos que son conducidos al centro nervioso de la visión en el cerebro. Se cree que cada iris es diferente, incluso en gemelos idénticos. Es extremadamente difícil de manipular quirúrgicamente la textura del iris. Además, la capacidad de detectar iris artificial (por ejemplo, lentes de contacto) se ha demostrado en la literatura. Aunque en principio los sistemas de reconocimiento basados en iris requerían considerablemente la participación del usuario y eran caros, los nuevos sistemas han venido a ser más fácil de utilizar y rentables.
  • Escáner de retina: La vasculatura retinal (forma de los vasos sanguíneos de la retina humana) es un elemento característico de cada individuo, tan distinto como una impresión digital y aparentemente más fácil de ser leído, por lo que numerosos estudios en el campo de la autenticación de usuarios se basan en el reconocimiento de esta vasculatura. En los sistemas de autenticación basados en patrones retinales el usuario a identificar ha de mirar a través de unos binoculares, ajustar la distancia ínter-ocular y el movimiento de la cabeza, mirar a un punto determinado y por último pulsar un botón para indicar al dispositivo que se encuentra listo para el análisis. En ese momento sé escanea la retina con una radiación infrarroja de baja intensidad en forma de espiral, detectando los nodos y ramas del área retinal para compararlos con los almacenados en una base de datos; si la muestra coincide con la almacenada para el usuario que el individuo dice ser, se permite el acceso.
  • Oreja: Han desarrollado una nueva técnica para identificar a las personas por sus orejas. Se denomina "Transformación de Rayos en Imagen" (Image Ray Transform en inglés), y permite resaltar las estructuras tubulares y circulares de las orejas, como el curvado hélix que rodea el borde superior del pabellón auricular, para clasificarlas e identificar automáticamente las diferencias individuales. Las orejas tienen una estructura estable que se mantiene desde el nacimiento hasta la edad adulta y que, en lugar de envejecer, sencillamente aumenta de tamaño. Además, su forma no se altera si cambiamos la expresión del rostro. El único inconveniente que habría que solventar, es el hecho de que el pelo puede ocultar las orejas. Las pruebas con la nueva tecnología con rayos han conseguido alcanzar un grado de acierto del 99,6 % identificando orejas. El trabajo fue presentado en Washington (EEUU) durante la Cuarta Conferencia Internacional en Biometría del IEEE (Instituto de Ingenieros Eléctricos y Electrónicos). La forma de la oreja es única. Define más que las huellas dactilares y casi de forma tan exacta como el iris. Ésa es la conclusión a la que han llegado los investigadores.
Rasgos Biométricos  De La Mano Y De Los Dedos[editar]
  • La huella dactilar: Los seres humanos han utilizado las huellas dactilares para la identificación personal por muchas décadas y la precisión demostrada ha sido muy alta. Las huellas dactilares son surcos que se encuentran en los dedos de los seres humanos, su formación se da en los primeros 7 meses del desarrollo fetal. Las huellas dactilares de dos gemelos idénticos son diferentes y también lo son las huellas en cada dedo de la misma persona. La precisión actualmente de sistemas de reconocimiento de huellas dactilares es adecuado para la autenticación sistemas que implican unos pocos cientos de usuarios. Múltiples huellas de una persona proporcionan información adicional para permitir a gran escala la identificación que involucra a millones de identidades. Uno de los problemas con los sistemas de reconocimiento de huellas dactilares actuales es que requerir una gran cantidad de recursos computacionales, especialmente cuando se opera en el modo de  identificación. Por último, las huellas dactilares de una pequeña fracción de la población puede ser inadecuado para la identificación automática debido a factores genéticos, envejecimiento, ambientales, o razones laborales (por ejemplo, los trabajadores de la construcción obtienen un gran número de cortes y moretones en sus huellas dactilares que van cambiando).
  • Geometría de la mano: Los sistemas de reconocimiento de la geometría de mano son sobre la base de un número de mediciones tomadas de la mano humana, incluyendo su forma, tamaño de la palma, las longitudes y anchuras de los dedos. Los sistemas comerciales de autenticación basada en la geometría de la mano se han instalado en cientos de lugares alrededor el mundo. La técnica es muy simple, relativamente fácil de usar, y barato. Los factores ambientales, tales como el clima seco o anomalías individuales como la piel seca, no parece tener ningún efecto negativo sobre la exactitud de autenticación de sistemas basados en geometría de la mano. La geometría de la mano no es conocida por ser sistemas de reconocimiento muy distintivo y estos sistemas no pueden ser ampliado para sistemas que requieren identificación de un individuo de una población grande. Además, la información geométrica de la mano puede no ser invariante durante el período de crecimiento de los niños. También, las joyas de un individuo (por ejemplo, anillos) o limitaciones en la destreza (por ejemplo, artritis), pueden plantear más desafíos en la extracción de la información de la geometría correcta de la mano. El tamaño físico de un sistema basado en la geometría de la mano es grande, y no se puede incrustar en ciertos dispositivos tales como ordenadores portátiles. Existen sistemas de autenticación disponibles que se basan en mediciones de sólo unos dedos (por lo general, índice y medio) en lugar de toda la mano. Estos dispositivos son más pequeños que los utilizados para geometría de la mano, pero todavía son mucho más grandes que los utilizados en algunos otros datos biométricos (por ejemplo, huellas dactilares, la cara y voz).
  • Venas de las manos: Es sistema que captura la distribución de las venas de la palma de la mano o de los dedos. Está siendo muy utilizado en la actualidad debido a su fácil implementación y gran aceptabilidad por parte de los usuarios ya que muchos de ellos no requieren de contacto físico.
Rasgos Biométricos  De Todo El Cuerpo[editar]
  • Olor: Cada persona exuda un olor que es característico de su composición química y se puede usar para identificar a las personas. El sistema más usual está compuesto por una matriz de sensores donde cada sensor detecta un tipo concreto de sustancia química (o componente aromático). La respuesta del sistema consiste en la cantidad de componente aromático que ha detectado cada sensor. Después de oler, se debe inicializar el sistema introduciendo aire completamente limpio. La tecnología para la identificación automática de los olores (en cualquier tipo de aplicación no solo identificación biométrica) está siendo investigada y hoy en día hay pocos sistemas reales (no prototipos de laboratorio) en funcionamiento y ninguno para identificar a persona.
  • ADN: El ácido desoxirribonucleico es el código unidimensional que caracteriza al individuo por excelencia, excepto a dos gemelos idénticos, que tienen el mismo ADN. Normalmente, se usa en la identificación de personas en aplicaciones forenses, pero no se puede emplear en aplicaciones de tiempo real debido a que se necesita un tiempo de unas horas en un laboratorio para aislar correctamente el ADN y extraer la información básica. Además, el uso de la información del ADN suele preocupar a las personas porque se puede extraer el conocimiento de que una persona sufre ciertas enfermedades o es susceptible de que las sufra.Tres hechos limitan el uso de estas técnicas para otras aplicaciones: contaminación y sensibilidad, es fácil de robar; problemas de reconocimiento automático en tiempo real; y problemas de privacidad, ya que la información sobre ciertas enfermedades puede ser obtenida del ADN.
  • Termograma: El patrón de calor radiado por el cuerpo humano es característico de cada individuo y puede ser capturado por una cámara de infrarrojos de un modo parecido a una fotografía. Esta tecnología puede usarse para un reconocimiento encubierto. El sistema no requiere contacto y es no invasivo, pero la adquisición de la imagen es difícil en medios incontrolados donde haya elementos que emanen calor en las proximidades del cuerpo humano. Una tecnología similar se utiliza para escanear la parte trasera de la mano con el puño cerrado para determinar la estructura de las venas de la mano. Sin embargo, estos escáneres son tremendamente caros y esto hace que la implantación de esta tecnología no sea muy amplia.
Rasgos Biométricos  De Comportamiento[editar]
  • La voz: Es una combinación de física y de comportamiento biométrico. Las características de la voz de un individuo se basan en la forma y tamaño de los apéndices (por ejemplo, tractos vocales, boca, cavidades nasales, y los labios) que se utilizan en la síntesis del sonido. Estas características físicas del habla humana son invariante para un individuo, pero la parte del comportamiento del discurso de una persona cambia con el tiempo debido a la edad, condiciones médicas (como el resfriado común), el estado emocional, etc. La  voz tampoco es muy distintiva y puede no ser apropiado para la identificación a gran escala. Un sistema de reconocimiento de voz dependiente del texto se basa en la expresión de una frase fija predeterminada. Un sistema de reconocimiento de voz independiente del texto reconoce al que habla independientemente de lo que ella o el habla. Un sistema de texto independiente es más difícil de diseñar que un sistema dependiente del texto, pero ofrece más protección contra el fraude. Una desventaja del reconocimiento de voz basado es que las características del que habla son sensibles a una serie de factores como el ruido de fondo.
  • Forma de caminar: La forma humana de caminar presenta un comportamiento periódico definido a partir de movimientos articulados de las extremidades inferiores del cuerpo. Este desplazamiento se compone de varias fases donde se identifican diferentes conductas naturales del sujeto. Los sistemas basados en la manera de andar utilizan secuencias de video de la longitud de los pies de una persona andando para medir diferentes movimientos de cada articulación, es computacionalmente cara.
  • Pulsaciones de teclado: La dinámica de pulsaciones es un comportamiento biométrico; para algunas personas, se puede esperar observar grandes variaciones en los patrones de tecleo. Además, las pulsaciones de una persona que utiliza un sistema pueden ser monitoreadas de una manera más discreta que la persona que está tecleando la información. Sin embargo, comportamiento biométrico permite “verificación continua” de un individuo durante un periodo de tiempo. Este rasgo biométrico no se cree que sea único para cada individuo pero ofrece suficiente información discriminatoria para permitir una verificación de identidad.
  • Firma: La forma en que una persona firma su nombre es conocido por ser una característica de ese individuo. Aunque las firmas requieren contacto con el instrumento de escritura y un esfuerzo por parte del usuario, estas han sido aceptadas en  gobiernos, transacciones legales como métodos de autenticación.  Las firmas son un comportamiento biométrico que cambia a lo largo de un período de tiempo y son influenciados por las condiciones físicas y emocionales de los firmantes. Las firmas de algunas personas varían considerablemente: incluso impresiones sucesivas de su firma son significativamente diferentes.

Cuestiones y Preocupaciones[editar]

La utilización de la biometría parece presentar ventajas prácticas para el ciudadano, económicas para las empresas y de seguridad a los gobiernos. No obstante, la generalización de la biometría en todos los campos puede constituir un peligro real para el respeto a la vida privada.

Las preocupaciones acerca del robo de identidad por el uso de la biometría aún no han sido resueltas. Si el número de tarjeta de crédito de una persona es robado, por ejemplo, puede causarle a esa persona grandes dificultades. Si sus patrones de escaneado de iris son robados, sin embargo, y eso permite a otra persona acceder a información personal o a cuentas financieras, el daño podría ser irreversible. Frecuentemente, las tecnologías biométricas han sido puestas en uso sin medidas adecuadas de seguridad para la información personal que es resguardada a través de las mismas.

Aunque la biometría es frecuentemente utilizada como un medio para combatir la criminalidad, existe la preocupación de que la biometría pueda ser utilizada para disminuir las libertades personales de los ciudadanos y violar la privacidad.

Entre menos sea la necesidad de los individuos de interactuar con un sistema biométrico, que sea menos invasivo, mayor será su aceptación. Para los gobiernos mundiales queda brindar a sus ciudadanos la seguridad que sus datos biométricos no serán robados o duplicados por terceros,  así como sus libertades personales no serán limitadas. Queda un largo camino por recorrer especialmente en el establecimiento de organismos que controlen el uso abusivo de la información biométrica.

Sistemas Biométricos[editar]

Un sistema biométrico es un método automático de identificación y verificación de un individuo utilizando características físicas y de comportamiento precisas. Las características básicas que un sistema biométrico para identificación personal debe cumplir son: desempeño, aceptabilidad y fiabilidad. Las cuales apuntan a la obtención de un sistema biométrico con utilidad práctica.

Reconocimiento De Patrones Y Sistemas Biométricos[editar]

El reconocimiento de patrones es la ciencia que se encarga de la descripción y clasificación (reconocimiento) de objetos, personas, señales, representaciones, etc. Esta ciencia trabaja con base en un conjunto previamente establecido de todos los posibles objetos (patrones) individuales a reconocer. El margen de aplicaciones del reconocimiento de patrones es muy amplio, sin embargo las más importantes están relacionadas con la visión y audición por parte de una máquina, de forma análoga a los seres humanos. El esquema de un sistema de reconocimiento de patrones consta de varias etapas relacionadas entre sí (los resultados de una etapa pueden modificar los parámetros de etapas anteriores).

Un esquema general de un sistema de reconocimiento de patrones tiene los siguientes procesos a seguir:

  • Captura.
  • Extracción de las características.
  • Creación de la plantilla.
  • Comparación.
  • Selección o filtrado.
  • Almacenamiento de los datos.

El reconocimiento de patrones es la base teórica más importante de la biometría pues un sistema biométrico es, en esencia, un sistema de reconocimiento de patrones, razón por la cual el estudio de las bases matemáticas sobre las cuales se sustenta esta ciencia se vuelve de vital importancia para los fabricantes de tecnología biométrica, no así para el desarrollo de este trabajo cuyo objetivo es desarrollar un sistema del rasgo biométrico reconocimiento facial utilizando algoritmos producto de estudios previos.

Procesos Del Reconocimiento De Patrones[editar]

  • Captura (sensor): La representación digital del rasgo biométrico tiene que ser capturada. El sensor biométrico es usualmente un sistema para capturar una imagen (excepto la identificación del hablador, que es una máquina de grabar voz). Normalmente, la información capturada se denomina muestra. A veces, el sistema de captura también incorpora otros periféricos para introducir información no biométrica o mostrar información.
  • Extracción de las características (feature extractor): Con el objetivo de facilitar la comparación, aumentar la información y reducir el ruido, la representación original digital (imagen digital) se procesa normalmente con un extractor de características para generar una representación compacta y más identificadora llamada registro de identificación o conjunto de características.
  • Creación de la plantilla (template generator): La plantilla es una forma compacta de representar un conjunto de muestras de una sola característica biométrica (por ejemplo, se puede crear una plantilla de dieciséis muestras diferentes de la imagen de la cara de una misma persona). El proceso de creación de la plantilla recibe como entrada los registros de identificación y crea una información más compacta donde se intenta extraer la información que persiste en todas las muestras puesto que se consideran los rasgos característicos. En algunos casos, esta plantilla está formada por una única muestra y por lo tanto se puede representar como un registro de identificación.
  • Comparación (matcher): El proceso de comparación recibe como entrada un registro de identificación y una plantilla y calcula una distancia entre los dos. A veces, en lugar de una distancia obtiene una probabilidad de que representen un mismo individuo. En el proceso de verificación, hay un umbral interno al sistema que solo lo puede modificar el administrador del sistema. Si la distancia es inferior al umbral (o la probabilidad es superior al umbral), el sistema considera que los dos datos provienen de la misma persona, de lo contrario, se considera que provienen de dos personas diferentes.
  • Selección o filtrado: En los sistemas de identificación con muchos datos (podemos hablar de 50 millones de huellas dactilares), el filtrado es un método para aumentar el tiempo de respuesta del sistema. Con técnicas típicas de las bases de datos, logran no tener que explorar la base de datos entera y así ganar tiempo.
  • ·Almacenamiento de los datos: Es el proceso para almacenar la información del usuario. Esta información está compuesta por un identificador único (por ejemplo, el número del DNI o del pasaporte), la plantilla biométrica y otros datos (por ejemplo, la dirección o la profesión). En función de la aplicación, los datos se almacenan en sistemas de almacenamiento centralizados (para poder llevar a cabo la identificación) o en tarjetas inteligentes (para poder llevar a cabo la verificación). Además, se aplican técnicas de encriptación con todos los datos para que así el registro formado por el número del DNI más los rasgos biométricos sea indivisible.
Procesos del reconocimiento de patrones

Tipos De Sistemas Biométricos  Genéricos[editar]

Los sistemas biométricos están basados en tres tipos de operaciones genéricas, los cuales son: registro, verificación e identificación.

  • Registro: A la hora de tener un sistema biométrico operativo, ninguna de las otras operaciones pueden darse si no se ha realizado esta previamente. El objetivo en este punto es añadir  un nuevo usuario a la base de datos con lo que es fundamental para tener una base de datos fiable y obtener un funcionamiento del sistema adecuado.
Sistema biométrico de registro
Sistema biométrico de registro
  • Verificación: Autentifican la identificación de la persona mediante la comparación del rasgo biométrico acabado de capturar con el rasgo biométrico que el sistema ha capturado antes en el proceso de inscripción al sistema.
Sistema biométrico de verificación
Sistema biométrico de verificación
  • Identificación: Reconocen a la persona a través de la busca del rasgo biométrico que más se asemeja al usado para identificarlo en toda una base de datos
Sistema biométrico de identificación
Sistema biométrico de identificación

Rendimiento Y Errores[editar]

En un sistema de biometría típico, la persona se registra con el sistema cuando una o más de sus características físicas y de conducta son obtenidos, procesada por un algoritmo numérico, e introducida en una base de datos. Idealmente, cuando entra, casi todas sus características concuerdan; entonces cuando alguna otra persona intenta identificarse, no empareja completamente, por lo que el sistema no le permite el acceso. Las tecnologías actuales tienen tasas de acierto que varían ampliamente (desde valores bajos como el 60%, hasta altos como el 99,9%).

Los errores en los sistemas biométricos pueden deberse a diversos cambios en los seres humanos y diversos factores ambientales. Dos muestras de un mismo rasgo biométrico de una persona no son exactamente iguales debido a diferentes condiciones de toma de imágenes, cambios psicológicos o de comportamiento del individuo, condiciones ambientales, etc.

En un sistema biométrico nos podemos encontrar con dos tipos de errores:

  1. Identificar dos muestras de dos individuos diferentes como si perteneciesen al mismo: falsa positivo (FM, false match).
  2. Identificar dos muestras de una misma persona como pertenecientes a una persona diferente: falso negativo (FR, false rejection).

Estos dos errores dan lugar a una falsa tasa de aceptación (FMR, false match rate) y a una falsa tasa de rechazo (FRR, false rejection rate o FNMR, false non match rate). Estos dos índices nos ayudan a evaluar el funcionamiento de nuestro sistema biométrico

A pesar de estas dudas, los sistemas biométricos tienen un potencial para identificar a individuos con un grado de certeza muy alto. La prueba forense del ADN goza de un grado particularmente alto de confianza pública actualmente y la tecnología está orientándose al reconocimiento del iris, que tiene la capacidad de diferenciar entre dos individuos con un ADN idéntico.

Limitaciones[editar]

La instalación correcta de los sistemas biométricos en las diversas aplicaciones civiles no implica que la biometría sea un completo problema resuelto.

Los sistemas biométricos que operan usando cualquier característica biométrica tienen las siguientes limitaciones:

  • Ruido en los datos obtenidos: Los datos obtenidos pueden ser ruidosas o distorsionados. Una huella digital con una cicatriz o una voz alterada por la gripe  son ejemplos de datos ruidosos. Datos ruidosos también podría ser el resultado de sensores defectuoso o mal mantenidos (por ejemplo, la acumulación de suciedad en un sensor de huellas digitales) o condiciones ambientales desfavorables (por ejemplo, la mala iluminación de la cara de un usuario en un sistema de reconocimiento facial). Datos biométricos ruidosos pueden ser emparejados incorrectamente con plantillas en la base de datos lo que resulta en un usuario siendo rechazado incorrectamente.
Efectos de imágenes con ruido
En la figura se puede apreciar el efecto de imágenes con ruido en un sistema biométrico. (a) de la huella digital obtenida de un usuario durante la inscripción. (b) la huella digital obtenida del mismo usuario durante la verificación después de tres meses. El desarrollo de cicatrices o cortes puede dar lugar a resultados que coinciden con la huella digital erróneas.
  • Variaciones intra-clase: Los datos biométricos adquiridos de un individuo durante la autenticación puede ser muy diferente de los datos que se utilizó para generar la plantilla durante la inscripción, lo que afecta el proceso de coincidencia. Esta variación es generalmente causada por un usuario que está interactuando incorrectamente con el sensor o cuando se modifican las características del sensor durante la fase de verificación. Como otro ejemplo, la variación psicológica de un individuo podría dar lugar a muy diferentes rasgos de comportamiento en diversas instancias  tiempo.Variación intra-clase asociada a la imagen de la cara de una persona con. Debido a cambios en pose, un sistema de reconocimiento facial por apariencia, no será capaz de reconocer estas tres imágenes con éxito, a pesar de que pertenecen a la misma persona, como se puede ver en la figura siguiente.
El cambio de pose en una imagen de la cara produce que un sistema de reconocimiento facial no tenga éxito
El cambio de pose en una imagen de la cara produce que un sistema de reconocimiento facial no tenga éxito
  • Distinción: Aunque se espera que un rasgo biométrico varíe significativamente para diferentes individuos, puede haber grandes similitudes entre clases en los conjuntos de características usadas para representar estos rasgos. Esta limitación restringe  la discriminabilidad proporcionado por el rasgo biométrico.
  • No universalidad: Aunque se espera que cada usuario posea el rasgo biométrico que se está adquiriendo, en realidad es posible para un subconjunto de los usuarios a no poseer un rasgo biométrico particular. Un sistema biométrico de huellas dactilares, por ejemplo podría ser incapaz de extraer características de las huellas dactilares de ciertos individuos, debido a la mala calidad de las crestas de los dedos. En la figura siguiente podemos ver un  ejemplo de "falta de inscripción" para las huellas digitales (con respecto a un sistema de reconocimiento de huellas dactilares dado): cuatro impresiones diferentes de dedo de un sujeto exhibiendo crestas de mala calidad debido a la extrema sequedad dedo. Un sistema de huellas dactilares dado (el uso de un determinado sensor y algoritmo de coincidencia) podría no ser capaz de inscribir este sujeto, la información de las crestas no se puede extraer de forma fiable.
Un ejemplo de "falta de inscripción" para las huellas digitales
Un ejemplo de "falta de inscripción" para las huellas digitales
  • Ataques de suplantación: Un impostor puede intentar suplantar la característica biométrica de un usuario inscrito legítima para eludir el sistema. Este tipo de ataque es especialmente relevante cuando se utilizan los rasgos de comportamiento tales como la firma y la voz. Sin embargo, los rasgos físicos son también susceptibles a estos tipos de ataques. Por ejemplo, se ha demostrado que es posible (aunque difícil y engorroso y requiere la ayuda de un usuario legítimo) para construir dedos artificiales / huellas digitales y una cantidad razonable de tiempo para eludir un sistema de verificación de huellas dactilares.

Aplicaciones[editar]

La gran cantidad de aplicaciones y servicios que los sistemas biométricos tienen en la actualidad nos permiten decir, sin lugar a dudas, que llegaron para quedarse y hacernos la vida más cómoda y segura.

Si prestamos atención a la evolución que las tecnologías biométricas han tenido a lo largo de los últimos diez años, podremos comprobar cómo han pasado de ser una tecnología utilizada fundamentalmente en el ámbito forense y en el campo científico y tecnológico, a una tecnología prácticamente indispensable en los sectores públicos y privados que están expandiendo sus raíces en áreas que demandan una seguridad avanzada.

Este cambio se debe a que las tecnologías biométricas han madurado, y ofrecen un altísimo grado de seguridad y confiabilidad para dar respuesta a las necesidades de identificación y verificación de la identidad de las personas. A media que crece la demanda de los gobiernos y empresas privadas para conseguir gestionar la identidad de ciudadanos y empleados, la industria de la biometría evoluciona para desempeñar un papel protagónico en el diseño de la economía del futuro.

En la actualidad existen tres ámbitos principales de aplicación de las tecnologías y sistemas biométricos: forense, gubernamental y comercial.

  • Aplicaciones forenses: Su uso data prácticamente desde el surgimiento de las técnicas biométricas. Aquí se emplea fundamentalmente en la identificación de criminales, la seguridad en prisiones, entre otras actuaciones policiales, investigación criminalística e informes periciales.
  • Aplicaciones gubernamentales y sector público en general: Existe una gran presencia de la biometría, siendo los gobiernos y las administraciones públicas de muchos países, el motor impulsor en el desarrollo de las tecnologías biométricas desde hace algunos años. Tanto es así, que es en el sector público donde se pueden encontrar las mayores inversiones, en gran medida destinadas a proyectos de defensa y a la seguridad nacional. Aplicaciones tales como la tarjeta de identificación nacional (cédula), licencia de conducir, carnet de seguridad social, control de pasaporte entre otras.
  • Aplicaciones comercial o privado: También se desarrollan proyectos de gran importancia, especialmente en sectores como el de atención de la salud y el financiero, los cuales están emergiendo y son los primeros en adoptar las innovaciones y adelantos técnicos en los sistemas biométricos. En los últimos años, casi todos los grandes bancos y aseguradoras, han implantado las tecnologías biométricas para el control de acceso a sus instalaciones, el control del fraude en los servicios de banca telefónica, así como para asegurar las transacciones remotas, tanto a través de Internet. También, muchos bancos en países desarrollados han adoptado la biometría para enfrentar los temas de fraude de identidad y para ofrecer a los clientes una alternativa de autenticación fácil y más práctica con respecto a las tarjetas y PINs para las transacciones, como por ejemplo las extracciones de los cajeros automáticos. Las grandes empresas creadoras de computadoras y celulares incorporan hoy día aplicaciones de acceso a  Internet, seguridad de la data electrónica, acceso a cuentas de celular, laptos entre otros dispositivos.

Historia Del Reconocimiento Facial[editar]

En la vida cotidiana normalmente no nos sorprendemos de nuestra capacidad para reconocer rostros, incluso de personas a las cuales no vemos desde hace años. Distintas edades, razas, lejos o cerca, con mala o buena iluminación, sin importar la circunstancia, siempre tenemos la capacidad de reconocer un rostro en base a nuestra experiencia previa o recuerdos.

Sin embargo, esta problemática no es tan simple cuando se intenta realizar por medios computacionales, utilizando hardware y software que tienen limitaciones y que dependen de la calidad de información previamente ingresada respecto del rostro que se desea identificar y de la metodología utilizada.

Dado lo anterior, el reconocimiento facial forma parte del área de estudio denominada biometría, cuyo propósito consiste en el desarrollo de métodos automatizados para la identificación o verificación de personas mediante características físicas o de comportamiento.

En particular, las primeras iniciativas de reconocimiento facial automatizado se remontan a los inicios de las década del 60, con la compañía norteamericana Panoramic Research en Palo Alto, California, la cual, con financiamiento del Departamento de Defensa de EEUU, desarrolló un sistema capaz de extraer características de un rostro mediante la asignación de coordenadas a distintos elementos tales como boca, nariz, ojos, cejas, etc., las cuales eran comparadas con una base de datos que contenía las coordenadas previamente ingresadas de distintas personas. La computadora calculaba la distancia entre los registros de la base de datos y los datos de la fotografía a identificar.

En los años 70 Goldstein, Harmon, & Lesk, usaron 21 marcadores subjetivos específicos tales como el color del cabello y grosor de labios para automatizar el reconocimiento facial. El problema con estas soluciones previas era que se computaban manualmente. En 1988 Kirby & Sirobich aplicaron análisis de componentes principales, una técnica estándar del álgebra lineal, al problema del reconocimiento facial. Esto fue considerado algo así como un hito al mostrar que eran requeridos menos de 100 valores para cifrar acertadamente la imagen de una cara convenientemente alineada y normalizada.

En 1991 Turk & Pentland utilizando las técnicas Eigenfaces, el error residual podía ser utilizado para detectar caras en las imágenes, un descubrimiento que permitió sistemas automatizados de reconocimiento facial en tiempo real fidedignos. Si bien la aproximación era un tanto forzada por factores ambientales, creó sin embargo un interés significativo en posteriores desarrollos de éstos sistemas.

El siguiente gran hito en este campo se produce a partir del año 2001 con el ataque de las torres gemelas en EEUU, donde la biometría cobra un gran auge. Los sistemas de seguridad utilizados en aeropuertos, y lugares públicos en general comienzan a requerir sistemas más sofisticados y confiables. También se produce un notable avance en el desarrollo tecnológico del hardware requerido, avanzando hacia dispositivos con cada vez más alta resolución y de costos cada vez más reducidos.

Hoy en día, los campos de uso del reconocimiento facial han desbordado el ámbito de la seguridad, llegando hacia áreas tales como: el marketing (personalización de ofertas en grandes tiendas y supermercados); redes sociales (Google, Facebook incorporan la búsqueda de personas en base al reconocimiento facial); aplicaciones para gestión de información multimedia (Picasa de Google, Apple Iphoto incorporan esta tecnología); etc.

El reconocimiento facial en video corresponde a un campo de la biometría relativamente nuevo, donde los principales estudios y aplicaciones se han desarrollados en los últimos siete u ocho años. Los sistemas de video-vigilancia han abarcado el mayor uso de esta tecnología, la cual presenta algunos desafíos que hasta hoy en día no han sido del todo resueltos, derivados principalmente del carácter no colaborativo de las personas en el contexto de un video, representado principalmente por la diversidad de iluminación, gesto y pose de los rostros, factores que no contribuyen al buen desempeño de los diversos algoritmos y métodos de reconocimiento facial.

Sistemas De Reconocimiento Facial[editar]

El sistema de reconocimiento facial es una aplicación dirigida por ordenador que identifica automáticamente a una persona en una imagen digital. Esto es posible mediante un análisis de las características faciales del sujeto extraídas de la imagen o de un fotograma clave de una fuente de video, y comparándolas con una base de datos.

El objetivo de un sistema de reconocimiento facial es, generalmente, el siguiente: dada una imagen de una cara "desconocida", o imagen de test, encontrar una imagen de la misma cara en un conjunto de imágenes "conocidas", o imágenes de entrenamiento. La gran dificultad añadida es la de conseguir que este proceso se pueda realizar en tiempo real.

El sistema identificará las caras presentes en imágenes o videos automáticamente. Puede operar en dos modos:

  • Verificación o autentificación de caras: compara una imagen de la cara con otra imagen con la cara de la que queremos saber la identidad. El sistema confirmará o rechazará la identidad de la cara.
  • Identificación o reconocimiento de caras: compara la imagen de una cara desconocida con todas las imágenes de caras conocidas que se encuentran en la base de datos para determinar su identidad.

Por su naturaleza amigable, este tipo de sistemas siguen siendo atractivos a pesar de la existencia de otros métodos muy fiables de identificación personal biométricos, como el análisis de huellas dactilares y el reconocimiento del iris.

Tareas Del Reconocimiento Facial[editar]

Un sistema de reconocimiento facial consta de dos tareas principales, las cuales han sido objeto de años de investigación, estas en primera instancia detectar que en una imagen o video hay un rostro y luego proceder a reconocer a quien pertenece ese rostro, así dando a conocer la identidad de la persona en cuestión.

Detección Facial[editar]

La detección del rostro es el primer paso en un sistema de reconocimiento facial. Dada una imagen o un video, un identificador de rostros debe ser capaz de identificar y localizar todos los rostros independientemente de su posición, escala, edad y orientación, la detección debe ser ajena, independientemente de las condiciones de iluminación así como el contenido de la imagen o video.

Reconocimiento Facial[editar]

El reconocimiento facial es el proceso de hacer corresponder la cara detectada a una de las muchas caras conocidas por el sistema de ficheros, base de datos. Existen multitud de algoritmos disponibles para llevar a cabo el reconocimiento facial.

Estado Del Arte De La Detección Facial Y Reconocimiento De Rostros[editar]

El reconocimiento facial (RF) automatizado por computadora es un área de investigación en pleno desarrollo. Identificar a una persona por medio de una imagen de su rostro implica emular el proceso cognitivo que realiza un ser humano al reconocer a sus pares. Aunque existen trabajos en el campo de la psicofísica y la neurociencia, aún no se sabe con certeza cómo funcionan estos procesos internamente en el cerebro humano.

Independientemente de la técnica utilizada para la solución, el RF requiere de tres etapas:

  • La detección del rostro en una imagen.
  • La extracción de características.
  • La identificación y/o verificación de la cara mediante la clasificación de las características.

En la identificación, el sistema informa la identidad de la persona, mientras que en la verificación confirma o rechaza esta. Cada una de estas áreas ha sido objeto de investigaciones, dando origen a diferentes técnicas para resolver cada problema.

El  reconocimiento  del rostro  es  una tarea  que  los humanos  realizan rutinariamente  y fácilmente en sus vidas diarias. Desarrollar algoritmos capaces de hacer esta tarea es uno de los desafíos fundamentales donde la investigación quiere llegar. Diferentes subareas y componentes  abarcan  el reconocimiento  facial,  detección, seguimiento,  alineamiento, extracción  de  rasgos, entrenamiento, identificación, clasificación,  análisis  de expresión facial,  análisis  en 2  y  3 dimensiones  entre  otros. Muchos  de  estos componentes comparten las mismas técnicas y algoritmos de reconocimiento de patrones y análisis de imágenes a  pesar  que apuntan  aplicaciones  distintas.

Detección[editar]

La detección del rostro es el primer paso en un sistema de reconocimiento facial. Dada una imagen o un video, un identificador de rostros debe de ser capaz de identificar y localizar todos  los  rostros independientemente  de  su posición,  escala,  edad y  orientación,  la detección debe ser ajena, independientemente de las condiciones de iluminación así como el contenido de la imagen o video.

Factores Que Afectan La Detección[editar]

El rostro humano es un objeto dinámico que tiene un alto grado de variabilidad en su apariencia lo cual hace que su detección sea un problema difícil de tratar en visión por computador. Construir sistemas completamente automáticos, robustos y eficientes que puedan analizar la información contenida en imágenes de caras representa una gran dificultad. Las caras varían según el sujeto, la pose, las condiciones de iluminación, expresiones fáciles, edad y otros factores que listaremos a continuación.

Algunos de los factores que afecta la detección facial son los siguientes:

  • Pose: La mayoría de los sistemas está enfocado a detectar rostros de manera frontal y variar el  ángulo de la imagen puede producir oclusiones en algunas características faciales como la nariz o los ojos  ocasionando mal rendimiento del sistema.
La pose afecta la detección facial
La pose afecta la detección facial
  • Oclusión: Barba, bigote y lentes, bufandas  inciden en el rendimiento del sistema y presentan un grado de variabilidad bastante alto ya que cambian la apariencia del rostro. Existen diferentes algoritmos para resolver esos problemas.
La presencia de componentes estructurales afecta la detección facial
La presencia de componentes estructurales afecta la detección facial
  • Iluminación: Los problemas creados por la iluminación se pueden apreciar en la figura siguiente, en la cual el mismo rostro con la misma expresión facial, y vista desde el mismo punto de vista, se ve diferente debido a los cambios de iluminación, estos suelen ser muy drásticos. Afectarán la respuesta del sistema en el posterior procesado.
  • La iluminación afecta a los sistemas de detección facial en el procesamiento de la imagen
    La iluminación afecta a los sistemas de detección facial en el procesamiento de la imagen
  • En una imagen puede aparecer un grupo de diferentes escalas de rostros como se puede apreciar en la figura siguiente, el tamaño o escala de un rostro puede ser tratado por un simple proceso de cambio de tamaño por deformación. Este proceso de transformación requiere de la localización de algunos puntos como los ojos, la nariz y boca.
La escala de un rostro en la imagen afecta el proceso de localización de puntos como los ojos, nariz y boca
La escala de un rostro en la imagen afecta el proceso de localización de puntos como los ojos, nariz y boca
  • Expresión facial: No es lo mismo una persona riendo, molesta o en estado soñoliento, su expresión facial es diferente lo que puede afectar en forma significativa la geometría del rostro, como se muestra en la figura siguiente. En algunas aplicaciones biométricas se rechazan imágenes que muestren alguna expresión incidiendo en el rendimiento, es un tema bastante difícil de resolver.
En algunas aplicaciones biométricas se rechazan imágenes que muestren alguna expresión
En algunas aplicaciones biométricas se rechazan imágenes que muestren alguna expresión
  • Orientación: La rotación de una imagen afecta la posible localización de caras, si el sistema solo está preparado para recibir imágenes en una posición en específico el rendimiento del mismo será afectado.
La rotación de una imagen incidiría en la posible detección de un rostro
La rotación de una imagen incidiría en la posible detección de un rostro
  • Edad: Es muy probable que suframos cambios significativos a través de la vida, nuestro rosto cambie y si las base de datos no son actualizadas el sistema tendría defectos en funcionamiento, todavía no existen técnicas para este problema.
Por la edad los rostros van cambiando y es necesario tener actualizadas la base de datos de imágenes
Por la edad los rostros van cambiando y es necesario tener actualizadas la base de datos de imágenes
Métodos De Detección De Rostros[editar]

Inicialmente el problema de detección del rostro en los sistemas de reconocimiento no recibió la atención necesaria y se partía de que el rostro ya había sido detectado, fue solo en la década de los ochenta que surgieron los primeros algoritmos, basados en técnicas heurísticas y antropométricas, y en la década de los noventa cuando el desarrollo de algoritmos de detección rostros inició su crecimiento, proponiéndose una gran variedad de técnicas, desde algoritmos básicos de detección de bordes hasta algoritmos compuestos de alto nivel que utilizan métodos avanzados de reconocimiento de patrones.

Actualmente se pueden distinguir cuatro grandes categorías de métodos de detección de caras, basados en el conocimiento, en caracteres invariantes, basados en plantillas y en apariencia.

  • Métodos basados en conocimiento: Estos métodos representan las técnicas de detección de caras que se basan en una serie de reglas previas definidas por la persona que quiere hacer la detección. Se definen una serie de características sobre las caras detectar (forma de la cabeza, dos ojos, una nariz, etc.). Esto puede suponer un problema y es que si estas reglas son muy generales, el resultado de una búsqueda en imágenes donde no hay caras, seguramente el resultado dirá que si hay caras y además una cantidad elevada. En el caso en que las reglas establecidas sean muy específicas posiblemente también aparezcan problemas ya que el resultado de la detección será muy bajo.
  • Aproximaciones de características invariantes: Estos métodos utilizan como punto de referencia el color de la piel y la textura, el problema que supone aplicar estos métodos es que si en la imagen aparece ruido o diferentes condiciones de iluminación el algoritmo aplicado no funcionará correctamente. Si se utiliza el color de la piel, los algoritmos que utilizan toda la gama de colores tienen mejor resultado que los que utilizan una escala de grises.
  • Métodos de coincidencia de plantillas: Estos métodos modelan geométricamente la forma del objeto. Las plantillas son las componentes básicas como por ejemplo círculos, elipses, etc. Una vez están definidas las plantillas se evalúa la correspondencia entre la cara y la plantilla. Las principales técnicas son las plantillas deformables y los contornos activos.
  • Métodos basados en apariencia: Esta técnica en un principio no necesita el conocimiento de las características de la cara de la imagen que se quiere detectar. En los algoritmos utilizados en estos métodos aparecen los conceptos de entrenamiento y de aprendizaje.
Métodos Basados En Conocimiento[editar]

El desarrollo de un sistema de detección facial basado en estos métodos implica que una serie de reglas son definidas antes de la implementación del sistema. Estas reglas se derivan del conocimiento del investigador sobre las caras humanas. En general estos métodos carecen de todo entrenamiento. El sistema se resume a lo que ha sido definido por el investigador que actúa como un límite sobre la efectividad de la detección.

El problema con ésta técnica es como crear un conjunto óptimo de reglas. Si son muy detallados se restringe la capacidad de generalización y si las reglas son muy generales incrementa el número de falsas detecciones. Esto se debe a que el buen funcionamiento dependerá también del conocimiento del investigador y de su experiencia para delimitar las reglas.

La estrategia de búsqueda descendente (top-down), propone un sistema de reglas a tres niveles, con resoluciones crecientes en las imágenes. Un ejemplo claro es el trabajo de Yang y Huang.

  • Primer nivel; usa la resolución más baja, se busca una distribución de intensidades, dada por un patrón de 5x5 píxeles, creado de forma natural.
  • Nivel intermedio; se define un criterio basado en detección de bordes sobre los candidatos resultantes del paso anterior.
  • Aquellos candidatos que pasen ambas criterios, se someten a otro test de mayor resolución con reglas orientadas a la distinción de cada uno de los componentes faciales por separado.

Los resultados experimentales de éste método, logra una capacidad de detección del 83% sobre un conjunto de 60 imágenes, pero tiene un 47% de falsas alarmas por imagen. Los métodos dentro de ésta categoría se ven sujetos a las enormes dificultades de expresar en un conjunto reducido de variables y/o reglas, la infinidad de cambios de apariencia que experimenta el rostro humano; por ello, se puede decir que es una línea abandonada.

Métodos Basados En Características Invariantes[editar]

Se da por hecho que deben existir características de bajo nivel, fáciles de calcular pero invariantes frente a un gran número de situaciones complejas. Frente a los algoritmos basados en conocimiento, el procesamiento suele seguir un camino ascendente: primero se extraen características de bajo nivel individualmente, y luego se agrupan utilizando descriptores estadísticos.

  • Bordes: La extracción de bordes del rostro ha sido una de las propiedades invariantes más utilizadas, tanto externos como internos, luego eran sometidos a un análisis de forma y posición. Para la extracción de bordes se utilizan distintos métodos, como el operador de Canny, convoluciones con segunda derivada de la gaussina, gradiente de Sobel, etc.
  • Descriptores de textura: Generalmente se definen tres tipos de texturas: piel, pelo y otras. La clasificación de los bloques se realiza mediante redes neuronales, y para la detección de caras un esquema que mida la ocurrencia de pelo y piel. También se puede añadir información de color para aumentar la relevancia del color anaranjado.
  • Color: Si bien he cierto que las imágenes en blanco y negro permiten una representación básica de la imagen para extraer propiedades, el color es una herramienta mucho más poderosa, entre otras cosas porque nos brinda mayor información, como por ejemplo el color de la piel humana (en sus diferentes variantes), esto ha permitido desarrollar algunas técnicas que detectan la raza para este tipo de técnicas se suele trabajar con un RGB normalizado.
Las imágenes en color brindan mayor información en la detección de los rostros
Las imágenes en color brindan mayor información en la detección de los rostros

Los métodos de detección basados en color presentan varios puntos débiles, en primer lugar la variación de los matices entre diferentes sistemas de adquisición y fuentes de iluminación, además de la perturbación por ruido y por compresión, es tan grande que hace inviable fijar un espacio universal para todos los colores de piel humana y la clasificación piel/no piel, no sería efectiva; incluso si éste método fuera perfecto, no es suficiente para detectar rostros, puesto que también encontraría manos, brazos, pies, etc.

  • Combinación de color, forma y proyecciones: Dentro de los métodos de rostros basados en invariantes, los más exitosos se encuentran entre los que hacen uso de diferentes características:
  1. Clasifica los pixeles en piel/no piel usando un modelo de color.
  2. Buscar rostros candidatos mediante agrupación de componentes conexos o con clustering de los píxeles de color de piel.
  3. Aplicar una etapa de verificación de candidatos, basada en comprobar la existencia de ojos, nariz y boca.

Existen otros muchos métodos ascendentes que combinan otros tipos de características que se aplican junto al color, como la estructura del rostro, los momentos geométricos, la simetría, y la profundidad.

Una limitación con estos algoritmos surge de la modificación de las características debido a la luminosidad, ruido, oclusiones, etc.

Métodos de coincidencia de plantillas[editar]

Se apoyan en modelos predefinidos manualmente, se distinguen dos categorías: los que manejan patrones predefinidos, y los que permiten patrones deformables.

  • Patrones predefinidos: El uso de operadores de bordes es una de las elecciones más frecuentes; es decir, no se crean modelos de las imágenes de intensidad, sino de las imágenes de bordes. Se realiza un proceso de agrupación de contornos y se buscan tres curvas que puedan corresponder a los bordes de la cara, el porcentaje de detección se estima en un 70%. Otra forma de aplicar patrones basados en bordes es dividir el rostro en bloques, donde cada una tiene información de luminosidad y nivel de bordes del mismo.
  • Patrones deformables: Permiten cierta flexibilidad en el ajuste de un modelo de rostro. Estos métodos definen una función de energía, que mide el grado de ajuste en cada momento. Básicamente, la energía consta de dos componentes: uno interno y otro externo. El externo tiende a ajustar al máximo el modelo a la instancia actual, mientras que el interno hace que el ajuste actual mantenga una forma coherente y compacta.

La aplicación de una plantilla es similar a los métodos basados en conocimiento, ya que el conocimiento de las características faciales o bien puede ser aprendido y construir así una plantilla dinámica, o bien puede ser predefinido. La aplicación de una plantilla podría realizarse a diferentes escalas debido a la simpleza de muchas plantillas que se relacionan simplemente con la simetría de las características faciales y con las distancias relativas. Sin embargo, como se ha dicho, utilizar solamente estos métodos no es muy efectivo con lo que a menudo suelen utilizarse junto a otras técnicas basadas en características invariantes.

Métodos Basados En Apariencia[editar]

Anteriormente los métodos de coincidencia de plantillas se basaban en una definición de las plantillas por parte del investigador. Sin embargo, en los métodos basados en apariencia aprenderemos de ejemplos en imágenes. En general estos métodos se basan en técnicas de análisis estadístico y aprendizaje automático para encontrar características relevantes de imágenes faciales o de imágenes que no contengan caras. Las características aprendidas se expresan como modelos de distribución o funciones discriminantes que son utilizadas para la detección facial. Muchas son las técnicas utilizadas: eigenfaces, métodos basados en distribuciones, redes neuronales, máquinas de vectores de soporte, clasificadores bayesianos, modelos de Markov, etc.

La cuestión fundamental es entrenar un clasificador binario a partir de un conjunto amplio de ejemplos de caras y de no caras. Por ello a veces estas técnicas se denominan también basadas en aprendizaje.

Los resultados prácticos de estos métodos son:

  • Son capaces de manejar situaciones complejas, con imágenes de escasa resolución, baja calidad y un número arbitrario de rostros por imagen.
  • Pueden presentar un riesgo de sobre-ajuste a los datos de aprendizaje, de manera que el entrenamiento del clasificador se convierte en el aspecto clave.
  • El funcionamiento exhaustivo del proceso implica un elevado coste computacional que en general será uno de los principales inconvenientes.
Métodos De Reconocimiento De Rostros[editar]

Hay dos familias de técnicas de reconocimiento facial: técnicas basadas en la apariencia y técnicas basadas en modelos. En cada una de estas familias, se encuentran varios métodos para caracterizar la imagen, aunque en este estudio solo se tratarán algunos de los métodos basados en la apariencia.

Clasificación de los métodos de reconocimiento de rostros
Clasificación de los métodos de reconocimiento de rostros

Existen multitud de algoritmos disponibles para llevar a cabo el reconocimiento facial de entre los que se destacan:

  • Eigenfaces o método de Análisis de Componentes Principales (PCA).
  • Fisherfaces o método de Análisis Lineal Discriminante.
  • Métodos Kernel.
  • Métodos de reconocimiento facial 3D.
  • Método de Gabor Wavelets.
  • Modelos ocultos de Markov.
  • Modelos de Apariencia Activa.

Para éste desarrollo se ha utilizado el método de las Eigenfaces por ser uno de los más simples de implementar.

En esta trabajo se hará uso de métodos basados en la apariencia, los cuales para el reconocimiento de imágenes requiere de los bloques que podemos encontrar en la figura

Bloques de un método de reconocimiento facial basado en apariencias
Bloques de un método de reconocimiento facial basado en apariencias
Técnicas Basadas En Apariencias[editar]

Los sistemas basados en la apariencia se utilizan directamente sobre las imágenes sin hacer uso de modelos 3D. Estos tipos de sistemas representan un objeto en función de diferentes vistas del mismo. En estos sistemas cada imagen se representa como un punto en un subespacio vectorial, de forma que la comparación entre la imagen de prueba y las imágenes de referencia se realiza en el subespacio vectorial caras. El objetivo de estos algoritmos es clasificar las diferentes caras en el nuevo subespacio, pero para ello será necesario entrenar previamente el sistema con imágenes de diferentes caras con diferentes vistas.

Los métodos basados en apariencia presentan las siguientes ventajas y desventajas:

  •  Ventajas:
    • Más rápidos.
    • Requieren de un menor tamaño de las imágenes.
    • Menor complejidad
    • No requieren de un conocimiento previo de las imágenes.
  • Inconvenientes:
    • Más afectados por cambios en la orientación o expresión de la cara.
    • Más dificultades frente a cambios en la iluminación.
  • Lineales:Reconocen según toda la imagen facial. Son métodos basados en correlación. El esquema de clasificación más simple, donde se utilizan modelos de comparación para el reconocimiento, es el template matching. El problema del template matching es que ha de comparar muchas características (para él, un pixel es una característica), y si tenemos en cuenta que en la base de datos encontramos M personas, con N imágenes por persona, observamos que este método no se puede implementar en tiempo real. Por lo tanto, se trabaja con otros métodos que decorrelacionan las características entre sí para conseguir reducir el espacio facial en un número menor de coeficientes, que tengan un alto poder discriminatorio entre las personas. Es lo que se denomina subespacio facial. Ejemplos de métodos que trabajan a partir de subespacios son el Análisis de Componentes Principales (PCA - Principal Component Analysis) a partir de eigenfaces, el Análisis Linear Discriminant (LDA - Linear Discriminant Analysis) o el Discriminante Linear de Fisher (FLD - Fisher Linear Discriminant) a partir de fisherfaces. La técnica PCA se considera una de las que proporciona un mayor rendimiento. Funciona proyectando las imágenes faciales sobre un espacio de facciones que engloba las variaciones significativas entre las imágenes faciales conocidas. Las facciones significativas se llaman eigenfaces, ya que son los eigenvectors, o componentes principales, del conjunto de caras. La proyección caracteriza la imagen facial de un individuo como la suma de los diferentes pesos de todas las facciones y, de la misma manera, para reconocer una imagen facial determinada sólo hará falta comparar estos pesos con aquellos de los individuos conocidos previamente. No tiene en cuenta la información de qué imágenes pertenecen a un mismo individuo. Es muy sensible a cambios en las condiciones de iluminación en diferentes imágenes de una misma persona. El método LDA permite utilizar la información entre miembros de la misma clase (imágenes de la misma persona) para desarrollar un conjunto de vectores de características donde las variaciones entre las diferentes caras se enfatizan mientras que los cambios debidos a la iluminación, expresión facial y orientación de la cara no. Es decir, maximiza la variancia de las muestras entre clases, y la minimiza entre muestras de la misma clase.La técnica FLD es equivalente al LDA. Los resultados obtenidos con FLD son bastante mejores que los que podemos obtener con PCA, sobre todo cuando las condiciones lumínicas varían entre el conjunto de imágenes de entrenamiento y de test, y también con cambios de expresión facial, dando más peso a zonas como los ojos, la nariz o las mejillas que a la boca, porque son zonas más invariables en las diferentes expresiones que puede tener una persona.Otros métodos, en vez de utilizar subespacios faciales, siguen una clasificación por redes neuronales y plantillas deformables, como EGM - Elastic graph matching.
  • No Lineales: Se comparan diferentes características geométricas de las caras. Existen dos divisiones, la basada en los vectores característicos extraídos del perfil, y la basada en los extraídos a partir de una vista frontal. Se utilizaba mucho anteriormente pero sus resultados no son óptimos.
Técnicas Basadas En Modelos[editar]

Por otro lado están los sistemas basados en modelos, los cuales intentan construir un modelo lo más descriptivo posible de la cara humana capaz de detectar con precisión las variaciones faciales.

Estos sistemas tratan de obtener características biométricas de las imágenes para realizar el reconocimiento distancia entre ojos, grosor de la nariz, etc. Habitualmente estas técnicas requieren de imágenes de gran resolución. Cuando se utilizan estos sistemas, el algoritmo sabe con antelación el objeto que ha de representar y lo que intenta hacer es que corresponda la cara real con el modelo.

  • Dos Dimensiones (2D): Esta tendencia utiliza los detalles visuales de la piel. Analiza las líneas únicas, patrones y detalles evidentes como manchas y/o cicatrices del rostro del sujeto. Al utilizar este algoritmo nos ahorramos tener que recorrer toda la base de datos ya que podemos descartar imágenes fácilmente. Hay estudios que demuestran que utilizando esta técnica, juntamente con el reconocimiento facial, el rendimiento puede aumentar hasta un 25 por ciento.
  • Tres Dimensiones (3D): Últimamente ha incrementado la tendencia del reconocimiento facial tridimensional, donde se utilizan imágenes 3D tanto en el entrenamiento como en el reconocimiento. Esta técnica utiliza sensores en 3D para captar información sobre la forma de la cara. Esta información se utiliza posteriormente para identificar rasgos característicos del rostro como por ejemplo la barbilla, el contorno de los ojos, la nariz o los pómulos, y reteniendo información espacial, a parte de la textura y la profundidad. Una ventaja del reconocimiento facial en 3D es que no les afectan los cambios de iluminación, como pasa en el caso de otras técnicas. Además, otro punto a favor es que pueden reconocer una cara en diferentes ángulos, incluso de perfil. El problema es que es difícil obtener imágenes 3D fidedignas en la fase de reconocimiento, ya que los sensores 3D tienen que estar muy bien calibrados y sincronizados para adquirir la información correctamente. Es por eso que se utiliza el método de Análisis de Componentes Principales Parcial (P2CA - Partial Principal Component Analysis), derivado del PCA, donde se utilizan imágenes en 3D en la fase de entrenamiento y en la base de datos, pero en la fase de test puede utilizar tanto imágenes en 2D como en 3D. La técnica intenta reconstruir modelos faciales en 3D a partir de múltiples imágenes de la misma persona adquiridas mediante un sistema multicámara o a partir de aparatos 3D. Las imágenes 3D son imágenes de 180º en coordenadas cilíndricas. Otros ejemplos de técnicas 3D son 3-D Morphable Model i 3-D Face Recognition.

Detección De Rostros Usando Clasificadores En Cascada[editar]

De los diversos métodos de detección de rostros, el método de Viola y Jones basado en Adaboost ha sido el más eficaz de todos los trabajos desarrollados. Su sistema se considera el primero que detecto rostro en tiempo real.  Detallaremos esta técnica, la cual he elegido para desarrollar la implementación de detección de rostros en este trabajo.

Uno de los aportes más interesantes planteados por Viola y Jones es un método que se distingue de los anteriores por su velocidad. Según los autores, operando sobre imágenes de 384 por 288 píxeles se detectarían caras a una velocidad de 15 frames por segundo utilizando un ordenador Pentium III de 700 MHz. Además de esto podemos diferenciar tres grandes aportes de esta técnica:

  • La imagen integral que nos posibilita realizar una rápida evaluación de las características.
  • Un clasificador eficiente que utiliza el método de Adaboost para seleccionar grupos de características, que serán las que se utilicen para llevar a cabo la detección.
  • Un método de combinación de los clasificadores de manera eficiente tanto para la detección como para el tiempo que tome la misma.
Bloques de la detección de rostros con clasificadores en cascada
Bloques de la detección de rostros con clasificadores en cascada

Viola y Jones presentaron un método de detección de objeto basado en un algoritmo en cascada usando descriptores simples llamados los descriptores de “Haar” que pueden ser calculados de modo eficaz utilizando una representación intermediaria de la llamada imagen integral. Propusieron también un procedimiento de clasificación a varias etapas el cual reduce considerablemente el tiempo de ejecución.

El principio de base del algoritmo de Viola y Jones es explorar una sub-ventada capaz de detectar rostros a través de una imagen de entrada. El acercamiento estándar en procesamiento de imagen sería escalar la imagen de la entrada a diversos tamaños y después convertir la ventada del detector en tamaño fijo en las imágenes. Este acercamiento resulta ser bastante largo en tiempo de cálculo debido al cálculo de las diversas imágenes en diferentes escalas.

Al contrario el acercamiento propuesto por Viola y Jones permite transformar en diferentes escalas el detector en vez de la imagen de la entrada y de esta manera el detector es aplicado muchas veces a la imagen, cada vez un tamaño diferente. Como se puede apreciar, ambos acercamientos son igualmente largos en tiempos de cálculo, pero Viola y Jones ha tenido la idea de un detector invariante de la escala que requiere el mismo número de operaciones en cualquier escala.

Este detector se construye usando una imagen integral supuesta y algunas características rectangulares derivadas de las wavelet de Haar.  Más adelanta explicaremos cada uno de los bloques principales de esta técnica.

Características De Haar[editar]

En imágenes las características de cada objeto se extraen al aplicar ciertas funciones que permiten la representación y descripción de los objetos de interés de la imagen, sabiendo que el valor de un punto de la imagen solo nos informa sobre el color en ese punto, entonces se debe buscar patrones para asignar los objetos a determinadas clases. Para ello se crearon los filtros de Haar siendo una técnica más elaborada para encontrar detectores basados en características más globales del objeto. Estos descriptores guardan relación con los wavelet de Haar propuestos por Alfred Haar en 1909 y por tal motivos se llaman así.

Un filtro de Haar es la combinación de varios rectángulos entre dos y cuatro rectángulos que son adyacentes en la dirección horizontal o vertical. Los filtros de Haar son funciones que permiten acentuar la diferencia de contraste entre diferentes regiones rectangulares adyacente en una imagen.

El sistema de detección de Viola y Jones utiliza grupos de características simples para llevar a cabo la detección. El uso de estas características posibilita una velocidad mucho mayor a la hora de detectar caras frente a un sistema basado en píxeles.

Un filtro es representado por un rectángulo definido por su vértice, su altura, su longitud y sus pesos (negativo o positivo, de cada rectángulo).

Representación de un descriptor de Haar sobre una imagen de 24 x 24 pixeles
Representación de un descriptor de Haar sobre una imagen de 24 x 24 pixeles

Viola y Jones utilizan descriptores simples y son los siguientes:

  • Filtro de dos rectángulos: La diferencia entre la suma de los pixeles de ambas regiones rectangulares. Las regiones tienen el mismo tamaño, forma y están horizontalmente o verticalmente adyacentes.
  • Filtro de tres rectángulos: Es la suma de los pixeles en ambos rectángulos exteriores sustraídos por la suma en el rectángulo central.
  • Filtro de cuatro rectángulos: Es la diferencia entre los pares diagonales de los rectángulos.
Descriptores bases utilizados por Viola y Jones
Descriptores bases utilizados por Viola y Jones

Los rectángulos que están marcados en negro representan aquella parte del filtro que van a darnos una contribución positiva al resultado final mientras que los rectángulos marcados en blanco son aquellas partes del filtro que nos van a dar una contribución negativa al resultado final del filtro. Así cuando aplicamos un filtro dado en una posición dada en una imagen, el resultado final va a ser la diferencia entre la suma de intensidad de todos los pixeles que están situados en el rectángulo negro,  menos la suma de intensidad de todos los pixeles que están situados en el rectángulo blanco.

Descriptores sobre los pixeles de una imagen
Descriptores sobre los pixeles de una imagen

En la figura anterior se tiene la representación en pixeles de una imagen y calculamos el  primer filtro de Haar  de la siguiente manera:

Al aplicar los filtros de Haar en una imagen se deben tener en cuenta los siguientes puntos:

  • Cada filtro se aplica a todas las posibles escalas horizontal y vertical.
  • Cada escala se aplica en todas las posibles posiciones de la imagen.
  • El resultado de aplicar cada filtro en cada escala y posición es una característica de Haar.
  • Imágenes de 24 x 24 pixeles generarían 16336 características.

De manera simplificada, las características pueden ser vistas como evaluaciones de la intensidad de conjuntos de píxeles. La suma de la luminancia de los píxeles en la región blanca se resta de la suma de los píxeles en la región oscura. El valor obtenido mediante la diferencia es el valor de la característica y puede combinarse con otros formando hipótesis en regiones de una imagen.

Aplicación de filtros de Haar
Aplicación de filtros de Haar

Para obtener  un mejor rendimiento se incluyeron los filtros de Haar extendidos. Un grupo de estos nuevos filtros se obtiene simplemente como rotación de los filtros básicos que hemos visto anteriormente. De esta forma podemos detectar características orientadas a 45 grados y no solo en las direcciones horizontal y vertical. Otro grupo de filtros se añade modificando los que ya teníamos, por ejemplo en estos casos extendiendo o añadiendo un rectángulo negro en la parte central y en estos dos casos de aquí añadiendo nuevas configuraciones en la que el filtro será la diferencia entre la zona exterior y la zona central del filtro. Evidentemente estas características además de mejorar el rendimiento del método para suponer una mayor dimensionalidad, un mayor número de características a calcular. Sin embargo, el número de características que se añaden con estas nuevas configuraciones es menor que el número de características inicial que teníamos con los filtros básicos.

Filtros de Haar extendidos
Filtros de Haar extendidos
Imagen Integral[editar]

Viola y Jones buscaron dar velocidad y eficiencia a la detección facial y para ello implementaron el concepto de imagen integral, la representación de una nueva imagen. Esta imagen permite extraer de forma rápida características a diferentes escalas ya que no se trabaja directamente con los valores de intensidad si no con una imagen acumulativa que se construye a partir de operaciones básicas.

Los descriptores rectangulares pueden ser calculados de modo eficaz utilizando una representación intermedia de la imagen llamada la imagen integral. Esta imagen, resultado del trabajo publicado por Crow, es obtenida a partir de un algoritmo que permite generar de manera eficiente y rápida la suma de los valores de un rectángulo adentro de una imagen.

El concepto de la imagen integral es fácilmente comprensible. Esta estructura se construye tomando la suma de los valores de luminancia de los píxeles que se encuentran por encima y a la izquierda de un cierto punto en la imagen.

Viola y Jones presentan la imagen integral que es una matriz del mismo tamaño que la matriz de la imagen original  donde cada elemento de la imagen integral a la posición (x,y) contiene la suma de todos los pixeles localizados en la región superior izquierda de la imagen original.

Representación gráfica de la imagen integral
Representación gráfica de la imagen integral

En la figura anterior el valor de la imagen integral al punto (x,y) es igual a la suma de todos los pixeles situados encima  y a la izquierda.

II(x,y) es la imagen integral y I(x,y) es la imagen original. Usando las siguientes operaciones:

Donde S(x,y)  es una acumulada en línea y S(x,-1) = 0 y II(-1,y) = 0

La importancia de la imagen integral se basa en la capacidad de calcular rápidamente la suma de píxeles dentro de un área determinado de la imagen. Utilizando esta representación cualquier suma de píxeles en un rectángulo correspondiente a un descriptor puede ser calculada a partir de cuatro referencias.

Suma de pixeles en un área determinada de la imagen
Suma de pixeles en un área determinada de la imagen

Suma del área blanca = D+A-(B+C)

Convolución de un filtro Haar
Convolución de un filtro Haar

En la figura anterior, se muestra la convolución de un filtro Haar con la imagen integral. De esta operación se puede extraer una característica en un tiempo constante sobre la imagen integral adicionando y sustrayendo los valores delos vértices para cada rectángulo. Para mayor claridad, en la figura la suma de los píxeles que forman el rectángulo D se puede calcular como:

suma de pixeles filtros de Haar
suma de pixeles filtros de Haar

Donde 1, 2, 3, 4, son los valores dados en la imagen integral en dichas localizaciones.

Importancia De Los Descriptores De Haar[editar]

En imágenes las características de cada objeto se extraen al aplicar ciertas funciones que permitan la representación y descripción de los objetos de interés de la imagen (patrones). La extracción de características es un paso en el reconocimiento de patrones en el cuál las medidas u observaciones son procesadas para encontrar a tributos que puedan ser usados para asignar los objetos a determinada clase. Los filtros Haar ayudan a la extracción de estas características. Aplicados sobre la imagen integral estos filtros pueden ser calculados eficientemente, son selectivos en la orientación espacial y frecuencia, y permiten ser modificados en escala y orientación.

Los filtros con bases Haar, realizan una codificación de diferencia de intensidades en la imagen, generando características de contornos, puntos y líneas, mediante la captura de contraste entre regiones.

Filtros Haar rotados, trasladados y con cambios de escala
Filtros Haar rotados, trasladados y con cambios de escala

La gran ventaja del uso de los filtros  siendo atributos simples en comparación con otros medios de análisis local tal como los filtros orientados, es que representan un conjunto significativo de filtros, que tienen la propiedad de ser evaluado en cualquier escala y cualquier lugar mediante muy pocas operaciones.

Algoritmos De Aprendizaje[editar]

Una vez encontradas las características dentro de una imagen, más bien dentro de un conjunto de imágenes de entrenamiento, el objetivo del sistema es encontrar aquellas características que mejor definan una cara y nos ayuden a localizarla en una imagen.

En los trabajos de Viola y Jones una versión del algoritmo de aprendizaje conocido bajo el nombre de Adaboost, que significa “adaptative boosting”, una variante de los trabajo de Freund y Shapire; se empleó para elegir los descriptores y formar una función de clasificación. Es uno de los algoritmos más utilizados en aprendizaje automático.

El algoritmo se utiliza para mejorar el rendimiento de un algoritmo de aprendizaje simple. Este algoritmo simple se llama clasificador simple o weak learner en el idioma inglés.

Clasificador Simple[editar]

El algoritmo de aprendizaje Adaboost se basa en la combinación de clasificadores muy simples y también conocidos como weak learners para obtener una clasificación eficiente de los datos, cada clasificador simple se aprende dando un peso diferente a cada ejemplo; se da un peso mayor a los ejemplos mal clasificados por los clasificadores previos, se da un peso menor a los ejemplos bien clasificados por los clasificadores anteriores

Ponderación de pesos hasta obtener un clasificador fuerte
Ponderación de pesos hasta obtener un clasificador fuerte

En relación a esto, un weak lerner, hj, es una estructura simple que contiene una característica f, un umbral θ y una paridad p. La salida del clasificador es binaria y depende de si el valor de una característica se encuentra por encima o debajo de un umbral.

Las características de un clasificador débil como muestra la figura siguiente:

  • Es un árbol de decisión binario de profundidad 1.
  • Cada clasificador depende de una sola característica de Haar.
Características de un clasificador débil
Características de un clasificador débil

Los clasificadores simples que se utilizan pueden verse como nodos de decisión en estructuras en árbol. Teniendo en cuenta que hay una gran cantidad de características en una imagen de 24x24 píxeles, el algoritmo Adaboost debe seleccionar las características que mejor diferencien entre caras y no caras dentro de un conjunto de imágenes, y en él recala la mayor parte del trabajo del entrenador.

En el proceso de aprendizaje se tienen que dar los siguientes pasos:

  • Parámetros: umbral, signo.
  • Búsqueda exhaustiva por el espacio de posibles umbrales.
  • Minimización del error ponderado por el peso de cada ejemplo.
Proceso de aprendizaje de un clasificador simple
Proceso de aprendizaje de un clasificador simple

La clasificación es un componente muy importante en los sistemas inteligentes. El problema que se plantea a la hora de realizar una clasificación consiste en decidir a qué clase pertenece un objeto. Sobre dicho objeto realizamos varias mediciones, que son las llamadas características”.

La selección de características  viene dada por los siguientes pasos:

  • En cada iteración del proceso de aprendizaje, se entrena un clasificador débil para cada una de las características de Haar (tipo de filtro, posición, escala).
  • Se selecciona el clasificador débil con error mínimo.
Selección de características
Selección de características
El Boosting[editar]

Boosting fue introducido por Freund y Shapire, este es un método de clasificación que combina varios clasificadores básicos para formar un único clasificador más complejo y preciso. La idea se basa en la afirmación de que varios clasificadores sencillos, cada uno de ellos con una precisión ligeramente superior a una clasificación aleatoria, pueden combinarse para formar un clasificador de mayor precisión, siempre y cuando se disponga de un número suficiente de muestras de entrenamiento.

Para aplicar la técnica de boosting primero se debe establecer un algoritmo de aprendizaje sencillo (clasificador débil o base), que será llamado repetidas veces para crear diversos clasificadores base. Para el entrenamiento de la clasificadora base se emplea, en cada iteración, un subconjunto diferente de muestras de entrenamiento y una distribución de pesos diferente sobre las muestras de entrenamiento. Finalmente, estos clasificadores base se combinan en un único clasificador que se espera sea mucho más preciso que cualquiera de los clasificadores base por separado.

La ventaja principal de Adaboost es su velocidad de aprendizaje. En este algoritmo los pesos se asignan de manera que favorezcan la clasificación de las caras, consiguiendo que estos ejemplos tengan mayores pesos o importancia.

Las mejores características se eligen basándose en el error ponderado que se produce. Este error ponderado es una función que utiliza los errores pertenecientes a los ejemplos de entrenamiento. El peso de un ejemplo clasificado correctamente se modifica mientras que el peso de un ejemplo mal clasificado se mantiene constante. Con esto se consigue que sea más difícil que la segunda característica clasifique erróneamente un ejemplo que haya sido clasificado erróneamente por la primera característica frente a un ejemplo clasificado correctamente por esa primera característica. Otra manera de ver esto sería que la segunda característica, y las sucesivas, se ven forzadas a tomar más en cuenta los ejemplos clasificados erróneamente por características anteriores.

A continuación se muestra el algoritmo de Adaboost:

Dado un conjunto de imágenes   donde  para muestras negativas y positivas respectivamente.

 El Detector De Clasificadores En Cascada[editar]

La principal motivación para introducir una cascada de clasificadores viene de observar que el número de caras que realmente podemos encontrar en una imagen es muy limitada. Sin embargo, el detector se va a evaluar utilizando el método de ventana deslizante. El principio básico del algoritmo de detección facial de Viola y Jones consiste en intentar descartar el mayor número posible de estas ventanas que no contienen una cara con el mínimo esfuerzo, para poder concentrar un mayor esfuerzo computacional en aquellas ventanas que realmente tienen una mayor probabilidad de ser una cara.

Ventanas de clasificación en una imagen
Ventanas de clasificación en una imagen

La cascada de clasificadores nos va a permitir alcanzar este objetivo mediante una combinación secuencial de clasificadores, de forma que una imagen solo será detectada como cara si realmente es reconocida de forma correcta como cara, por todos los clasificadores de la cascada. Solo que uno de estos clasificadores rechacen la imagen como cara, la imagen quedará rechazada. Así, el primer clasificador va a recibir como entrada todas las posibles ventanas de una imagen. Todas aquellas que rechace este primer clasificador, quedarán descartadas. Las que este clasificador acepte, se pasarán como entrada al segundo clasificador. Este proceso se va a ir repitiendo hasta llegar al último clasificador. Solo las imágenes que sean reconocidas como cara por este último clasificador y por lo tanto, que también habrán sido reconocidas como cara por todos los anteriores van a ser la detección final de caras que va a producir el detector. De esta forma, la reducción en el tiempo de cálculo se obtiene a partir de combinar dos factores. Por un lado, el número de imágenes que se va procesando a medida que avanzábamos por la cascada se va reduciendo. Por otro lado, el número de características que se va a utilizar en los primeros clasificadores va a ser muy bajo, con lo que podremos descartar muchas imágenes de forma muy rápida.

Una imagen solo es reconocida como cara si todos los clasificadores la aceptan
Una  imagen solo es reconocida como cara si todos los clasificadores la aceptan

Aprendizaje de un nivel de la cascada:

  • Cada nivel de la cascada será un clasificador “fuerte” entrenado con Adaboost. Adaptado para cumplir con un objetivo determinado de falsos positivos (FP) y falsos negativos (FN).
Cada nivel de cascada es un clasificador fuerte
Cada nivel de cascada es un clasificador fuerte
  • Fijamos objetivo máximo de falsos positivos (falsas detecciones de caras) y falsos negativos (caras no detectadas).
  • Se introduce un margen (S) para cumplir con estos objetivos.
  • Búsqueda iterativa del mejor margen.
Fijación de margen para la búsqueda de FP y FN
Fijación de margen para la búsqueda de FP y FN

Si no se puede cumplir el objetivo de falsos positivos y falsos negativos, se reentrena un nuevo clasificador “fuerte” añadiendo más características al clasificador.

Número máximo de características por nivel.

Reentrenamiento de un nuevo clasificador
Reentrenamiento de un nuevo clasificador
Aprendizaje global de la cascada
Aprendizaje global de la cascada

Reconocimiento Facial Con  Análisis De Componentes Principales[editar]

El reconocimiento facial es una tarea fácil para los seres humanos. Los experimentos de  Chiara Turati y Viola Macchi Cassia han demostrado que incluso a los tres días de edad los bebés son capaces de distinguir entre las caras conocidas.

En la vida cotidiana normalmente no nos sorprendemos de nuestra capacidad para reconocer rostros, incluso de personas a las cuales no vemos desde hace años. Distintas edades, razas, lejos o cerca, con mala o buena iluminación, sin importar la circunstancia, siempre tenemos la capacidad de reconocer un rostro en base a nuestra experiencia previa o recuerdos.

Entonces, ¿qué tan difícil puede ser para un ordenador? Resulta que sabemos poco acerca de reconocimiento humano hasta la fecha. ¿Son características internas (ojos, nariz, boca) o características externas (forma de la cabeza, la rayita) utilizados para el éxito de reconocimiento facial? ¿Cómo se analiza una imagen y cómo hace el cerebro para codificarlo? Se demostró por David Hubel y Torsten Wiesel, que nuestro cerebro tiene células nerviosas especializadas que responden a las características locales específicas como líneas, aristas, ángulos o movimiento. Dado que no se ve el mundo como piezas dispersas, nuestra corteza visual debe combinar de alguna manera las diferentes fuentes de información en patrones útiles. El Reconocimiento automático de la cara tiene que ver con la extracción de las características significativas de una imagen, poniéndolos en una representación útil y la realización de algún tipo de clasificación de estas características.

En este capítulo explicaremos la técnica que emplearemos para el desarrollo de esta proyecto y realizar el reconocimiento de rostros, ACP (Análisis de Componentes Principales) método ampliamente utilizado para el reconocimiento de rostros y que además es la base para muchos otros algoritmos de reconocimiento facial.

¿Qué Es Análisis De Componentes Principales (ACP)?[editar]

El análisis de componentes principales tiene sus antecedentes en psicología, a través de las técnicas de regresión lineal iniciadas por Galton. Específicamente, Pearson (1901) presentó la primera propuesta del método de componentes principales. Sin embargo, el nombre de “componentes principales” y su primer desarrollo teórico se deben a Hotteling (1933), quien desarrolló un método de extracción de factores.

Por su parte, Thurstone (1947), expresó la relación entre las correlaciones y las saturaciones de las variables en los factores. Asimismo, introdujo el concepto de estructura simple y desarrolló la teoría y método de las rotaciones factoriales para obtener la estructura factorial más sencilla. En un principio las rotaciones eran gráficas. Kaiser (1958) desarrolló el método denominado VARIMAX para realizar rotaciones ortogonales mediante procedimientos matemáticos. Dicho método, es el que actualmente utilizan los diversos paquetes computacionales, como SPSS y SAS.

El análisis de componentes principales se empleó inicialmente (y se sigue utilizando), en la psicología, las ciencias sociales y naturales. Sin embargo, desde hace algunos años se ha visto lo útil de su aplicación en las ciencias físicas, la ingeniería, la economía, la educación, el reconocimiento de patrones, etc. Por otra parte, a Fukunaga (1972), se le considera como el primer investigador en aplicar el análisis de componentes principales al reconocimiento de patrones.

En estadística, el análisis de componentes principales es una técnica utilizada para reducir la dimensionalidad de un conjunto de datos. Técnicamente, el ACP busca la proyección según la cual los datos queden mejor representados en términos de mínimos cuadrados. Esta convierte un conjunto de observaciones de variables posiblemente correlacionadas en un conjunto de valores de variables sin correlación lineal llamadas componentes principales.

El ACP se emplea sobre todo en análisis exploratorio de datos y para construir modelos predictivos. El ACP comporta el cálculo de la descomposición en autovalores de la matriz de covarianza, normalmente tras centrar los datos en la media de cada atributo.

Debe diferenciarse del análisis factorial con el que tiene similaridades formales y en el cual puede ser utilizado como un método de aproximación para la extracción de factores.

En otras palabras el análisis de componentes principales es un procedimiento para identificar un número más pequeño de variables no correlacionadas, denominadas "componentes principales", en un conjunto de datos grande. La meta del análisis de componentes principales consiste en explicar la máxima cantidad de varianza con el menor número de componentes principales.

El ACP construye una transformación lineal que escoge un nuevo sistema de coordenadas para el conjunto original de datos en el cual la varianza de mayor tamaño del conjunto de datos es capturada en el primer eje (llamado el primer componente principal), la segunda varianza más grande es el segundo eje, y así sucesivamente. Para construir esta transformación lineal debe construirse primero la matriz de covarianza o matriz de coeficientes de correlación. Debido a la simetría de esta matriz existe una base completa de vectores propios de la misma. La transformación que lleva de las antiguas coordenadas a las coordenadas de la nueva base es precisamente la transformación lineal necesaria para reducir la dimensionalidad de datos. Además las coordenadas en la nueva base dan la composición en factores subyacentes de los datos iniciales.

Componentes principales de un conjunto de puntos bidimensional
Componentes principales de un conjunto de puntos bidimensional

Una de las ventajas del ACP para reducir la dimensionalidad de un grupo de datos, es que retiene aquellas características del conjunto de datos que contribuyen más a su varianza, manteniendo un orden de bajo nivel de los componentes principales e ignorando los de alto nivel. El objetivo es que esos componentes de bajo orden a veces contienen el aspecto "más importante" de esa información.

Existen dos formas básicas de aplicar el ACP:

  • Método basado en la matriz de correlación: Cuando los datos no son dimensionalmente homogéneos o el orden de magnitud de las variables aleatorias medidas no es el mismo.
  • Método basado en la matriz de covarianzas: Se usa cuando los datos son dimensionalmente homogéneos y presentan valores medios similares. Es un algoritmo de reducción dimensional que permite encontrar los vectores que mejor representan la distribución de un grupo de imágenes.

El software que elaboraremos está basado en el método de la matriz de covarianzas, específicamente Eigenfaces.

 Algoritmo Eigenfaces Basado en ACP[editar]

El origen de los sistemas de reconocimiento de rostros que utilizan eigenfaces se remonta a unos trabajos de Sirovich y Kirby en 1987. El objetivo de ellos era caracterizar un conjunto de caras con un mínimo número de parámetros. Para ello utilizaron el análisis de componentes principales con objetivo de generar imágenes semejantes a caras llamadas eigenpictures, una representación de la imagen mucho más compacta que los valores de los pixeles de la imagen.

Fueron Matthew Turk y Alex Pentland quienes utilizaron el trabajo de Sirovich y Kirby para implementar un sistema de reconocimiento facial así como cambiar el nombre de eigenpictures a eigenfaces.

Representación de eigenfaces
Representación de eigenfaces
Motivación De Los Eigenfaces[editar]

Consideremos el conjunto de todas las imágenes posibles cuyas dimensiones son w pixels de ancho por h pixels de alto. El número de componentes de estas imágenes es w*h. Si concatenamos las filas de estas imágenes podemos considerarlas como vectores de dimensión w*h. Utilizando esta representación vectorial, el conjunto de imágenes forman un espacio vectorial de dimensión w*h. Este espacio se puede generar a partir de la base canónica (1,0,0, ... ,0), (0,1,0,0, ... ,0), ... , (0,0, ... ,0,1).

Consideremos ahora el conjunto de las imágenes de caras. En relación al resto de todas las posibles imágenes son todas relativamente semejantes: todas tienen los mismos elementos, situados de forma semejante, con textura parecida, etc. Además, los pixeles están altamente correlados con sus vecinos. Es razonable, por lo tanto, suponer que el conjunto de las imágenes de caras ocupa sólo una pequeña región de este espacio. Una consecuencia de esto es que la representación de las imágenes de caras utilizando la base del espacio de las imágenes es claramente ineficiente.

Ejemplo simplificado en el que el espacio de las imágenes y región ocupada por las imágenes de caras
Ejemplo simplificado en el que el espacio de las imágenes  y región ocupada por las imágenes de caras

Además, debido a que todas las imágenes de caras son relativamente semejantes, podemos suponer que las imágenes de caras están en una zona reducida del espacio de las imágenes (llamémoslo el espacio de las caras). En ese caso, podríamos intentar hallar una base de vectores cuyo número sería mucho menor que el de una base del espacio de las imágenes. A pesar de que no existe ninguna evidencia al respecto, la rapidez con la que el cerebro humano es capaz de reconocer las caras sugiere que su representación en el cerebro es de una dimensionalidad baja, aunque nadie sabe cuál es ni cómo se maneja la información. Finalmente, llegamos a la conclusión debería ser posible generar las imágenes de caras (o al menos una muy buena aproximación) con muchos menos vectores que los necesarios para representar el espacio de las imágenes completo. El objetivo pasa a ser encontrar esta base de vectores. El análisis de componentes principales permite hallar una nueva base con un máximo de eficiencia.

Aplicación del ACP Para La Representación De Eigenfaces[editar]

Como ya se ha dicho, las componentes (los pixels) de las imágenes de caras están altamente correladas entre sí. El ACP se basa precisamente en las propiedades estadísticas de las imágenes y es un método óptimo para reducir el número de dimensiones necesarias para representar un conjunto de vectores (en nuestro caso, imágenes de caras).

Una imagen de n x n pixeles es representada como una matriz de dimensiones N x N píxeles, donde cada píxel posee un valor de intensidad diferente (valores entre 0 y 255) que se obtiene al transformar la imagen del tipo RGB (rojo, verde y azul) a escala de grises. Las imágenes están formadas por coordenadas: I(x,y).

Debido a que las imágenes serán de rostros humanos, éstas poseen similitudes entre sí, y se pueden describir a través de una representación en un sub-espacio cuya dimensión es mucho menor a N.

La idea principal del método es encontrar los vectores que mejor representen la distribución de las imágenes, los cuales definen un sub-espacio correspondiente a las imágenes de rostros de seres humanos. Ese sub-espacio es llamado espacio de rostros.

El proceso comienza con una imagen de rostro I(x,y) que se puede representar en dos dimensiones N x N (matriz de valores de intensidad de 8-bits).

Una imagen puede ser considerada como un vector de dimensiones N2. Una típica imagen de 256 x 256 pixeles puede ser un vector de una dimensión de 65.536.

Transformación de una imagen N x N en un vector N2 x 1
Transformación de una imagen N x N en un vector N2 x 1

El objetivo del análisis de componentes principales es encontrar los vectores que mejor almacenen la distribución de las imágenes de rostros en el espacio completo de imágenes. Estos vectores definen el sub-espacio de imágenes.

El primer conjunto de imágenes de rostros con el que se va a trabajar y a formar el espacio de rostros puede ser Γ1, Γ2,...., ΓM el cual corresponde al conjunto de entrenamiento de imágenes de uno o más individuos contra el cual se va a comparar la imagen de entrada o test.

Se tienen una serie de Γ imágenes de dimensión N x N. Para procesarla mediante este método, se pone la imagen completa en forma de vector.

Serie de imágenes de n x n pixeles que serán representadas  en una matriz de dimensiones N x N
Serie de imágenes de n x n pixeles que serán representadas  en una matriz de dimensiones N x N

Cada imagen Γj con j  = 1,2,.., M es organizada en un vector de dimensión N2 cuyo valor es construido como la concatenación década una de las filas de la imagen, formando así una matriz N2 x M.

Este es el punto de partida para el Análisis de Componentes Principales (APC) el cual busca encontrar el grupo de vectores que mejor describan la distribución de dichos datos.

Se obtiene un rostro promedio según la fórmula:

Imagen de rostro promedio
Imagen de rostro promedio

El rostro promedio Ψ obtenido es restado a cada una de las imágenes Γj con j entre 1...M obteniendo un nuevo conjunto de vectores

Con estos vectores diferencia se forma la matriz Λ  de tal manera que:

Entonces se calcula la matriz de covarianza de Λ 

Estos vectores propios son los vectores ortonormales para construir la representación de las imágenes. En este punto se debería encontrar los vectores y valores propios de la matriz de covarianza (llamados eigenvectores y eigenvalores respectivamente).El tamaño de la matriz C hace intratable este paso por el espacio y tiempo requerido, una tarea demasiado compleja debido al inmenso tamaño de esta matriz.

Es por esto que se adopta una forma simplificada para calcular estos vectores y valores propios. Esta forma simplificada se fundamenta en que dado que el número de imágenes de entrenamiento es usualmente mucho menor que el número de píxeles de la imagen, tan solo existirán M en lugar de N2 vectores propios significativos, los demás son asociados a valores propios igual a cero. Se obtiene una aproximación de dichos vectores.

Se obtiene la matriz de covariancia reducida

Se obtienen los autovectores de L  , los que ordenados de mayor a menos según sus correspondientes autovalores, conforman la matriz ν.

Se aproximan los autovectores de C

Donde cada columna de  representa un vector propio.

Donde cada columna de υ representa un vector propio.

Calculo de eigenfaces
Calculo de eigenfaces

En la práctica no es necesario utilizar los M vectores principales para construir las eigenfaces sino un conjunto un poco menor, M’<M, lo que permite obtener una mayor compresión. Para esto se debe seleccionar los M’ vectores propios más significativos, por lo cual se ordena los vectores propios de mayor a menor y se utiliza tan solo los M’ primeros vectores propios que son los que forman el espacio de rostros. Estos vectores pueden ser redimensionados al tamaño original de la imagen N x N y es lo que se conoce como eigenfaces.

Selección de los eigenfaces más significativos
Selección de los eigenfaces más significativos

Los eigenfaces son empleados para clasificar la imagen de entrada, y cada nueva cara o imagen de entrada es transformada en su componente eigenface, para luego ser comparada con los eigenfaces del conjunto de entrenamiento. Se busca encontrar las direcciones de {Ui} donde las desviaciones se encuentran concentradas, es decir donde los datos transformados estén descorrelacionados. Los valores propios proveen una medida de la cantidad de desviación en dirección al vector Uk, donde {Ui} es la base ortonormal del sub-espacio de las muestras, es decir del conjunto de entrenamiento, con   i = 0,1,….., M-1.

Ejemplo de reducción dimensional al aplicar ACP
Ejemplo de reducción dimensional al aplicar ACP

Se obtienen unas nuevas imágenes, proyectándolas en el espacio del rostro con la siguiente operación:

Aquí se puede seleccionar un M’<M que corresponderá a los eigenvectores que poseen los eigenvalores más grandes, ya que son los que tienen asociados los eigenfaces que contienen mayor información de la imagen representada. Para el proceso de reconocimiento, una imagen de entrada ingresa al sistema; esta se transforma a escala de grises, luego se convierte en un vector columna, se normaliza y se calcula la matriz de pesos de las imágenes del conjunto de entrenamiento mediante la expresión:

Cálculo de los pesos de las imágenes
Cálculo de los pesos de las imágenes

Esto describe la contribución de cada eigenface, en representación de la imagen de entrada. El peso correspondiente a la imagen de entrada será:

Luego se calcula la distancia euclidiana entre los vectores correspondientes al conjunto de entrenamiento y la imagen de entrada, de la siguiente manera:

Determinando de esta forma la clase que minimiza la distancia euclidiana y se compara contra determinado UR (umbral de reconocimiento).

Representación gráfica de la selección de la distancia euclidiana
Representación gráfica de la selección de la distancia euclidiana

Una vez encontrada la distancia mínima se indica cuál es la imagen correspondiente.

De esta forma, el algoritmo de reconocimiento de rostro utilizando PCA basado en Eigenfaces sigue los siguientes pasos:

  1. Almacenar un conjunto de imágenes de entrenamiento de diferentes personas, pudiéndose tener subconjuntos de imágenes para cada persona que contengan diferentes posturas, condiciones de iluminación, etc.
  2. Crear una matriz formada por la imagen de entrada (o test) y las ya almacenadas en la base de datos. Mediante el proceso arriba descrito, se calculan los eigenvectores mediante la matriz de covarianza.
  3. Una vez obtenidos los vectores característicos se comparan las distancias entre el vector que representa a la imagen original con el resto.
  4. Establecido un umbral de reconocimiento (en adelante, UR) a priori, si el menor valor del paso anterior es menor que el UR, la imagen de la cara de entrada es considerada como conocida, si es mayor, se considera desconocida. De aquí se desprende que los valores de las distancias dependen en cierta medida del tamaño de la base de datos, puesto que la matriz de covarianza y los vectores característicos son calculados a partir de la matriz formada por la imagen de entrada y las ya almacenadas, por lo que el UR ha de ser dinámico y adaptarse según la variación de las distancias entre caras, o lo que es lo mismo, según el tamaño de la base de datos que almacena las imágenes de las caras.

ANÁLISIS Y DISEÑO DEL SISTEMA[editar]

En este proyecto se desarrolló un sistema que permite identificar a una persona por medio del reconocimiento de una imagen de su rostro. Para ello, se instaló una cámara web en una PC de escritorio para la captura de imágenes. Por medio de esta, el sistema toma una foto de la persona, la procesa e informa la identidad de la misma.

Este capítulo describe el análisis y el diseño de la implementación realizada, comenzando con una descripción general del sistema, breve explicación de los algoritmos utilizados, el análisis de requerimientos así como la implementación de herramientas modeladoras de sistemas.

Para modelar el sistema, una de las herramientas más utilizadas fue el Lenguaje Unificado de Modelado (UML, del inglés Unified Modeling Language). Este estándar es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos, funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y compuestos reciclados.

Herramientas de desarrollo[editar]

Lenguaje C#[editar]

C# (pronunciado si sharp en inglés) es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común.

Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes.

C# es un lenguaje de programación que se ha diseñado para compilar diversas aplicaciones que se ejecutan en .NET Framework. C# es simple, eficaz, con seguridad de tipos y orientado a objetos. Las numerosas innovaciones de C# permiten desarrollar aplicaciones rápidamente y mantener la expresividad y elegancia de los lenguajes de estilo de C.

Aunque C# forma parte de la plataforma .NET, ésta es una API, mientras que C# es un lenguaje de programación independiente diseñado para generar programas sobre dicha plataforma. Ya existe un compilador implementado que provee el marco Mono - DotGNU, el cual genera programas para distintas plataformas como Windows, Unix, Android, iOS, Windows Phone, Mac OS y GNU/Linux.

Para el objetivo planteado cuenta con las siguientes características:

  • Orientado a objetos con el fin de dar modularidad a las distintas etapas del procesamiento de imágenes y visualización de resultados.
  • Programación de alto y bajo nivel
Librería OpenCV[editar]

OpenCV es una biblioteca libre de visión artificial originalmente desarrollada por Intel. Desde que apareció su primera versión alfa en el mes de enero de 1999, se ha utilizado en infinidad de aplicaciones. Desde sistemas de seguridad con detección de movimiento, hasta aplicaciones de control de procesos donde se requiere reconocimiento de objetos. Esto se debe a que su publicación se da bajo licencia BSD, que permite que sea usada libremente para propósitos comerciales y de investigación con las condiciones en ella expresadas.

Uno de los objetivos de OpenCV es proveer una infraestructura de visión por computador fácil de utilizar que ayuda a los programadores a desarrollar aplicaciones ‘sofisticadas’ de CV (Computer Vision) rápidamente.

Open CV es multiplataforma, existiendo versiones para GNU/Linux, Mac OS X y Windows. Contiene más de 500 funciones que abarcan una gran gama de áreas en el proceso de visión, como reconocimiento de objetos (reconocimiento facial), calibración de cámaras, visión estérea y visión robótica.

El proyecto pretende proporcionar un entorno de desarrollo fácil de utilizar y altamente eficiente. Esto se ha logrado realizando su programación en código C y C++ optimizados, aprovechando además las capacidades que proveen los procesadores multinúcleo. OpenCV puede además utilizar el sistema de primitivas de rendimiento integradas de Intel, un conjunto de rutinas de bajo nivel específicas para procesadores Intel.

La librería OpenCV cuenta con los siguientes aspectos que la hacen ser una de las herramientas más utilizadas en el desarrollo de visión artificial:

  • Originalmente desarrollada por Intel, el proyecto cuenta con más de 11 años de existencia y constante evolución, por lo cual es un proyecto posee un alto grado de madurez y constante actualización.
  • Desde que apareció su primera versión alfa en el mes de enero de 1999, se ha utilizado en infinidad de aplicaciones. Desde sistemas de seguridad con detección de movimiento, hasta aplicaciones de control de procesos donde se requiere reconocimiento de objetos.
  • Contiene más de 500 funciones que abarcan una gran gama de áreas en el proceso de visión, como reconocimiento de objetos (reconocimiento facial), calibración de cámaras, visión estéreo y visión robótica.
  • Provee una gran variedad de herramientas para procesamiento directo de imágenes.
  • Provee una gran variedad de funciones desarrolladas especialmente para el manejo de la metodología de Eigenface.
  • Amplia documentación en Internet por su uso muy difundido.
Librería EmguCV[editar]

EmguCV es una herramienta multiplataforma, una envoltura .NET para la librería de procesamiento de imágenes OpenCV. Permite a las funciones de OpenCV ser llamadas desde lenguajes compatibles con .NET como C#.

Librería Entity Framework[editar]

Entity Framework es un conjunto de tecnologías de ADO.NET que permiten el desarrollo de aplicaciones de software orientadas a datos, modelado entidad-relación. Los arquitectos y programadores de aplicaciones orientadas a datos se han enfrentado a la necesidad de lograr dos objetivos muy diferentes. Deben modelar las entidades, las relaciones y la lógica de los problemas empresariales que resuelven, y también deben trabajar con los motores de datos que se usan para almacenar y recuperar los datos. Los datos pueden abarcar varios sistemas de almacenamiento, cada uno con sus propios protocolos; incluso las aplicaciones que funcionan con un único sistema de almacenamiento deben equilibrar los requisitos del sistema de almacenamiento con respecto a los requisitos de escribir un código de aplicación eficaz y fácil de mantener.

Entity Framework permite a los desarrolladores trabajar con datos en forma de objetos y propiedades específicos del dominio, como clientes y direcciones de cliente, sin tener que preocuparse por las tablas y columnas de la base de datos subyacente donde se almacenan estos datos. Con Entity Framework, los desarrolladores pueden trabajar en un nivel mayor de abstracción cuando tratan con datos, y pueden crear y mantener aplicaciones orientadas a datos con menos código que en las aplicaciones tradicionales.

Base De Datos Microsoft SQL Server[editar]

Microsoft SQL Server es un sistema de manejo de bases de datos del modelo relacional, desarrollado por la empresa Microsoft.

El lenguaje de desarrollo utilizado (por línea de comandos o mediante la interfaz gráfica de Management Studio) es Transact-SQL (TSQL), una implementación del estándar ANSI del lenguaje SQL, utilizado para manipular y recuperar datos (DML), crear tablas y definir relaciones entre ellas (DDL).

Dentro de los competidores más destacados de SQL Server están: Oracle, MariaDB, MySQL, PostgreSQL. SQL Server solo está disponible para sistemas operativos Windows de Microsoft.

Puede ser configurado para utilizar varias instancias en el mismo servidor físico, la primera instalación lleva generalmente el nombre del servidor, y las siguientes - nombres específicos (con un guion invertido entre el nombre del servidor y el nombre de la instalación).

Características:

  • Soporte de transacciones.
  • Soporta procedimientos almacenados.
  • Incluye también un entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente.
  • Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el servidor y los terminales o clientes de la red sólo acceden a la información.
  • Además permite administrar información de otros servidores de datos.

Este sistema incluye una versión reducida, llamada MSDE con el mismo motor de base de datos pero orientado a proyectos más pequeños, que en sus versiones 2005 y 2008 pasa a ser el SQL Express Edition, que se distribuye en forma gratuita.

Es común desarrollar proyectos completos empleando Microsoft SQL Server y Microsoft Access a través de los llamados ADP (Access Data Project). De esta forma se completa la base de datos (Microsoft SQL Server), con el entorno de desarrollo (VBA Access), a través de la implementación de aplicaciones de dos capas mediante el uso de formularios Windows.

Microsoft Visual Studio[editar]

Es un entorno de desarrollo integrado (IDE, por sus siglas en inglés) para sistemas operativos Windows. Visual Studio es un conjunto completo de herramientas de desarrollo para la generación de aplicaciones web ASP.NET, Servicios Web XML, aplicaciones de escritorio y aplicaciones móviles. Visual Basic, Visual C# y Visual C++ utilizan todos el mismo entorno de desarrollo integrado (IDE), que habilita el uso compartido de herramientas y facilita la creación de soluciones en varios lenguajes. Asimismo, dichos lenguajes utilizan las funciones de .NET Framework, las cuales ofrecen acceso a tecnologías clave para simplificar el desarrollo de aplicaciones web ASP y Servicios Web XML.

El IDE de desarrollo seleccionado fue el Microsoft Visual Studio debido a las siguientes razones:

  • Fácil configuración
  • Integración con la plataforma de desarrollo .NET.
  • Manejo de interfaces gráficas.

Arquitectura General Del Sistema[editar]

El sistema implementado se basa en un modelo subdividido en módulos funcionales, los que componen un esquema de reconocimiento facial en video. Dichos módulos son las siguientes:

  • Constructor de la base de datos: Es el encargado de permitir el ingreso de las imágenes Todas deben pertenecer al rostro que se desea identificar en el video, considerando distintas poses y gestos.

Sobre cada una de las imágenes ingresadas, el sistema automáticamente realiza un pre procesamiento en base a un algoritmo de detección de rostro, el cual genera un grupo final de imágenes normalizadas en tamaño y color (solo niveles de gris) que se caracterizan por contener aisladamente solo el rostro de interés centrado en la nariz.

Este módulo permite visualizar cada una de las imágenes de entrenamiento pre-procesadas, pudiendo el usuario eliminar alguna que considere de mala calidad.

  • Reconocimiento del rostro desde la cámara: Este módulo será capaz de detectar e identificar rostros, previamente salvados en la base de datos, desde una cámara en tiempo real
  • Reconocimiento de rostro desde un archivo: La aplicación además tiene la opción de identificar un sujeto desde una imagen o un archivo de video.
  •  Entrega de datos finales:
    • Búsqueda de usuarios por nombre, apellido u otro dato.
    • Datos de usuario identificado por el proceso de reconocimiento facial en el video.
Arquitectura general del sistema
Arquitectura general del sistema
Ingreso de rostros de usuario a la base de datos
Ingreso de rostros de usuario a la base de datos
Diagrama del reconocimiento de usuario
Diagrama del reconocimiento de usuario

Captura De Imagen[editar]

En los diagramas anteriores se nota claramente que es necesario la utilización de una cámara. Desde la cámara se capturan las imágenes de entrada. La cámara se conecta al sistema por medio de las interfaces provista por la librería OpenCV de desarrollo de programas de visión artificial. La cámara capturara las imágenes tanto para el guardado de rostros de un usuario en base de datos así como para el reconocimiento de un usuario.

Detección Del Rostro[editar]

Para programar la detección de rostros en los cuadros de video, se utilizó el algoritmo llamado Haar Cascade. Para la implementación en lenguaje C# se utilizó las funciones disponibles en la biblioteca OpenCV.

Reconocimiento Del Rostro[editar]

Para programar el reconocimiento facial, se utilizó el algoritmo llamado PCA (acrónimo de Principal Component Analysis) basado en Eigenface. Para la implementación en lenguaje C# se utilizó las funciones disponibles en la biblioteca OpenCV.

Análisis de Requerimientos[editar]

Un requerimiento es una descripción de una condición o capacidad que debe cumplir un sistema, ya sea derivada de una necesidad de usuario identificada, o bien, estipulada en un contrato, estándar, especificación u otro documento formalmente impuesto al inicio del proceso.

A su vez, estos requerimientos pueden ser diferenciados en:

  • Requerimientos funcionales.
  • Requerimientos no funcionales.

Los primeros son los que definen las funciones que el sistema será capaz de realizar, describen las transformaciones que el sistema realiza sobre las entradas para producir salidas.

Los segundos tienen que ver con características que de una u otra forma puedan limitar el sistema, como por ejemplo, el rendimiento (en tiempo y espacio), interfaces de usuario, fiabilidad (robustez del sistema, disponibilidad de equipo), mantenimiento, seguridad, portabilidad, estándares, auditabilidad y otros.

En base a estas definiciones, se realiza un análisis de requerimientos con el objetivo de identificar tanto las funcionalidades que se esperan del software como sus limitaciones.

Requerimientos  Funcionales[editar]

El sistema de ser capaz de:

  • Almacenar información personal de usuarios en base de datos.
  • Buscar usuarios por medio de datos como su nombre, edad, identificación y otros.
  • Capturar una imagen a través de una cámara web, con la posibilidad de guardarla.
  • Identificar a un usuario por medio de una imagen de su rostro
Requerimientos No Funcionales[editar]

Como requerimientos no funcionales se especifican los siguientes:

  • El sistema debe funcionar con una cámara web estándar y luz artificial.
  • El sistema debe ejecutarse en tiempo real, lo que implica que las operaciones computacionales deben procesarse en un tiempo aceptable.

Diagrama De Contexto[editar]

Los límites y las entidades que interactúan con el sistema son definidos por el siguiente Diagrama de Contexto de Sistema (DCS):

Diagrama de contexto
Diagrama de contexto

Diagrama De Casos De Uso[editar]

El diagrama de casos de uso representa la forma en como un Cliente (Actor) opera con el sistema en desarrollo, además de la forma, tipo y orden en como los elementos interactúan (operaciones o casos de uso).

Un diagrama de casos de uso consta de los siguientes elementos:

  1. Actor.
  2. Casos de Uso.
  3. Relaciones de Uso, Herencia y Comunicación.

Actor

Representación de un actor en un diagrama de caso de uso
Representación de un actor en un diagrama de caso de uso

Un actor es una clase de persona, organización, dispositivo o componente de software externo que interactúa con el sistema. Los actores del ejemplo son cliente, restaurante, sensor de temperatura y titular de tarjeta de crédito. Es importante destacar que un Actor no necesariamente representa a una persona en particular, sino más bien la labor que realiza frente al sistema.

Casos de Uso

Representación de un caso de uso
Representación de un caso de uso

Es una operación/tarea específica que se realiza tras una orden de algún agente externo, sea desde una petición de un actor o bien desde la invocación desde otro caso de uso.

Relaciones de Uso, Herencia y Comunicación.

  • Asociación: Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a otra operación (caso de uso). Dicha relación se denota con una flecha simple.
  • Dependencia o Instanciación: Es una forma muy particular de relación entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea). Dicha relación se denota con una flecha punteada.
  • Generalización: Este tipo de relación es uno de los más utilizados, cumple una doble función dependiendo de su estereotipo, que puede ser de Uso (<<include>>) o de Herencia (<<extends>>).

Este tipo de relación está orientado exclusivamente para casos de uso (y no para actores).

extends: Se recomienda utilizar cuando un caso de uso es similar a otro (características).

include: Se recomienda utilizar cuando se tiene un conjunto de características que son similares en más de un caso de uso y no se desea mantener copiada la descripción de la característica.

De lo anterior cabe mencionar que tiene el mismo paradigma en diseño y modelamiento de clases, en donde está la duda clásica de usar o heredar.

Caso de uso control sistema de reconocimiento facial
Caso de uso control sistema de reconocimiento facial
Caso de uso : Control Sistema de Reconocimiento Facial
Actor: Administrador
Descripción: El responsable puede agregar un usuario, buscar un usuario, editar información de un usuario, borrar del sistema un usuario, reconocer un usuario por medio de la funcionalidad de reconocimiento facial.
Caso de uso guardar información de usuario
Caso de uso guardar información de usuario
Caso de uso : Guardar Información de Usuario
Actor: Administrador
Descripción: El responsable debe  guardar la información de un usuario nuevo o ya creado
Curso Normal :
1.     Comienza cuando el administrador presiona el botón “Agregar Usuario”.

2.     El sistema captura imágenes de rostro del usuario.

3.     Se localiza el rostro en la imagen.

4.     Se captura información adicional del usuario.

5.     Se guarda la información capturada.

Caso de uso identificar persona
Caso de uso identificar persona
Caso de uso: Identificar persona
Actor: Administrador
Descripción: Identificar a una persona a partir de una imagen de su rostro
Curso normal:
1.     Comienza cuando el administrador presiona el botón “Identificar”.

2.     El sistema captura una imagen del usuario.

3.     Se localiza el rostro en la imagen.

4.     Se proyecta la imagen facial mediante las eigenfaces y se obtiene un patrón representativo de ésta.

5.     El sistema informa la identidad de la persona.

Caso de uso sistema de reconocimiento facial
Caso de uso sistema de reconocimiento facial
Caso de uso: Localizar rostro
Actor: -
Descripción: Obtiene una sub imagen fácil  normalizada
Curso normal:
1.     Se normaliza la iluminación de la imagen.

2.     Se calcula la imagen integral.

3.     Se hace la extracción de características

4.     Se hace la clasificación de las características.

5.     Se decide si la imagen tiene rostro o no.

Caso de uso: Extraer características
Actor: -
Descripción: Obtiene un vector representativo de la imagen facial para clasificarlo
Curso normal:
1.     Se cargan las eigenfaces y la imagen media.

2.      Se centra la imagen facial sustrayéndole la imagen media.

3.      Se proyecta la imagen centrada multiplicándola por cada una de las eigenfaces, generando un punto en el espacio de caras.

Cursos alternativos:
1.     Las eigenfaces y la imagen media no están calculadas.

a.       Se calculan las eigenfaces y la imagen media.

b.     Se guardan las eigenfaces y la imagen media.

Caso de uso: Calcular eigenfaces
Actor: -
Descripción: Calcula las eigenfaces de todas las imágenes en la base de datos
Curso normal:
1.     Se calcula la imagen media de todas las imágenes en la base de rostros.

2.     Se calculan las eigenfaces.

3.     Se guardan las eigenfaces y la imagen media.

Diagrama De Clases[editar]

Un diagrama de clases es una representación gráfica que sirve para mostrar  la estructura de un sistema que será implementado utilizando un lenguaje orientado a objetos. Los diagramas de clases se realizan en la fase de diseño del software después de la fase de requisitos. La idea de estos diagramas es representar las clases que tendrá el sistema así como su contenido y sus relaciones con otras clases.

Así como son importantes para visualizar, especificar y documentar modelos estructurales, también lo son para construir sistemas ejecutables, aplicando ingeniería directa e inversa.

En la figura se puede observar el diagrama correspondiente al sistema de reconocimiento facial, para simplificar este diagrama contamos con el diagrama mostrado en la figura que detalla cómo está constituida la clase que maneja la cámara para detectar los rostros. La figura muestra las clases que manejan el modelo de datos relacional utilizado en este sistema.

Procedo a realizar una breve explicación de  cada una de las clases utilizadas en el desarrollo de este sistema:

  • Program: Da inicio a la ejecución del sistema desarrollado.
  • Recognition: Corresponde a la ventana de la aplicación. Gestiona las funcionalidades del menú y los botones incluidos en ella. Agrega, borra, edita usuarios. Permite controlar la cámara, tomar fotos de rostro de usuarios así como reconocer un usuario.
  • Image: Clase provista por EmguCV para el manejo de las imágenes tomadas desde la cámara.
  • Capture: Permite el manejo de la cámara utilizada para la captura de las imágenes.
  • HaarCascade: Clase que contiene todo las rutinas necesarias para la ejecución del algoritmo que detecta rostros en imágenes utilizado en este sistema.
  • MCvAvgComp: Estructura de datos con el resultado de las caras detectas en las imágenes que tome la cámara.
  • EigenObjectRecognizer: Encapsula las funcionalidades para utilizar el algoritmo de reconocimiento facial Eifenfaces.
  • MCvTermCriteria: Estructura de datos para establecer parámetros a utilizar cuando se esté reconociendo un usuario.
  • Utilities: Clase estática con métodos utilitarios utilizados en diversas partes del sistema desarrollado.
  • CamaraForm: Ventana que gestiona la toma de las fotos con los rostros de los usuarios a ingresar al sistema, esta clase está compuesta por otras clases las cuales se pueden ver en la figura.
  • TrainedFaceEvents: Una clase que genera eventos cuando la cámara para la captura de las imágenes de los usuarios ha finalizado su rutina.
  • Las clases Rostro, OrdenImagen, Usuario,Usuario, RostroOrdenImagen, ReconocimientoFacialModel ayudan a manipular los datos de entrada y salida en el sistema de reconocimiento facial. Al momento de guardar los datos en base de datos utilizamos el ORM Entity Framework por lo cual necesitamos clases que modelan las tablas de base de datos en código C#.  Se pueden ver mejor en la figura siguiente.
Diagrama de clases sistema de reconocimiento facial
Diagrama de clases sistema de reconocimiento facial
Diagrama de clases cámara detección de rostros
Diagrama de clases cámara detección de rostros
Diagrama de clases modelo de datos
Diagrama de clases modelo de datos

Diagrama De Secuencia[editar]

Un diagrama de secuencias muestra la interacción de un conjunto de objetos de una aplicación a través del tiempo, en el cual se indicaran los módulos o clases que formaran parte del programa y las llamadas que se hacen cada uno de ellos para realizar una tarea determinada, por esta razón permite observar la perspectiva cronológica de las interacciones. Es importante recordar que el diagrama de secuencias se realiza a partir de la descripción de un caso de uso.

Diagrama de secuencia creación de usuario
Diagrama de secuencia creación de usuario
Diagrama de secuencia buscar usuario
Diagrama de secuencia buscar usuario
Diagrama de secuencia borrar usuario
Diagrama de secuencia borrar usuario
Diagrama de secuencia detectar rostro
Diagrama de secuencia detectar rostro
Diagrama de secuencia reconocer usuario
Diagrama de secuencia reconocer usuario

Modelo Entidad Relación[editar]

Un diagrama o modelo entidad-relación (a veces denominado por sus siglas en inglés, E-R "Entity relationship", o del español DER "Diagrama de Entidad Relación") es una herramienta para el modelado de datos que permite representar las entidades relevantes de un sistema de información así como sus interrelaciones y propiedades.

  • Entidad

Se trata de un objeto del que se recoge información de interés de cara a la base de datos. Gráficamente se representan mediante un rectángulo. Un ejemplo seria la entidad banco, donde se recogerían los datos relativos a ese banco, como puede ser el nombre, el número de sucursal, la dirección, etc.

Dentro de las entidades pueden ser fuertes o débiles. Las fuertes son las que no dependen de otras entidades para existir, mientras que las entidades débiles siempre dependen de otra entidad sino no tienen sentido por ellas mismas.

  • Relación :Podemos definir la relación como una asociación de dos o más entidades. A cada relación se le asigna un nombre para poder distinguirla de las demás y saber su función dentro del modelo entidad-relación. Otra característica es el grado de relación, siendo las de grado 1 relaciones que solo relacionan una entidad consigo misma. Las de grado 2 son relaciones que asocian dos entidades distintas, y las de grado n que se tratan de relaciones que unen más de dos entidades. Las relaciones se representas gráficamente con rombos, dentro de ellas se coloca el nombre de la relación. Otra característica es el tipo de correspondencia entre dos relaciones;
    • 1:1. Uno a uno, a cada ocurrencia de una entidad le corresponde como máximo una ocurrencia de la otra entidad relacionada
    • 1:N. Uno a Mucho, a cada ocurrencia de la entidad A le puede corresponder varias de la entidad B.
    • N: M. Muchos a muchos, cada ocurrencia de una entidad puede contener varias de la otra entidad relacionada y viceversa.

Para finalizar las características de la relación tenemos la cardinalidad que define el número máximo y mínimo de ocurrencias de cada tipo de entidad. Se representa entre paréntesis encima de la relación (máximo, mínimo).

  • Atributo : Se define como cada una de las propiedades de una entidad o relación. Cada atributo tiene un nombre y todos los posibles valores que puede tener. Dentro de una entidad tiene que haber un atributo principal que identifica a la entidad y su valor tiene que ser único.
Modelo entidad relación del sistema
Modelo entidad relación del sistema

Modelo Relacional[editar]

El modelo relacional, para el modelado y la gestión de bases de datos, es un modelo de datos basado en la lógica de predicados y en la teoría de conjuntos.

Su idea fundamental es el uso de relaciones. Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados tuplas. Es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente.

Este modelo considera la base de datos como una colección de relaciones. De manera simple, una relación representa una tabla que no es más que un conjunto de filas, cada fila es un conjunto de campos y cada campo representa un valor que interpretado describe el mundo real. Cada fila también se puede denominar tupla o registro y a cada columna también se le puede llamar campo o atributo.

Algunas ventajas del modelo relacional:

  • Garantiza herramientas para evitar la duplicidad de registros, a través de campos claves o llaves.
  • Garantiza la integridad referencial: Así al eliminar un registro elimina todos los registros relacionados dependientes.
  • Favorece la normalización por ser más comprensible y aplicable.
Modelo relacional del sistema
Modelo relacional del sistema

IMPLEMENTACIÓN[editar]

Módulo De Ingreso De Información[editar]

Es el encargado de permitir el ingreso de la información básica de los sujetos, así como la captura de las imágenes del rostro, considerando distintas poses y gestos.

Captura de rostro
Captura de rostro

Sobre cada una de las imágenes ingresadas, el sistema automáticamente realiza un preprocesamiento en base al algoritmo de detección de rostro Haar Cascade, el cual genera un grupo final de imágenes normalizadas en tamaño y color (solo niveles de gris) que se caracterizan por contener aisladamente solo el rostro de interés centrado en la nariz.

Toda la información es guardada en la base de datos al igual que cada una de las imágenes de los rostros capturados.

Captura de la información básica del sujeto
Captura de la información básica del sujeto

Módulo De Búsqueda[editar]

Este módulo nos permite hacer la búsqueda de sujetos registrados en el sistema, una vez encontrados los mismos pueden ser editados o eliminados.

Búsqueda de sujetos registrados en el sistema
Búsqueda de sujetos registrados en el sistema
Borrado de sujeto del sistema
Borrado de sujeto del sistema
Actualización de datos de sujeto
Actualización de datos de sujeto

Módulo De Reconocimiento[editar]

Este módulo utiliza una cámara en tiempo real y aplica el algoritmo de detección de rostro utilizando clasificadores en cascada para detectar el rostro y luego utiliza el algoritmo PCA (Principal Component Analysis) para reconocer el rostro, debemos tomar en cuenta que se extraen de la base de datos todas las imágenes de rostro guardadas para hacer la comparación.  

Reconocimiento de sujeto por el sistema
Reconocimiento de sujeto por el sistema

RESULTADOS[editar]

Se realizó experimento con la base de datos de imágenes AT&T para configurar la base de entrenamiento del sistema, como también se incluyeron fotos de sujetos externos a la base de datos utilizada. En total se evaluaron 50 sujetos y para cada uno de ellos se tomó en cuenta 10 imágenes.

En la base de datos AT&T se pueden encontrar imágenes de rostros con diferentes posiciones y expresiones faciales, sujetos con gafas, con bigote o no, hombres y mujeres. El tamaño de todas las imágenes es de 92x112 píxeles. Los sujetos adicionales agregados siguieron el mismo comportamiento de la base de datos original.

Muestra de sujetos en la base de datos de pruebas
Muestra de sujetos en la base de datos de pruebas

Al momento de localizar un rostro se puede presentar cuatro alternativas un verdadero positivo, verdadero negativo, falso positivo  y falso negativo los cuales tienen se caracterizan por lo siguiente:

  • Verdadero Positivo: Cuando el rostro a identificar se reconoce como correctamente.
  • Verdadero Negativo: Cuando el rostro a identificar se encuentra entre las imágenes de entrenamiento y no es reconocido.
  • Falso positivo: Cuando el rostro a identificar no se encuentra entre las imágenes de entrenamiento y el mismo no se reconoce.
  • Falso positivo: Cuando el rostro a identificar se encuentra entre las imágenes de entrenamiento y el mismo si  se reconoce.

La siguiente figura nos describe el resultado de nuestra medición en el entrenamiento del sistema:

Resultado de prueba
Resultado de prueba

CONCLUSIONES Y TRABAJO FUTURO[editar]

Con la realización de este trabajo se logró implementar un sistema de reconocimiento facial  que contempla todas las etapas requeridas, iniciando con la captura del rostro del usuario en tiempo real por medio de una cámara, esta etapa apoyada de los principios de detección facial   y la implementación del método de  Viola y Jones; método con alto porcentaje de detección, bajo tiempo de procesamiento y efectividad al combinar técnica de boosting y clasificadores Haar. Una vez localizado el rostro el sistema implementa el Análisis De Componentes Principales (ACP) haciendo la extracción de las características identificando al usuario frente a la cámara.

En la investigación previa a la construcción del sistema propuesto se pudo conocer y estudiar los avances en la Biometría así como bases teóricas de métodos de visión por computador que fueron empleados en este trabajo.

El trabajo a futuro consistirá en la utilización de métodos alternativos para el reconocimiento facial sobre todo en imágenes de rostros con altos grado de inclinación, rotación o giro ya que se pudo observar que el método Análisis De Componentes Principales (ACP) no es muy eficiente en estos escenarios.

También se debe considerar el escenario de ambientes con demasiada luminiscencia y poca luminiscencia ya que el método de Viola y Jones no funciona correctamente en la detección del rostro por lo cual habría que buscar métodos que ayuden en el pre procesamiento de la imagen.

REFERENCIAS[editar]

  1. Alba Fernando, Catejón Limas Manuel, González Marcos Ana, Martínez de Pisón Ascacibar, Ordieres Meré Joaquín, Pernía Espinosa Alpha Verónica, Vergara González Eliseo; Técnicas  Y Algoritmos Básicos De Visión Artificial; Universidad de La Rioja Servicio de Publicaciones; España; 2006.
  2. Coomonte Belmonte Rafael, Fernández Fernando Alonso, Ortega García Javier; Biometría y Seguridad; Fundación Rogelio Segovia para el Desarrollo de las Telecomunicaciones; España; 2008.
  3. Anil K. Jain, Arun Ross, Salil Prabhakar; An Introduction to Biometric Recognition;
  4. Jain K. Anil, Li Z. Stan; Handbook of Face Recognition; Springer; USA; 2011.
  5. Lynette I. Millet, Pato N. Joseph; Biometric Recognition: Challenges and Opportunities; Nationa Academy of Sciences; USA; 2001.
  6. Moreno Díaz Ana Belén, Sánchez Calle Ángel, Sánchez-Marín José Luis Esteban, Vélez Serrano José Francisco; Visión Por Computador; S.L. DYKINSON; España; 2003.
  7. Richard Szeliski; Computer Vision Algorithms and Applicatios; Springer, USA; 2010.
  8. Shapiro Linda, Stockman George; Computer Vision; Pearson, Estados Unidos de Améroca; 2001.
  9. Reinhard Klette; Concise Computer Vision; Springer; Londres; 2014.
  10. Richard Duda; Pattern Classification; John Wiley & Sons, Inc.; Estasdos Unidos de America; Segunda Edición 2001.
  11. Kendall Kenneth, Kendall Julie; Análisis Y Diseño De Sistemas; Pearson Education de México; México; Octava Edición 2011.
  12. Shin Shi; Emgu CV Essentials; Packt Publishing; Reino Unido; 2013.
  13. Adrian Kaehler,Gary Bradski; Learning OpenCV; O’Reilly; Estados Unidos de América; 2008.
  14. IEEE Transactions on Circuits and Systems for video Technology, Vol. 14, pp. 4- 20; 2004.
  15. Anil K. Jain, Arun Ross, Salil Prabhakar, Biometrics: A Tool for Information Security, IEEE Transactions on information forensics and security, Vol. 1, pp. 125-143, 2006.
  16. Fierrez Julian, Galbally Javier, Ortega Garcia Javier; Vulnerabilities in Biometric Systems: Attacks and Recent Advances in Liveness Detection; In Proc. Spanish Workshop on Biometrics, SWB, Girona, España, 2007.
  17. Anil K. Jain; A Low-Dimensional Procedure for the Characterization of Human Faces; J. Optical Soc. Am.; USA; Vol. 4, No.3, pp. 519-524; 1987.
  18. A.        J. Goldstein, L. D. Harmon,  A. B. Lesk, Identification of Human Faces, Proc. IEEE,, Vol. 59, No. 5, pp. 748-760; 1971.
  19. G. Yang, T.S. Huang; Human Face Detection in a Complex Background Pattern Recognition; Vol. 27, pp. 53-63; 1994.
  20. Xiaoguang Lu, Image Analisis for Face Recognition, Department of Computer Science & Engineering, Estados Unidos de América; 2003.
  21. Jones Michael, Viola Paul; Rapid Object Detection using a Boosted Cascade of Simple Features; Estados Unidos de América; 2001.
  22. Jones Michael, Viola Paul; Robust Real-Time Face Detection; pp. 137-154; USA; 2004.
  23. Peer Peter, Solina Franc; An Automatic Human Face Detection Method; Slovenia.
  24. Oren Michael, Papageorgiou Constantine, Poggio Tomaso; A General Framework for Object Detection; pp. 555-5562; Estados Unidos de América.
  25. Pentland Alex, Turk Mattew; Eigenfaces for Recognition;Vol 3,No. 1, pp. 71-86; Estados Unidos de América; 1991.
  26. urk Mattew, Pentland Alex, Face Recognition Using Eigenfaces, Proc. IEEE, pp. 586-591; Estados Unidos de América ;1991.

ENLACES EXTERNOS[editar]

Casos de Uso [1]

Diagramas de casos de uso de UML: Instrucciones; s.f.; Microsoft; [2]

Diagramas De Clases de UML: Referencia; s.f.; Microsoft; [3]

Sara Alvarez; Modelo Entidad-Relación; s.f.; Desarrollo Web; [4]

Información General De Entity Framework; s.f.; Microsoft; [5]