Está en la página 1de 7

Proyecto Extracción de Patrones y comparación de Huellas Dactilares aplicando

Trasformada de Fourier
Anthony Joao Estévez V. Enrique Adrián Roche V.
Universidad de las Fuerzas Armadas ESPE Extensión Latacunga.
Av. Quijano Ordoñez y Marquéz de Maenza Tel. 593(3)2810-206,
correo electrónico: laroma1960@hotmail.com, adriroche_21@hotmail.com

Resumen Introducción
En este artículo se diseñó un sistema de La identificación personal está asociada a un
reconocimiento de huellas dactilares por medio de individuo en particular, con una identidad. Juega un
la elaboración de un programa en Matlab, basado en rol importante en nuestra sociedad, en cuestión de
la extracción de las características geométricas de identificar a un individuo como “¿Es la persona que
una huella digital usando la Transformada Rápida él o ella dicen ser?”, “¿Deberíamos dar a este
de Fourier (FFT). La cual se realizará el respectivo individuo acceso a nuestro sistema?”,” ¿Tiene este
análisis detallado de varias huellas digitales empleado el derecho de realizar dicha
verificando si son diferentes o de la misma persona. transacción?”, y miles de preguntas similares son
La lectura de esta biometría es bastante sencilla, ya hechas millones de veces al día por cientos de
que no es invasiva y ha sido aceptada por los millones de organizaciones en servicios
usuarios muy altamente. La tecnología para extraer financieros, servicio médico, comercio electrónico,
dicha información es bastante barata comparada telecomunicaciones, gobierno, etc. Con la rápida
contra otras, lo que vuelve caro un sistema de evolución de las tecnologías de información, las
reconocimiento de huellas digitales, es toda la personas están cada vez más conectadas
lógica que está presente para lograr la fiabilidad electrónicamente [2]. Y como resultado, la
más alta posible. habilidad de contar con un sistema preciso de
identificación personal se está haciendo más crítico.
Palabras Clave: Huellas dactilares, FFT,
Matlab, reconocimiento, verificación Unas amplias variedades de sistemas requieren
esquemas de autenticación personal fiables para
Abstract confirmar o determinar la identidad de las personas
que solicitan sus servicios. El propósito de estos
In this article, a fingerprint recognition system
sistemas es asegurar que el servicio requerido es
was designed by means of the elaboration of a
asequible por un usuario legítimo, y no cualquier
program in Matlab, based on the extraction of the
otra persona. Ejemplos de estos sistemas son acceso
geometric characteristics of a fingerprint using the
seguro a edificios, sistemas de cómputo, laptops,
Fast Fourier Transform (FFT). Which will be made
celulares y cajeros automáticos. En ausencia de
the respective detailed analysis of several
sistemas de autentificación más robustos, estos
fingerprints verifying if they are different or of the
sistemas son vulnerables al paso de un impostor [1].
same person. The reading of this biometrics is quite
simple, since it is not invasive and has been Tradicionalmente, passwords y tarjetas, han sido
accepted by users very highly. The technology to usados para restringir el acceso a los sistemas [2].
extract such information is quite cheap compared to
others, which makes expensive a fingerprint De todas maneras, estos alcances no están basados
recognition system, it is all the logic that is present en ningún atributo propio del individuo para hacer
to achieve the highest possible reliability. una identificación personal, en lugar de tener un
numero de desventajas como que las tarjetas puedan
Key words ser robadas, olvidadas o ingresadas
incorrectamente; un password o PIN puede ser
Fingerprinting, FFT, , Matlab, recognition, check
olvidado o adivinado por algún impostor. La
seguridad puede ser fácilmente burlada en estos
sistemas cuando un password es divulgado a un
usuario sin autorización o una tarjeta es robada;
además passwords sencillos son fáciles de adivinar,
y los más difíciles tal vez puedan resultar difíciles
de recordar por el propio usuario [2].
Biometría proporcionan mayor potencia, sin embargo, los
scanner ópticos son los comúnmente más
En el mundo de la seguridad computarizada, la utilizados. Aproximadamente el 80% de los
biometría se refiere a las técnicas de autenticación vendedores de este sistema, basan sus algoritmos en
que recaen en las mediciones fisiológicas y la extracción de minucias y los puntos en relación
características individuales que puedan ser con las bifurcaciones en los bordes de la yema.
automáticamente verificadas. En otras palabras, Otros un tanto más sofisticados, están basados en la
todos tenemos atributos únicos y personales que extracción de los patrones de los bordes [4].
pueden ser usados para distinción de individuos,
incluyendo huellas digitales, los patrones de retina, Entre todos los rasgos biométricos, las huellas
características de la voz. La combinación de dos o digitales tienen uno de los más altos niveles de
más métodos de autentificación se está convirtiendo confiabilidad y han sido usadas extensamente por
en un standard en medios de seguridad. Algunas expertos forenses en investigaciones criminales. La
computadoras personales hoy en día pueden incluir huella digital refiere al flujo de modelos de patrones
un lector de huella digital donde el usuario coloca en la yema del dedo, el flujo presenta anomalías en
su dedo índice para probar su identidad. La sus regiones locales, y su posición y orientación de
computadora analiza su huella digital para estas anomalías las que son usadas para representar
determinar quién es, y basado en su identidad sigue y comparar las huellas digitales [4].
un código o password, permitiéndose acceder a
diferentes niveles del usuario. Los niveles de acceso
pueden incluir el hecho de abrir y/manipular ciertos
archivos, usar tarjetas de crédito, etc. [3]

Una autentificación biométrica es esencialmente el


reconocimiento de un patrón, que genera una
identificación personal y determina una específica
característica propia del usuario. Un factor
importante, es diseñar un enfoque práctico para
determinar como un individuo es identificado [3].
Fig. 1 Características de una huella.
Antecedentes Investigativos
Un creciente número de tecnologías biométricas Aunque no se ha establecido científicamente, las
han estado siendo procesadas por el paso de los huellas digitales se cree que son únicas a través de
años, pero solo en el paso de los últimos 5 años son las personas y a través de todos los dedos de la
estos sistemas los que llevan la delantera de ser misma persona. Inclusive gemelos idénticos
altamente desarrollados [2]. quienes tienen un ADN similar, se cree que tienen
huellas digitales diferentes. Tradicionalmente, los
Algunas tecnologías son aplicadas de mejor manera patrones de estas han sido extraídos creando una
según la aplicación, y otras son mejor aceptadas por impresión de tinta de la huella digital sobre papel
los usuarios. Podemos mencionar siete tecnologías [3].
biométricas que llevan la delantera:

 Reconocimiento facial.
 Reconocimiento de huella digital.
 Geometría de la mano.
 Reconocimiento del Iris.
 Reconocimiento de la firma.
 Reconocimiento de voz.
 Reconocimiento de huella digital.

El reconocimiento de la huella digital es uno de los


más conocidos y mejormente usado, en referencia a
la tecnología biométrica. Sistemas automáticos han Fig. 2 Codificación binaria de una huella.
estado siendo comercializados desde los primeros
años de los 70´s. Hasta tiempo reciente, el La era electrónica, ha iniciado una serie de sensores
reconocimiento de huella digital ha sido usado compactos que proporcionan imágenes digitales de
primeramente en aplicaciones en referencia a la ley estos patrones. Estos sensores pueden ser
[1]. fácilmente incorporados en periféricos de
computación existentes, como el mouse o el
Esta tecnología extrae características de las teclado. Esto ha dirigido el incremento del uso
impresiones hechas por los distintos bordes de la automático de identificación por huella digital, en
yema de los dedos. La imagen es capturada por un ambos sistemas civiles y legales.
scanner, que recientemente han sido ópticos, o de
ultrasonido, siendo estos últimos los que
Imagen Digital la información de tal imagen. Esta representación
puede ser útil ya que teniendo la frecuencia de
Una imagen en un sentido muy amplio “es una repetición de tales patrones se pueden detectar y
representación, sin parecido o imitación de un alterar directamente elementos presentes en las
objeto o cosa, es decir, una descripción gráfica, algo imágenes, como el ruido, contornos o texturas [5].
introducido para representar otra cosa más”. Una
imagen contiene información descriptiva acerca del Transformada de Fourier de una Imagen
objeto que representa. Otra definición de imagen,
orientada a una imagen gráfica, en ingles “picture” Sea f(x) una función continua de variable real x, la
la define como “Una representación hecha por transformada de Fourier de esta función indicada
medio de dibujos, pinturas o fotografía”. La palabra por F[f(x)] está dada por la ecuación [5]:
digital se relaciona al cálculo por métodos ∞
numéricos o por unidades discretas. De esta manera
𝐹[𝑓(𝑥)] = 𝐹(𝑢) = ∫ 𝑓(𝑥)𝑒 −2𝑗𝜋𝑢𝑥 𝑑𝑥
podemos definir a una imagen digital como la
−∞
representación numérica de un objeto. Una imagen
monocroma puede ser definida como una función Donde j es la raíz cuadrada de (-1) y u la variable
en dos dimensiones f(x,y), donde x e y son de frecuencia. Dada F(u) podemos volver a hallar
coordenadas en el plano espacial, y la amplitud de f f(x) empleando la transformada inversa de Fourier:
en cualquier par de coordenadas (x,y) es llamada la

intensidad, nivel de gris o brillo de la imagen en ese
−1 (𝑢)
punto. Cuando x, y y los valores de intensidad de f 𝐹[𝑓(𝑥)] = 𝐹 = ∫ 𝐹(𝑢)𝑒 2𝑗𝜋𝑢𝑥 𝑑𝑢
son finitos, cantidades discretas, esta imagen puede −∞
ser representada de manera digital (en una
computadora). Para los fines de este artículo Estas dos ecuaciones se denominan Par de
utilizaremos a la definición de imagen monocroma Transformadas de Fourier, existen siempre que f(x)
digital como sinónimo de imagen digital [5]. sea continua e integrable y F(u) sea integrable.
Estos conceptos pueden fácilmente extenderse a
Muestreo y cuantización de una imagen funciones bidimensionales del tipo f(x,y). Si la
función f(x,y) es continua e integrable y F(u,v) es
Existen muchas maneras de adquirir imágenes integrable, entonces existe el par de transformadas
(fotografías de distintos tipos, cámaras de video, de Fourier [5]:
etc.), para poder manipular estas imágenes es
257
necesario generar imágenes digitales a partir de los
datos continuos obtenidos, esto se logra a partir de 𝑓(𝑥, 𝑦) = ∬ 𝐹(𝑢, 𝑣)𝑒 𝑗2𝜋(𝑢𝑥+𝑣𝑦) 𝑑𝑢𝑑𝑣
dos procesos: muestreo y cuantificación. El ∞
muestreo es el proceso de digitalizar las
205
coordenadas espaciales de la imagen y la
cuantificación es el proceso de digitalizar el nivel 𝐹(𝑢, 𝑣) = ∬ 𝑓(𝑥, 𝑦)𝑒 −𝑗2𝜋(𝑢𝑥+𝑣𝑦) 𝑑𝑥𝑑𝑦
de gris. De esta manera una imagen continua puede ∞
describirse de manera aproximada por una serie de
muestras igualmente espaciadas organizadas en Supongamos que la función continúa f(x) se ha
forma de matriz donde cada elemento de la matriz discretizado en la sucesión:
(pixel) es una cantidad discreta [5]:
𝒇(𝟎, 𝟎) ⋯ 𝒇(𝟎, 𝑴 − 𝟏)
{𝑓(𝑥0 ), 𝑓(𝑥0 + ∆𝑥), 𝑓(𝑥0 + 2∆𝑥), … , 𝑓(𝑥0 + (𝑁
𝒇(𝒙, 𝒚) = ( ⋮ ⋱ ⋮ )
− 1)∆𝑥)}
𝒇(𝑵 − 𝟏, 𝟎) ⋯ 𝒇(𝑵 − 𝟏, 𝑴 − 𝟏)
Tomando N muestras separadas una distancia ∆𝑥,
Durante el proceso de digitalización es necesario
como se puede observar:
decidir el valor de M y N y el número de niveles de
gris (L) permitidos para cada pixel. Es una práctica
común que estos valores sean potencias enteras de
2 ya físicamente (en memoria) serán representados
en binario. El valor de M, N y L está fuertemente
relacionado con la calidad o resolución de la
imagen, mientras mayores sean estos valores
mayores será la calidad. Además de poder
representar una función en el dominio del espacio,
es posible representarla en el dominio de la
frecuencia. Las representaciones en este dominio
detallan con cuanta frecuencia se repiten ciertos
patrones en una imagen, consiguiendo representar Fig. 3 Discretizacion de una función.
El par de transformadas discretas de Fourier que se Este es uno de los métodos más utilizados por las
aplica a las funciones muestreadas está dado por diferentes empresas y organizaciones alrededor del
[5]: mundo. Debido a los recientes avances
tecnológicos, este se ha convertido en un método
accesible y factible para cualquier tipo de
𝑁−1 organización.
−𝑗𝜋2𝑢𝑥
𝐹(𝑢) = ∑ 𝑓(𝑥)𝑒 𝑁
Hipótesis
𝑋=0

𝑁−1
La adquisición de las huellas dactilares se
1 𝑗𝜋2𝑢𝑥 realizó desde un scanner ya que no poseemos el
𝑓(𝑥) = ∑ 𝐹(𝑢)𝑒 𝑁 dispositivo biométrico UareU 4000 de Digital
𝑁
𝑢=0 Persona Inc. Las imágenes fueron escaneadas con
Los valores u de la transformada discreta de Fourier una resolución de 512 DPI y un tamaño de 219x230
corresponden a las muestras de la transformación píxeles en escala de grises. Para este artículo se creó
continua en los valores 0, ∆𝑢, 2∆𝑢 … . . , (𝑁 − 1)∆𝑢. una base de datos con 14 diferentes imágenes que
Para el caso de funciones discretizadas de dos corresponden a 4 diferentes personas.
variables el par de transformada discreta de Fourier Material y Métodos
es:
𝑀−1 𝑁−1 Matlab
𝑢𝑥 𝑣𝑦
−𝑗𝜋2( + )
𝐹(𝑢, 𝑣) = ∑ ∑ 𝑓(𝑥, 𝑦)𝑒 𝑀 𝑁 MATLAB es un lenguaje de alto desempeño
𝑥=0 𝑦=0 diseñado para realizar cálculos técnicos. MATLAB
𝑀−1 𝑁−1 integra el cálculo, la visualización y la
1 𝑢𝑥 𝑣𝑦 programación en un ambiente fácil de utilizar donde
𝑓(𝑥, 𝑦) = ∑ ∑ 𝐹(𝑢, 𝑣)𝑒 𝑗𝜋2( 𝑀 + 𝑁 ) los problemas y las soluciones se expresan en una
𝑀𝑁
𝑢=0 𝑣=0
notación matemática. MATLAB es un sistema
Estas últimas ecuaciones son las utilizadas para interactivo cuyo elemento básico de datos es el
trabajar con imágenes, se expresó que una imagen arreglo que no requiere de dimensionamiento
puede ser representada por medio de una función previo. Esto permite resolver muchos problemas
discreta f(x,y) y por esto es posible hallar la computacionales, específicamente aquellos que
transformada de Fourier de la imagen F(u,v). involucren vectores y matrices, en un tiempo
mucho menor al requerido para escribir un
Justificación programa en un lenguaje escalar no interactivo tal
como C o Fortran.
Porque se hace el estudio
Diseño y Programación
Tradicionalmente, las contraseñas y las tarjetas
ID han sido usadas para moderar el acceso a lugares Para comenzar, lo primero que se realizó, es la
restringidos. Sin embargo, en estos sistemas la extracción de muestras de huellas dactilares de
seguridad puede ser fácilmente violada cuando se distintas personas, a estas huellas se les hizo
divulga la contraseña a un usuario no autorizado o pequeños cambios, los cuales fueros borrar parte de
cuando un impostor roba la tarjeta. la imagen o moverla, para observar hasta qué punto
el programa era capaz de reconocer cual es la huella
Para qué sirve el estudio original sin los cambios antes dichos.
Este estudio sirve para el análisis en la
identificación de criminales en los cuerpos
policiales, además en Antropología Biológica de
huellas halladas en objetos antiguos ya que ha
permitido conocer aspectos de la identidad de
personas que vivieron en épocas pasadas entre
otras.

Expone los beneficios y utilidad que se derivaran


de ella Fig. 4 Huella desplazada
El lector de huella digital es considerado como
uno de los mejores métodos de la biometría.
Ofrecen un alto grado de confiabilidad, seguridad y
rapidez en la identificación de personas, así como
en el control de asistencia de personal y pueden ser
integrados fácilmente a diferentes sistemas a un
costo muy bajo.

Fig. 5 Pequeños borrones en la imagen


Programación en Matlab
imshow(huella5,'Parent',handles.ax
function varargout = es1);
huellas1(varargin)
gui_Singleton = 1; end
gui_State = struct('gui_Name', handles.huella5=huella5;
mfilename, ... guidata(hObject,handles)
'gui_Singleton', gui_Singleton, %se transforma escala de grises
... gray4=rgb2gray(huella5);
%se obtiene un valor entero
'gui_OpeningFcn', absoluto
@huellas1_OpeningFcn, ... resul4=int16(abs(fft2(gray4)));
%imshow(gray4);
'gui_OutputFcn', plot(handles.axes2,resul4)
@huellas1_OutputFcn, ... % imagen almacenada en la base de
datos
'gui_LayoutFcn', [] , ... x=imread('1.jpg');
'gui_Callback', %imshow(x);
[]); gray=rgb2gray(x);
if nargin && ischar(varargin{1}) resul=int16(abs(fft2(gray)));
gui_State.gui_Callback = %imshow(gray);
str2func(varargin{1}); %imagen 2 almacenada
end x2=imread('2.jpg');
%imshow(x2);
if nargout gray2=rgb2gray(x2);
[varargout{1:nargout}] = resul2=int16(abs(fft2(gray2)));
gui_mainfcn(gui_State, %imshow(gray2);
varargin{:}); %imagen 3 almacenada
else x3=imread('3.jpg');
gui_mainfcn(gui_State, %imshow(x3);
varargin{:}); gray3=rgb2gray(x3);
end resul3=int16(abs(fft2(gray3)));
function %imshow(gray3);
huellas1_OpeningFcn(hObject, %imagen 4 almacenada
eventdata, handles, varargin) x4=imread('4.jpg');
handles.output = hObject; %imshow(x3);
gray5=rgb2gray(x4);
guidata(hObject, handles); resul5=int16(abs(fft2(gray5)));
cont=0;
cont2=0;
cont3=0;
function varargout = cont4=0;
huellas1_OutputFcn(hObject, for l=1:1:229
eventdata, handles) for a=1:218
varargout{1} = handles.output; %se compara cada pixel en la
cordenada de la matriz l,a
if resul(l,a)==resul4(l,a)
function cont=cont+1;
cargarimagen_Callback(hObject, end
eventdata, handles) end
end
for l=1:1:229
function for a=1:218
comparar_Callback(hObject, if resul2(l,a)==resul4(l,a)
eventdata, handles) cont2=cont2+1;
[FileName end
Path]=uigetfile({'*.jpg;*.bmp;*.pn end
g'},'Seleccionar Huella'); end
if isequal(FileName,0) for l=1:1:229
return for a=1:218
else if resul3(l,a)==resul4(l,a)
cont3=cont3+1;
huella5=imread(fullfile(Path,FileN end
ame)); end
end function
for l=1:1:229 comprobar_Callback(hObject,
for a=1:218 eventdata, handles)
if resul5(l,a)==resul4(l,a)
cont4=cont4+1; %close(huellas1);
end %huellas1
end
end cla(handles.axes1,'reset')
%se comparan los contadores para
saber cual es el mayor entre todos cla(handles.axes2,'reset')
y asi
%obtener la imagen resultante cla(handles.axes3,'reset')
if cont>cont2 && cont>cont3 &&
cont4<cont cla(handles.axes4,'reset')
%figure (1)
imshow(x,'Parent',handles.axes3); function salir_Callback(hObject,
juan eventdata, handles)
%imshow(gray4)
%figure (2) close
%imshow (gray)
end
if cont<cont2 && cont2>cont3 && Explicación de Funcionamiento
cont4<cont2
%figure (1) Para empezar, al iniciar el programa nos aparecerá
imshow(x2,'Parent',handles.axes3); la siguiente ventana en la cual tenemos los botones
shauna de cargar imagen, limpiar y salir.
%imshow(gray4)
%figure (2)
%imshow (gray2)
end
if cont3>cont2 && cont<cont3 &&
cont3>cont4
%figure (1)
imshow(x3,'Parent',handles.axes3);
pedro
%imshow(gray4)
%figure (2)
%imshow (gray3)
end
if cont4>cont2 && cont<cont4 &&
cont3<cont4
%figure (1)
imshow(x4,'Parent',handles.axes3);
sara
%imshow(gray4)
%figure (2)
%imshow (gray5)
end Fig. 6 Interfaz principal del usuario
%se visualiza los valores de los Seguidamente al presionar el botón de cargar
contadores imagen nos desplegara, la ventana de búsqueda de
cont Windows.
cont2
cont3
cont4
%grafica la respuesta de la
transformada de fourier
plot(handles.axes4,resul4);
%close(huellas1);

function
engresarimagen_Callback(hObject,
eventdata, handles)
Fig. 7 Interfaz de Windows
En la que procederemos al elegir la huella con la Y con esto el programa obtiene los resultados de
que se desea comprobar la identidad de la persona. nuestra comparación de transformadas rápidas de
Al cargar la imagen inmediatamente te software nos Fourier, y con esto el programa nos entrega la
mostrara la imagen original de la persona y su imagen con más coincidencias, lo cual es muy
respectiva transformada de Fourier en el plano lo viable ya que se realizó con todas las imágenes que
cual nos da lo siguiente. se encuentran en nuestra base de datos y todas ellas
se obtuvo una respuesta positiva, esto consolida que
la programación realizada es confiable hasta cierto
punto. Ya que al tener una imagen lo
suficientemente borrosa o eliminada parcialmente
genera que el programa no pueda darnos un
resultado apropiado.
Conclusiones

Una vez finalizado el proyecto, se da por concluido


que dicha biometría en la huella digital se seguirá
desarrollando en gran manera en un futuro, y según
lo que los investigadores y científicos dicen, tal vez
algún día será nuestra identificación oficial
alrededor de todo el mundo.

Se confirma que el uso de esta programación


sencilla, la cual se podría mejorar para obtener
mejores resultados es lo bastante fiable como para
empezar a usarla como una de las herramientas de
seguridad en un hogar, ya que este no es tan estricto
Fig. 8 Interfaz con la imagen cargada como el de una institución.

Y para terminar también nos entrega el nombre del Referencias


dueño de dicha huella grabado en la base de datos
con anterioridad. [1] D. Maio, D. Maltoni y C. Rizzi, “An
Efficient Approach to On-Line Fingerprint
Verification,” de VIII Int. Symp. on
Artificial Intelligence, México, 1995.
[2] Z. Singhal, P. Gupta y K. Garg, “Biometric
Recognition: Personal Identification
Technique”, IJCEM International Journal
of Computational Engineering &
Management, vol. 15, nº 3, pp. 6-10,
2012
[3] Hashiyada, Masaki. “DNA biometrics”,
Fig. 9 Interfaz de Windows Biometrics, Dr. Jucheng Yang (Ed.), ISBN:
Resultados y Discusión 978-953307-618-8, InTech, 2011.
[4] O. Ayurzana, B. Pumbuurei y H. Kim, “A
Como se puedo observar en la figura 8, tenemos dos Study of Hand-Geometry Recognition
graficas algo parecidas, lo que utiliza el programa System,” Strategic Technology (IFOST),
para decidir cuál es la que más se asemeja o iguala 2013 8th International Forum, vol. 2, pp.
a la imagen correcta de la huella de la persona a la 132-135, 2013.
que se está comparando. Gracias a los contadores [5] Virginia F., (2013),” Transformada de
de la programación que cuentan e igualan los Fourier de una Imagen y filtrado de una
puntos que se parecen. imagen en el dominio de la frecuencia.
Con la ayuda de la transformada rápida de Fourier, Funciones de Variable Compleja”
que es esta la que decide por medio de un algoritmo
de mayor coincidencia puntos.

También podría gustarte