martes, 9 de octubre de 2012

Reporte - Project Vote




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
Se realizó una búsqueda de huellas digitales en formato de fotos para poder ir tomando ejemplos y comprobando si funcionan nuestras conversiones a binario. En internet se encontraron varios bancos de imágenes de huellas de las cuales solo se tomaron algunos ejemplos para poder hacer la representación y  unos ejemplo.

-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
-Código:  Entrada1, Entrada2
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/

1 comentario:

  1. 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