Вы находитесь на странице: 1из 118

UNIVERSIDAD NACIONAL DEL ALTIPLANO PUNO

FACULTAD DE INGENIERA ESTADSTICA E INFORMTICA


ESCUELA PROFESIONAL DE INGENIERA ESTADSTICA E INFORMTICA









PROTOTIPO DE IDENTIFICACIN BIOMTRICA DE PERSONAS
POR MEDIO DEL RECONOCIMIENTO DE IRIS,
APLICANDO LAS TECNICAS DE JHON DAUGMAN,
PUNO 2013

TESIS

PRESENTADA POR

Bach. ngel Henrry Panca Nez

PARA OPTAR EL TTULO PROFESIONAL DE:

INGENIERO ESTADSTICO E INFORMTICO

PUNO PER
2013


UNIVERSIDAD NACIONAL DEL ALTIPLANO - PUNO

FACULTAD DE INGENIERA ESTADSTICA E INFORMTICA

ESCUELA PROFESIONAL DEINGENIERA ESTADSTICA E INFORMTICA


TESI S

PROTOTIPO DE IDENTIFICACIN BIOMTRICA DE PERSONAS
POR MEDIO DEL RECONOCIMIENTO DE IRIS,
APLICANDO LAS TECNICAS DE JHON DAUGMAN,
PUNO 2013.

Presentada por:
Bach. PANCA NUEZ NGEL HENRRY

A la Coordinacin de Investigacin de la Facultad de Ingeniera
Estadstica e Informtica de la Universidad Nacional del Altiplano - Puno,
para optar el Ttulo Profesional de:

INGENIERO ESTADSTICO E INFORMTICO


APROBADA POR:


PRESIDENTE DE JURADO :
M.Sc. EDGAR ELOY CARPIO VARGAS

PRIMER MIEMBRO :
M.Sc. SAMUEL DONATO PREZ QUISPE


SEGUNDO MIEMBRO :
M.SC. GODOFREDO QUISPE MAMANI


DIRECTOR DE TESIS :
M.Sc. PERCY HUATA PANCA


ASESOR DE TESIS :
M.Sc. LEONID ALEMAN GONZALES

i



DEDICATORIAS


















Este trabajo es dedicado a Dios que
me ha dado la vida y fortaleza para
terminar este proyecto de
investigacin.


A mis queridos padres ANA LUISA Y
ESTEBAN que siempre han estado
conmigo en todo momento, que
lucharon por m, para brindarme los
recursos necesarios para darme una
carrera profesional para mi futuro y
por creer en m, aunque hemos
pasado momentos difciles, siempre
han estado apoyndome y dndome
todo su amor. A mi hermano
MANUEL que muchas veces me
regalaste una sonrisa para seguir
adelante. LOS QUIERO MUCHO.

A la persona que siempre estuvo a mi
lado, en los momentos ms difciles
que pase en la formacin de mi
profesin y que siempre me impulso a
seguir adelante TE AMO MARTHA.


A mi amigo GEANCARLOS
(Q.E.P.D), s que ha sido un ngel
que siempre me apoyaste, ante
nuestro DIOS.

ii


AGRADECIMIENTOS


Mi ms sincero y profundo agradecimiento:
- A nuestra primera casa de estudios UNIVERSIDAD NACIONAL DEL
ALTIPLANO por haberme dado la oportunidad de cumplir este gran
sueo.
- A La Facultad de Ingeniera Estadstica e Informtica (FINESI) de la
Universidad Nacional del Altiplano de Puno (UNAP) y a sus autoridades
que la conducen, por haber permitido al interesado seguir estudios de
Pre Grado y por la ayuda y facilidades prestadas.
- A los Docentes de la Escuela Profesional de Ingeniera Estadstica e
Informtica de la Universidad Nacional del Altiplano de Puno, por sus
sabias enseanzas.
- A los estudiantes de la Escuela Profesional de Ingeniera Estadstica e
Informtica de la Universidad Nacional del Altiplano de Puno, por su
valiosa colaboracin.
- A todas las personas, amigos y familiares por su aliento, apoyo
desinteresado y colaboracin durante mi formacin profesional.

iii

INDICE
DEDICATORIA ....................................................................................................... i
AGRADECIMIENTO ............................................................................................... ii
RESUMEN ............................................................................................................. ix
ABSTRACT ............................................................................................................ xi
INTRODUCCIN ................................................................................................ xiii

CAPITULO IPLAN DE INVESTIGACIN ............................................................... 1
1.1 PLANTEAMIENTO DEL PROBLEMA ............................................................. 1
1.1.1 Formulacin y Definicin del Problema ................................................ 1
1.1.2 Formulacin del problema .................................................................... 2
1.2 OBJETIVOS .................................................................................................... 2
1.2.1 Objetivo General .................................................................................. 2
1.2.2 Objetivos Especficos ........................................................................... 2
1.3 HIPTESIS ..................................................................................................... 2
1.3.1 Hiptesis General ................................................................................. 2

CAPITULO IIMARCO TERICO ............................................................................ 3
2.1 ANTECEDENTES DE LA INVESTIGACIN .................................................. 3
2.1.1 Antecedentes de Nivel Internacional .................................................... 3
2.1.2 Antecedentes de Nivel Local. ............................................................... 4
2.2 BIOMETRA .................................................................................................... 6
2.3 EL IRIS HUMANO ........................................................................................... 7
2.4 PATRN DEL IRIS ......................................................................................... 9
2.5 PROCESAMIENTO DE IMGENES POR COMPUTADORA ......................... 9
2.5.1 La cuantificacin ................................................................................. 12
2.5.2 Imagen digital ..................................................................................... 13
2.6 TRATAMIENTO DE IMGENES .................................................................. 17
iv

2.6.1 Etapas para el tratamiento de imgenes ............................................ 18
2.6.2 Segmentacin .................................................................................... 25
2.7 FUNCIONES PARTICULARES. ................................................................... 30
2.7.1 Detector circular de Hough. ................................................................ 30
2.7.2 Transformada de Gabor ..................................................................... 31
2.8 MARCO CONCEPTUAL. .............................................................................. 34
2.9 OPERACIONALIZACIN DE VARIABLES. .................................................. 35

CAPITULO III METODOS Y MATERIALES .................................................. 36
3.1 TIPO DE INVESTIGACIN........................................................................... 36
3.2 DISEO DE ESTUDIO ................................................................................. 36
3.3 POBLACIN ................................................................................................. 36
3.4 MTODOS DE RECOPILACIN DE DATOS............................................... 36
3.5 METODOLOGA PARA EL RECONOCIMIENTO DE IRIS .......................... 37
3.5.1 Desarrollo Organizacin del proyecto ................................................ 38

CAPITULO IVRESULTADOS Y DISCUSIN ....................................................... 43
4.1 ANALISIS DE REQUISITOS ......................................................................... 43
4.1.1 Creacindelaplantilla - obtencion de la
muestra. ........... 43
4.1.2 Creacin de la plantilla extraccin de los datos de interes ... 43
4.1.3 Creacin de la plantillaTransformacinde datos en plantilla
biomtrica ........................................................................................... 45
4.1.4 Comparacin de plantiullas biomtricas ....................................... 46
4.2 IMPLEMENTACIN ...................................................................................... 47
4.2.1 Adquisicin de las imgenes ........................................................... 47
4.2.2 Segmentacin .................................................................................... 48
4.2.3 Obtencion del iris ................................................................................ 55
4.3 RECONOCIMIENTO (Codificacin y matching)............................................ 61
v

4.3.1 Metodosdecodificacinymatchingexistentes....................................... 61
4.3.2 Implementacin .................................................................................. 67
CONCLUSIONES ................................................................................................. 73
RECOMENDACIONES Y SUGERENCIAS ........................................................... 75
BIBLIOGRAFIA .................................................................................................... 76
ANEXOS ............................................................................................................... 78


vi

INDICE DE FIGURAS
FIGURA N 01: PARTES DEL OJO .................................................................. 7
FIGURA N 02: DETALLE DEL IRIS ................................................................. 8
FIGURA N 03: IMAGEN TOMADA CON DIFERENTES ..................
RESOLUCIONES ................................................................. 12
FIGURA N 04: NIVELES DE CUANTIFICACIN DE LA SEAL ..................
DE LAINTENSIDAD LUMINOSA .......................................... 13
FIGURA N 05: IMAGEN CON SU CORRESPONDIENTE ..................
HISTOGRAMA ...................................................................... 16
FIGURA N 06: IMAGEN CON SU CORRESPONDIENTE ..................
HISTOGRAMA RGB .......................................................... 17
FIGURA N 07: HISTOGRAMAS QUE EJEMPLIFICAN EL .................
PROBLEMADE CONTRASTE .............................................. 21
FIGURA N 08: ALGORITMO PARA EL ESTIRAMIENTO ..................
DE HISTOGRAMA .............................................................. 22
FIGURA N 09: PROCESO DE ECUALIZACIN DE HISTOGRAMA ............ 23
FIGURA N 10: PROCESO DE CONVOLUCIN. .......................................... 24
FIGURA N 11: DETECTOR DE CONTORNOS CANNY ............................... 30
FIGURA N 12: CADA PUNTO DE CONTORNO (IZQ.) ..................
EN LA IMAGEN REAL SIRVE DE CENTRO ................
PARA UN CRCULO CREADO EN EL ESPACIO ...............
DE HOUGH (DER) .......................................................... 31
FIGURA N 13: RESULTADO DE NORMALIZACIN DE UN IRIS ...............
A LA DERECHA, LA MATRIZ 2D RESULTANTE ............ 32
FIGURA N 14: CURVA GAUSSIANA FIG. (IZQ.) WAVELET .............
GABOR RESULTANTE FIG. (DER) ............................... 33
vii

FIGURA N 15: RESULTADOS TRAS WAVELETS GABOR: PARTE ..............
REAL DE LA PLANTILLA .............................................. 33
FIGURA N 16: DIAGRAMA DE BLOQUES DEL SISTEMA ...............
DE RECONOCIMIENTO DEL IRIS ................................... 37
FIGURA N 17: SISTEMA DE RECONOCIMIENTO: ...............
AUTENTIFICACIN Y IDENTIFICACIN ...................... 38
FIGURA N 18: MODULO DE EXTRACCIN DE DATOS DE ...............
INTERS .............................................................................. 44
FIGURA N 19: MDULO DE TRANSFORMACIN EN ...............
PLANTILLA BIOMTRICA ............................................... 46
FIGURA N 20: MDULO DE COMPARACIN DE PLANTILLAS ...............
BIOMTRICAS ..................................................................... 46
FIGURA N 21: IMAGEN CAPTURA POR EL COMPUTADOR ...................... 48
FIGURA N 22: CAPTURAS TPICAS DEL IRIS HUMANO ........................... 54
FIGURA N 23: SEGMENTACIN DE LA PUPILA ......................................... 54
FIGURA N 24: REDIMENSIN DE LA IMAGEN ........................................... 55
FIGURA N 25: IMAGEN ORIGINAL (IZQ), IMAGEN CON ................
TRATAMIENTO PREVIO (DER) ........................................ 56
FIGURA N 26: IMAGEN DE CONTORNOS RESULTANTE DE LA................
APLICACIN DE CANNY EDGE ........................................ 57
FIGURA N 27: REGIN DE LA PUPILA OBTENIDA A PARTIR ................
DE LA REGIN DEL IRIS ........................................... 57
FIGURA N 28: IMAGEN (IZQ.), SU HISTOGRAMA (CENTRO) ...............
Y LA DETECCIN CANNY (DER.) .................................. 58
FIGURA N 29: ZONA OCLUIDA POR LOS PARPADOS ..............
MARCADOS COMO RUIDO ............................................... 59
viii

FIGURA N 30: IMAGEN (IZQ.) LNEA DETECTADA (CENTRO) ...............
LNEA DE INTERSECCIN (DER.) ..................................... 60
FIGURA N 31: DETALLE DE PESTAAS MARCADAS COMO ...............
RUIDO. IMAGEN ORIGINAL (IZQ.) IMAGEN ................
RUIDO (DER.) ................................................................ 61
FIGURA N 32: EJEMPLO DE FILTRO DE GABOR. ..................................... 64
FIGURA N 33: ESQUEMA DE LA NORMALIZACIN DEL IRIS ................... 67
FIGURA N 34: TEXTURA NORMALIZADA Y MSCARA DE RUIDO ........... 68
FIGURA N 35: EXTRACCIN DE SEAL ES UNIDIMENSIONALES ..............
DE LA TEXTURA DEL IRIS.................................................. 70
FIGURA N 36: PROCESO DE CODIFICACIN: .......................................... 70
FIGURA N 37: POSICION DE FASE. ............................................................ 71

ix

RESUMEN
La biometra en la actualidad es un tema muy estudiado por investigadores,
que es una tcnica para reconocer a las personas basadas en la voz, la mano,
el rostro, la huella dactilar, la retina, entre otras caractersticas, sin embargo no
es muy eficiente porque es univoca, ya que es muy comn y no garantiza en
reconocer a la persona original. Es por esa razn que en el presente trabajo de
investigacin se desarrolla una nueva metodologa para el reconocimiento de
personas que sea ms eficaz en evitar las suplantaciones y se fija como
objetivo principal desarrollar un prototipo de identificacin de personas por
medio del reconocimiento del iris.
Se ha empleado en el desarrollo del prototipo la metodologa de cascada el
cual se basa en capturar la imagen del iris para hacer un tratamiento a dicha
imagen, seguidamente se realiza la segmentacin de la imagen utilizando el
algoritmo de la transformada de Hough y posteriormente se extrae la parte del
iris para el cual la imagen deber estar segmentada para aplicar nuevamente el
detector de Hough y despus para realizar el reconocimiento se tendr que
codificar el iris en cdigo binario para realizar las comparaciones se utiliza la
distancia de haming. Se capturo la imagen del iris ocular de 10 personas lo cual
se puso en una base de datos y se evalu la eficiencia y originalidad de cada
persona.


x

Se concluye que, con el prototipo desarrollo de identificacin biomtrica de
personas por medio del reconocimiento del iris, se evita las suplantaciones en
exmenes, accesos a lugares restringidos, el uso de tarjetas bancarias entre
otras modalidades a lo cual se quiera una seguridad exclusiva. Con la prueba
de evaluacin realizada a los usuarios se obtuvo un 100% de eficacia y
satisfaccin considerndolo como aceptable.
Palabras claves: Algoritmo, biomtrica, prototipo, distancia de Haming,
reconocimiento de iris, segmentacin, transformada de Hough.

















xi




ABSTRACT
Biometrics is currently a hot topic studied by researchers, which is a technique
for recognizing people based voice, hand, face, fingerprint, retina, among other
features, however it is not very efficient because it is unambiguous, as it is very
common and does not guarantee to recognize the original person. It is for this
reason that in the present research develops a new methodology for the
recognition of people to be more effective in preventing spoofing and fixed main
objective is to develop a prototype for identifying persons through iris
recognition.
Has been used in the development of prototype waterfall methodology which is
based on capturing the iris image to a treatment that image, then the image
segmentation is performed using the algorithm of Hough transform and
subsequently extracted iris portion to which the image should be segmented to
reapply Hough detector and then to perform the recognition will have to encode
the binary iris code for comparisons Haming distance used. The image of the
eye iris of 10 people which was put into a database and the efficiency and
uniqueness of each person was evaluated was captured.



xii



We conclude that, with the prototype development of biometric identification of
individuals through iris recognition, impersonations in exams, access to
restricted areas, the use of bank cards and other modalities which wants, an
exclusive security is avoided. With the Assessment on users was obtained
100% efficiency and satisfaction regarding it as acceptable.
Keywords: Algorithm, biometrics, prototype, Haming distance, iris recognition,
segmentation, Hough transform.


xiii


INTRODUCCIN
A lo largo de la historia el ser humano ha implementado distintos mtodos para
reconocerse y poder distinguirse entre las dems personas. Entre los mtodos
ms usados se destacan: la altura, la forma de la cara, las huellas digitales, el
lbulo de la oreja, entre otros, esto nace debido al inters natural del hombre
por querer proteger lo que le pertenece y mantener privacidad en sus acciones.
Es as como nace una ciencia en la cual fundamentos matemticos y
caractersticas humanas llegan a mezclarse. A esto se le denomina Biometra.
Entonces, para realizar un estudio biomtrico y el reconocimiento de una
persona, ser necesaria una caracterstica invariante a lo largo de su vida. A
este proceso se le conoce como el reconocimiento de patrones.
Es por esto, que el reconocimiento del iris es uno de los avances ms
interesantes y confiable dentro del reconocimiento de personas. Este mtodo
est desarrollado en cuatro captulos:
En el primer captulo se presenta el planteamiento del problema, objetivos,
hiptesis de la investigacin.
En el segundo captulo se presenta el marco terico que consiste en:
antecedentes de la investigacin, definicin de trminos bsicos, marco
conceptual, operacionalizacin de variables.

xiv

En el tercer captulo se presenta los mtodos y materiales. En este captulo se
presenta los principales temas concernientes al tipo y diseo de la
investigacin.
En el cuarto captulo se presenta los resultados y la discusin que es
fundamental para el desarrollo del prototipo de identificacin de personas.







1

CAPITULO I
PLAN DE INVESTIGACIN
1.1 PLANTEAMIENTO DEL PROBLEMA
1.1.1 Formulacin y Definicin del Problema
En las ltimas dcadas ha surgido el tema de reconocer a las
personas por medio de tcnicas biomtricas basadas en voz, mano,
rostro, huella dactilar, oreja, retina, firma, forma de caminar, por lo
que segn estudios estas tcnicas no son tan eficientes para la
identificacin de personas, por lo que se propone en esta
investigacin es aplicar otra forma de identificar a una persona que
es el reconocimiento por iris ocular de una persona que es un tema
muy estudiado en la actualidad.
En los ltimos aos el reconocimiento de iris ha atrado la atencin
de muchos investigadores, ya que una de las metas ms importantes
que persiguen es comprender la forma y constitucin del iris ocular
humano y las diferencias que existen entre ellas.
Numerosos enfoques han sido aplicados en la ejecucin de este
proyecto, buscando la efectividad en el reconocimiento por medio de
iris ocular, gracias al desarrollo tecnolgico se ha podido lograr. La
particularidad que tiene este rgano es que no solo es nico para
cada individuo, sino que tiene una forma similar para todos los
2

individuos.
1.1.2 FORMULACIN DEL PROBLEMA
Ser eficiente el desarrollo e implementacin de un prototipo de
reconocimiento de personas por medio del iris ocular, en evitar
suplantaciones para cualquier medida de seguridad?
1.2 OBJETIVOS
1.2.1 Objetivo General
Desarrollar e implementar un prototipo eficiente para el
reconocimiento de personas por medio del iris ocular, para evitar
suplantaciones para todas las modalidades de seguridad.
1.2.2 Objetivos Especficos
Desarrollar el mdulo para el pre procesamiento de imagen
Desarrollar el mdulo para la segmentacin de la imagen
Desarrollar el mdulo para la Obtencin del iris
Desarrollar el mdulo de reconocimiento de iris
1.3 HIPTESIS
1.3.1 Hiptesis General
El prototipo de identificacin de personas por medio del
reconocimiento del iris es eficiente en detectar suplantaciones en
los usuarios para todas las medidas de sefuridad.

3

CAPITULO II
MARCO TERICO
2.1 ANTECEDENTES DE LA INVESTIGACIN
2.1.1 Antecedentes de Nivel Internacional
Baldo Romero Paulina y Garcia Molina Josue (2007).
Autentificacin Biomtrica de Personas por medio de
Reconocimiento del Iris. Tesis para Optar el Ttulo de Ingeniero
en comunicaciones y Electrnica. Mxico. Instituto Politcnico
Nacional de Mxico.
Tiene por objetivo general Proponer un mecanismo eficiente
para la autenticacin biomtrica de personas basado en el
reconocimiento del patrn del iris. En este trabajo presenta el
desarrollo de una aplicacin de software libre (Implementacin en
plataformas de libre distribucin) y de dominio pblico para la
autentificacin biomtrica de personas basada en reconocimiento
de iris. Con l se verifica la unicidad del patrn de iris del ojo as
como confiabilidad para usarse como tcnica de autenticacin
biomtrica. Para evaluar el rendimiento de los algoritmos
implementados se hizo de una base de datos de imgenes
tomadas del iris de alrededor de 108 personas (756 imgenes),
donde verifican el rendimiento de esta aplicacin.
4

2.1.2 Antecedentes de Nivel Local.
Cayo Cabrera Guido Humberto (2005). Prototipo neurogenetico
aplicado en el reconocimiento de imgenes bidimensionales
estticas: Rostros, Cdigo de Barras y Firmas. Tesis de Maestra
en Informtica. Puno Per. Universidad Nacional del Altiplano.
Para la construccin del prototipo se ha considerado los
siguientes aspectos: modelo de neurona, arquitectura o topologa
de conexin, y algoritmo de aprendizaje. Siendo la ms ptima
por su simplicidad en el aprendizaje para la red, el modelo
supervisado unidireccional BACKPROPAGATION-SUPERVISED
LEARNING, ya que hace backtracking hacia la entrada una vez
que tiene los datos en la salida.Al igual que las redes neuronales,
los algoritmos genticos tambin cuentan con la capacidad para
resolver un problema especfico, pero a diferencia de los
parmetros-red, cualquier presentacin puede ser expresada
como una cadena de palabras de longitud fija (genotipo) sobre
una finita (tpicamente el binario) a ser usada. La interpretacin
(es decir el phenotype) de cadenas (genotipo) no es relevante
para el algoritmo, inclusive si estos son: los parmetros de
diseo del motor de inferencia, la estrategia a utilizar o, en
cuanto a este proyecto, los pesos y vas de la red neuronal.Los
algoritmos genticos son mtodos sistemticos para la resolucin
de problemas de bsqueda y optimizacin, que aplican a estos
5

los mismos mtodos de la evolucin biolgica: seleccin basada
en la poblacin, reproduccin sexual y mutacin. Los algoritmos
genticos son mtodos de optimizacin, que tratan de resolver el
mismo conjunto de problemas que se ha contemplado
anteriormente, es decir, el objetivo es hallar (xi,.......,xn) tales
que F(xi,.....,xn) sea mximo. En un algoritmo gentico tras
parametrizar el problema en una serie de variables, (xi,......,xn) se
codifican en un cromosoma. Todos los operadores utilizados por
un algoritmo gentico se aplicarn sobre estos cromosomas, o
sobre poblaciones de ellos.
El proyecto permite analizar y decodificar mediante tcnicas
inteligentes los medios de seguridad grficos y obtener as la
recuperacin y verificacin de datos de una persona
garantizando un alto grado de eficiencia y certeza e la validacin
de los datos. La realizacin del procesamiento de imgenes
consume demasiado recurso de memoria y tiempo de
procesamiento, motivo por el cual la ejecucin de redes
neuronales sobre stas implica optimizar el proceso de
aprendizaje de tal forma que se consiga una convergencia ms
veloz. Las bsquedas de imgenes dentro de bases de datos
pueden simplificarse mediante el empleo del prototipo Hbrido
Neurogentico, ya que no necesariamente puede ser aplicado a
firmas personales sino tambin a otros patrones similares. La
6

tcnica hbrida que se implement en el prototipo fue de gran
utilidad demostrando una vez ms las ventajas de combinar las
funcionalidades de dos tcnicas de la Inteligencia Artificial, que
dieron como resultado sacar lo mejor de ellas en la
implementacin del sistema.
BASE TERICA
2.2 BIOMETRA
La biometra hace uso de las caractersticas nicas de una persona para
permitir su reconocimiento automtico. Se han desarrollado sistemas
biomtricos basados en las huellas dactilares, la voz, la fisiologa de las
manos o la cara, la escritura, la retina o el iris (Wikipedia L. e., 2012).
En estos ltimos aos la biometra ha crecido exponencialmente. De usar
simplemente la huella dactilar, cuyos orgenes datan del siglo XIV en China,
se ha pasado a emplear muchos mtodos distintos teniendo en cuenta varias
medidas fsicas y de comportamiento.
A pesar de la diversidad de estos sistemas, el procedimiento es comn a
todos. Primero se captura una muestra del rasgo estudiado, por ejemplo una
foto un color de la cara o una muestra de voz. De la muestra se extrae un
conjunto de datos de datos de inters, que luego son transformados,
mediante algoritmos matemticos, en una plantilla biomtrica. Esta plantilla
proporciona una representacin normalizada del rasgo, que permite su
7

posterior comparacin con otras plantillas pertenecientes al mismo o a otro
individuo.
El concepto biometra proviene de las palabras bio (vida) y metra (medida),
por lo tanto con ello se infiere que todo equipo biomtrico mide e identifica
alguna caracterstica propia de la persona (Sanchez, 2000).
La biometra es una tecnologa de seguridad basada en el reconocimiento de
una caracterstica de seguridad y en el reconocimiento de una caracterstica
fsica e intransferible de las personas, como por ejemplo la huella digital.
2.3 EL IRIS HUMANO
El iris es la membrana coloreada y circular del ojo (Figura 1) que separa la
cmara anterior de la cmara posterior. Posee una apertura central de
tamao variable que comunica las dos cmaras: la pupila. Corresponde a la
porcin ms anterior de la tnica vascular, la cual forma un diafragma
contrctil delante del cristalino. Se ubica tras la crnea, entre la cmara
anterior y el cristalino, al que cubre en mayor o menor medida en funcin de
su dilatacin (Wikipedia L. e., 2012).

Figura N 01: Partes del ojo
El iris (Figura. 2) es la zona coloreada del ojo. En su centro se encuentra la
8

pupila, de color negro; la zona blanca que se encuentra alrededor se
denomina esclertica.

Figura N 02: Detalle del iris

La utilizacin del iris para identificacin biomtrica se considera ideal por una
serie de razones:
Es un rgano interno, al estar protegido por la crnea. Esto hace que no
sea susceptible al dao puntual o al paso del tiempo como lo son por
ejemplo las huellas dactilares.
Visto de frente, el iris es prcticamente plano, y su configuracin
geomtrica circular slo se ve modificada por dos msculos: el esfnter
del iris y el de la pupila. Por tanto, la forma del iris resulta mucho ms
simple y tratable que la de por ejemplo, la cara.
La textura del iris se crea aleatoriamente durante la gestacin. Incluso
gemelos genticamente idnticos (poseedores del mismo ADN) tienen
9

iris diferente.
La toma de fotografas para el reconocimiento no requiere que la persona
toque ningn equipo.
2.4 PATRN DEL IRIS
Una propiedad que el iris comparte con las huellas dactilares es la morfologa
aleatoria de su estructura. No existe alteracin gentica en la expresin de
este rgano ms all de su forma anatmica, fisiologa, color y apariencia
general. La textura del iris por s misma es estocstica o posiblemente
catica. Pero el iris disfruta de ventajas prcticas adicionales sobre las
huellas dactilares y otras variables biomtricas, como son:
La facilidad de registrar su imagen a cierta distancia, sin la necesidad de
contacto fsico o intrusivo y quizs discretamente.
Estable y sin cambio durante el periodo de vida del sujeto, inalterable
durante toda la vida de la persona.
2.5 PROCESAMIENTO DE IMGENES POR COMPUTADORA
El procesamiento de imgenes es el conjunto de tcnicas que se aplican a
las imgenes digitales con el objetivo de mejorar la calidad o facilitar la
bsqueda de informacin.
Las operaciones que se pueden realizar con imgenes se dividen en:
Operacin de punto
Operaciones de entorno
10

Operaciones con dos o msimgenes
El procesamiento y anlisis de imgenes digitales se aplican con el objetivo
de captar y manipular grandes cantidades de informacin espacial de
matrices de valores. Esta distincin sita al procesamiento y anlisis de
imgenes digitales como una tecnologa asociada a las Ciencias de la
computacin (Daugman J. , 2000).
La secuencia tpica de procesado de imgenes suele implicar los siguientes
pasos:
1. Captura de la imagen a partir del proceso fsico que la genera mediante
el sensor adecuado.
2. Restauracin y realce para reducir ruidos y mejorar su calidad.
3. Codificacin, segmentacin y extraccin de propiedades.
El anlisis humano de imgenes u objetos presenta dificultades, pues el
proceso de inspeccin visual consume una gran cantidad de tiempo y est
sujeto a interpretaciones incoherentes e incompletas. El procesamiento de
imgenes, que comprende la manipulacin por ordenador de imgenes
reales, resuelve estos problemas al poder automatizar el proceso de
extraccin de informacin til de los datos de la imagen. Con el
procesamiento de imgenes, tambin se puede perfeccionar la imagen,
corregir distorsiones.
Uno de los ms importante y sencillo preprocesamientos es la deteccin de
bordes. Importante porque de l se puede empezar a extraer importante
11

informacin de la imagen, como pueden ser las formas de los objetos que la
componen, y sencillo porque los operadores de deteccin de bordes son
simples mscaras de convolucin.
La deteccin de bordes es a menudo el primer paso en la segmentacin de
la imagen, que es un campo del anlisis de la imagen, y se utiliza para
agrupar los pxelesen regiones para determinar una composicin de la
imagen. La deteccin de bordestambin es usada en el registro de imagen,
el cual alinea dos imgenes que podran seradquiridas en momentos
separados.
Los bordes de una imagen contienen mucha informacin de la imagen.
Losbordes cuentan donde estn los objetos, su forma, su tamao, y tambin
su textura.Los ejes o bordes se encuentran en zonas de una imagen donde
el nivel de intensidadflucta bruscamente, cuanto ms rpido se produce el
cambio de intensidad, el eje oborde es ms fuerte.
En el procesamiento de imgenes se utilizan diferentes tcnicas para realzar
las propiedades de la imagen a fin de facilitar el proceso de segmentacin, la
extraccin de caractersticas y finalmente su interpretacin.
Las tcnicas de procesamiento de imgenes se pueden clasificar en:
Las procedentes del procesamiento de seales.
Las que mejoran algn aspecto de la imagen.
12

El proceso de muestreo es la tarea de discretizacin del escenario en el
plano sensor y estrelacionado con la resolucin espacial de la imagen.

Figura N 03: Imagen tomada con diferentes resoluciones

2.5.1 La cuantificacin
La cuantificacin de la seal es el nmero finito de los valores de
intensidad de cada pxel. Se suele emplear un byte de cuantificacin
por pxel, consiguiendo as 256niveles de gris. El 0 corresponde al
color negro y el 255 al blanco. Entre estos dos valores estn los
distintos tonos de gris.
Para las imgenes en color, la cuantificacin es vectorial; por cada
pxel se representan tres valores. Estos tres valores dependen del
13

sistema de representacin del color: RGB (Red Green Blue), HSV
(Hue, Saturation, Value), HSI Comnmente se utiliza RGB con un
byte por cada color consiguiendo 256 niveles o 16 millones
decolores.

Figura N 04: Niveles de cuantificacin de la seal de la intensidad luminosa

En las tcnicas de procesado de las imgenes se trata el valor de la
intensidad de cada pixel hasta conseguir el resultado adecuado.
2.5.2 Imagen digital
Una imagen digital es una funcin f(x,y) que ha sido discretizada en
ambas coordenadas espaciales (x,y) y en el nivel de gris. Se
considera que el nivel de brillo mnimo equivale al negro, el mximo
14

al blanco y los valores intermedios son distintosniveles de gris que
varan del negro al blanco.
Principalmente, tenemos las siguientes caractersticas de una
imagen:
La resolucin: La resolucin de una imagen se refiere al nmero
de puntos porunidad de distancia que sta tiene, de forma que a
mayor nmero de puntospor centmetro mayor resolucin y ms
definida estar la imagen.
La profundidad del color: La profundidad del color de una imagen
se refiere alnmero de niveles de gris (o nmero de colores) que
empleamos pararepresentar la imagen. Un valor aceptable
podra corresponder con unaprofundidad de color de 8 bits,
equivalente a 256 distintos niveles de gris.
a) Binarizacin de una imagen
La binarizacin de imgenes es una tarea bsica en muchas
aplicaciones de procesamiento digital de imgenes. El objetivo es
obtener una imagen que solo sea representada por dos tonos de
color, por lo general blanco y negro. La idea para realizar este trabajo
es sencilla, solo hay que decidir qu tono de color dar a cada pxel
que sea mayor que un determinado umbral (valor lmite), el resto de
pxeles tendrn por defecto el otro tono de color.
15

La binarizacin de una imagen consiste en comparar los niveles
de gris presentes en la imagen con un valor (umbral)
predeterminado. Si el nivel de gris es menor que el umbral
predeterminado, se le asigna al pxel de la imagen binarizada el valor
0 (negro), y si es mayor, se le asigna un 1 (blanco). De esta forma se
obtiene una imagen en blanco y negro.
Generalmente se utiliza un umbral de 128 si se trabaja con 255
niveles de gris, pero en algunas aplicaciones se requiere de otro
umbral.
b) Histogramas de una imagen
El histograma de una imagen contiene la informacin de la
probabilidad de aparicin de las distintas tonalidades de color que se
pueden dar en cada caso, ya que podemos trabajar en distintos tipos
de colores o en escala de grises. En el caso de una imagen en color,
no podemos hablar de un nico histograma que caracterice a la
imagen, sino de tres histogramas, uno para cada color (RGB, por
ejemplo).
La creacin de un histograma, en el caso de una imagen en
escala de 256tonalidades del blanco al negro (escala de grises), se
realiza fcilmente mediante medios informticos, de manera que, en
primer lugar se crea un vector que contenga256 posiciones, una por
cada nivel de gris, el algoritmo recorrer cada uno de los pixeles de
16

la imagen, aumentando en una unidad el valor guardado en la
posicin del vector correspondiente al tono del pixel en cuestin.


Figura N 05: Imagen con su correspondiente histograma

El histograma proporciona una descripcin de la apariencia
global de una imagen. De forma que si los niveles de gris estn
concentrados hacia el extremo oscuro del rango de la escala de gris,
la apariencia global de la imagen ser oscura, mientras que si
sucede justo lo contrario, la imagen correspondiente ser brillante.
Por su parte, el histograma que presente un perfil estrecho
corresponder a una imagen de bajo contraste y un histograma con
una dispersin considerable a una imagen de alto contraste.
En el caso de la imagen en color, aparecen tres histogramas,
de forma que el tratamiento de imgenes en color se complica por la
aparicin de nuevos componentes. Ahora el histograma no contiene
los tonos del negro al blanco, sino del negro al color correspondiente
(rojo, verde o azul caso RGB ). Al elaborar el histograma, el
algoritmo debe separar el color correspondiente a cada pixel en sus
componentes RGB (rojo, verde y azul).
17


Figura N 06: imagen con su correspondiente histograma RGB

Un histograma es un grfico estadstico que permite
representar la distribucinde intensidad de los pxeles de una
imagen, es decir, el nmero de pxeles quecorresponde a cada
intensidad luminosa. Por convencin, el histograma representa
elnivel de intensidad con coordenadas X que van desde lo ms
oscuro a lo ms claro.
En general, se representa como un grfico de barras en el que
las abscisas son los distintos colores de la imagen y las ordenadas la
frecuencia relativa con la que cada color aparece en la imagen. El
histograma proporciona informacin sobre brillo y el contraste de la
imagen, y puede ser utilizado para ajustar estos parmetros, eliminar
ciertas tonalidades molestas.
2.6 TRATAMIENTO DE IMGENES
El tratamiento o edicin de imgenes digitales manifiesta una tendencia clara
al acercamiento entre el sistema vectorial (objetos) y el raster (pixeles). Una
18

muestra evidente son las transformaciones: Escalar, Rotar, Estirar, Sesgar,
Distorsionar, Perspectiva, Deformar.
2.6.1 Etapas para el tratamiento de imgenes
a) Adquisicin
En esta etapa se adquirir las imgenes mediante una cmara.
b) Procesamiento digital de Imgenes
En esta etapa se describirn algunos conceptos importantes sobre el
procesamiento digital de imgenes tiles para el desarrollo del
presente proyecto de investigacin, ya que las imgenes que se
emplearan son de naturaleza totalmente digital.
El termino imagen se refiere a una funcin bidimensional de
intensidad de luz f(x,y), donde x , 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 de la regin son filas y
columnas que identifican un punto en la imagen y el correspondiente
valor del elemento de la matriz identifica el nivel de intensidad de luz
en ese punto tal y como se muestra en la ecuacin 1. Los elementos
de tal arreglo digital son llamados elementos de la imagen,
elementos de pintura o pixeles.
19

(, ) = [
(0,0) (0,1) (0, 1)
(1,0) (1,1) (0, 1)

(1,0)

(1,1)

(1, 1)
] (1)
El nivel de brillo, o valor de cada pixel, es cuantizado a cdigos
binarios enteros positivos. El nmero de niveles de cuantizacin est
determinado por la relacin (2).
L = 2
B
(2)
Donde B representa el nmero de bits necesarios para cada muestra.
Esto es, con 6 bits de cuantizacin en la intensidad se pueden
representar 64 niveles de gris (2
6
= 64).
Para tener una buena imagen de buena calidad para el ojo humano
es necesario tener como mnimo 64 niveles de gris(Gonzalez &
Woods, 2003). Para una apreciacin fina se usa una cuantizacin
estndar de 8 bits, esto es, 256 niveles de gris. A una imagen
cuantizada de esta manera se conoce como imagen en tonos de gris.
Una imagen binaria es una imagen monocromtica a 1 bits por pixel,
esto es, dos niveles, blanco o negro.
Como ya se dijo, el valor f, denotar el color, tono o nivel de gris de
un elemento de imagen (Pixel) en cierta coordenada (x, y). Un tono
muy claro (el ms claro), denotar una cantidad de luz alta (tono
blanco), mientras que un tono muy obscuro (el menos claro),
denotar una cantidad de luz baja (tono negro).

20

c) Pre-procesamiento
Por lo general, cuando se trabaja con imgenes se debe realizar una
etapa previa llamada pre-procesamiento, ya que hay que considerar
ciertos factores que podran afectar directamente en el xito o el
fracaso de nuestro sistema de reconocimiento.
Por otra parte, el tamao del iris generalmente varia en diferentes
imgenes debido a la contraccin o a la dilatacin del iris causada
por diferentes niveles de iluminacin; tambin que se pueden tener
diferentes distancias entre el ojo y la cmara, rotacin del ojo y otros
factores. Debido a todo esto, es necesario aplicar un procesamiento
a las imgenes antes de utilizarlas en las siguientes etapas del
proceso.
Estiramiento del histograma.- El mtodo de Estiramiento de
Histograma se aplica con la finalidad de mejorar el contraste de
las imgenes, es decir, obtener imgenes 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
funcin de mejoramiento de contraste sobre una imagen con poco
contraste, la imagen resultante obtiene una mejora en la
apreciacin visual de la imagen, que se ve reflejada en una mayor
expansin 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 funcin discreta P=nr donde r representa un nivel
21

de gris y nr representa el nmero de pixeles que tienen ese valor
de gris. Al proceso de extender los valores de los pixeles a lo largo
del histograma se le cono como estiramiento del histograma.
En lafigura 7 se muestra las formas de contraste en una imagen,
la cual nos muestra el problema que pueden tener las imgenes
originales si no tienen un buen contraste.


Figura N 07: Histogramas que ejemplifican el problema de contraste en
una imagen

La expresin empleada en el mecanismo del estiramiento del
histograma se muestra en la expresin (3)

pixelSalida =
( 1)( )
( )
(3)

Dnde: L-1 es el nivel mximo permitido de un pixel y determinado
por el nmero de bits por pixel. L son los niveles de gris.
PixelEntrada es el tono de gris del pixel a modificar. PixelSalida es
el tono de gris del pixel modificado. NivelMax es el tono mximo
22

existente en la imagen de entrada. NivelMin es el tono mnimo
existente en la imagen de entrada.
El algoritmo que empleamos para la implementacin se muestra
en la figura 8.
Como se puede observar en la figura 4 el estiramiento del
histograma consiste en que a partir de la matriz de pixeles que
trae implcitamente la imagen se obtiene su histograma, el cual es
una representacin del nmero de pixeles 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 mdulo de estiramiento de histograma, que
distribuye los pixeles en todo el rango de 0 a 255 para obtener una
imagen con un mejor contraste.



Figura N 08: Algoritmo para el estiramiento de histograma
23


Ecualizacin.- Este es otro mecanismo de pre-procesamiento que
al igual que el anterior va a generar la mejora del contraste de las
imgenes obtenidas de la Base de datos.
La ecualizacin permite adoptar el mismo nmero de muestras
para cada valor de pixel, y esto se logra a travs de la obtencin
del histograma de las imgenes a analizar. Consiste en encontrar
una transformacin en la cual el histograma tenga una
representacin uniforme, es decir, con la ecualizacin trataremos
de igualar lo ms posible el histograma de una imagen al
histograma ideal.
Considerando funciones de tipo contino 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.



Figura N 09: proceso de ecualizacin de histograma
24

Filtrado Espacial.- Este mtodo de pre-procesamiento de
imgenes se basa en la operacin de convolucin, utilizando una
mscara que consiste en una matriz cuadrada de dimensiones m x
n impares. De esta manera, se realiza la convolucin entre la
mscara y matriz de pixeles de la imagen que se est analizando.
Con este proceso se genera una nueva matriz con caractersticas
mejoradas que ayudaran a mejorar los resultados de los mdulos
posteriores como la segmentacin y la codificacin.
Es importante mencionar que dependiendo de los valores que se
coloquen en la mscara es el resultado que se va obtener a partir
de la convolucin, por ejemplo, se pueden detectar bordes
verticales, horizontales o diagonales u obtener los valores
promedio de la matriz, entre otros resultados. Esta mscara se
escoge a partir del resultado que deseamos obtener. El proceso
de convolucin se ejemplifica en la figura 10.



Figura N 10: Proceso de convolucin.
25

2.6.2 Segmentacin
La segmentacin es una etapa imprescindible en diversos procesos
de tratamiento de imgenes y se puede decir que es el proceso que
consiste en subdividir o particionar una imagen en sus regiones,
componentes, partes u objetos. Tambin puede ser definida como el
encontrar, por medio de un algoritmo numrico, sus regiones
homogneas y sus bordes. La segmentacin automtica de
imgenes es, en general, una de las tareas ms difciles de realizar
en el anlisis de imgenes debido a que tiene una influencia
determinante en el correcto desempeo del mecanismo de
reconocimiento. (Sossa, 2006)
Para llevar a cabo la segmentacin pueden usarse ndices visuales,
que son partes locales de un objeto, con significado y que pueden
ser detectados. Estos tiene significado porque se encuentran
asociados con algn elemento interesante de la escena al momento
de obtener la imagen del objeto y al ser detectables implica que debe
existir al menos un algoritmo para su localizacin, ya que de otra
manera dichos ndices visuales no seran tiles.
Para este proyecto, la segmentacin es la etapa donde se localiza la
imagen del iris. La etapa de segmentacin es muy importante ya que
si el iris nos es localizado correctamente las etapas posteriores
utilizaran datos errneos, por lo tanto el cdigo generado contendr
errores y el rendimiento de sistema ser muy bajo.
26

Existen diferentes mecanismos de segmentacin con distintos
niveles de dificultad, entre lo que podemos mencionar:
Umbralizacin.
Deteccin de Bordes
Deteccin de Regiones.
Clustering.
Segmentacin de Texturas.
Morfologa Matemtica.
Redes Neuronales.
A continuacin se describen algunos de estos mtodos:
Umbralizacin.- La forma ms sencilla de segmentar una
imagen es en el caso de que los distintos objetos se caractericen
por niveles de gris diferentes. Para ello se puede emplear el
histograma que indica el nmero de puntos en la imagen que
posee un determinado nivel de gris. La umbralizacin 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
mtodo, a partir del lbulo principal, es decir, del valor mximo,
se Adems del clculo de histogramas, existen otras tcnicas
para calcular el umbral, tales como como, el ajuste del lbulo
principal, mtodo de la mxima distancia, entropa y el algoritmo
Isodata.
27

Deteccin de Bordes.-Un borde en una imagen es un cambio
local significativo, normalmente asociado con una discontinuidad,
ya sea en la imagen de intensidad o la primera derivada de dicha
imagen (Sossa, 2006). La deteccin de bordes consiste
bsicamente en realizar la operacin de Convolucin
Bidimensional entre la matriz de pixeles de la imagen original y
ciertas mscaras previamente establecidas y posteriormente se
realiza el clculo del gradiente digital de la imagen, as como el
Angulo.
Para detectar los bordes, se calcula el modulo del gradiente obtenido
en cada pixel de la imagen. Como resultado, se ver que los valores
grandes corresponden a pixeles del borde, dado que un pixel
pertenece a un borde si se produce un cambio brusco entre niveles
de grises con sus vecinos. Este tipo de filtro es el recomendado, a
falta de informacin 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 regin de 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 mscara de convolucin de media cero y
desviacin estndar .
28

Sea f(x,y) una imagen corrompida con ruido y sea h(x,y) un filtro
gaussiano con media cero y desviacin estndar , determina el
tamao del filtro y es seleccionado con base en el nivel deseado de
detalle (bordes finos o gruesos) y en el nivel de ruido contenido en la
imagen, calculado mediante la ecuacin:
(, ) =
1
2
2

2
+
2
2
2


Mascaras de Sobel. La convolucin se realizar con las
siguientes mscaras de 3 x 3 en la direccin x y en la direccin y,
las cuales se muestran en las matrices 5 y 6.

=



... (5)
=



(6)

Mascaras de Prewitt. Es el mismo caso anterior, solo que las
mscaras 7 y 8.

= [
1 1 1
0 0 0
1 1 1
] (7)
= [
1 0 1
1 0 1
1 0 1
](8)

Laplaciano. En este caso se utiliza la misma mascara para las
componentes X y para las componentes Y, mostrada en la matriz
(9).

29

, = [
0 1 0
1 4 1
0 1 0
](9)

Segmentacin de Texturas. Se puede decir que una
caracterstica de textura de una imagen es un valor que
cuantifica alguna caracterstica de la variacin de la variacin del
nivel gris del objeto a segmentar en base a una disposicin
geomtrica especfica. Para segmentar una imagen de textura
buscamos una caracterstica que defina la textura, que tendr
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 pixel corresponde al valor del parmetro en ese punto.
Existen dos tipos de mtodos para el anlisis de texturas:
Estadsticos. Basados en el histograma a partir de la media, la
desviacin o varianza de los niveles de gris. Tambin se utiliza la
matriz de co-ocurrencia, que mide la probabilidad de que dos
pixeles a una distancia determinada tengan el mismo valor.
Espectrales. Basados en el clculo de la transformada de
Fourier.

30

2.7 FUNCIONES PARTICULARES.
En algunos puntos del desarrollo, se necesita el uso de alguna funcionalidad
los cuales se detallan a continuacin:
2.7.1 Detector circular de Hough.
La transformada de Hough es un algoritmo estndar en la visin por
computador, usado para determinar los parmetros espaciales de
objetos de diversa forma que estn incluidos dentro de una imagen
(Wikipedia, Hough_transform). Esta transformada se puede utilizar
para detectar automticamente las coordenadas y el radio del iris y
de la pupila.
El proceso bsico de detector de Hough empieza partiendo de la
imagen completa del ojo, sobre la que se aplica inicialmente algn
algoritmo de deteccin de contornos, como por ejemplo el detector
de Canny (Wikipedia, Canny_edge_detector). La figura 11 muestra
un ejemplo de la capacidad de este detector.

Figura N 11: Detector de contornos Canny
31

A partir de la imagen de contornos, se procede a crear el llamado
espacio de Hough, que contiene crculos que pasan sobre cada
punto de contorno (figura 12). Estos crculos se definen con la
ecuacin general:
x
2
+ y
2
r
2
=0
Siendo x e y las coordenadas del centro de circulo, y r el radio. Una
vez creados todos los crculos posibles, el mximo dentro del espacio
de Hough proporciona el crculo mejor definido.


Figura N 12: Cada punto de contorno (Izq.) en la imagen real sirve de centro
para un crculo creado en el espacio de Hough (Der)

2.7.2 Transformada de Gabor
La aplicacin de wavelets de Gabor es el tratamiento matemtico que
se le dar a la informacin de iris para convertirla en plantilla
biomtrica. Este mtodo es el elegido por Daugman en su
implementacin (J.Daugman, 2004).
32

Para aplicar este mtodo, se debe partir de la informacin del iris en
su forma normalizada. Un iris normalizado forma una matriz 2D como
se muestra en la figura 13.


Figura N 13: Resultado de normalizacin de un iris. A la derecha, la matriz
2Dresultante

Una vez normalizado el iris, el siguiente paso consiste en aplicar
wavelets Gabor. Estos wavelets estn formados por dos
componentes:
Una onda sinusoidal compleja definida por la ecuacin:

(, ) =
(2(
0
+
0
)+)


Donde
0

representan la frecuencia horizontal y vertical de la


senoide respectivamente, y P representa un cambio de fase
arbitrario,

Y una gaussiana (figura Izquierda 14), definida por la ecuacin:

33

Esta composicin forma una onda wavelet como la mostrada en la
figura 14 derecha.
Estas wavelets se van aplicando sobre cada una de las filas de la
matriz 2D anterior. Como el filtro Gabor es una funcin compleja, se
obtiene 2 bits de informacin por cada bit analizado,
correspondientes a la informacin de fase y de orientacin de cada
pixel (Wikipedia, Gabor_filter).


Figura N 14: Curva gaussiana Fig. (izq.) Wavelet gabor resultante Fig.(der)

La figura 15 es un ejemplo de resultados obtenidos tras aplicar
wavelets Gabor sobre un iris normalizado.
Esta informacin obtenida es la que formar finalmente la plantilla
biomtrica, vlida para ser comparada con otras plantillas.

Figura N 15: Resultados tras wavelets Gabor: parte real de la plantilla
34

2.8 MARCO CONCEPTUAL.
Algoritmo.-Son mtodos matemticos aplicados para solucionar un
problema especfico.
Escala de Grises.- La representacin de una imagen de grises es la
representacin de color uniforme sin variacin en el RGB, haciendo que le
color tanto para el rojo, verde, azul sean uniformes y tengan el mismo valor
para cada uno de los colores, y de esa manera hacer la representacin en
mismo color en tonalidades de color.
Extraccin de Caractersticas.-Es el proceso de generar caractersticas que
puedan ser usadas en el proceso de clasificacin de los datos. En ocasiones
viene precedido por un pre-procesado de la seal, necesario para corregir
posibles deficiencias en los datos debido a errores del sensor, o bien para
preparar los datos de cara a posteriores procesos en las etapas de
extraccin de caractersticas o clasificacin.
Las caractersticas elementales estn explcitamente presentes en los datos
adquiridos y pueden ser pasados directamente a la etapa de clasificacin.
Las caractersticas de alto orden son derivadas de las elementales y son
generadas por manipulaciones o transformaciones en los datos.
Pixel.- Es la representacin de un punto en pantalla perteneciente a una
imagen, asignndole el color por medio de un RGB (Red, Green, Blue).
Reconocimiento.- Comprende en comparar la imagen facial capturada con
imgenes que han sido guardadas en una base de datos.

35

2.9 OPERACIONALIZACIN DE VARIABLES.
VARIABLE INDICADOR MEDICIN.
Prototipo de
identificacin de
personas por medio
del iris ocular.
Adquisicin de Imagen Excelente
Buena
Regular
Mala
Pre procesamiento de imagen
Segmentacin
Obtencin del Iris
Reconocimiento (Tcnicas de Daugman)
Efectivo
No Efectivo


36

CAPITULO III
METODOS Y MATERIALES
3.1 Tipo de Investigacin
El tipo de investigacin al que corresponde el presente trabajo de
investigacin es explicativa, porque centran su inters en las causas,
orgenes o principios que producen determinados fenmenos, hechos o
comportamientos.
3.2 Diseo de estudio
El objeto de estudio ser la imagen del iris ocular en formato polar, a la cual
se le aplicara tcnicas de Daugman para el reconocimiento luego de haber
pasado por las fases: Adquisicin de las imgenes, pre-procesamiento,
segmentacin, codificacin.
3.3 Poblacin
Nuestra poblacin es infinita debido a la propiedad de universidalidad del iris
(puede ser reconcentrada en cualquier individuo).
3.4 Mtodos de recopilacin de datos
Los datos para desarrollar el prototipo de identificacin biomtrica de
personas por medio del reconocimiento de iris, se hizo con la captura de
imgenes del iris de los usuarios en forma directa.

37

3.5 Metodologa para el reconocimiento de iris
Para desarrollar el prototipo de identificacin de personas por medio del iris
ocular, se representa esquemticamente en la figura 16, donde en la primera
etapa, se adquiere la imagen del iris de la persona a ser reconocida. Luego,
la imagen digital es procesada para localizar el iris en la misma y normalizar
su tamao. En tercer lugar, la informacin contenida en el patrn de iris es
extrada y un cdigo asociado con el iris generado. Finalmente, en la etapa
de comparacin, se decide, en base al porcentaje de similitud obtenido, si los
cdigos comparados fueron generados por el mismo iris, o sea, por la misma
persona, o no.


Figura N 16: Diagrama de bloques del sistema de reconocimiento del iris

En general, los sistemas de reconocimiento de personas pueden ser
utilizados en dos modos de funcionamiento diferentes, Autentificacin e
Identificacin, Figura 17. En el primero, el cdigo de iris se compara con el
cdigo asociado a la identidad proclamada por la persona, y se decide si
estos cdigos han sido generados por el mismo iris o no.
38

En el segundo, el cdigo de iris ha de reconocer es comparado con una base
de datos para comprobar la identidad de la persona.


Figura N 17: Sistema de reconocimiento: Autentificacin y Identificacin

3.5.1 Desarrollo Organizacin del proyecto
El proyecto se plantea bajo un sistema bsico de reconocimiento de
iris, en lneas generales las siguientes fases.
FASES:
Los puntos generales para la consecucin del proyecto son los
siguientes:
39


A su vez, estos puntos pueden expandirse o desglosarse en varias
subcategoras.
a) Anlisis de los requisitos
En esta fase se detalla los mdulos que se desarrollaran para el
funcionamiento completo de la aplicacin.
Al ser sta una aplicacin de identificacin biomtrica, el prototipo va
a seguir un orden secuencial genrico:

Esta secuencia de acciones se puede simplificar si tomamos como
referencia el punto de vista del usuario, ya que las tres primeras
etapas se pueden concentrar en una sola:
1
Anlisis de los requisitos
2
Anlisis de tecnologas
3
Implementacin
4
Pruebas
5
Documentacin
Comparacion con otra plantilla
Transformacin en plantilla biometrica
Extraccin de los datos de interes
Obtencin de la muestra
40


b) Anlisis de tecnologas
Una de las principales motivaciones para crear este proyecto fue el
deseo de ampliar de alguna manera los contenidos y problemas
aprendidos en la asignatura de Visin Artificial, tanto en las clases
tericas como en las prcticas. Debido a esto, el software utilizado
para desarrollar y ejecutar la aplicacin es Matlab como lenguaje de
programacin, ya que aprovecha los conocimientos de tratamiento de
imgenes por computador, dicho lenguaje posee diversas libreras
muy tiles en el campo del tratamiento de imagen.
Tambin se puede utilizar otros lenguajes de programacin para el
tratamiento de imgenes, donde se menciona alguno de ellos:
Python.- Este lenguaje en Visin Artificial es agradable para el
desarrollador, ya que proporciona un buen rendimiento, adems de
ser soporte para algunas libreras muy tiles en el campo del
tratamiento de imagen.
Comparacion con otra plantilla
Transformacin en plantilla biometrica
Extraccin de los datos de interes
Obtencin de la muestra
Creacin de la plantilla
Comparacin con otra plantilla
41

OpenCV.- La Open-Source Computer Vision, es una librera de
funciones para la visin por computador, desarrollada originalmente
por Intel. Contiene ms de 500 funciones que pueden ser utilizadas
en infinidad de reas, como el reconocimiento facial o de objetos, o la
visin robtica.
Numpy.- Debido a que Python corre sobre una mquina virtual,
algunos algoritmos corren ms lentamente que sus equivalentes
compilados. Numpy ofrece soporte para matrices multidimensionales
y funciones que operan en matrices, y hace que las operaciones en
estos tipos de datos sean prcticamente tan rapidos como el cdigo
equivalente en C. Este beneficio se hace patente en el tratamiento de
imgenes como matrices bidimensionales.
Scipy.- Librera cientfica, complemento a Numpy, proporciona
algoritmos como la transformada de Radon. Utiliza como tipo de dato
bsico el array definido en Numpy.
c) Implementacin
En esta fase para desarrollar el prototipo de reconocimiento de
personas por medio del iris ocular el proceso se cumplen las
siguientes etapas:
1. Adquisicin de imagen
2. Segmentacin
3. Obtencin del iris
4. reconocimiento.
42

d) Prueba.
Para realizar una correcta identificacin, se necesita realizar las
pruebas del algoritmo en una imagen y realizar la comparacin con la
plantilla de imgenes.

43

CAPITULO IV
RESULTADOS Y DISCUSIN
4.1 ANALISIS DE REQUISITOS
4.1.1 CREACIN DE LA PLANTILLA - OBTENCION DE LA MUESTRA
Para realizar una correcta identificacin, se necesito partir de una
buena imagen de muestra. Este primer paso fue vital para el resto de
etapas del algoritmo, ya que trabajar sobre una muestra de mala
calidad pudo falsear los resultados o incluso hacer que fuera
imposible obtenerlos.
Fueron varios los factores que entraron en juego a la hora de calificar
la calidad de la muestra. Principalmente, se debi asegurar una
resolucin tal, que permita reflejar perfectamente la fisonoma del iris
y sus pliegues internos, puesto que esta regin constituyo la zona de
inters que se extrajo en la siguiente fase. As mismo, la muestra
debi mantener los niveles de ruido lo ms cerca del mnimo posible,
siendo nicamente admisible el ruido inherente a la zona del ojo
humano, esto fue, el ruido creado por pestaas o parpados.
4.1.2 CREACIN DE LA PLANTILLA EXTRACCIN DE LOS DATOS
DE INTERS
Dado que la informacin estuvo nicamente situada en la zona del
iris, el objetivo de este mdulo fue localizar y aislar esa zona de
informacin. Adems, se elimino el ruido que podria existir, como por
44

ejemplo las oclusiones del iris causadas por pestaas o parpados.
Eliminar todo el ruido posible fue bsico para no introducir
informacin errnea en el proceso de creacin de la plantilla
biomtrica.
En la figura 18 se representa los requisitos del mdulo que a su vez
se dividi en dos sub mdulos:

Figura N 18: Modulo de extraccin de datos de inters

Iris: Localizar iris y pupila
En esta parte, el programa debi localizar las coordenadas
espaciales del iris. Adems, debi localizar tambin la pupila, ya que
al estar incluida dentro de la circunferencia que crea el iris, se tuvo
que extraer y tratar como ruido.
Ruido: Localizar prpados y eliminar ruido general
Una vez que se tuvo la ubicacin del iris, eliminarse el ruido
existente. Por una parte, se debi detectar si la zona del iris esta
45

tapada por algunos parpados, para marcar la zona ocluida como
ruido. Para terminar, se debi eliminar tambin todos los elementos
susceptibles de fueron considerados como ruido. En esta categora
se pudieron incluir las pestaas, puesto que fue tpico que tapen una
(mnima) parte de la regin del iris, y los reflejos de luz del sol o del
flash de cmara en ese momento de tomar fotografa.
4.1.3 CREACIN DE LA PLANTILLA Transformacin de datos en
plantilla biomtrica
Una vez que fue situada y libre de ruido la regin del iris, el siguiente
paso fue realizar la transformacin en plantilla biomtrica. Esta
plantilla fue obtenida aplicando algn tipo de tratamiento matemtico
sobre la informacin contenida en el iris. Sin embargo, esta regin
necesitaba preparacin previa.
Normalizar
Un paso previo imprescindible es la normalizacin del iris. Al
comparar imgenes de esta naturaleza, fue necesario transformar la
regin de iris a unas dimensiones fijas, para permitir comparaciones.
As, se evitan las diferencias producidas por la posicin del ojo y la
dilatacin puntual de la pupila.
Adems de estas diferencias principales, puedieron existir otras,
como por ejemplo por la inclinacin de la cabeza, la iluminacin o la
distancia en el momento de tomar la foto.
Aplicar tratamiento matemtico
46

Una vez normalizado el iris, fue procede a tratar matemticamente la
informacin.


Figura N 19: Mdulo de transformacin en plantilla biomtrica

4.1.4 COMPARACIN DE PLANTILLAS BIOMTRICAS
Este mdulo de la aplicacin se encargara de comparar dos plantillas
biomtricas (figura 20) y emitir una resolucin, concluyendo si
pertenece o no a la misma persona.


Figura N 20: Mdulo de comparacin de plantillas biomtricas

47

4.2 IMPLEMENTACIN
Es preciso destacar que para desarrollar el prototipo de reconocimiento de
personas por medio del iris ocular el proceso se divide en varias etapas:
1. Adquisicin de imagen
2. Segmentacin
3. Obtencin del iris
4. Reconocimiento
4.2.1 ADQUISICIN DE LAS IMGENES
En esta etapa secaptura una imagen de la capa arbrea del iris en
blanco y negro, en un entorno correctamente iluminado, usando una
cmara de alta resolucin.
Primero, es deseable adquirir imgenes del iris con resolucin
suficiente y agudeza para obtener un buen reconocimiento. Segundo,
es importante tener un buen contraste en el modelo del iris interior
sin acudir a un nivel de iluminacin que incomoda al usuario. Tercero,
estas imgenes deben idearse bien (por ejemplo, centradas).
Existen distintos sistemas de adquisicin de imgenes, la mayora de
ellos utilizan cmaras de video y sistemas de iluminacin
sofisticados. En este trabajo de investigacin se propone un sistema
de adquisicin de imgenes de bajo costo basado en una cmara
digital convencional. En la figura se representa un esquema del
sistema de adquisicin propuesto.
48

Esquema del sistema de adquisicin propuesto

Figura N 21: Imagen captura por el computador

4.2.2 SEGMENTACIN
La segmentacin de la imagen consiste en encontrar los parmetros
que determinan la ubicacin, la forma y tamao del iris dentro de la
imagen capturada. Con el fin de analizar la textura del iris humano
automticamente, es necesario identificar en la imagen la regin que
contiene el iris y separarla de otros elementos de la imagen que no
contienen informacin relevante, como la pupila, prpados y
pestaas.
a) Modelando el iris y la pupila
Para localizar el iris y la pupila, es necesario modelar ambos
elementos de alguna forma. Lo ms comn es representar tanto el
iris como la pupila como dos crculos casi concntricos, con lo cual el
resultado de la segmentacin ser los parmetros de ambos crculos.
Un circulo cualquiera puede ser expresado con tres parmetros: las
coordenadas de su centro y su radio r, as que la segmentacin
deber encontrar un total de seis parmetros: tres para el circulo de
la pupila y tres para el crculo del iris.
49

Tambin se puede representar al iris y la pupila como dos elipses,
con lo cual la cantidad de parmetros a encontrar asciende a 10 ya
que la elipse se define mediante 5 parmetros (dos longitudes para
sus ejes, el centro de la elipse y el ngulo de rotacin). Esto provee
una representacin ms exacta para el iris y la pupila, pero al ser
necesario ms parmetros, los tiempos de ejecucin de los
algoritmos aumentan notablemente. Adems, la ventaja de utilizar
elipses en vez de crculos para representacin no resulta ser muy
significativa, ya que tanto el iris como la pupila son casi
perfectamente circulares.
Interesa entonces el problema de detectar crculos en la imagen.
Para esto, existe principalmente dos algoritmos utilizados por los
sistemas de reconocimiento de iris: el operador integro diferencial y
la deteccin por transformada de Hough.
Operador integro-diferencial
El operador integro-diferencial fue propuesto por Dougman
1
en su
sistema original de reconocimiento de iris. La base del operador
consiste en detectar cambios bruscos en el tono de gris a lo largo de
circunferencias en la imagen, con la idea de que un cambio brusco

1
High confidence visual recognition of persons by a test of statistical Independence, IEEE Transactions on
Pattern Analysis and Machine Intelligence 15 (1993), no. 11, 1148-1161.
50

se traduce en un mximo en la derivada de los tonos de gris de las
circunferencias centradas en el punto (x
o,
y
o
).
La expresin del operador para encontrar el crculo de centro (x
o,
y
o
)
y radio r en la imagen I es la siguiente:

Dnde:
- s representa el contorno sobre el cual se hace la integracin, en
este caso, un contorno circular dado por el centro (x
o,
y
o
) y el
radio r.
-

() es una funcin Gaussiana que define el nivel de detalle en


el que se trabaja: mientras ms precisin se desea, menor ser
el parmetro de suavizacin .
Este operador funciona iterativamente, buscando primero una
aproximacin y luego obteniendo resultados ms precisos. La
cantidad de niveles de detalle puede ser ajustada para que el
operador trabaje en forma ms veloz.
Una propiedad importante de este operador es que se puede
generalizar para detectar otros tipos de curvas parametrizables.
Cambiando el contorno s de una circunferencia a una parbola, es
posible construir de manera similar un detector de parbolas, que
51

luego puede ser utilizado para detectar los parmetros de los
parpados.
Operador integro-diferencial
La mayora de los trabajos utilizan la transformada circular de Hough
para detectar los parmetros de la pupila y el iris en forma
simultnea
2
.
Este mtodo es comn en el mbito de procesamiento de imgenes
principalmente para encontrar curvas parametrizables en imgenes.
Se comienza creando una imagen binaria, B, aplicando un detector
de bordes a la imagen original. Luego, cada punto perteneciente a un
borde suma votos en cada curva que pase por dicho punto.
Para segmentar el iris o la pupila, se suele utilizar el detector de
bordes de Canny, y a veces el mismo es ajustado para detectar los
bordes verticales. Esto tiene doble ventaja: por un lado, los bordes,
los bordes horizontales del iris suelen estar ocultos por los parpados,
y por otro lado, los bordes de los parpados no aparecen en la imagen
resultante ya que es de esperar que los mismos aparezcan en forma
horizontal en la imagen. Se define entonces la funcin C como:
(

, , , ) = {
1 (

) (, )
0


2
L. Masek, Recognition of human iris patterns for biometric identification, Masters thesis, School of
Computer Science and Software Engineering, University of Western Australia, 2003
52

Una vez calculados los bordes, se crea un espacio discretizado
tridimensional H que va a acumular los votos para cada uno de los
tres parmetros (

, ) del crculo. As, se define H de la siguiente


manera:
(, , ) = (

, , , )
(

)

Finalmente, los parmetros

del crculo estn dados por:


arg max (

, )
(

, )

En forma similar, la transformada de hough se puede modificar
fcilmente para detectar parbolas en vez de crculos, con el fin de
segmentar los parpados.
Sin embargo, este mtodo presenta algunos problemas:
1.- El resultado de la transformada de Hough est condicionado por
los parmetros del algoritmo de deteccin de bordes. En el caso de
las imgenes del iris, es necesario ajustar los parmetros de este
algoritmo de forma tal que los crculos de la pupila y el iris se
encuentren bien marcados en la imagen resultante.
2.- Dichos parmetros son poco flexibles: si existe una modificacin
en las condiciones de captura, el detector de bordes puede dar
muchos falsos positivos. Con parmetros incorrectos es normal que
la imagen resultante o bien no contenga ningn borde til, o bien,
ms comnmente, que se encuentren demasiados bordes en la
53

imagen. Esto ltimo es producto de la naturaleza misma del iris, que
tiene patrones complicados que pueden aparecer en el algoritmo de
deteccin de bordes.
3.- El tiempo de procesamiento del algoritmo es directamente
proporcional a la cantidad de puntos de borde detectados en la
imagen. Si la imagen tiene muchos bordes, como suelen aparecer en
las pestaas y los parpados cuando la imagen est bien enfocada, el
algoritmo resulta muy lento.
4.- una imagen con demasiados bordes ocasiona tanto una
degradacin en el tiempo de ejecucin de la transformada de Hough
como en el resultado de la misma (es posible que se encuentren
crculos que en realidad no existen, por lo que es necesario recurrir
a heursticas que permitan comprobar si un circulo detectado
realmente se corresponde con la pupila o el iris).
b) Segmentacin de la pupila
La pupila se distingue fcilmente en la imagen como un crculo
negro, en la figura 22, las imgenes c y d corresponden al mismo ojo.
Se puede ver como varia el tamao de ojo en funcin de la distancia
a la cmara, y el dimetro de la pupila por motivos naturales.
54


Figura N 22: Capturas tpicas del iris humano

En la figura 23: (a) Extraccin de un aro de la imagen, se puede ver
en amarillo de un aro de la imagen a extraer, rodeando el crculo de
la pupila (en rojo).
(b): efecto de considerar a la pupila como un crculo: en algunos
casos, la pupila no es perfectamente circular, por lo que al utilizar un
modelo circular de segmentacin algunas partes de la pupila son
consideradas parte del iris


(a) (b)
Figura N 23: Segmentacin de la pupila



55

c) Segmentacin del iris
Una vez localizada la pupila, el iris es relativamente fcil de ubicar ya
que es casi concntrico al crculo de la pupila (aunque este ltimo
suele poseer una desviacin hacia el lado de la nariz respecto al
crculo del iris).
4.2.3 OBTENCIN DEL IRIS
a) Extraccin de la zona de inters
El objetivo principal de este mdulo es localizar exactamente la
situacin del iris, el cual el detalle del proceso a seguir es:
Carga y redimensin
El proceso comienza cargando la imagen indicada por el usuario. A
continuacin, se redimensiona la imagen a un tamao del 25% de
original. Esta reduccin de tamao, de 320x280 a 80x70, es til para
aumentar el rendimiento del detector circular de Hough.


Figura N 24: Redimensin de la Imagen


Tratamiento previo a la deteccin de contornos. (Figura 25)
56

El primer paso consiste en aplicar un suavizado Gaussiano a la
imagen, con el fin de eliminar los bordes e irregularidades menores y
mantener nicamente los contornos fuertes.
El segundo paso consiste en hacer una correccin del contraste, una
prctica comn en el tratamiento de imgenes, que nos sirve para
corregir en la medida de lo posible una iluminacin irregular.


Figura N 25: Imagen Original (Izq), Imagen con tratamiento previo (Der)

Deteccin de contornos
Despus del tratamiento previo, ya se puede aplicar un algoritmo que
nos proporcione la imagen de contornos. Por los resultados y el
rendimiento, se decide aplicar el mtodo de Canny Edge para
resaltar los contornos.
57


Figura N 26: Imagen de contornos resultante de la aplicacin de Canny Edge

Deteccin de la regin de iris mediante Hough
La imagen de contornos se pasa como parmetro a la funcin
detector de Hough. Esta funcin localiza el iris dentro de la imagen y
retorna sus coordenadas espaciales: centro y radio.
Extraer la regin del iris
Una vez localizado el iris, el siguiente paso es localizar la pupila.
Para ello resulta necesario volver a aplicar el detector de Hough,
pero con la ventaja de que esta vez no se aplica sobre toda la
imagen sino sobre la regin del iris que justo se ha encontrado en la
figura 27, ya que aprovechamos el hecho de saber que la pupila est
incluida en esa zona.


Figura N 27: Regin de la pupila obtenida a partir de la regin del iris
58

Histograma
El histograma de una imagen es la representacin de cmo se
reparten los niveles de intensidad en una imagen. Es una
herramienta que se puede utilizar para ayudar al detector circular de
Hough en el momento de localizar la pupila.
En la figura 28 se muestra un ejemplo de aplicacin del histograma.


Figura N 28: Imagen original (Izq.), su histograma (centro) y la deteccin Canny
(der.)

La regin de iris se pasa como parmetro a la funcin que realiza el
histograma, que retornara el valor ideal para determinar el centro de
iris que es lo mismo que hallar el centro de la pupila ya son crculos
concntricos.
Por medio de un histograma, se puede determinar con bastante
exactitud la regin de la pupila.
Deteccin de contornos y deteccin de la regin de la pupila
mediante Hough
Estos pasos son exactamente iguales que los seguidos para detectar
la regin del iris.
59

Localizar prpados
En el siguiente paso, se debe analizar la regin de iris en busca de
zonas que estn ocluidas por los parpados. Estas zonas se deben
marcar como ruido figura 29 ya que es informacin no valida de cara
a la codificacin. Para ello, utilizamos funciones (localizar prpados
superior e inferior), que forman el detector de prpados.
Los resultados de la implementacin de esta funcin se pueden
apreciar en la siguiente figura.


Figura N 29: Zona ocluida por los parpados marcados como ruido

La idea bsica es utilizar un sistema muy parecido al detector circular
de Hough, con la diferencia de que no buscamos detectar crculos, si
no lneas, correspondientes a los prpados superior e inferior.

60


Figura N 30: Imagen original (izq.) lnea detectada (centro) lnea de interseccin (Der.)

Marcar pestaas y reflejos como ruido
El siguiente tratamiento que se le da a la imagen es el de eliminar los
elementos menores de ruido, tales como las pestaas y las
reflexiones especulares causadas, por ejemplo, por el flash de una
cmara. Esto se consigue aplicando una funcin que, dado una
umbral, marca a 0 (ruido) los pixeles que sobrepasen o que no
lleguen a un valor determinado de iluminacin (en un rango de 0-
255).
Para pestaas pixeles valor < 90
Para reflejos Pixeles valor > 240
En el caso de las pestaas, cabe destacar que resulta imposible
eliminar todo el ruido (marcar toda la pestaa como ruido), ya que si
bien es sencillo eliminar la parte ms gruesa (figura 31), la parte del
extremo tiende a ser tan fina que se pierde entre el resto de
irregularidades del iris.
61


Figura N 31: Detalle de pestaas marcadas como ruido. Imagen original
(Izq.) imagen ruido (Der.)

Se han invertido los colores para que resulte ms sencillo comprobar la
existencia de ruido eliminado.
4.3 RECONOCIMIENTO (Codificacin y matching)
La codificacin del iris es el proceso por el cual se analiza la textura del iris y
se extrae informacin, mientras que el matching es la comparacin de la
informacin extrada con el fin de tomar una decisin acerca de la identidad
del usuario.
4.3.1 METODOS DE CODIFICACIN Y MATCHING EXISTENTES
La codificacin debe ser capaz de extraer aquella informacin del iris
que permita discriminar una persona de otra. El resultado de la
codificacin es por lo general un vector de caractersticas o feactures
que describen la textura del iris. Dicho vector debe poder ser
comparado contra otros vectores generados a partir de otros iris o del
mismo iris. En la literatura existen muchos mtodos propuestos para
62

extraer caractersticas del iris, y cada uno de estos mtodos tiene
asociado un mtodo de matching.
La codificacin de iris es probablemente el rea que ms se ha
estudiado y sobre el que existen mayor cantidad de trabajos. Entre
todos los mtodos existentes, los ms comunes y aquellos en los que
se han obtenido mejores resultados son los que utilizan filtros de
Gabor o Log-Gabor y los que utilizan wavelets para codificar la
textura de iris. A continuacin se explicara de los mtodos ms
utilizados y los ms interesantes desde el punto de vista de la
originalidad y eficacia.
a) Filtros de Gabor
En su sistema original, Daugman utilizo los filtros de Gabor
bidimensionales como mtodo de codificacin del iris. Los filtros de
Gabor son un tipo de filtro pasabanda (filtro que deja pasar un
determinado rango de frecuencias de una seal) que determina el
rango de frecuencias utilizando una funcin gaussiana. Estos filtros
surgen del anlisis del funcionamiento de las neuronas en la corteza
visual primaria. Dichas neuronas reaccionan detectando la
orientacin de los objetos.
En dominio de las frecuencias, el filtro de Gabor

(, ) se define
como una funcin Gaussiana:

(, ) = exp ,((
0
)
2

2
+(
0
)
2

2
)-
63

Donde (
0,

0
) representa la modulacin (es decir, el punto donde la
respuesta del filtro es maxima) y y representan la desviacin de
la funcin Gaussiana bidimensional (el cociente define la
relacin de aspecto de filtro). En el dominio espacial, el filtro de
Gabor centrado en el origen est dado por:
(, ) =
1
{

} = exp ( (

2
+

2
))exp (2(
0
+
0
))
El filtro resultante es entonces una onda sinusoide compleja (llamada
carrier) modulada por una funcin Gaussiana (llamada envolvente).
La frecuencia espacial del filtro es
0
=
0
2
+
0
2
y su orientacin es

0
= arctan (
0

0
), mientras que el ancho de banda est dado por el
radio de la Gaussiana (definido por y ).
Este filtro se puede separar en dos componentes, una real y una
compleja:

(, ) =
,
(, ). cos(2(
0
+
0
))

(, ) =
,
(, ). cos (2(
0
+
0
))
Siendo
,
(, ) = exp( .

2
+

2
/) el envolvente Gaussiano. Este
par de filtros estn en cuadratura, lo que quiere decir que tienen la
misma amplitud pero estn desfasados 90
0
. El filtro

se denomina
filtro simtrico par y

se denomina filtro simtrico impar, ya qye el


coseno y el seno son funciones simtricas par e impar
64

respectivamente. En la figura32 se puede ver un ejemplo de las
componentes de un filtro de Gabor.

Figura N 32: Ejemplo de filtro de Gabor.

De la figura a muestra el filtro en el dominio de las frecuencias. Las
figuras b y c muestran el filtro real y complejo en el dominio espacial,
respectivamente.
La utilidad de este filtro radica en que est demostrado que minimiza
el principio de incertidumbre en los dominios espacial y de las
frecuencias. Este principio establece la imposibilidad de tener
informacin en el dominio de las frecuencias y en el dominio espacial
simultneamente. El filtro de Gabor permite tener informacin en
ambos dominios minimizando la incertidumbre conjunta.
Generacin del cdigo
Para generar el cdigo del iris, Daugman propone primero normalizar
las coordenadas de los puntos del mismo, expresando cada punto
como un par (,r) en coordenadas polares. Esto permite que el
mtodo sea invariante frente a cambios en el tamao del iris, ya sea
por la distancia del ojo o de la cmara o opr la contraccin o
65

dilatacin de la pupila. La textura del iris queda entonces expresada
como una funcin I(,r).
Luego, se proyecta un rea del iris centrada en el punto (
0
,
0
) es
una wavelet bidimensional de Gabor
3
. Este procedimiento se repite
para varios puntos y varias wavelets de distintos tamaos y
frecuencias.
Cada aplicacin de una wavelet en un punto da como resultado un
numero complejo c=a+ib que puede ser expresado en funcin de su
argumento o fase, arg(c) y su amplitud, ||. Est demostrado que la
fase y no la amplitud es la que provee la informacin ms
significativa en una imagen, por lo que la amplitud, que contiene
informacin redundante, es ignorada en la codificacin.
La fase, al ser un nmero real entre 0 y 2 es cuantizada a fin de
reducir la complejidad del cdigo resultante. Esta se codifica con dos
bits, que indican el cuadrante en el cual est ubicado el resultado.
Este proceso se puede ver con la siguiente formula:

,,-
=
*,+
(, ) exp((
0
))

. exp ((
(
0
)
2

2
+
(
0
)
2

2
))

3
Una wavelet de Gabor es una familia de wavelets que utiliza la funcin de Gabor descripta como una funcin
madre e incluye translaciones y cambios de tamao.
66

El cdigo resultante es el conjunto de bits obtenidos al aplicar este
procedimiento a varios puntos con varias wavelets en distintas
escalas y frecuencias, obteniendo un total de 2048 bits.
Ademas del cdigo de iris, se genera una matriz binaria que marca
aquellos puntos que fueron afectados por ruidos provenientes de las
pestaas o los prpados y que por lo tanto no pertenecen al iris. Esta
matriz funcionara como mascara en la etapa de matching.
Matching
El matching consiste en comparar dos cdigos de iris y decidir si
ambos fueron generados por el mismo iris o no. En el sistema
descripto por Daugman, cada cdigo de iris es una matriz binaria que
tambin tiene asociada una mscara de ruido que marca aquellos
bits que fueron afectados por las pestaas y/o parpados. Para
comparar dos cdigos, se calcula la distancia de Hamming entre
ambos cdigos, C1 y C2, teniendo en cuenta sus respectivas
mscaras, M1 y M2:
(
1
,
1
,
2
,
2
) =
(
1

2
) (
1

2
)

1

2


Donde es el operador binario XOR y es el operador binario AND,
y . representa la norma 1.
Esencialmente, la distancia de Hamming mide la cantidad de bits en
ambos cdigos que son desiguales entre s. Este valor es
67

normalizado por la cantidad de bits validos en ambos cdigos
(definidos por la interseccin entre ambas mscaras), lo que da
como resultado un nmero entre 0 y 1. Mientras ms parecido sean
los cdigos de iris, la cantidad de bits distintos ser cada vez menor
y por lo tanto la distancia de Hamming ser cercana a 0.
Esta mtrica permitir tomar una decisin acerca de la identidad de
la persona.
4.3.2 IMPLEMENTACIN
A continuacin se har una descripcin detallada:
a) Normalizacin
Previo a la codificacin, se extrae la textura del iris en una nueva
imagen rectangular de dimensiones fijas. Cada punto de iris puede
ser referenciado, independientemente del tamao, con un par de
coordenadas pseudo-polares (r,), donde r [0,1] representa la
distancia del punto al contorno de la pupila y ,0 2- el ngulo
respecto al centro del iris. Este proceso se puede ver en la figura33.


Figura N 33: Esquema de la normalizacin del iris
68

De la figura 33, luego de ser segmentado, la textura del iris se
transforma en una imagen rectangular de dimensiones fijas. Se
puede ver en la imagen rectangular las regiones afectadas por los
parpados y el reflejo del iluminador infrarrojo.
Cada fila de la nueva imagen representa un anillo del iris y cada
columna un ngulo en el anillo. Como la nueva imagen tiene
dimensiones constantes, esto permitir que todos los iris sean
representados con un tamao fijo, de manera que el sistema sea
invariante frente a cambios en el dimetro de la pupila o del iris. Este
modelo para representar el iris se conoce en la literatura como
modelo rubber sheet, o lamina de goma, ya que el proceso equivale
a extraer la textura del iris y deformarla para que quede rectangular.
Adems, para cada punto en la imagen normalizada, se genera una
mscara de ruido que marca aquellos puntos que fueron afectados
por los parpados (figura34).

Figura N 34: Textura normalizada y mscara de ruido

De la figura 34, las partes negras representan los puntos que fueron
afectados por los parpados.
69

b) Codificacin
Para codificar la textura normalizada del iris se utilizan los filtros de
Log-Gabor unidimensionales. Cada fila de la textura normalizada es
filtrada con un conjunto de filtros de Log-Gabor diseados para tener
una buena cobertura del espacio de frecuencias (figuras 35 y 36).
Para cada punto en la imagen, la respuesta de dicho punto al filtro es
un punto complejo, donde la parte real se corresponde con la
respuesta al filtro simtrico par y la parte compleja se corresponde
con la respuesta al filtro simtrico impar (figura 36). Se codifica
nicamente la fase de la respuesta, ya que, como se mencion, la
amplitud no aporta mucha informacin y es inestable frente a
cambios de iluminacin. En valor de la fase se cuantiza a uno de
cuatro de cuatro posibles valores, correspondientes al cuadrante de
la fase, por lo que la respuesta de cada punto a cada filtro se codifica
con dos bits. La figura 38 muestra este proceso.
La ventaja de este mtodo es que si, por efecto del ruido, la fase se
desplaza de cuadrante en dos imgenes del mismo iris, nicamente
cambiara un bit del cdigo, hacindolo ms resistente frente al ruido
(es necesario un cambio de fase de casi 180
0
para cambiar los dos
bits del cdigo correspondiente a ese punto).
El resultado de este procedimiento son dos matrices de valores
binarios, donde cada fila de una matriz representa la codificacin de
una fila de la textura del iris.
70



Figura N 35: extraccin de seales unidimensionales de la textura del iris.

De la figura 35, cada fila es un vector de valores que ser filtrado y
codificado por separado.

Figura N 36: Proceso de codificacin

De la figura 36, (a): seal de entrada (una lnea de la textura del iris),
(b) y (c): filtro simtrico para e impar, respectivamente, (d): respuesta
de la seal al filtro simtrico par (corresponde a la parte real de la
respuesta), (e): respuesta de la seal al filtro simtrico impar
(corresponde a la parte compleja de la respuesta).
71


Figura N 37: Posicin de fase

De la figura 37: el argumento (fase) de p cae en el primer cuadrante,
por lo cual el valor de p se codifica como 11.
c) Matching
Para comparar dos cdigos de iris se utiliza la distancia de Hamming.
La ventaja principal de este mtodo es que es sumamente rpido, ya
que se pueden empaquetar varios bits del cdigo en una palabra
del procesador y realizar comparaciones en paralelo (por ejemplo, en
un procesador comn de 32 bits, se pueden realizar 32
comparaciones por ciclo de reloj).
Como mtrica, la distancia de Hamming permitir establecer que
tanto se parecen dos cdigos de iris. Al haber tantas variables en el
proceso previo a la codificacin (pequeas diferencias en la
segmentacin, variables de captura como iluminacin, reflejos,
distancia a la cmara, ruido electrnico en la cmara, etc) es de
72

esperar que dos cdigos generados a partir del mismo iris no sean
exactamente iguales, lo que dara como resultado una distancia de 0.
El resultado de la comparacin dar un valor que permitir realizar
una decisin acerca de si los dos cdigos fueron generados a partir
del mismo iris o no.

73

CONCLUSIONES
Para el tratamiento de la imagen fue necesario trabajar solo en escala de
Grises, dado que una imagen fue representada por medio de una matriz de
m x n elementos, lo cual fue ms fcil trabajar en una sola matriz que hacer
el tratamiento en colores RGB,que en ese caso se tendra que trabajar con
tres matrices.

Para la segmentacin de una imagen y a su vez encontrar los parmetros
que determinaran la ubicacin, la forma y el tamao del iris dentro de la
imagen, la transformada de Hough fue un algoritmo que resulto til para
localizar figuras que se asemejan a una circunferencia detectando
automticamente los parmetros de la figura.

Para la obtencin del iris fue necesario trabajar con una imagen
segmentada y estndar, al cual se aplico el algoritmo de Canny Edge para
resaltar los contornos y este a su vez ser aplicada la funcin detector de
Hough, esta funcin localizo el iris dentro de la imagen y retorno sus
coordenadas espaciales: centro y radio, la ventaja de esta funcin es que
no se aplica sobre toda la imagen sino sobre la regin del iris, a pesar que
las imgenes tratadas presenten ciertos inconvenientes como reflejos
especulares, o cierta zonas con partes del parpado o las pestaas , el
algoritmo permitio eliminar dichos pixeles de manera que la identificacin es
exacta.
74


Para el reconocimiento de iris se tuvo que realizar la codificacin del iris en
binario y para realizar la comparacin de dos cdigos de iris se utiliza la
distancia de Hamming que es un algoritmo muy utilizado en otras reas
como criptografa, es un algoritmo de investigacin constante, el
reconocimiento del iris, es uno de los mtodos menos intrusitos, el ms
efectivo, pero a su vez uno de los ms caros de implantar, los equipos para
la captura de imgenes aun poseen precios no accesibles a la gran
mayora.

Se demuestra la eficacia, que al obtener la imagen de las 10 personas no
tuvimos ningn problema en reconocerlas a las imgenes originales, esto
nos indica que as podemos evitar toda clase der suplantaciones en
cualquier tipo de examen para la seguridad del caso que lo requiera,100%
eficaz.

75

RECOMENDACIONES Y SUGERENCIAS
Se recomienda utilizar estos sistemas biomtricos para solucionar
problemas como: La suplantacin en los exmenes de admisin,control de
asistencia, as como en otros sistemas en los cuales sea necesario
identificar a las personas unvocamente, garantizando la transparencia y
veracidad en los procesos.

Se sugiere realizar una extensin del presente trabajo de investigacin,
considerando el uso de tecnologas actuales, como la captura de la imagen
mediante cmaras web, dando iniciativa para propagar el uso de software
basado en el reconocimiento de patrones fsicos.

Se recomienda a los estudiantes en realizar investigaciones y desarrollo de
aplicaciones en temas de visin artificial, para la identificacin de males en
el campo de la medicina, reconocimiento de personas, identificacin de
vehculos motorizados entre otros, esto debido a que en algunas partes del
mundo ya se hace uso de estos medios.

Es recomendable utilizar este trabajo como un medio de consulta, sin seguir
fielmente los pasos utilizados o la metodologa aplicada en este trabajo,
considerando que este trabajo no pretende ser un trabajo de investigacin
final, sino un incentivo para desarrollar investigaciones en este sub campo
de la Inteligencia Artificial.
76

BIBLIOGRAFIA
REFERENCIAS BIBLIOGRAFCAS
Akay, M. (1998). Time Frequency and Wavelets in Biomedical Signal Processing
(Book style). Piscataway: NJ: IEEE Press.
Daugman, J. (2000). Biometric decision landscapes Techinical Report No. TR482.
University of cambridge Computer Laboratory.
Daugman, J. (2006). Probing the uniqueness and randomness of IrisCodes:
Results from 200 Billion iris pair comparisons. Proceedings of the IEEE.
Gonzalez, R., & Woods, R. (2003). Digital Image Processing.Prentice hall.
Jain, S.; Ross, A.& Prabhakar, A. (Janury 2004). An Introducction to Biometric
Recognition.IEEE.
Sanchez, R. (2000). El iris ocular como parametro para la Identificacion
Biometrica. Espaa: Universidad Politecnica de Madrid.
Sossa, J. (2006). Rasgos Descriptores para el Reconocimiento de Objetos.Mexico:
Centro de Investigacion en Computacion.
Wildes, R. (1997). Iris recognition: an emerging biometric technology proceedings
of the IEEE.
Zhu, Y., Tan, T., & Wang, Y. (2000). Biometric personal identification based on iris
patterns Proceeding of the 15th International Conference on Pattern
Recognition.Spain.
WEBGRAFIA
Homini. (s.f.). Plaforma Biometrica. Recuperado el 03 de Enero de 2013, de
http://www.homini.com/new_page_5.htm
J.Daugman. (2004). How Iris Recognition Works. Recuperado el 12 de Noviembre
de 2012, de http://www.cl.cam.ac.uk/users/jgd1000/csvt.pdf
77

Wikipedia. (s.f.). Canny_edge_detector. Recuperado el 12 de Diciembre de 2012,
de http://en.wikipedia.org/wiki/Canny_edge_detector
Wikipedia. (s.f.). Gabor_filter. Recuperado el 15 de Setiembre de 2012, de
http://en.wikipedia.org/wiki/Gabor_filter
Wikipedia. (s.f.). Hough_transform. Recuperado el 2013 de Marzo de 27, de
http://en.wikipedia.org/wiki/Hough_transform
Wikipedia, L. e. (19 de Setiembre de 2012). Biometria. Recuperado el 17 de
Octubre de 2012, de http://es.wikipedia.org/wiki/Reconocimiento_de_iris

TESIS
Baldo Romero Paulina y Garcia Molina Josue (2007). Autentificacin Biomtrica
de Personas por medio de Reconocimiento del Iris. Tesis para Optar el
Ttulo de Ingeniero en comunicaciones y Electrnica. Mxico. Instituto
Politcnico Nacional de Mxico.
Cayo Cabrera Guido Humberto (2005). Prototipo neurogenetico aplicado en el
reconocimiento de imgenes bidimensionales estticas: Rostros, Cdigo de
Barras y Firmas. Tesis de Maestra en Informtica. Puno Per.
Universidad Nacional del Altiplano.

78

ANEXOS
RESULTADOS DEL PROTOTIPO
RESULTADOS DE LA PRUEBA

1. Salida de imagines Segmentada:

Figure 1: 001_1_1.bmp


Figure 2: 001_1_3.bmp


Figure 3: Img_2_1_1.jpg

79


Figure 4: Img_2_1_2.jpg



2. Salida Imgenes normalizadas


Figure 5: 001_1_1.bmp


Figure 6: 001_1_3.bmp



Figure 5: Img_2_1_1.jpg
80



Figure 6: Img_2_1_2.jpg

3. Ruido de las Imgenes de Salida


Figure 9: 001_1_1.bmp


Figure 10: 001_1_3.bmp


Figure 11: Img_2_1_1.jpg

81


Figure 12: Img_2_1_2.jpg

4. Salida Polar de Imagenes con Ruido


Figure 13: 001_1_1.bmp


Figure 14: 001_1_3.bmp


Figure 15: Img_2_1_1.jpg

82


Figure 16: Img_2_1_2.jpg



La Tabla 1 muestra la distancia de Hamming calculada para las cuatro pruebas
realizadas.


Si la distancia de Hamming calculada es menor que una distancia de
Hamming preestablecido (Es 0.4 para las pruebas llevadas a cabo), las
imgenes se dice que son relacionados; ms las imgenes son diferentes.

N de
Prueba
entrada 1 entrada 2
Distancia de
Hamming
Match
Found/No
Match Found
1. 001_1_1.bmp 001_1_3.bmp 0.2647
Match
Found
2. Img_2_1_1.jpg Img_2_1_2.jpg 0.1506
Match
Found
3. 001_1_1.bmp 001_1_1.bmp 0
Match
Found
4. 001_1_1.bmp Img_2_1_1.jpg 0.4454
No Match
Found

Tabla 1: Calculo de distancia Hamming para4 pares de entradas de prueba




83

CODIGO FUENTE

%
% ADDCIRCLE
% Argumento:
% h - 2D acumulador array.
% c - [x,y] coordenadas del centro de circulo.
% radius radio del circulo
% weight peso opcional de valores que se aade al
% acumulador array (por defecto es 1)
%
% Retorno: h actualizar el acumulador array.


function h = addcircle(h, c, radius, weight)

[hr, hc] = size(h);

if nargin == 3
weight = 1;
end


if any(c-fix(c))
error('Punto central del crculo debe estar en coordenadas enteras');
end

if radius-fix(radius)
error('Radio debe ser un entero);
end

x = 0:fix(radius/sqrt(2));
costheta = sqrt(1 - (x.^2 / radius^2));
y = round(radius*costheta);


px = c(2) + [x y y x -x -y -y -x];
py = c(1) + [y x -x -y -y -x x y];


validx = px>=1 & px<=hr;
validy = py>=1 & py<=hc;
valid = find(validx & validy);

px = px(valid);
py = py(valid);

ind = px+(py-1)*hr;
h(ind) = h(ind) + weight;






84

% ADJGAMMA
%
% funcion g = adjgamma(im, g)
%
% Argumentos:
% im - imagen a ser procesado.
% g - imagen valor gamma.
% Valores en el rango 0-1 mejora el contraste del brillo
% regiones, valores > 1 mejora el contraste en la oscuridad
% regiones.


function newim = adjgamma(im, g)

if g <= 0
error('Valor Gamma debe ser > 0');
end

if isa(im,'uint8');
newim = double(im);
else
newim = im;
end

newim = newim-min(min(newim));
newim = newim./max(max(newim));

newim = newim.^(1/g);



85

% CANNY
%
% Argumentos: im - imagen a ser procesado
% sigma - desviacin estndar de filtro deGauss suavizado
% (tpicamente 1)
% scaling - para reducir el factor de imagen de entrada mediante
% vert - ponderacin de los gradientes verticales
% horz - ponderacin de los gradientes horizontales
%
% Returns: gradient - imagen resistencia del borde (gradiente de amplitud)
% or - orientacin de la imagen (en grados 0-180, positivo
% en sentido antihorario)
%


function [gradient, or] = canny(im, sigma, scaling, vert, horz)

xscaling = vert;
yscaling = horz;

hsize = [6*sigma+1, 6*sigma+1];

gaussian = fspecial('gaussian',hsize,sigma);
im = filter2(gaussian,im);

im = imresize(im, scaling);

[rows, cols] = size(im);

h = [ im(:,2:cols) zeros(rows,1) ] - [ zeros(rows,1) im(:,1:cols-1) ];
v = [ im(2:rows,:); zeros(1,cols) ] - [ zeros(1,cols); im(1:rows-1,:) ];
d1 = [ im(2:rows,2:cols) zeros(rows-1,1); zeros(1,cols) ] - ...
[ zeros(1,cols); zeros(rows-1,1) im(1:rows-
1,1:cols-1) ];
d2 = [ zeros(1,cols); im(1:rows-1,2:cols) zeros(rows-1,1); ] - ...
[ zeros(rows-1,1) im(2:rows,1:cols-1);
zeros(1,cols) ];

X = ( h + (d1 + d2)/2.0 ) * xscaling;
Y = ( v + (d1 - d2)/2.0 ) * yscaling;

gradient = sqrt(X.*X + Y.*Y);

or = atan2(-Y, X);
neg = or<0;
or = or.*~neg + (or+pi).*neg;
or = or*180/pi;


86

% circlecoords

% Argumentos:
% c - una matriz que contiene las coordenadas del centro del crculo
% [x,y]
% r - el radio del crculo
% imgsize - tamao de la matriz en la imagen para trazar coordenadas en
% nsides - el crculo es en realidad aproximar por un polgono, este
% argumento da el nmero de lados utilizadas en esta aproximacin
defecto
% es 600.
%
% Output:
% x - una matriz que contiene las coordenadas x de los lmites del crculo
% puntos
% y - una matriz que contiene las coordenadas de los lmites y crculo
% puntos

function [x,y] = circlecoords(c, r, imgsize,nsides)


if nargin == 3
nsides = 600;
end

nsides = round(nsides);

a = [0:pi/nsides:2*pi];
xd = (double(r)*cos(a)+ double(c(1)) );
yd = (double(r)*sin(a)+ double(c(2)) );

xd = round(xd);
yd = round(yd);

xd2 = xd;
coords = find(xd>imgsize(2));
xd2(coords) = imgsize(2);
coords = find(xd<=0);
xd2(coords) = 1;

yd2 = yd;
coords = find(yd>imgsize(1));
yd2(coords) = imgsize(1);
coords = find(yd<=0);
yd2(coords) = 1;

x = int32(xd2);
y = int32(yd2);















87

% createiristemplate
% Argumentos:
% eyeimage_filename - el nombre del archivo de la imagen del iris
%
function [template, mask] = createiristemplate(eyeimage_filename)

global DIAGPATH
DIAGPATH = 'diagnostics\';

radial_res = 40;
angular_res = 240;

minWaveLength=18;
mult=1;
sigmaOnf=0.5;

eyeimage = imread(eyeimage_filename);

savefile = [eyeimage_filename,'-houghpara.mat'];
[stat,mess]=fileattrib(savefile);


[circleiris circlepupil imagewithnoise] = segmentiris(eyeimage);
save(savefile,'circleiris','circlepupil','imagewithnoise');


imagewithnoise2 = uint8(imagewithnoise);
imagewithcircles = uint8(eyeimage);


[x,y] = circlecoords([circleiris(2),circleiris(1)],circleiris(3),size(eyeimage));
ind2 = sub2ind(size(eyeimage),double(y),double(x));


[xp,yp]=circlecoords([circlepupil(2),circlepupil(1)],circlepupil(3),size(eyeimage
));
ind1 = sub2ind(size(eyeimage),double(yp),double(xp));

imagewithnoise2(ind2) = 255;
imagewithnoise2(ind1) = 255;

imagewithcircles(ind2) = 255;
imagewithcircles(ind1) = 255;
w = cd;
cd(DIAGPATH);
imwrite(imagewithnoise2,[eyeimage_filename,'-noise.jpg'],'jpg');
imwrite(imagewithcircles,[eyeimage_filename,'-segmented.jpg'],'jpg');
cd(w);


[polar_array noise_array] = normaliseiris(imagewithnoise, circleiris(2),...
circleiris(1), circleiris(3), circlepupil(2), circlepupil(1),
circlepupil(3),eyeimage_filename, radial_res, angular_res);


w = cd;
cd(DIAGPATH);
imwrite(polar_array,[eyeimage_filename,'-polar.jpg'],'jpg');
imwrite(noise_array,[eyeimage_filename,'-polarnoise.jpg'],'jpg');
cd(w);

[template mask] = encode(polar_array, noise_array, nscales, minWaveLength, mult,
sigmaOnf);
88



% encode
% Argumentos:
% polar_array - regin iris normalizada
% noise_array - correspondiente region de mapa de ruido normalizado
% nscales - nmero de filtros para usar en la codificacin
% minWaveLength - base de longitud de onda
% mult - factor de multicative entre cada filtro
% sigmaOnf - parmetro de ancho de banda
%
% Output:
% template - plantilla biomtrico binario del iris
% mask - la mscara de ruido iris binario

function [template, mask] = encode(polar_array,noise_array, nscales,
minWaveLength, mult, sigmaOnf)

[E0 filtersum] = gaborconvolve(polar_array, nscales, minWaveLength, mult,
sigmaOnf);

length = size(polar_array,2)*2*nscales;

template = zeros(size(polar_array,1), length);

length2 = size(polar_array,2);
h = 1:size(polar_array,1);

%crear la plantilla del iris

mask = zeros(size(template));

for k=1:nscales

E1 = E0{k};


H1 = real(E1) > 0;
H2 = imag(E1) > 0;

H3 = abs(E1) < 0.0001;


for i=0:(length2-1)

ja = double(2*nscales*(i));

template(h,ja+(2*k)-1) = H1(h, i+1);
template(h,ja+(2*k)) = H2(h,i+1);


mask(h,ja+(2*k)-1) = noise_array(h, i+1) | H3(h, i+1);
mask(h,ja+(2*k)) = noise_array(h, i+1) | H3(h, i+1);

end

end

89

% findcircle
%
% Arguments:
% image - la imagen encontrar los crculos
% lradius - radio inferior para buscar
% uradius - radio superior para buscar
% scaling - factor de escala por exceso de velocidad de hasta la
% transformada de Hough
% sigma - cantidad de gaussiana suavizado a
% aplicar para la creacin de mapa borde.
% hithres - umbral para la creacin de mapa borde
% lowthres - umbral para bordes conectados
% vert - contribucin borde vertical (0-1)
% horz - contribucin borde horizontal (0-1)
%
% Salida:
% circleiris - coordenadas del centro y el radio
% de los lmites del iris detectado
% circlepupil - coordenadas del centro y el radio
% del borde de la pupila detectado
% imagewithnoise - imagen visual original, pero con
% ubicacin de ruido marcado con
% valores NaN

function [row, col, r] = findcircle(image,lradius,uradius,scaling, sigma,
hithres, lowthres, vert, horz)

lradsc = round(lradius*scaling);
uradsc = round(uradius*scaling);
rd = round(uradius*scaling - lradius*scaling);

[I2 or] = canny(image, sigma, scaling, vert, horz);
I3 = adjgamma(I2, 1.9);
I4 = nonmaxsup(I3, or, 1.5);
edgeimage = hysthresh(I4, hithres, lowthres);

h = houghcircle(edgeimage, lradsc, uradsc);

maxtotal = 0;

for i=1:rd

layer = h(:,:,i);
[maxlayer] = max(max(layer));


if maxlayer > maxtotal

maxtotal = maxlayer;


r = int32((lradsc+i) / scaling);

[row,col] = ( find(layer == maxlayer) );


row = int32(row(1) / scaling);
col = int32(col(1) / scaling);

end

end

90

% findline
% Argumentos:
% image - la imagen de entrada
%
% Output:
% lines - parmetros de la lnea detectada en forma polar

function lines = findline(image)

[I2 or] = canny(image, 2, 1, 0.00, 1.00);

I3 = adjgamma(I2, 1.9);
I4 = nonmaxsup(I3, or, 1.5);
edgeimage = hysthresh(I4, 0.20, 0.15);


theta = (0:179)';
[R, xp] = radon(edgeimage, theta);

maxv = max(max(R));

if maxv > 25
i = find(R == max(max(R)));
else
lines = [];
return;
end

[foo, ind] = sort(-R(i));
u = size(i,1);
k = i(ind(1:u));
[y,x]=ind2sub(size(R),k);
t = -theta(x)*pi/180;
r = xp(y);

lines = [cos(t) sin(t) -r];

cx = size(image,2)/2-1;
cy = size(image,1)/2-1;
lines(:,3) = lines(:,3) - lines(:,1)*cx - lines(:,2)*cy;

91

% gaborconvolve

% Argumentos:
% im - la imagen convolucionar
% nscale - nmero de filtros a utilizar
% minWaveLength - longitud de onda del filtro de base
% mult - el factor multiplicativo entre cada filtro
% sigmaOnf - Relacin entre la desviacin estndar de la gaussiana describir
% funcin de transferencia del filtro Gabor registro de la frecuencia
% dominio de la frecuencia central del filtro.
%
function[EO, filtersum] = gaborconvolve(im, nscale, minWaveLength, mult, ... sigmaOnf)

[rows cols] = size(im);
filtersum = zeros(1,size(im,2));

EO = cell(1, nscale);

ndata = cols;
if mod(ndata,2) == 1
ndata = ndata-1;
end

logGabor = zeros(1,ndata);
result = zeros(rows,ndata);

radius = [0:fix(ndata/2)]/fix(ndata/2)/2;
radius(1) = 1;

wavelength = minWaveLength;

for s = 1:nscale,


fo = 1.0/wavelength;
rfo = fo/0.5;

logGabor(1:ndata/2+1) = exp((-(log(radius/fo)).^2) / (2 * log(sigmaOnf)^2));
logGabor(1) = 0;

filter = logGabor;

filtersum = filtersum+filter;


for r = 1:rows % For each row

signal = im(r,1:ndata);


imagefft = fft( signal );


result(r,:) = ifft(imagefft .* filter);

end

EO{s} = result;

wavelength = wavelength * mult;
end

filtersum = fftshift(filtersum);
92

% gethammingdistance
% Argumentos:
% template1 - primera plantilla
% mask1 - mscara de ruido correspondiente
% template2 - segunda plantilla
% mask2 - mscara de ruido correspondiente
% scales - el nmero de filtros utilizados para codificar las plantillas,
% necesario para el cambio.
%
% Salida:
% hd - la distancia de Hamming como una relacin



function hd = gethammingdistance(template1, mask1, template2, mask2, scales)

template1 = logical(template1);
mask1 = logical(mask1);

template2 = logical(template2);
mask2 = logical(mask2);

hd = NaN;


for shifts=-8:8

template1s = shiftbits(template1, shifts,scales);
mask1s = shiftbits(mask1, shifts,scales);


mask = mask1s | mask2;

nummaskbits = sum(sum(mask == 1));

totalbits = (size(template1s,1)*size(template1s,2)) - nummaskbits;

C = xor(template1s,template2);

C = C & ~mask;
bitsdiff = sum(sum(C==1));

if totalbits == 0

hd = NaN;

else

hd1 = bitsdiff / totalbits;


if hd1< hd || isnan(hd)

hd = hd1;

end


end

end

93

% houghcircle

% Argumentos:
% edgeim - el mapa de imagen del borde de transformarse
% rmin, rmax - los valores mnimo y mximo radio
% de crculos para buscar
% Salida:
% h - La transformada de Hough
%

function h = houghcircle(edgeim, rmin, rmax)

[rows,cols] = size(edgeim);
nradii = rmax-rmin+1;
h = zeros(rows,cols,nradii);

[y,x] = find(edgeim~=0);


for index=1:size(y)

cx = x(index);
cy = y(index);

for n=1:nradii

h(:,:,n) = addcircle(h(:,:,n),[cx,cy],n+rmin);

end

end

94

% HYSTHRESH

% Argumentos:
% im - imagen a umbrales concretos (que se supone no negativo)
% T1 - valor de umbral superior
% T2 - valor de umbral inferior


function bw = hysthresh(im, T1, T2)

if (T2 > T1 | T2 < 0 | T1 < 0)
error('T1 debe ser >= T2 y ambos deben estar >= 0 ');
end

[rows, cols] = size(im);
rc = rows*cols;
rcmr = rc - rows;
rp1 = rows+1;

bw = im(:);
pix = find(bw > T1);
npix = size(pix,1);

stack = zeros(rows*cols,1);

stack(1:npix) = pix;
stp = npix;
for k = 1:npix
bw(pix(k)) = -1;
end

O = [-1, 1, -rows-1, -rows, -rows+1, rows-1, rows, rows+1];

while stp ~= 0
v = stack(stp);
stp = stp - 1;

if v > rp1 & v < rcmr
for l = 1:8
ind = index(l);
if bw(ind) > T2
stp = stp+1;
stack(stp) = ind;
bw(ind) = -1;
end
end
end
end



bw = (bw == -1);
bw = reshape(bw,rows,cols);

95

% linecoords
% Argumentos:
% lines - una matriz que contiene los parmetros de la lnea de
% forma
% imsize - tamao de la imagen, es necesario para que las coordenadas x y
% estn dentro del lmite de la imagen
%


function [x,y] = linecoords(lines, imsize)

xd = [1:imsize(2)];
yd = (-lines(3) - lines(1)*xd ) / lines(2);

coords = find(yd>imsize(1));
yd(coords) = imsize(1);
coords = find(yd<1);
yd(coords) = 1;

x = int32(xd);
y = int32(yd);

96

% NONMAXSUP

% entrada:
% inimage - imagen para ser non-maxima suprimida.
%
% orient - imagen que contiene caractersticas ngulos normales de orientacin en grados
% (0-180), los ngulos positivos en sentido antihorario.
%
% radius - distancia en unidades de pxel a ser considerado en cada lado de cada
% pxel cuando se determina si se trata de un mximo local o no.
% (Valor sugerido acerca de 01.02 a 01.05)
function im = nonmaxsup(inimage, orient, radius)

if size(inimage) ~= size(orient)
error('imagen y la orientacin de la imagen son de diferentes tamaos );
end

if radius < 1
error('radio debe estar >= 1');
end

[rows,cols] = size(inimage);
im = zeros(rows,cols);
iradius = ceil(radius);

angle = [0:180].*pi/180;
xoff = radius*cos(angle);
yoff = radius*sin(angle);
hfrac = xoff - floor(xoff);
vfrac = yoff - floor(yoff);
orient = fix(orient)+1;
for col = (iradius+1):(cols - iradius)

or = orient(row,col);
x = col + xoff(or);
y = row - yoff(or);

fx = floor(x);
cx = ceil(x);
fy = floor(y);
cy = ceil(y);
tl = inimage(fy,fx);

upperavg = tl + hfrac(or) * (tr - tl);
loweravg = bl + hfrac(or) * (br - bl);
v1 = upperavg + vfrac(or) * (loweravg - upperavg);

if inimage(row, col) > v1
x = col - xoff(or);
y = row + yoff(or);

fx = floor(x);
cx = ceil(x);
fy = floor(y);
cy = ceil(y);
tl = inimage(fy,fx);
tr = inimage(fy,cx);
bl = inimage(cy,fx);
br = inimage(cy,cx);
upperavg = tl + hfrac(or) * (tr - tl);
loweravg = bl + hfrac(or) * (br - bl);
v2 = upperavg + vfrac(or) * (loweravg - upperavg);

97

if inimage(row,col) > v2
im(row, col) = inimage(row, col);
end

end
end
end



% normaliseiris
% Argumentos:
% image -la imagen del ojo de entrada para extraer datos del iris de
% x_iris - la coordenada x del crculo que define el iris
% lmite
% y_iris - la coordenada Y del crculo que define el iris
% lmite
% r_iris - el radio del crculo que define el iris
% lmite
% x_pupil - la coordenada X del crculo que define la pupila
% limite
% y_pupil - la coordenada y del crculo que define la pupila
% limite
% r_pupil - el radio del crculo que define la pupila
% lmite
% eyeimage_filename - nombre de archivo original de la imagen del ojo de entrada
% radpixels - resolucin radial, define la dimensin vertical de
% representacin normalizada
% angulardiv - resolucin angular, define la dimensin horizontal
% de la representacin normalizada
%


function [polar_array, polar_noise] = normaliseiris(image, x_iris, y_iris,
r_iris,...
x_pupil, y_pupil, r_pupil,eyeimage_filename, radpixels, angulardiv)

global DIAGPATH

radiuspixels = radpixels + 2;
angledivisions = angulardiv-1;

r = 0:(radiuspixels-1);

theta = 0:2*pi/angledivisions:2*pi;

x_iris = double(x_iris);
y_iris = double(y_iris);
r_iris = double(r_iris);

x_pupil = double(x_pupil);
y_pupil = double(y_pupil);
r_pupil = double(r_pupil);

% calcular el desplazamiento del centro de la pupila del centro del iris
ox = x_pupil - x_iris;
oy = y_pupil - y_iris;

if ox <= 0
sgn = -1;
elseif ox > 0
sgn = 1;
end
98


if ox==0 && oy > 0

sgn = 1;

end

r = double(r);
theta = double(theta);

a = ones(1,angledivisions+1)* (ox^2 + oy^2);


if ox == 0
phi = pi/2;
else
phi = atan(oy/ox);
end

b = sgn.*cos(pi - phi - theta);


r = (sqrt(a).*b) + ( sqrt( a.*(b.^2) - (a - (r_iris^2))));

r = r - r_pupil;

rmat = ones(1,radiuspixels)'*r;

rmat = rmat.* (ones(angledivisions+1,1)*[0:1/(radiuspixels-1):1])';
rmat = rmat + r_pupil;



rmat = rmat(2:(radiuspixels-1), :);

xcosmat = ones(radiuspixels-2,1)*cos(theta);
xsinmat = ones(radiuspixels-2,1)*sin(theta);

xo = rmat.*xcosmat;
yo = rmat.*xsinmat;

xo = x_pupil+xo;
yo = y_pupil-yo;


[x,y] = meshgrid(1:size(image,2),1:size(image,1));
polar_array = interp2(x,y,image,xo,yo);


polar_noise = zeros(size(polar_array));
coords = find(isnan(polar_array));
polar_noise(coords) = 1;

polar_array = double(polar_array)./255;

coords = find(xo > size(image,2));
xo(coords) = size(image,2);
coords = find(xo < 1);
xo(coords) = 1;

coords = find(yo > size(image,1));
yo(coords) = size(image,1);
coords = find(yo<1);
99

yo(coords) = 1;

xo = round(xo);
yo = round(yo);

xo = int32(xo);
yo = int32(yo);

ind1 = sub2ind(size(image),double(yo),double(xo));

image = uint8(image);

image(ind1) = 255;

[x,y] = circlecoords([x_iris,y_iris],r_iris,size(image));
ind2 = sub2ind(size(image),double(y),double(x));

[xp,yp] = circlecoords([x_pupil,y_pupil],r_pupil,size(image));
ind1 = sub2ind(size(image),double(yp),double(xp));

image(ind2) = 255;
image(ind1) = 255;



w = cd;
cd(DIAGPATH);

imwrite(image,[eyeimage_filename,'-normal.jpg'],'jpg');

cd(w);
coords = find(isnan(polar_array));
polar_array2 = polar_array;
polar_array2(coords) = 0.5;
avg = sum(sum(polar_array2)) / (size(polar_array,1)*size(polar_array,2));
polar_array(coords) = avg;

100

% segmentiris
% Argumentos:
% eyeimage - la imagen del ojo de entrada
%
% Output:
% circleiris - coordenadas del centro y el radio
% de los lmites del iris detectado
% circlepupil - coordenadas del centro y el radio
% del borde de la pupila detectado
% imagewithnoise - imagen visual original, pero con
% ubicacin de ruido marcado con
% valores NaN


function [circleiris, circlepupil, imagewithnoise] = segmentiris(eyeimage)


lpupilradius = 28;
upupilradius = 75;
lirisradius = 80;
uirisradius = 150;


scaling = 0.4;

reflecthres = 240;


[row, col, r] = findcircle(eyeimage, lirisradius, uirisradius, scaling, 2, 0.20,
0.19, 1.00, 0.00);

circleiris = [row col r];

rowd = double(row);
cold = double(col);
rd = double(r);

irl = round(rowd-rd);
iru = round(rowd+rd);
icl = round(cold-rd);
icu = round(cold+rd);

imgsize = size(eyeimage);

if irl < 1
irl = 1;
end

if icl < 1
icl = 1;
end

if iru > imgsize(1)
iru = imgsize(1);
end

if icu > imgsize(2)
icu = imgsize(2);
end

imagepupil = eyeimage( irl:iru,icl:icu);


101

[rowp, colp, r] = findcircle(imagepupil, lpupilradius, upupilradius
,0.6,2,0.25,0.25,1.00,1.00);

rowp = double(rowp);
colp = double(colp);
r = double(r);

row = double(irl) + rowp;
col = double(icl) + colp;

row = round(row);
col = round(col);

circlepupil = [row col r];

imagewithnoise = double(eyeimage);

%encontrar la parte superior del prpado
topeyelid = imagepupil(1:(rowp-r),:);
lines = findline(topeyelid);

if size(lines,1) > 0
[xl yl] = linecoords(lines, size(topeyelid));
yl = double(yl) + irl-1;
xl = double(xl) + icl-1;

yla = max(yl);

y2 = 1:yla;

ind3 = sub2ind(size(eyeimage),yl,xl);
imagewithnoise(ind3) = NaN;

imagewithnoise(y2, xl) = NaN;
end

%encontrar prpado inferior
bottomeyelid = imagepupil((rowp+r):size(imagepupil,1),:);
lines = findline(bottomeyelid);

if size(lines,1) > 0

[xl yl] = linecoords(lines, size(bottomeyelid));
yl = double(yl)+ irl+rowp+r-2;
xl = double(xl) + icl-1;

yla = min(yl);

y2 = yla:size(eyeimage,1);

ind4 = sub2ind(size(eyeimage),yl,xl);
imagewithnoise(ind4) = NaN;
imagewithnoise(y2, xl) = NaN;

end


ref = eyeimage < 100;
coords = find(ref==1);
imagewithnoise(coords) = NaN;



102

% shiftbits
%
% Argumentos:
% template - la plantilla para cambiar
% noshifts - nmero de turnos para llevar a cabo a la derecha, un negative
% el valor, el cambio a la izquierda
% nscales - nmero de filtros utilizados para la codificacin, necesitaba
% determinar el nmero de bits que se mueven en un cambio
%

function templatenew = shiftbits(template, noshifts,nscales)

templatenew = zeros(size(template));

width = size(template,2);
s = round(2*nscales*abs(noshifts));
p = round(width-s);

if noshifts == 0
templatenew = template;

elseif noshifts < 0

x=1:p;

templatenew(:,x) = template(:,s+x);

x=(p + 1):width;

templatenew(:,x) = template(:,x-p);

else

x=(s+1):width;

templatenew(:,x) = template(:,x-s);

x=1:s;

templatenew(:,x) = template(:,p+x);

end

Вам также может понравиться