Skip to content

gmgalvan/fingerprintRecognition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CNN para reconocimiento de huellas dactilares

Este proyecto fue desarrollado durante la 2da edición de Saturdays.AI Guadalajara

Proyecto para el reconocimiento de huellas de cuerpos postmortem y validación de huella dentro de base de datos mysql.

Instalación

Usar entorno virtual con python 3.7, Linux Ubuntu.

  • numpy
  • matplotlib
  • keras
  • sklearn
  • imgaug
  • pymysql
  • paramiko
  • sshtunnel
  • PIL

Como usar

  1. Agregar variables de entorno para conexion con instancia de base de datos mysql:
export SQL_HOSTNAME=<>
export SQL_USERNAME=<>
export SQL_PASSWORD=<>
export DB=<>
export DB_PORT=<>
export SSH_HOST=<>
export SSH_USER=<>
export SSH_PORT=<>
  1. Se establece el path cambiando la linea 14 de train_fingerprint.py

  2. En fingerprint_db se cambia linea 31 y 38 con la tabla correspondiente.

  3. Cambiar el nombre de las columnas en las querys

  4. Conexión:

python fingerprint_db.py 
  1. Entrenamiento:
python train_fingerprint.py

Descripción

El modelo es una red neuronal convulocional que se entrno con 1k imagenes reales y 3k generados de forma aumentada. La base de datos no es de uso público y es necesario que el dataset que se utilice tenga el formato wsq.

data data

La arquitectura de la red

Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_4 (InputLayer)            (None, 90, 90, 1)    0                                            
__________________________________
input_5 (InputLayer)            (None, 90, 90, 1)    0                                            
__________________________________
model_3 (Model)                 (None, 22, 22, 32)   9568        input_4[0][0]                    
                                                                 input_5[0][0]                    
__________________________________
subtract_2 (Subtract)           (None, 22, 22, 32)   0           model_3[1][0]                    
                                                                 model_3[2][0]                    
__________________________________
conv2d_6 (Conv2D)               (None, 22, 22, 32)   9248        subtract_2[0][0]                 
__________________________________
max_pooling2d_6 (MaxPooling2D)  (None, 11, 11, 32)   0           conv2d_6[0][0]                   
__________________________________
flatten_2 (Flatten)             (None, 3872)         0           max_pooling2d_6[0][0]            
__________________________________
dense_3 (Dense)                 (None, 64)           247872      flatten_2[0][0]                  
__________________________________
dense_4 (Dense)                 (None, 1)            65          dense_3[0][0]                    
==================================================================================================
Total params: 266,753
Trainable params: 266,753
Non-trainable params: 0
__________________________________

Resultados

La salida del modelo es la imagen original con su etiqueta en el lado izquierdo, en el centro la imagen con mayor porcentage de parentesco y en la derecha una imagen con menor parentesco.

data data data

Publicación

Hemos escrito un artículo en Medium sobre nuestra experiencia en el curso y detalles de la realización del proyecto en Medium: Parte 1 Parte 2

Créditos

El código que fue generado durante el proyecto está basado en fingerprint_recognition

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages