Nuestro registros de huellas |
Para este primer avance realice algunas tareas en cuanto a la realización del proyecto, que es la implementación de una red neuronal para la identificación de personas en un proceso de elecciones.
-Investigación sobre las huellas digitales y sus características
principales
Previamente al desarrollo lleve acabo una
investigación sobre cómo funcionan los sistemas para la lectura de huellas
digitales. Primero cada persona posee una huella dactilar única y diferente en
el mundo por lo que la convierte en un sistema de reconocimiento personal.
Cada huella tiene características especiales lo que
la convierten en únicas, por ejemplos las crestas y valles. Se designa con ese
nombre a las particularidades papilares que, en detalle, ofrecen las crestas en
su curso por el dactilograma natural y su impresión. Es decir, son las
convergencias, desviaciones, empalmes, interrupciones, fragmentos, etcétera, de
las crestas y de sus surcos (islote, bifurcación, punto, cortada, horquilla,
empalme, encierro).
También se pueden clasificar dependiendo la forma de
sus curvaturas, estas clasificaciones son 5 que representas a las más comunes
de las clases de huellas digitales.
Tipos de huellas |
Cada huella puede ser medida y representada de
muchas maneras, por ejemplo, la cantidad de valles y crestas, la dirección de
las líneas de cada dedo, la frecuencia en algunos puntos, la representación
binaria de la huella, etc.
Y en base a cualquiera identificación se compara en
una base de datos que ya se tenga y se regresa la identificación de la persona.
En la actualidad se utilizan muchos sistemas para la
identificación de las personas como por ejemplo, para acceder a los trabajos, a
hospitales o a lugares especiales asignados solo para algunas personas. Gracias
al sistema de identificación única por huella digital se ha vuelto más popular.
-Investigación sobre el mejoramiento en la calidad de huellas digitales
Actualmente
se usan dispositivos que reconocen huellas digitales como son los
sensores
ópticos, capacitivos o de alta frecuencia. La imagen de la huella digital casi
siempre presenta degradaciones, a causa de las variaciones en la piel y a
condiciones de impresión, es necesario aplicar técnicas de mejora de imagen,
para así obtener la extracción del binario.
Huellas dañadas |
Existen
varios métodos para el mejoramiento pueden ser por modelos matemáticos que
determinan los puntos de saturación de color o luz y a partir de eso aclaran
las imágenes.
Otra forma
puede ser la modificación de las imágenes en base a su contaste o en base a la
eliminación de las partes innecesarias para la correcta identificación.
Huella Mejorada |
-Diagrama del sistema
En cuanto a nuestro sistema, se determina que esta
era la forma en la que funcionaria.
Haciendo primero un registro de todas las huellas
para después obtener el binario y almacenarlo.
Diagrama de nuestro sistema |
En el proceso de la identificación, primero de nuevo
se lee una huella y después se va a la base de dato a comprobar si existe un registro igual esto
gracias a la red neuronal.
-Recolección de BD de imágenes para entrenar neurona
DB de huellas |
-Implementación de entrada del sistema (imagen a binario)
-En este caso aplica
la lectura de una huella digital que por ahora se lee de una foto, pero
posteriormente se hará de manera directa desde un lector de huellas digitales
(hardware).
-Después de que el programa lee una huella digital se pasa una representación de la foto a un archivo en código binario que sería la entrada a la red neuronal para que vaya aprendiendo sobre cómo identificar una persona, gracias a las
características de cada huella digital. Esto se logra mediante las
especificaciones de cada huella como lo son sus crestas y valles y su tipos y
clasificaciones.
-El programa
elaborado escribe en un archivo de texto la representación binaria leyendo una
imagen pixel por pixel tomando que 1 es los pixeles blancos y el resto (negros
o grises) se marcan con el signo de 0.
Para la
implementación de este código de importo la librería Image y fueron usados
algunas de las funciones que esta presenta, por ejemplo para leer pixel por pixel.
http://pastebin.com/UAdhsDF3
Imagen a Binario Ver en grande para mejor visualización |
Red Neuronal:
En este caso para
nuestra red neuronal se realizó un avance que consiste en generar un arreglo de
entradas aleatorias a las que se les asigna un peso también de carácter
aleatorio para posteriormente obtener el la sumatoria de sus productos y
comparar esta última con otros parámetros y así que aprenda a como clasificar
entre dos salidas posibles 0 o 1.
Posteriormente recibirá
el código binario que se obtuvo de la imagen para poder procesar. Nos servirá
para conectar con nuestras interfaces de entrada y salida y así lograr el
reconocimiento de personas por medio de su huella digital. Para mas detales de esos consultar los blogs del resto del equipo. A continuación muestro las modificaciones que le hice a una parte de la red.
-Código: RedNeurona
-Implementación de salida del sistema (coincidencia de personas)
Se realizó un ejemplo del sistema para el encontrar
una persona dentro de los archivos que ya se tienen. Primeramente se ingresa
una huella digital que sería solicitando el acceso de una persona para el
sistema de votaciones, después se procesa esa lectura de imagen para que se
represente de forma binaria. Luego al entrar a la red neuronal deberá de ser capaz
de clasificar los tipos de huellas que existen y su rápida identificación.
Para fines prácticos, se comprara un archivo con 2
registros que se tienen para ver si la lectura del solicitante es igual a la de
los registros, en caso de ser igual el acceso al sistema seria concedido, por
lo contrario se negara el acceso al sistema de votaciones.
-Código: Salida
Por ultimo dos ventanas de ejecución de como es la entrada y la salida del sistema:
Acceso al sistema |
Huella creada y grabada con éxito |
Denegación del sistema |
-Bibliografia:
A Tutorial on Fingerprint Recognition: http://bias.csr.unibo.it/research/biolab
Universidad del perú, mejora de imagenes de huellas digitales: http://creativecommons.org/licenses/by-nc-sa/2.5/pe/
Lo de control de versiones lo acabas de poner; van 8 pts por el código. El reporte da 10, aunque podrías ser más claro en qué en sí hiciste tú, qué hizo tu equipo y qué ya estaba hecho en librerías/herramientas.
ResponderEliminar