Está en la página 1de 92

INSTITUTO POLIT

ECNICO NACIONAL
Escuela Superior de Ingenier

a Mec

anica y El

ectrica
Ingenier

a en Comunicaciones y Electr

onica
Academia de Computacion
Autenticacion Biometrica de Personas
por medio del Reconocimiento del Iris
Tesis que presentan
Paulina Alejandra Baldo Romero
Josue Garca Molina
Para Obtener el Ttulo de
Ingeniero en Comunicaciones y Electronica
En la Especialidad de
Computacion
Director de la Tesis:
M. en C. Francisco Lopez Orozco.
Mexico D.F., Diciembre 2007
Resumen
Hoy en da, es de gran importancia el control de acceso a recursos o lugares,
restringiendo a quienes no superen dicho control. La autenticacion de personas busca
identicar usuarios de forma unvoca. Se usan tres principios para autenticar usuarios:
prueba de que uno posee algo, como los certicados digitales, prueba de que uno sabe
algo, como las contrase nas y prueba de que uno es algo. La autenticacion biometrica
estudia como hacer posible la autenticacion basandose en el tercer principio.
Este trabajo presenta el desarrollo de una aplicacion de software libre (implemen-
tada en plataformas dre libre distribucion) y de dominio p ublico para la autenticacion
biometrica de personas basada en el reconocimiento de iris. Con el se verica la uni-
cidad del patron de iris del ojo as como su conabilidad para usarse como tecnica
de autenticacion biometrica. A pesar de que existen hoy en da varios sistemas de
reconocimiento del iris de tipo comercial, la gran mayora usa los algoritmos paten-
tados. Para evaluar el rendimiento de los algoritmos implementados se hizo uso de
una base de datos de imagenes tomadas del iris de alrededor de 108 personas (756
imagenes). Se presentan los resultados mas importantes que verican el rendimiento
de la aplicacion.
Palabras clave: Autenticacion, biometra, reconocimiento de patrones,
patron 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 certicates, 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 veries 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 conanza
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
academico durante toda nuestra carrera y que nos apoyaron o nos dieron consejos
para hacer este proyecto. En especial, al M. en C. Francisco Lopez 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-
putacion del Departamento de Ingeniera en Comunicaciones y Electronica de la Es-
cuela Superior de Ingeniera Mecanica y Electrica Unidad Zacatenco del Instituto
Politecnico Nacional, para la realizacion de este trabajo, en especial de la Presidenta
de la Academia Ing. Miriam Cuellar Mercado por la conanza depositada en nosotros.
Baldo Romero, P., Garca Molina, J.

Indice general
1. Introduccion 7
1.1. Estado del Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2. Planteamiento del Problema . . . . . . . . . . . . . . . . . . . . . 8
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4. Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5. Organizacion de la Tesis . . . . . . . . . . . . . . . . . . . . . . . 11
2. Autenticacion Biometrica 12
2.1. Metodos de Autenticacion Biometrica . . . . . . . . . . . . . . 12
2.1.1. Caractersticas de los Sistemas Biometricos . . . . . . . . . . . 12
2.2. Reconocimiento basado en el Iris . . . . . . . . . . . . . . . . . . 13
2.2.1. Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2. Comercializacion . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.3. Caractersticas del Iris . . . . . . . . . . . . . . . . . . . . . . 14
2.3. Etapas del Reconocimiento . . . . . . . . . . . . . . . . . . . . . 16
2.3.1. Adquisicion . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.2. Procesamiento Digital de Imagenes . . . . . . . . . . . . . . . 17
2.3.3. Pre-procesamiento . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.4. Segmentacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.5. Transformada Hough . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.6. Extraccion de caractersticas y/o rma del iris . . . . . 28
2.4. Metricas 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. Correlacion Normalizada . . . . . . . . . . . . . . . . . . 29
3. Implementacion del Mecanismo de Autenticacion 31
3.1. Adquisicion de las imagenes . . . . . . . . . . . . . . . . . . . . . 31
3.2. Segmentacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2
3.2.1. Operador de Canny . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2. Correccion gamma . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.3. Supresion de no maximos . . . . . . . . . . . . . . . . . . 42
3.2.4. Umbralizacion por medio de histeresis . . . . . . . . . . 45
3.2.5. Transformada de Hough . . . . . . . . . . . . . . . . . . . 48
3.3. Obtencion de la rma del iris . . . . . . . . . . . . . . . . . . . . 55
3.4. Reconocimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4. Desarrollo de la Interfaz Graca 68
5. Evaluacion y Analisis de Resultados 72
5.1. Evaluacion del mecanismo de autenticacion . . . . . . . . . . . . . . . 72
6. Conclusiones y Trabajo a Futuro 81
A. Anexo 83
A.1. Diagrama de clases para el mecanismo de autenticacion . . . . . . . 83
B. Bibliografa 87
3

Indice de guras
1.1. Esquema general del modulo de autenticacion. . . . . . . . . . . . . . 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 ejemplican 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 ecualizacion 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 convolucion. . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1. Diagrama de la clase implementada del algoritmo de Canny. . . . . . 33
3.2. Graca que muestra el comportamiento del ltro 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 gura 3.4. . . . . . . . . . . 38
3.6. Imagen orientacion obtenida a partir de la gura 3.4. . . . . . . . . . 39
3.7. Diagrama de la clase que calcula la matriz gradiente y la matriz ori-
entacion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.8. Imagen una vez suprimidos sus No maximos, proveniente de la imagen
3.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.9. Diagrama de la clase para el algoritmo de Supresion de No Maximos 3.4. 43
3.10. Imagen una vez umbralada por histeresis proveniente de la imagen 3.4. 46
3.11. Esquema de la clase que implementa la Umbralizacion por Histeresis 3.4. 47
3.12. Imagen que muestra el resultado parcial de la transformacion Hough
en la b usqueda de la circunferencia iris/esclera. . . . . . . . . . . . . 49
3.13. Figura que ejemplica 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 mascara utilizada para extraer la circunferencia
interior (iris/pupila) de la imagen de entrada original. . . . . . . . . . 55
3.17. Imagen que muestra la mascara utilizada para extraer la circunferencia
exterior (iris/esclera) de la imagen de entrada original. . . . . . . . . 56
3.18. Imagen que muestra la region de iris extrada. . . . . . . . . . . . . . 56
3.19. Clase que permite extraer la region del iris. . . . . . . . . . . . . . . . 57
3.20. Imagen que muestra la rma del iris extrada. . . . . . . . . . . . . . 60
3.21. Figura que ejemplica el proceso de extraccion del iris. . . . . . . . . 61
3.22. Figura que ejemplica el proceso de extraccion del iris. . . . . . . . . 61
3.23. Diagrama que muestra la clase que realiza la rma 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 mascara de 5x5 . . . . . . . . . . . . . . . . . 73
5.2. Imagen Umbralizada con t
alto
= 0.20 y t
bajo
= 0.19 que no proporciona
informacion suciente. . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.3. Imagen Umbralizada con t
alto
= 0.13 y t
bajo
= 0.10 que proporciona
informacion suciente. . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.4. Extraccion del iris considerando las circunferencias concentricas. . . . 74
5.5. Extraccion del iris considerando las circunferencias con centros y radios
independientes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.6. Nomeclatura utilizada como identicador para la rma de iris de cada
sujeto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.7. Graca de rmas de iris de las mismas entidades. . . . . . . . . . . . 77
5.8. Tabla de aciertos y errores. . . . . . . . . . . . . . . . . . . . . . . . . 78
5.9. Graca del sujeto 4 contra las demas entidades. . . . . . . . . . . . . 79
5.10. Graca del sujeto 83 contra las demas entidades. . . . . . . . . . . . . 80
A.1. Diagrama de clases del mecanismo de autenticacion . . . . . . . . . . 86
5

Indice de tablas
5.1. Rango caracterstico de cada vector obtenido de sus comparaciones
contra s mismo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6
Captulo 1
Introduccion
En la actualidad es bien conocida la importancia en los niveles de seguridad,
principalmente el control del acceso a lugares y a la proteccion de informacion con la
nalidad de evitar el mal uso que pudiera darsele a los mismos. Este aspecto no ha
cambiado a traves de la historia, pues hemos visto en distintos acontecimientos que
la fuga de informacion en manos de las personas incorrectas y el permitir el acceso a
lugares a seres malintencionados han sido determinantes en episodios historicos.
A traves de las historias de ciencia ccion, pudimos conocer ciertos mecanismos
que garantizaban la seguridad en los aspectos mencionados, y cremos que solo eran
parte de una historia fantastica alejada de nuestra realidad. Sin embargo, ahora estan
mas cerca de nuestra vida cotidiana de lo que alguna vez imaginamos gracias a las
Tecnologas Biometricas.
Debido a los avances recientes en seguridad y a los costos relativamente bajos de
las Tecnologas de Autenticacion Biometrica, 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 informacion, computadoras y redes.
La autenticacion de personas, en terminos de seguridad, es el proceso por el cual un
usuario se identica de forma unvoca, para lograr el acceso a un recurso restringido.
Hoy en da, existen tres principios para autenticar usuarios: a) Prueba de que uno
posee algo, como el caso de los certicados digitales. b) Prueba de que uno sabe o
conoce algo, como el caso de contrase nas, n umeros de identicacion personal, etc. y
c) Prueba de que uno es quien dice ser. La autenticacion biometrica estudia como
hacer posible la autenticacion basandose en el tercer principio (c).
7
1.1 Estado del Arte 8
1.1. Estado del Arte
El aumento en la utilizacion del reconocimiento basado en el iris para la auten-
ticacion de personas aplicado a la seguridad de recintos se ha dado por el creciente
desarrollo en la investigacion y mejoramiento de esta tecnica. La mayor parte de
los trabajos de investigacion en esta area se diferencian entre ellos por los distintos
algoritmos empleados en cada una de las etapas del modulo 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 ltrado de Gabor, es decir, se realiza un ltrado de la
imagen en forma bidimensional,donde cada pxel se representa por 2 bits. En [8] la
obtencion del codigo de la region normalizada del iris se obtiene mediante un analisis
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 decadas 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
solo es unico para cada individuo, sino que tiene una forma similar para todos los
individuos.
La problematica constante del robo de informacion o pertenencias personales,
inclusive de depositos de cuentas bancarias; as como tambien personas con pasaportes
falsos o que intentan ingresar a computadora que no les corresponden ha hecho que
surja la Autenticacion mediante la biometra la cual es innitamente mas conable
que una rma, un nip (n umero de identicacion personal) o contrase na.
1.3. Objetivos
Objetivo General
Proponer un mecanismo eciente para la autenticacion biometrica de personas
basado en el reconocimiento del patron del iris.
1.4 Metodologa 9
Objetivos Particulares:
Desarrollar un modulo de software libre para la autenticacion biometrica de
personas por medio del reconocimiento del iris.
Hacer uso de tecnicas avanzadas de procesamiento digital de imagenes con la
nalidad de proveer de cierta robustez a los algoritmos implementados.
Desarrollar una aplicacion completa escrita en el lenguaje de programacion
JAVA que haga uso del modulo de autenticacion biometrica propuesto, con
su correspondiente interfaz graca de usuario.
En la gura 1.1 se presenta el diagrama a bloques general del modulo de autenticacion
que se pretende implementar.
Figura 1.1: Esquema general del modulo de autenticacion.
1.4. Metodologa
La realizacion de este proyecto propicio el desarrollo de una metodologa o pro-
cedimiento a seguir para llegar a la culminacion exitosa del mismo.
1.4 Metodologa 10
En principio se realizo la recopilacion bibliograca del tema en libros, revistas
y artculos cientcos; de esta manera, pudimos hacer el analisis del Estado del
Arte para elaborar una propuesta considerable que pueda aportar caractersticas
importantes a la investigacion de este tema.
Posteriormente se realizo la b usqueda de la Base de Datos de las imagenes del
iris que nos sirvieron para las pruebas de cada una de las etapas del proyecto.
Se utilizo 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 Imagenes (SIPG) del Departamento de Ingeniera
Electrica y Electronica de la Universidad de Bath en Inglaterra.
Debido a que se propone un mecanismo ecaz que realice la autenticacion de
personas a traves de imagenes tomadas de su iris utilizando tecnicas avanzadas
de procesamiento digital de imagenes y estructuras de programacion, se ha de-
sarrollado un modulo de software libre que ha sido codicado en plataformas de
libre distribucion, como es el caso del Sistema Operativo Linux en su distribu-
cion Ubuntu 7.04, el lenguaje de programacion JAVA (J2SE v5.0), y el gestor de
bases de datos MySQL v5. Por esto, todas las implementaciones hechas pueden
ser descargadas, estudiadas, modicadas y mejoradas para ser incorporadas a
otro tipo de aplicaciones.
Sobre las imagenes mencionadas se realizaron todas las pruebas necesarias para
los modulos de pre-procesamiento y segmentacion; para el pre-procesamiento
se probaron varias tecnicas como ecualizacion y el estiramiento del histograma;
por la parte de la segmentacion se utilizaron las mascaras de Sobel, de Prewitt,
el Laplaciano y el operador de Canny, as como la Transformada de Hough para
los bordes circulares.
Se desarrollo un mecanismo para la obtencion de la rma del iris, la cual servira
para la fase de la aplicacion que proponemos; mediante dicha aplicacion pre-
tendimos proponer un ejemplo, aunque es necesario mencionar que los modulos
que implementamos pueden servir para distintas aplicaciones.
1.5 Organizacion de la Tesis 11
1.5. Organizacion de la Tesis
El captulo 2 presenta en forma detallada los principios teoricos matematicos en
que se basan los sistemas de reconocimiento del patron del iris; ademas se mues-
tra como han sido desarrollados e implementados en forma general los sistemas de
autenticacon biometrica.
En el captulo 3, se explica de manera detallada el dise no algortmico del modulo
de software implementado para llevar a cabo la autenticacion de personas mediante
el reconocimiento del patron del iris.
El captulo 4, presenta una aplicacion ejemplo completa y su correspondiente
interfaz graca de usuario, que muestra el uso del modulo de software desarrollado
previamente. Los resultados obtenidos con las pruebas a las que fueron sometidas las
implementaciones realizadas as como el analisis de dichos resultados son presentados
en el captulo 5.
Por ultimo, el captulo 6 menciona las conclusiones y las contribuciones logradas
con el desarrollo de este trabajo de tesis. Tambien da idea de posibles lneas de
investigacion y estudio para trabajos futuros con el n de mejorar la(s) solucion(es)
propuestas.
Captulo 2
Autenticacion Biometrica
2.1. Metodos de Autenticacion Biometrica
La autenticacion de personas por medios biometricos ha sido usada desde tiempos
antiguos. Los Babilonios usaban su huella digital como rma en documentos para
comprobar la veracidad de cierta informacion y a un en la actualidad se utiliza para
los mismos nes, aunque ha sido desplazado por r ubricas o rmas de tipo gracas.
El termino biometra, se reere a la identicacion automatica, o a la vericacion
de la identidad, de individuos usando una caracterstica siologica, o del compor-
tamiento. Ejemplos de caractersticas siologicas incluyen imagenes de la mano o de
los dedos. Las caractersticas de conducta son rasgos que son aprendidos o adquiridos;
por ejemplo, la vericacion de la dinamica de la rma o la vericacion de la voz.
El reconocimiento biometrico puede ser usado para la identicacion, donde el
sistema identica una persona de un grupo a traves de la b usqueda en una base de
datos. Un sistema tambien puede ser usado para la vericacion, en el cual, el sistema
biometrico autentica la identidad que una persona dice tener. Este ultimo caso es el
del presente trabajo.
2.1.1. Caractersticas de los Sistemas Biometricos
Un sistema biometrico requiere que la caracterstica biometrica en que esta basada
satisfaga los siguientes requisitos:
Universalidad: Toda persona debe poseer dicha caracterstica.
Unicidad: Dos personas se deben diferenciar seg un dicha caracterstica biometri-
ca.
12
2.2 Reconocimiento basado en el Iris 13
Permanencia: La caracterstica debe ser lo sucientemente invariable tratandose
de la misma persona.
Cuanticacion: La caracterstica debe ser mesurable.
En la practica, un buen sistema biometrico debe ademas considerar:
Funcionamiento: Efectividad y velocidad del sistema.
Aceptabilidad: Grado al que la gente esta dispuesta a aceptar el uso de una
caracterstica biometrica en su vida diaria; por esta razon debe resultar inofen-
sivo.
Robustez: Dicultad para enga nar al sistema usando metodos fraudulentos.
Los sistemas biometricos estan constituidos de modulos de hardware y software; el
hardware se utiliza principalmente para la captura o toma de la caracterstica 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 modulo de software, ya que se utilizo una
base de datos de imagenes de iris para probar el desarrollo.
El exito de un sistema biometrico se mide seg un diferentes criterios y cada tec-
nologa presenta ventajas y desventajas. Uno de los criterios mas importantes para
evaluar el exito de una aplicacion se reere a la exactitud del sistema. El nivel de la
exactitud en un sistema biometrico implica la tasa de falsa-aceptacion y la tasa de
falso-rechazo. La tasa de falsa-aceptacion es el porcentaje de usuarios que son auten-
ticados erroneamente y los segundos representan, usuarios autenticos que han sido
rechazados (no reconocidos).
2.2. Reconocimiento basado en el Iris
2.2.1. Historia
La identicacion biometrica utilizando como rasgo fsico el iris surgio en 1936,
propuesta hecha por el oftalmologo Frank Burch. Sin embargo, hasta 1987, dos of-
talmologos estadounidenses, Leonard Flom y Aran Sar trabajaron para materializar
la idea de Frank Burch. Esto se logro a traves 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 autenticacion por medio de iris recientes. Con el desarrollo de estos algoritmos,
Daugman mostro resultados satisfactorios, comprobando con esto todos los puntos
fuertes planteados en su tecnica. Demostro que existe practicamente una tasa nula de
Falsa Aceptacion (FAR) y muy bajas tasas de Falso Rechazo (FRR), as como que este
mecanismo realiza la discriminacion entre gemelos y entre ojos de un mismo usuario;
puntos que constituyeron las principales dudas al inicio de sus investigaciones.
2.2.2. Comercializacion
El reconocimiento biometrico de personas constituye un campo especco dentro
de las areas de procesamiento de se nales y de reconocimiento de patrones, en el que se
han realizado enormes avances y aportaciones cientcas y tecnologicas en la ultima
decada. Esto ha conducido a que diversos organismos tecnologicos internacionales,
entre los que destaca el NIST (Nacional Institute of Standards and Technology), hayan
considerado que las tecnologas de reconocimiento biometrico estan sucientemente
maduras para ser aplicadas a soluciones comerciales.
Flom, Sar y Daugman, fundaron IriScan Corp., empresa que tendra en su poder
la patente y que se encargara de licenciarla a otras compa nas, tales como integradores
de sistemas y desarrolladores que quieran explotar productos de reconocimiento basa-
dos en iris. A partir de ah, la evolucion ha venido marcada por los progresos de dos
empresas, la propia IriScan, as como Sensar Corp., la cual lanzo al mercado una
camara especial para adquirir las imagenes de iris en los cajeros automaticos. Uno
de los sistemas de reconocimiento de iris comerciales mas exitosos es distribuido por
Iridian Technologies el cual utiliza algoritmos patentados desarrollados por Daugman.
Por lo general, los fabricantes de los sistemas biometricos actuales mencionan en las
descripciones de sus productos las tasas de Falsa-Aceptacion y de Falso-Rechazo para
tratar de cuanticar el nivel de exactitud de los mismos.
2.2.3. Caractersticas del Iris
Es necesario que se revisen algunos conceptos relacionados con la anatoma del
ojo humano, ya que dicha constitucion inuye notablemente en la robustez de las
tecnicas que la utilizan como caracterstica biometrica.
Estructura Interna del Ojo Humano
El iris comienza a formarse durante el tercer mes de gestacion, y su estructura
se completa en el octavo mes. Durante el primer a no de vida un conjunto de celulas
2.2 Reconocimiento basado en el Iris 15
produce cambios normales del color del iris, pero la evidencia clnica disponible indica
que el propio modelo del iris es estable a lo largo de toda la vida.
Es un organo interior protegido del ojo, detras de la cornea y el humor acuoso, es
visible externamente a una distancia comoda puesto que los medios de comunicacion
opticos delante de el son transparentes. El iris esta compuesto de tejido conjuntivo
elastico. Siendo un organo interior del ojo, el iris es inmune a inuencias 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 cornea, 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 elasticas que ocurren con la dilatacion y contraccion son rapidamente corregidas
empleando algoritmos matematicos que se encargan de localizar los bordes interno y
externo del iris.
El movimiento pupilar, incluso en la ausencia de cambios en iluminacion y las
deformaciones elasticas asociadas que se crean en la textura del iris, proporcionan
proteccion contra el fraude con fotografas, ojos de vidrio, u otras simulaciones de un
iris.
Caractersticas del iris para ser parte de un sistema biometrico
Una propiedad que el iris comparte con las huellas dactilares es la morfologa
aleatoria de su estructura, esto quiere decir que la textura del iris es distinta para
cada persona. El iris presenta ciertas caractersticas desde su potencial aplicacion a
la identicacion biometrica, algunas de ellas son:
La facilidad de registrar su imagen a cierta distancia, sin la necesidad de con-
tacto fsico.
El alto nivel de aleatoriedad en su estructura y una densidad de informacion 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 proteccion
que le brinda la cornea.
El intento de falsicar el iris de una persona conllevara operaciones quir urgicas
que podran da nar severamente la vision.
2.3 Etapas del Reconocimiento 16
Sin embargo, la caracterstica principal es que, basandose en los estudios realizados
por Daugman, el iris contiene mas informacion que permite identicar unvocamente
a la persona que una huella dactilar.
El proposito del reconocimiento del iris es obtener, con alto grado de seguridad,
la identidad de una persona; empleando analisis matematico y de procesamiento de
imagenes. 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 estara ah.
Para el caso de nuestro proyecto, el empleo del iris en un sistema biometrico
satisface las caractersticas expuestas en el punto 2.1.1. En relacion a la universalidad,
el iris es un organo interno que se forma durante la gestacion. Sobre la unicidad, la
textura del iris es muy compleja y presenta gran cantidad de caractersticas distintivas,
lo que hace que vare enormemente entre las distintas personas.
Al ser un organo interno protegido es difcil que se da ne, por lo tanto tambien
satisface la permanencia. Para conseguir la cuanticacion del iris se debe hacer uso
de las tecnicas de procesamiento de imagenes, con la nalidad de extraer la informa-
cion. Tambien resulta un sistema funcional ya que es bastante efectivo, por ejemplo,
el metodo Daugman alcanza porcentajes de acierto de 100 %; y tambien es un sistema
rapido. En relacion a la aceptabilidad del sistema, se trata de un sistema no invasi-
vo. Como ya se menciono, esta tecnica presenta tasas de Falso Rechazo muy bajas,
manteniendo al mismo tiempo unas tasas de Falsa Aceptacion practicamente nulas.
Por el contrario, tiene un costo, tanto computacional como economico, relativamente
elevado para algunas aplicaciones, como se explicara en los siguientes captulos.
2.3. Etapas del Reconocimiento
2.3.1. Adquisicion
En el captulo uno se comento que las imagenes que utilizamos para la realizacion
de este proyecto se obtuvieron de una bases de datos ocial. Un ejemplo de la misma
se muestra en la gura 2.1.
Una de las razones por las cuales optamos por la utilizacion 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 autenticacion es
importante que el metodo permita identicar que las imagenes del ojo izquierdo y que
las im agenes del ojo derecho pertenecen a la misma persona, dada la caracterstica 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.
probara su robustez con la comprobacion de que independientemente del iris usado
para la identicacion, se proporcionan los resultados esperados.
2.3.2. Procesamiento Digital de Imagenes
En esta seccion se describen en forma breve algunos conceptos importantes en
materia de procesamiento digital de imagenes utiles para el desarrollo del presente
trabajo, ya que las imagenes que se emplearon son de naturaleza totalmente digital.
El termino imagen se reere a una funcion 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 renglon y columna identican un punto en la imagen y el correspon-
diente valor del elemento de la matriz identica el nivel de intensidad de luz en ese
punto tal y como se muestra en la ecuacion 2.1. Los elementos de tal arreglo digital
son llamados elementos de imagen, elementos de pintura o pxeles.
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 pxel, es cuantizado a codigos binarios enteros
positivos. El n umero de niveles de cuantizacion esta determinado por la relacion 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 cuantizacion 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
mnimo 64 niveles de gris [18]. Para una apreciacion na se usa una cuantizacion
estandar 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
monocromatica cuantizada a 1 bit por pxel, esto es, dos niveles, blanco o negro.
Como ya se dijo, el valor de f, denotara el color, tono o nivel de gris de un
elemento de imagen (pxel) en cierta coordenada (x, y). Un tono muy claro (el mas
claro), denotara una cantidad de luz alta (tono blanco), mientras que un tono muy
obscuro (el menos claro), denotara una cantidad de luz baja (tono negro).
2.3.3. Pre-procesamiento
Por lo general, cuando se va a trabajar con imagenes se debe realizar una etapa pre-
via llamada pre-procesamiento, ya que hay que considerar ciertos factores que podran
afectar directamente en el exito o el fracaso de nuestro sistema de reconocimiento.
Por otra parte, el tama no del iris generalmente vara en diferentes imagenes debido
a la contraccion o a la dilatacion del iris causada por diferentes niveles de iluminacion;
tambien que se pueden tener diferentes distancias entre el ojo y la camara, rotacion
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 continuacion
se presentan algunos metodos aplicados al pre-procesamiento de imagenes.
Estiramiento del Histograma
El metodo de Estiramiento de Histograma se aplica con la nalidad de mejorar
el contraste de las imagenes, es decir, obtener imagenes 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 funcion de mejoramiento
de contraste sobre una imagen con poco contraste, la imagen resultante obtiene
una mejora en la apreciacion visual de la imagen, que se ve reejada en una
mayor expansion 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 funcion
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 ejemplican el problema de contraste en una imagen.
de pxeles que tienen ese valor de gris. Al proceso de extender los valores de los
pxeles a lo largo del histograma se le conoce como estiramiento del histograma.
En la gura 2.2 se muestran las formas de contraste en una imagen, la cual nos
muestra el problema que pueden tener las imagenes originales si no tienen un
buen contraste.
La expresion empleada en el mecanismo del estiramiento del histograma se
muestra en la expresion 2.3.
PixelSalida =
(L 1)(PixelEntrada NivelMin)
(NivelMax NivelMin)
(2.3)
Donde: L 1 es el nivel maximo permitido de un pxel y determinado por el
n umero de bits por pxel. L son los niveles de gris. PixelEntrada es el tono de
gris del pxel a modicar. PixelSalida es el tono de gris del pxel modicado.
NivelMax es el tono maximo existente en la imagen de entrada. NivelMin es
el tono mnimo existente en la imagen de entrada.
El algoritmo que empleamos para la implementacion se muestra en la gura 2.3.
Como se puede observar en la gura 2.3, el estiramiento del histograma consiste
en que a partir de la matriz de pxeles que trae implcitamente la imagen se
obtiene su histograma, el cual es una representacion del n umero de pxeles 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 modulo
de estiramiento del histograma, que distribuye los pxeles 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 imagenes 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 nalidad
de ejemplicar este mecanismo.
Un aumento de contraste no revelara informacion nueva que no este contenida
en la imagen. El contraste solamente presentara la misma informacion existente
en los datos originales, pero de una forma mas clara. Este mejoramiento de
contraste va a ayudar a nuestro mecanismo de autenticacion a realizar de una
manera mas efectiva los modulos de segmentacion y de codicacion.
Ecualizacion.
Este es otro mecanismo de pre-procesamiento que al igual que el anterior va a
generar la mejora del contraste de las imagenes obtenidas de la Base de Datos.
La ecualizacion permite adoptar el mismo n umero de muestras para cada valor
de pxel, y esto se logra a traves de la obtencion del histograma de las imagenes
a analizar. Consiste en encontrar una transformacion en la cual el histograma
tenga una representacion uniforme, es decir, con la ecualizacion trataremos de
igualar lo mas 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 ecualizacion del histograma.
Es muy frecuente normalizar un histograma dividiendo cada uno de sus valores
por el n umero total de pxeles en la imagen, denotado por n. De tal modo que el
histograma nos quedara P(rk) = nk/n, para k = 0, 1, ..., L1. De esta manera,
P(rk) da una estimacion 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
atencion en transformaciones de la forma expresada en la ecuacion ??.
s = T(r) (2.4)
Esto ocurre si 0 < r < 1 y asumimos que T(r) debe ser monotonicamente
creciente, esto indica que la pendiente de la funcion no puede ser negativa:
fracdsdr > 0. Para esto se debe suponer que r y s son continuas y que ademas
r y s son variables aleatorias. P(r) y P(s) son funciones de densidad de proba-
bilidad.
El procedimiento de ecualizacion del histograma se muestra en la gura 2.6.
Un ejemplo del resultado de la aplicacion de la ecualizacion del histograma se
muestra en las guras 2.7 y 2.8.
Filtrado Espacial.
Este metodo de pre-procesamiento de imagenes se basa en la operacion de con-
volucion, utilizando una mascara que consiste en una matriz cuadrada de di-
mensiones m x n impares. De esta manera, se realiza la convolucion 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
mascara y matriz de pxeles de la imagen que se esta analizando. Con este pro-
ceso se genera una nueva matriz con caractersticas mejoradas que ayudaran
a mejorar los resultados de los modulos posteriores como la segmentacion y la
codicacion.
Es importante mencionar que dependiendo de los valores que se coloquen en
la mascara es el resultado que se va a obtener a partir de la convolucion, por
ejemplo, se pueden detectar bordes verticales, horizontales o diagonales u obte-
ner los valores promedio de la matriz, entre otros resultados. Esta mascara se
escoge a partir del resultado que deseamos obtener. El proceso de convolucion
se ejemplica en la gura 2.9.
Figura 2.9: Proceso de convolucion.
2.3.4. Segmentacion
La segmentacion 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. Tambien puede
ser denida como el encontrar, por medio de un algoritmo numerico, sus regiones ho-
mogeneas y sus bordes. La segmentacion automatica de imagenes es, en general, una
de las tareas mas difciles de realizar en el analisis de imagenes debido a que tiene una
inuencia determinante en el correcto desempe no del mecanismo de reconocimiento.
[15].
Para llevar a cabo la segmentacion pueden usarse ndices visuales, que son partes
locales de un objeto, con signicado y que pueden ser detectados.

Estos tienen signi-
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 localizacion, ya que de otra manera dichos ndices
visuales no seran utiles.
Para nuestro proyecto, la segmentacion es la etapa donde se localiza la imagen del
iris. La etapa de segmentacion es muy importante ya que si el iris no es localizado
correctamente las etapas posteriores utilizaran datos erroneos, por lo tanto el codigo
generado contendra errores y el rendimiento del sistema sera muy bajo.
Existen diferentes mecanismos de segmentacion con distintos niveles de dicultad,
entre los que podemos mencionar:
Umbralizacion.
Deteccion de Bordes.
Deteccion de Regiones.
Clustering.
Segmentacion de Texturas.
Morfologa Matematica.
Redes Neuronales.
A continuacion se describen algunos de estos metodos:
Umbralizacion. La forma mas 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 umbralizacion 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 metodo, a partir del lobulo prin-
cipal, es decir, del valor maximo, se considera como umbral al primer punto en
el cual el gradiente se hace cero. Ademas del calculo de histogramas, existen
otras tecnicas para calcular el umbral, tales como, el ajuste del lobulo principal,
metodo de la maxima distancia, entropa y el algoritmo Isodata.
Deteccion de Bordes. Un borde en una imagen es un cambio local signi-
cativo, normalmente asociado con una discontinuidad, ya sea en la imagen de
intensidad o la primera derivada de dicha imagen [15]. La deteccion de bordes
2.3 Etapas del Reconocimiento 26
consiste basicamente en realizar la operacion de Convolucion Bidimensional en-
tre la matriz de pxeles de la imagen original y ciertas mascaras previamente
establecidas y posteriormente se realiza el calculo del gradiente digital de la
imagen, as como el angulo.
Para detectar los bordes, se calcula el modulo del gradiente obtenido en cada
pxel de la imagen. Como resultado, se vera que los valores grandes corresponden
a pxeles del borde, dado que un pxel pertenece a un borde si se produce
un cambio brusco entre niveles de grises con sus vecinos. Este tipo de ltro
es el recomendado, a falta de informacion 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 podran perder detalles importantes de la
imagen (y por consiguiente de la region 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 mascara de convolucion de media cero
y desviacion estandar .
Sea f(x, y) una imagen corrompida con ruido y sea h(x, y) un ltro gaussiano
con media cero y desviacion estandar . determina el tama no del ltro y es
seleccionado con base en el nivel deseado de detalle (bordes nos o gruesos) y
en el nivel de ruido contenido en la imagen, calculado mediante la ecuacion 2.5:
h(x, y) =
1
2
2
e

x
2
+y
2
2
2
(2.5)
Mascaras de Sobel. La convolucion se realizara con las siguientes mascaras
de 3 x 3 en la direccion x y en la direccion 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)
Mascaras de Prewitt. Es el mismo caso anterior, solo que con las mascaras
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 mascara 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)
Segmentacion de Texturas. Se puede decir que una caracterstica de textura
de una imagen es un valor que cuantica alguna caracterstica de la variacion de
la variacion del nivel de gris del objeto a segmentar en base a una disposicion
geometrica especca. Para segmentar una imagen de textura buscamos una
caracterstica que dena la textura, que tendra 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 pxel corresponde al valor del parametro en ese punto.
Existen dos tipos de metodos para el analisis de texturas:
Estadsticos. Basados en el histograma a partir de la media, la desviacion
estandar o la varianza de los niveles de gris. Tambien se utiliza la matriz de
co-ocurrencia, que mide la probabilidad de que dos pxeles a una distancia
determinada tengan el mismo valor.
Espectrales. Basados en el calculo de la Transformada de Fourier.
2.3.5. Transformada Hough
En el procesamiento de imagenes es com un que existan formas regulares tales
como lneas, crculos o polgonos. Muchas veces se requiere distinguir tales guras 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 funcion general:
2.4 Metricas para evaluar la similaridad entre dos patrones 28
(x a)
2
+ (y b)
2
r
2
= 0 (2.11)
Como en la funcion original hay tres variables independientes (a,b,r), el operador
requiere un parametro 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 mas
densos en un plano.
2.3.6. Extraccion de caractersticas y/o rma del iris
Una vez que el iris ha sido localizado y sus correspondientes plantillas han sido
generadas, en la etapa de segmentacion, se procede a la tercera etapa del proceso: la
codicacion. El objetivo de la etapa de codicacion es extraer la informacion biometri-
ca contenida en el patron de iris y generar un codigo asociado unico. El paso clave del
sistema sera extraer las caractersticas del iris y determinar una forma adecuada de
representacion. Interesa que dicho codigo contenga mucha informacion con una repre-
sentacion sencilla para que facilite las etapas posteriores. Para determinar la correcta
identicacion, se debera alcanzar un equilibrio entre la cantidad de informacion y el
tama no de la representacion.
2.4. Metricas 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 denida
como la suma de bits no coincidentes (suma de la operacion OR exclusiva entre X y
Y ) sobre N, el n umero total de bits en el patron.
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 este en
2.4 Metricas para evaluar la similaridad entre dos patrones 29
1 es de 0.5 y viceversa. Por lo tanto, la mitad de los bits coincidiran 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 estaran altamente
correlacionados y los bits de cada patron deberan coincidir. La distancia de Hamming
es la metrica de similaridad empleada en [2], y el calculo de dicha distancia es tomada
solo entre bits que son generados a partir de la region 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 estan compuestas de valores enteros. Esta
metrica es empleada en [5] y se dene por la ecuacion ??
DEP(k) =
N

i=1
(f
i
f
(k)
i
)
2
(
i
k
)
2
(2.13)
donde f
i
es la i
esima
caracterstica del iris desconocido y f
i
(k)
es la i
esima
caracterstica
de la plantilla, k, y
i
k
es la desviacion estandar de la i
esima
caracterstica 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. Correlacion Normalizada
La correlacion normalizada entre dos patrones de iris se representa con la ecuacion
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 imagenes de n x m pixeles.
1
y
1
son el valor promedio y
desviacion estandar de p
1
y
1
y
2
el valor promedio y desviacion estandar de p
2
. La
correlacion normalizada tiene ventaja sobre la correlacion convencional ya que toma
en cuenta las variaciones locales en la intensidad de la imagen, a diferencia de la otra.
2.4 Metricas para evaluar la similaridad entre dos patrones 30
Hasta ahora hemos analizado los puntos mas importantes que enmarcan a los
Sistemas de Reconocimiento basado en el Iris y principalmente se da una breve intro-
duccion a cada uno de los modulos de los cuales se conforma nuestro proyecto. En el
siguiente captulo se hara una descripcion detallada del dise no e implementacion de
la solucion a nuestro problema.
Captulo 3
Implementacion del Mecanismo de
Autenticacion
En este captulo se presentan cada una de las etapas implementadas en este tra-
bajo. Las etapas constitutivas son: adquisicion de las imagenes, segmentacion, codi-
caci on y reconocimiento. A continuacion se explican los algoritmos implementados
en el mecanismo de autenticacion.
3.1. Adquisicion de las imagenes
Para la realizacion de esta etapa se adoptaron dos bases de datos de imagenes del
iris disponibles para la evaluacion y prueba de este tipo de desarrollos; una es la Base
de Datos Irisbath proporcionada por el Grupo de Procesamiento de Se nales e Imagenes
(SIPG) del Departamento de Ingeniera Electrica y Electronica de la Universidad de
Bath en Inglaterra. Irisbath esta constituida por las imagenes de 25 personas, de cada
persona se tienen 20 imagenes del ojo izquierdo y 20 del ojo derecho; es decir, en total
son 1000 imagenes, las cuales se encuentran e formato PGM (Portable Gray Map),
que es un formato sencillo de imagenes en escala de grises de tama no 1280 x 960
pxeles en escala de grises de 8 bits por pxel (8 bpp).
La otra Base de Datos es CASIA V1.0, otorgada por el Centro de Investigacion
en Seguridad y Biometra de la Rep ublica Popular de China. Estas imagenes se en-
cuentran en una escala de grises de 8 bpp, de tama no 320 x 280 pxeles en el formato
PGM. La base de datos contiene 756 imagenes de iris de 108 personas distintas (7
imagenes por persona), considerada de tama no suciente para la evaluacion 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 segmentacion tuvimos conictos con la memoria
de la Maquina Virtual de Java, ya que demandaba mucho poder de computo por el
31
3.2 Segmentacion 32
n umero tan grande de operaciones con matrices de dimensiones de 1280 x 960. Este
problema nos orillo a utilizar la Base de Datos CASIA, puesto que sus imagenes ge-
neran matrices de 320 x 280 pxeles y su manipulacion no requiere tanto poder de
computo como las imagenes que pertenecen a Irisbath.
3.2. Segmentacion
Para que el mecanismo de autenticacion pueda describir las caractersticas del iris
que contienen informacion de la region interes, las imagenes que se utilizaron fueron
segmentadas.
En el caso del presente trabajo, los ndices visuales usados para lograr la seg-
mentacion fueron los bordes del iris, y para esto fue necesario implementar un algo-
ritmo de deteccion de bordes.
3.2.1. Operador de Canny
El algoritmo que empleamos para la etapa de segmentacion 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 vara la intensidad de la imagen, y tiene un valor
constante durante toda la transicion de intensidad. Por tanto, un cambio de intensidad
se maniesta como un cambio brusco en la primera derivada, es decir, en los picos de
la primera derivada en la direccion del gradiente. Esta ultima, es una caracterstica
que es utilizada para detectar un borde, y en la que se basa el algoritmo de Canny
mostrado a continuacion.
Algoritmo 1 Operador de Canny
Entrada: Imagen de entrada original.
1: Aplicacion de un ltro gaussiano a la imagen de entrada f(x, y).
2: Calculo de la magnitud del gradiente G[s(x, y)] y de la orientacion (s(x, y)) de
la imagen ltrada.
3: Ajuste gamma a la imagen gradiente G[s(x, y)].
4: Supresion de no maximos a la salida del paso anterior.
5: Umbralizacion por histeresis para obtener la imagen con los bordes resaltados.
El algoritmo de Canny fue implementado en base al diagrama de clases presentado
en la gura 3.1.
3.2 Segmentacion 33
Figura 3.1: Diagrama de la clase implementada del algoritmo de Canny.
A continuacion se muestra el fragmento del codigo 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: ltrado, calculo del gradiente y la orientacion, supresion de
no m aximos y umbralizacion por histeresis. Esto se hace mediante la denicion 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
ltroGauss ltro=new ltroGauss(im,row,coll);
//CALCULO DEL GRADIENTE
GradyOri mA=new GradyOri(ltro.mtx,row,coll);
GradyOri mB=new GradyOri(ltro.mtx,row,coll);
GradyOri mC=new GradyOri(ltro.mtx,row,coll);
GradyOri mD=new GradyOri(ltro.mtx,row,coll);
//SUPRESION DE NO MAXIMOS
3.2 Segmentacion 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 rma=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 ltro gaussiano fue aplicado a las imagenes de entrada, con el n de reducir la
inuencia de ruido en las mismas y obtener sus versiones suavizadas. La mascara de
convolucion 3.1 empleada para la aplicacion del ltro se eligio con un valor de = 2
ya que este factor proporciona el grado de alisamiento de la imagen, y en este caso
vericamos que este factor fuera el adecuado de tal manera que suprimiera el ruido
suciente sin eliminar los detalles del iris gracias a que los resultados que obtuvimos
con ella fueron los mejores para los tratamientos posteriores de las imagenes. Los
ltros que se probaron se diferenciaban en el tama no de la mascara (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 aplico el ltrado gaussiano debido a que no conocemos la natu-
raleza del ruido que contamina a las imagenes de Casia, y aunque se sabe que todas
fueron adquiridas bajo las mismas condiciones, no se sabe el grado de precision al
tomarlas o las caractersticas de la camara empleada; por lo que es necesario emplear
un ltro que elimine este tipo de ruido sin reducir la informacion que se necesita para
nuestro proceso.
En la gura 3.2 se muestra el comportamiento de un ltro gaussiano representado
por la ecuacion 2.5.
3.2 Segmentacion 35
Figura 3.2: Graca que muestra el comportamiento del ltro 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 ltrado se muestra a continuacion:
Algoritmo 2 Filtrado gaussiano
Entrada: Imagen de entrada original f(x, y).
1: Convolucionar f(x, y) con la mascara h(x, y) dada en la ecuacion 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 gura 3.3 se muestra el diagrama de la clase que implemento el mecanismo
del ltrado gaussiano.
Este algoritmo utiliza la tecnica de ltrado conocida como ltrado espacial en la
que se traslada una matriz rectangular de dos dimensiones (tambien llamada ventana,
kernel, mascara o n ucleo) que contiene pesos.
o
ponderaciones sobre la imagen en ca-
da localizacion de pxel. Se eval ua el pxel central de la ventana de acuerdo con los
pxeles de alrededor y sus valores de ponderacion. Cuando un nuevo valor es as cal-
culado, se desplaza la ventana sobre el siguiente pxel, realizando la misma operacion.
Este proceso de evaluar la vecindad ponderada del pxel se denomina convolucion
bidimensional, y a la matriz de ltro se le conoce como kernel de convolucion.
3.2 Segmentacion 36
Figura 3.3: Diagrama de la clase del Filtrado Gaussiano
Este mecanismo se ejemplica en la gura 2.9 y el codigo que implementamos para
esta etapa se muestra a continuacion.
public ltroGauss(short Inf[][],int l,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 =0;<las;++)
{
for(int cc=0;cc<col;cc++)
{
sumX=0;
if(==0 ==las-1 ==1 ==las-2)
sumX=0;
3.2 Segmentacion 37
else if (cc==0 cc==las-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[+I][cc+J] * G[I+2][J+2]);
}
}
}
Ip[][cc]=(sumX);
}
}
}
Calculo del gradiente y orientacion
Despues del suavizado de la imagen se deben obtener los bordes de la imagen y
para lograrlo es necesario realizar operaciones puntuales sobre los pxeles, es decir,
operando para cada pxel de la imagen s(i, j), las cuales seran el calculo del gradiente
y el calculo de la matriz orientacion.
Algoritmo 3 Calculo del gradiente y orientacion
Entrada: Imagen suavizada s(x, y).
1: Calculo de las componentes del gradiente G
x
y G
y
en las direcciones x y y res-
pectivamente.
2: Calculo de la magnitud de los bordes utilizando la ecuacion:
G(x, y) =

G
2
x
+ G
2
y
(3.3)
3: Estimacion de la orientacion de la normal de los bordes, con la ecuacion:
(x, y) = arctan
G
y
G
x
(3.4)
El resultado del proceso anterior, son dos imagenes, 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 Segmentacion 38
utilizar la imagen de la gura 3.4 se obtienen las correspondientes imagenes gradiente
y de orientacion, que son presentadas en las guras 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 gura 3.4.
En la gura 3.7 se observa el esquema de la clase en la que se realizan las opera-
ciones del gradiente y la orientacion sobre cada pxel de la imagen.
El codigo en Java que realiza estas operaciones sobre cada pxel de la imagen
simplemente se encarga de hacer los calculos que estan expresados en las ecuaciones
3.3 y 3.4 aparece a continuacion.
3.2 Segmentacion 39
Figura 3.6: Imagen orientacion obtenida a partir de la gura 3.4.
Figura 3.7: Diagrama de la clase que calcula la matriz gradiente y la matriz ori-
entacion.
3.4.
3.2 Segmentacion 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. Correccion gamma
Mediante la correccion gamma es posible ajustar el brillo de una imagen. Este
ajuste se aplico a la imagen gradiente, para resaltar los bordes detectados. La expre-
sion matematica que se uso para realizar esta correccion en las imagenes, se presenta
en la ecuacion 3.5.
G
a
(x, y) = G(x, y)
1

(3.5)
donde es un valor contenido en el intervalo [0, 2].
Los valores mas bajos de producen una imagen mas oscura, mientras que los
mas altos producen una imagen mas clara. Un valor de 1.0 se traduce en una transfor-
3.2 Segmentacion 41
macion nula, un valor menor a 1.0 crea curvas exponenciales que oscurecen la imagen,
mientras que valores de mayores a 1.0 producen curvas logartmicas que aclaran la
imagen.
Algoritmo 4 Correccion gamma
Entrada: Matriz gradiente.
1: Obtener el valor mnimo y maximo de los pxeles 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 aplicacion) re-escalar la imagen gradiente
al rango [0, 1] con la siguiente ecuacion:
G(x, y) = (G(x, y) min[G(x, y)])/max[G(x, y)] (3.6)
3: Con la ecuacion 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 implemento una clase que realizara estas operaciones; simplemente
se anexo el siguiente codigo despues del calculo de la matriz gradiente y de la matriz
orientacion.
//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 Segmentacion 42
3.2.3. Supresion de no maximos
El objetivo de esta etapa es obtener bordes de 1 pxel de grosor, as como remover
bordes espurios, al considerar unicamente pxeles cuya magnitud es maxima en bordes
gruesos y descartar aquellos, cuyas magnitudes no alcancen dicho maximo. La supre-
sion de no maximos remueve los pxeles no maximos, preservando la conectividad de
los contornos ya detectados e indica que un maximo local,es mas grande que todos
sus vecinos (excluyendose a s mismo).
Algoritmo 5 Supresion de no maximos
Entrada: Matriz imagen G
a
(x, y).
1: Encontrar la direccion

d
k
que mejor aproxime la direccion 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 mas peque no que al menos uno de sus dos vecinos a lo largo de la
direccion

d
k
, asignar N(x, y) = 0 (supresion); en caso contrario, asignar N(i, j) =
G
a
(x, y).
Figura 3.8: Imagen una vez suprimidos sus No maximos, proveniente de la imagen
3.4.
Para implementar esta etapa se elaboro una clase que implementaba exactamente
el algoritmo de supresion de no maximos, la cual se muestra en la gura 3.9.
3.2 Segmentacion 43
Figura 3.9: Diagrama de la clase para el algoritmo de Supresion de No Maximos 3.4.
3.2 Segmentacion 44
Y a continuacion se presenta una seccion de codigo de la clase de la gura 3.9.
En este programa se debe encontrar para cada pxel de la matriz imagenentrada[][]
la direccion que mejor aproxime la direccion de la normal al borde, es decir, de la
matriz orientacion representada por la variable double imagenorientacion[][]. A partir
de ah se analizan cada uno de ls 8 vecinos del pxel en cuestion y si este pxel es mas
peque no que alguno de sus vecinos se realiza la supresion del borde y se elimina el
valor de este pxel en la matriz de salida; en caso contrario el valor del pxel permanece
intacto durante el proceso en cuanto al valor y a la posicion.
public SupNoMax(double imagenentrada[][],double imagenorientacion[][],int la,int columna)
{ for (int i=radioentero+10;i<la-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 Segmentacion 45
// Si pasa la segunda condicion, el pixel
// X en cuestion pasa a la salida
{
MatrizSup[i][j]=imagenentrada[i][j];
}
}
}
}
}
3.2.4. Umbralizacion por medio de histeresis
La salida de la supresion de no maximos contiene cierto ruido en los maximos
locales. Ademas el contraste de la imagen de salida puede ser diferente en distintos
puntos del contorno. Debido a esto, es necesaria una etapa de umbralizacion de la
supresion de no maximos, para remover los bordes debiles, pero que se conserve la
conectividad de los contornos.
El objetivo principal de esta umbralizacion es descartar los maximos locales provo-
cados por ruido, sin eliminar los bordes debiles. 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
supresion de no maximos, la imagen orientacion 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 maximos 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 conuyan en un punto.
Los imagen resultante de la umbralizacion por histeresis se muestra en la gura
3.10, y el esquema de la clase que implemento este algoritmo aparece en la gura 3.11.
El programa que describe el procedimiento del algoritmo de umbralizacion se
muestra a continuacion 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
imagenes que no tengan bordes ruidosos y genere errores en las etapas posteriores.
Este programa analiza cada pxel de la matriz de salida de la supresion de no maximos
y verica, si es mayor a t
a
lto entonces le asigna una etiqueta (en este caso la etiqueta
3.2 Segmentacion 46
Algoritmo 6 Umbralizacion por histeresis
Entrada: Imagen obtenida en la supresion de no maximos.
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 condicion.
8: end if
Figura 3.10: Imagen una vez umbralada por histeresis 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 pxeles tambien se les asigna la etiqueta. Despuees de analizar varias
imagenes se establecio un valor promedio para los umbrales de t
alto
= 0,13 y t
bajo
=
0,10.
3.2 Segmentacion 47
Figura 3.11: Esquema de la clase que implementa la Umbralizacion por Histeresis 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 Segmentacion 48
}
}
}
3.2.5. Transformada de Hough
El paso siguiente al del resaltado de bordes por el metodo de Canny consiste en
la deteccion de circunferencias en la imagen del ojo (la formada por el iris/pupila e
iris/esclera); para esto se considero que el iris y la pupila son practicamente circunfe-
rencias perfectas; de esta manera se utilizo un mecanismo que detecta circunferencias.
En este trabajo, nos basamos en la Transformada de Hough.
Primero se realiza la extraccion 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 podran corresponder al centro del circun-
ferencia buscada.
En el caso de este trabajo, fueron 2 circunferencias (que se suponen concentricas)
las que se buscaban. Ademas, otra condicion inicial fue, dado que en general todas las
imagenes del iris fueron tomadas en las mismas condiciones (o al menos en condiciones
muy parecidas), ayudar al algoritmo, proporcionandole un rango (de un valor mnimo
a uno maximo) acotado para hallar el radio y reducir el espacio de b usqueda del
mismo, esto es, se le proporciono un valor mnimo y un valor maximo para el radio y
el algoritmo halla el valor optimo (el mas cercano) al radio real del iris y de la pupila.
Para el caso de la base de datos CASIA, fueron jados los valores mnimos y maximos
de los radios a traves de un analisis en todas las imagenes de la base de datos y
obteniendo la imagen que tuviera los radios maximos y mnimos para el iris y la
pupila. Posteriormente se determino el 10 % de estos valores y el resultado se presenta
a continuacion:
Pupila: radio
min
= 25 y radio
max
= 80
Iris: radio
min
= 75 y radio
max
= 155
Debido a que la circunferencia iris/pupila esta 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 transformacion Hough para localizar
3.2 Segmentacion 49
Algoritmo 7 Transformada de Hough
Entrada: Mapa de bordes obtenido en la umbralizacion por histeresis.
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 funcion 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 transformacion son los parametros de la circunfer-
encia encontrada: centro y radio.
la circunferencia interna iris/pupila, limitando la region de la imagen donde se busca
esta segunda, al radio de la primera circunferencia hallada.
En la gura 3.17 se presenta el resultado parcial de la aplicacion de la transformada
Hough, a la imagen de la gura 3.4 y en la gura 3.13 aparece un esquema que
ejemplica el funcionamiento de la transformada de Hough.
Figura 3.12: Imagen que muestra el resultado parcial de la transformacion 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 informacion es util para
la obtencion de la region del iris. Cabe recordar que el iris y la pupila no tienen el
mismo centro (no son concentricas), 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 Segmentacion 50
Figura 3.13: Figura que ejemplica el funcionamiento de la transformada de Hough.
3.2 Segmentacion 51
La implementacion de la clase de la transformada Hough aparece en la guras a
3.14 y b 3.15, as como el fragmento de codigo que desarrolla este algoritmo.
Figura 3.14: a. Clase del mecanismo de la Transformada de Hough.
3.2 Segmentacion 52
Figura 3.15: b. Clase del mecanismo de la Transformada de Hough.
3.2 Segmentacion 53
//MECANISMO DE LA TRANSFORMADA DE HOUGH
//OBTENCION DE LAS COORDENADAS DE LOS
//PIXELES CANDIDATOS ES DECIR BORDES
for (int i=0;i<las;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 Segmentacion 54
//System.out.println(PASANDO 3D);
for(int k=0;k<numRadios;k++)
{
for (int i=0;i<las;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 podran ser candidatos al centro y
radio de la pupila y del iris trazando circunferencias para el rango de radios propuestos
en los parrafos anteriores. Al nal, de todas las circunferencias trazadas, se encuentra
el punto por el cual hayan pasado mas circunferencias como se muestra en la gura
3.13. Para el almacenamiento y manipulacion de estos datos fue necesario recurrir a
una matriz de tres dimensiones, lo que nos permitio obtener los centros y radios de
la pupila y el iris de una manera mas sencilla.
3.3 Obtencion de la rma del iris 55
3.3. Obtencion de la rma del iris
Con el n de obtener la representacion (rma) de la region de iris, es necesario
lograr la extraccion de la misma, en una representacion rectangular normalizada de
dimensiones constantes. Para ello, primero se obtiene la region real que conforma al
iris:
Algoritmo 8 Extraccion 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 mascara que consiste de un crculo de color negro sobre fondo blanco
cuyo centro y radio son los de la pupila.
2: Generar una mascara que consiste en un crculo 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 obtencion de la region del iris.
Salida: El resultado de esta etapa es la extraccion de la region del iris.
Figura 3.16: Imagen que muestra la mascara utilizada para extraer la circunferencia
interior (iris/pupila) de la imagen de entrada original.
La clase que implementa este algoritmo aparece en la gura 3.19. De la misma
manera aparece una seccion del programa. En este programa es importante mencionar
que, una vez que se crean las mascaras que se mencionan en el algoritmo de la extrac-
cion del iris, es necesario hacer una operacion AND que al nal entrega por s mismo
la region que pertenece al iris y que contiene la informacion de nuestro interes.
3.3 Obtencion de la rma del iris 56
Figura 3.17: Imagen que muestra la mascara utilizada para extraer la circunferencia
exterior (iris/esclera) de la imagen de entrada original.
Figura 3.18: Imagen que muestra la region de iris extrada.
3.3 Obtencion de la rma del iris 57
Figura 3.19: Clase que permite extraer la region del iris.
3.3 Obtencion de la rma del iris 58
//PROGRAMA DE LA EXTRACCION DEL IRIS
for (oat ang=0;ang<2*Math.PI;ang=(oat)(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=(oat)(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 Obtencion de la rma del iris 59
k=-1;
}
for(int i=this.cY;i!=(y1+y);i=i+(k))//las
{
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 Obtencion de la rma del iris 60
}
Una vez extrada la region del iris es necesario establecer una region caracterstica
que sirva para identicar y clasicar a cada iris. Para esto se establecio el algoritmo
de la obtencion de la rma del iris, en el cual se obtiene la rma.
Algoritmo 9 Obtencion de la rma del iris
Entrada: La matriz de pixeles que contiene la region real del iris.
Entrada: Coordenadas del centro y radio de la pupila y del iris.
1: Obtener el n umero de las de la matriz que contendra la rma del iris.
2: Recorrido radial y angular que permite obtener cada uno de los pxeles que con-
forman la region 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 la de la matriz.
Salida: La salida de esta etapa es una matriz que contiene la region del iris en forma
rectangular, llamada rma del iris.
Cabe mencionar que en este algoritmo fue necesario establecer los valores de la
matriz de pxeles que contendran a la rma del iris, es decir, realizar un proceso de
normalizacion en el tama no. Esto es debido a que el algoritmo de la extraccion del
iris obtiene la por la a los pxeles que conforman al iris, lo que genera matrices con
las de diferentes tama nos, tal y como se muestra en la gura 3.20.
Figura 3.20: Imagen que muestra la rma del iris extrada.
Para ejemplicar este procedimiento se puede observar la gura 3.21 y la gura
3.22.
En los parrafos anteriores se describe el proceso para la obtencion de la rma del
iris, y la clase implementada se muestra en la gura 3.23, as como el codigo que
permite elaborar estos programas.
3.3 Obtencion de la rma del iris 61
Figura 3.21: Figura que ejemplica el proceso de extraccion del iris.
Figura 3.22: Figura que ejemplica el proceso de extraccion del iris.
3.3 Obtencion de la rma del iris 62
Figura 3.23: Diagrama que muestra la clase que realiza la rma 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 rma del iris, es necesario establecer un mecanismo que permi-
ta determinar el grado de similitud entre distintas rmas, para saber si dos entidades
de iris (patron) pertenecen a la misma persona, o si dichas entidades corresponden
al iris de personas diferentes. Para ello, se utilizo la metrica de distancia binaria de
Hamming en una forma ponderada, es decir, dandoles mayor peso a ciertas renglones
3.4 Reconocimiento 64
del iris y menos a otras. Lo anterior es debido a la constitucion de las imagenes del
iris, que sugieren que ciertas zonas de la region de interes deben proporcionar mas
informacion que otras.
Algoritmo 10 Distancia de Hamming ponderada
Entrada: La rma del iris del sujeto 1 y del sujeto 2 a comparar.
1: Calcular la Distancia de Hamming de renglon i de la rma 1 contra el rengl on i
de la rma 2.
2: Multiplicar el valor de la distancia obtenido en el paso anterior por el factor de
ponderacion previamente establecido, dependiendo de la region a la que pertenez-
ca.
3: Obtener un valor caracterstico de cada rma, representado por la media ar-
itmetica de las Distancias de Hamming Ponderadas.
En la gura 3.24 se muestra el esquema de clase de la etapa de reconocimiento
del mecanismo de autenticacion y el codigo 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 (rmaA[i][j]!=rmaB[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 calculo de la distancia de Hamming
obtenida por el metodo descrito en el captulo 2 multiplicado por un factor de pon-
deraci on el cual se obtiene dinamicamente en cada rma considerando el nivel de
ruido que se encuentra presente en cada rma, de este modo tenemos dos casos.
Cuando el ruido es menos al 40 % del tama no de la rma, el 60 % restante
3.4 Reconocimiento 67
sera multiplicado por un factor de ponderacion de 0.6 y el restante sera multi-
plicado por 0.2, dividido en dos regiones correspondientes al 25 % y al 15 % del
total de la rma.
Cuando el ruido es mayor al 40 % el caso se invierte, se tendra un factor de
ponderacion de 0.6 para la seccion menor y 0.4 para la seccion donde exista
mayor ruido.
Captulo 4
Desarrollo de la Interfaz Graca
Una vez descrito el modulo de autenticacion implementado, se pretende mostrar
un ejemplo del uso que se le puede dar a dicho modulo.
El proposito de esta aplicacion esta orientado a la elaboracion de una interfaz
graca hecha con Java-Swing, con la nalidad de restringir el acceso a un recinto en
el caso de una vericacion, donde se autentica la identidad que una persona dice
tener. Aunque se pueden considerar aplicaciones en las que solo se requiere saber si
la persona pertenece a la base de datos (caso de la identicacion).
Mediante la interfaz graca es posible comprobar el objetivo del proyecto que
es la autenticacion de una persona. Principalmente consta de 4 ventanas, las cuales
aparecen secuencialmente para comprobar que el usuario que ingresa al mecanismo
es realmente quien dice ser.
En la gura 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 imagenes del usuario que loa persona dice ser.
La segunda ventana muestra la imagen del usuario cargada con las que se tienen
previamente adquiridas; con el boton vericar 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 guras 4.2, 4.3.
De la misma manera, al momento de oprimir el boton vericar el programa se
encarga de mostrar las salidas generadas en las etapas descritas en el captulo 3.

Estas se muestran en la gura 4.4. El codigo 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.
Captulo 5
Evaluacion y Analisis de
Resultados
En los dos captulos anteriores se describieron los algoritmos que se implementaron
para el mecanismo del reconocimiento del iris, as como una propuesta de aplicacion
en una interfaz graca. Una vez conocido esto, consideramos necesario establecer el
plan de pruebas referido a la parte algortmica con el n 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 graca, que permita evaluar
el funcionamiento de esa aplicacion en particular.
5.1. Evaluacion del mecanismo de autenticacion
Se llevaron a cabo las siguientes pruebas para el modulo del mecanismo de auten-
ticacion de personas, basado en el reconocimiento del iris.
1. Medicion del efecto del proceso de ltrado al variar los tama nos de las mascaras
de convolucion. Referido a la etapa de ltrado se probo con 3 distintos tama nos
de mascara: 3x3, 5x5 y 7x7. Se eligio trabajar con la mascara de 5x5, porque
se considera un tama no mediano de mascara que no demandara un alto poder
de computo, como en el caso de mascaras de tama no mas grande, obteniendose
resultados aceptables como se muestra en la imagen 5.1.
2. Medicion del rendimiento de la etapa de umbralizacion por histeresis 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 suciente informacion, para que en la
etapa de Hough sea posible determinar lo mas exacto posible los valores del
centro y radio de la pupila e iris. Se debe realizar la correcta eleccion de estos
72
5.1 Evaluacion del mecanismo de autenticacion 73
Figura 5.1: Filtrado Gaussiano con mascara de 5x5
umbrales, dado que a partir de ellos se puede encontrar la informacion suciente
para la determinacion de los centros y los radios, pero al mismo tiempo puede
arrojarnos demasiada informacion irrelevante, por lo que es necesario encontrar
valores de umbrales, en los cuales se evite el ruido (informacion innecesaria),
sin perder los datos que daran informacion importante a la etapa de Hough.
En las imagenes 5.2 y 5.3 se muestran los casos que ejemplican las situaciones
mencionadas
Figura 5.2: Imagen Umbralizada con t
alto
= 0.20 y t
bajo
= 0.19 que no proporciona
informacion suciente.
En la gura 5.3 se observan los pixeles que denen la circunferencia correspon-
diente al lmite entre el iris y la esclera, esta es la informacion necesaria para
que el algoritmo de Hough determine los radios y los centros de manera precisa.
3. Formas de extraer la region del iris.
5.1 Evaluacion del mecanismo de autenticacion 74
Figura 5.3: Imagen Umbralizada con t
alto
= 0.13 y t
bajo
= 0.10 que proporciona
informacion suciente.
Como ya se ha explicado, dado que la pupila y el iris no representan circunfe-
rencias perfectas ni concentricas, es necesario considerar por separado el radio
de la pupila y el radio del iris, al momento de la segmentacion de esa zona. Al
principio, por cuestiones de facilidad, se opto por considerar a estas 2 partes
como circunferencias concentricas; el resultado de esto provoco que se eliminara
una parte importante de la region del iris. Para evitar esto, se consideraron to-
talmente independientes el centro y el radio del iris y de la pupila, obteniendose
as la extraccion de la region del iris sin causar perdida de informacion.
Figura 5.4: Extraccion del iris considerando las circunferencias concentricas.
En la gura 5.4 se puede apreciar claramente que la region del iris obtenida
se muestra como una region circular perfecta, en la cual se eliminan las zonas
mas cercanas al lmite pupila-iris, que son las que contienen la informacion mas
relevante del iris. Por otro lado, en la gura 5.5 se observa que la extraccion se
5.1 Evaluacion del mecanismo de autenticacion 75
Figura 5.5: Extraccion del iris considerando las circunferencias con centros y radios
independientes.
realiza sin perdidas.
4. Uso de las distancias de Hamming para medir la similitud entre dos rmas de
iris.
Para la realizacion de estas pruebas se tomo una muestra de 7 elementos de
la base de datos de imagenes elegidos al azar, de los cuales se consideraron
2 imagenes del ojo izquierdo y 2 del ojo derecho. A cada una de estas se le
aplicaron todos los algoritmos descritos en el captulo 3 hasta obtener la rma
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 n de poder discriminar a una persona o
autenticar a la misma. Para nombrar a cada imagen se utilizo la nomenclatura
mostrada en la gura 5.6.
Figura 5.6: Nomeclatura utilizada como identicador para la rma de iris de cada
sujeto.
5.1 Evaluacion del mecanismo de autenticacion 76
Entidad Rango caracterstico
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 caracterstico de cada vector obtenido de sus comparaciones contra
s mismo.
Esta nomenclatura que identica cada rma se creo con el n de evaluar las
siguientes comparaciones:
Comparacion de la rma del iris del ojo izquierdo contra la rma del iris
del ojo derecho de un sujeto. Ejemplo: 1A1 vs 1B1.
Comparacion de la rma del iris, ya sea del ojo izquierdo o del ojo derecho,
contra la rma del iris de una imagen distinta perteneciente al mismo ojo.
Ejemplo: 1A1 vs 1A2.
Comparacion de la rma del iris de un sujeto, ya sea del ojo izqierdo o del
ojo derecho, contra la rma 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 caracterstico para cada entidad, de esta manera
se obtuvieron los valores mostrados en la tabla 5.1.
En la graca ?? se muestran los rangos caractersticos 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 demas sujetos evaluados.
En las gracas 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 region diere con
respecto a los valores de las otras dos regiones, y representa para cada sujeto su
valor caracterstico; esta variacion nos ayudara a determinar si una rma de iris
pertenece a un sujeto en particular, puesto que su magnitud se compara con las
5.1 Evaluacion del mecanismo de autenticacion 77
Figura 5.7: Graca de rmas de iris de las mismas entidades.
demas mostradas en la graca, y si alguna llega a tener una magnitud similar
a la de referencia, se podra concluir que pertenecen al mismo sujeto.
5.1 Evaluacion del mecanismo de autenticacion 78
Figura 5.8: Tabla de aciertos y errores.
5.1 Evaluacion del mecanismo de autenticacion 79
Figura 5.9: Graca del sujeto 4 contra las demas entidades.
5.1 Evaluacion del mecanismo de autenticacion 80
Figura 5.10: Graca del sujeto 83 contra las demas entidades.
Captulo 6
Conclusiones y Trabajo a Futuro
En el analisis de los sistemas de reconocimiento de iris que han sido desarrollados
en los ultimos a nos, se han revelado interesantes conclusiones. Puede armarse que
la segmentacion automatica es una etapa crtica para el reconocimiento de iris, ya
que las areas que son erroneamente identicadas como regiones de iris provocan que
se generen plantillas biometricas 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 imagenes tratadas. Por esta razon al estarse empleando
imagenes 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 modulo de software libre que puede ser usado para la au-
tenticacion de personas por medio del reconocimiento de imagenes, tomadas de su
iris. Debido a la modularidad del mismo y dado que este ha sido codicado en un
lenguaje de libre distribucion, como es el caso de JAVA (J2SE 5.0), todas las im-
plementaciones hechas pueden ser descargadas, estudiadas, modicadas y mejoradas
para ser incorporadas a otro tipo de aplicaciones.
La parte mas importante del desarrollo descansa en el algoritmo de segmentacion
automatica que se propone, que localiza la region del iris dentro de una imagen de
un ojo. La codicacion de las caractersticas del iris, se logra mediante un esquema
algortmico propuesto. Las distancias de Hamming fueron la metrica empleada para
medir la similitud entre dos patrones de iris comparados.
Una extension natural al presente trabajo, podra ser la inclusion de una interfaz
hacia una camara para la adquisicion de imagenes del iris, con lo que se lograra un
sistema completo para el reconocimiento de patrones de iris. Otra sera la implantacion
de los algoritmos desarrollados en sus versiones paralelas sobre dispositivos de logica
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 mas, o se piensa en su incorporacion a un
sistema de tiempo real.
Apendice A
Anexo
A.1. Diagrama de clases para el mecanismo de au-
tenticacion
En la gura A.1 se muestra el diagrama de clases empleado en la implemetacion
del algoritmo de reconocimiento.
A continuacion se muestra una seccion de codigo que genera la interfaz graca
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();
nal JButton Vericar = 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 autenticacion 84
//JPanel PnlAcceso= new JPanel();
JPanel PnlSalida= new JPanel();
// Decoracion look and Feel
JFrame.setDefaultLookAndFeelDecorated(true);
//Crear la Ventana principal
nal 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 autenticacion 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 Identicar));
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);
Vericar.setText(vercar);
Vericar.setBounds(15,520,100,25);
Vericar.setMnemonic(C);
Vericar.setToolTipText(Vericar);
resultado.setBounds(15,520,150,20);
resultado.setToolTipText();
A.1 Diagrama de clases para el mecanismo de autenticacion 86
Figura A.1: Diagrama de clases del mecanismo de autenticacion
Apendice B
Bibliografa
87
Bibliografa
[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 identication based on iris patterns
Proceedings of the 15th International Conference on Pattern Recognition, Spain,
Vol. 2, 2000.
[6] Daugman, J., High condence 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 Ecient 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 Identication 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. Ecient iris recognition through improve-
ment of feature vector and classier 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 parametro para la Identicacion Biometrica.
Revista de Divulgacion

Agora SIC Volumen 21. Septiembre de 2000. Grupo Uni-
versitario de Tarjeta Inteligente, Departamento de Tecnologa Fotonica, E.T.S.I.
Telecomunicacion, Universidad Politecnica de Madrid.
[15] Sossa, J. Rasgos Descriptores para el Reconocimiento de Objetos. Centro de In-
vestigacion en Computacion. IPN. Mexico 2006.
[16] Sig uenza, Juan A. Tecnologas Biometricas 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 edicion, 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.