UNIVERSIDAD DON BOSCO “PROTOTIPO DE RECONOCIMIENTO DE HUELLAS DACTILARES DE PERSONAS UTILIZANDO REDES NEURONALES” TRABAJO DE GRADUACIÓN PREPARADO PARA LA FACULTAD DE INGENIERÍA PARA OPTAR AL GRADO DE INGENIERO EN ELECTRÓNICA POR: GÓMEZ GALDAMEZ, MAURICIO ERNESTO RUBIO TOLEDO, SHANTHI MAYO DE 2006 SOYAPANGO – EL SALVADOR – AMÉRICA CENTRAL UNIVERSIDAD DON BOSCO RECTOR SECRETARIO GENERAL RECTOR ING. FEDERICO MIGUEL HUGUET RIVERA SECRETARIO GENERAL LIC. MARIO RAFAEL OLMOS VICERRECTOR ACADÉMICO PRESBÍTERO VICTOR MANUEL BERMUDEZ YANEZ DECANO DE INGENIERÍA ING. ERNESTO GODOFREDO GIRÓN UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA ELECTRÓNICA JURADO EVALUADOR DEL TRABAJO DE GRADUACIÓN ING. JORGE LOPEZ ING. JUAN RENE NUÑEZ JURADO JURADO ING. JUAN C. DADA JURADO ING. EDUARDO RIVERA ING. HERBERT CARDONA ASESOR TUTOR AGRADECIMIENTOS Ante todo agradezco a DIOS todo poderoso quien me ha permitido este lindo momento. Infinitas gracias a mi familia quien me apoya incondicionalmente, a mi madre quien ha estado presente en todos los momentos alegres y tristes de mi vida, así como mis hermanos y padre. Le doy gracias a todas aquellas personas quienes ayudaron a la realización de este trabajo, a mi prima Liseth Guadalupe Sierra quien desinteresadamente aporto gran ayuda. Y finalmente agradezco muchísimo a todos mis seres queridos quienes con palabras de aliento me ayudan a no desfallecer en los momentos críticos que se nos presentan en la vida. Shanthi Rubio Toledo 1 CONTENIDO INTRODUCCIÓN 2 3 CAPITULO I ANTECEDENTES 4 1.1 BREVE HISTORIA DE LOS SISTEMAS DE RECONOCIMIENTO DE PERSONAS MEDIANTE HUELLAS DACTILARES 1.2 SISTEMAS ACTUALES DE RECONOCIMIENTO DE PERSONAS MEDIANTE HUELLAS DACTILARES 4 8 CAPITULO II MARCO TEÓRICO 10 2.1 CARACTERÍSTICAS DE LA HUELLA DACTILAR 10 2.1.2 EL DACTILOGRAMA Y SU TOPOGRAFÍA 11 2.2.1 TEORÍA BÁSICA ACERCA DE LAS REDES NEURONALES ARTIFICIALES 11 2.2.2 RESEÑA HISTÓRICA DE LAS REDES NEURONALES ARTIFICIALES 14 2.2.3 PRINCIPALES TIPOS DE REDES NEURONALES ARTIFICIALES 15 2.2.4 REDES NEURONALES ART1 13 2.2.5 RED DE RETROPROPAGACIÓN (BACKPROPAGATION) 14 2.2.6 APLICACIONES ACTUALES DE LAS REDES NEURONALES ARTIFICIALES. 16 2.3 BIOMETRÍA 18 2.3.1 CONCEPTO Y GENERALIDADES DE LA BIOMETRÍA 18 2.3.2 ALGUNOS SISTEMAS BIOMÉTRICOS ACTUALES 18 CAPITULO III HARDWARE USADO PARA LA ADQUISICIÓN DE HUELLAS Y PRE PROCESAMIENTO DE LA IMAGEN DE LA HUELLA DACTILAR 20 3.1 HARDWARE UTILIZADO 20 3.2 VENTAJAS TÉCNICAS DE UN ESCÁNER DE HUELLA DACTILAR 20 3.3 CARACTERÍSTICAS TÉCNICAS DE ALGUNOS SENSORES DE HUELLA DACTILAR 21 3.4 IDGEM 4000 23 3.5 ESQUEMA BÁSICO DEL PRE-PROCESADO CON LA HUELLA CAPTURADA POR EL SENSOR 24 3.6 MÉTODOS UTILIZADOS EN EL PRE-PROCESAMIENTO DE LA IMAGEN 29 3.7 SUBDIVISIÓN DE LA IMAGEN 33 CAPITULO IV METODOLOGÍA Y PRUEBAS CON ALGUNAS TOPOLOGÍAS DE REDES NEURONALES 35 4.1 METODOLOGÍA EMPLEADA PARA LAS DIFERENTES PRUEBAS CON REDES NEURONALES. 35 4.2 PRUEBAS EN RETROPROPAGACIÓN (BACKPROPAGATION) 39 4.3 RESULTADOS CON RETROPROPAGACIÓN 39 4.4 CONCLUSIÓN DE LA PRUEBA CON RETROPROPAGACIÓN. 49 4.5 PRUEBAS EN RED ART1 49 4.6 RESULTADOS DE LAS PRUEBAS CON LA RED ART1S 51 4.7 CONCLUSIONES DE LAS PRUEBAS CON ART1 56 4.8 CONCLUSIONES DE PRUEBAS ENTRE BACKPROPAGATION Y ART1 56 CAPITULO V PROTOTIPO DE SOFTWARE PARA RECONOCIMIENTO DE HUELLAS DACTILARES 58 5.1 CREACIÓN DE BIBLIOTECAS DE VÍNCULOS DINÁMICOS (DLL, POR SUS SIGLAS EN INGLÉS) 58 5.2 DESCRIPCIÓN DEL SOFTWARE PROPUESTO 60 5.2.1 APLICACIÓN DE ADMINISTRADOR 61 5.2.2 APLICACIÓN DE USUARIO 65 5.3 FLUJOGRAMAS DE LOS PRINCIPALES PROCESOS DEL SOFTWARE 67 2 5.3.1 AGREGAR Y ELIMINAR USUARIO 67 5.3.2 INGRESAR HUELLA AL SISTEMA 69 5.3.3 RECONOCER 69 5.4 MANUALES DEL USUARIO 71 5.4.1 INICIANDO EL SOFTWARE 71 5.4.2 AGREGAR UN USUARIO A LA BASE DE DATOS 71 5.4.3 ELIMINAR USUARIO DE LA BASE DE DATOS 71 5.4.4 INGRESAR HUELLAS DE USUARIO AL SISTEMA 72 5.4.5 RECONOCER A UN USUARIO DEL SISTEMA POR MEDIO DE SU HUELLA DACTILAR 72 5.5 TABLA DE DESEMPEÑO DEL PROTOTIPO DE RECONOCIMIENTO DE HUELLA DACTILAR 73 5.5.1 TIEMPO DE RECONOCIMIENTO 73 5.5.2 PORCENTAJE DE RECONOCIMIENTO 75 5.6 FACTIBILIDAD ECONÓMICA 77 CONCLUSIONES 78 DELIMITACIONES 80 RECOMENDACIONES 81 REFERENCIAS 82 ANEXOS 87 INTRODUCCIÓN El siguiente documento muestra la implementación del prototipo estudiantil para el reconocimiento de personas mediante la huella dactilar del dedo índice; utilizando redes neuronales. Las pruebas del prototipo se implementan con la ayuda del lenguaje de programación matemática Matlab® y se implementa en su parte final en un programa ejecutable mediante Visual Basic®. Debido a que la biometría es una ciencia relativamente nueva cuyo objetivo es lograr que las computadoras sean capaces de reconocer con certeza a cada persona con base a sus características únicas, como huellas digitales, las facciones o las señas de sus ojos; se implementa un prototipo biométrico que es capaz de reconocer personas a través de la huella dactilar. Existen varios tipos de medición que pueden usarse para la biométrica. Los que la mayoría conoce, como la huella dactilar, la geometría de la mano y el análisis de los ojos, son también los que presentan mejor eficiencia hoy. Gracias a las características de las huellas dactilares; las cuales son únicas e invariantes con el tiempo para cada individuo, se implementa un prototipo en el que las personas son identificadas de manera automática, en base a las características de la huella dactilar del dedo índice. 2 CAPITULO I. ANTECEDENTES 1.1 BREVE HISTORIA DE LOS SISTEMAS DE RECONOCIMIENTO DE PERSONAS MEDIANTE HUELLAS DACTILARES “Su primer uso conocido se remonta a la Antigua Babilonia, donde los reyes firmaban las tabletas de arcilla grabando las yemas de sus dedos antes de cocerlas. Más tarde, en China, durante la Dinastía Tangen el año 650 de nuestra era, se estableció que para divorciarse de una mujer, el marido debía exponer siete motivos y firmar el documento con las huellas dactilares. También en la India se empezó a emplear pronto esta marca en documentos legales.” [1] En 1901 se formó una comisión de huellas dactilares para tener una base de datos de las personas civiles, fue creado por Edgard Henry, y en 1902 se metió a la cárcel a Harry jackson usando esta base de datos. En 1902, 1,722 huellas dactilares fueron identificadas en Escocia usando el sistema de Edgard Henry; lo que se compara a las casi 400 identificaciones hechas por el sistema de Bertillion en los años de 1894 y 1900. 1.2 SISTEMAS ACTUALES DE RECONOCIMIENTO DE PERSONAS MEDIANTE LAS HULLAS DACTILARES Se sabe que el reconocimiento de huellas digitales a través de sistemas electrónicos han tenido gran importancia para uso militar, de seguridad, control de personal, investigaciones de homicidios, entre otros, esto debido a que las huellas dactilares son únicas en cada persona e invariantes con el tiempo y esto facilita el tener un mejor control y seguridad de los individuos según sea el caso. 3 Es por esto que a lo largo del tiempo se han implementado muchos sistemas de reconocimiento basados en las huellas dactilares. En un principio estos sistemas de reconocimiento de huellas dactilares eran más propios de las diversas instituciones policiales o departamentos de seguridad en potencias Europeas y Estados Unidos (FBI) para averiguar crímenes y tener una base de huellas dactilares de las personas que por diversas razones han visitado la cárcel. Los sistemas actuales de reconocimiento de personas mediante huellas han avanzado tanto que ahora computadoras personales e incluso ciertas memorias extraíbles usb poseen scanner de huella dactilar para que solo la(s) persona(s) autorizada(s) puedan acceder a los archivos contenidos en estos. FIGURA 1.1 SISTEMA DE RECONOCIMIENTO DE HUELLA [2] FIGURA 1.2 FIGURA 1.3 COMPUTADORA PORTATIL Y MEMORIA USB CON RECONOCIMIENTO DE HUELLA [3] [4] 4 CAPITULO II. MARCO TEORICO Este capitulo se divide en tres partes, las características de las huellas dactilares, la biometría y las redes neuronales. 2.1 CARACTERISTICAS DE HUELLA DACTILAR: Las huellas digitales tienen ciertos aspectos muy propios de ellas y estos se mencionan a continuación: “Perennidad: Las impresiones aparecen en el individuo desde el sexto mes de la vida intrauterina hasta la disgregación de la piel después de la muerte. Inmutabilidad: Son inalterables ya que no aumenta ni disminuye el número de las líneas, ni cambia ningún detalle, y tampoco se alteran las proporciones por el crecimiento. Variedad Infinita: Las huellas digitales son absolutamente diferentes en cada individuo, no existen 2 impresiones iguales”. [5] Los patrones de huellas digitales están divididos en 4 tipos principales, todos ellos matemáticamente detectables. Esta clasificación es útil al momento de la verificación en la identificación. Figura 2.1 Minucias Típicas que aparecen en una huella [6]. 5 No existe una definición exacta para decir que es la presilla izquierda y derecha pero así como logramos apreciar en la figura 2.1 vemos que ésta es un arco el cual tiene una inclinación y está va al lado derecho o izquierdo de la huella. En cambio el arco se encuentra dibujado al centro de la huella. El Verticilo como se logra apreciar en la imagen, tiene forma de “S” dibujado en la huella digital. Puntos Identificables: “En la figura 2.2 aparecen los 8 puntos característicos que hay en un dedo, éstos se repiten indistintamente para formar entre 60 y 120 (por ejemplo 10 orquillas 12 empalmes 15 islotes, etc.) A estos puntos también se llaman minutae, o minucias, término utilizado en la medicina forense que significa “punto característico” [6]. Cada huella digital tiene arcos, ángulos, bucles remolinos etc. (llamados minucias). Figura 2.2 Minucias que se deben buscar en una huella [2]. Como observamos en la imagen anterior existen diferentes figuras que se pueden formar en la huella aquí se mencionan por ejemplo el islote que es una curva, la bifurcación cuando la línea se parte en dos y así sucesivamente pero dentro de cada uno de estas existen una variación para cada una de las formas. 6 Existe una ciencia encargada de estudiar las huellas dactilares de las personas y esta ciencia se llama dactiloscopia. A continuación se define: “La dactiloscopia es la ciencia que se propone identificar a las personas físicamente consideradas por medio de la impresión o reproducción física de los dibujos formados por las crestas capilares en las yemas de los dedos de las manos. … Otra definición; Es la ciencia que trata de la identificación de la persona humana por medio de las impresiones digitales de los diez dedos de las manos”. [7] Esta ciencia bosqueja a la huella por medio de zonas que son notorias las cuales se muestran a continuación: 2.1.2 EL DACTILOGRAMA Y SU TOPOGRAFÍA El dactilograma es la impresión digital tomada directamente sobre el papel, con tinta (litográfica). Ver anexos que es tinta litográfica y su preparación. Cada dactilograma está compuesto por tres zonas de invasión en la siguiente forma: Zonas del Dactilograma A: Zona Marginal B: Zona Nuclear C: Zona Basilar Figura 2.3 Zonas del Dactilograma [5]. 7 ---- DELTA: Se dividen en negros o salientes y blancos o hundidos, los negros se dividen en cortos o largos y los blancos se dividen en cerrados o abiertos, los deltas negros siempre están unidos y los blancos no. Línea DIRECTRIZ: Es aquella que partiendo del delta encierra o circunscribe la zona nuclear. Zona NUCLEAR: Es la región central del dactilograma y la mas importante, ya que esta zona es la que determina a los 4 tipos fundamentales del sistema. Figura 2.4 Localización de algunos puntos importantes de una huella [5]. Figura 2.5 Diferentes tipos de deltas encontrados en una huella [5]. 8 Dado que la huella tiene muchos patrones para ser identificadas las podemos utilizar en una red neuronal artificial para clasificarlas debido a que éstas pueden diferenciar figuras o formas con la ayuda de patrones únicos. Debido a estas características únicas que tienen las huellas digitales en las personas, estas nos pueden servir para identificar a la persona sin necesidad de tomarle toda la mano. 2.2 TEORIA BASICA ACERCA DE LAS REDES NEURONALES ARTIFICIALES. “Una red neuronal es un procesador masivamente paralelo distribuido que es propenso por naturaleza a almacenar conocimiento experimental y hacerlo disponible para su uso. Este mecanismo se parece al cerebro en dos aspectos: 1) El conocimiento es adquirido por la red a través de un proceso que se denomina aprendizaje. 2) El conocimiento se almacena mediante la modificación de la fuerza o peso sináptico de las distintas uniones entre neuronas.” [8] Otra definición: “Una red neuronal es un modelo computacional con un conjunto de propiedades específicas, como son la habilidad de adaptarse o aprender, generalizar u organizar la información, todo ello basado en un procesamiento eminentemente paralelo”. [8]. 9 2.2.1 CARACTERÍSTICAS GENERALES DE LAS REDES NEURONALES ARTIFICIALES. “Pesos: Las redes neuronales pueden tener factores de peso adaptable o fijo. Las que tiene pesos adaptables emplean leyes de aprendizaje para ajustar el valor de la fuerza de interconexión con otras neuronas. Si se utilizan pesos fijos, su tarea debe estar previamente definida. Los pesos son determinados a partir de una descripción completa del problema a tratar. Los pesos adaptables son muy importantes, ya que no se conoce de antemano su valor correcto. Aprendizaje: Se utilizan dos tipos de aprendizaje: Supervisado y no supervisado. En el primero se le proporciona a la red tanto la salida como la entrada correcta, y la red ajusta sus pesos para disminuir el error en la salida que ella calcula. Este tipo es utilizado principalmente en el conocimiento de patrones. En el aprendizaje no supervisado a la red se le proporcionan únicamente los estímulos, y la red ajusta los pesos de sus interconexiones utilizando solamente los últimos y la salida calculada por la red. La forma de aprendizaje que se utiliza depende del tipo de problema que se intenta resolver. Fases de operación: Se presentan dos fases en la operación de una red neuronal artificial: Entrenamiento y recuperación de lo aprendido. En la primera fase se le proporcionan estímulos de entrada y salida (según el caso), para que la red ajuste sus pesos de interconexión y minimice el error en la salida que calcula. En la segunda fase la red solamente calcula la respectiva salida. El aprendizaje de la red disminuye a medida aumenta el numero de veces que se usa. No son algorítmicas: Las redes neuronales artificiales no se programan solo para seguir una secuencia de instrucciones, sino que ellas mismas pueden generar sus propias reglas para aprender de su propia experiencia. Necesitan un patrón: las redes neuronales no son capaces de reconocer nada que no tenga algún tipo de patrón. Son muy buenas resolviendo problemas de asociación, evaluación y reconocimiento de patrones”.[9] 10 2.2.2 RESEÑA HISTÓRICA DE LAS REDES NEURONALES ARTIFICIALES: “1936 - Alan Turing. Fue el primero en estudiar el cerebro como una forma de ver el mundo de la computación. Sin embargo, los primeros teóricos que concibieron los fundamentos de la computación neuronal fueron Warren McCulloch, un neurofisiólogo, y Walter Pitts, un matemático, quienes, en 1943, lanzaron una teoría acerca de la forma de trabajar de las neuronas. Ellos modelaron una red neuronal simple mediante circuitos eléctricos. 1949 - Donald Hebb. Fue el primero en explicar los procesos del aprendizaje (que es el elemento básico de la inteligencia humana) desde un punto de vista psicológico, desarrollando una regla de como el aprendizaje ocurría. Aun hoy, este es el fundamento de la mayoría de las funciones de aprendizaje que pueden hallarse en una red neuronal. Su idea fue que el aprendizaje ocurría cuando ciertos cambios en una neurona eran activados. También intentó encontrar semejanzas entre el aprendizaje y la actividad nerviosa. Los trabajos de Hebb formaron las bases de la Teoría de las Redes Neuronales. 1950 - Karl Lashley. En sus series de ensayos, encontró que la información no era almacenada en forma centralizada en el cerebro sino que era distribuida encima de él. 1956 - Congreso de Dartmouth. Este Congreso frecuentemente se menciona para indicar el nacimiento de la inteligencia artificial. 1957 - Frank Rosenblatt. Comenzó el desarrollo del Perceptrón. Esta es la red neuronal más antigua; utilizándose hoy en día para aplicación como identificador de patrones. Este modelo era capaz de generalizar, es decir, después de haber aprendido una serie de patrones podía reconocer otros similares, aunque no se le hubiesen presentado en el entrenamiento. Sin embargo, tenía una serie de limitaciones, por ejemplo, su incapacidad para resolver el problema de la función OR-exclusiva y, en general, era incapaz de clasificar clases no separables linealmente. 11 1959 - Frank Rosenblatt: Principios de Neurodinámica. En este libro confirmó que, bajo ciertas condiciones, el aprendizaje del Perceptron convergía hacia un estado finito (Teorema de Convergencia del Perceptron). 1960 - Bernard Widroff/Marcian Hoff. Desarrollaron el modelo Adaline (ADAptative LINear Elements). Esta fue la primera red neuronal aplicada a un problema real (filtros adaptativos para eliminar ecos en las líneas telefónicas) que se ha utilizado comercialmente durante varias décadas. 1961 - Karl Steinbeck: Die Lernmatrix. Red neuronal para simples realizaciones técnicas (memoria asociativa). 1969 - Marvin Minsky/Seymour Papert. En este año casi se produjo la “muerte abrupta” de las Redes Neuronales; ya que Minsky y Papert probaron (matemáticamente) que el Perceptrons no era capaz de resolver problemas relativamente fáciles, tales como el aprendizaje de una función no-lineal. Esto demostró que el Perceptron era muy débil, dado que las funciones no-lineales son extensamente empleadas en computación y en los problemas del mundo real. 1974 - Paul Werbos. Desarrolló la idea básica del algoritmo de aprendizaje de propagación hacia atrás (Retropropagación); cuyo significado quedó definitivamente aclarado en 1985. 1977 - Stephen Grossberg: Teoría de Resonancia Adaptada (TRA). La Teoría de Resonancia Adaptada es una arquitectura de red que se diferencia de todas las demás previamente inventadas. La misma simula otras habilidades del cerebro: memoria a largo y corto plazo. 1985 - John Hopfield. Provocó el renacimiento de las redes neuronales con su libro: “Computación neuronal de decisiones en problemas de optimización.” 1986 - David Rumelhart/G. Hinton. Redescubrieron el algoritmo de aprendizaje de propagación hacia atrás (Retropropagación). A partir de 1986, el panorama fue alentador con respecto a las investigaciones y el desarrollo de las redes neuronales. En la actualidad, son numerosos los trabajos que se realizan y publican cada año, las aplicaciones 12 nuevas que surgen (sobretodo en el área de control) y las empresas que lanzan al mercado productos nuevos, tanto hardware como software (sobre todo para simulación).” [10] 13 2.2.3 CLASIFICACIÓN CARCATERISTICAS Y PRINICIPALES APLICACIONES DE ALGUNAS TOPOLOGIAS REDES NEURONALES ARTIFICIALES. TIPO DE APRENDIZAJE TOPOLOGIA DE RED AÑO CARACTERISTICAS APLICACIÓN Perceptron 1957 Una capa oculta Nos ayuda a clasificar los elementos existentes en dos grupos. Regidos por un umbral. implementación para compuertas “AND” y “OR” Adaline/Madaline 1960 Una capa oculta Entrenamiento basado en el Gradiente Función de transferencia Escalón Filtrado en transmisión de señales de radio Supervisado Perceptron multicapa o Backpropgation 1986 Cuasi linear Capas ocultas Actualización de pesos y ganancias Método del error cuadrático Procesamiento de imagen Identificación de caracteres a mano Reconocimiento de voz Análisis de firmas Art1 1976 -1986 (Gorsbeg)- 1991 (carpenter) Campo de comparaciones compuesto de neuronas. Tiene parámetro de vigilancia Modulo de reset. Patrones de Reconocimiento Reconocimiento de huellas Detección de olores en química Hopfield 1982 Capas ocultas Adaptación probabilística. Recurrentes estables en proceso no lineales Reconocimiento de imágenes Optimización de problemas. Diseño de integrados y chips. no supervisado Kohonen 1982 Alimentación de conexiones hacia adelante (feedforward) En el aprendizaje modifican pesos de la neurona activa y sus vecinas Análisis financieros Proyecciones urbanísticas Predicción Meteorológica auto supervisado Redes de base radial 1988 Aprendizaje supervisado: se determinan parámetros de la capa oculta Fase supervisada: determinación de pesos en la capa de salida Reconocimiento de expresiones faciales. Telecomunicaciones Procesamiento de señales e imágenes Visión robótica en computadoras Tabla 2.1 Clasificación por aprendizaje de redes neuronales 14 2.2.4 CARACERISTICAS NECESARIAS DE LAS REDES NEURONALES PARA EL RECONOCIMIENTO DE HUELLAS DACTILARES. Dado que las características de las huellas dactilares son únicas e invariables en el tiempo; se tiene la certeza que al digitalizar la imagen de la huella de un individuo ésta será única e irrepetible; y teóricamente las imágenes digitalizadas de la misma huella deberían ser iguales; esta afirmación no se da, porque como se explica más adelante, el proceso de digitalización se ve sometido a un pequeño nivel de ruido (ver figura 3.2) y surge el inconveniente que dos imágenes digitalizadas de huellas de la misma persona no son estrictamente iguales, debido a están un poco movidas, rotadas e incluso aparecen características que no son propias de ésta (ruido) lo que hace complicado el problema del reconocimiento de éstas. Tradicionalmente el problema de reconocimiento de huellas se puede resolver de dos maneras: una es encontrar las minucias o puntos característicos y la otra es por métodos de correlación de imagen. El método de las minucias; que consiste en adquirir los puntos característicos de la huella. Se vuelve complicado encontrarlos en imagen de baja calidad y con mucho ruido. En el caso de este prototipo con el sensor IDGEM 4000 (ver capitulo 3) se resuelve este problema, pero por la naturaleza del sensor, las imágenes digitalizadas de la misma huella colocada por el individuo dos veces consecutivas y aparentemente en la misma posición del sensor; éstas presentan movimientos de traslación y rotación con respecto a la otra; lo que genera nuevos puntos característicos y desaparecen otros; haciendo bastante complicado adecuar un método acertado hacia las variables de entrada a la red neuronal. En el caso del método de correlación de imagen resulta ser adecuado siempre y cuando la imagen este libre de movimientos de traslación y rotación; Lamentablemente 15 esta rotación y traslación se presenta en la digitalización de huellas por medio del sensor IDGEM 4000 ®. Para la solución del reconocimiento de huellas se debe de tomar una red neuronal cuyas variables de entradas sean idóneas en el aprendizaje y reconocimiento de patrones aprendidos en nuestro procesamiento de imágenes. Características requeridas en la red neuronal a utilizar: La red neuronal debe ser capaz de “reconocer patrones” previamente aprendidos.; con cierto grado de flexibilidad en el reconocimiento de éstos debido a las variaciones que pueden existir en la digitalización de la imagen. Que la red neuronal pueda controlar internamente la rigidez de clasificación de los patrones de entrada previamente aprendidos. La configuración de la red neuronal deberá ajustarse adecuadamente ante el ingreso de nuevos usuarios al sistema; así como también el hecho de poder eliminarlos de éste; otro aspecto fundamental es mantener el menor tiempo de procesado posible ante el reconocimiento de los patrones y por ende el reconocimiento de huellas del prototipo. Debido a éstas características las redes neuronales idóneas para resolver el problema son: Retropropagación y ART1 16 Tabla 2.2 comparación de Retropropagación con ART1 para reconocer imágenes de huellas dactilares TIPO DE RED APRENDIZAJE CARACTERISTICAS APLICACIONES COMUNES RETROPROPAGACIÓN SUPERVISADO Cuasi linear Capas ocultas Actualización de pesos y ganancias Método del error cuadrático Procesamiento de imagen Identificación de caracteres a mano Reconocimiento de voz Análisis de firmas ART1 NO SUPERVISADO Campo de comparaciones compuesto de neuronas. Tiene parámetro de vigilancia Modulo de reset. Clasificación de patrones de Reconocimiento comparando una entrada externa con un código de memoria interna. Reconocimiento de huellas Detección de olores en química 2.3 BIOMETRIA 2.3.1 CONCEPTO Y GENERALIDADES DE LA BIOMETRÍA “El concepto Biometría proviene de las palabras griegas bio (vida) y metría (medida).” [11] “El dispositivo biométrico es el que tiene la capacidad de medir, codificar, comparar, almacenar, transmitir y/o reconocer alguna característica propia de una persona, con un determinado grado de precisión y Confiabilidad. “La biométria esta básicamente basada en la comprobación científica de que existen elementos en las estructuras vivientes que son únicos e irrepetibles para cada individuo, de tal forma que, dichos elementos se constituyen en la única alternativa, técnicamente viable, para identificar positivamente a una persona sin necesidad de recurrir a firmas, passwords, pin numbers, códigos u otros que sean susceptibles de ser transferidos, sustraídos, descifrados o falsificados con fines fraudulentos.”[12] La identificación mediante la biometría se emplea para verificar la identidad de una persona examinando digitalmente determinados rasgos de alguna característica física y 17 comparando éstas con aquéllas de la misma persona guardadas en archivo, en una base de datos. Los rasgos físicos usados son huellas digitales, voz, geometría de la mano, el dibujo de las venas en la articulación de la mano y en la retina del ojo, la topografía del iris del ojo, rasgos faciales y la dinámica de escribir una firma e ingresarla en un teclado. 2.3.2 ALGUNOS SISTEMAS BIOMETRICOS ACTUALES Algunos de los sistemas biométricos actuales son: Lectores de huellas dactilares. Figura 2.5 Figura 2.6 Sistemas lectores de huellas dactilares [13] [14] Características: Fiabilidad en el reconocimiento Invariables en el tiempo Flexibilidad para agregar y retirar usuarios 18 Generalmente estos sistemas son usados para controlar horas de llegada y permitir el acceso en zonas restringidas de algunas empresas. Figura 2.7 Figura 2.8 Figura 2.9 Mouse con censor de huella, tarjeta de identificación para laptop y una laptop con sensor incorporado. [15] [16] [17] Características Fiabilidad en el reconocimiento Invariables en el tiempo Únicamente dan acceso a la información (archivos) a las persona(s) autorizadas Reconocimiento en tiempo real Sistemas de reconocimiento mediante el iris Figura 2.10 Figura 2.11 Figura 2.12 Diversos sistemas de reconocimiento de personas mediante iris y retina. [18] [19] [20] 19 Características Fiabilidad en el reconocimiento Invariables en el tiempo Únicamente dan acceso a personas autorizadas Reconocimiento en tiempo real Ojo (Iris) Ojo (Retina) Huellas dactilares Geometría de la mano Escritura y firma Voz Fiabilidad Muy alta Muy alta Alta Alta Alta Facilidad de uso Media Baja Alta Alta Alta Prevención de ataques Muy alta Muy alta Alta Alta Media Aceptación Media Media Media Alta Muy alta Estabilidad Alta Alta Alta Media Media Tabla 2.1 comparación de diferentes sistemas biométricos actuales. 20 CAPITULO III PRE-PROCESAMIENTO PARA DIGITALIZACION DE LAS IMÁGENES DE HUELLAS DACTILARES 3.1 HARDWARE UTILIZADO El prototipo de reconocimiento de huella dactilar en su forma inicial contiene la imagen de la huella (entintada) en un papel, luego es escaneada; para el procesamiento de la imagen. Este procesamiento resultó ser bastante complejo e ineficiente; dado que la imagen que se obtiene mediante esta técnica contiene muchos niveles de ruido (las líneas de las huellas no se distinguen bien, demasiadas variaciones en huellas de la misma persona, y el inconveniente de entintar el dedo al usuario que deseaba ser reconocido) y el pre-procesamiento de estas imágenes obtenidas resultaba ser muy complejo para poder llevar a cabo su binarización. Por esta razón se adquiere un escáner de huella dactilar que hiciera más sencillo el proceso de digitalización de la imagen de la huella a reconocer; y buscar la comodidad del usuario a ser reconocido. Por esto se obtiene un escáner de huella dactilar confiable y eficiente en la generación de imágenes de huellas. 3.2 VENTAJAS TÉCNICAS DE UN ESCÁNER DE HUELLA DACTILAR La principal ventaja técnica en el uso de un éscaner de huella dactilar es que la imagen digitalizada esta formato .bmp, disminuye el ruido en ésta y segmentada (consiste en separar el fondo zona negra, del resto de la imagen); Por esta razón se vuelve necesario la adquisición de un escáner en el prototipo del reconocimiento; las características requeridas para este escáner son: Factibilidad económica Adecuada interfase hacia la computadora 21 Adecuada calidad de la imagen digitalizada Un área de sensor estándar para el dedo índice. El sensor únicamente será utilizado para fines educativos en la realización del prototipo, por lo que la factibilidad económica se vuelve imprescindible, la interfase USB 2.0 es requerida para disminuir el tiempo de digitalización de la huella, la calidad de la imagen digitalizada disminuye el tiempo de pre-procesamiento de la imagen. CARACTERÍSTICAS TÉCNICAS DE ALGUNOS SENSORES DISPONIBLES DE HUELLA DACTILAR MODELO FM5000 Figura 3.1 FM5000 Precio: $185.00 (sin impuestos) Resolución 500Dpi Area del sensor: 12mm x 15mm Dimensiones: 25mm x 28mm x 55mm Peso 20gm Temperatura ambiente 0-60 oC Tipo de escaneo: Opticol Interfase Serial con Baud rate 9600+ Potencia: 3.3vdc, max.150mA * http://www.ravirajtech.com/fsm9000.html Mayo 2005 http://www.ravirajtech.com/fsm9000.html 22 MODELO MBF200 Figura 3.2 MBF200 Precio: $170.00 Precio: $200 Resolución: 500 dpi Area del sensor: 12.8mm x 15mm Corriente: 20mA Temperatura -20 – 85 oC Interfase: USB 2.0 * http://www.fujitsu.com/downloads/MICRO/fme/sensors/Fingerprint_fs_MBF200_Feb_04.pdf Mayo 2005 IDGEM 4000 Figura 3.3 IDGEM 4000 [21] Precio: $140.00 Resolución: 100 dpi Area del sensor: 12mm x 15mm Corriente: 55mA http://www.fujitsu.com/downloads/MICRO/fme/sensors/Fingerprint_fs_MBF200_Feb_04.pdf 23 Temperatura 0 – 50 oC Interfase: USB 2.0 * http://loftware-software.com/topidgem.htm Mayo 2005 3.4 IDGEM 4000 ® El modelo adquirido es el IDGEM4000 de la compañía Topaz Systems INC ® que básicamente es un sensor –escáner de huella dactilar (adecuado para la captura del dedo índice) con conexión USB V2.0, el sensor es adecuado por la factibilidad económica, y por su conveniente interfase que hace el proceso de digitalización y transferencia de datos hacia la computadora a una tasa de transmisión favorable. El sensor es conveniente para el prototipo de reconocimiento por la conexión USB que junto con el programa ejecutable que se implementa en este proyecto hace posible la instalación de este en cualquier computadora que tenga conexiones USB V1.0 o V2.0; debido a que las tecnologías en computadora han avanzado rápidamente es posible adquirir computadoras con un buen procesador (arriba de 1.8 Ghz), memoria (arriba de 256 Mb) y discos duros (40 Gb y nuevos modelos como SATA) a precios mas razonables y accesibles que en años atrás. Las imágenes digitalizadas del sensor presentan las siguientes características: Tamaño de la imagen 37.0 Kb Imágenes están en formato bmp El tamaño en píxeles de la imagen digitalizada es de 193 X 193 píxeles Resolución de imagen a 8 bits http://loftware-software.com/topidgem.htm 24 Figura 3.2 Ejemplo de imágenes de huellas del mismo individuo capturadas con el IDGEM 4000 Como se observa en la figura 3.2 las imágenes generadas con el sensor resultan ser más adecuadas para su procesamiento. Sin embargo este sensor combinado con el usuario a identificar presenta el inconveniente de generar pequeños movimientos de traslación y rotación, así como también pequeños niveles de ruido. Por esta razón la imagen adquirida por el IDGEM 4000 debe ser sometida a un proceso de mejoramiento de ésta para que pueda constituir unas variables de entrada adecuadas para la red neuronal. 3.5 ESQUEMA BÁSICO DEL PROCESAMIENTO DE LA HUELLA CAPTURADA CON EL SENSOR El procesado de la huella dactilar resulta un factor muy importante en la implementación del prototipo; su importancia radica en que los parámetros de esta imagen procesada sirven de parámetros de entrada en las redes neuronales a evaluar. Los pasos fundamentales del procesado de la huella se describen a continuación: Figura 3.2a Diagrama de bloques del pero procesamiento de la imagen del sensor IDGEM 4000 ®. NORMALIZACIÓN DE LA IMAGEN FILTRADO DE GABOR PARA OBTENER ESTIMACIÓN DE CRESTAS Y VALLES BINARIZACIÓN DE LA IMAGEN 25 Segmentación: Consiste en separar el fondo (zona negra), del resto de la imagen de la huella digital. Lo que nos permite tratar únicamente con la parte de interés (donde se encuentran los valles y crestas, que han de ser analizados). El IDGEM 4000 ® digitaliza una imagen previamente segmentada. Ver figura 3.3 a Normalización: Consiste en estandarizar la intensidad de niveles de gris de una imagen y es requerida para ajustar el rango de los valores originales a todo el rango de niveles permitido (ver Figura 3b). Estimación a la orientación: El campo de la orientación en una Huella digital define la orientación local de cada valle contenido en la misma. La estimación de la orientación es un paso fundamental para la mejora de imagen así como el paso siguiente, el Filtrado Gabor (ver figura 3c). El filtro de Gabor es un filtro lineal cuya respuesta impulsional es una función armónica multiplicada por una función gaussiana. A causa de la propiedad de convolución de la Transformada de Fourier que transforma los productos en convoluciones, la transformada de Fourier de la respuesta impulsional de un filtro de Gabor es la convolución de la transformada de Fourier de la función armónica y la transformada de Fourier de la función gaussiana. En consecuencia, normalmente se crea un banco de filtros de varios tamaños y rotaciones. Los filtros se convolucionan con la señal, dando como resultado el llamado espacio de Gabor. Este proceso está relacionado con los procesos en la corteza cerebral que trata la visión y, en consecuencia, el espacio de Gabor se aplica en procesado de imagen. [31] 26 Estimación de la frecuencia de los valles: Existe también otro parámetro importante que es empleado en la construcción del filtro Gabor, la frecuencia local de los valles y crestas. La frecuencia de la imagen representa la frecuencia local de las crestas en la huella. (Ver Figura 3d) Filtrado adecuado. Una vez obtenida la información de la orientación de las crestas y la frecuencia de las crestas ha sido determinada, estos parámetros son usados para construir el filtro Gabor. Estas propiedades permiten al filtro ser sintonizado para dar una respuesta máxima a una orientación y frecuencia específicas de las crestas en una imagen de una huella. Por lo tanto, el filtro Gabor puede ser sintonizado apropiadamente para preservar efectivamente las estructuras de las crestas mientras se reduce el ruido. (Ver Figura 3e) Binarización Cuando se binariza la imagen; ésta se adecua a valores de máscara de “1” asi como los valores de orientación mayores a 0.5. [27] [28] A través del algoritmo de Matlab ® implementado en mejorar.m (ver anexo 6)[29], cuyo autor Peter kosevi tiene el código fuente abierto y permite usarlo para fines de reconocimiento de huella; con este algoritmo se logra un realce de la imagen de la huella digital perfeccionando y alisando los bordes además de lograr una definición de las líneas representativas reconstruyéndolas adecuadamente mediante el proceso de filtrado (Gabor). 27 Diagrama detallado del pre-procesamiento de la imagen Figura 3.3a Figura 3.3b Figura 3.3c Imagen Segmentada tomada del sensor Imagen Normalizada Imagen estimada a la orientación en crestas y valles Figura 3.3e Figura 3.3d Filtrado adecuado de la huella Estimación de la frecuencia de la cresta. Figura 3f Imagen Binarizada 28 Una vez binarizada la imagen, ésta posee un tamaño de 163x163 píxeles, luego la imagen se somete a un proceso de rotación en intervalo de -6º a +6º en intervalos de 3º (-6º, -3º, 0 º, 3º , 6º) y se reduce a ¼ de su tamaño original; con el fin que la red aprenda a clasificar estos patrones y tener más posibilidades para el aprendizaje de la Red Neuronal a entrenar. . Figura 3.5 Rotaciones de la imagen mejorada Figura 3.6 Figura 3.7 Rotaciones de imagen Se lleva a una ventana de tamaño 18 x 18 píxeles -6º 6º 29 Las imágenes rotadas se reducen a ¼ de su tamaño original siendo el tamaño de 40 x 40 píxeles, las 5 rotaciones de la imagen se subdividen en 5 imágenes con tamaño de 18 x 18 píxeles. Esta información es introducida a la red para llevar a cabo el aprendizaje de ésta. Figura 3.8 Subdivisión de imagen. La huella digital de la persona se obtiene por medio del IDGEM 4000 ®, cuya función es capturar la información de la huella digital tomándola desde un dedo, y guardarla en un archivo de formato de imagen (bmp), se procesa la imagen, para lograr obtener las variables de entrada hacia la Red Neuronal para el reconocimiento de huellas, este proceso consiste en llevar a la imagen a una forma binarizada (ceros y unos); como se detallao en el esquema básico de procesamiento de la huella. 3. 6 METODOS UTILIZADOS EN EL PRE-PROCESAMIENTO DE LA IMAGEN Inicialmente al tener la imagen binarizada se procede a realizar una búsqueda de las minucias y con éstas se decide encontrar un patrón adecuado para entrenar la red y generar un buen funcionamiento en el reconocimiento, en base a éstos patrones. En la obtención de minucias de la huellas capturadas en las mismas personas, aparecen puntos o minucias y desaparecen otros puntos debido a los movimientos de 30 rotación que surgen en la colocación del dedo de la persona y también en gran parte por el ruido introducido por el sensor utilizado debido a que el ruido es interpretado como un dato en las primeras pruebas. Aun así se buscan métodos alternativos para lograr interpretar estos datos hacia la red neuronal; se intenta obtener en una primera prueba la distancia máxima entre las coordenadas relativas de las minucias encontradas con su respectivo ángulo, como característica única de cada huella del individuo a reconocer, pero la prueba falla por la aparición y desaparición de minucias; lo que genera distancias y ángulos diferentes en la aparición de las nuevas minucias. Figura 3.9 Método del cálculo del mayor distancia y su respectivo ángulo En una segunda prueba se encuentra el momento inercial (coordenadas especificas de x e y) en la nube de puntos, pero al comparar esta coordenada entre huellas de la misma persona esta coordenada varia demasiado y se vuelve un dato poco confiable para ser introducido a la red. 31 Figura 3.10 Método del cálculo de las coordenadas del momento inercial en la nube de puntos generados por la posición de las minucias Debido a estas irregularidades en el método de las minucias y tomando también en cuenta el tiempo de realización del proyecto se decide tomar otro camino a la solución del prototipo y se llega a tratar la imagen por medio de un seccionamiento de esta. Figura 3.11 Imagen Tomada con el aparato que utilizamos (IDgem) en la toma de huellas. 32 Figura 3.12 Imagen reconstruida. La imagen de la huella dactilar binarizada tiene las siguientes dimensiones 163 X 163 píxeles, ésta imagen es sometida a una serie de filtros que permiten rotar la matriz en un rango de -6º a 6º con saltos de 3 grados, el objetivo de este proceso es lograr diferentes patrones de prueba y entrenamiento para los tipos de redes a verificar. Se obtiene un total de 5 variantes de la misma imagen, con el objetivo que la red genere flexibilidad al aprender las variaciones. Las 5 imágenes (diversidad de rotaciones realizadas anteriormente), son reducidas a ¼ de su tamaño original, (valor óptimo al efectuar pruebas con otros valores de reducción en base a tener el menor tiempo de procesamiento posible) la imagen obtenida se subdivide en 5 cuadros (valor adecuado para reducir el tiempo de procesamiento de la computadora) traslapados entre si, con el fin de obtener un mejor reconocimiento de la huella, estos cuadros o secciones de la imagen son los patrones que la red debe aprenderl, en total la red aprende 25 imágenes de una huella por persona, por la razón que se tienen 5 rotaciones y 5 subimagnes (de 18 x 18 píxeles), entonces 5 X 5 = 25, con las cuales se entrena la red obteniendo así sus respectivos pesos. El proceso de reconocimiento consiste en tomar la huella a reconocer, binarizarla, (dimensiones de 163X163 píxeles) reducirla ¼ de su tamaño original (imagen de 40 X 40 píxeles); la red se encarga de clasificar 25 sub-imagenes que previamente aprendió, desplazando cada sub-imagen en pasos de 1 píxel, cuando la Red logra clasificar un 33 patrón es cuando pertenece a una imagen similar, repitiéndose el proceso sucesivamente con el resto de sub-imágenes generando un valor de clasificaciones que indica cuando la imagen de la huella a identificar tiene el mayor numero de clasificaciones y facilita la identificación de la huella. 3.7 ¿POR QUÉ SUBDIVIDIR LA IMAGEN DE LA HUELLA? Las imágenes de las huellas digitalizadas por el sensor varían en su posición de forma horizontal, vertical e incluso angular; Con estas variaciones la imagen de una misma huella ingresada dos veces por una misma persona, no es idéntica en posición respecto a la primera imagen de la huella obtenida; al subdividir la imagen en 5 partes el tamaño de 40 x 40 píxeles es adecuado para reconocer segmentos de la huella inicialmente capturada (usada en el entrenamiento de las topologías de red) de una persona con una segunda imagen de su misma huella capturada con el sensor. Con esta división es posible que la red realice la clasificación de coincidencias de sub-imágenes entre dos huellas tomadas de la misma persona con las entradas previamente almacenadas; como se observa en las figuras 3.11 y 3.12 se muestran dos imágenes de huellas de la misma persona tomadas con el sensor y se aprecia que las partes encerradas en los círculos son sub-imágenes similares con el inconveniente de una variación de posición. Al tomar la imagen completa de la huella y compararla con una segunda imagen de la misma huella resulta una imagen diferente en ángulo y posición, siendo un problema la adecuada clasificación en el reconocimiento de la huella de una misma persona. Una analogía es la forma de aprender la imagen de un rostro; al momento de reconocer un rostro en una imagen movida de éste, no es posible encontrar ciertas características (por ejemplo que a la segunda imagen le haga falta una oreja, o que no aparezca la frente del rostro) es más complicado reconocer el rostro si se toma como una sola imagen; en cambio si se toman secciones o partes más pequeñas de la imagen del 34 rostro como: nariz, ojos, cejas, frente, cabello, boca, labios, etc. Con la ayuda de estas características se tiene mayor facilidad para poder clasificar dentro de la segunda imagen del rostro para determinar si efectivamente pertenecen a este o no. Figura 3.11 Figura 3.12 Huella a Huella b 35 CAPITULO IV. METODOLOGIA Y PRUEBAS CON ALGUNAS TOPOLOGIAS DE REDES NEURONALES. 4.1 METODOLOGÍA EMPLEADA PARA LAS DIFERENTES PRUEBAS CON REDES NEURONALES. Las pruebas se implementan en 6 individuos; digitalizando las huellas por medio del IDGEM 4000® las 2 huellas por cada persona (siendo 12 huellas en total), esto se realiza con el objetivo de poder entrenar la red neuronal a probar con la primera huella y poner a prueba su funcionamiento mediante el reconocimiento de la segunda huella de la persona. Se observan en las figuras 4.1a-4.1f los archivos en formato .bmp, y 193 X193 píxeles. Las huellas digitalizadas están en formato .bmp y con tamaño original de 193 x 193 píxeles; son binarizadas con el proceso que se explicó en el capitulo 3, para ello se implementa un programa escrito en Matlab ® denominado huellas.m [ver anexo6]; en el que se reduce la imagen a 163 x 163 píxeles[ver anexo 6] , se binarizan las huellas (en esta prueba son 12 huellas) con la ayuda del algoritmo de Peter Kovesi [28] (implementado en mejorar.m) y se procede a preparar los parámetros de entrada de las redes neuronales a probar. Esta parte del proceso se visualiza con el programa mostra3.m [ver anexo6], cuyo resultado se observa en la figura 4.1a-4.1f. 36 Figura 4.1a Huellas de la persona 1 Figura 4.1b Huellas de la persona 2 Figura 4.1. Huellas de la Persona 1 Figura 4.2. Huellas de la Persona 2 Figura 4.1c Huellas de la persona 3 Figura 4.1d Huellas de la persona 4 Figura 4.3. Huellas de la Persona 3 Figura 4.4. Huellas de la Persona 4 Figura 4.1e Huellas de la persona 5 Figura 4.1f Huellas de la persona 6 37 Figura 4.2 imágenes de las 12 huellas binarizadas 38 Las entradas a la red neuronal se obtienen con la implementación del programa Imgs2art99x4.m [Anexo 6], que realiza la rotación de las imágenes de -6º a +6º en intervalos de tres grados (-6º, -3º, 0, 3º y 6º) a la vez reduce en ¼ el tamaño original de píxeles (60 x 60), con fines de adecuar el entrenamiento de la red en su respectiva prueba. Las imágenes de 40x40 píxeles son analizadas con una ventana de 18 x 18 píxeles traslapadas, con la finalidad que la red “aprenda” estas imágenes para luego ser reconocidas. La notación en las pruebas será representada así: Hx es la huella 1, 2, …n Px es la persona a quién pertenece la huella; recordemos que son dos huellas por persona, así: en H1(P1) y H2(P1) serán las dos huellas tomadas por la persona 1. En la primera fila se tienen dos huellas tomadas de cada persona (uno para entrenamiento y la otra para reconocimiento), por lo que H1(P1) y H2(P1) representan a huellas que pertenecen a la persona 1, H3(P2) y H4(P2) son huellas a la persona 2, y así sucesivamente hasta llegar a H11(P6) y H12(P6) las cuales son las últimas dos huellas que pertenecen a la persona 6. Los resultados expresados en valores binarios; representan al “0” como una huella que no pertenece al sujeto que se desea identificar y “1” el reconocimiento de la persona. La prueba es realizada entrenando la huella del individuo que se desea almacenar; por lo que en las 11 huellas restantes la red debe reconocer los patrones previamente aprendidos en el entrenamiento. 39 4.2 PRUEBAS EN LA RED DE RETROPROPAGACION (RETROPROPAGACIÓN). Figura 4.3 Esquema de la red Retropropagación [23] 4.3 RESULTADOS CON PRUEBAS EN RED RETROPROPAGACIÓN. Esta prueba es realizada con 2 huellas del mismo dedo de la misma persona en 6 sujetos (2 huellas * 6 personas = 12 huellas), utilizando una huella para el entrenamiento y la otra para el reconocimiento; la huella a entrenar es la primera huella capturada por el sensor de la persona, por lo que los valores de entrenamiento serán en la primera prueba con la huella 1, luego en la segunda prueba se hacen con la huella 3, luego en la tercera prueba con la huella 5, en la cuarta prueba con la huella 7, en la quinta prueba con la huella 9 y en la sexta prueba con la huella 11; la segunda huella tomada de la misma persona sirve para determinar si la red efectivamente reconoce al sujeto que pertenece; con lo que es posible determinar porcentajes efectivos de reconocimiento para diferentes valores de alpha. 40 CONFIGURACIÓN DE LA RED NEURONAL RETROPRAPAGACION PARA LA PRUEBA Una red por cada cliente 100 neuronas de entrada , 15 en medio y 1 de salida 1 capa oculta 1 salida por cada red Velocidad de aprendizaje = 0.05 Valor de incremento de aprendizaje = 1.05 Momento= 0.8 Error de meta=1x10-5 Se variaran valores de alpha de 0.01 a 0.2 Mediante el programa huellas.m; la imágenes son binarizadas con entradas de 18 x 18 píxeles (324 en total); y con intervalos de valores diferentes de Alpha (α) se obtiene el resultado binario en el que el “1” representa una identificación y “0” representa que el individuo no pertenece a la huella entrenada. Tabla 5.1 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.001 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 0 0 1 1 0 0 0 0 1 0 Persona 2 0 0 1 1 0 0 0 0 0 1 0 1 Persona 3 0 1 0 0 1 1 0 0 0 0 0 0 Persona 4 0 0 1 1 1 0 1 1 0 0 0 0 Persona 5 0 1 1 1 1 1 0 0 1 1 1 0 Persona 6 0 0 1 0 0 1 0 0 0 0 1 1 En la Fila 2 se observa que la red Retropropagación realiza 9 reconocimientos verdaderos; así: H1(P1) y H2(P2) que son “1” marcados en color rojo que indican que la red reconoció adecuadamente la huella de la misma persona; los valores de “0” los se dan en 7 huellas que son: H5(P3), H4(P2). H7(P4), H8(P4), H9(P5), H10(P5) y H12(P6). 41 Sin embargo la red brinda 3 reconocimientos erróneos los cuales se dan en H5(P3), H6(P3) y H11(P6). Realizando el mismo procedimiento para la tercera fila se tiene que la red da 10 reconocimientos verdaderos; teniendo 2 reconocimientos fallidos. Para las demás filas podemos obtener un valor global de los reconocimientos verdaderos en las 6 personas; así: Se tiene 49 valores acertados de las 72 (12 valores *6 personas) formas posibles; teniendo un promedio de 49 / 72 = 0.6805 = 68.05 % de reconocimientos efectivos para un valor de α de 0.001. Tabla 5.2 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.002 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 0 0 0 0 0 0 0 0 0 0 Persona 2 1 1 1 1 1 1 1 1 1 1 1 1 Persona 3 1 1 1 1 1 1 0 1 1 1 0 0 Persona 4 1 0 1 1 1 1 1 1 0 0 1 1 Persona 5 0 1 1 0 1 1 0 0 1 1 1 0 Persona 6 1 1 0 0 1 1 0 0 1 1 1 1 De manera similar vemos que en esta prueba en la fila 2 la red da 12 valores acertados de reconocimiento siendo con “1” el H1 (P1) y H2(P1) y “0” los demás valores. Se aplica el mismo proceso en las demás filas y se suman los resultados acertados de la fila se tiene: 39 reconocimientos de los 66 posibles. Siendo un valor de 37 / 72 = 0.5138 = 51.38% de reconocimiento efectivo para un valor de α de 0.002 42 Tabla 5.3 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.003 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 1 1 0 0 0 1 1 1 0 1 Persona 2 1 1 1 1 1 1 1 1 1 1 1 1 Persona 3 1 1 1 1 1 1 1 1 1 1 0 1 Persona 4 1 1 1 1 0 1 1 1 1 1 1 0 Persona 5 1 1 1 1 0 1 1 1 1 1 1 1 Persona 6 0 1 0 0 0 0 0 0 1 0 1 1 De manera similar se tiene 45 valores acertados de las 72 posibles; teniendo un promedio de 45 / 72 = 0.625 = 62.50% de reconocimientos efectivos para un valor de α de 0.003. Tabla 5.4 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.004 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 1 1 0 0 1 0 1 1 0 0 Persona 2 1 0 1 1 0 0 0 0 1 1 1 1 Persona 3 1 1 0 0 1 1 0 0 0 0 1 0 Persona 4 1 1 1 0 1 0 1 1 0 1 0 1 Persona 5 1 1 0 0 1 1 1 1 1 1 1 1 Persona 6 1 1 1 1 1 1 1 0 1 1 1 1 Haciendo el proceso en todas las filas y sumando los resultados acertados de éstas, se tiene: 36 reconocimientos de los 72 posibles. Siendo un valor de 36 / 72 = 0.50 = 50 % de reconocimiento efectivo para un valor de α de 0.004 Tabla 5.5 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.005 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 0 1 1 0 1 1 1 1 0 1 Persona 2 1 1 1 1 0 1 1 1 1 0 1 1 Persona 3 0 0 0 0 1 1 0 1 1 0 1 0 Persona 4 1 1 1 1 1 1 1 1 1 0 1 1 Persona 5 1 1 1 1 1 1 1 1 1 1 1 1 Persona 6 1 1 1 1 1 0 1 1 0 0 1 1 43 Haciendo el proceso en todas las filas y sumando los resultados acertados de éstas, se tiene: 36 reconocimientos de los 72 posibles. Siendo un valor de 28 / 72 = 0.3888 = 38.88 % de reconocimiento efectivo para un valor de α de 0.005 Tabla 5.6 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.02 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 1 1 0 0 0 1 1 1 0 1 Persona 2 1 1 1 1 1 1 1 1 1 1 1 1 Persona 3 1 1 1 1 1 1 1 1 1 1 0 1 Persona 4 1 1 1 1 0 1 1 1 1 1 1 0 Persona 5 1 1 1 1 0 1 1 1 1 1 1 1 Persona 6 0 1 0 0 0 0 0 0 1 0 1 1 Se tiene 28 valores acertados de las 72 formas posibles; con un promedio de 28 / 72 = 0.3888 = 38.89 % de reconocimientos efectivos con un valor de α de 0.02 Tabla 5.7 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.04 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 1 1 0 0 0 1 1 1 0 1 Persona 2 0 1 1 1 0 0 0 0 0 0 0 0 Persona 3 0 0 0 0 1 1 1 0 0 1 0 0 Persona 4 0 0 0 0 0 0 1 1 0 0 0 0 Persona 5 1 1 1 1 1 1 0 0 1 1 1 1 Persona 6 1 1 1 1 1 1 1 1 1 1 1 1 En este caso se tienen 45 valores acertados de las 72 formas posibles; con un promedio de 45 / 72 = 0.625 = 62.50 % de reconocimientos efectivos con un valor de α de 0.04 Tabla 5.8 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.05 44 En este caso se tienen 41 valores acertados de las 72 formas posibles; con un promedio de 41 / 72 = 0.5694 = 56.94 % de reconocimientos efectivos con un valor de α de 0.05 Tabla 5.9 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.06 Realizando el mismo procedimiento tenemos en total 30 reconocimientos efectivos de los 72 posibles. Así: 30 / 72 = 0.4167 = 41.67% de reconocimiento efectivo para un valor de α de 0.06. Tabla 5.10 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.07 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 0 0 0 0 0 0 0 0 0 0 Persona 2 1 1 1 1 1 1 1 1 1 1 1 1 Persona 3 1 1 1 1 1 1 1 1 0 0 1 1 Persona 4 1 0 0 0 0 0 1 1 0 1 0 1 Persona 5 0 0 0 0 0 0 0 0 1 1 0 0 Persona 6 1 1 1 1 1 1 0 1 1 1 1 1 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 1 1 1 1 1 1 1 1 1 1 Persona 2 0 0 1 1 0 0 1 1 0 1 0 0 Persona 3 1 0 0 0 1 1 0 0 0 0 0 1 Persona 4 0 1 1 0 1 1 1 1 1 1 1 1 Persona 5 0 0 1 0 1 1 1 0 1 1 1 1 Persona 6 0 0 0 1 1 0 0 0 0 0 1 1 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 1 1 1 1 0 1 1 1 1 1 Persona 2 1 1 1 1 1 1 1 1 1 1 1 1 Persona 3 1 1 1 0 1 1 1 1 1 0 1 1 Persona 4 0 0 1 1 1 0 1 1 0 0 0 0 Persona 5 0 0 1 1 1 0 1 1 1 1 1 1 Persona 6 0 0 1 1 1 0 0 1 0 1 1 1 45 Realizando el mismo procedimiento tenemos en total 42 reconocimientos efectivos de los 72 posibles. Así: 42 / 72 = 0.5833 = 58.33% de reconocimiento efectivo para un valor de α de 0.07 Tabla 5.11 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.08 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 0 0 0 0 0 0 0 0 0 0 Persona 2 1 1 1 1 1 1 1 1 1 1 1 1 Persona 3 1 1 1 1 1 1 1 1 0 0 1 1 Persona 4 1 0 0 0 0 0 1 1 0 1 0 1 Persona 5 0 0 0 0 0 0 0 0 1 1 0 0 Persona 6 1 1 1 1 1 1 0 1 1 1 1 1 Aplicando el mismo procedimiento tenemos en total 42 reconocimientos efectivos de los 72 posibles. Así: 42 / 72 = 0.5833 = 58.33% de reconocimiento efectivo para un valor de α de 0.08. Tabla 5.12 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.09 De la misma forma se obtiene un total 56 reconocimientos efectivos de los 72 posibles. Así: 56 / 72 = 0.7777 = 77.78% de reconocimiento efectivo para un valor de α de 0.09 Tabla 5.13 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.10 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 0 0 0 0 0 0 0 0 0 0 Persona 2 0 0 1 1 0 0 0 0 0 0 0 0 Persona 3 0 0 0 0 1 1 1 1 1 0 0 0 Persona 4 0 0 0 1 1 1 1 1 0 1 1 1 Persona 5 0 0 1 1 0 0 0 0 1 1 0 0 Persona 6 1 1 0 1 0 0 0 1 0 1 1 1 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 0 0 0 0 0 0 1 0 0 0 Persona 2 0 0 1 1 1 1 0 0 0 0 1 0 Persona 3 1 1 1 0 1 1 1 1 1 0 1 1 Persona 4 0 0 0 1 1 1 1 1 1 1 0 1 Persona 5 0 1 0 0 0 0 1 0 1 1 0 0 Persona 6 1 1 1 1 1 1 1 1 1 1 1 1 46 De la misma forma se obtiene un total 42 reconocimientos efectivos de los 66 posibles. Así: 42 / 72 = 0.5833 = 58.33% de reconocimiento efectivo para un valor de α de 0.10. Tabla 5.14 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.11 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 1 0 1 1 0 1 0 0 0 0 Persona 2 0 0 1 1 1 0 0 1 0 0 0 0 Persona 3 1 1 1 0 1 1 0 1 1 1 1 1 Persona 4 1 1 0 1 0 0 1 1 0 0 1 1 Persona 5 1 1 0 1 1 0 1 1 1 1 0 1 Persona 6 0 0 0 1 0 0 0 1 0 0 1 1 De la misma forma obtenemos un total 44 reconocimientos efectivos de los 72 posibles. Así: 44 / 72 = 0.6111 = 61.11% de reconocimiento efectivo para un valor de α de 0.11. Tabla 5.15 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.12 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 0 0 1 0 0 1 1 1 0 1 Persona 2 1 1 1 1 1 1 0 1 1 1 1 1 Persona 3 0 0 0 1 1 1 1 1 0 1 1 0 Persona 4 0 0 1 1 0 1 1 1 0 0 1 1 Persona 5 1 0 0 0 0 0 0 0 1 1 0 0 Persona 6 1 1 1 1 1 0 0 1 1 1 1 1 De la misma forma obtenemos un total 39 reconocimientos efectivos de los 72 posibles. Así: 39 / 72 = 0.5416 = 54.17% de reconocimiento efectivo para un valor de α de 0.12. Tabla 5.16 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.14 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 1 1 1 1 1 1 1 1 1 0 Persona 2 1 1 1 1 0 0 1 1 1 0 1 0 Persona 3 0 0 0 0 1 1 0 0 0 0 0 0 Persona 4 1 0 1 1 1 0 1 1 1 0 1 1 Persona 5 0 1 0 1 0 0 0 0 1 1 0 1 Persona 6 0 0 0 1 0 0 1 1 0 1 1 1 47 De la misma forma obtenemos un total 43 reconocimientos efectivos de los 72 posibles. Así: 43 / 72 = 0.5972 = 59.72% de reconocimiento efectivo para un valor de α de 0.14. Tabla 5.17 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.16 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 0 0 1 0 0 0 1 1 0 0 Persona 2 0 1 1 1 0 1 0 0 0 0 0 0 Persona 3 0 0 0 0 1 1 1 0 1 0 0 0 Persona 4 0 0 0 0 0 0 1 1 0 0 0 1 Persona 5 1 1 0 0 1 1 1 1 1 1 0 1 Persona 6 1 0 0 0 1 1 0 1 0 1 1 1 De la misma forma obtenemos un total 52 reconocimientos efectivos de los 72 posibles. Así: 52 / 72 = 0.7222 = 72.22% de reconocimiento efectivo para un valor de α de 0.16. Tabla 5.18 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.18 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 1 0 1 0 1 0 0 0 0 0 Persona 2 1 0 1 1 0 0 0 1 1 0 1 0 Persona 3 0 0 1 0 1 1 0 0 1 0 0 0 Persona 4 0 1 0 0 1 1 1 1 0 0 1 0 Persona 5 1 1 1 1 1 1 0 1 1 1 0 0 Persona 6 1 0 1 1 0 0 1 1 1 1 1 1 De la misma forma obtenemos un total 45 reconocimientos efectivos de los 72 posibles. Así: 45 / 72 = 0.625 = 62.50% de reconocimiento efectivo para un valor de α de 0.18. 48 Tabla 5.19 Resultados obtenidos en RETROPROPAGACIÓN con α = 0.2 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 0 0 0 0 0 1 0 0 0 0 Persona 2 0 0 1 1 0 0 0 0 1 0 0 0 Persona 3 0 0 0 0 1 1 0 0 0 0 1 1 Persona 4 0 1 0 0 1 1 1 1 0 0 1 0 Persona 5 1 1 1 1 1 1 1 1 1 1 1 1 Persona 6 0 0 0 0 0 1 1 0 0 0 1 1 De la misma forma se dan en total 52 reconocimientos efectivos de los 66 posibles. Así: 52 / 72 = 0.7222 = 72.22% de reconocimiento efectivo para un valor de α de 0.20. Los resultados de las pruebas obtenidas con diferentes valores de α se muestran en la siguiente gráfica: Figura 4.4 Gráfico del porcentaje de reconocimiento en la red neuronal Retropropagación. ALFA (α) VS PROCENTAJE DE RECONOCIMEINTO 0.001 0.002 0.003 0.004 0.005 0.02 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.14 0.16 0.18 0.2 68.05 51.38 62.5 50 38.88 38.89 62.5 56.94 41.67 58.33 58.33 77.78 58.33 61.11 54.17 59.72 72.22 62.5 72.22 0 10 20 30 40 50 60 70 80 90 ALFA (α) PO R C EN TA JE D E R EC O N O C IM IE N TO 49 4.4 CONCLUSIÓN DE LA PRUEBA CON RETROPROPAGACIÓN. Como se observa en la figura 4.4 los porcentajes de reconocimiento oscilan entre 38% y aproximadamente 78%, en diversos intervalos de valores de α siendo los porcentajes por debajo de los requeridos para este proyecto (95% de reconocimiento efectivo). En este proyecto la red de Retropropagación no es la adecuada para la solución del reconocimiento efectivo. Un valor pequeño de alfa radica en la red con un gran número de iteraciones, si se toma un valor muy grande, los cambios en los pesos serán muy grandes, avanzando muy rápidamente por la superficie de error, con el riesgo de saltar el valor mínimo del error y estar oscilando alrededor de él pero sin poder alcanzarlo. [25] 4.5 PRUEBAS EN RED ART1 Figura 4.5 Esquema de red Neuronal ART1 [24] 50 RED ART1S (TEORIA DE RESONANCIA ADAPTATIVA). “La red neuronal ART1 es una clasificadora de vectores. Un vector de entrada se clasifica dentro de un número de categorías dependiendo de la similitud con los patrones previos. Si el criterio de similitud no se satisface se crea una nueva categoría. Así, la red ART resuelve el dilema entre plasticidad y estabilidad al habilitar que el aprendizaje ocurra solamente en un estado de resonancia. La red neuronal ART1 trabaja con patrones binarios los cuales se comparan con los vectores prototipos de modo de disminuir similitudes hasta que una igualdad adecuada se encuentra o se crea una nueva categoría. Los patrones prototipos (vectores) se guardan en la red como vectores de peso de las conexiones de la Memoria de Periodo Largo Altibaja. (en inglés T-D LTM). Los vectores prototipos que no han sido usados hasta un cierto tiempo se colocan en 1. Estas T-D LTM dan la propiedad crucial del código de auto estabilización. Los nuevos patrones de entrada son también codificados en la Memoria de Periodo Largo de Abajo-Arriba (el filtro adaptativo Abajo-Arriba B-U LTM). Las B-U LTM juegan un papel en la primera etapa para determinar el grado de similitud entre el patrón de entrada y los prototipos, representados por los nodos de salida activos en la capa F2. Esta es una “clasificación tosca” de la entrada en una de las categorías activas. El estado activo de una unidad de salida (la ganadora), denotado por j, indica que el vector de entrada x pertenece al racimo representado por esta unidad j. La segunda etapa para encontrar la similitud es la comparación del patrón retroalimentado desde F2 con el patrón de entrada. El patrón de vigilancia rho, 0≤rho≤1, se usa para determinar si el vector de entrada x y la salida de F1 (en el programa este es el vector a1) son lo suficientemente similares. vj es la T-D LTM asociada con la ganadora j en F2 y representa un racimo ya almacenado. La relación ))(:,(/)):,(1( qpsumqaasum Ecuación 4.1 51 da la fracción de 1’s en x que están también es vj. Un parámetro de vigilancia rho = 0.7 significa que un vector de entrada x con 10 unos resonará con un vector ganador vj que tiene al menos 7 unos en la misma posición que la entrada x. Si la prueba de vigilancia no satisface para todas las categorías y el patrón de entrada no puede ser clasificado en ninguna de las categorías existentes se crea una nueva categoría.” [24] [25] CONFIGURACIÓN DE LA RED NEURONAL ART1 324 entradas 25 salidas Máximo de categorías o clusters= 25 Valor de vigilancia de entrenamiento =0.99 Se variará el valor de vigilancia de reconocimiento = 0.70 – 0.90 Se implementa una red neuronal por cliente, con el objetivo de hacer más adecuado el proceso de agregado y eliminado de usuarios Las pruebas en Matlab ® se realizan con la ayuda del programa art1s.m [ver anexo 6] creado por Val Ninov [30] que simula la red neuronal ART1; y entrena con los patrones de entrada de la imagen de 18 x 18 píxeles y sus variaciones en los ángulos - 6º a +6º. El programa que se implementa para entrenar y reconocer la huella es reconocer11.m [ver anexo 6], al cual se le ingresan diferentes imágenes de 18 x 18 píxeles, brindando respuestas de clasificación de la red neuronal ART1, mediante una sumatoria de todas las clasificaciones encontradas por ésta. La clasificación de la red neuronal se realiza en el programa reconocerx.m [ver anexo 6], en este programa se activan las neuronas con patrones de clasificación previamente aprendidos y el individuo que mas clasificaciones posee a los patrones previamente entrenados es perteneciente a la huella. 52 La red brinda esta información en las tablas de prueba y el “1” es el sujeto reconocido y “0” la huella que no encuentra patrones previamente aprendidos. La tabla de 12 filas por 6 columnas muestra los diversos valores de clasificación. El factor de aprendizaje rho se varía y se implementa en el programa reconcer11.m; con valores de prueba de 0.70 – 0.95. 4.6 RESULTADOS DE LAS PRUEBAS CON LA RED ART1S En la prueba se toman 2 huellas a 6 sujetos, siendo una huella para el entrenamiento y la otra para el reconocimiento; la huella a entrenar es la primera huella capturada por el sensor de la persona, en la segunda prueba con la huella 3, luego en la tercera prueba con la huella 5, en la cuarta prueba con la huella 7, en la quinta prueba con la huella 9 y en la sexta prueba con la huella 11; la segunda huella tomada de la misma persona sirve para determinar si la red efectivamente reconoce al sujeto que pertenece; se toman diferentes valores del parámetro de vigilancia “ρ” (0.70 a 0.90). Tabla 5.8 Resultados obtenidos en ART1 con ρ = 0.70 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 0 0 0 0 0 0 0 0 0 0 Persona 2 0 1 1 1 1 0 0 0 0 0 0 0 Persona 3 0 1 0 0 1 1 0 0 0 0 0 0 Persona 4 1 0 0 1 0 1 1 1 0 0 1 1 Persona 5 0 0 0 0 0 0 0 0 1 1 0 0 Persona 6 0 1 0 0 1 1 1 1 0 0 1 1 En la Fila 2 que la red brinda 12 reconocimientos verdaderos; así: efectivamente se obtiene el valor de “1” en H1(P1) y H2(P1) y el valor de “0” en todas las demás huellas que no pertenecen a las huella de la persona1. Con el mismo procedimiento para la tercera fila se tiene que la red da 10 reconocimientos verdaderos; Por lo que ésta tiene 2 reconocimientos fallidos. 53 Generalizando y aplicando el mismo proceso de forma similar para las demás filas se tiene un valor global de los reconocimientos verdaderos en las 6 personas; así: Se dan 65 valores acertados de 72 (12 valores *6 personas) formas posibles; teniendo un promedio de 65 / 72 = 0.9027 = 90.27% de reconocimientos efectivos con el valor de ρ = 0.70. Tabla 5.9 Resultados obtenidos en ART1 con ρ = 0.75 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 1 0 0 0 0 0 0 0 0 0 0 Persona 2 0 0 1 1 0 0 0 0 0 0 0 0 Persona 3 0 0 0 0 1 1 0 0 0 0 0 0 Persona 4 1 0 0 0 0 0 1 1 0 0 0 0 Persona 5 0 0 0 0 0 0 0 0 1 1 0 0 Persona 6 0 0 0 0 0 0 0 0 0 0 1 1 De manera similar vemos que en esta prueba en la fila 2 la red brinda 12 valores acertados de reconocimiento siendo con “1” el H1(P1) y H2(P1), y “0” los demás valores. Haciendo el proceso en las demás filas y sumando los resultados acertados de la fila se tiene: 72 reconocimientos de los 72 posibles. Siendo un valor de 72 / 72 = 1 = 100% de reconocimiento efectivo de reconocimientos efectivos con el valor de ρ = 0.75. Para nuestras doce huellas de prueba. Tabla 5.10 Resultados obtenidos en ART1 con ρ = 0.80 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 0 0 0 0 0 0 0 0 0 0 0 Persona 2 0 0 1 1 0 0 0 0 0 0 0 0 Persona 3 0 0 0 0 1 1 0 0 0 0 0 0 Persona 4 1 0 0 0 0 0 1 1 0 0 0 0 Persona 5 0 0 0 0 0 0 0 0 1 0 0 0 Persona 6 0 0 0 0 0 0 0 0 0 0 1 1 54 De la misma manera se tiene en total 69 reconocimientos efectivos de los 72 posibles. Así: 69 / 72 = 0.9583 = 95.83% de reconocimiento efectivo con el valor de ρ = 0.80 Tabla 5.11 Resultados obtenidos en ART1 con ρ = 0.85 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 0 0 0 0 0 0 0 0 0 0 0 Persona 2 0 0 1 0 0 0 0 0 0 0 0 0 Persona 3 0 0 0 0 1 1 0 0 0 0 0 0 Persona 4 1 0 0 0 0 0 1 1 0 0 0 0 Persona 5 0 0 0 0 0 0 0 0 1 0 0 0 Persona 6 0 0 0 0 0 0 0 0 0 0 1 1 De la misma manera se tiene en total 68 reconocimientos efectivos de los 72 posibles. Así 68 / 72 = 0.9444 = 94.44% de reconocimiento efectivo con el valor de ρ = 0.85 Tabla 5.12 Resultados obtenidos en ART1 ρ = 0.90 De la misma manera se tiene un total 65 reconocimientos efectivos de los 72 posibles. Así 65 / 72 = 0.9028 =90.28% de reconocimiento efectivo con el valor de ρ = 0.90 . Tabla 5.13 Resultados obtenidos en ART1 ρ = 0.95 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 0 0 0 0 0 0 0 0 0 0 0 Persona 2 0 0 1 0 0 0 0 0 0 0 0 0 Persona 3 0 0 0 0 1 0 0 0 0 0 0 0 Persona 4 1 0 0 0 0 0 1 0 0 0 0 0 Persona 5 0 0 0 0 0 0 0 0 1 0 0 0 Persona 6 0 0 0 0 0 0 0 0 0 0 1 0 Huella (Persona) H1(P1) H2(P1) H3(P2) H4(P2) H5(P3) H6(P3) H7(P4) H8(P4) H9(P5) H10(P5) H11(P6) H12(P6) Persona 1 1 0 0 0 0 0 0 0 0 0 0 0 Persona 2 0 0 1 0 0 0 0 0 0 0 0 0 Persona 3 0 0 0 0 1 0 0 0 0 0 0 0 Persona 4 1 0 0 0 0 0 1 0 0 0 0 0 Persona 5 0 0 0 0 0 0 0 0 1 0 0 0 Persona 6 0 0 0 0 0 0 0 0 0 0 1 0 55 De la misma manera se tienen 33 reconocimientos efectivos de los 66 posibles. Así 65 / 72 = 0.9027 = 90.27 % de reconocimiento efectivo con el valor de ρ = 0.95 . Los resultados de las pruebas obtenidas con diferentes valores del parámetro de vigilancia “ρ” se muestran a continuación en la siguiente gráfica: Figura 5.22. Gráfica de valores de δ en la red ART1 vs el Porcentaje de reconocimiento efectivo RHO (ρ) VS PORCENTAJE DE RECONOCIMIENTO 0.7 0.75 0.8 0.85 0.9 0.95 90.27 100 95.83 94.44 90.28 90.27 0 20 40 60 80 100 120 RHO (ρ) PO RC EN TA JE E FE CT IV O D E RE C O NO CI M IE NT O 56 4.7 CONCLUSIÓN DE LA PRUEBA CON ART1 Como se observa en la figura 5.22, los porcentajes de reconocimiento oscilan entre el 83% y el 100%, siendo éstos los porcentajes requeridos para este proyecto (95% de reconocimiento efectivo). Se observa que el valor de δ con 0.75 brinda el 100% de reconocimiento efectivo para el caso de 12 huellas de prueba distribuidas en seis individuos. En la grafica se aprecia que en los factores de reconocimiento δ para valores mayores de 0.70; la red presenta una mayor rigidez en el patrón de clasificación de los patrones aprendidos (las 25 sub.-imágenes de la huella entrenada); siendo muy rígida para identificar los patrones de la misma persona de la huella previamente entrenados y aprendidos; lo que provoca un decrecimiento en el porcentaje de reconocimiento efectivo a partir del valor de δ = 0.75. Con las pruebas se afirma que la red ART1 con el valor de δ = 0.75 es la adecuada para la implementación del prototipo de reconocimiento. 4.8 CONCLUSIONES GENERALES DE LAS PRUEBAS EN BACKPORPGATION Y ART1 En base a las pruebas realizadas podemos realizar las siguientes observaciones: Las pruebas en la red Retropropagación con diferentes valores de α oscilaron entre el 38% y 78% de reconocimiento efectivo, por esta razón la red Retropropagación no resulta ser la adecuada para los objetivos y la implementación del prototipo. Las pruebas con diferentes valores de ρ (0.75 – 0.90) realizadas en red ART1, los porcentajes de reconocimiento son bastante altos oscilando entre el 90% y el 100% con 12 huellas de prueba.(ρ=0.75). 57 La red ART1 para un factor de vigilancia de 0.75, es la más adecuada para la implementación del prototipo por alcanzar el máximo porcentaje de reconocimiento efectivo para la prueba de 12 huellas. Se concluye que el Software final se realiza con la red neuronal ART1 por las siguientes razones: En las 12 huellas de prueba esta supera el 95% de efectividad de reconocimiento propuesto en los objetivos del anteproyecto. La red converge a un estado estable La red ART1 permite el reconocimiento adecuando con el máximo porcentaje de reconocimiento efectivo con el valor del factor de vigilancia de 0.75, pues al aumentar éste la rigidez de clasificación de patrones aprendidos aumenta y el porcentaje de reconocimiento tiende a bajar en las 12 huellas de pruebas. La red ART1 permite manejar flexibilidad en la clasificación de patrones mediante el parámetro rho. 58 CAPITULO V: PROTOTIPO DE SOFTWARE PARA RECONOCIMIENTO DE HUELLAS DACTILARES 5.1 CREACIÓN DE BIBLIOTECAS DE VÍNCULOS DINÁMICOS (DLL, POR SUS SIGLAS EN INGLÉS) Las DLL´s son funciones creadas en Windows para ser utilizadas por cualquier aplicación que sea ejecutada en dicho Sistema Operativo, con el fin de minimizar el tiempo de edición al escribir el código y compilarlo solo una vez para todas las veces que se desee reutilizar, reduciendo así el tiempo de implementación y de depuración de las aplicaciones. Las funciones de la DLL “HuellasTesis2006” implementadas en este trabajo se muestran en la tabla siguiente: Tabla 5.1 descripción de DLL´s NOMBRE DESCRIPCIÓN MejorarHuella Mejora la imagen de la huella dactilar (ver sección 3.2) y después entrena la red neuronal ART1 con ella. ReconocerHuella Devuelve el número de patrones reconocidos por la red neuronal dentro de una imagen de huella dactilar previamente mejorada. La sintaxis para la utilización de ambas funciones se muestra a continuación: MejorarHuella (nargout, VW, Ncat, strPathImgOriginalBMP) 59 Donde: Nargout (dato de entrada de tipo numérico): en este caso será siempre igual a 2. VW (dato de salida de tipo matriz numérica de 324x50): Valores de los pesos de las neuronas de la red ART1 Ncat (dato de salida de tipo numérico): Valor del número de categorías creadas por la red ART1. strPathImgOriginalBMP (dato de entrada de tipo cadena de caracteres): indica a la función la ruta o dirección de acceso a la imagen de mapa de bits (formato .BMP, en escala de grises) que será procesada. ReconocerHuella (nargout, NumSubImgs, strPathImgMejoradaBMP, VW, Ncat) Donde: Nargout (dato de entrada de tipo numérico): en este caso será siempre igual a 1. NumSubImgs (dato de salida de tipo numérico): Valor del número de patrones reconocidos por la red neuronal dentro de la imagen indicada por strPathImgMejoradaBMP. strPathImgMejoradaBMP: (dato de entrada de tipo cadena de caracteres): indica a la función la ruta o dirección de acceso a la imagen de mapa de bits (formato .BMP, binaria) que se desea reconocer. VW (dato de entrada de tipo matriz numérica): Valores de los pesos de las neuronas aprendidos por la red ART1 para un usuario Ncat (dato de entrada de tipo numérico): Valor del número de categorías aprendidos para un usuario por la red ART1. 60 Para utilizar éstas funciones es muy sencillo, basta con seguir los pasos siguientes: 1. Tomar la huella de un usuario con la tarjeta IDGem 4000. 2. Utilizar la función MejorarHuella para procesar la imagen y entrenar la red ART1, obteniendo así los pesos de la red para este usuario y el número de categorías creadas para este. 3. Repetir los pasos anteriores para los usuarios que se deseen reconocer posteriormente. Almacenar los valores de los pesos, el número de categorías y los datos personales en una base de datos. 4. Para probar por medio de la huella si un usuario se encuentra dentro de la base de datos, tome la huella de este con la tarjeta IDGem 4000 y ejecute la función MejorarHuella, para obtener la imagen binarizada y corregida. 5. Ejecute la función ReconocerHuella ingresando la imagen corregida del paso anterior y cada uno de los pesos y números de categorías de cada usuario de la base de datos (ingresados en los pasos 1, 2 y 3). Para cada usuario la función devolverá un valor numérico indicando el número de parámetros reconocidos por la red ART1 para cada usuario de la base de datos en la imagen corregida. 6. El usuario que se obtenga el mayor número de parámetros reconocidos, será el que posea la huella cuestionada. En caso de no existir un mayor, se determina que la red no fue capaz de brindar un resultado para la huella en cuestión y si no se encuentra ningún patrón para todos los usuarios, indicará que no se encuentra en la base de datos. 5.2 DESCRIPCIÓN DEL SOFTWARE PROPUESTO Para la demostración de las capacidades de reconocimiento de huellas dactilares, se implementaron dos aplicaciones: una de Administrador y una de Usuario. La idea fundamental es demostrar como se pueden crear aplicaciones con acceso a ciertos usuarios y restricciones para otros. 61 En la aplicación de Administrador, se tiene acceso a la base de datos del sistema y se permite acciones de edición sobre ésta como: Agregar y Eliminar usuarios de la base de datos, así como también, la captura, entrenamiento de la red neuronal ART1 y reconocimientos de prueba para verificación de un reconocimiento efectivo de un usuario a lo largo de toda la base de datos. En la aplicación de Usuario, sólo se solicita al usuario que introduzca su huella dactilar para verificar que se encuentra en la base de datos, y por tanto, determinar si tiene permitido el acceso a un software específico dentro del sistema. 5.2.1 APLICACIÓN DE ADMINISTRADOR La interfaz de usuario se muestra en la figura siguiente: Fig. 5.1 Interfaz de usuario de la aplicación de Administrador Como puede apreciarse en la figura anterior, el software se divide en 3 partes principales: “Explorador de Usuarios”, “Herramientas” y “Huella de Usuario”. 62 En el “Explorador de Usuarios” se permiten las siguientes acciones: Fig. 5.2 Explorador de Usuarios en la Aplicación de Administrador “Nombre”: Nombre de Usuario “|<<”: Muestra los datos del primer usuario de la base de datos “<<”: Muestra los datos del usuario previo de la base de datos “>>”: Muestra los datos del siguiente usuario de la base de datos “>>|”: Muestra los datos del último usuario de la base de datos En “Herramientas” se permiten las siguientes acciones: Fig. 5.3 Herramientas de la Aplicación Administrador 63 Tabla 5.2 Explicaciones de botones “Agregar Usuario”: Crea un nuevo usuario en la base de datos “Eliminar Usuario”: Elimina un usuario de la base de datos “Reconocer”: Verifica si un usuario se encuentra en la base de datos por medio de su huella dactilar. Básicamente ejecuta la aplicación de usuario para que el administrador determine si la huella ha sido correctamente ingresada al sistema o si se necesita capturarla nuevamente. “Acerca de…” Brinda información general sobre el software, como se muestra en la Fig. 5.4 Fig. 5.4 Ventana “Acerca de…” En “Huella de Usuario” se tienen las siguientes acciones: 64 Fig. 5.5 Huella de Usuario en la Aplicación Administrador Tabla 5.3 “Como ingresar usuarios al sistema” “Ingresar Huella al Sistema”: Captura la huella dactilar del usuario al sistema por medio de la tarjeta IDGem 4000, entrena la red neuronal ART1 para luego almacenar sus pesos y el número de categorías en la base de datos. Imágenes de la huella Muestra a la izquierda la imagen capturada por la tarjeta y a la derecha la imagen mejorada por software para su reconocimiento 65 5.2.2 APLICACIÓN DE USUARIO La interfaz de usuario se muestra en la figura siguiente: Fig. 5.6 Interfaz de usuario de la aplicación de Usuario La aplicación del usuario se maneja en base a Como puede observarse la interfaz de usuario son dos ventanas, donde la ventana “Create BMP”, es la interfaz de la tarjeta IDGem 4000 brindada por el soporte a desarrolladores por parte de la compañía Topaz, la cual captura la huella del usuario, la cual, una vez capturada la ventana se cierra automáticamente; La segunda ventana “Reconocimiento de Huella Dactilar”, muestra entonces la huella capturada a la izquierda y la imagen mejorada de ésta a la derecha. Luego con una Barra de Progreso en la parte inferior, se muestra el porcentaje de los usuarios procesados en la base de datos en el reconocimiento (ver fig. 5.7). Luego del reconocimiento el software indicará si el usuario fue encontrado o no en la base de datos (ver fig. 5.7), y por tanto si tiene acceso o no a la aplicación principal, que en este caso para demostración será la aplicación de Administrador. De ser reconocido como usuario autorizado a utilizar el sistema, se desplegará un mensaje de 66 bienvenida a la aplicación de Administrador, en caso contrario se mostrará un mensaje de acceso negado a la aplicación Administrador (ver fig. 5.8). Fig. 5.7 Aplicación de Usuario. Usuario Reconocido (arriba) Usuario no Reconocido (abajo) 67 Fig. 5.8 Mensaje de bienvenida a la Aplicación Administrador (arriba) Mensaje de Acceso Negado a la Aplicación Administrador (abajo) En caso de detectarse que la tarjeta IDGem 4000 no está conectada a la computadora o que el dedo no fue colocado firmemente sobre el sensor, el programa mostrará un mensaje de error. En el anexo 6 se observa el código fuente implementado en Visual Basic ®. 5.3 FLUJOGRAMAS DE LOS PRINCIPALES PROCESOS DEL SOFTWARE 5.3.1 AGREGAR Y ELMINAR USUARIO (ver Figura 5.3) Figura 5.9 flujograma “agregar usuario” INICIO -Agregar nuevo registro a la base de datos (Campos incluidos: Nombre, Número de Categorías, Imagen Original e Imagen mejorada) FIN - Agregar Nueva Tabla a la base de datos para almacenar los valores de los pesos de la red ART1 (50 campos y 324 Registros) 68 Eliminar Usuario (ver fig. 5.3) Figura 5.10 Fuljograma “eliminar usuario” INICIO - Eliminar el registro asociado al usuario de la base de datos FIN - Eliminar la Tabla de valores de los pesos de la red ART1 de la base de datos ¿Confirma Eliminar? Sí No 69 5.3.2 INGRESAR HUELLA AL SISTEMA (ver fig. 5.5) Figura 5.11 Flujograma “Ingresar huella al sistema” 5.3.3 RECONOCER (ver Fig. 5.3) INICIO Por medio de la tarjeta IDGem 4000 capturar la huella del usuario FIN - Número de Categorías - Pesos de la red V y W en una matriz de 324 x 50 - Imagen de la huella mejorada Función de DLL: MejorarHuella Almacenar en base de datos todos los datos del usuario - Imagen de la Huella 70 Figura 5.12 Flujograma “Reconocer” INICIO Función de DLL: ReconocerHuella Por medio de la tarjeta IDGem 4000 capturar la huella del usuario a Reconocer - Imagen de la huella mejorada (Nota: se descartan el Número de Categorías y los Pesos de la red V y W) Función de DLL: MejorarHuella - Imagen de la Huella a Reconocer Se selecciona el primer usuario de la base de datos - Número de Categorías - Pesos de la red V y W en una matriz de 324 x 50 - Num. de Patrones reconocidos por la red ART1 Se almacena el resultado de este usuario de la base de datos en un vector X ¿Es el último usuario de la base de datos? Sí No Cargar datos del siguiente usuario de la base de datos FIN Sí ¿Son todos los valores del vector X igual a cero? No ¿Existe un único valor máximo dentro del vector X? No Sí Desplegar mensaje: "Favor intentarlo de nuevo, asegurándose que el core se muestra en la imagen de la huella dactilar tomada" Desplegar mensaje: “Hola:” más el nombre del usuario reconocido Desplegar mensaje: “No se encuentra en la base de datos” 71 5.4 MANUALES 5.4.1 INICIANDO EL SOFTWARE 1. Conectar la tarjeta IDGem 4000 a la PC. 2. Ejecutar el archivo: “Huellas Tesis2006”, que se muestra a continuación. 3. Al mostrarse las ventanas de la Fig. 5.6, colocar el dedo firmemente sobre el sensor de la tarjeta de captura. 4. Si es un usuario autorizado para utilizar el software, es decir se encuentra en la base de datos, éste se iniciará correctamente y presentará la ventana de la fig. 5.1, en caso contrario se cerrará la aplicación. 5.4.2 AGREGAR UN USUARIO A LA BASE DE DATOS 1. Estando en la interfaz de la fig. 5.1, hacer clic en el botón “Agregar Usuario” de “Herramientas” (fig. 5.3). 2. Ingresar Nombre y Huella dactilar del nuevo usuario. 5.4.3 ELIMINAR USUARIO DE LA BASE DE DATOS 1. Estando en la interfaz de la fig. 5.1, desplazarse al usuario que se desea eliminar con los botones de navegación “|<<”, “<<”, “>>” y “>> |” del explorador de usuarios, ver fig. 5.2 2. Hacer clic en el botón “Eliminar Usuario” de “Herramientas” (fig. 5.3). 72 3. Al aparecer el mensaje de confirmación, hacer clic en “Sí”. 4. Se confirma la eliminación del usuario. 5.4.4 INGRESAR HUELLA DE USUARIO AL SISTEMA 1. Asegurarse que la tarjeta IDGem 4000 se encuentra conectada a la PC. 2. Estando en la interfaz de la fig. 5.1, Hacer clic en el botón “Ingresar Huella al Sistema” de “Huella de Usuario” (fig. 5.5) 3. Colocar el dedo firmemente sobre el sensor de la tarjeta de captura. 4. Si no se devuelve algún mensaje de error, la huella queda debidamente registrada para el usuario seleccionado, en la base de datos. 5.4.5 RECONOCER A UN USUARIO DEL SISTEMA POR MEDIO DE SU HUELLA DACTILAR 1. Asegurarse que la tarjeta IDGem 4000 se encuentra conectada a la PC. 2. Estando en la interfaz de la fig. 5.1, hacer clic en el botón “Reconocer” de “Herramientas” (fig. 5.3). 3. Colocar el dedo firmemente sobre el sensor de la tarjeta de captura. 4. El software muestra el avance de la búsqueda por medio de una barra de progreso, y finalmente muestra un mensaje donde se indica si el usuario fue encontrado o no. 73 5.5 TABLA DE DESEMPEÑO DEL PROTOTIPO DE RECONOCIMIENTO DE HUELLA DACTILAR 5.5.1 TIEMPO DE RECONOCIMIENTO Para esta prueba se almacenaron dentro del banco de información huellas de niños, mujeres, ancianos para probar el reconocimiento con ellos. Habían personas que su dedo se encontraba un poco sucio, con heridas, sudado. El tiempo se tomo a partir de que la huella se captura. Tabla 5.4 Tiempos aproximados de reconocimiento En la figura 5.13 se puede apreciar que el prototipo muestra un comportamiento cuasi lineal en el tiempo de respuesta en la medida que la base de datos de los usuarios aumenta. Numero de personas almacenadas Tiempo de respuesta (aproximado) 5 5.14 seg. 10 10.23 seg. 12 11.84 seg. 15 15.34 seg. 17 17.14 seg. 20 21.10 seg. 25 26.36 seg. 74 Figura 5.13 Gráfica del tiempo efectivo de reconocimiento vs el número de personas TIEMPO EFECTIVO DE RECONOCIMIENTO 0 5 10 15 20 25 30 5.14 10.23 11.84 15.34 17.14 21.10 26.36 TIEMPO (s) N ÚM ER O D E P ER SO N AS 75 5.5.2 PORCENTAJE DE RECONOCIMIENTO En la tabla 5.5 se puede apreciar el número de reconocimientos acertados que obtuvo el sistema al tener una base de datos de 25 personas, y con estos datos poder obtener el porcentaje de reconocimiento del prototipo. Tabla 5.5 Tabla de reconocimiento efectivo en 25 usuarios Persona # de Veces que coloco el dedo # de veces que reconoció la huella P1 5 5 P2 5 5 P3 5 5 P4 5 5 P5 5 5 P6 5 5 P7 5 5 P8 5 4 P9 5 4 P10 5 5 P11 5 5 P12 5 5 P13 5 5 P14 5 5 P15 5 5 P16 5 4 P17 5 4 P18 5 5 P19 5 5 P20 5 5 P21 5 5 P22 5 4 P23 5 5 P24 5 4 P25 5 5 76 El número de reconocimientos acertados es de 119 sobre los 125 posibles; por lo que el prototipo brinda un porcentaje de: P = 119 / 125 = 0.952 = 95.20 % de reconocimiento efectivo Este valor nos demuestra que el prototipo cumple con el 95% de reconocimiento efectivo propuesto en el anteproyecto del prototipo. 77 5.6 FACTIBIILIDAD ECONOMICA El prototipo cuenta con un sensor marca IDGEM ® modelo 4000, el precio en Internet de este sensor anda en un promedio de $140.00; este sensor cuenta con un disco de instalación que incluye su propio software de reconocimiento de huella; los gastos de envió se pueden redondear en $20.00; el sensor es elegido por su factibilidad económica según se explica en la sección 3.3 características técnicas de algunos sensores de huella dactilar. [32] [33] El software del prototipo se instala en computadoras que tengan como mínimo los siguientes recursos: Procesador: Pentium III 500 Mhz Memoria RAM: 256 Mb Disco duro: 10 Gb El sistema operativo idóneo es Windows Xp ®; y esto acompañado con los archivos de instalación del sensor son suficientes para poder ejecutar el prototipo. 78 CONCLUSIONES El prototipo es una aplicación que es capaz de reconocer huellas dactilares y con una base de datos de aproximadamente 25 personas, y brinda una respuesta de reconocimiento de un 95% de exactitud. Al momento de utilizar las RNAs (redes neuronales artificiales) se debe de tener claro que un buen resultado viene acompañado del manejo adecuado de la información contenida en las variables de entrada a procesar; es decir hacer uso de ciertas combinaciones o arreglos matemáticos para que la RNA logre dar resultados certeros y lograr un buen desempeño en el momento de su implementación; estas entradas se implementan en la binarización adecuada de las imágenes de las huellas. La solución de problemas mediante RNA se hace posible mediante la buena calidad en los datos de entrada (patrones con lo que se entrenará la red), por esta razón se hace adecuada la subdivisión y recorrido de la imagen con ventanas de 18 x 18 píxeles, que hace posible el entrenamiento adecuado a la red neuronal ART1. La técnica de las minucias se vuelve inapropiada por las rotaciones que surgen en las imágenes digitalizadas con el sensor IDGEM 4000 ®, razones por las que se vuelve ineficiente el cálculo de la máxima distancia entre puntos con su respectivo ángulo y el calculo del momento inercial de la nube de puntos generadas por las minucias. En la RNA ART1 es importante el proceso adecuado de enseñanza en forma de pesos, los cuales desempeñan el comportamiento deseado mediante el almacenamiento de éstos y con ello la red desempeña el reconocimiento deseado. 79 Las RNAs son utilizadas para la solución de problemas con cierta complejidad no lineal que resultan difíciles en técnicas convencionales, es decir que éstas no poseen un algoritmo específico en su grado de complejidad; como lo es el reconocimiento de patrones o la clasificación de datos, entre otros. Un aspecto importante son los adecuados recursos de la computadora a utilizar porque el entrenamiento de la red este se ejecuta en la memoria RAM, y prácticamente es poco el acceso a disco duro Gracias a la creación de la DLL en Matlab ® y al Visual Interdev ® se realiza un archivo auto-ejecutable, que junto con los archivos de instalación del sensor IDGEM 4000 ® éste puede ser instalado y ejecutado en cualquier máquina que no tenga instalado los programas Visual Basic ® y Matlab ® (debido a los altos costos de licencia). 80 DELIMITACIONES El sistema no funciona en tiempo real; muestra ser eficiente con una base de datos de 25 personas, y alcanzar el reconocimiento en promedio de 27 segundos a partir de la imagen binarizada (tabla 5.4); pero el sistema debe almacenar 25 sub-imágenes de cada nueva huella ingresada en el sistema; esto vuelve un poco lento al tener una base de datos con un mayor número de personas. El sensor utilizado en el prototipo sufre un aumento de temperatura al ser usado continuamente; cuando esto ocurre digitaliza imágenes con mayores niveles de ruido que suelen afectar al proceso de reconocimiento. El área del sensor se delimita para evitar grandes movimientos de traslación y rotación; (La red ART1 aprende clasificaciones de -6º a +6º en intervalos de 3º) con el área delimitada el porcentaje de reconocimiento efectivo se ve favorecido y tiende a aumentar. 81 RECOMENDACIONES: El sistema puede ser implementado para funcionar en tiempo real, con un método alternativo a las redes neuronales, el cual podría ser el manejo adecuado de variables hexadecimales en conjunto con correlaciones de imágenes con estas variables. El prototipo puede tener un mejor funcionamiento con el uso de un sensor adecuado, el cual permita obtener características eficientes con procesos matemáticos, como la transformada discreta de Fourier, y otros algoritmos que son más eficientes en el reconocimiento de huellas. El prototipo puede Realizarse mediante una clasificación con minucias, pero acompañada de otros algoritmos de procesamiento más adecuados para mejorar el tiempo de reconcomiendo. 82 REFERENCIAS: [1] http://www.pue.udlap.mx/~tesis/lis/navarrete_g_j/capitulo2.pdf 26 Enero 2005 [2] http://www.revistamarina.cl/revistas/1998/5/widow.pdf 26 Enero 2005 [3] http://ciberhabitat.gob.mx/hospital/huellas/clasificacion.htm 24 Marzo 2005 [4] http://www.virusprot.com/Art29.html 10 junio 2005 [5] http://www.globalcard2000.com/es/biometria/ 19 Febrero 2005 [6] http://www.monografias.com/trabajos16/inteligencia-artificial-historia/inteligencia-artific