ALGORITMO DE OBTENCIÓN DE CARACTERÍSTICAS EN HUELLAS DACTILARES PARA SISTEMAS EMBEBIDOS GNU/LINUX Autor: Joaquín Diego Reyes González Director: Cesáreo Fernández Martínez Se trata de un proyecto innovador en el que se desarrolla un algoritmo capaz de obtener unas determinadas características de una huella dactilar. Las características en las que éste algoritmo se centra son la bifurcaciones de las crestas. Una bifurcación es un punto en el que la cresta, o parte de la huella que queda plasmada, se divide en dos. Entre otras características de una huella dactilar, podemos destacar las siguientes: Características de una huella dactilar El algoritmo desarrollado ha sido programado utilizando el lenguaje C, de forma que ha sido posible implantar en una pequeña placa, similar a la que poseen muchos ordenadores de bolsillo. De esta forma, aunque el algoritmo ha sido desarrollado en un ordenador PC, con la distribución GNU/Linux Debian RESUMEN DEL PROYECTO - 1 -
instalada, para llevar a cabo el proceso de implantación ha bastado con compilar el código con un compilador cruzado apropiado para la placa utilizada, que se encuentra gobernada por un microprocesador Intel Xscale de 400MHz. Sin embargo, antes de llevar a cabo éste proceso de implantación ha sido necesario un completo estudio de la placa llegando a la conclusión de que no posee unidad de coma flotante y que las funciones matemáticas que lo pueden necesitar utilizan una serie de librerías de coma flotante. Sin embargo, hemos comprobado que el rendimiento de éstas librerías no es aceptable, ya que un mismo algoritmo usando variables en coma fija, es del orden de treinta veces más rápido que el mismo algoritmo utilizando variables en coma flotante. El algoritmo desarrollado obtiene las características comentadas, bifurcaciones, gracias a un procesamiento digital de la imagen de entrada. Ésta imagen puede ser de cualquier tamaño, aunque no se recomienda que tenga más de 300 píxeles de ancho ó alto, es decir, la máxima resolución recomendada es 300x300 píxeles. La imagen que se desea procesar debe estar en el formato PNM y, más concretamente, en formato PPM, una de las variantes del formato PNM. Éste formato posee como característica fundamental que almacena los datos en texto plano y puede ser leído desde un programa en C de forma fácil y sencilla. El procesamiento digital de la imagen realiza varios subprocesos correlativos, que vienen resumidos a continuación: Imagen Original Imagen Atenuada Matriz de direcciones 0º 15º 30º 45º 60º 75º 90º 105º 120º 135º 150º 165º El primer proceso consiste en la lectura de la imagen, para después atenuarla, en un segundo proceso, de forma que se aproveche al máximo el margen de los valores de la imagen (255 para un píxel blanco y 0 para un píxel negro). En un tercer proceso se realiza un análisis píxel a píxel para averiguar RESUMEN DEL PROYECTO - 2 -
cuál es la dirección dominante, es decir, la dirección en la que el píxel está más rodeado por píxeles negros o por píxeles blancos, teniendo la posibilidad de que el algoritmo defina el píxel como negro o blanco si existe un claro dominio de los píxeles cercanos. Los siguientes procesos del algoritmo se muestran en las siguientes imágenes: Imagen Binarizada Esqueletos Obtenidos Características obtenidas Una vez que tenemos la imagen atenuada y la matriz de direcciones, procedemos a pasar la imagen a blanco y negro, que es lo que conocemos como imagen binarizada. Tras éste cuarto proceso, cabe la posibilidad de realizar lo que se conoce como proceso de apertura (opening) y cierre (closing), de forma que se pueda filtrar el ruido, es decir, puntos negros sobre fondo blanco o puntos blancos sobre fondo negro. El siguiente proceso, sería aquel en el que se obtienen los esqueletos o parte central de las crestas de la huella, a partir del cual trabaja el último proceso, buscando cambios bruscos de las direcciones de los esqueletos, definiendo así los puntos donde se encuentran las bifurcaciones. En resumen, nuestro algoritmo lee una imagen dada, la procesa mediante varias modificaciones y devuelve una imagen igual que la original, en la que se pueden apreciar puntos verdes allí donde se han encontrado bifurcaciones. RESUMEN DEL PROYECTO - 3 -
ALGORITHM TO OBTAIN CHARACTERISTICS OF FINGERPRINTS FOR GNU/LINUX EMBEDDED SYSTEMS Author: Joaquín Diego Reyes González Director: Cesáreo Fernández Martínez It is an innovation project which one algorithm is developed in. This algorithm is able to obtain some of the most important characteristics of one fingerprint: the bifurcations. One bifurcation is a point of the fingerprint where three ridges are meet. However, there are another important characteristics in a fingerprint, as we can see below: Características de una huella dactilar The algorithm has been developed using C programing language, in order to be implemented into small devices, like Pocket PCs and similar. Although the algorithm was developed using a computer, running with GNU/Linux Debian Distribution, it can be compiled with a cross-compiler designed for use in our small device, so the implantation process must be so easy like transfer the ABSTRACT OF THE PROJECT - 1 -
executable file to the device and run it. The MipScale device are moved by an Intel Xscale PXA255 processor running at 400MHz, with 32 MB of RAM Memory. It is necessary a particularly research about MipScale device, because there is no present a float point unit, but there are some library which work such as a float point unit. However, the performance of this libraries is lower than the performance of a float point unit, so the algorithm must use only integer variables, in order to be thirty times faster than the same algorithm than uses float variables. The developed algorithm is able to obtain characteristics, bifurcations, using a digital image processing, whenever the resolution of the input image is nearly or smaller than 300x300. The input image must be present by PNM format, specifically PPM. The PNM format store the information about the image using plain text, without any compression, so it is very easy read and write images from a C language code. The image digital processing have a few sequential steps, whose effects we ca see below: Original Image Attenuate Image Matrix of directions 0º 15º 30º 45º 60º 75º 90º 105º 120º 135º 150º 165º The first step is the responsible of the image reading process. This image must be attenuate in order to obtain the maximum performance, using all values from 0 until 255, which are the minimum and maximum values. At the third step, a matrix directions is obtained which inform about the main direction of each pixel. The information of this matrix can be use to determinate if one pixel must me white or must be black in function of the color of the neighbors pixels. ABSTRACT OF THE PROJECT - 2 -
There are more developed steps, as we can see below: Binary Image Obtained Skeletons Obtained Characteristics The fourth step gets a binary image from attenuate image, and it is possible to continue it with a opening and closing process, looking for a new clearly image and eliminate white pixels with black background and black pixels with white background. The next step is to obtain the skeletons of the ridges aimed to obtain the characteristics of the fingerprint, where there is a pixel whose main direction change suddenly. In conclusion, the developed algorithm read an input image, complete a digital image processing and write a several images, witch the last one show the characteristics as green pixels. ABSTRACT OF THE PROJECT - 3 -