Reconocimiento huellas digitales con Matlab

Diego Barragán – Pablo Vallejo ([email protected]) TABLA DE CONTENIDO Capitulo 1. ELECCIÓN DEL FORMATO DE IMÁGENES .....

Views 147 Downloads 0 File size 9MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Diego Barragán – Pablo Vallejo ([email protected])

TABLA DE CONTENIDO Capitulo 1.

ELECCIÓN DEL FORMATO DE IMÁGENES .................................. 1

1.1.

Imagen digital. ................................................................................. 1

1.2.

Imágenes Vectoriales ...................................................................... 1

1.3.

Imágenes de Mapa de Bits. ............................................................. 2

1.4.

Formatos de imágenes digitales. ..................................................... 6 Formato de imagen BMP ................................................................. 6 Formato de archivo GIF ................................................................... 6 Formato de archivo TIFF.................................................................. 7

1.5. Capitulo 2.

Elección del Formato. ...................................................................... 8 ANÁLISIS Y REPRESENTACIÓN DE HUELLAS DIGITALES ....... 9

2.1.

Introducción ..................................................................................... 9

2.2.

Características Fundamentales........................................................ 9

2.3.

Regiones Singulares ...................................................................... 10

2.4.

Minucias. ....................................................................................... 11

Capitulo 3.

REALCE DE LA IMAGEN ............................................................. 16

3.1.

Introducción ................................................................................... 16

3.2.

Binarización. .................................................................................. 20

3.3.

Área de Interés. ............................................................................. 22

3.4.

Adelgazamiento. ............................................................................ 25

Capitulo 4.

IDENTIFICACIÓN DE MINUCIAS ................................................. 26

4.1.

Introducción ................................................................................... 26

4.2.

Mapa de Crestas. .......................................................................... 26

4.3.

Identificación de Minucias .............................................................. 27

Capitulo 5.

ALGORITMO DE EMPATE. .......................................................... 32

5.1.

Etapa de Alineación. ...................................................................... 32

5.2.

Etapa de Empate. .......................................................................... 33

Capitulo 6.

MANEJO DE BASE DE DATOS. .................................................. 34

Capitulo 7.

Resultados. .................................................................................. 35

7.1.

Rendimiento y Eficiencia. ............................................................... 38 7.1.1.Rendimiento .......................................................................... 38 7.1.2.Eficiencia .............................................................................. 39

Capitulo 8.

Conclusiones y Recomendaciones. ........................................... 40

Diego Barragán – Pablo Vallejo ([email protected])

Ilustraciones y Tablas FIGURA 1-1. REPRESENTACIÓN DE UNA IMAGEN MEDIANTE PÍXELES. ...................... 2 FIGURA 1-2. IMAGEN MONOCROMÁTICA, 1 BIT POR PÍXEL. ............................................ 3 FIGURA 1-3. IMAGEN EN ESCALA DE GRISES, 8 BITS POR PÍXEL .................................. 4 FIGURA 1-4. IMAGEN RGB, 24 BITS POR PÍXEL.................................................................. 4 FIGURA 1-5. IMAGEN EN 256 COLORES .............................................................................. 5 FIGURA 2-1. CRESTAS Y VALLES. ...................................................................................... 10 FIGURA 2-2. TIPOS BÁSICOS DE REGIONES SINGULARES ........................................... 11 FIGURA 2-3. CLASIFICACIONES BÁSICAS DE LOS PATRONES DIGITALES. ................ 11 FIGURA 2-4. TIPOS PRINCIPALES DE MINUCIAS. ............................................................ 12 FIGURA 2-5. COMPONENTES DEL SISTEMA DE MINUCIAS COORDENADAS (F.B.I.). . 13 FIGURA 2-6. DIAGRAMA DE FLUJO ALGORITMO RECONOCIMIENTO ........................... 14 FIGURA 2-7. DIAGRAMA DE FLUJO ALGORITMO DE EMPATE. ...................................... 15 FIGURA 3-1. IMAGEN REALZADA CON ANÁLISIS DE FOURIER TRADICIONAL. ........... 17 FIGURA 3-2. (A) IMAGEN REAL, (B) MODELADO APROXIMADO. .................................... 19 FIGURA 3-3. IMAGEN MEJORADA....................................................................................... 19 FIGURA 3-4. IMAGEN BINARIZADA. .................................................................................... 21 FIGURA 3-5. CAMPO DE ORIENTACIONES ANTES Y DESPUÉS DE APLICAR EL NIVEL DE CONFIABILIDAD. .................................................................................................... 23 FIGURA 3-6. ÁREA DE INTERÉS LUEGO DE APLICAR “BWMORPH”. ............................. 24 FIGURA 3-7. IMAGEN ADELGAZADA. ................................................................................. 25 FIGURA 4-1. MAPA DE CRESTAS........................................................................................ 26 FIGURA 4-2. CRESTA CONTINUA. ...................................................................................... 28 FIGURA 4-3. TERMINACIÓN................................................................................................. 28 FIGURA 4-4. BIFURCACIÓN. ................................................................................................ 29 FIGURA 4-5. ANCHO ENTRE CRESTAS. ............................................................................ 30 FIGURA 4-6. MINUCIAS MARCADAS. .................................................................................. 31 FIGURA 7-1. OPCIONES DE ALMACENAMIENTO TIFF ..................................................... 35 FIGURA 7-2. INTERFAZ GRÁFICA DEL PROGRAMA ......................................................... 36 FIGURA 7-3. ARCHIVO DAT GENERADO. .......................................................................... 36 FIGURA 7-4. RESULTADOS DE BÚSQUEDA DE HUELLA DESCONOCIDA. .................... 37 FIGURA 7-5. CARACTERÍSTICAS TÉCNICAS DEL COMPUTADOR ................................. 38 FIGURA 7-6. RESULTADO FUNCIONES TIC – TOC PARA ALMACENAMIENTO ............. 38 FIGURA 7-7. RESULTADO FUNCIONES TIC – TOC PARA EMPATE. ............................... 39

Diego Barragán – Pablo Vallejo ([email protected])

Capitulo 1.

1.1.

ELECCIÓN DEL FORMATO DE IMÁGENES

Imagen digital.

Una 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, como teléfonos celulares por ejemplo.

Las imágenes digitales en dos dimensiones se dividen en dos tipos: Imágenes vectoriales y de mapa de bits.

1.2.

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.

Son, por tanto, la mejor opción para crear gráficos que requieren líneas nítidas que puedan escalarse a distintos tamaños como, por ejemplo, los logotipos.

Diego Barragán – Pablo Vallejo ([email protected])

1.3.

Imágenes de Mapa de Bits.

Las imágenes de mapa de bits (denominadas técnicamente imágenes rasterizadas) 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 de mapa de bits son el medio electrónico más usado para las imágenes de tono continuo, como fotografías o pinturas digitales, puesto que pueden representar degradados sutiles de sombras y color.

Las imágenes se pueden representar mediante retículas de celdas a las que vamos asignando valores. Este modo es la base de todas las imágenes impresas y de buena parte de las digitales. (Figura 1-1).

Figura 1-1. Representación de una imagen mediante píxeles.

Cada una de las celdas de dicha retícula se llama "píxel", que es una composición de las palabras inglesas “picture element”. Un píxel es un concepto inmaterial que no tiene una medida concreta. No se puede afirmar si un píxel mide 1 cm. o 1 km. En principio, es solamente una medida de división en celdas.

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.

Diego Barragán – Pablo Vallejo ([email protected])

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. Como basta 1 bit para definir esa alternativa, se les llama "imágenes de 1 bit" (también se les llama "imágenes de mapa de bits, de alto contraste, monocromáticas o imágenes de línea"). Figura 1-2.

Figura 1-2. Imagen Monocromática, 1 bit por píxel.

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). En ellas se distinguen hasta 256 tonos diferentes de gris, por lo general no todos a la vez. (Figura 1-3).

Diego Barragán – Pablo Vallejo ([email protected])

Figura 1-3. Imagen en escala de grises, 8 bits por píxel

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). De este modo se puede distinguir aproximadamente 16 millones de tonos de color (256 Rojo × 256 Azul × 256 Verde). En realidad, lo que se hace es superponer tres canales de luz, uno rojo, otro verde y otro azul, cada uno con 256 posibilidades de tono.

Figura 1-4. Imagen RGB, 24 bits por píxel.

Diego Barragán – Pablo Vallejo ([email protected])

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.

Figura 1-5. Imagen en 256 colores

Diego Barragán – Pablo Vallejo ([email protected])

1.4.

Formatos de imágenes digitales.

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 (millones de colores), 8 bits (256 colores) y menos.

Esta clase de archivos poseen una muy alta calidad y nitidez en las imágenes, pero su tamaño en disco es bastante considerable, ya que por lo general, no se encuentran comprimidos.

Formato de archivo GIF

GIF (Compuserve GIF o Graphics Interchange Format) 1 es un formato gráfico utilizado ampliamente en la Internet, tanto para imágenes como para animaciones.

GIF llegó a ser muy popular porque podía usar el algoritmo de compresión LZW (Lempel Ziv Welch) para realizar la compresión de la imagen, que es más eficiente que el algoritmo Run-Lenght Encoding (RLE). Por lo tanto, imágenes de gran tamaño podían ser descargadas en un razonable periodo de tiempo, incluso con modems muy lentos.

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.

1

El formato fue creado por CompuServe en 1987 para dotar de un formato de imagen en color para sus áreas de descarga de archivos.

Diego Barragán – Pablo Vallejo ([email protected])

Formato de archivo TIFF

TIFF (Tagged Image File Format) es un formato de fichero para imágenes.

La denominación en inglés "Tagged Image File Format" (formato de archivo de imágenes con etiquetas) se debe a que los ficheros TIFF contienen, 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, que sirve para su tratamiento posterior.

Estas etiquetas describen el formato de las imágenes almacenadas, que pueden ser de distinta naturaleza:



Binarias (blanco y negro), adecuadas para textos, por ejemplo.



Niveles de gris, adecuadas para imágenes de tonos continuos como fotos en blanco y negro.



Paleta de colores, adecuadas para almacenar diseños gráficos con un número limitado de colores.



Color real, adecuadas para almacenar imágenes de tono continuo, como fotos en color.

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.

Diego Barragán – Pablo Vallejo ([email protected])

1.5.

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.

Diego Barragán – Pablo Vallejo ([email protected])

Capitulo 2.

2.1.

ANÁLISIS Y REPRESENTACIÓN DE HUELLAS DIGITALES

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.

Las huellas digitales se encuentran completamente formadas alrededor de los siete meses de gestación y este patrón permanecerá invariable durante toda la vida del individuo, salvo el caso de accidentes como heridas o cortes graves.

Si bien se puede afirmar que no pueden existir dos huellas digitales iguales, no se puede decir que éstas sean patrones completamente aleatorios, ya que poseen características o formas comunes, las que se detallarán más adelante. [1]

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

Diego Barragán – Pablo Vallejo ([email protected])

La característica acterística más evid 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. (Figura 2 2-1)

Las crestas y los valles generalmente tienen un espesor que varía entre los 100 y 300µm. [1]

Figura 2-1. Crestas y Valles.

2.3.

Regiones Singulares

Al hacer un análisis general, los pa patrones de las huellas digitales muestran una o más regiones donde las líneas de la misma toman formas distintivas.

cua pueden ser A éstas partes se las conoce como regiones singulares, las cuales clasificadas en cuatro tipos: lazos, deltas, remolinos y arcos (Figura 2-2). 2

Diego Barragán – Pablo Vallejo ([email protected])

Figura 2-2. Tipos Básicos de Regiones Singulares

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. [1] (Figura 2-3)

Figura 2-3. Clasificaciones Básicas de los patrones digitales.

2.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).

Diego Barragán – Pablo Vallejo ([email protected])

Aunque se pueden considerar diversos tipos de minucias, los principales se muestran en la Figura 2-4.

Figura 2-4. Tipos principales de Minucias.

El Instituto Nacional Americano de Estándares ANSI, propuso en 1986 un sistema basado en cuatro clases de minucias: terminaciones, bifurcaciones, trifurcaciones o cruces, e indeterminados.

Por su parte el Buró Federal de Investigaciones FBI introdujo el modelo de minucias coordenadas, que considera solo terminaciones y bifurcaciones, las que se denotan por su clase, las coordenadas en los ejes “x” y “y” y el ángulo entre la tangente de la línea de la cresta con el eje horizontal, como se aprecia en la Figura 2-5. [1]

Diego Barragán – Pablo Vallejo ([email protected])

Figura 2-5. Componentes del Sistema de Minucias Coordenadas (F.B.I.).

En la práctica existe una ambigüedad entre terminaciones y bifurcaciones, que se debe a la presión aplicada en el dedo cuando se deja la huella, las terminaciones pueden aparecer como bifurcaciones y viceversa.

Si se adquiere una imagen en alta resolución, por ejemplo 1000 ppp, es posible identificar claramente los poros de la piel, que pueden variar en tamaño de 60 a 250µm. 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:

Diego Barragán – Pablo Vallejo ([email protected])

Figura 2-6. Diagrama de Flujo Algoritmo Reconocimiento

Una vez almacenada la huella en la base de datos, se continúa con el proceso de empate:

Diego Barragán – Pablo Vallejo ([email protected])

Figura 2-7. Diagrama de Flujo Algoritmo de Empate.

Diego Barragán – Pablo Vallejo ([email protected])

Capitulo 3.

3.1.

REALCE DE LA IMAGEN

Introducción

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.

Así que el garantizar una imagen de calidad aceptable es uno de los puntos básicos que permiten mejorar la precisión de los sistemas de reconocimiento y autenticación dactilar, por lo que se debe prestar suma importancia a la etapa de mejora de las imágenes digitales.

Una imagen de una huella digital puede considerarse como un sistema de texturas cuya orientación y frecuencia varían lentamente a lo largo de la imagen, es decir poseen propiedades no estacionarias. Por lo tanto el análisis tradicional de Fourier no es el adecuado para analizar la imagen completa.

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.

La mayoría de algoritmos de realce, emplean ventanas para su aplicación, por lo general ventanas de 32 píxeles, lo que combinado con un análisis de Fourier de tipo estacionario, produce diferencias muy marcadas entre las ventanas de la

Diego Barragán – Pablo Vallejo ([email protected])

imagen, como se ve en la Figura 3-1, lo que además puede introducir información falsa en la imagen.

Figura 3-1. Imagen realzada con análisis de Fourier tradicional.

Como vemos en la figura, existen sectores donde la calidad de la imagen es óptima, pero ante una ligera variación de la orientación de las crestas, produce una muy pobre calidad de la imagen.

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. [6]

La Transformada de Fourier de Tiempo Corto o STFT, 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. La STFT, para una dimensión está dada por la ecuación (1):

(1)

Diego Barragán – Pablo Vallejo ([email protected])

En el análisis STFT, se divide la imagen en ventanas que se solapan unas a otras, con lo que se puede considerar que la imagen es estacionaria en esta pequeña región, cada bloque es transformado al dominio de Fourier y se almacena como resultado la frecuencia y orientación del bloque.

Al permitir que las ventanas se solapen unas a otras, se evita también obtener límites muy marcados entre las diferentes ventanas de la imagen, lo que se conoce como efecto bloque.

Este método puede ser extendido a dos dimensiones, con lo que la STFT, puede definirse como:



                         (2)

Donde I(x, y) es la imagen de entrada y W es una ventana espectral previamente seleccionada.

A partir de este análisis, se obtienen estimaciones estadísticas de frecuencia de crestas y orientación de las mismas, las cuales son empleadas para el filtrado de la imagen.

Con esta información cada bloque puede ser aproximadamente moldeado como una onda superficial de acuerdo con la ecuación (3) y como puede verse en la figura 3.2.

    !"#$ %&'( ) '*+(, (3)

Diego Barragán – Pablo Vallejo ([email protected])

Figura 3-2. (a) Imagen real, (b) Modelado aproximado.

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. (Figura 3.3)

Figura 3-3. Imagen Mejorada.

Diego Barragán – Pablo Vallejo ([email protected])

3.2.

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, basándose en un determinado umbral, el cual se calcula con la función “graytresh”, que devuelve el valor del umbral más adecuado para una imagen determinada y que puede ser usado como parámetro de entrada en la función “im2bw”.

Dado que la imagen de una huella digital no es estática, es decir los valores de gris varían considerablemente a través de la misma, la forma más eficiente de realizar la transformación es dividiendo la imagen en bloques, y para cada uno de estos, calcular el umbral de conversión.

Existen algunas alternativas para realizar este procesamiento, una de las más comunes es realizar un ciclo repetitivo o condicional, “for”, “while” o “if”, aunque Matlab provee en su toolbox de procesamiento de imágenes, una herramienta más adecuada para este trabajo. Se trata de la función “blkproc”, que se encarga de aplicar a cada bloque de la imagen de entrada, uno o varios procesos programados. Para nuestro caso se aplicarán las funciones “graytresh” e “im2bw” a cada bloque de 32 por 32 pixeles.

El resultado final del proceso de Binarización se puede apreciar en la figura 3.4.

Diego Barragán – Pablo Vallejo ([email protected])

Figura 3-4. Imagen binarizada.

Diego Barragán – Pablo Vallejo ([email protected])

3.3.

Área de Interés.

En el procesamiento de la huella es importante determinar el área de interés, o lo que es lo mismo, la región donde está la información para de este modo los posteriores procesamientos se realicen solo dentro de esta área y economizar procesos.

Para determinar el área de interés, se realiza el siguiente procedimiento presentado en [3] y [5]:

1. Dividir la huella en bloques de w x w. Se usó un bloque de 16. La función de Matlab para este punto es nuevamente “blkproc”, que se encarga de aplicar a cada bloque de la imagen de entrada, uno o varios procesos programados 2. Calcular el gradiente ∂ x ( i, j ) y ∂ y ( i, j ) de cada bloque. Para este trabajo se usó el operador de Sobel, dado por la función “fspecial('sobel')”. Sin embargo, otra alternativa pude ser usar la función “gradient”. 3. Estimar la orientación de cada bloque centrada en el píxel (i,j) usando las siguientes ecuaciones: i+

w 2

j+

w 2

∑ ∑

Vx ( i, j ) =

2∂ x ( u, v ) ∂ y ( u, v )(4)

w w u =i − u = j − 2 2 i+

w 2

j+

w 2

∑ ∑ ( ∂ ( u, v ) − ∂ ( u, v ) )(5)

Vy ( i, j ) =

u =i −

1

2 x

2 y

w w u= j− 2 2

 V ( i, j ) 

θ ( i, j ) = tan −1  y  (6) 2 , V i j ( ) x   Donde θ(i,j) es la estimación del mínimo cuadrado de la orientación de la cresta en cada bloque centrado en el píxel (i,j). Matemáticamente, esto representa la dirección que es ortogonal con la dirección dominante del espectro de Fourier de la ventana de w x w.

Diego Barragán – Pablo Vallejo ([email protected])

Para el cálculo del gradiente se usó la función “filter2”, la cual es un filtro FIR de dos dimensiones, que realiza el cálculo del gradiente usando la correlación. 4. Luego de estimar el campo de orientación de la huella, se determina la región de interés en base a un nivel de confiabilidad de la orientación. La definición de este nivel de confiabilidad se define como:

ε ( i, j ) = i+

Ve =

w 2

1 wxw j+

w 2

(V (i, j ) x

2

+ Vy ( i, j )

Ve ( i, j )

2

) (7)

∑ ∑ ( ∂ ( u, v ) + ∂ ( u, v ) ) u =i −

w w u= j− 2 2

2 x

2 y

(8)

Para cada bloque, si el nivel de confiabilidad está por debajo de un umbral (en este caso 0.05), se deduce que todos los píxeles de ese bloque pertenecen al fondo y no a la huella. La figura 3.5 muestra el campo de orientaciones antes y después de determinar el nivel de confiabilidad.

Figura 3-5. Campo de orientaciones antes y después de aplicar el nivel de confiabilidad.

5. Se crea una matriz de ceros (usando la función “zeros”) cuya dimensión son los múltiplos de 16 de la imagen. Por ejemplo, una imagen cuyas dimensiones son 156 píxeles de ancho por 230 píxeles de alto, producirá

Diego Barragán – Pablo Vallejo ([email protected])

una matriz de 15 filas (ceil (alto/16)) por 10 columnas (ceil (ancho/16)). Cada elemento de esta matriz es un identificador de bloque de la imagen de la huella. Si la orientación pasó el umbral del nivel de confiabilidad, ese identificador se establece en 1, con lo cual se delimita el área de interés. 6. El área de interés dada por el campo de orientación deber ser procesada usando una operación morfológica con el fin de eliminar cavidades en la misma. La función de Matlab “bwmorph” con el parámetro open puede expandir la imagen y quitar picos introducidos por el ruido de fondo. Con el parámetro close encoge la imagen y eliminar cavidades pequeñas.(Figura 3-6)

Figura 3-6. Área de interés luego de aplicar “bwmorph”.

Diego Barragán – Pablo Vallejo ([email protected])

3.4.

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

La operación “thin” va a realizar el adelgazamiento repetidas veces, hasta que la imagen deje de cambiar, esto ocurrirá cuando las crestas tengan solamente un pixel de ancho como se muestra en la Figura 3.7.

Las operaciones “clean” y “spur” van a remover los pixeles aislados que generalmente son producto del ruido de la imagen.

Figura 3-7. Imagen Adelgazada.

Diego Barragán – Pablo Vallejo ([email protected])

Capitulo 4.

4.1.

IDENTIFICACIÓN DE MINUCIAS

Introducción

Una vez obtenida la imagen “esqueleto” de la huella digital, todas las crestas tienen un espesor de un pixel, lo que permite realizar una búsqueda de las minucias, bifurcaciones y terminaciones.

Para esta tarea se emplearán también algunas operaciones morfológicas, incluídas en el toolbox de procesamiento de imágenes de Matlab.

4.2.

Mapa de Crestas.

El primer paso es identificar todas las crestas presentes en la imagen, para ello se utilizó

la función “bwlabel”, que identifica y etiqueta todos los elementos

conectados en una imagen binaria. El resultado de esta función se puede observar en la Figura 4.1, donde cada cresta es etiquetada con un número diferente, es decir cada uno de los elementos conectados es representado con un color distinto.

Figura 4-1. Mapa de Crestas.

Diego Barragán – Pablo Vallejo ([email protected])

La función “bwlabel”, devuelve además el número total de elementos conectados, es decir el número total de crestas.

4.3.

Identificación de Minucias

Para la identificación de minucias, se empleará el algoritmo propuesto en varias referencias conocido como “Crossing Number”. Este algoritmo consiste en tomar ventanas de la imagen de 3 por 3 pixeles, y sobre éstas aplicar la siguiente ecuación [5]:



%+- .405/-0!123!4  -0 /(9) 

Donde p es el valor de cada pixel adyacente al pixel central de la ventana. Dependiendo del resultado de esta ecuación, el pixel central de la ventana puede ser identificado como terminación, bifurcación o cresta continua. [1]

Valor de CN

Minucia

1

Terminación

2

Cresta Continua

3

Bifurcación

Para ilustrar este algoritmo se tiene algunos ejemplos en las figuras 4.2, 4.3. y 4.4.

Diego Barragán – Pablo Vallejo ([email protected])

Figura 4-2. Cresta Continua.

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. En la Figura 4.3.1 se tiene una cresta continua, al aplicar la fórmula del crossing number, se obtiene el valor de dos.

Figura 4-3. Terminación.

Diego Barragán – Pablo Vallejo ([email protected])

En la Figura 4.3.2 se tiene una terminación, al aplicar la fórmula del crossing number, se obtiene el valor de uno.

Figura 4-4. Bifurcación.

Finalmente en la Figura 4.3.3 se tiene una bifurcación, al aplicar la fórmula del crossing number, se obtiene el valor de tres.

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. La ecuación de la distancia euclidiana se muestra a continuación:

d=

( x1 − x2 ) + ( y1 − y2 ) 2

2

(10)

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.

Diego Barragán – Pablo Vallejo ([email protected])

La Figura 4-5 muestra la longitud de la distancia entre crestas. El cálculo arrojó el valor de 9, que es cercano a la aproximación hecha en la huella (7.85 píxeles) con la función “imdistline”, que mide distancias en píxeles en una imagen [2].

Figura 4-5. Ancho Entre Crestas.

Al identificar un pixel como terminación o bifurcación, resulta relativamente simple almacenar las coordenadas de estos puntos así como las respectivas orientaciones y marcarlos en la imagen original, Figura 4.6.

Para obtener la orientación de cada minucia, de coordenadas (mx, my), se toma un segmento de la cresta, con una longitud igual al ancho inter crestas, con el origen en la minucia. Luego se suman las coordenadas de todos los puntos del segmento, tanto en x como en y, estas sumatorias son divididas por el valor del ancho inter crestas (sx, sy), y el ángulo de orientación es igual a:

( 6789

:; :;

(11)

Diego Barragán – Pablo Vallejo ([email protected])

Figura 4-6. Minucias Marcadas.

Diego Barragán – Pablo Vallejo ([email protected])

Capitulo 5.

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 [3].

Para este apartado, se eligió el algoritmo que se basa en alineación de la huella de entrada con la plantilla de la base de datos. Este algoritmo divide esta etapa en dos pasos: (i) Etapa de alineación y (ii) etapa de empate.

5.1.

Etapa de Alineación.

Con respecto a la etapa de alineación, el primer paso es tomar puntos de la cresta asociada a la minucia (durante la extracción de la minucia, la cresta donde reside la minucia también es almacenada y el origen de la misma coincide con la coordenada de la minucia). Los puntos se toman a una distancia igual al ancho entre crestas (distancia en píxeles entre una cresta y otra).

Empatando las crestas, se obtiene un umbral que de superar el valor de 0.8, da una primera estimación de semejanza. Definiendo Rd y RD es el conjunto de crestas asociadas con las minucias de entrada y de la plantilla, respectivamente. La ecuación de empate se describe como sigue [3]:

L

∑d D i

S=

i

i =0 L

∑d i=0

2 i

Di2 (12)

L denota el ancho entre crestas y d∈ Rd y D ∈ RD. Cuando S (0≤S≤1) es mayor a 0.8, se continúa con el empate minucia a minucia, caso contrario, se pasa a la siguiente huella.

Diego Barragán – Pablo Vallejo ([email protected])

Si S es mayor a 0.8, se realiza la rotación de las minucias con respecto a una minucia de referencia (x,y,θ)d:

 xiA   cos θ  A   yi  =  sin θ  A  0 θi  

5.2.

sin θ − cos θ 0

d 0   xi − x     0  *  yi − y d  1   θ i − θ d    (13)

Etapa de Empate.

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

ABC

-?@ ! ADB  9EE

NME: Número de minucias empatadas NTM: Número de minucias totales

(14)

Diego Barragán – Pablo Vallejo ([email protected])

Capitulo 6.

MANEJO DE BASE DE DATOS.

Para almacenar los tanto los datos del ciudadano, 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.

Diego Barragán – Pablo Vallejo ([email protected])

Capitulo 7.

Resultados.

Para las pruebas experimentales, se obtuvieron impresiones de huellas digitales reales, las cuales fueron digitalizadas por medio de un escáner, con una resolución de trescientos puntos por pulgada. Las imágenes fueron almacenadas en formato TIFF, empleando compresión LWZ en la imagen y compresión RLE para las capas. (Figura 7-1).

Figura 7-1. Opciones de almacenamiento TIFF

Dentro del GUI del programa, se tienen dos opciones, la primera es Ingresar Nueva Huella, esta opción procesa la imagen y almacena las coordenadas de la minucias y su respectiva orientación dentro de un archivo de texto con extensión *.dat. Los resultados del ingreso de una nueva huella se muestran en las Figuras 72 y 7-3.

Diego Barragán – Pablo Vallejo ([email protected])

Figura 7-2. Interfaz Gráfica del Programa

Figura 7-3. Archivo DAT generado.

Diego Barragán – Pablo Vallejo ([email protected])

En la Figura 7-3 se aprecia el contenido del archivo DAT generado por el programa, donde las columnas corresponden a las coordenadas X, Y con la orientación de cada una de las minucias.

La segunda opción del GUI permite ingresar una huella desconocida y compararla con cada una de las huellas ingresadas previamente, y presenta como resultado la etiqueta de la huella que más se asemeja a la ingresada. (Figura 7-4).

Figura 7-4. Resultados de Búsqueda de Huella Desconocida.

Diego Barragán – Pablo Vallejo ([email protected])

7.1.

Rendimiento y Eficiencia.

7.1.1. Rendimiento

El rendimiento del sistema está en relación directa con las características del computador donde se ejecuta el programa. Para estas pruebas, se usó un PC portátil cuyas características se detallan a continuación (Figura 7-5):

Figura 7-5. Características Técnicas del Computador

Para medir el tiempo de cómputo de un programa se usa las funciones “tic” y “toc” las cuales miden el rendimiento usando el cronómetro de un timer [2]. “Tic” toma el valor actual de tiempo y “toc” retorna entre el tiempo transcurrido. Mathworks recomienda hacer de tres a cuatro mediciones para obtener un valor estable y real. Los resultados de se muestran a continuación:

Figura 7-6. Resultado funciones tic – toc para almacenamiento

Diego Barragán – Pablo Vallejo ([email protected])

Para calcular el rendimiento del empate entre las minucias, se usan las mismas funciones “tic” y “toc”. Sin embargo, el resultado de tiempo se divide para el número total de huellas en la base de datos.

Figura 7-7. Resultado funciones tic – toc para empate.

De esta manera, el tiempo en comparar las minucias de una huella con otra es:

F

GH I

EG9J!'KL+&' (15)

7.1.2. Eficiencia

Con propósitos de prueba fue ingresado un número total de catorce imágenes obteniendo empates correctos en doce casos. En base a estas pruebas experimentales se puede afirmar que la eficiencia del sistema es igual a: