Download Sistema de Reconocimiento Digital de Huellas Con Matlab...
Sistema de Reconocimiento Digital de Huellas con Matlab
Ernesto Estupiñán Elkin Alonso Salgado Juan Camilo Amaya Iddinael Perilla Almanza Sneiderth Sanchez Torrez
Universidad El Bosque Facultad de Ingeniería Electrónica biomedicina II Bogotá D.C. 9 de mayo de 2013
Tabla de Contenido 1.
Objetivos ..................................................................................................................................... 3
2.
DIAGRAMA DE BLOQUES............................................................................................................. 4
3.
Adquisición de imágenes............................................................................................................. 5
4.
ELECCIÓN DEL FORMATO DE IMÁGENES .................................................................................... 6 4.1. Imagen digital ............................................................................................................................. 6 4.1.1. Imágenes Vectoriales ........................................................................................................ 6 4.1.2. Imágenes de Mapa de Bits. ............................................................................................... 6
5.
Formatos de imágenes digitales.................................................................................................. 7 5.1. Formato de imagen BMP.......................................................................................................... 7 5.2. Formato de archivo GIF ............................................................................................................ 7 5.3. Formato de archivo TIFF........................................................................................................... 7
6.
Elección del Formato. .................................................................................................................. 7
7.
ANÁLISIS Y REPRESENTACIÓN DE HUELLAS DIGITALES ............................................................... 8 7.1. Introducción ............................................................................................................................. 8 7.2. Características Fundamentales ................................................................................................ 8 7.3. Regiones Singulares.................................................................................................................. 8 7.4. Minucias. ................................................................................................................................. 9 7.5. REALCE DE LA IMAGEN ........................................................................................................... 10 7.5.1. Análisis Transformada de Fourier de Tiempo Corto STFT ............................................... 10 7.6. Binarización ............................................................................................................................ 13 7.7. Adelgazamiento...................................................................................................................... 14 7.8. Identificación de Minucias ..................................................................................................... 15 7.9 Eliminar Falsas minucias .......................................................................................................... 16 7.10. Región de Interes ................................................................................................................. 17 7.11.Orientación............................................................................................................................ 18 7.12. Algoritmo de empate. .......................................................................................................... 18 7.13. Manejo de base de datos .................................................................................................... 19
8.
BIBLIOGRAFÍA ............................................................................................................................ 21
Página 2 de 21
1. OBJETIVOS a) General Implementar el reconocimiento digital de huellas digitales integrando computación, visualización, y programación en un lenguaje de alto funcionamiento
b) Específicos
Adquirir las huellas dactilares utilizando un lector de huellas digitales Analizar las principales características de las huellas digitales crestas y valles Transformar la imagen de la huella en escala de grises a un formato binario, donde nos va a permitir diferenciar claramente y logremos procesar las crestas y los valle Obtener una imagen en la que todas las crestas tengan solamente 1 pixel de ancho para facilitar el proceso de extracción de puntos característicos de crestas y valles para realizar la búsqueda de las minucias, bifurcaciones y terminaciones. Almacenar los datos del usuario, la imagen de la huella y los resultados del procesamiento en una base de datos Visualización de los resultados obtenidos
Página 3 de 21
2. DIAGRAMA DE BLOQUES
Adquisición de imagen
Adquisición de Imágenes
Análisis STFT
Detección de Bordes
Binarizacion
Operaciones Morfológicas
Operaciones morfológicas
Identificación de Minucias
Depuración
Calculo de coordenadas
Bifurcación
Almacenamiento Base de datos
Comparación y Empate
Porcentaje de Semejanza
Realiza votación
Página 4 de 21
3. ADQUISICIÓN DE IMÁGENES La adquisión huella dactilar de índice derecho se realiza a través de un lector de huella digital Nitgen Fingkey Hamster HFDU04 y se utilizara el entorno de Matlab
Página 5 de 21
4. ELECCIÓN DEL FORMATO DE IMÁGENES La necesitad de nuestro proyecto es la calidad de la imagen y tamaño de la misma a continuación mostraremos los formatos de imágenes:
4.1. IMAGEN DIGITAL Es una representación binaria de una escena real (un gráfico o dibujo) la misma que puede ser representada o modificada en un computador u otros dispositivos electrónicos Las imágenes digitales en dos dimensiones se dividen en dos tipos: Imágenes vectoriales y de mapa de bits. 4.1.1. Imágenes Vectoriales Las imágenes vectoriales están compuestas por líneas y curvas definidas de forma matemática y denominadas vectores. Esto significa que puede mover, redimensionar o cambiar el color de una línea sin que el gráfico pierda calidad. Los gráficos vectoriales no dependen de la resolución, es decir, se pueden escalar a cualquier tamaño e imprimir en cualquier resolución sin pérdida de detalle ni claridad. Las imágenes vectoriales tienen el inconveniente de tener dificultades en tratar algunas cosas de forma natural (sombras, luces, etc.) y cuando son muy grandes o muy complejas pueden volverse extremadamente difíciles de manejar para la capacidad de un computador. 4.1.2. Imágenes de Mapa de Bits. Están compuestas por una cuadrícula de puntos denominados píxeles, Al trabajar con imágenes de mapa de bits, se editan los píxeles, en lugar de los objetos o las formas. Las imágenes se pueden representar mediante retículas de celdas a las que vamos asignando valores. Cada una de las celdas de dicha retícula se llama "píxel", Una forma muy importante de clasificar las imágenes de mapa de bits es según la cantidad y tipo de información que se asigne a cada píxel.
Imágenes de 1 bit por píxel En este tipo de imágenes cada celdilla (píxel) sólo puede tener uno de dos valores: Uno o cero.
Imágenes de escala de grises (8 bits por píxel) En este tipo de imágenes, cada píxel puede tener 256 valores diferentes (las 256 posibilidades combinatorias de un byte u octeto).
Imágenes RGB (24 bits por píxel) Si se toma un píxel y se le asigna tres bytes, se dispondrá de 24 bits en tres grupos de ocho, el cual puede ser colorado siguiendo el sistema de color de los monitores de televisión, que se basan en tres "canales" de luz de color (Rojo, Azul y Verde).
Página 6 de 21
De este modo se puede distinguir aproximadamente 16 millones de tonos de color (256 Rojo × 256 Azul × 256 Verde).
Imágenes en color de 8 bits o menos Es lo que se llama color indexado. Lo que se hace es crear una tabla o índice de 16 o 256 colores generalmente y a cada una de los posibles valores de un píxel se le Asigna uno de ellos.
5. FORMATOS DE IMÁGENES DIGITALES. 5.1. FORMATO DE IMAGEN BMP Esta clase de formato lo utiliza el sistema operativo Windows para guardar sus imágenes. Este sistema de archivo puede guardar imágenes de 24 bits. Esta clase de archivos poseen una muy alta calidad y nitidez en las imágenes, pero su tamaño en disco es bastante considerable.
5.2. FORMATO DE ARCHIVO GIF Es un formato gráfico utilizado ampliamente en la Internet, tanto para imágenes como para animaciones. GIF es un formato sin pérdida de calidad para imágenes con hasta 256 colores, limitados por una paleta restringida a este número de colores. Por ese motivo, con imágenes con más de 256 colores (profundidad de color superior a 8 bits), la imagen debe adaptarse reduciendo sus colores, produciendo la consecuente pérdida de calidad.
5.3. FORMATO DE ARCHIVO TIFF Este formato contiene, además de los datos de la imagen propiamente dicha, "etiquetas" en las que se archiva información sobre las características de la imagen. Las etiquetas también describen el tipo de compresión aplicado a cada imagen, que puede ser: Sin compresión. PackBits. Huffman modificado. LZW, el mismo que usa el formato GIF. JPEG.
6. ELECCIÓN DEL FORMATO. La lectura de la imagen al entorno de Matlab, se realizó mediante la función “imread”, lo cual permite trabajar con casi cualquier formato de imagen existente. Luego de realizadas las pruebas, y basando la selección en dos criterios primordiales, que son calidad de la imagen y tamaño de la misma, se concluye que los formatos óptimos para el proyecto son los “BMP” y “TIFF”. Sin embargo, se seleccionó el formato TIFF, que presenta la ventaja de ser compresible, con lo cual se emplea menos memoria en la base de datos, sin presentar una pérdida en la calidad de la imagen.
Página 7 de 21
7. ANÁLISIS Y REPRESENTACIÓN DE HUELLAS DIGITALES 7.1. INTRODUCCIÓN Una huella digital es una representación de la forma de la piel de las yemas de los dedos, que se produce cuando se presionan los dedos sobre una superficie lisa. Se trata de un patrón, único y diferente, de un dedo humano.
7.2. CARACTERÍSTICAS FUNDAMENTALES Una de las características principales de las huellas digitales, es su individualidad, ya que se considera, con fuertes evidencias, que las huellas digitales son diferentes de persona a persona, e incluso un mismo individuo posee huellas diferentes en cada uno de los dedos de sus manos. Esta característica permite el uso de las huellas digitales como uno de los métodos de reconocimiento más usados en muy diversas aplicaciones. La característica más evidente de una huella es un patrón de crestas y valles intercalados entre sí, que aparecen en las imágenes como partes oscuras y claras respectivamente.
7.3. REGIONES SINGULARES Al hacer un análisis general, los patrones de las huellas digitales muestran una o más regiones donde las líneas de la misma toman formas distintivas. A éstas partes se las conoce como regiones singulares, las cuales se clasificadas en cuatro tipos: lazos, deltas, remolinos y arcos.
Las regiones singulares son comúnmente usadas para la clasificación de las huellas digitales, esto es asignar una huella a una clase específica de un grupo de clases, basándose en sus regiones singulares, con el fin de simplificar la búsqueda de las mismas.
Página 8 de 21
7.4. MINUCIAS. En un nivel más detallado, se denotan otras características importantes dentro de los patrones digitales, conocidas como minucias. Las minucias se refieren a las diferentes formas en que las crestas pueden ser discontinuas. Por ejemplo, una cresta puede súbitamente finalizar (terminación), o puede esta dividirse en dos crestas independientes (bifurcación).Aunque se pueden considerar diversos tipos de minucias, los principales son:
Si se adquiere una imagen en alta resolución, por ejemplo 1000 p, es posible identificar claramente los poros de la piel, que pueden variar en tamaño de 60 a 250Wm. Aunque la información de los poros es altamente distintiva, muy pocas técnicas de identificación usan esta característica, dado que su aplicación confiable requiere una muy alta resolución e imágenes de muy buena calidad, lo que es difícil de conseguir en el campo práctico. Para determinar las características de una huella, el algoritmo propuesto se muestra en la siguiente figura:
Página 9 de 21
7.5. REALCE DE LA IMAGEN Existen muchas técnicas de reconocimiento biométrico, que comparan directamente dos imágenes mediante una correlación, pero las imágenes en escala de grises que se emplean generalmente en estas actividades no son adecuadas para estos métodos, debido a que la operación de la correlación es precisa solo si las imágenes tienen la misma orientación y posición en el plano. Con este antecedente, para un sistema de identificación por huellas digitales, se hace necesaria una etapa de extracción de características que facilite el reconocimiento y clasificación. Sistema de identificación por huellas digitales, se hace necesaria una etapa de extracción de características que facilite el reconocimiento y clasificación. Dado que la calidad de la imagen a procesar no es siempre la más adecuada, al emplear una Transformada de Fourier tradicional, se obtienen resultados adecuados solo en ciertas partes de la imagen, lo que implica una gran pérdida de información en el resto de la misma. Para el presente proyecto se empleará el algoritmo de realce en base al análisis STFT, propuesto por el Centro Unificado para Biométrica y Sensores de la Universidad de Buffalo, Estados Unidos. 7.5.1. Análisis Transformada de Fourier de Tiempo Corto STFT Desde el punto de vista histórico, el análisis wavelet es un nuevo método, aunque sus fundamentos matemáticos se remontan a la obra de Joseph Fourier en el siglo XIX. Fourier sentó las bases con sus teorías de análisis de frecuencia, que resultó ser muy importante
e
influyente.
La atención de los investigadores fue transformando a partir del análisis basado en la frecuencia de análisis de escala basada en cuando empezó a quedar claro que un enfoque de medición de las fluctuaciones de media a diferentes escalas podría resultar ser menos sensibles al ruido. Para nuestro sistema de identificación por huellas digitales y extracción de la características para realizar el reconocimiento y clasificación utilizaremos el algoritmo de realce en base al análisis STFT, propuesto por el Centro Unificado para Biométrica y Sensores de la Universidad de Buffalo, Estados Unidos que es una transformada que se emplea para encontrar la frecuencia sinusoidal y la orientación de secciones locales de una señal, mientras esta varía con el tiempo.
Página 10 de 21
Para desarrollar STFT utilizamos Wavelet Toolbox™ que nos ofrece Matlab. En el análisis wavelet, una señal se divide en una aproximación y un detalle. La aproximación es luego se divide en una aproximación de segundo nivel y el detalle, y el proceso se repite. Para una descomposición de n-nivel, hay n +1 posibles maneras de descomponer o codificar la señal. Y emplearemos los algoritmos permiten la Wavelet Packet 1-D y paquetes Wavelet herramientas 2-D para incluir las mejores "Nivel" y "Mejor características de los árboles" que optimizan la descomposición tanto a nivel mundial y con respecto a cada nodo. Obteniendo una imagen mejorada, resultante del proceso de realce, que se encuentra en escala de grises, es decir una imagen que contiene 8 bits por cada píxel, y con 256 posibilidades diferentes de tonos de gris.
En esta sección, empleamos la herramienta Wavelet Packet 2-D para analizar y comprimir una imagen de una huella dactilar. Este es un problema del mundo real: la Oficina Federal de Investigaciones (FBI) mantiene una gran base de datos de huellas dactilares - cerca de 30 millones de juegos de ellos. El costo de almacenar todos estos datos asciende a cientos de millones de dólares. "El FBI utiliza ocho bits por píxel para definir el tono de gris o 500 píxeles por pulgada, lo que da alrededor de 700 000 píxeles y 0,7 megabytes por dedo a dedo guardar copias en
Página 11 de 21
formato electrónico." (Wickerhauser, vea la referencia [Wic94] p. 387, que figuran en las referencias). "La técnica consiste en un DWT en dos dimensiones, la cubanización uniforme escalar (un proceso que trunca o cuántica, la precisión de la salida de toneladas de peso muerto de punto flotante) y la codificación Huffman entropía (es decir, la codificación de la salida cuantizada DWT con un número mínimo de bits). " (Brislawn, vea la referencia [Bris95] p. 1278, que figuran en las referencias). Al recurrir a las wavelets, el FBI ha logrado una relación de compresión 15:1. En esta aplicación, la compresión wavelet es mejor que la compresión JPEG más tradicionales, ya que evita los artefactos pequeños cuadrados y es especialmente adecuado para detectar discontinuidades (líneas) en la huella dactilar. Tenga en cuenta que la norma internacional JPEG 2000 incluirá las ondas secundarias como parte de la compresión y el proceso de cuantificación. Esto indica la fortaleza actual de las ondas.
Página 12 de 21
Imagen Original Imagen Realce Una vez obtenidos los datos de frecuencia y orientación, se filtra cada bloque en el dominio de Fourier, se obtiene su Transformada Inversa y entonces se puede reconstruir la imagen original a partir de los bloques realzados.
7.6. BINARIZACIÓN La imagen mejorada, resultante del proceso de realce, se encuentra en escala de grises, es decir una imagen que contiene 8 bits por cada píxel, y con 256 posibilidades diferentes de tonos de gris. El próximo paso consiste en transformar esta imagen a un formato binario, unos o ceros, lo que va a permitir diferenciar claramente y procesar las crestas y los valles en la imagen. Para esta tarea, la mejor opción es la utilización de la función “im2bw”, que se encuentra incluida en el toolbox de procesamiento de imágenes de Matlab. Esta función convierte imágenes en color o escala de grises en imágenes binarias.
Página 13 de 21
7.7. ADELGAZAMIENTO. Adelgazamiento es el proceso por el cual, las crestas en la imagen, que se representan mediante unos binarios, son reducidas en espesor, para de esta manera obtener una imagen en la que todas las crestas tengan solamente 1 pixel de ancho, lo que va a facilitar el posterior proceso de extracción de puntos características. Se emplearán operaciones morfológicas sobre las imágenes, en este caso se utilizará la función “bwmorph”, la cual comprende algunos tipos de operaciones morfológicas de las cuales usaremos adelgazamiento “thin”, “clean” y “spur”.
Página 14 de 21
7.8. IDENTIFICACIÓN DE MINUCIAS Para la identificación de minucias, se empleará Filtramos el mapa cresta adelgazada por el filtro "minutie". "minutie" calcular el número de un solo valor de cada ventana de 3x3:
Esta matriz de tres por tres, usando la función “sum” que suma los elementos de cada columna, con lo cual se calcula el crossing number. se tiene una cresta continua, al aplicar la fórmula del crossing number, se obtiene el valor de dos.
Terminacion Se tiene una bifurcación, al aplicar la fórmula del crossing number, se obtiene el valor de tres.
Página 15 de 21
Bifurcación
7.9 ELIMINAR FALSAS MINUCIAS Debido a la presencia de ruido en la huella se marcan minutas en estos sectores, y es necesario un paso posterior para remover estas minutas espurias. Simplemente hay que calcular la distancia euclidiana entre cada supuesta minuta y todas las demás. Si esta distancia es menor a la distancia entre crestas, ambas minutas son removidas. Tenemos una gran cantidad de minucias, vamos a procesar El proceso 1: Si la distancia entre una terminación y una bifurcación es menor que D, se elimina estas minucia El proceso 2: Si la distancia entre dos bifurcaciones es Menor que D, se elimina esta minucia
Página 16 de 21
El proceso 3: Si la distancia entre dos terminaciones es Menor que D, se elimina esta minucia
7.10. REGIÓN DE INTERES Hay que determinar un ROI. Por eso, consideramos que la imagen binaria, y aplicamos un cierre en esta imagen y la erosión de un archivo.
Página 17 de 21
7.11.ORIENTACIÓN Una vez que determinamos los puntos característicos diferentes, tenemos que encontrar la orientación de cada uno para determinar la distancia entre crestas, se realiza un muestreo en toda la huella. Este muestreo toma filas de la matriz, suma todos los píxeles de la fila cuyo valor sea 1 y luego se divide la longitud de la fila para el resultado de la suma. Se promedia el valor con los resultados de las otras filas. Terminacion Orientación Tenemos que encontrar la orientación de la terminación. Para constatar que, se analiza la posición del píxel en el límite de del recuadro de delimitación de la terminación 5 x 5 recuadro. Comparamos esta posición a la variable de tabla. La variable de la tabla da el ángulo en radianes.
7.12. ALGORITMO DE EMPATE. El algoritmo de empate es el encargado de calcular la semejanza entre dos huellas. El algoritmo de empate por minucias es el más conocido y ampliamente usado para reconocimiento de huellas digitales. La etapa de empate, ante todo, debe poseer cierto grado de flexibilidad dado que es prácticamente imposible tener datos que empaten de manera perfecta. Para esto, se emplean ventanas de veinte por veinte pixeles, rango dentro del cual puede variar la Página 18 de 21
ubicación de la minucia. Del mismo modo, se acepta un grado de tolerancia de un tercio de pi para el valor de la orientación. Para las minucias que se encuentren dentro de estos valores de tolerancia, son empatadas como minucias coincidentes, caso contrario se continúa con la siguiente minucia. El porcentaje de empate es igual al número total de minucias coincidentes, para el número total de minucias en la plantilla de comparación.
7.13. MANEJO DE BASE DE DATOS Para almacenar el tanto los datos del ciudadano utilizamos en nuestra plataforma Exportar Minucia, la imagen de la huella y los resultados del procesamiento, se destinan tres carpetas. La primera contiene un archivo txt con los datos del ciudadano (nombre, dirección, cédula de ciudadanía, etc.), el segundo contiene un archivo ASCII con las coordenadas de cada minuta en la huella y el mapa de crestas y una tercera almacena la huella Para almacenar los datos de la huella, se usa la función “save”, y para leerlos se usa la función “load” [2]. Debido a que la lectura de las huellas (archivo .dat) se realiza en otra carpeta, se añade las funciones de este programa al “path” de Matlab para evitar problemas de dirección. Con la ayuda de la función “dir”, se realiza el empate de la huella de entrada con todas las plantillas almacenada. Name: iddinael Date: 2013-05-07 Number of Terminations: 26 Number of Bifurcations: 40 ------------------------------------------------------------------------------------------------------------------------------------Terminations : ------------------------------------------------------------------X Y Angle 155 83 3.14 161 85 -0.79 92 105 3.14 99 105 0.00 146 105 -0.52 70 106 -2.62 76 106 0.52 62 108 0.00 56 110 -2.62 122 121 -0.52 74 122 0.52 65 123 3.14 194 125 2.62 Página 19 de 21
63 129 3.14 72 129 0.52 198 131 -0.52 217 175 -1.05 43 185 -2.36 67 192 0.79 61 196 3.14 96 203 -1.05 230 213 -1.05 27 215 1.05 200 217 -1.57 23 221 -2.62 174 273 -2.62 ------------------------------------------------------------------Bifurcations : ------------------------------------------------------------------X Y Angle 1 Angle 2 Angle 3 51 122 3.14 NaN -0.52 186 131 -2.62 2.09 -0.52 175 132 2.36 -2.36 -0.52 181 135 2.62 -1.05 0.79 170 137 2.62 0.79 -0.79 201 142 2.36 -2.09 -0.52 197 147 2.62 0.79 -0.79 166 158 2.36 -1.57 0.00 NaN NaN 0.00 0.00 0.00 69 162 3.14 -2.09 0.52 120 162 2.62 -1.57 0.00 194 169 2.36 -2.36 -0.79 207 169 2.62 1.05 -1.05 117 173 3.14 1.57 -0.79 189 173 3.14 -1.57 0.52 162 174 -2.62 1.57 -0.79 154 177 2.36 -1.57 0.00 178 177 2.36 -2.36 0.00 193 182 3.14 1.57 -0.79 186 184 2.36 -1.57 0.00 244 186 2.09 -2.09 0.00 NaN NaN 0.00 0.00 0.00 71 204 3.14 1.05 -1.05 111 204 2.36 -2.09 0.52 85 211 2.09 -2.09 -0.52 72 216 -2.62 1.57 0.00 243 233 2.36 -2.36 0.00 196 253 -2.36 1.57 -0.79 202 256 3.14 -1.57 0.79 176 263 3.14 -1.05 0.79 244 264 -2.09 1.57 0.00 Página 20 de 21
140 183 142 203 229 238 124 138 115
266 271 275 275 280 282 284 288 289
3.14 2.62 -2.62 3.14 -2.36 3.14 -2.36 -2.62 3.14
-1.57 -2.09 1.57 1.57 1.57 -2.09 1.57 0.79 -1.05
0.79 0.79 0.00 -0.79 0.00 1.05 0.52 -0.79 0.52
8. BIBLIOGRAFÍA [1] Gonzalez, Word, Eddins. Digital Image Processign Using Matlab, 2002, 2nd Edition. Capitulo 1 capitulo 8 [2] SFINGE (Sintetic Fingerprint Generator),Biometric System Laboratory, University of Bologna, Italy. [3] Diego Barragán – Pablo Vallejo (
[email protected]) Reconocimiento de huellas digitales con MATLAB http://www.scribd.com/doc/15534250/Reconocimiento-de-huellas-digitalescon-Matlab
Página 21 de 21