You are on page 1of 92

INSTITUTO POLIT

´
ECNICO NACIONAL
Escuela Superior de Ingenier
´
ıa Mec
´
anica y El
´
ectrica
Ingenier
´
ıa en Comunicaciones y Electr
´
onica
Academia de Computaci´on
Autenticaci´on Biom´etrica de Personas
por medio del Reconocimiento del Iris
Tesis que presentan
Paulina Alejandra Baldo Romero
Josu´e Garc´ıa Molina
Para Obtener el T´ıtulo de
Ingeniero en Comunicaciones y Electr´onica
En la Especialidad de
Computaci´on
Director de la Tesis:
M. en C. Francisco L´opez Orozco.
Mexico D.F., Diciembre 2007
Resumen
Hoy en d´ıa, es de gran importancia el control de acceso a recursos o lugares,
restringiendo a quienes no superen dicho control. La autenticaci´on de personas busca
identificar usuarios de forma un´ıvoca. Se usan tres principios para autenticar usuarios:
prueba de que uno posee algo, como los certificados digitales, prueba de que uno sabe
algo, como las contrase˜ nas y prueba de que uno es algo. La autenticaci´on biom´etrica
estudia c´omo hacer posible la autenticaci´on bas´andose en el tercer principio.
Este trabajo presenta el desarrollo de una aplicaci´on de software libre (implemen-
tada en plataformas dre libre distribuci´on) y de dominio p´ ublico para la autenticaci´on
biom´etrica de personas basada en el reconocimiento de iris. Con ´el se verifica la uni-
cidad del patr´on de iris del ojo as´ı como su confiabilidad para usarse como t´ecnica
de autenticaci´on biom´etrica. A pesar de que existen hoy en d´ıa varios sistemas de
reconocimiento del iris de tipo comercial, la gran mayor´ıa usa los algoritmos paten-
tados. Para evaluar el rendimiento de los algoritmos implementados se hizo uso de
una base de datos de im´agenes tomadas del iris de alrededor de 108 personas (756
im´agenes). Se presentan los resultados m´as importantes que verifican el rendimiento
de la aplicaci´on.
Palabras clave: Autenticaci´on, biometr´ıa, reconocimiento de patrones,
patr´on de iris.
ii
Abstract
Nowadays, it is of great importance the control of access to resources or places,
restricting to those who they do not surpass this control. People authentication, looks
for identify users of univocal form. Three principles are used to authenticate users:
test that one has something, like digital certificates, test that one knows something,
like the passwords and test that one is something. The biometrics authentication
studies how to do the authentication possible being based on the third principle.
This work presents the development of a free software application for the bio-
metrics authentication of people based on iris pattern recognition. With this work,
it verifies the unicity of the iris pattern by using as biometrics authentication. Al-
though, there are been development several iris recognition systems, the majority of
them are based on patented algorithms. In order to evaluate the performance of the
implemented algorithms we used a database iris image which contains 756 iris images
from 108 subjects approximately. This work presents the most important results of
all tests done.
Keywords: Authentication, biometrics, pattern recognition, iris pattern.
iii
Agradecimientos
Queremos agradecer a nuestros padres y hermanos por todo el apoyo y la confianza
que depositaron en nosotros en cada uno de los momentos empleados para realizar
este trabajo, por ayudarnos y ense˜ narnos a corregir nuestros errores.
Gracias a los profesores que han contribuido a nuestro desarrollo personal y
acad´emico durante toda nuestra carrera y que nos apoyaron o nos dieron consejos
para hacer este proyecto. En especial, al M. en C. Francisco L´opez Orozco y al M. en
C. Roberto Galicia Galicia que fueron nuestros asesores.
Finalmente, agradecemos el apoyo recibido por parte de la Academia de Com-
putaci´on del Departamento de Ingenier´ıa en Comunicaciones y Electr´onica de la Es-
cuela Superior de Ingenier´ıa Mec´anica y El´ectrica Unidad Zacatenco del Instituto
Polit´ecnico Nacional, para la realizaci´on de este trabajo, en especial de la Presidenta
de la Academia Ing. Miriam Cu´ellar Mercado por la confianza depositada en nosotros.
Baldo Romero, P., Garc´ıa Molina, J.
´
Indice general
1. Introducci´on 7
1.1. Estado del Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2. Planteamiento del Problema . . . . . . . . . . . . . . . . . . . . . 8
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4. Metodolog´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5. Organizaci´on de la Tesis . . . . . . . . . . . . . . . . . . . . . . . 11
2. Autenticaci´on Biom´etrica 12
2.1. M´etodos de Autenticaci´on Biom´etrica . . . . . . . . . . . . . . 12
2.1.1. Caracter´ısticas de los Sistemas Biom´etricos . . . . . . . . . . . 12
2.2. Reconocimiento basado en el Iris . . . . . . . . . . . . . . . . . . 13
2.2.1. Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2. Comercializaci´on . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.3. Caracter´ısticas del Iris . . . . . . . . . . . . . . . . . . . . . . 14
2.3. Etapas del Reconocimiento . . . . . . . . . . . . . . . . . . . . . 16
2.3.1. Adquisici´on . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.2. Procesamiento Digital de Im´agenes . . . . . . . . . . . . . . . 17
2.3.3. Pre-procesamiento . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.4. Segmentaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.5. Transformada Hough . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.6. Extracci´on de caracter´ısticas y/o firma del iris . . . . . 28
2.4. M´etricas para evaluar la similaridad entre dos patrones . . . 28
2.4.1. Distancias de Hamming . . . . . . . . . . . . . . . . . . . 28
2.4.2. Distancia Euclideana Ponderada . . . . . . . . . . . . . . 29
2.4.3. Correlaci´on Normalizada . . . . . . . . . . . . . . . . . . 29
3. Implementaci´on del Mecanismo de Autenticaci´on 31
3.1. Adquisici´on de las im´agenes . . . . . . . . . . . . . . . . . . . . . 31
3.2. Segmentaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2
3.2.1. Operador de Canny . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2. Correcci´on gamma . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.3. Supresi´on de no m´aximos . . . . . . . . . . . . . . . . . . 42
3.2.4. Umbralizaci´on por medio de hist´eresis . . . . . . . . . . 45
3.2.5. Transformada de Hough . . . . . . . . . . . . . . . . . . . 48
3.3. Obtenci´on de la firma del iris . . . . . . . . . . . . . . . . . . . . 55
3.4. Reconocimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4. Desarrollo de la Interfaz Gr´afica 68
5. Evaluaci´on y An´alisis de Resultados 72
5.1. Evaluaci´on del mecanismo de autenticaci´on . . . . . . . . . . . . . . . 72
6. Conclusiones y Trabajo a Futuro 81
A. Anexo 83
A.1. Diagrama de clases para el mecanismo de autenticaci´on . . . . . . . 83
B. Bibliograf´ıa 87
3
´
Indice de figuras
1.1. Esquema general del m´odulo de autenticaci´on. . . . . . . . . . . . . . 9
2.1. Imagen ejemplo de la base de datos empleada CASIA, donde se se˜ nalan
las partes constitutivas de la misma. . . . . . . . . . . . . . . . . . . 17
2.2. Histogramas que ejemplifican el problema de contraste en una imagen. 19
2.3. Algoritmo para el estiramiento del histograma. . . . . . . . . . . . . . 20
2.4. Histograma de una imagen de Casia. . . . . . . . . . . . . . . . . . . 21
2.5. Histograma estirado de una imagen de Casia. . . . . . . . . . . . . . 21
2.6. Proceso de ecualizaci´on del histograma. . . . . . . . . . . . . . . . . . 22
2.7. Histograma de una imagen de Casia. . . . . . . . . . . . . . . . . . . 23
2.8. Histograma ecualizado de una imagen de Casia. . . . . . . . . . . . . 23
2.9. Proceso de convoluci´on. . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1. Diagrama de la clase implementada del algoritmo de Canny. . . . . . 33
3.2. Gr´afica que muestra el comportamiento del filtro gaussiano . . . . . . 35
3.3. Diagrama de la clase del Filtrado Gaussiano . . . . . . . . . . . . . . 36
3.4. Imagen de ejemplo de la base de datos CASIA V1.0. . . . . . . . . . 38
3.5. Imagen gradiente obtenida a partir de la figura 3.4. . . . . . . . . . . 38
3.6. Imagen orientaci´on obtenida a partir de la figura 3.4. . . . . . . . . . 39
3.7. Diagrama de la clase que calcula la matriz gradiente y la matriz ori-
entaci´on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.8. Imagen una vez suprimidos sus No m´aximos, proveniente de la imagen
3.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.9. Diagrama de la clase para el algoritmo de Supresi´on de No M´aximos 3.4. 43
3.10. Imagen una vez umbralada por hist´eresis proveniente de la imagen 3.4. 46
3.11. Esquema de la clase que implementa la Umbralizaci´on por Hist´eresis 3.4. 47
3.12. Imagen que muestra el resultado parcial de la transformaci´on Hough
en la b´ usqueda de la circunferencia iris/esclera. . . . . . . . . . . . . 49
3.13. Figura que ejemplifica el funcionamiento de la transformada de Hough. 50
3.14. a. Clase del mecanismo de la Transformada de Hough. . . . . . . . . 51
4
3.15. b. Clase del mecanismo de la Transformada de Hough. . . . . . . . . 52
3.16. Imagen que muestra la m´ascara utilizada para extraer la circunferencia
interior (iris/pupila) de la imagen de entrada original. . . . . . . . . . 55
3.17. Imagen que muestra la m´ascara utilizada para extraer la circunferencia
exterior (iris/esclera) de la imagen de entrada original. . . . . . . . . 56
3.18. Imagen que muestra la regi´on de iris extra´ıda. . . . . . . . . . . . . . 56
3.19. Clase que permite extraer la regi´on del iris. . . . . . . . . . . . . . . . 57
3.20. Imagen que muestra la firma del iris extra´ıda. . . . . . . . . . . . . . 60
3.21. Figura que ejemplifica el proceso de extracci´on del iris. . . . . . . . . 61
3.22. Figura que ejemplifica el proceso de extracci´on del iris. . . . . . . . . 61
3.23. Diagrama que muestra la clase que realiza la firma normalizada del iris. 62
3.24. Esquema de la clase que implementa las distancias de Hamming. . . . 65
4.1. Acceso al Mecanismo de Reconocimiento de Iris. . . . . . . . . . . . . 69
4.2. Mecanismo de Reconocimiento de Iris. . . . . . . . . . . . . . . . . . 69
4.3. Usuario no autenticado. . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4. Salidas de las etapas del mecanismo de reconocimiento. . . . . . . . . 71
5.1. Filtrado Gaussiano con m´ascara de 5x5 . . . . . . . . . . . . . . . . . 73
5.2. Imagen Umbralizada con t
alto
= 0.20 y t
bajo
= 0.19 que no proporciona
informaci´on suficiente. . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.3. Imagen Umbralizada con t
alto
= 0.13 y t
bajo
= 0.10 que proporciona
informaci´on suficiente. . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.4. Extracci´on del iris considerando las circunferencias conc´entricas. . . . 74
5.5. Extracci´on del iris considerando las circunferencias con centros y radios
independientes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.6. Nomeclatura utilizada como identificador para la firma de iris de cada
sujeto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.7. Gr´afica de firmas de iris de las mismas entidades. . . . . . . . . . . . 77
5.8. Tabla de aciertos y errores. . . . . . . . . . . . . . . . . . . . . . . . . 78
5.9. Grafica del sujeto 4 contra las dem´as entidades. . . . . . . . . . . . . 79
5.10. Grafica del sujeto 83 contra las dem´as entidades. . . . . . . . . . . . . 80
A.1. Diagrama de clases del mecanismo de autenticaci´on . . . . . . . . . . 86
5
´
Indice de tablas
5.1. Rango caracter´ıstico de cada vector obtenido de sus comparaciones
contra s´ı mismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6
Cap´ıtulo 1
Introducci´on
En la actualidad es bien conocida la importancia en los niveles de seguridad,
principalmente el control del acceso a lugares y a la protecci´on de informaci´on con la
finalidad de evitar el mal uso que pudiera d´arsele a los mismos. Este aspecto no ha
cambiado a trav´es de la historia, pues hemos visto en distintos acontecimientos que
la fuga de informaci´on en manos de las personas incorrectas y el permitir el acceso a
lugares a seres malintencionados han sido determinantes en episodios hist´oricos.
A trav´es de las historias de ciencia ficci´on, pudimos conocer ciertos mecanismos
que garantizaban la seguridad en los aspectos mencionados, y cre´ımos que s´olo eran
parte de una historia fant´astica alejada de nuestra realidad. Sin embargo, ahora est´an
m´as cerca de nuestra vida cotidiana de lo que alguna vez imaginamos gracias a las
Tecnolog´ıas Biom´etricas.
Debido a los avances recientes en seguridad y a los costos relativamente bajos de
las Tecnolog´ıas de Autenticaci´on Biom´etrica, en las cuales encontramos aplicaciones
como son el reconocimiento basado en cara, dedos, manos, iris y voz, las cuales se en-
cuentran actualmente disponibles comercialmente al representar soluciones atractivas
para restringir el acceso a informaci´on, computadoras y redes.
La autenticaci´on de personas, en t´erminos de seguridad, es el proceso por el cual un
usuario se identifica de forma un´ıvoca, para lograr el acceso a un recurso restringido.
Hoy en d´ıa, existen tres principios para autenticar usuarios: a) Prueba de que uno
posee algo, como el caso de los certificados digitales. b) Prueba de que uno sabe o
conoce algo, como el caso de contrase˜ nas, n´ umeros de identificaci´on personal, etc. y
c) Prueba de que uno es quien dice ser. La autenticaci´on biom´etrica estudia como
hacer posible la autenticaci´on bas´andose en el tercer principio (c).
7
1.1 Estado del Arte 8
1.1. Estado del Arte
El aumento en la utilizaci´on del reconocimiento basado en el iris para la auten-
ticaci´on de personas aplicado a la seguridad de recintos se ha dado por el creciente
desarrollo en la investigaci´on y mejoramiento de esta t´ecnica. La mayor parte de
los trabajos de investigaci´on en esta ´area se diferencian entre ellos por los distintos
algoritmos empleados en cada una de las etapas del m´odulo de reconocimiento del
iris.
Por ejemplo, en las referencias [3], [2], [6] se utiliza la imagen normalizada del iris
como entrada a una etapa de filtrado de Gabor, es decir, se realiza un filtrado de la
imagen en forma bidimensional,donde cada p´ıxel se representa por 2 bits. En [8] la
obtenci´on del c´odigo de la regi´on normalizada del iris se obtiene mediante un an´alisis
multidimensional empleando Wavelets Gabor.
En el presente trabajo se propone un mecanismo alterno que combina una serie
de algoritmos simples, como las distancias de Hamming ponderadas como elemento
discriminante en el proceso del reconocimiento del iris de personas diferentes.
1.2. Planteamiento del Problema
En las ´ ultimas d´ecadas ha surgido el tema de reconocer a las personas por medio
del iris. Aunque para un individuo com´ un no es nada sencillo, gracias al desarrollo
tecnol´ ogico se ha podido lograr. La particularidad que tiene este ´organo es que no
s´olo es ´ unico para cada individuo, sino que tiene una forma similar para todos los
individuos.
La problem´atica constante del robo de informaci´on o pertenencias personales,
inclusive de dep´ositos de cuentas bancarias; as´ı como tambi´en personas con pasaportes
falsos o que intentan ingresar a computadora que no les corresponden ha hecho que
surja la Autenticaci´on mediante la biometr´ıa la cual es infinitamente m´as confiable
que una firma, un nip (n´ umero de identificaci´on personal) o contrase˜ na.
1.3. Objetivos
Objetivo General
Proponer un mecanismo eficiente para la autenticaci´on biom´etrica de personas
basado en el reconocimiento del patr´on del iris.
1.4 Metodolog´ıa 9
Objetivos Particulares:
Desarrollar un m´odulo de software libre para la autenticaci´on biom´etrica de
personas por medio del reconocimiento del iris.
Hacer uso de t´ecnicas avanzadas de procesamiento digital de im´agenes con la
finalidad de proveer de cierta robustez a los algoritmos implementados.
Desarrollar una aplicaci´on completa escrita en el lenguaje de programaci´on
JAVA que haga uso del m´odulo de autenticaci´on biom´etrica propuesto, con
su correspondiente interfaz gr´afica de usuario.
En la figura 1.1 se presenta el diagrama a bloques general del m´odulo de autenticaci´on
que se pretende implementar.
Figura 1.1: Esquema general del m´odulo de autenticaci´on.
1.4. Metodolog´ıa
La realizaci´on de este proyecto propici´o el desarrollo de una metodolog´ıa o pro-
cedimiento a seguir para llegar a la culminaci´on exitosa del mismo.
1.4 Metodolog´ıa 10
En principio se realiz´o la recopilaci´on bibliogr´afica del tema en libros, revistas
y art´ıculos cient´ıficos; de esta manera, pudimos hacer el an´alisis del Estado del
Arte para elaborar una propuesta considerable que pueda aportar caracter´ısticas
importantes a la investigaci´on de este tema.
Posteriormente se realiz´o la b´ usqueda de la Base de Datos de las im´agenes del
iris que nos sirvieron para las pruebas de cada una de las etapas del proyecto.
Se utiliz´o la Base de Datos CASIA Iris Image Database ver. 1.0 proporcionada
por el Center for Biometrics and Security Research del Institute of Automation
Chinese Academy of Sciences en Beijing, China, aunque las primeras pruebas
se realizaron con la Base de Datos Irisbath proporcionada por el Grupo de
Procesamiento de Se˜ nales e Im´agenes (SIPG) del Departamento de Ingenier´ıa
El´ectrica y Electr´onica de la Universidad de Bath en Inglaterra.
Debido a que se propone un mecanismo eficaz que realice la autenticaci´on de
personas a trav´es de im´agenes tomadas de su iris utilizando t´ecnicas avanzadas
de procesamiento digital de im´agenes y estructuras de programaci´on, se ha de-
sarrollado un m´odulo de software libre que ha sido codificado en plataformas de
libre distribuci´on, como es el caso del Sistema Operativo Linux en su distribu-
ci´on Ubuntu 7.04, el lenguaje de programaci´on JAVA (J2SE v5.0), y el gestor de
bases de datos MySQL v5. Por esto, todas las implementaciones hechas pueden
ser descargadas, estudiadas, modificadas y mejoradas para ser incorporadas a
otro tipo de aplicaciones.
Sobre las im´agenes mencionadas se realizaron todas las pruebas necesarias para
los m´odulos de pre-procesamiento y segmentaci´on; para el pre-procesamiento
se probaron varias t´ecnicas como ecualizaci´on y el estiramiento del histograma;
por la parte de la segmentaci´on se utilizaron las m´ascaras de Sobel, de Prewitt,
el Laplaciano y el operador de Canny, as´ı como la Transformada de Hough para
los bordes circulares.
Se desarroll´o un mecanismo para la obtenci´on de la firma del iris, la cual servir´ıa
para la fase de la aplicaci´on que proponemos; mediante dicha aplicaci´on pre-
tendimos proponer un ejemplo, aunque es necesario mencionar que los m´odulos
que implementamos pueden servir para distintas aplicaciones.
1.5 Organizaci´on de la Tesis 11
1.5. Organizaci´on de la Tesis
El cap´ıtulo 2 presenta en forma detallada los principios te´oricos matem´aticos en
que se basan los sistemas de reconocimiento del patr´on del iris; adem´as se mues-
tra c´omo han sido desarrollados e implementados en forma general los sistemas de
autenticac´on biom´etrica.
En el cap´ıtulo 3, se explica de manera detallada el dise˜ no algor´ıtmico del m´odulo
de software implementado para llevar a cabo la autenticaci´on de personas mediante
el reconocimiento del patr´on del iris.
El cap´ıtulo 4, presenta una aplicaci´on ejemplo completa y su correspondiente
interfaz gr´afica de usuario, que muestra el uso del m´odulo de software desarrollado
previamente. Los resultados obtenidos con las pruebas a las que fueron sometidas las
implementaciones realizadas as´ı como el an´alisis de dichos resultados son presentados
en el cap´ıtulo 5.
Por ´ ultimo, el cap´ıtulo 6 menciona las conclusiones y las contribuciones logradas
con el desarrollo de este trabajo de tesis. Tambi´en da idea de posibles l´ıneas de
investigaci´on y estudio para trabajos futuros con el fin de mejorar la(s) soluci´on(es)
propuestas.
Cap´ıtulo 2
Autenticaci´on Biom´etrica
2.1. M´etodos de Autenticaci´on Biom´etrica
La autenticaci´on de personas por medios biom´etricos ha sido usada desde tiempos
antiguos. Los Babilonios usaban su huella digital como firma en documentos para
comprobar la veracidad de cierta informaci´on y a´ un en la actualidad se utiliza para
los mismos fines, aunque ha sido desplazado por r´ ubricas o firmas de tipo gr´aficas.
El t´ermino biometr´ıa, se refiere a la identificaci´on autom´atica, o a la verificaci´on
de la identidad, de individuos usando una caracter´ıstica fisiol´ogica, o del compor-
tamiento. Ejemplos de caracter´ısticas fisiol´ogicas incluyen im´agenes de la mano o de
los dedos. Las caracter´ısticas de conducta son rasgos que son aprendidos o adquiridos;
por ejemplo, la verificaci´on de la din´amica de la firma o la verificaci´on de la voz.
El reconocimiento biom´etrico puede ser usado para la identificaci´on, donde el
sistema identifica una persona de un grupo a trav´es de la b´ usqueda en una base de
datos. Un sistema tambi´en puede ser usado para la verificaci´on, en el cual, el sistema
biom´etrico autentifica la identidad que una persona dice tener. Este ´ ultimo caso es el
del presente trabajo.
2.1.1. Caracter´ısticas de los Sistemas Biom´etricos
Un sistema biom´etrico requiere que la caracter´ıstica biom´etrica en que est´a basada
satisfaga los siguientes requisitos:
Universalidad: Toda persona debe poseer dicha caracter´ıstica.
Unicidad: Dos personas se deben diferenciar seg´ un dicha caracter´ıstica biom´etri-
ca.
12
2.2 Reconocimiento basado en el Iris 13
Permanencia: La caracter´ıstica debe ser lo suficientemente invariable trat´andose
de la misma persona.
Cuantificaci´on: La caracter´ıstica debe ser mesurable.
En la pr´actica, un buen sistema biom´etrico debe adem´as considerar:
Funcionamiento: Efectividad y velocidad del sistema.
Aceptabilidad: Grado al que la gente est´a dispuesta a aceptar el uso de una
caracter´ıstica biom´etrica en su vida diaria; por esta raz´on debe resultar inofen-
sivo.
Robustez: Dificultad para enga˜ nar al sistema usando m´etodos fraudulentos.
Los sistemas biom´etricos est´an constituidos de m´odulos de hardware y software; el
hardware se utiliza principalmente para la captura o toma de la caracter´ıstica saliente
del ser humano, y el software para interpretar los datos que resultan del proceso
anterior y determinar la aceptabilidad o su rechazo. En el presente proyecto nos
centramos ´ unicamente en el desarrollo del m´odulo de software, ya que se utiliz´o una
base de datos de im´agenes de iris para probar el desarrollo.
El ´exito de un sistema biom´etrico se mide seg´ un diferentes criterios y cada tec-
nolog´ıa presenta ventajas y desventajas. Uno de los criterios m´as importantes para
evaluar el ´exito de una aplicaci´on se refiere a la exactitud del sistema. El nivel de la
exactitud en un sistema biom´etrico implica la tasa de falsa-aceptaci´on y la tasa de
falso-rechazo. La tasa de falsa-aceptaci´on es el porcentaje de usuarios que son auten-
ticados erron´eamente y los segundos representan, usuarios aut´enticos que han sido
rechazados (no reconocidos).
2.2. Reconocimiento basado en el Iris
2.2.1. Historia
La identificaci´on biom´etrica utilizando como rasgo f´ısico el iris surgi´o en 1936,
propuesta hecha por el oftalm´ologo Frank Burch. Sin embargo, hasta 1987, dos of-
talm´ologos estadounidenses, Leonard Flom y Aran Safir trabajaron para materializar
la idea de Frank Burch. Esto se logr´o a trav´es del contacto establecido con el profesor
de la Universidad de Harvard, John G. Daugman, para que desarrollara los algoritmos
necesarios para llevar a cabo este proyecto.
2.2 Reconocimiento basado en el Iris 14
Estos algoritmos fueron patentados en 1994; y se consideran la base de los sistemas
de autenticaci´on por medio de iris recientes. Con el desarrollo de estos algoritmos,
Daugman mostr´o resultados satisfactorios, comprobando con esto todos los puntos
fuertes planteados en su t´ecnica. Demostr´o que existe pr´acticamente una tasa nula de
Falsa Aceptaci´on (FAR) y muy bajas tasas de Falso Rechazo (FRR), as´ı como que este
mecanismo realiza la discriminaci´on entre gemelos y entre ojos de un mismo usuario;
puntos que constituyeron las principales dudas al inicio de sus investigaciones.
2.2.2. Comercializaci´on
El reconocimiento biom´etrico de personas constituye un campo espec´ıfico dentro
de las ´areas de procesamiento de se˜ nales y de reconocimiento de patrones, en el que se
han realizado enormes avances y aportaciones cient´ıficas y tecnol´ogicas en la ´ ultima
d´ecada. Esto ha conducido a que diversos organismos tecnol´ogicos internacionales,
entre los que destaca el NIST (Nacional Institute of Standards and Technology), hayan
considerado que las tecnolog´ıas de reconocimiento biom´etrico est´an suficientemente
maduras para ser aplicadas a soluciones comerciales.
Flom, Safir y Daugman, fundaron IriScan Corp., empresa que tendr´ıa en su poder
la patente y que se encargar´ıa de licenciarla a otras compa˜ n´ıas, tales como integradores
de sistemas y desarrolladores que quieran explotar productos de reconocimiento basa-
dos en iris. A partir de ah´ı, la evoluci´on ha venido marcada por los progresos de dos
empresas, la propia IriScan, as´ı como Sensar Corp., la cual lanz´o al mercado una
c´amara especial para adquirir las im´agenes de iris en los cajeros autom´aticos. Uno
de los sistemas de reconocimiento de iris comerciales m´as exitosos es distribuido por
Iridian Technologies el cual utiliza algoritmos patentados desarrollados por Daugman.
Por lo general, los fabricantes de los sistemas biom´etricos actuales mencionan en las
descripciones de sus productos las tasas de Falsa-Aceptaci´on y de Falso-Rechazo para
tratar de cuantificar el nivel de exactitud de los mismos.
2.2.3. Caracter´ısticas del Iris
Es necesario que se revisen algunos conceptos relacionados con la anatom´ıa del
ojo humano, ya que dicha constituci´on influye notablemente en la robustez de las
t´ecnicas que la utilizan como caracter´ıstica biom´etrica.
Estructura Interna del Ojo Humano
El iris comienza a formarse durante el tercer mes de gestaci´on, y su estructura
se completa en el octavo mes. Durante el primer a˜ no de vida un conjunto de c´elulas
2.2 Reconocimiento basado en el Iris 15
produce cambios normales del color del iris, pero la evidencia cl´ınica disponible indica
que el propio modelo del iris es estable a lo largo de toda la vida.
Es un ´organo interior protegido del ojo, detr´as de la c´ornea y el humor acuoso, es
visible externamente a una distancia c´omoda puesto que los medios de comunicaci´on
´opticos delante de ´el son transparentes. El iris est´a compuesto de tejido conjuntivo
el´astico. Siendo un ´organo interior del ojo, el iris es inmune a influencias medioambi-
entales.
En base a esto, se puede concluir que el iris es un tejido pigmentado de alta
movilidad y que se encuentra visible desde el exterior, debido a la transparencia de
la c´ornea, y gracias a la misma se encuentra perfectamente protegido de agentes
externos.
El iris se ve afectado por la pupila cuando ´esta reacciona a la luz. Las deforma-
ciones el´asticas que ocurren con la dilataci´on y contracci´on son r´apidamente corregidas
empleando algoritmos matem´aticos que se encargan de localizar los bordes interno y
externo del iris.
El movimiento pupilar, incluso en la ausencia de cambios en iluminaci´on y las
deformaciones el´asticas asociadas que se crean en la textura del iris, proporcionan
protecci´on contra el fraude con fotograf´ıas, ojos de vidrio, u otras simulaciones de un
iris.
Caracter´ısticas del iris para ser parte de un sistema biom´etrico
Una propiedad que el iris comparte con las huellas dactilares es la morfolog´ıa
aleatoria de su estructura, esto quiere decir que la textura del iris es distinta para
cada persona. El iris presenta ciertas caracter´ısticas desde su potencial aplicaci´on a
la identificaci´on biom´etrica, algunas de ellas son:
La facilidad de registrar su imagen a cierta distancia, sin la necesidad de con-
tacto f´ısico.
El alto nivel de aleatoriedad en su estructura y una densidad de informaci´on de
3.4 bits por mm(cuadrado) de tejido.
Estable y sin cambio durante el periodo de vida del sujeto.
Estabilidad frente a cambios originados por accidentes debido a la protecci´on
que le brinda la c´ornea.
El intento de falsificar el iris de una persona conllevar´ıa operaciones quir´ urgicas
que podr´ıan da˜ nar severamente la visi´on.
2.3 Etapas del Reconocimiento 16
Sin embargo, la caracter´ıstica principal es que, bas´andose en los estudios realizados
por Daugman, el iris contiene m´as informaci´on que permite identificar un´ıvocamente
a la persona que una huella dactilar.
El prop´osito del reconocimiento del iris es obtener, con alto grado de seguridad,
la identidad de una persona; empleando an´alisis matem´atico y de procesamiento de
im´agenes. Debido a que el iris es un ´organo interno protegido, con textura aleatoria y
estable, puede ser usado como una clave viva que no necesita ser recordada pero que
siempre estar´a ah´ı.
Para el caso de nuestro proyecto, el empleo del iris en un sistema biom´etrico
satisface las caracter´ısticas expuestas en el punto 2.1.1. En relaci´on a la universalidad,
el iris es un ´organo interno que se forma durante la gestaci´on. Sobre la unicidad, la
textura del iris es muy compleja y presenta gran cantidad de caracter´ısticas distintivas,
lo que hace que var´ıe enormemente entre las distintas personas.
Al ser un ´organo interno protegido es dif´ıcil que se da˜ ne, por lo tanto tambi´en
satisface la permanencia. Para conseguir la cuantificaci´on del iris se debe hacer uso
de las t´ecnicas de procesamiento de im´agenes, con la finalidad de extraer la informa-
ci´on. Tambi´en resulta un sistema funcional ya que es bastante efectivo, por ejemplo,
el m´etodo Daugman alcanza porcentajes de acierto de 100 %; y tambi´en es un sistema
r´apido. En relaci´on a la aceptabilidad del sistema, se trata de un sistema no invasi-
vo. Como ya se mencion´o, esta t´ecnica presenta tasas de Falso Rechazo muy bajas,
manteniendo al mismo tiempo unas tasas de Falsa Aceptaci´on pr´acticamente nulas.
Por el contrario, tiene un costo, tanto computacional como econ´omico, relativamente
elevado para algunas aplicaciones, como se explicar´a en los siguientes cap´ıtulos.
2.3. Etapas del Reconocimiento
2.3.1. Adquisici´on
En el cap´ıtulo uno se coment´o que las im´agenes que utilizamos para la realizaci´on
de este proyecto se obtuvieron de una bases de datos oficial. Un ejemplo de la misma
se muestra en la figura 2.1.
Una de las razones por las cuales optamos por la utilizaci´on de estas Bases de Datos
fue precisamente que aunque son relativamente pocas personas las que las forman,
consideramos que para probar la robustez de nuestro mecanismo de autenticaci´on es
importante que el m´etodo permita identificar que las im´agenes del ojo izquierdo y que
las im´ agenes del ojo derecho pertenecen a la misma persona, dada la caracter´ıstica de
que el iris del ojo izquierdo es diferente al del ojo derecho. De esta manera el sistema
2.3 Etapas del Reconocimiento 17
Figura 2.1: Imagen ejemplo de la base de datos empleada CASIA, donde se se˜ nalan
las partes constitutivas de la misma.
probar´a su robustez con la comprobaci´on de que independientemente del iris usado
para la identificaci´on, se proporcionan los resultados esperados.
2.3.2. Procesamiento Digital de Im´agenes
En esta secci´on se describen en forma breve algunos conceptos importantes en
materia de procesamiento digital de im´agenes ´ utiles para el desarrollo del presente
trabajo, ya que las im´agenes que se emplearon son de naturaleza totalmente digital.
El t´ermino imagen se refiere a una funci´on bidimensional de intensidad de luz
f(x, y), donde x y y denotan las coordenadas espaciales y el valor de f en cualquier
punto (x, y) es llamada intensidad o nivel de gris de la imagen en ese punto.
Una imagen digital es una imagen f(x, y) que ha sido discretizada en coordenadas
espaciales y en intensidad. Una imagen digital puede considerarse como una matriz
cuyos ´ındices del rengl´on y columna identifican un punto en la imagen y el correspon-
diente valor del elemento de la matriz identifica el nivel de intensidad de luz en ese
punto tal y como se muestra en la ecuaci´on 2.1. Los elementos de tal arreglo digital
son llamados elementos de imagen, elementos de pintura o p´ıxeles.
f(x, y) =





f(0, 0) f(0, 1) · · · f(0, N − 1)
f(1, 0) f(1, 1) · · · f(0, N − 1)
.
.
.
.
.
.
.
.
.
.
.
.
f(M − 1, 0) f(M − 1, 2) · · · f(M − 1, N − 1)





(2.1)
El nivel de brillo, o valor de cada p´ıxel, es cuantizado a c´odigos binarios enteros
positivos. El n´ umero de niveles de cuantizaci´on est´a determinado por la relaci´on 2.2.
2.3 Etapas del Reconocimiento 18
L = 2
B
(2.2)
donde B representa el n´ umero de bits necesarios para cada muestra. Esto es, con 6 bits
de cuantizaci´on en la intensidad se pueden representar 64 niveles de gris (2
6
= 64).
Para tener una imagen de buena calidad para el ojo humano es necesario tener como
m´ınimo 64 niveles de gris [18]. Para una apreciaci´on fina se usa una cuantizaci´on
est´andar a 8 bits, esto es, 256 niveles de gris. A una imagen cuantizada de esta
manera se le conoce como imagen en tonos de gris. Una imagen binaria es una imagen
monocrom´atica cuantizada a 1 bit por p´ıxel, esto es, dos niveles, blanco o negro.
Como ya se dijo, el valor de f, denotar´a el color, tono o nivel de gris de un
elemento de imagen (p´ıxel) en cierta coordenada (x, y). Un tono muy claro (el m´as
claro), denotar´a una cantidad de luz alta (tono blanco), mientras que un tono muy
obscuro (el menos claro), denotar´a una cantidad de luz baja (tono negro).
2.3.3. Pre-procesamiento
Por lo general, cuando se va a trabajar con im´agenes se debe realizar una etapa pre-
via llamada pre-procesamiento, ya que hay que considerar ciertos factores que podr´ıan
afectar directamente en el ´exito o el fracaso de nuestro sistema de reconocimiento.
Por otra parte, el tama˜ no del iris generalmente var´ıa en diferentes im´agenes debido
a la contracci´on o a la dilataci´on del iris causada por diferentes niveles de iluminaci´on;
tambi´en que se pueden tener diferentes distancias entre el ojo y la c´amara, rotaci´on
del ojo y otros factores. Debido a todo esto, es necesario aplicar un procesamiento a
las im´ agenes antes de utilizarlas en las siguientes etapas del proceso. A continuaci´on
se presentan algunos m´etodos aplicados al pre-procesamiento de im´agenes.
Estiramiento del Histograma
El m´etodo de Estiramiento de Histograma se aplica con la finalidad de mejorar
el contraste de las im´agenes, es decir, obtener im´agenes que no sean ni muy
oscuras ni muy claras, ya que el contraste representa la diferencia entre niveles
de gris claros y oscuros de una imagen. Al aplicar la funci´on de mejoramiento
de contraste sobre una imagen con poco contraste, la imagen resultante obtiene
una mejora en la apreciaci´on visual de la imagen, que se ve reflejada en una
mayor expansi´on de los valores a lo largo de todo el histograma. El histograma
de una imagen digital con niveles de gris en el rango [0, L − 1] es una funci´on
discreta P(r) = nr donde r representa un nivel de gris y nr representa el n´ umero
2.3 Etapas del Reconocimiento 19
Figura 2.2: Histogramas que ejemplifican el problema de contraste en una imagen.
de p´ıxeles que tienen ese valor de gris. Al proceso de extender los valores de los
p´ıxeles a lo largo del histograma se le conoce como estiramiento del histograma.
En la figura 2.2 se muestran las formas de contraste en una imagen, la cual nos
muestra el problema que pueden tener las im´agenes originales si no tienen un
buen contraste.
La expresi´on empleada en el mecanismo del estiramiento del histograma se
muestra en la expresi´on 2.3.
PixelSalida =
(L − 1)(PixelEntrada − NivelMin)
(NivelMax − NivelMin)
(2.3)
Donde: L − 1 es el nivel m´aximo permitido de un p´ıxel y determinado por el
n´ umero de bits por p´ıxel. L son los niveles de gris. PixelEntrada es el tono de
gris del p´ıxel a modificar. PixelSalida es el tono de gris del p´ıxel modificado.
NivelMax es el tono m´aximo existente en la imagen de entrada. NivelMin es
el tono m´ınimo existente en la imagen de entrada.
El algoritmo que empleamos para la implementaci´on se muestra en la figura 2.3.
Como se puede observar en la figura 2.3, el estiramiento del histograma consiste
en que a partir de la matriz de p´ıxeles que trae impl´ıcitamente la imagen se
obtiene su histograma, el cual es una representaci´on del n´ umero de p´ıxeles que
tienen un determinado valor de 0 a 255, donde 0 representa el negro y 255
representa el blanco. Este primer resultado nos puede arrojar por resultado una
imagen muy clara o una imagen muy oscura. Aqu´ı es donde se aplica el m´odulo
de estiramiento del histograma, que distribuye los p´ıxeles en todo el rango de 0
a 255 para obtener una imagen con un mejor contraste.
2.3 Etapas del Reconocimiento 20
Figura 2.3: Algoritmo para el estiramiento del histograma.
En las im´agenes 2.4 y 2.5 se muestra el histograma de una imagen de la base
de datos CASIA y el histograma estirado de la misma imagen con la finalidad
de ejemplificar este mecanismo.
Un aumento de contraste no revelar´a informaci´on nueva que no est´e contenida
en la imagen. El contraste solamente presentar´a la misma informaci´on existente
en los datos originales, pero de una forma m´as clara. Este mejoramiento de
contraste va a ayudar a nuestro mecanismo de autenticaci´on a realizar de una
manera m´as efectiva los m´odulos de segmentaci´on y de codificaci´on.
Ecualizaci´on.
Este es otro mecanismo de pre-procesamiento que al igual que el anterior va a
generar la mejora del contraste de las im´agenes obtenidas de la Base de Datos.
La ecualizaci´on permite adoptar el mismo n´ umero de muestras para cada valor
de p´ıxel, y esto se logra a trav´es de la obtenci´on del histograma de las im´agenes
a analizar. Consiste en encontrar una transformaci´on en la cual el histograma
tenga una representaci´on uniforme, es decir, con la ecualizaci´on trataremos de
igualar lo m´as posible el histograma de una imagen al histograma ideal.
Considerando funciones de tipo continuo y sea r la variable que representa los
niveles de gris de la imagen. Primeramente asumimos que nuestro histograma
ha sido normalizado en el intervalo [0, 1], donde r = 0 representa el negro y
r = 1 el blanco.
2.3 Etapas del Reconocimiento 21
Figura 2.4: Histograma de una imagen de Casia.
Figura 2.5: Histograma estirado de una imagen de Casia.
2.3 Etapas del Reconocimiento 22
Figura 2.6: Proceso de ecualizaci´on del histograma.
Es muy frecuente normalizar un histograma dividiendo cada uno de sus valores
por el n´ umero total de p´ıxeles en la imagen, denotado por n. De tal modo que el
histograma nos quedar´ıa P(rk) = nk/n, para k = 0, 1, ..., L−1. De esta manera,
P(rk) da una estimaci´on de la probabilidad de la ocurrencia del nivel de gris
rk. Hay que notar que la suma de todos los componentes de un histograma
normalizado es igual a 1.
Para cualquier r que satisfaga las condiciones anteriores, centramos nuestra
atenci´on en transformaciones de la forma expresada en la ecuaci´on ??.
s = T(r) (2.4)
Esto ocurre si 0 < r < 1 y asumimos que T(r) debe ser monot´onicamente
creciente, esto indica que la pendiente de la funci´on no puede ser negativa:
fracdsdr > 0. Para esto se debe suponer que r y s son continuas y que adem´as
r y s son variables aleatorias. P(r) y P(s) son funciones de densidad de proba-
bilidad.
El procedimiento de ecualizaci´on del histograma se muestra en la figura 2.6.
Un ejemplo del resultado de la aplicaci´on de la ecualizaci´on del histograma se
muestra en las figuras 2.7 y 2.8.
Filtrado Espacial.
Este m´etodo de pre-procesamiento de im´agenes se basa en la operaci´on de con-
voluci´on, utilizando una m´ascara que consiste en una matriz cuadrada de di-
mensiones m x n impares. De esta manera, se realiza la convoluci´on entre la
2.3 Etapas del Reconocimiento 23
Figura 2.7: Histograma de una imagen de Casia.
Figura 2.8: Histograma ecualizado de una imagen de Casia.
2.3 Etapas del Reconocimiento 24
m´ascara y matriz de p´ıxeles de la imagen que se est´a analizando. Con este pro-
ceso se genera una nueva matriz con caracter´ısticas mejoradas que ayudar´an
a mejorar los resultados de los m´odulos posteriores como la segmentaci´on y la
codificaci´on.
Es importante mencionar que dependiendo de los valores que se coloquen en
la m´ascara es el resultado que se va a obtener a partir de la convoluci´on, por
ejemplo, se pueden detectar bordes verticales, horizontales o diagonales u obte-
ner los valores promedio de la matriz, entre otros resultados. Esta m´ascara se
escoge a partir del resultado que deseamos obtener. El proceso de convoluci´on
se ejemplifica en la figura 2.9.
Figura 2.9: Proceso de convoluci´on.
2.3.4. Segmentaci´on
La segmentaci´on es una etapa imprescindible en diversos procesos de tratamiento
de im´ agenes y se puede decir que es el proceso que consiste en subdividir o parti-
cionar una imagen en sus regiones, componentes, partes u objetos. Tambi´en puede
ser definida como el encontrar, por medio de un algoritmo num´erico, sus regiones ho-
mog´eneas y sus bordes. La segmentaci´on autom´atica de im´agenes es, en general, una
de las tareas m´as dif´ıciles de realizar en el an´alisis de im´agenes debido a que tiene una
influencia determinante en el correcto desempe˜ no del mecanismo de reconocimiento.
[15].
Para llevar a cabo la segmentaci´on pueden usarse ´ındices visuales, que son partes
locales de un objeto, con significado y que pueden ser detectados.
´
Estos tienen signifi-
cado porque se encuentran asociados con alg´ un elemento interesante de la escena al
2.3 Etapas del Reconocimiento 25
momento de obtener la imagen del objeto y al ser detectables implica que debe existir
al menos un algoritmo para su localizaci´on, ya que de otra manera dichos ´ındices
visuales no ser´ıan ´ utiles.
Para nuestro proyecto, la segmentaci´on es la etapa donde se localiza la imagen del
iris. La etapa de segmentaci´on es muy importante ya que si el iris no es localizado
correctamente las etapas posteriores utilizar´an datos err´oneos, por lo tanto el c´odigo
generado contendr´a errores y el rendimiento del sistema ser´a muy bajo.
Existen diferentes mecanismos de segmentaci´on con distintos niveles de dificultad,
entre los que podemos mencionar:
Umbralizaci´on.
Detecci´on de Bordes.
Detecci´on de Regiones.
Clustering.
Segmentaci´on de Texturas.
Morfolog´ıa Matem´atica.
Redes Neuronales.
A continuaci´on se describen algunos de estos m´etodos:
Umbralizaci´on. La forma m´as sencilla de segmentar una imagen es en el ca-
so de que los distintos objetos se caractericen por niveles de gris diferentes.
Para ello se puede emplear el histograma que indica el n´ umero de puntos en la
imagen que posee un determinado nivel de gris. La umbralizaci´on a partir de
histogramas consiste en elegir el punto de nivel de gris que separa los valores
correspondientes al objeto y al fondo. En este m´etodo, a partir del l´obulo prin-
cipal, es decir, del valor m´aximo, se considera como umbral al primer punto en
el cual el gradiente se hace cero. Adem´as del c´alculo de histogramas, existen
otras t´ecnicas para calcular el umbral, tales como, el ajuste del l´obulo principal,
m´etodo de la m´axima distancia, entrop´ıa y el algoritmo Isodata.
Detecci´on de Bordes. Un borde en una imagen es un cambio local signi-
ficativo, normalmente asociado con una discontinuidad, ya sea en la imagen de
intensidad o la primera derivada de dicha imagen [15]. La detecci´on de bordes
2.3 Etapas del Reconocimiento 26
consiste b´asicamente en realizar la operaci´on de Convoluci´on Bidimensional en-
tre la matriz de p´ıxeles de la imagen original y ciertas m´ascaras previamente
establecidas y posteriormente se realiza el c´alculo del gradiente digital de la
imagen, as´ı como el ´angulo.
Para detectar los bordes, se calcula el m´odulo del gradiente obtenido en cada
p´ıxel de la imagen. Como resultado, se ver´a que los valores grandes corresponden
a p´ıxeles del borde, dado que un p´ıxel pertenece a un borde si se produce
un cambio brusco entre niveles de grises con sus vecinos. Este tipo de filtro
es el recomendado, a falta de informaci´on del tipo de ruido que afecta a una
imagen. Esta etapa de suavizado debe llevarse a cabo de manera gradual ya que
de realizarse de manera excesiva, se podr´ıan perder detalles importantes de la
imagen (y por consiguiente de la regi´on del iris) y de gran importancia en este
trabajo. Este suavizado se obtiene promediando los valores de intensidad de los
pixeles en el entorno de vecindad con una m´ascara de convoluci´on de media cero
y desviaci´on est´andar σ.
Sea f(x, y) una imagen corrompida con ruido y sea h(x, y) un filtro gaussiano
con media cero y desviaci´on est´andar σ. σ determina el tama˜ no del filtro y es
seleccionado con base en el nivel deseado de detalle (bordes finos o gruesos) y
en el nivel de ruido contenido en la imagen, calculado mediante la ecuaci´on 2.5:
h(x, y) =
1
2πσ
2
e

x
2
+y
2

2
(2.5)
• M´ascaras de Sobel. La convoluci´on se realizar´a con las siguientes m´ascaras
de 3 x 3 en la direcci´on x y en la direcci´on y, las cuales se muestran en las
matrices 2.6 y 2.7.
X =


−1 −2 −1
0 0 0
1 2 1


(2.6)
Y =


−1 0 1
−2 0 2
−1 0 1


(2.7)
• M´ascaras de Prewitt. Es el mismo caso anterior, s´olo que con las m´ascaras
2.8 y 2.9 .
2.3 Etapas del Reconocimiento 27
X =


−1 −1 −1
0 0 0
1 1 1


(2.8)
Y =


−1 0 1
−1 0 1
−1 0 1


(2.9)
• Laplaciano. En este caso, se utiliza la misma m´ascara para las compo-
nentes x y para las componentes y, mostrada en la matriz 2.10.
X, Y =


0 1 0
1 −4 1
0 1 0


(2.10)
Segmentaci´on de Texturas. Se puede decir que una caracter´ıstica de textura
de una imagen es un valor que cuantifica alguna caracter´ıstica de la variaci´on de
la variaci´on del nivel de gris del objeto a segmentar en base a una disposici´on
geom´etrica espec´ıfica. Para segmentar una imagen de textura buscamos una
caracter´ıstica que defina la textura, que tendr´a valores diferentes en cada una
de las texturas de la imagen. De esta forma, calculamos una imagen nueva, en
la que el valor en cada p´ıxel corresponde al valor del par´ametro en ese punto.
Existen dos tipos de m´etodos para el an´alisis de texturas:
• Estad´ısticos. Basados en el histograma a partir de la media, la desviaci´on
est´andar o la varianza de los niveles de gris. Tambi´en se utiliza la matriz de
co-ocurrencia, que mide la probabilidad de que dos p´ıxeles a una distancia
determinada tengan el mismo valor.
• Espectrales. Basados en el c´alculo de la Transformada de Fourier.
2.3.5. Transformada Hough
En el procesamiento de im´agenes es com´ un que existan formas regulares tales
como l´ıneas, c´ırculos o pol´ıgonos. Muchas veces se requiere distinguir tales figuras del
resto de la imagen, y para esto se requiere de algoritmos o herramientas poderosas
que permitan realizar esta tarea. una de estas herramientas (y la usada en nuestro
proyecto) es la Transformada de Hough.
En una circunferencia se tiene la funci´on general:
2.4 M´etricas para evaluar la similaridad entre dos patrones 28
(x − a)
2
+ (y − b)
2
− r
2
= 0 (2.11)
Como en la funci´on original hay tres variables independientes (a,b,r), el operador
requiere un par´ametro que indique el radio y con esto reduce la b´ usqueda de variables,
lo que deja la b´ usqueda de solamente dos variables, es decir, encontrar los puntos m´as
densos en un plano.
2.3.6. Extracci´on de caracter´ısticas y/o firma del iris
Una vez que el iris ha sido localizado y sus correspondientes plantillas han sido
generadas, en la etapa de segmentaci´on, se procede a la tercera etapa del proceso: la
codificaci´on. El objetivo de la etapa de codificaci´on es extraer la informaci´on biom´etri-
ca contenida en el patr´on de iris y generar un c´odigo asociado ´ unico. El paso clave del
sistema ser´a extraer las caracter´ısticas del iris y determinar una forma adecuada de
representaci´on. Interesa que dicho c´odigo contenga mucha informaci´on con una repre-
sentaci´on sencilla para que facilite las etapas posteriores. Para determinar la correcta
identificaci´on, se deber´a alcanzar un equilibrio entre la cantidad de informaci´on y el
tama˜ no de la representaci´on.
2.4. M´etricas para evaluar la similaridad entre dos
patrones
2.4.1. Distancias de Hamming
La distancia de Hamming da una medida de similaridad entre dos patrones de
bits. Usando la distancia de Hamming de dos patrones de bits, es posible tomar la
decisi´ on de que si dos patrones fueron generados a partir de iris distintos o del mismo.
Al comparar los patrones de bits X y Y , la distancia de Hamming, DH es definida
como la suma de bits no coincidentes (suma de la operaci´on OR exclusiva entre X y
Y ) sobre N, el n´ umero total de bits en el patr´on.
DH =
1
N
N

j=1
X
j
⊕ Y
j
(2.12)
Si dos patrones de bits son completamente independientes, como cuando se gene-
ran plantillas a partir de iris distintos, la distancia de Hamming entre dos patrones
debe ser igual a 0.5. Esto ocurre porque esta dependencia implica que los dos patrones
de iris sean totalmente aleatorios, por lo que la probabilidad de que alg´ un bit est´e en
2.4 M´etricas para evaluar la similaridad entre dos patrones 29
1 es de 0.5 y viceversa. Por lo tanto, la mitad de los bits coincidir´an y la otra mitad
no, dados dos patrones de bits. Si dos patrones de bits son derivados del mismo iris,
la distancia Hamming entre ellos debe ser cercana a 0.0, ya que estar´an altamente
correlacionados y los bits de cada patr´on deber´an coincidir. La distancia de Hamming
es la m´etrica de similaridad empleada en [2], y el c´alculo de dicha distancia es tomada
s´olo entre bits que son generados a partir de la regi´on real del iris.
2.4.2. Distancia Euclideana Ponderada
La Distancia Euclideana Ponderada (DEP) puede ser usada para comparar dos
plantillas, especialmente si las mismas est´an compuestas de valores enteros. Esta
m´etrica es empleada en [5] y se define por la ecuaci´on ??
DEP(k) =
N

i=1
(f
i
− f
(k)
i
)
2

i
k
)
2
(2.13)
donde f
i
es la i
esima
caracter´ıstica del iris desconocido y f
i
(k)
es la i
esima
caracter´ıstica
de la plantilla, k, y δ
i
k
es la desviaci´on est´andar de la i
esima
caracter´ıstica en la
plantilla k. La plantilla del iris desconocido se encuentra haciendo coincidir la plantilla
k, cuando DEP se minimiza en k.
2.4.3. Correlaci´on Normalizada
La correlaci´on normalizada entre dos patrones de iris se representa con la ecuaci´on
2.14.
CN =
n

i=1
m

i=1
(p
1
[i][j] − µ
1
)(p
2
[i][j] − µ
2
)
nmσ
1
σ
2
(2.14)
donde p
1
y p
2
son dos im´agenes de n x m pixeles. µ
1
y σ
1
son el valor promedio y
desviaci´on est´andar de p
1
y µ
1
y σ
2
el valor promedio y desviaci´on est´andar de p
2
. La
correlaci´on normalizada tiene ventaja sobre la correlaci´on convencional ya que toma
en cuenta las variaciones locales en la intensidad de la imagen, a diferencia de la otra.
2.4 M´etricas para evaluar la similaridad entre dos patrones 30
Hasta ahora hemos analizado los puntos m´as importantes que enmarcan a los
Sistemas de Reconocimiento basado en el Iris y principalmente se da una breve intro-
ducci´on a cada uno de los m´odulos de los cuales se conforma nuestro proyecto. En el
siguiente cap´ıtulo se har´a una descripci´on detallada del dise˜ no e implementaci´on de
la soluci´on a nuestro problema.
Cap´ıtulo 3
Implementaci´on del Mecanismo de
Autenticaci´on
En este cap´ıtulo se presentan cada una de las etapas implementadas en este tra-
bajo. Las etapas constitutivas son: adquisici´on de las im´agenes, segmentaci´on, codi-
ficaci´ on y reconocimiento. A continuaci´on se explican los algoritmos implementados
en el mecanismo de autenticaci´on.
3.1. Adquisici´on de las im´agenes
Para la realizaci´on de esta etapa se adoptaron dos bases de datos de im´agenes del
iris disponibles para la evaluaci´on y prueba de este tipo de desarrollos; una es la Base
de Datos Irisbath proporcionada por el Grupo de Procesamiento de Se˜ nales e Im´agenes
(SIPG) del Departamento de Ingenier´ıa El´ectrica y Electr´onica de la Universidad de
Bath en Inglaterra. Irisbath est´a constituida por las im´agenes de 25 personas, de cada
persona se tienen 20 im´agenes del ojo izquierdo y 20 del ojo derecho; es decir, en total
son 1000 im´agenes, las cuales se encuentran e formato PGM (Portable Gray Map),
que es un formato sencillo de im´agenes en escala de grises de tama˜ no 1280 x 960
p´ıxeles en escala de grises de 8 bits por p´ıxel (8 bpp).
La otra Base de Datos es CASIA V1.0, otorgada por el Centro de Investigaci´on
en Seguridad y Biometr´ıa de la Rep´ ublica Popular de China. Estas im´agenes se en-
cuentran en una escala de grises de 8 bpp, de tama˜ no 320 x 280 p´ıxeles en el formato
PGM. La base de datos contiene 756 im´agenes de iris de 108 personas distintas (7
im´agenes por persona), considerada de tama˜ no suficiente para la evaluaci´on de este
proyecto.
Las pruebas de los algoritmos se empezaron a realizar con la Base de Datos Iris-
bath; sin embargo, en la etapa de segmentaci´on tuvimos conflictos con la memoria
de la M´aquina Virtual de Java, ya que demandaba mucho poder de c´omputo por el
31
3.2 Segmentaci´on 32
n´ umero tan grande de operaciones con matrices de dimensiones de 1280 x 960. Este
problema nos orill´o a utilizar la Base de Datos CASIA, puesto que sus im´agenes ge-
neran matrices de 320 x 280 p´ıxeles y su manipulaci´on no requiere tanto poder de
c´omputo como las im´agenes que pertenecen a Irisbath.
3.2. Segmentaci´on
Para que el mecanismo de autenticaci´on pueda describir las caracter´ısticas del iris
que contienen informaci´on de la regi´on inter´es, las im´agenes que se utilizaron fueron
segmentadas.
En el caso del presente trabajo, los ´ındices visuales usados para lograr la seg-
mentaci´on fueron los bordes del iris, y para esto fue necesario implementar un algo-
ritmo de detecci´on de bordes.
3.2.1. Operador de Canny
El algoritmo que empleamos para la etapa de segmentaci´on del iris fue el operador
de Canny, que consiste en calcular la primera derivada del gaussiano. El algoritmo
de Canny se basa en el uso de la primera derivada, ya que ´esta toma el valor de
cero en todas las regiones donde no var´ıa la intensidad de la imagen, y tiene un valor
constante durante toda la transici´on de intensidad. Por tanto, un cambio de intensidad
se manifiesta como un cambio brusco en la primera derivada, es decir, en los picos de
la primera derivada en la direcci´on del gradiente. Esta ´ ultima, es una caracter´ıstica
que es utilizada para detectar un borde, y en la que se basa el algoritmo de Canny
mostrado a continuaci´on.
Algoritmo 1 Operador de Canny
Entrada: Imagen de entrada original.
1: Aplicaci´on de un filtro gaussiano a la imagen de entrada f(x, y).
2: C´alculo de la magnitud del gradiente G[s(x, y)] y de la orientaci´on θ(s(x, y)) de
la imagen filtrada.
3: Ajuste gamma a la imagen gradiente G[s(x, y)].
4: Supresi´on de no m´aximos a la salida del paso anterior.
5: Umbralizaci´on por hist´eresis para obtener la imagen con los bordes resaltados.
El algoritmo de Canny fue implementado en base al diagrama de clases presentado
en la figura 3.1.
3.2 Segmentaci´on 33
Figura 3.1: Diagrama de la clase implementada del algoritmo de Canny.
A continuaci´on se muestra el fragmento del c´odigo fuente que implementa la clase
canny; esta clase sirve para hacer el llamado a cada una de las partes que conforman
el algoritmo de Canny: filtrado, c´alculo del gradiente y la orientaci´on, supresi´on de
no m´ aximos y umbralizaci´on por hist´eresis. Esto se hace mediante la definici´on de
los objetos de las clases de estas etapas, lo cual llama a sus respectivos constructores
para realizar todo el mecanismo.
public class Canny
{
public Canny() {
}
public static void main(String args[])
{
//FILTRADO DE LA IMAGEN
filtroGauss filtro=new filtroGauss(im,row,coll);
//CALCULO DEL GRADIENTE
GradyOri mA=new GradyOri(filtro.mtx,row,coll);
GradyOri mB=new GradyOri(filtro.mtx,row,coll);
GradyOri mC=new GradyOri(filtro.mtx,row,coll);
GradyOri mD=new GradyOri(filtro.mtx,row,coll);
//SUPRESION DE NO MAXIMOS
3.2 Segmentaci´on 34
SupNoMax Supresion=new SupNoMax(GAMA,ANG,row,coll);
//UMBRALADO HISTERESIS
new umbraladohisteresis(Supresion.MatrizSup,row,coll,infUmbral,supUmbral);
//TRANSFORMADA DE JIU PARA EL IRIS
TransfHough.fjiu(UmbHisteresis.imUmbralada,radiomax,radiomin,row,coll);
//OBTENER FIRMA DEL IRIS
Firma firma=new Firma(xPUPILA,yPUPILA,a,rPUPILA,rIRIS);
//ESCRITURA DE LOS ARCHIVOS GENRADOS
p2.write(”Gradiente”+a);
p3.write(.
O
rientacion”+a);
p4.write(”GAMA”+a);
p5.write(”NOmax”+a);
p6.write(
¨
UmbralHisteresis”+a);
}
}
Filtrado gaussiano
El filtro gaussiano fue aplicado a las im´agenes de entrada, con el fin de reducir la
influencia de ruido en las mismas y obtener sus versiones suavizadas. La m´ascara de
convoluci´on 3.1 empleada para la aplicaci´on del filtro se eligi´o con un valor de σ = 2
ya que este factor proporciona el grado de alisamiento de la imagen, y en este caso
verificamos que este factor fuera el adecuado de tal manera que suprimiera el ruido
suficiente sin eliminar los detalles del iris gracias a que los resultados que obtuvimos
con ella fueron los mejores para los tratamientos posteriores de las im´agenes. Los
filtros que se probaron se diferenciaban en el tama˜ no de la m´ascara (3 x 3, 5 x 5, 7 x
7 y 9 x 9), as´ı como en las magnitudes de los elementos (diferentes valores de σ.
Para este caso se aplic´o el filtrado gaussiano debido a que no conocemos la natu-
raleza del ruido que contamina a las im´agenes de Casia, y aunque se sabe que todas
fueron adquiridas bajo las mismas condiciones, no se sabe el grado de precisi´on al
tomarlas o las caracter´ısticas de la c´amara empleada; por lo que es necesario emplear
un filtro que elimine este tipo de ruido sin reducir la informaci´on que se necesita para
nuestro proceso.
En la figura 3.2 se muestra el comportamiento de un filtro gaussiano representado
por la ecuaci´on 2.5.
3.2 Segmentaci´on 35
Figura 3.2: Gr´afica que muestra el comportamiento del filtro gaussiano
h =






0,0232 0,0338 0,0338 0,0338 0,0232
0,0338 0,0492 0,0558 0,0492 0,0338
0,0338 0,0558 0,0662 0,0558 0,0338
0,0338 0,0492 0,0558 0,0492 0,0338
0,0232 0,0338 0,0338 0,0338 0,0232






(3.1)
El mecanismo de filtrado se muestra a continuaci´on:
Algoritmo 2 Filtrado gaussiano
Entrada: Imagen de entrada original f(x, y).
1: Convolucionar f(x, y) con la m´ascara h(x, y) dada en la ecuaci´on 3.1:
s(x, y) = f(x, y) ∗ h(x, y) (3.2)
Salida: La salida es la imagen suavizada s(x, y).
En la figura 3.3 se muestra el diagrama de la clase que implement´o el mecanismo
del filtrado gaussiano.
Este algoritmo utiliza la t´ecnica de filtrado conocida como filtrado espacial en la
que se traslada una matriz rectangular de dos dimensiones (tambi´en llamada ventana,
kernel, m´ascara o n´ ucleo) que contiene ”pesos.
o
ponderaciones sobre la imagen en ca-
da localizaci´on de p´ıxel. Se eval´ ua el p´ıxel central de la ventana de acuerdo con los
p´ıxeles de alrededor y sus valores de ponderaci´on. Cuando un nuevo valor es as´ı cal-
culado, se desplaza la ventana sobre el siguiente p´ıxel, realizando la misma operaci´on.
Este proceso de evaluar la vecindad ponderada del p´ıxel se denomina ”convoluci´on
bidimensional”, y a la matriz de filtro se le conoce como ”kernel de convoluci´on”.
3.2 Segmentaci´on 36
Figura 3.3: Diagrama de la clase del Filtrado Gaussiano
Este mecanismo se ejemplifica en la figura 2.9 y el c´odigo que implementamos para
esta etapa se muestra a continuaci´on.
public filtroGauss(short Inf[][],int fil,int colum)
{
//Gaussiano de 5x5
G[0][0]=0.0232;G[0][1]=0.0338;G[0][2]=0.0338;G[0][3]=0.0338;G[0][4]= 0.0232;
G[1][0]=0.0338;G[1][1]=0.0492;G[1][2]=0.0558;G[1][3]=0.0492;G[1][4]= 0.0338;
G[2][0]=0.0338;G[2][1]=0.0558;G[2][2]=0.0632;G[2][3]=0.0558;G[2][4]= 0.0338;
G[3][0]=0.0338;G[3][1]=0.0492;G[3][2]=0.0558;G[3][3]=0.0492;G[3][4]= 0.0338;
G[4][0]=0.0232;G[4][1]=0.0338;G[4][2]=0.0338;G[4][3]=0.0338;G[4][4]= 0.0232;
for(int ff=0;ff<filas;ff++)
{
for(int cc=0;cc<col;cc++)
{
sumX=0;
if(ff==0 ff==filas-1 ff==1 ff==filas-2)
sumX=0;
3.2 Segmentaci´on 37
else if (cc==0 cc==filas-1 cc==1 cc==col-2)
sumX=0;
//convolucion
else{
for(int I = −2; I <= 2; I++)
{
for(int J = −2; J <= 2; J++)
{
sumX=(sumX +(double)DATOS[ff+I][cc+J] * G[I+2][J+2]);
}
}
}
Ip[ff][cc]=(sumX);
}
}
}
C´alculo del gradiente y orientaci´on
Despu´es del suavizado de la imagen se deben obtener los bordes de la im´agen y
para lograrlo es necesario realizar operaciones puntuales sobre los p´ıxeles, es decir,
operando para cada p´ıxel de la imagen s(i, j), las cuales ser´an el c´alculo del gradiente
y el c´alculo de la matriz orientaci´on.
Algoritmo 3 C´alculo del gradiente y orientaci´on
Entrada: Imagen suavizada s(x, y).
1: C´alculo de las componentes del gradiente G
x
y G
y
en las direcciones x y y res-
pectivamente.
2: C´alculo de la magnitud de los bordes utilizando la ecuaci´on:
G(x, y) =

G
2
x
+ G
2
y
(3.3)
3: Estimaci´on de la orientaci´on de la normal de los bordes, con la ecuaci´on:
θ(x, y) = arctan
G
y
G
x
(3.4)
El resultado del proceso anterior, son dos im´agenes, una formada con la magnitud
de los bordes G(x, y), y otra con las orientaciones de las normales al borde θ(x, y). Al
3.2 Segmentaci´on 38
utilizar la imagen de la figura 3.4 se obtienen las correspondientes im´agenes gradiente
y de orientaci´on, que son presentadas en las figuras 3.5 y 3.6 respectivamente.
Figura 3.4: Imagen de ejemplo de la base de datos CASIA V1.0.
Figura 3.5: Imagen gradiente obtenida a partir de la figura 3.4.
En la figura 3.7 se observa el esquema de la clase en la que se realizan las opera-
ciones del gradiente y la orientaci´on sobre cada p´ıxel de la imagen.
El c´odigo en Java que realiza estas operaciones sobre cada p´ıxel de la imagen
simplemente se encarga de hacer los c´alculos que est´an expresados en las ecuaciones
3.3 y 3.4 aparece a continuaci´on.
3.2 Segmentaci´on 39
Figura 3.6: Imagen orientaci´on obtenida a partir de la figura 3.4.
Figura 3.7: Diagrama de la clase que calcula la matriz gradiente y la matriz ori-
entaci´on.
3.4.
3.2 Segmentaci´on 40
//calcular X Y PARA GRADIENTE
for(int i=0;i<row;i++)
{
for(int j=0;j<coll;j++)
{
X[i][j]=mA.MatRes[i][j]+(double)((mC.MatRes[i][j]+mD.MatRes[i][j])/2.0);
Y[i][j]=mB.MatRes[i][j]+(double)((mC.MatRes[i][j]-mD.MatRes[i][j])/2.0);
}
} //OBTENCION DEL GRADIENTE[][] Y LA MATRIZ DE ORIENTACION[][]
for(int i=0;i<row;i++)
{
for(int j=0;j<coll;j++)
{
Grad[i][j]=Math.sqrt(Math.pow(X[i][j],2)+Math.pow(Y[i][j],2));
ANG[i][j]=Math.atan2(-1*(Y[i][j]),X[i][j]);
if(ANG[i][j]¡0)
{
ANG[i][j]=ANG[i][j]+Math.PI;
}
ANG[i][j]=(ANG[i][j]*180)/Math.PI;
}
}
}
3.2.2. Correcci´on gamma
Mediante la correcci´on gamma es posible ajustar el brillo de una imagen. Este
ajuste se aplic´o a la imagen gradiente, para resaltar los bordes detectados. La expre-
si´on matem´atica que se us´o para realizar esta correcci´on en las im´agenes, se presenta
en la ecuaci´on 3.5.
G
a
(x, y) = G(x, y)
1
γ
(3.5)
donde γ es un valor contenido en el intervalo [0, 2].
Los valores m´as bajos de γ producen una imagen m´as oscura, mientras que los
m´as altos producen una imagen m´as clara. Un valor de 1.0 se traduce en una transfor-
3.2 Segmentaci´on 41
maci´on nula, un valor menor a 1.0 crea curvas exponenciales que oscurecen la imagen,
mientras que valores de γ mayores a 1.0 producen curvas logar´ıtmicas que aclaran la
imagen.
Algoritmo 4 Correcci´on gamma
Entrada: Matriz gradiente.
1: Obtener el valor m´ınimo y m´aximo de los p´ıxeles de la imagen gradiente G(x, y),
es decir, min[G(x, y)] y max[G(x, y)].
2: Con γ = 1,7 (valor ´optimo para nuestra aplicaci´on) re-escalar la imagen gradiente
al rango [0, 1] con la siguiente ecuaci´on:
G(x, y) = (G(x, y) − min[G(x, y)])/max[G(x, y)] (3.6)
3: Con la ecuaci´on 3.5, realizar el ajuste a la matriz gradiente de la siguiente forma:
G
a
(x, y) = G(x, y)
1
γ
(3.7)
Para implementar este algoritmo, se hizo el ajuste gamma siguiendo las ecuaciones
3.6 y 3.7 y no se implement´o una clase que realizara estas operaciones; simplemente
se anex´o el siguiente c´odigo despu´es del c´alculo de la matriz gradiente y de la matriz
orientaci´on.
//CALCULO DE G=(G-Gmin)/Gmax;
for(int i=0;i<row;i++)
{
for(int j=0;j<coll;j++)
{
Grad[i][j]=((Grad[i][j]-min)/max);
}
}
//CALCULO DE GAMA
for(int i=0;i<row;i++)
{
for(int j=0;j<coll;j++)
{
GAMA[i][j]=(Math.pow(Grad[i][j],1/g));
}
}
3.2 Segmentaci´on 42
3.2.3. Supresi´on de no m´aximos
El objetivo de esta etapa es obtener bordes de 1 p´ıxel de grosor, as´ı como remover
bordes espurios, al considerar ´ unicamente p´ıxeles cuya magnitud es m´axima en bordes
gruesos y descartar aquellos, cuyas magnitudes no alcancen dicho m´aximo. La supre-
si´on de no m´aximos remueve los p´ıxeles no m´aximos, preservando la conectividad de
los contornos ya detectados e indica que un m´aximo local,es m´as grande que todos
sus vecinos (excluy´endose a s´ı mismo).
Algoritmo 5 Supresi´on de no m´aximos
Entrada: Matriz imagen G
a
(x, y).
1: Encontrar la direcci´on
ˆ
d
k
que mejor aproxime la direcci´on de la normal al borde
θ(x, y). Para esto se consideran cuatro direcciones
ˆ
d
1
,
ˆ
d
2
,
ˆ
d
3
y
ˆ
d
4
, correspondientes
a las ´angulos 45, 135 y 225 y 315 grados sexagesimales.
2: Si G
a
(x, y) es m´as peque˜ no que al menos uno de sus dos vecinos a lo largo de la
direcci´on
ˆ
d
k
, asignar N(x, y) = 0 (supresi´on); en caso contrario, asignar N(i, j) =
G
a
(x, y).
Figura 3.8: Imagen una vez suprimidos sus No m´aximos, proveniente de la imagen
3.4.
Para implementar esta etapa se elabor´o una clase que implementaba exactamente
el algoritmo de supresi´on de no m´aximos, la cual se muestra en la figura 3.9.
3.2 Segmentaci´on 43
Figura 3.9: Diagrama de la clase para el algoritmo de Supresi´on de No M´aximos 3.4.
3.2 Segmentaci´on 44
Y a continuaci´on se presenta una secci´on de c´odigo de la clase de la figura 3.9.
En este programa se debe encontrar para cada p´ıxel de la matriz imagenentrada[][]
la direcci´on que mejor aproxime la direcci´on de la normal al borde, es decir, de la
matriz orientaci´on representada por la variable double imagenorientacion[][]. A partir
de ah´ı se analizan cada uno de ls 8 vecinos del p´ıxel en cuesti´on y si este p´ıxel es m´as
peque˜ no que alguno de sus vecinos se realiza la supresi´on del borde y se elimina el
valor de este p´ıxel en la matriz de salida; en caso contrario el valor del p´ıxel permanece
intacto durante el proceso en cuanto al valor y a la posici´on.
public SupNoMax(double imagenentrada[][],double imagenorientacion[][],int fila,int columna)
{ for (int i=radioentero+10;i<fila-10;i++)
{
for (int j=radioentero+10;j<columna-10;j++)
{
//Empieza Interpolacion Bilineal
promedioArriba= ti+horizontalfraccion[Orient]*(td-ti);
promedioAbajo = li+horizontalfraccion[Orient]*(ld-li);
Fvalor=promedioArriba+verticalfraccion[Orient]*(promedioAbajo-promedioArriba);
if (imagenentrada[i][j]¿Fvalor)
// Ha pasado un primer umbral
{
x=j-DespX[Orient];
y=i+DespY[Orient];
//Obtenemos la localizacion en coordenadas enteras de los pixeles alrededor a x,y.
fx=piso(x);
cx=techo(x);
fy=piso(y);
cy=techo(y);
ti=imagenentrada[fy][fx];
td=imagenentrada[fy][cx];
li=imagenentrada[cy][fx];
ld=imagenentrada[cy][cx];
// usamos la interpolacion bilineal
promedioArriba=ti+horizontalfraccion[Orient]*(td-ti);
promedioAbajo=li+horizontalfraccion[Orient]*(ld-li);
Fvalor2=promedioArriba+verticalfraccion[Orient]*(promedioAbajo-promedioArriba);
if (imagenentrada[i][j]>Fvalor2)
3.2 Segmentaci´on 45
// Si pasa la segunda condici´on, el pixel
// X en cuesti´on pasa a la salida
{
MatrizSup[i][j]=imagenentrada[i][j];
}
}
}
}
}
3.2.4. Umbralizaci´on por medio de hist´eresis
La salida de la supresi´on de no m´aximos contiene cierto ruido en los m´aximos
locales. Adem´as el contraste de la imagen de salida puede ser diferente en distintos
puntos del contorno. Debido a esto, es necesaria una etapa de umbralizaci´on de la
supresi´on de no m´aximos, para remover los bordes d´ebiles, pero que se conserve la
conectividad de los contornos.
El objetivo principal de esta umbralizaci´on es descartar los m´aximos locales provo-
cados por ruido, sin eliminar los bordes d´ebiles. Para esto se utilizan dos umbrales
t
bajo
y t
alto
, donde t
bajo
≤ t
alto
. Son tomadas en cuenta la imagen generada de la
supresi´on de no m´aximos, la imagen orientaci´on de los puntos de borde y los valores
de umbral. Para cada punto de la imagen se debe localizar el siguiente punto de borde
no explorado que sea mayor al segundo umbral. A partir de dicho punto se siguen
las cadenas de m´aximos locales conectados en ambas direcciones perpendiculares a la
normal del borde, siempre que sean mayores al primer umbral. As´ı se marcan todos
los puntos explorados y se almacena la lista de todos los puntos en el contorno conec-
tado. Es as´ı como en este paso se logran eliminar las uniones en forma de Y, de los
segmentos que confluyan en un punto.
Los imagen resultante de la umbralizaci´on por hist´eresis se muestra en la figura
3.10, y el esquema de la clase que implement´o este algoritmo aparece en la figura 3.11.
El programa que describe el procedimiento del algoritmo de umbralizaci´on se
muestra a continuaci´on y utiliza dos valores para umbralizar la imagen (t
alto
y t
bajo
)
y dejarla ´ unicamente con dos valores (1 bpp); esto, como ya se dijo, ayuda a producir
im´agenes que no tengan bordes ruidosos y genere errores en las etapas posteriores.
Este programa analiza cada p´ıxel de la matriz de salida de la supresi´on de no m´aximos
y verifica, si es mayor a t
a
lto entonces le asigna una etiqueta (en este caso la etiqueta
3.2 Segmentaci´on 46
Algoritmo 6 Umbralizaci´on por hist´eresis
Entrada: Imagen obtenida en la supresi´on de no m´aximos.
1: Recorrer la matriz imagen de izquierda a derecha y de arriba hacia abajo y seguir
las siguientes condiciones:
2: if N(x, y) > t
alto
then
3: Asignarle una etiqueta a N(x, y) seg´ un convenga.
4: end if
5: Recorrer los pixeles conectados a ´este, con vecindad ocho, mientras se cumpla:
6: if N(x, y) > t
bajo

N(x, y) = 255 then
7: Asignarle la etiqueta elegida a los pixeles vecinos que cumplen la condici´on.
8: end if
Figura 3.10: Imagen una vez umbralada por hist´eresis proveniente de la imagen 3.4.
fue −1), posteriormente se analizan sus 8 vecinos y si son mayores al umbral t
b
ajo
entonces a esos p´ıxeles tambi´en se les asigna la etiqueta. Despue´es de analizar varias
im´agenes se estableci´o un valor promedio para los umbrales de t
alto
= 0,13 y t
bajo
=
0,10.
3.2 Segmentaci´on 47
Figura 3.11: Esquema de la clase que implementa la Umbralizaci´on por Hist´eresis 3.4.
for(int i=0;i<row;i++) //FILAS
{
for(int j=0;j<col;j++) //COLUMNAS
{
if((Entrada[i][j])>(supUmbral))
{
imUmbralada[i][j]=-1;
for(int in=i-1;in<=i+1;in++)
{
for(int ic=j-1;ic<=j+1;ic++)
{
if((Entrada[in][ic]¿infUmbral)&(Entrada[in][ic]! = 255))
{
imUmbralada[in][ic]=255;
}
}
}
3.2 Segmentaci´on 48
}
}
}
3.2.5. Transformada de Hough
El paso siguiente al del resaltado de bordes por el m´etodo de Canny consiste en
la detecci´on de circunferencias en la imagen del ojo (la formada por el iris/pupila e
iris/esclera); para esto se consider´o que el iris y la pupila son pr´acticamente circunfe-
rencias perfectas; de esta manera se utiliz´o un mecanismo que detecta circunferencias.
En este trabajo, nos basamos en la Transformada de Hough.
Primero se realiza la extracci´on de los bordes a una imagen (mediante los algorit-
mos previamente mencionados). Sobre estos bordes se aplica la transformada circular
de Hough, lo que genera una imagen con circunferencias de cierto radio elegido, una
circunferencia por cada uno de los puntos de los bordes. Las intersecciones de estas
circunferencias determinan los puntos que podr´ıan corresponder al centro del circun-
ferencia buscada.
En el caso de este trabajo, fueron 2 circunferencias (que se suponen conc´entricas)
las que se buscaban. Adem´as, otra condici´on inicial fue, dado que en general todas las
im´agenes del iris fueron tomadas en las mismas condiciones (o al menos en condiciones
muy parecidas), ayudar al algoritmo, proporcion´andole un rango (de un valor m´ınimo
a uno m´aximo) acotado para hallar el radio y reducir el espacio de b´ usqueda del
mismo, esto es, se le proporcion´o un valor m´ınimo y un valor m´aximo para el radio y
el algoritmo halla el valor ´optimo (el m´as cercano) al radio real del iris y de la pupila.
Para el caso de la base de datos CASIA, fueron fijados los valores m´ınimos y m´aximos
de los radios a trav´es de un an´alisis en todas las im´agenes de la base de datos y
obteniendo la imagen que tuviera los radios m´aximos y m´ınimos para el iris y la
pupila. Posteriormente se determin´o el 10 % de estos valores y el resultado se presenta
a continuaci´on:
Pupila: radio
min
= 25 y radio
max
= 80
Iris: radio
min
= 75 y radio
max
= 155
Debido a que la circunferencia iris/pupila est´a contenida en la circunferencia
iris/esclera, primero se procede a hallar la circunferencia del borde iris/esclera y una
vez encontrado su centro y radio, se aplica la transformaci´on Hough para localizar
3.2 Segmentaci´on 49
Algoritmo 7 Transformada de Hough
Entrada: Mapa de bordes obtenido en la umbralizaci´on por hist´eresis.
1: Para cada punto del borde (cx, cy) existente en el plano NxM, generamos cir-
cunferencias de radio 1 hasta el num
radios
y num
radios
es dado por el intervalo de
b´ usqueda entre radio
min
y radio
max
.
2: Hacer H(i, j, k)=AgregaCirculos(matrizAcumuladora, cx, cy) donde
matrizAcumuladora es un arreglo en 2D que se toma como variable acu-
muladora.
3: La funci´on AgregaCirculos genera las coordenadas de los pixeles que for-
man una circunferencia perfecta de radio y centros dados y actualiza la
matrizAcumuladora seg´ un las coordenadas del pixel en el que se incide.
Salida: La salida generada por la transformaci´on son los par´ametros de la circunfer-
encia encontrada: centro y radio.
la circunferencia interna iris/pupila, limitando la regi´on de la imagen donde se busca
esta segunda, al radio de la primera circunferencia hallada.
En la figura 3.17 se presenta el resultado parcial de la aplicaci´on de la transformada
Hough, a la imagen de la figura 3.4 y en la figura 3.13 aparece un esquema que
ejemplifica el funcionamiento de la transformada de Hough.
Figura 3.12: Imagen que muestra el resultado parcial de la transformaci´on Hough en
la b´ usqueda de la circunferencia iris/esclera.
El mecanismo de la transformada de Hough calcula las coordenadas del centro
de la pupila y del iris, as´ı como sus respectivos radios; esta informaci´on es ´ util para
la obtenci´on de la regi´on del iris. Cabe recordar que el iris y la pupila no tienen el
mismo centro (no son conc´entricas), y no son circunferencias perfectas; por lo que,
se consideran los centros y radios del iris y la pupila de manera independiente, para
evitar incurrir en errores en las etapas siguientes.
3.2 Segmentaci´on 50
Figura 3.13: Figura que ejemplifica el funcionamiento de la transformada de Hough.
3.2 Segmentaci´on 51
La implementaci´on de la clase de la transformada Hough aparece en la figuras a
3.14 y b 3.15, as´ı como el fragmento de c´odigo que desarrolla este algoritmo.
Figura 3.14: a. Clase del mecanismo de la Transformada de Hough.
3.2 Segmentaci´on 52
Figura 3.15: b. Clase del mecanismo de la Transformada de Hough.
3.2 Segmentaci´on 53
//MECANISMO DE LA TRANSFORMADA DE HOUGH
//OBTENCION DE LAS COORDENADAS DE LOS
//PIXELES CANDIDATOS ES DECIR BORDES
for (int i=0;i<filas;i++)
{
for(int j=0;j<columnas;j++)
{
if(MatrizEnt[i][j]==255)
{
ptosX[index]=j;
ptosY[index]=i;
index++;
}
}
}
for (int centro=0;centro<index;centro++)
{
for(int Nradio=0;Nradio<numRadios;Nradio++)
{
cX=ptosX[centro];
cY=ptosY[centro];
// SE LE ENVIA A LA FUNCION
// PARA QUE A CADA VALOR DE
// RADIO SE PINTE UN CIRCULO
// DE RADIO N EN LA REBANADA CORRESPONDIENTE
AK=HOUGH(AK,cX,cY,Nradio+radiomin,numRadios);
para realizar pruebas de matriz
}
}
//CLASIFICACON DEL PUNTO DE MAYOR VALOR EN CADA REBANADA
mayor=new int[numRadios];
px=new int[numRadios];
py=new int[numRadios];
for(int k=0;k<numRadios;k++)
{
mayor[k]=0;
}
3.2 Segmentaci´on 54
//System.out.println(”PASANDO 3D”);
for(int k=0;k<numRadios;k++)
{
for (int i=0;i<filas;i++)
{
for(int j=0;j<columnas;j++)
{
//if(AK[i][j][k]>mayor[k])
{
mayor[k]=AK[i][j][k];
px[k]=j;
py[k]=i;
}
}
}
}
//el mayor del mayor
for(int k=0;k<numRadios;k++)
{
if(mayor[k]>Mmayor)
{
Mmayor=mayor[k];
this.cX=px[k];
this.cY=py[k];
this.rFINAL=k+radiomin;
}
}
En este programa es importante mencionar que este programa se encarga de buscar
en todos los puntos resaltados de la imagen cuales podr´ıan ser candidatos al centro y
radio de la pupila y del iris trazando circunferencias para el rango de radios propuestos
en los p´arrafos anteriores. Al final, de todas las circunferencias trazadas, se encuentra
el punto por el cual hayan pasado m´as circunferencias como se muestra en la figura
3.13. Para el almacenamiento y manipulaci´on de estos datos fue necesario recurrir a
una matriz de tres dimensiones, lo que nos permiti´o obtener los centros y radios de
la pupila y el iris de una manera m´as sencilla.
3.3 Obtenci´on de la firma del iris 55
3.3. Obtenci´on de la firma del iris
Con el fin de obtener la representaci´on (firma) de la regi´on de iris, es necesario
lograr la extracci´on de la misma, en una representaci´on rectangular normalizada de
dimensiones constantes. Para ello, primero se obtiene la regi´on real que conforma al
iris:
Algoritmo 8 Extracci´on del iris
Entrada: Coordenadas del centro de la pupila e iris calculado por la transformada
Hough.
Entrada: Radio de la pupila y radio del iris.
1: Generar una m´ascara que consiste de un c´ırculo de color negro sobre fondo blanco
cuyo centro y radio son los de la pupila.
2: Generar una m´ascara que consiste en un c´ırculo de color negro sobre fondo blanco
cuyo centro corresponde al de la pupila y el radio al del iris.
3: Eliminar en la imagen original los datos que se encuentren fuera de ambas
m´ ascaras, para la obtenci´on de la regi´on del iris.
Salida: El resultado de esta etapa es la extracci´on de la regi´on del iris.
Figura 3.16: Imagen que muestra la m´ascara utilizada para extraer la circunferencia
interior (iris/pupila) de la imagen de entrada original.
La clase que implementa este algoritmo aparece en la figura 3.19. De la misma
manera aparece una secci´on del programa. En este programa es importante mencionar
que, una vez que se crean las m´ascaras que se mencionan en el algoritmo de la extrac-
ci´on del iris, es necesario hacer una operaci´on AND que al final entrega por s´ı mismo
la regi´on que pertenece al iris y que contiene la informaci´on de nuestro inter´es.
3.3 Obtenci´on de la firma del iris 56
Figura 3.17: Imagen que muestra la m´ascara utilizada para extraer la circunferencia
exterior (iris/esclera) de la imagen de entrada original.
Figura 3.18: Imagen que muestra la regi´on de iris extra´ıda.
3.3 Obtenci´on de la firma del iris 57
Figura 3.19: Clase que permite extraer la regi´on del iris.
3.3 Obtenci´on de la firma del iris 58
//PROGRAMA DE LA EXTRACCION DEL IRIS
for (float ang=0;ang<2*Math.PI;ang=(float)(ang+(Math.PI/360)))
{
y=(int)((R1)*(Math.sin(ang)));
x=(int)((R1)*(Math.cos(ang)));
//System.out.println(”X”+x);
//System.out.println(
2
”+y);
if(x<0)
{
w=-1;
}if(y<0)
{
k=-1;
}
for(int i=this.cY;i!=(y1+y);i=i+(k))
{
for(int j=this.cX;j!=(x1+x);j=j+(w))
{
im[i][j]=0;
}
}
w=1;
k=1;
}
//SEGUNDA MASCARA IRIS
for (int ang=0;ang<2*Math.PI;ang=(float)(ang+(Math.PI/360)))
{
y=(int)((R2)*(Math.sin(ang)));
x=(int)((R2)*(Math.cos(ang)));
//System.out.println(”X”+x);
//System.out.println(
2
”+y);
im2[y1+y][x1+x]=0;
if(x<0)
{
w=-1;
}if(y<0)
{
3.3 Obtenci´on de la firma del iris 59
k=-1;
}
for(int i=this.cY;i!=(y1+y);i=i+(k))//filas
{
for(int j=this.cX;j!=(x1+x);j=j+(w))//columnas
{
im2[i][j]=0;
}
}
w=1;
k=1;
}
//OBTENCION DE LA SEGUNDA MASCARA IRIS
for(int i=0;i<row;i++)
{
for(int j=0;j<coll;j++)
{
if(im2[i][j]==0)
{
imORG[i][j]=imORG[i][j];
}
else
{
imORG[i][j]=0;
}
}
}
//OBTENCION CON LA PRIMERA MASCARA PUPILA REGION FINAL
for(int i=0;i<row;i++)
{
for(int j=0;j<coll;j++)
{
if(im[i][j]==0)
{
imORG[i][j]=0;
}
}
3.3 Obtenci´on de la firma del iris 60
}
Una vez extra´ıda la regi´on del iris es necesario establecer una regi´on caracter´ıstica
que sirva para identificar y clasificar a cada iris. Para esto se estableci´o el algoritmo
de la obtenci´on de la firma del iris, en el cual se obtiene la firma.
Algoritmo 9 Obtenci´on de la firma del iris
Entrada: La matriz de pixeles que contiene la regi´on real del iris.
Entrada: Coordenadas del centro y radio de la pupila y del iris.
1: Obtener el n´ umero de filas de la matriz que contendr´a la firma del iris.
2: Recorrido radial y angular que permite obtener cada uno de los p´ıxeles que con-
forman la regi´on del iris.
3: Los pixeles obtenidos en el paso anterior son almacenados en una matriz, en donde
cada radio de circunferencia referenciada corresponde a una fila de la matriz.
Salida: La salida de esta etapa es una matriz que contiene la regi´on del iris en forma
rectangular, llamada firma del iris.
Cabe mencionar que en este algoritmo fue necesario establecer los valores de la
matriz de p´ıxeles que contendr´ıan a la firma del iris, es decir, realizar un proceso de
normalizaci´on en el tama˜ no. Esto es debido a que el algoritmo de la extracci´on del
iris obtiene fila por fila a los p´ıxeles que conforman al iris, lo que genera matrices con
filas de diferentes tama˜ nos, tal y como se muestra en la figura 3.20.
Figura 3.20: Imagen que muestra la firma del iris extra´ıda.
Para ejemplificar este procedimiento se puede observar la figura 3.21 y la figura
3.22.
En los p´arrafos anteriores se describe el proceso para la obtenci´on de la firma del
iris, y la clase implementada se muestra en la figura 3.23, as´ı como el c´odigo que
permite elaborar estos programas.
3.3 Obtenci´on de la firma del iris 61
Figura 3.21: Figura que ejemplifica el proceso de extracci´on del iris.
Figura 3.22: Figura que ejemplifica el proceso de extracci´on del iris.
3.3 Obtenci´on de la firma del iris 62
Figura 3.23: Diagrama que muestra la clase que realiza la firma normalizada del iris.
3.4 Reconocimiento 63
//OBTENCION DEL VECTOR FIRMA DEL IRIS
//OBTENCION DEL TAMA
˜
NO MAXIMO POSIBLE DE LA FIRMA
vector=sing(imORG,this.ptox,this.ptoy,radiomax);
this.tamMAX=this.tamXY;
FIRMA=new int[numRadios+1][this.tamMAX*8];
for(int i=0;i<numRadios;i++)
{
for(int j=0;j<this.tamMAX*8;j++)
{
FIRMA[i][j]=0;
}
}
//AHORA ES NECESARIO QUE SE REALICE DESDE
//RADIO MINIMO HASTA RADIO MAXIMO
for(int pos=0;pos<numRadios;pos++)
{
vector=sing(imORG,this.ptox,this.ptoy,radiomin+pos);
if(pos==0)
{
this.tamFinal=this.tamXY;
}
for(int j=0;j<this.tamXY*8;j++)
{
FIRMA[pos][j]=vector[j];
}
}
FIRMAFINAL=new int[numRadios+1][this.tamMAX*8];//[this.tamFinal*8];
3.4. Reconocimiento
Una vez obtenida la firma del iris, es necesario establecer un mecanismo que permi-
ta determinar el grado de similitud entre distintas firmas, para saber si dos entidades
de iris (patr´on) pertenecen a la misma persona, o si dichas entidades corresponden
al iris de personas diferentes. Para ello, se utiliz´o la m´etrica de distancia binaria de
Hamming en una forma ponderada, es decir, d´andoles mayor peso a ciertas renglones
3.4 Reconocimiento 64
del iris y menos a otras. Lo anterior es debido a la constituci´on de las im´agenes del
iris, que sugieren que ciertas zonas de la regi´on de inter´es deben proporcionar m´as
informaci´on que otras.
Algoritmo 10 Distancia de Hamming ponderada
Entrada: La firma del iris del sujeto 1 y del sujeto 2 a comparar.
1: Calcular la Distancia de Hamming de rengl´on i de la firma 1 contra el rengl´ on i
de la firma 2.
2: Multiplicar el valor de la distancia obtenido en el paso anterior por el factor de
ponderaci´on previamente establecido, dependiendo de la regi´on a la que pertenez-
ca.
3: Obtener un valor caracter´ıstico de cada firma, representado por la media ar-
itm´etica de las Distancias de Hamming Ponderadas.
En la figura 3.24 se muestra el esquema de clase de la etapa de reconocimiento
del mecanismo de autenticaci´on y el c´odigo de esta clase implementado.
3.4 Reconocimiento 65
Figura 3.24: Esquema de la clase que implementa las distancias de Hamming.
3.4 Reconocimiento 66
//Programa de Hamming
for(int i=0;i<imagA.height;i++)
{
for(int j=0;j<imagA.width;600;j++)
{
if (firmaA[i][j]!=firmaB[i][j])
{
suma=suma+regDist[i];
regDist[i]++;
TAM=i;
}
}
}
if(i>=0 && i<=25)
{
regDist[i]=(int)(regDist[i]*0.7);
}
if(i>25 && i<=40)
{
regDist[i]=(int)(regDist[i]*0.2);
}
if(i>40 && i<52)
{
regDist[i]=(int)(regDist[i]*0.1);
}
}
}
}
}
Se toma la idea de Hamming en la cual se compara la similitud de dos entidades,
le llamamos distancia de Hamming ponderada al c´alculo de la distancia de Hamming
obtenida por el m´etodo descrito en el cap´ıtulo 2 multiplicado por un factor de pon-
deraci´ on el cual se obtiene din´amicamente en cada firma considerando el nivel de
ruido que se encuentra presente en cada firma, de este modo tenemos dos casos.
Cuando el ruido es menos al 40 % del tama˜ no de la firma, el 60 % restante
3.4 Reconocimiento 67
ser´a multiplicado por un factor de ponderaci´on de 0.6 y el restante ser´a multi-
plicado por 0.2, dividido en dos regiones correspondientes al 25 % y al 15 % del
total de la firma.
Cuando el ruido es mayor al 40 % el caso se invierte, se tendr´a un factor de
ponderaci´on de 0.6 para la secci´on menor y 0.4 para la secci´on donde exista
mayor ruido.
Cap´ıtulo 4
Desarrollo de la Interfaz Gr´afica
Una vez descrito el m´odulo de autenticaci´on implementado, se pretende mostrar
un ejemplo del uso que se le puede dar a dicho m´odulo.
El prop´osito de esta aplicaci´on est´a orientado a la elaboraci´on de una interfaz
gr´afica hecha con Java-Swing, con la finalidad de restringir el acceso a un recinto en
el caso de una verificaci´on, donde se autentifica la identidad que una persona dice
tener. Aunque se pueden considerar aplicaciones en las que s´olo se requiere saber si
la persona pertenece a la base de datos (caso de la identificaci´on).
Mediante la interfaz gr´afica es posible comprobar el objetivo del proyecto que
es la autenticaci´on de una persona. Principalmente consta de 4 ventanas, las cuales
aparecen secuencialmente para comprobar que el usuario que ingresa al mecanismo
es realmente qui´en dice ser.
En la figura 4.1 se solicita al usuario datos de nombre, apellido paterno y apellido
materno, as´ı como una contras˜ na, la cual valida al usuario en la primera etapa.
´
Esta
da acceso al sistema de reconocimiento que compara las distancias de Hamming de
la imagen que se carga con las im´agenes del usuario que loa persona dice ser.
La segunda ventana muestra la im´agen del usuario cargada con las que se tienen
previamente adquiridas; con el bot´on verificar se permite conocer el error de las
comparaciones y si se encuentra dentro del rango aceptable para autenticar a la
persona, lo hace, si no lo rechaza. Esto se muestra en las figuras 4.2, 4.3.
De la misma manera, al momento de oprimir el bot´on verificar el programa se
encarga de mostrar las salidas generadas en las etapas descritas en el cap´ıtulo 3.
´
Estas se muestran en la figura 4.4. El c´odigo de la interfaz se muestra en los anexos.
68
69
Figura 4.1: Acceso al Mecanismo de Reconocimiento de Iris.
Figura 4.2: Mecanismo de Reconocimiento de Iris.
70
Figura 4.3: Usuario no autenticado.
71
Figura 4.4: Salidas de las etapas del mecanismo de reconocimiento.
Cap´ıtulo 5
Evaluaci´on y An´alisis de
Resultados
En los dos cap´ıtulos anteriores se describieron los algoritmos que se implementaron
para el mecanismo del reconocimiento del iris, as´ı como una propuesta de aplicaci´on
en una interfaz gr´afica. Una vez conocido esto, consideramos necesario establecer el
plan de pruebas referido a la parte algor´ıtmica con el fin de encontrar los mejores
resultados, que proporcionen un desempe˜ no ´optimo en dichas etapas. De la misma
manera se hizo un plan de pruebas referido a la interfaz gr´afica, que permita evaluar
el funcionamiento de esa aplicaci´on en particular.
5.1. Evaluaci´on del mecanismo de autenticaci´on
Se llevaron a cabo las siguientes pruebas para el m´odulo del mecanismo de auten-
ticaci´on de personas, basado en el reconocimiento del iris.
1. Medici´on del efecto del proceso de filtrado al variar los tama˜ nos de las m´ascaras
de convoluci´on. Referido a la etapa de filtrado se prob´o con 3 distintos tama˜ nos
de m´ascara: 3x3, 5x5 y 7x7. Se eligi´o trabajar con la m´ascara de 5x5, porque
se considera un tama˜ no mediano de m´ascara que no demandar´ıa un alto poder
de c´omputo, como en el caso de m´ascaras de tama˜ no m´as grande, obteni´endose
resultados aceptables como se muestra en la imagen 5.1.
2. Medici´on del rendimiento de la etapa de umbralizaci´on por hist´eresis al variar
pares de umbrales seleccionados t
alto
y t
bajo
. El principal reto de esta etapa
consiste en hallar un umbral superior y un umbral inferior, que permitan que
en la imagen umbralizada se tenga la suficiente informaci´on, para que en la
etapa de Hough sea posible determinar lo m´as exacto posible los valores del
centro y radio de la pupila e iris. Se debe realizar la correcta elecci´on de estos
72
5.1 Evaluaci´on del mecanismo de autenticaci´on 73
Figura 5.1: Filtrado Gaussiano con m´ascara de 5x5
umbrales, dado que a partir de ellos se puede encontrar la informacion suficiente
para la determinaci´on de los centros y los radios, pero al mismo tiempo puede
arrojarnos demasiada informaci´on irrelevante, por lo que es necesario encontrar
valores de umbrales, en los cuales se evite el ruido (informaci´on innecesaria),
sin perder los datos que dar´an informaci´on importante a la etapa de Hough.
En las im´agenes 5.2 y 5.3 se muestran los casos que ejemplifican las situaciones
mencionadas
Figura 5.2: Imagen Umbralizada con t
alto
= 0.20 y t
bajo
= 0.19 que no proporciona
informaci´on suficiente.
En la figura 5.3 se observan los pixeles que definen la circunferencia correspon-
diente al l´ımite entre el iris y la esclera, ´esta es la informaci´on necesaria para
que el algoritmo de Hough determine los radios y los centros de manera precisa.
3. Formas de extraer la regi´on del iris.
5.1 Evaluaci´on del mecanismo de autenticaci´on 74
Figura 5.3: Imagen Umbralizada con t
alto
= 0.13 y t
bajo
= 0.10 que proporciona
informaci´on suficiente.
Como ya se ha explicado, dado que la pupila y el iris no representan circunfe-
rencias perfectas ni conc´entricas, es necesario considerar por separado el radio
de la pupila y el radio del iris, al momento de la segmentaci´on de esa zona. Al
principio, por cuestiones de facilidad, se opt´o por considerar a estas 2 partes
como circunferencias conc´entricas; el resultado de esto provoc´o que se eliminara
una parte importante de la regi´on del iris. Para evitar esto, se consideraron to-
talmente independientes el centro y el radio del iris y de la pupila, obteni´endose
as´ı la extracci´on de la regi´on del iris sin causar p´erdida de informaci´on.
Figura 5.4: Extracci´on del iris considerando las circunferencias conc´entricas.
En la figura 5.4 se puede apreciar claramente que la regi´on del iris obtenida
se muestra como una regi´on circular perfecta, en la cual se eliminan las zonas
m´as cercanas al l´ımite pupila-iris, que son las que contienen la informaci´on m´as
relevante del iris. Por otro lado, en la figura 5.5 se observa que la extracci´on se
5.1 Evaluaci´on del mecanismo de autenticaci´on 75
Figura 5.5: Extracci´on del iris considerando las circunferencias con centros y radios
independientes.
realiza sin p´erdidas.
4. Uso de las distancias de Hamming para medir la similitud entre dos firmas de
iris.
Para la realizaci´on de estas pruebas se tom´o una muestra de 7 elementos de
la base de datos de im´agenes elegidos al azar, de los cuales se consideraron
2 im´agenes del ojo izquierdo y 2 del ojo derecho. A cada una de ´estas se le
aplicaron todos los algoritmos descritos en el cap´ıtulo 3 hasta obtener la firma
del iris normalizada de cada uno. Posteriormente se calcularon las distancias de
Hamming ponderada de cada uno de ellos, de este modo obtenemos un n´ umero
que representa a una entidad con el fin de poder discriminar a una persona o
autenticar a la misma. Para nombrar a cada imagen se utiliz´o la nomenclatura
mostrada en la figura 5.6.
Figura 5.6: Nomeclatura utilizada como identificador para la firma de iris de cada
sujeto.
5.1 Evaluaci´on del mecanismo de autenticaci´on 76
Entidad Rango caracter´ıstico
1 8000-14000
2 13000-20000
3 19000-26000
4 5000-10000
45 10000-14000
33 7000-16000
83 9000-20000
Tabla 5.1: Rango caracter´ıstico de cada vector obtenido de sus comparaciones contra
s´ı mismo.
Esta nomenclatura que identifica cada firma se cre´o con el fin de evaluar las
siguientes comparaciones:
Comparaci´on de la firma del iris del ojo izquierdo contra la firma del iris
del ojo derecho de un sujeto. Ejemplo: 1A1 vs 1B1.
Comparaci´on de la firma del iris, ya sea del ojo izquierdo o del ojo derecho,
contra la firma del iris de una imagen distinta perteneciente al mismo ojo.
Ejemplo: 1A1 vs 1A2.
Comparaci´on de la firma del iris de un sujeto, ya sea del ojo izqierdo o del
ojo derecho, contra la firma del iris de otros sujetos (y de cualquier ojo).
Ejemplo 1A1 vs 33B1, 1A1 vs 45A2, etc.
Primero se calcularon todas las comparaciones de cada entidad contra s´ı mismas
y se obtuvo un rango de valores caracter´ıstico para cada entidad, de esta manera
se obtuvieron los valores mostrados en la tabla 5.1.
En la gr´afica ?? se muestran los rangos caracter´ısticos para cada sujeto evaluado.
En la tabla 5.8 se muestran los porcentajes de aciertos y errores que se obtu-
vieron a partir de las comparaciones contra todos los dem´as sujetos evaluados.
En las gr´aficas 5.9 y 5.10 se muestran algunos ejemplos de las comparaciones
que nos arrojaron los resultados anteriores.
Con estos datos podemos apreciar que el valor de la primera regi´on difiere con
respecto a los valores de las otras dos regiones, y representa para cada sujeto su
valor caracter´ıstico; esta variaci´on nos ayudar´a a determinar si una firma de iris
pertenece a un sujeto en particular, puesto que su magnitud se compara con las
5.1 Evaluaci´on del mecanismo de autenticaci´on 77
Figura 5.7: Gr´afica de firmas de iris de las mismas entidades.
dem´as mostradas en la gr´afica, y si alguna llega a tener una magnitud similar
a la de referencia, se podr´a concluir que pertenecen al mismo sujeto.
5.1 Evaluaci´on del mecanismo de autenticaci´on 78
Figura 5.8: Tabla de aciertos y errores.
5.1 Evaluaci´on del mecanismo de autenticaci´on 79
Figura 5.9: Grafica del sujeto 4 contra las dem´as entidades.
5.1 Evaluaci´on del mecanismo de autenticaci´on 80
Figura 5.10: Grafica del sujeto 83 contra las dem´as entidades.
Cap´ıtulo 6
Conclusiones y Trabajo a Futuro
En el an´alisis de los sistemas de reconocimiento de iris que han sido desarrollados
en los ´ ultimos a˜ nos, se han revelado interesantes conclusiones. Puede afirmarse que
la segmentaci´on autom´atica es una etapa cr´ıtica para el reconocimiento de iris, ya
que las ´areas que son err´oneamente identificadas como regiones de iris provocan que
se generen plantillas biom´etricas falsas, lo que provoca un rendimiento pobre de la
etapa de reconocimiento. Con los resultados alcanzados hasta el momento se prueba
este hecho, y se demuestra que el rendimiento depende directamente de entre otros
factores, de la calidad de las im´agenes tratadas. Por esta raz´on al estarse empleando
im´agenes de calidad regular a buena, en el presente trabajo, se obtuvieron aciertos
en la etapa de reconocimiento en cerca del 85-90 % de los casos probados.
Se ha desarrollado un m´odulo de software libre que puede ser usado para la au-
tenticaci´on de personas por medio del reconocimiento de im´agenes, tomadas de su
iris. Debido a la modularidad del mismo y dado que ´este ha sido codificado en un
lenguaje de libre distribuci´on, como es el caso de JAVA (J2SE 5.0), todas las im-
plementaciones hechas pueden ser descargadas, estudiadas, modificadas y mejoradas
para ser incorporadas a otro tipo de aplicaciones.
La parte m´as importante del desarrollo descansa en el algoritmo de segmentaci´on
autom´atica que se propone, que localiza la regi´on del iris dentro de una imagen de
un ojo. La codificaci´on de las caracter´ısticas del iris, se logra mediante un esquema
algor´ıtmico propuesto. Las distancias de Hamming fueron la m´etrica empleada para
medir la similitud entre dos patrones de iris comparados.
Una extensi´on natural al presente trabajo, podr´ıa ser la inclusi´on de una interfaz
hacia una c´amara para la adquisici´on de im´agenes del iris, con lo que se lograr´ıa un
sistema completo para el reconocimiento de patrones de iris. Otra ser´ıa la implantaci´on
de los algoritmos desarrollados en sus versiones paralelas sobre dispositivos de l´ogica
programable en campo (FPGA) o en procesadores de se˜ nales digitales (PDS), para
81
82
disminuir los tiempos de respuesta, sobre todo si los tama˜ nos de las muestras o la
complejidad de los algoritmos se eleva a´ un m´as, o se piensa en su incorporaci´on a un
sistema de tiempo real.
Ap´endice A
Anexo
A.1. Diagrama de clases para el mecanismo de au-
tenticaci´on
En la figura A.1 se muestra el diagrama de clases empleado en la implemetaci´on
del algoritmo de reconocimiento.
A continuaci´on se muestra una secci´on de c´odigo que genera la interfaz gr´afica
elaborada.
ImagCarg.setLayout(null);
ImagCarg.setBounds(10,130,250,210);
ImagCarg.setBorder(BorderFactory.createTitledBorder(”Imagen Cargada”));
//Creo las Variables de los Componentes del Framme
JButton Correlacion = new JButton();
final JButton Verificar = new JButton();
JButton Salir =new JButton();
// JButton Ingresar=new JButton();
JRadioButton Fig1=new JRadioButton();
JRadioButton Fig2=new JRadioButton();
JRadioButton Fig3=new JRadioButton();
JRadioButton Fig4=new JRadioButton();
JRadioButton Fig5=new JRadioButton();
ButtonGroup gpoBotones=new ButtonGroup();
//JTextField DATOS=new JTextField();
//creacion de los paneles
//JPanel ImagCarg=new JPanel();
JPanel ImgIdent= new JPanel();
83
A.1 Diagrama de clases para el mecanismo de autenticaci´on 84
//JPanel PnlAcceso= new JPanel();
JPanel PnlSalida= new JPanel();
// Decoracion look and Feel
JFrame.setDefaultLookAndFeelDecorated(true);
//Crear la Ventana principal
final JFrame VentanaPrincipal = new JFrame(Reconocimiento de iris”);
VentanaPrincipal.setSize(750,600);
VentanaPrincipal.setLocation(30,5);
VentanaPrincipal.getContentPane().setLayout(null);
VentanaAcceso.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.out.println(”Software desarrollado por:”);
System.out.println(”Baldo Romero Paulina A. ”);
System.out.println(”Garcia Molina Josue”);
System.out.println(”V.1”);
System.exit(0);
}
});
//Establecer caracteristicas de paneles
PnlAcceso.setLayout(null);
PnlAcceso.setBounds(30,10,330,250);
PnlAcceso.setBorder(BorderFactory.createTitledBorder(C¸ ontrasena de Usuario”));
porct1=new JLabel(” %Err .Figura1:”,JLabel.LEFT);
porct1.setBounds(10,30,80,20);
porct2=new JLabel(” %Err .Figura2:”,JLabel.LEFT);
porct2.setBounds(10,50,80,20);
porct3=new JLabel(” %Err .Figura3:”,JLabel.LEFT);
porct3.setBounds(10,70,80,20);
porct4=new JLabel(” %Err .Figura4:”,JLabel.LEFT);
porct4.setBounds(10,90,80,20);
P1.setBounds(95,30,130,20);
P1.setToolTipText();
P2.setBounds(95,50,130,20);
P2.setToolTipText();
P3.setBounds(95,70,130,20);
A.1 Diagrama de clases para el mecanismo de autenticaci´on 85
P3.setToolTipText();
P4.setBounds(95,90,130,20);
P4.setToolTipText();
ImgIdent.setLayout(null);
ImgIdent.setBounds(270,130,450,370);
ImgIdent.setBorder(BorderFactory.createTitledBorder(”Imagen a Identificar”));
¿ PnlSalida.setLayout(null);
PnlSalida.setBounds(10,350,250,150);
PnlSalida.setBorder(BorderFactory.createTitledBorder(Resultados Obtenidos”));
//Establecer las caracteristicas de los botones
Salir.setText(”Salir”);
Salir.setBounds(580,520,100,25);
Salir.setMnemonic(’C’);
Salir.setToolTipText(”Salir”);
Verificar.setText(”verficar”);
Verificar.setBounds(15,520,100,25);
Verificar.setMnemonic(’C’);
Verificar.setToolTipText(”Verificar”);
resultado.setBounds(15,520,150,20);
resultado.setToolTipText();
A.1 Diagrama de clases para el mecanismo de autenticaci´on 86
Figura A.1: Diagrama de clases del mecanismo de autenticaci´on
Ap´endice B
Bibliograf´ıa
87
Bibliograf´ıa
[1] Daugman, J., Probing the uniqueness and randomness of IrisCodes: Results from
200 billion iris pair comparisons. Proceedings of the IEEE, Vol. 94, No. 11, 2006.
[2] Daugman, J., How Iris Recognition Works. IEEE Transactions on Circuits and
Systems for Video Tecnology, Vol. 14, No. 1, January 2004.
[3] Daugman, J., Demodulation by complex-valued wavelets for stochastic pattern
recognition. International Journal of Wavelets and Information Processing, Vol.
1, No. 1, January 2003.
[4] Daugman, J., Biometric decision landscapes Technical Report No. TR482, Uni-
versity of Cambridge Computer Laboratory, 2000.
[5] Zhu, Y., Tan, T., Wang, Y., Biometric personal identification based on iris patterns
Proceedings of the 15th International Conference on Pattern Recognition, Spain,
Vol. 2, 2000.
[6] Daugman, J., High confidence visual recognition of persons by a test of statistical
independence. IEEE Transactions on Pattern Analysis and Machine Intelligence,
vol. 15(11), November 1993.
[7] Jain, S., Ross, A., Prabhakar, A. An Introducction to Biometric Recognition. IEEE
Transactions on Circuits and Systems For Video Technology, Vol. 14, No 1, Janury
2004.
[8] Li Ma, Tieniu Tan, Yunhong Wang, Dexin Zhang Efficient iris recognition by
characterizing key local variations IEEE Transactions on Image Processing, Vol.
13, No 6, June 2004.
[9] Li Ma, Tieniu Tan, Yunhong Wang, Dexin Zhang Personal Identification Based
on Iris Texture Analysis IEEE Transactions on Pattern Analysis and Machine
Intelligence, Vol. 25, No 12, December 2003.
88
BIBLIOGRAF
´
IA 89
[10] Lim, S., Lee, K., Byeon, O., Kim, T. Efficient iris recognition through improve-
ment of feature vector and classifier ETRI Journal, Vol. 23, No. 2, Korea, 2001.
[11] Akay, M., Time Frequency and Wavelets in Biomedical Signal Processing (Book
style). Piscataway, NJ: IEEE Press, 1998.
[12] Wildes, R. Iris recognition: an emerging biometric technology Proceedings of the
IEEE, Vol. 85, No. 9, 1997.
[13] Wildes, R., Asmuth, J., Green, G., Hsu, S., Kolczynski, R., Matey, J., McBride,
S. A system for automated iris recognition Proceedings IEEE Workshop on Ap-
plications of Computer Vision, Sarasota, FL, 1994.
[14] S´ anchez, R. El Iris Ocular como par´ametro para la Identificaci´on Biom´etrica.
Revista de Divulgaci´on
´
Agora SIC Volumen 21. Septiembre de 2000. Grupo Uni-
versitario de Tarjeta Inteligente, Departamento de Tecnolog´ıa Fot´onica, E.T.S.I.
Telecomunicaci´on, Universidad Polit´ecnica de Madrid.
[15] Sossa, J. Rasgos Descriptores para el Reconocimiento de Objetos. Centro de In-
vestigaci´on en Computaci´on. IPN. M´exico 2006.
[16] Sig¨ uenza, Juan A. Tecnolog´ıas Biom´etricas aplicadas a la Seguridad. Editorial
Ra-ma, 2003.
[17] K. Pratt, W., Digital Image Processing. John Wiley & Sons, 1991.
[18] Gonzalez, R., Woods, R., Digital Image Processing, Segunda edici´on, Prentice
Hall, 2003.
[19] Chinese Academy of Sciences - Institute of Automation (CASIA), ”Database of
756 grayscale eye images”.
[20] Monro, Don, ”University of Bath Iris Image Database”, Signal and Image Pro-
cessing Group, Department of Electronic and Electrical Engineering, University
of Bath, UK, 2006.