Tesis Angel 2014

161
UNIVERSIDAD NACIONAL DEL ALTIPLANO – PUNO FACULTAD DE INGENIERÍA ESTADÍSTICA E INFORMÁTICA ESCUELA PROFESIONAL DE INGENIERÍA ESTADÍSTICA E INFORMÁTICA PROTOTIPO DE IDENTIFICACIÓN BIOMÉTRICA DE PERSONAS POR MEDIO DEL RECONOCIMIENTO DE IRIS, APLICANDO LAS TECNICAS DE JHON DAUGMAN, PUNO – 2013 TESIS PRESENTADA POR Bach. Ángel Henrry Panca Núñez PARA OPTAR EL TÍTULO PROFESIONAL DE:

Transcript of Tesis Angel 2014

Page 1: Tesis Angel 2014

UNIVERSIDAD NACIONAL DEL ALTIPLANO – PUNO

FACULTAD DE INGENIERÍA ESTADÍSTICA E INFORMÁTICA

ESCUELA PROFESIONAL DE INGENIERÍA ESTADÍSTICA E INFORMÁTICA

PROTOTIPO DE IDENTIFICACIÓN BIOMÉTRICA DE PERSONAS

POR MEDIO DEL RECONOCIMIENTO DE IRIS,

APLICANDO LAS TECNICAS DE JHON DAUGMAN,

PUNO – 2013

TESIS

PRESENTADA POR

Bach. Ángel Henrry Panca Núñez

PARA OPTAR EL TÍTULO PROFESIONAL DE:

INGENIERO ESTADÍSTICO E INFORMÁTICO

PUNO – PERÚ

2013

Page 2: Tesis Angel 2014

UNIVERSIDAD NACIONAL DEL ALTIPLANO - PUNO

FACULTAD DE INGENIERÍA ESTADÍSTICA E INFORMÁTICA

ESCUELA PROFESIONAL DEINGENIERÍA ESTADÍSTICA E INFORMÁTICA

TESIS

PROTOTIPO DE IDENTIFICACIÓN BIOMÉTRICA DE PERSONAS POR MEDIO DEL RECONOCIMIENTO DE IRIS,

APLICANDO LAS TECNICAS DE JHON DAUGMAN, PUNO – 2013.

Presentada por:

Bach. PANCA NUÑEZ ÁNGEL HENRRY

A la Coordinación de Investigación de la Facultad de Ingeniería

Estadística e Informática de la Universidad Nacional del Altiplano - Puno,

para optar el Título Profesional de:

INGENIERO ESTADÍSTICO E INFORMÁTICO

APROBADA POR:

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

PRIMER MIEMBRO :……………………………………………………M.Sc. SAMUEL DONATO PÉREZ QUISPE

SEGUNDO MIEMBRO :……………………………………………………M.SC. GODOFREDO QUISPE MAMANI

DIRECTOR DE TESIS :……………………………………………………M.Sc. PERCY HUATA PANCA

ASESOR DE TESIS :……………………………………………………M.Sc. LEONID ALEMAN GONZALES

Page 3: Tesis Angel 2014

iii

Page 4: Tesis Angel 2014

DEDICATORIAS

i

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

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 difíciles, siempre han estado apoyándome y dándome 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 más difíciles que pase en la formación de mi profesión 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.

Page 5: Tesis Angel 2014

AGRADECIMIENTOS

ii

Mi más sincero y profundo agradecimiento:

- A nuestra primera casa de estudios UNIVERSIDAD NACIONAL DEL

ALTIPLANO por haberme dado la oportunidad de cumplir este gran

sueño.

- A La Facultad de Ingeniería Estadística e Informática (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 Ingeniería Estadística e

Informática de la Universidad Nacional del Altiplano de Puno, por sus

sabias enseñanzas.

- A los estudiantes de la Escuela Profesional de Ingeniería Estadística e

Informática de la Universidad Nacional del Altiplano de Puno, por su

valiosa colaboración.

- A todas las personas, amigos y familiares por su aliento, apoyo

desinteresado y colaboración durante mi formación profesional.

Page 6: Tesis Angel 2014

INDICE

DEDICATORIA ........................................................................................................ i

AGRADECIMIENTO................................................................................................ ii

RESUMEN.............................................................................................................. ix

ABSTRACT.............................................................................................................xi

INTRODUCCIÓN .................................................................................................xiii

CAPITULO IPLAN DE INVESTIGACIÓN................................................................1

1.1 PLANTEAMIENTO DEL PROBLEMA..............................................................1

1.1.1 Formulación y Definición del Problema.................................................1

1.1.2 Formulación del problema.....................................................................2

1.2 OBJETIVOS.....................................................................................................2

1.2.1 Objetivo General...................................................................................2

1.2.2 Objetivos Específicos............................................................................2

1.3 HIPÓTESIS......................................................................................................2

1.3.1 Hipótesis General..................................................................................2

CAPITULO IIMARCO TEÓRICO.............................................................................3

2.1 ANTECEDENTES DE LA INVESTIGACIÓN...................................................3

2.1.1 Antecedentes de Nivel Internacional.....................................................3

2.1.2 Antecedentes de Nivel Local.................................................................4

2.2 BIOMETRÍA.....................................................................................................6

2.3 EL IRIS HUMANO............................................................................................7

2.4 PATRÓN DEL IRIS..........................................................................................9

2.5 PROCESAMIENTO DE IMÁGENES POR COMPUTADORA.........................9

2.5.1 La cuantificación..................................................................................12

2.5.2 Imagen digital......................................................................................13

iii

Page 7: Tesis Angel 2014

2.6 TRATAMIENTO DE IMÁGENES...................................................................17

2.6.1 Etapas para el tratamiento de imágenes.............................................18

2.6.2 Segmentación.....................................................................................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 OPERACIONALIZACIÓN DE VARIABLES....................................................35

CAPITULO III METODOS Y MATERIALES...................................................36

3.1 TIPO DE INVESTIGACIÓN...........................................................................36

3.2 DISEÑO DE ESTUDIO..................................................................................36

3.3 POBLACIÓN..................................................................................................36

3.4 MÉTODOS DE RECOPILACIÓN DE DATOS...............................................36

3.5 METODOLOGÍA PARA EL RECONOCIMIENTO DE IRIS...........................37

3.5.1 Desarrollo Organización del proyecto.................................................38

CAPITULO IVRESULTADOS Y DISCUSIÓN........................................................43

4.1 ANALISIS DE REQUISITOS..........................................................................43

4.1.1 Creacióndelaplantilla - obtencion de la

muestra…………………………………………………………….............43

4.1.2 Creación de la plantilla –extracción de los datos de interes

............................................................................................................43

4.1.3 Creación de la plantilla–Transformaciónde datos en plantilla

biométrica............................................................................................45

4.1.4 Comparación de plantiullas biométricas........................................46

4.2 IMPLEMENTACIÓN.......................................................................................47

4.2.1 Adquisición de las imágenes............................................................47

4.2.2 Segmentación.....................................................................................48

iv

Page 8: Tesis Angel 2014

4.2.3 Obtencion del iris.................................................................................55

4.3 RECONOCIMIENTO (Codificación y matching)............................................61

4.3.1 Metodosdecodificaciónymatchingexistentes.......................................61

4.3.2 Implementación...................................................................................67

CONCLUSIONES..................................................................................................73

RECOMENDACIONES Y SUGERENCIAS...........................................................75

BIBLIOGRAFIA.....................................................................................................76

ANEXOS................................................................................................................78

v

Page 9: Tesis Angel 2014

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 CUANTIFICACIÓN DE LA SEÑAL...................

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 ECUALIZACIÓN DE HISTOGRAMA.............23

FIGURA Nº 10: PROCESO DE CONVOLUCIÓN............................................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 CÍRCULO CREADO EN EL ESPACIO................

DE HOUGH (DER)...........................................................31

FIGURA Nº 13: RESULTADO DE NORMALIZACIÓN DE UN IRIS................

A LA DERECHA, LA MATRIZ 2D RESULTANTE.............32

FIGURA Nº 14: CURVA GAUSSIANA FIG. (IZQ.) – WAVELET

GABOR RESULTANTE FIG. (DER)................................33

vi

Page 10: Tesis Angel 2014

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:

AUTENTIFICACIÓN Y IDENTIFICACIÓN.......................38

FIGURA Nº 18: MODULO DE EXTRACCIÓN DE DATOS DE................

INTERÉS...............................................................................44

FIGURA Nº 19: MÓDULO DE TRANSFORMACIÓN EN

PLANTILLA BIOMÉTRICA................................................46

FIGURA Nº 20: MÓDULO DE COMPARACIÓN DE PLANTILLAS...............

BIOMÉTRICAS......................................................................46

FIGURA Nº 21: IMAGEN CAPTURA POR EL COMPUTADOR......................48

FIGURA Nº 22: CAPTURAS TÍPICAS DEL IRIS HUMANO............................54

FIGURA Nº 23: SEGMENTACIÓN DE LA PUPILA.........................................54

FIGURA Nº 24: REDIMENSIÓN 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

APLICACIÓN DE CANNY EDGE......................................... 57

FIGURA Nº 27: REGIÓN DE LA PUPILA OBTENIDA A PARTIR................

DE LA REGIÓN DEL IRIS............................................57

FIGURA Nº 28: IMAGEN (IZQ.), SU HISTOGRAMA (CENTRO)...............

Y LA DETECCIÓN CANNY (DER.)...................................58

FIGURA Nº 29: ZONA OCLUIDA POR LOS PARPADOS..............

MARCADOS COMO RUIDO...............................................59

vii

Page 11: Tesis Angel 2014

FIGURA Nº 30: IMAGEN (IZQ.) LÍNEA DETECTADA (CENTRO)

LÍNEA DE INTERSECCIÓN (DER.)......................................60

FIGURA Nº 31: DETALLE DE PESTAÑAS 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 NORMALIZACIÓN DEL IRIS....................67

FIGURA Nº 34: TEXTURA NORMALIZADA Y MÁSCARA DE RUIDO............68

FIGURA Nº 35: EXTRACCIÓN DE SEÑAL ES UNIDIMENSIONALES...............

DE LA TEXTURA DEL IRIS..................................................70

FIGURA Nº 36: PROCESO DE CODIFICACIÓN:...........................................70

FIGURA Nº 37: POSICION DE FASE.............................................................71

viii

Page 12: Tesis Angel 2014

RESUMEN

La biometría en la actualidad es un tema muy estudiado por investigadores,

que es una técnica para reconocer a las personas basadas en la voz, la mano,

el rostro, la huella dactilar, la retina, entre otras características, sin embargo no

es muy eficiente porque es univoca, ya que es muy común y no garantiza en

reconocer a la persona original. Es por esa razón que en el presente trabajo de

investigación se desarrolla una nueva metodología para el reconocimiento de

personas que sea más eficaz en evitar las suplantaciones y se fija como

objetivo principal desarrollar un prototipo de identificación de personas por

medio del reconocimiento del iris.

Se ha empleado en el desarrollo del prototipo la metodología de cascada el

cual se basa en capturar la imagen del iris para hacer un tratamiento a dicha

imagen, seguidamente se realiza la segmentación 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 después para realizar el reconocimiento se tendrá que

codificar el iris en código 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.

ix

Page 13: Tesis Angel 2014

Se concluye que, con el prototipo desarrollo de identificación biométrica de

personas por medio del reconocimiento del iris, se evita las suplantaciones en

exámenes, accesos a lugares restringidos, el uso de tarjetas bancarias entre

otras modalidades a lo cual se quiera una seguridad exclusiva. Con la prueba

de evaluación realizada a los usuarios se obtuvo un 100% de eficacia y

satisfacción considerándolo como aceptable.

Palabras claves: Algoritmo, biométrica, prototipo, distancia de Haming,

reconocimiento de iris, segmentación, transformada de Hough.

x

Page 14: Tesis Angel 2014

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.

xi

Page 15: Tesis Angel 2014

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.

xii

Page 16: Tesis Angel 2014

INTRODUCCIÓN

A lo largo de la historia el ser humano ha implementado distintos métodos para

reconocerse y poder distinguirse entre las demás personas. Entre los métodos

más usados se destacan: la altura, la forma de la cara, las huellas digitales, el

lóbulo de la oreja, entre otros, esto nace debido al interés 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 matemáticos y

características humanas llegan a mezclarse. A esto se le denomina Biometría.

Entonces, para realizar un estudio biométrico y el reconocimiento de una

persona, será necesaria una característica 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 más

interesantes y confiable dentro del reconocimiento de personas. Este método

está desarrollado en cuatro capítulos:

En el primer capítulo se presenta el planteamiento del problema, objetivos,

hipótesis de la investigación.

En el segundo capítulo se presenta el marco teórico que consiste en:

antecedentes de la investigación, definición de términos básicos, marco

conceptual, operacionalización de variables.

xiii

Page 17: Tesis Angel 2014

En el tercer capítulo se presenta los métodos y materiales. En este capítulo se

presenta los principales temas concernientes al tipo y diseño de la

investigación.

En el cuarto capítulo se presenta los resultados y la discusión que es

fundamental para el desarrollo del prototipo de identificación de personas.

xiv

Page 18: Tesis Angel 2014

CAPITULO I

PLAN DE INVESTIGACIÓN

1.1 PLANTEAMIENTO DEL PROBLEMA

1.1.1 Formulación y Definición del Problema

En las últimas décadas ha surgido el tema de reconocer a las

personas por medio de técnicas biométricas basadas en voz, mano,

rostro, huella dactilar, oreja, retina, firma, forma de caminar, por lo

que según estudios estas técnicas no son tan eficientes para la

identificación de personas, por lo que se propone en esta

investigación 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 años el reconocimiento de iris ha atraído la atención

de muchos investigadores, ya que una de las metas más importantes

que persiguen es comprender la forma y constitución del iris ocular

humano y las diferencias que existen entre ellas.

Numerosos enfoques han sido aplicados en la ejecución de este

proyecto, buscando la efectividad en el reconocimiento por medio de

iris ocular, gracias al desarrollo tecnológico 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

1

Page 19: Tesis Angel 2014

individuos.

1.1.2 FORMULACIÓN DEL PROBLEMA

¿Será eficiente el desarrollo e implementación de un prototipo de re-

conocimiento de personas por medio del iris ocular, en evitar suplan-

taciones 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 Específicos

Desarrollar el módulo para el pre procesamiento de imagen

Desarrollar el módulo para la segmentación de la imagen

Desarrollar el módulo para la Obtención del iris

Desarrollar el módulo de reconocimiento de iris

1.3 HIPÓTESIS

1.3.1 Hipótesis General

El prototipo de identificación de personas por medio del

reconocimiento del iris es eficiente en detectar suplantaciones en

los usuarios para todas las medidas de sefuridad.

2

Page 20: Tesis Angel 2014

CAPITULO II

MARCO TEÓRICO

1.4 ANTECEDENTES DE LA INVESTIGACIÓN

1.4.1 Antecedentes de Nivel Internacional

Baldo Romero Paulina y Garcia Molina Josue (2007).

“Autentificación Biométrica de Personas por medio de

Reconocimiento del Iris”. Tesis para Optar el Título de Ingeniero

en comunicaciones y Electrónica. México. Instituto Politécnico

Nacional de México.

Tiene por objetivo general Proponer un mecanismo eficiente

para la autenticación biométrica de personas basado en el

reconocimiento del patrón del iris. En este trabajo presenta el

desarrollo de una aplicación de software libre (Implementación en

plataformas de libre distribución) y de dominio público para la

autentificación biométrica de personas basada en reconocimiento

de iris. Con él se verifica la unicidad del patrón de iris del ojo así

como confiabilidad para usarse como técnica de autenticación

biométrica. Para evaluar el rendimiento de los algoritmos

implementados se hizo de una base de datos de imágenes

tomadas del iris de alrededor de 108 personas (756 imágenes),

donde verifican el rendimiento de esta aplicación.

3

Page 21: Tesis Angel 2014

1.4.2 Antecedentes de Nivel Local.

Cayo Cabrera Guido Humberto (2005). “Prototipo neurogenetico

aplicado en el reconocimiento de imágenes bidimensionales

estáticas: Rostros, Código de Barras y Firmas”. Tesis de Maestría

en Informática. Puno – Perú. Universidad Nacional del Altiplano.

Para la construcción del prototipo se ha considerado los

siguientes aspectos: modelo de neurona, arquitectura o topología

de conexión, y algoritmo de aprendizaje. Siendo la más ó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 genéticos también cuentan con la capacidad para

resolver un problema específico, pero a diferencia de los

parámetros-red, cualquier presentación puede ser expresada

como una cadena de palabras de longitud fija (genotipo) sobre

una finita (típicamente el binario) a ser usada. La interpretación

(es decir el phenotype) de cadenas (genotipo) no es relevante

para el algoritmo, inclusive si estos son: los parámetros de

diseño del motor de inferencia, la estrategia a utilizar o, en

cuanto a este proyecto, los pesos y vías de la red neuronal.Los

algoritmos genéticos son métodos sistemáticos para la resolución

de problemas de búsqueda y optimización, que aplican a estos

4

Page 22: Tesis Angel 2014

los mismos métodos de la evolución biológica: selección basada

en la población, reproducción sexual y mutación. Los algoritmos

genéticos son métodos de optimización, 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 máximo. En un algoritmo genético tras

parametrizar el problema en una serie de variables, (xi,......,xn) se

codifican en un cromosoma. Todos los operadores utilizados por

un algoritmo genético se aplicarán sobre estos cromosomas, o

sobre poblaciones de ellos.

El proyecto permite analizar y decodificar mediante técnicas

inteligentes los medios de seguridad gráficos y obtener así la

recuperación y verificación de datos de una persona

garantizando un alto grado de eficiencia y certeza e la validación

de los datos. La realización del procesamiento de imágenes

consume demasiado recurso de memoria y tiempo de

procesamiento, motivo por el cual la ejecución de redes

neuronales sobre éstas implica optimizar el proceso de

aprendizaje de tal forma que se consiga una convergencia más

veloz. Las búsquedas de imágenes dentro de bases de datos

pueden simplificarse mediante el empleo del prototipo Híbrido

Neurogenético, ya que no necesariamente puede ser aplicado a

firmas personales sino también a otros patrones similares. La

5

Page 23: Tesis Angel 2014

técnica híbrida que se implementó en el prototipo fue de gran

utilidad demostrando una vez más las ventajas de combinar las

funcionalidades de dos técnicas de la Inteligencia Artificial, que

dieron como resultado sacar lo mejor de ellas en la

implementación del sistema.

BASE TEÓRICA

1.5 BIOMETRÍA

La biometría hace uso de las características únicas de una persona para

permitir su reconocimiento automático. Se han desarrollado sistemas

biométricos basados en las huellas dactilares, la voz, la fisiología de las

manos o la cara, la escritura, la retina o el iris (Wikipedia L. e., 2012).

En estos últimos años la biometría ha crecido exponencialmente. De usar

simplemente la huella dactilar, cuyos orígenes datan del siglo XIV en China,

se ha pasado a emplear muchos métodos distintos teniendo en cuenta varias

medidas físicas y de comportamiento.

A pesar de la diversidad de estos sistemas, el procedimiento es común 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 interés, que luego son transformados,

mediante algoritmos matemáticos, en una plantilla biométrica. Esta plantilla

proporciona una representación normalizada del rasgo, que permite su

posterior comparación con otras plantillas pertenecientes al mismo o a otro

6

Page 24: Tesis Angel 2014

individuo.

El concepto biometría proviene de las palabras bio (vida) y metría (medida),

por lo tanto con ello se infiere que todo equipo biométrico mide e identifica

alguna característica propia de la persona (Sanchez, 2000).

La biometría es una tecnología de seguridad basada en el reconocimiento de

una característica de seguridad y en el reconocimiento de una característica

física e intransferible de las personas, como por ejemplo la huella digital.

1.6 EL IRIS HUMANO

El iris es la membrana coloreada y circular del ojo (Figura 1) que separa la

cámara anterior de la cámara posterior. Posee una apertura central de

tamaño variable que comunica las dos cámaras: la pupila. Corresponde a la

porción más anterior de la túnica vascular, la cual forma un diafragma

contráctil delante del cristalino. Se ubica tras la córnea, entre la cámara

anterior y el cristalino, al que cubre en mayor o menor medida en función de

su dilatación (Wikipedia L. e., 2012).

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

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

denomina esclerótica.

7

Page 25: Tesis Angel 2014

Figura Nº 02: Detalle del iris

La utilización del iris para identificación biométrica se considera ideal por una

serie de razones:

Es un órgano interno, al estar protegido por la córnea. Esto hace que no

sea susceptible al daño puntual o al paso del tiempo como lo son por

ejemplo las huellas dactilares.

Visto de frente, el iris es prácticamente plano, y su configuración

geométrica circular sólo se ve modificada por dos músculos: el esfínter

del iris y el de la pupila. Por tanto, la forma del iris resulta mucho más

simple y tratable que la de por ejemplo, la cara.

La textura del iris se crea aleatoriamente durante la gestación. Incluso

gemelos genéticamente idénticos (poseedores del mismo ADN) tienen

iris diferente.

La toma de fotografías para el reconocimiento no requiere que la persona

toque ningún equipo.

8

Page 26: Tesis Angel 2014

1.7 PATRÓN DEL IRIS

Una propiedad que el iris comparte con las huellas dactilares es la morfología

aleatoria de su estructura. No existe alteración genética en la expresión de

este órgano más allá de su forma anatómica, fisiología, color y apariencia

general. La textura del iris por sí misma es estocástica o posiblemente

caótica. Pero el iris disfruta de ventajas prácticas adicionales sobre las

huellas dactilares y otras variables biométricas, como son:

La facilidad de registrar su imagen a cierta distancia, sin la necesidad de

contacto físico o intrusivo y quizás discretamente.

Estable y sin cambio durante el periodo de vida del sujeto, inalterable

durante toda la vida de la persona.

1.8 PROCESAMIENTO DE IMÁGENES POR COMPUTADORA

El procesamiento de imágenes es el conjunto de técnicas que se aplican a

las imágenes digitales con el objetivo de mejorar la calidad o facilitar la

búsqueda de información.

Las operaciones que se pueden realizar con imágenes se dividen en:

Operación de punto

Operaciones de entorno

Operaciones con dos o másimágenes

El procesamiento y análisis de imágenes digitales se aplican con el objetivo

de captar y manipular grandes cantidades de información espacial de

matrices de valores. Esta distinción sitúa al procesamiento y análisis de

9

Page 27: Tesis Angel 2014

imágenes digitales como una tecnología asociada a las Ciencias de la

computación (Daugman J. , 2000).

La secuencia típica de procesado de imágenes suele implicar los siguientes

pasos:

1. Captura de la imagen a partir del proceso físico que la genera mediante

el sensor adecuado.

2. Restauración y realce para reducir ruidos y mejorar su calidad.

3. Codificación, segmentación y extracción de propiedades.

El análisis humano de imágenes u objetos presenta dificultades, pues el

proceso de inspección visual consume una gran cantidad de tiempo y está

sujeto a interpretaciones incoherentes e incompletas. El procesamiento de

imágenes, que comprende la manipulación por ordenador de imágenes

reales, resuelve estos problemas al poder automatizar el proceso de

extracción de información útil de los datos de la imagen. Con el

procesamiento de imágenes, también se puede perfeccionar la imagen,

corregir distorsiones.

Uno de los más importante y sencillo preprocesamientos es la detección de

bordes. Importante porque de él se puede empezar a extraer importante

información de la imagen, como pueden ser las formas de los objetos que la

componen, y sencillo porque los operadores de detección de bordes son

simples máscaras de convolución.

10

Page 28: Tesis Angel 2014

La detección de bordes es a menudo el primer paso en la segmentación de

la imagen, que es un campo del análisis de la imagen, y se utiliza para

agrupar los píxelesen regiones para determinar una composición de la

imagen. La detección de bordestambién es usada en el registro de imagen,

el cual alinea dos imágenes que podrían seradquiridas en momentos

separados.

Los bordes de una imagen contienen mucha información de la imagen.

Losbordes cuentan donde están los objetos, su forma, su tamaño, y también

su textura.Los ejes o bordes se encuentran en zonas de una imagen donde

el nivel de intensidadfluctúa bruscamente, cuanto más rápido se produce el

cambio de intensidad, el eje oborde es más fuerte.

En el procesamiento de imágenes se utilizan diferentes técnicas para realzar

las propiedades de la imagen a fin de facilitar el proceso de segmentación, la

extracción de características y finalmente su interpretación.

Las técnicas de procesamiento de imágenes se pueden clasificar en:

Las procedentes del procesamiento de señales.

Las que mejoran algún aspecto de la imagen.

El proceso de muestreo es la tarea de discretización del escenario en el

plano sensor y estárelacionado con la resolución espacial de la imagen.

11

Page 29: Tesis Angel 2014

Figura Nº 03: Imagen tomada con diferentes resoluciones

1.8.1 La cuantificación

La cuantificación de la señal es el número finito de los valores de

intensidad de cada píxel. Se suele emplear un byte de cuantificación

por píxel, consiguiendo así 256niveles de gris. El 0 corresponde al

color negro y el 255 al blanco. Entre estos dos valores están los

distintos tonos de gris.

Para las imágenes en color, la cuantificación es vectorial; por cada

píxel se representan tres valores. Estos tres valores dependen del

sistema de representación del color: RGB (Red Green Blue), HSV

(Hue, Saturation, Value), HSI… Comúnmente se utiliza RGB con un

12

Page 30: Tesis Angel 2014

byte por cada color consiguiendo 256 niveles o 16 millones

decolores.

Figura Nº 04: Niveles de cuantificación de la señal de la intensidad luminosa

En las técnicas de procesado de las imágenes se trata el valor de la

intensidad de cada pixel hasta conseguir el resultado adecuado.

1.8.2 Imagen digital

Una imagen digital es una función 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 mínimo equivale al negro, el máximo

al blanco y los valores intermedios son distintosniveles de gris que

varían del negro al blanco.

13

Page 31: Tesis Angel 2014

Principalmente, tenemos las siguientes características de una

imagen:

La resolución: La resolución de una imagen se refiere al número

de puntos porunidad de distancia que ésta tiene, de forma que a

mayor número de puntospor centímetro mayor resolución y más

definida estará la imagen.

La profundidad del color: La profundidad del color de una imagen

se refiere alnúmero de niveles de gris (o número de colores) que

empleamos pararepresentar la imagen. Un valor aceptable

podría corresponder con unaprofundidad de color de 8 bits,

equivalente a 256 distintos niveles de gris.

a) Binarización de una imagen

La binarización de imágenes es una tarea básica en muchas

aplicaciones de procesamiento digital de imágenes. 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 píxel

que sea mayor que un determinado umbral (valor límite), el resto de

píxeles tendrán por defecto el otro tono de color.

La binarización 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

14

Page 32: Tesis Angel 2014

predeterminado, se le asigna al píxel 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 información de la

probabilidad de aparición 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 creación de un histograma, en el caso de una imagen en

escala de 256tonalidades del blanco al negro (escala de grises), se

realiza fácilmente mediante medios informáticos, 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

la imagen, aumentando en una unidad el valor guardado en la

posición del vector correspondiente al tono del pixel en cuestión.

15

Page 33: Tesis Angel 2014

Figura Nº 05: Imagen con su correspondiente histograma

El histograma proporciona una descripción de la apariencia

global de una imagen. De forma que si los niveles de gris están

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 dispersión considerable a una imagen de alto contraste.

En el caso de la imagen en color, aparecen tres histogramas,

de forma que el tratamiento de imágenes en color se complica por la

aparición 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).

16

Page 34: Tesis Angel 2014

Figura Nº 06: imagen con su correspondiente histograma RGB

Un histograma es un gráfico estadístico que permite

representar la distribuciónde intensidad de los píxeles de una

imagen, es decir, el número de píxeles quecorresponde a cada

intensidad luminosa. Por convención, el histograma representa

elnivel de intensidad con coordenadas X que van desde lo más

oscuro a lo más claro.

En general, se representa como un gráfico 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 información sobre brillo y el contraste de la

imagen, y puede ser utilizado para ajustar estos parámetros, eliminar

ciertas tonalidades molestas.

1.9 TRATAMIENTO DE IMÁGENES

El tratamiento o edición de imágenes digitales manifiesta una tendencia clara

al acercamiento entre el sistema vectorial (objetos) y el “raster” (pixeles). Una

17

Page 35: Tesis Angel 2014

muestra evidente son las transformaciones: Escalar, Rotar, Estirar, Sesgar,

Distorsionar, Perspectiva, Deformar.

1.9.1 Etapas para el tratamiento de imágenes

a) Adquisición

En esta etapa se adquirirá las imágenes mediante una cámara.

b) Procesamiento digital de Imágenes

En esta etapa se describirán algunos conceptos importantes sobre el

procesamiento digital de imágenes útiles para el desarrollo del

presente proyecto de investigación, ya que las imágenes que se

emplearan son de naturaleza totalmente digital.

El termino imagen se refiere a una función 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 región 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 ecuación 1. Los elementos

de tal arreglo digital son llamados elementos de la imagen,

elementos de pintura o pixeles.

18

Page 36: Tesis Angel 2014

f ( x , y )=[ f (0,0) f (0,1) … f (0 , N−1)f (1,0 ) f (1,1) … f (0 , N−1)⋮

F (M−1,0)⋮

f (M−1,1)⋮

… f (M−1 , N−1)]…(1)

El nivel de brillo, o valor de cada pixel, es cuantizado a códigos

binarios enteros positivos. El número de niveles de cuantización está

determinado por la relación (2).

L=2B …(2)

Donde B representa el número de bits necesarios para cada muestra.

Esto es, con 6 bits de cuantización en la intensidad se pueden

representar 64 niveles de gris (26=64 ) .

Para tener una buena imagen de buena calidad para el ojo humano

es necesario tener como mínimo 64 niveles de gris(Gonzalez &

Woods, 2003). Para una apreciación fina se usa una cuantización

estándar 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 monocromática 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 más 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).

19

Page 37: Tesis Angel 2014

c) Pre-procesamiento

Por lo general, cuando se trabaja con imágenes se debe realizar una

etapa previa llamada pre-procesamiento, ya que hay que considerar

ciertos factores que podrían afectar directamente en el éxito o el

fracaso de nuestro sistema de reconocimiento.

Por otra parte, el tamaño del iris generalmente varia en diferentes

imágenes debido a la contracción o a la dilatación del iris causada

por diferentes niveles de iluminación; también que se pueden tener

diferentes distancias entre el ojo y la cámara, rotación del ojo y otros

factores. Debido a todo esto, es necesario aplicar un procesamiento

a las imágenes antes de utilizarlas en las siguientes etapas del

proceso.

Estiramiento del histograma.- El método de Estiramiento de

Histograma se aplica con la finalidad de mejorar el contraste de

las imágenes, es decir, obtener imágenes que no sean ni muy

oscuras ni muy claras, ya que el contraste representa la diferencia

entre niveles de gris claros y oscuros de una imagen. Al aplicar la

función de mejoramiento de contraste sobre una imagen con poco

contraste, la imagen resultante obtiene una mejora en la

apreciación visual de la imagen, que se ve reflejada en una mayor

expansión de los valores a lo largo de todo el histograma. El

Histograma de una imagen digital con niveles de gris en el rango

20

Page 38: Tesis Angel 2014

[0, L-1] es una función discreta P®=nr donde r representa un nivel

de gris y nr representa el número 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 imágenes

originales si no tienen un buen contraste.

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

La expresión empleada en el mecanismo del estiramiento del

histograma se muestra en la expresión (3)

pixelSalida=( L−1 ) ( PixelEntrada−NivelMin )

( NivelMax−NivelMin )… (3 )

Dónde: L-1 es el nivel máximo permitido de un pixel y determinado

por el número 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 máximo

21

Page 39: Tesis Angel 2014

existente en la imagen de entrada. NivelMin es el tono mínimo

existente en la imagen de entrada.

El algoritmo que empleamos para la implementación 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 implícitamente la imagen se obtiene su histograma, el cual es

una representación del número 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 módulo 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

22

Page 40: Tesis Angel 2014

Ecualización.- Este es otro mecanismo de pre-procesamiento que

al igual que el anterior va a generar la mejora del contraste de las

imágenes obtenidas de la Base de datos.

La ecualización permite adoptar el mismo número de muestras

para cada valor de pixel, y esto se logra a través de la obtención

del histograma de las imágenes a analizar. Consiste en encontrar

una transformación en la cual el histograma tenga una

representación uniforme, es decir, con la ecualización trataremos

de igualar lo más posible el histograma de una imagen al

histograma ideal.

Considerando funciones de tipo continúo 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 ecualización de histograma

23

Page 41: Tesis Angel 2014

Filtrado Espacial.- Este método de pre-procesamiento de

imágenes se basa en la operación de convolución, utilizando una

máscara que consiste en una matriz cuadrada de dimensiones m x

n impares. De esta manera, se realiza la convolución entre la

máscara y matriz de pixeles de la imagen que se está analizando.

Con este proceso se genera una nueva matriz con características

mejoradas que ayudaran a mejorar los resultados de los módulos

posteriores como la segmentación y la codificación.

Es importante mencionar que dependiendo de los valores que se

coloquen en la máscara es el resultado que se va obtener a partir

de la convolución, por ejemplo, se pueden detectar bordes

verticales, horizontales o diagonales u obtener los valores

promedio de la matriz, entre otros resultados. Esta máscara se

escoge a partir del resultado que deseamos obtener. El proceso

de convolución se ejemplifica en la figura 10.

Figura Nº 10: Proceso de convolución.

24

Page 42: Tesis Angel 2014

1.9.2 Segmentación

La segmentación es una etapa imprescindible en diversos procesos

de tratamiento de imágenes y se puede decir que es el proceso que

consiste en subdividir o particionar una imagen en sus regiones,

componentes, partes u objetos. También puede ser definida como el

encontrar, por medio de un algoritmo numérico, sus regiones

homogéneas y sus bordes. La segmentación automática de

imágenes es, en general, una de las tareas más difíciles de realizar

en el análisis de imágenes debido a que tiene una influencia

determinante en el correcto desempeño del mecanismo de

reconocimiento. (Sossa, 2006)

Para llevar a cabo la segmentación 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 algún 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 localización, ya que de otra

manera dichos índices visuales no serían útiles.

Para este proyecto, la segmentación es la etapa donde se localiza la

imagen del iris. La etapa de segmentación es muy importante ya que

si el iris nos es localizado correctamente las etapas posteriores

utilizaran datos erróneos, por lo tanto el código generado contendrá

errores y el rendimiento de sistema será muy bajo.

25

Page 43: Tesis Angel 2014

Existen diferentes mecanismos de segmentación con distintos

niveles de dificultad, entre lo que podemos mencionar:

Umbralización.

Detección de Bordes

Detección de Regiones.

Clustering.

Segmentación de Texturas.

Morfología Matemática.

Redes Neuronales.

A continuación se describen algunos de estos métodos:

Umbralización.- La forma más 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 número de puntos en la imagen que

posee un determinado nivel de gris. La umbralización a partir de

histogramas consiste en elegir el punto de nivel de gris que

separa los valores correspondientes al objeto y al fondo. En este

método, a partir del lóbulo principal, es decir, del valor máximo,

se Además del cálculo de histogramas, existen otras técnicas

para calcular el umbral, tales como como, el ajuste del lóbulo

principal, método de la máxima distancia, entropía y el algoritmo

Isodata.

26

Page 44: Tesis Angel 2014

Detección 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 detección de bordes consiste

básicamente en realizar la operación de Convolución

Bidimensional entre la matriz de pixeles de la imagen original y

ciertas máscaras previamente establecidas y posteriormente se

realiza el cálculo 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 información del tipo de ruido que afecta a una imagen. Esta

etapa de suavizado debe llevarse a cabo de manera gradual ya que

de realizarse de manera excesiva, se podrían perder detalles

importantes de la imagen (y por consiguiente de la región 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 máscara de convolución de media cero y

desviación estándar σ.

27

Page 45: Tesis Angel 2014

Sea f(x,y) una imagen corrompida con ruido y sea h(x,y) un filtro

gaussiano con media cero y desviación estándar σ, σ determina el

tamaño del filtro y es seleccionado con base en el nivel deseado de

detalle (bordes finos o gruesos) y en el nivel de ruido contenido en la

imagen, calculado mediante la ecuación:

h ( x , y )= 12 π σ2 e

− x2+ y2

2σ 2

Mascaras de Sobel. La convolución se realizará con las

siguientes máscaras de 3 x 3 en la dirección x y en la dirección y,

las cuales se muestran en las matrices 5 y 6.

x=⌈−1 −2 −10 0 01 2 1

⌉ ... (5)

y=⌈−1 0 1−2 0 2−1 0 1

⌉…(6)

Mascaras de Prewitt. Es el mismo caso anterior, solo que las

máscaras 7 y 8.

x=[−1 −1 −10 0 01 1 1 ] …(7)

y=[−1 0 1−1 0 1−1 0 1]…(8)

28

Page 46: Tesis Angel 2014

Laplaciano. En este caso se utiliza la misma mascara para las

componentes X y para las componentes Y, mostrada en la matriz

(9).

x , y=[0 1 01 −4 10 1 0 ]…(9)

Segmentación de Texturas. Se puede decir que una

característica de textura de una imagen es un valor que

cuantifica alguna característica de la variación de la variación del

nivel gris del objeto a segmentar en base a una disposición

geométrica específica. Para segmentar una imagen de textura

buscamos una característica 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 parámetro en ese punto.

Existen dos tipos de métodos para el análisis de texturas:

Estadísticos. Basados en el histograma a partir de la media, la

desviación o varianza de los niveles de gris. También 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 cálculo de la transformada de

Fourier.

29

Page 47: Tesis Angel 2014

1.10 FUNCIONES PARTICULARES.

En algunos puntos del desarrollo, se necesita el uso de alguna funcionalidad

los cuales se detallan a continuación:

1.10.1 Detector circular de Hough.

La transformada de Hough es un algoritmo estándar en la visión por

computador, usado para determinar los parámetros espaciales de

objetos de diversa forma que estén incluidos dentro de una imagen

(Wikipedia, Hough_transform). Esta transformada se puede utilizar

para detectar automáticamente las coordenadas y el radio del iris y

de la pupila.

El proceso básico de detector de Hough empieza partiendo de la

imagen completa del ojo, sobre la que se aplica inicialmente algún

algoritmo de detección 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.

30

Page 48: Tesis Angel 2014

Figura Nº 11: Detector de contornos Canny

A partir de la imagen de contornos, se procede a crear el llamado

espacio de Hough, que contiene círculos que pasan sobre cada

punto de contorno (figura 12). Estos círculos se definen con la

ecuación general:

x2 + y2 –r2 =0

Siendo x e y las coordenadas del centro de circulo, y r el radio. Una

vez creados todos los círculos posibles, el máximo dentro del espacio

de Hough proporciona el círculo mejor definido.

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

1.10.2 Transformada de Gabor

La aplicación de wavelets de Gabor es el tratamiento matemático que

se le dará a la información de iris para convertirla en plantilla

biométrica. Este método es el elegido por Daugman en su

implementación (J.Daugman, 2004).

31

Page 49: Tesis Angel 2014

Para aplicar este método, se debe partir de la información 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 normalización de un iris. A la derecha, la matriz 2Dresultante

Una vez normalizado el iris, el siguiente paso consiste en aplicar

wavelets Gabor. Estos wavelets están formados por dos

componentes:

Una onda sinusoidal compleja definida por la ecuación:

s ( x , y )=ej(2 π (u0 x+v0)+ p)

Donde u0 y vo 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 ecuación:

32

Page 50: Tesis Angel 2014

Esta composición 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 función compleja, se

obtiene 2 bits de información por cada bit analizado,

correspondientes a la información de fase y de orientación 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 información obtenida es la que formará finalmente la plantilla

biométrica, válida para ser comparada con otras plantillas.

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

33

Page 51: Tesis Angel 2014

1.11 MARCO CONCEPTUAL.

Algoritmo.-Son métodos matemáticos aplicados para solucionar un

problema específico.

Escala de Grises.- La representación de una imagen de grises es la

representación de color uniforme sin variación 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 representación en

mismo color en tonalidades de color.

Extracción de Características.-Es el proceso de generar características

que puedan ser usadas en el proceso de clasificación de los datos. En

ocasiones viene precedido por un pre-procesado de la señal, 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

extracción de características o clasificación.

Las características elementales están explícitamente presentes en los datos

adquiridos y pueden ser pasados directamente a la etapa de clasificación.

Las características de alto orden son derivadas de las elementales y son

generadas por manipulaciones o transformaciones en los datos.

Pixel.- Es la representación de un punto en pantalla perteneciente a una

imagen, asignándole el color por medio de un RGB (Red, Green, Blue).

Reconocimiento.- Comprende en comparar la imagen facial capturada con

imágenes que han sido guardadas en una base de datos.

34

Page 52: Tesis Angel 2014

1.12 OPERACIONALIZACIÓN DE VARIABLES.

VARIABLE INDICADOR MEDICIÓN.

Prototipo de

identificación de

personas por medio

del iris ocular.

Adquisición de Imagen Excelente

Buena

Regular

Mala

Pre – procesamiento de imagen

Segmentación

Obtención del Iris

Reconocimiento (Técnicas de Daugman)Efectivo

No Efectivo

35

Page 53: Tesis Angel 2014

CAPITULO III

METODOS Y MATERIALES

1.13 Tipo de Investigación

El tipo de investigación al que corresponde el presente trabajo de

investigación es explicativa, porque centran su interés en las causas,

orígenes o principios que producen determinados fenómenos, hechos o

comportamientos.

1.14 Diseño de estudio

El objeto de estudio será la imagen del iris ocular en formato polar, a la cual

se le aplicara técnicas de Daugman para el reconocimiento luego de haber

pasado por las fases: Adquisición de las imágenes, pre-procesamiento,

segmentación, codificación.

1.15 Población

Nuestra población es infinita debido a la propiedad de universidalidad del iris

(puede ser reconcentrada en cualquier individuo).

1.16 Métodos de recopilación de datos

Los datos para desarrollar el prototipo de identificación biométrica de

personas por medio del reconocimiento de iris, se hizo con la captura de

imágenes del iris de los usuarios en forma directa.

36

Page 54: Tesis Angel 2014

1.17 Metodología para el reconocimiento de iris

Para desarrollar el prototipo de identificación de personas por medio del iris

ocular, se representa esquemáticamente 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 tamaño. En tercer lugar, la información contenida en el patrón de iris es

extraída y un código asociado con el iris generado. Finalmente, en la etapa

de comparación, se decide, en base al porcentaje de similitud obtenido, si los

códigos 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, Autentificación e

Identificación, Figura 17. En el primero, el código de iris se compara con el

código asociado a la identidad proclamada por la persona, y se decide si

estos códigos han sido generados por el mismo iris o no.

En el segundo, el código de iris ha de reconocer es comparado con una base

37

Page 55: Tesis Angel 2014

de datos para comprobar la identidad de la persona.

Figura Nº 17: Sistema de reconocimiento: Autentificación y Identificación

1.17.1 Desarrollo Organización del proyecto

El proyecto se plantea bajo un sistema básico de reconocimiento de

iris, en líneas generales las siguientes fases.

FASES:

Los puntos generales para la consecución del proyecto son los

siguientes:

38

Page 56: Tesis Angel 2014

A su vez, estos puntos pueden expandirse o desglosarse en varias

subcategorías.

a) Análisis de los requisitos

En esta fase se detalla los módulos que se desarrollaran para el

funcionamiento completo de la aplicación.

Al ser ésta una aplicación de identificación biométrica, el prototipo va

a seguir un orden secuencial genérico:

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:

39

1 Análisis de los requisitos

2 Análisis de tecnologías

3 Implementación

4 Pruebas

5 Documentación

Comparacion con otra plantilla

Transformación en plantilla biometrica

Extracción de los datos de interes

Obtención de la muestra

Page 57: Tesis Angel 2014

b) Análisis de tecnologías

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 Visión Artificial, tanto en las clases

teóricas como en las prácticas. Debido a esto, el software utilizado

para desarrollar y ejecutar la aplicación es Matlab como lenguaje de

programación, ya que aprovecha los conocimientos de tratamiento de

imágenes por computador, dicho lenguaje posee diversas librerías

muy útiles en el campo del tratamiento de imagen.

También se puede utilizar otros lenguajes de programación para el

tratamiento de imágenes, donde se menciona alguno de ellos:

Python.- Este lenguaje en Visión Artificial es agradable para el

desarrollador, ya que proporciona un buen rendimiento, además de

ser soporte para algunas librerías muy útiles en el campo del

tratamiento de imagen.

40

Comparacion con otra plantilla

Transformación en plantilla biometrica

Extracción de los datos de interes

Obtención de la muestra

Creación de la plantilla

Comparación con otra plantilla

Page 58: Tesis Angel 2014

OpenCV.- La Open-Source Computer Vision, es una librería de

funciones para la visión por computador, desarrollada originalmente

por Intel. Contiene más de 500 funciones que pueden ser utilizadas

en infinidad de áreas, como el reconocimiento facial o de objetos, o la

visión robótica.

Numpy.- Debido a que Python corre sobre una máquina virtual,

algunos algoritmos corren más 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 prácticamente tan rapidos como el código

equivalente en C. Este beneficio se hace patente en el tratamiento de

imágenes como matrices bidimensionales.

Scipy.- Librería científica, complemento a Numpy, proporciona

algoritmos como la transformada de Radon. Utiliza como tipo de dato

básico el array definido en Numpy.

c) Implementación

En esta fase para desarrollar el prototipo de reconocimiento de

personas por medio del iris ocular el proceso se cumplen las

siguientes etapas:

1. Adquisición de imagen

2. Segmentación

3. Obtención del iris

4. reconocimiento.

41

Page 59: Tesis Angel 2014

d) Prueba.

Para realizar una correcta identificación, se necesita realizar las

pruebas del algoritmo en una imagen y realizar la comparación con la

plantilla de imágenes.

42

Page 60: Tesis Angel 2014

CAPITULO IV

RESULTADOS Y DISCUSIÓN

1.18 ANALISIS DE REQUISITOS

1.18.1 CREACIÓN DE LA PLANTILLA - OBTENCION DE LA MUESTRA

Para realizar una correcta identificación, 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

resolución tal, que permita reflejar perfectamente la fisonomía del iris

y sus pliegues internos, puesto que esta región constituyo la zona de

interés que se extrajo en la siguiente fase. Así mismo, la muestra

debió mantener los niveles de ruido lo más cerca del mínimo posible,

siendo únicamente admisible el ruido inherente a la zona del ojo

humano, esto fue, el ruido creado por pestañas o parpados.

1.18.2 CREACIÓN DE LA PLANTILLA – EXTRACCIÓN DE LOS DATOS

DE INTERÉS

Dado que la información estuvo únicamente situada en la zona del

iris, el objetivo de este módulo fue localizar y aislar esa zona de

información. Además, se elimino el ruido que podria existir, como por

43

Page 61: Tesis Angel 2014

ejemplo las oclusiones del iris causadas por pestañas o parpados.

Eliminar todo el ruido posible fue básico para no introducir

información errónea en el proceso de creación de la plantilla

biométrica.

En la figura 18 se representa los requisitos del módulo que a su vez

se dividió en dos sub módulos:

Figura Nº 18: Modulo de extracción de datos de interés

Iris: Localizar iris y pupila

En esta parte, el programa debió localizar las coordenadas

espaciales del iris. Además, debió localizar también 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 párpados y eliminar ruido general

Una vez que se tuvo la ubicación del iris, eliminarse el ruido

existente. Por una parte, se debió detectar si la zona del iris esta

44

Page 62: Tesis Angel 2014

tapada por algunos parpados, para marcar la zona ocluida como

ruido. Para terminar, se debió eliminar también todos los elementos

susceptibles de fueron considerados como ruido. En esta categoría

se pudieron incluir las pestañas, puesto que fue típico que tapen una

(mínima) parte de la región del iris, y los reflejos de luz del sol o del

flash de cámara en ese momento de tomar fotografía.

1.18.3 CREACIÓN DE LA PLANTILLA – Transformación de datos en

plantilla biométrica

Una vez que fue situada y libre de ruido la región del iris, el siguiente

paso fue realizar la transformación en plantilla biométrica. Esta

plantilla fue obtenida aplicando algún tipo de tratamiento matemático

sobre la información contenida en el iris. Sin embargo, esta región

necesitaba preparación previa.

Normalizar

Un paso previo imprescindible es la normalización del iris. Al

comparar imágenes de esta naturaleza, fue necesario transformar la

región de iris a unas dimensiones fijas, para permitir comparaciones.

Así, se evitan las diferencias producidas por la posición del ojo y la

dilatación puntual de la pupila.

Además de estas diferencias principales, puedieron existir otras,

como por ejemplo por la inclinación de la cabeza, la iluminación o la

distancia en el momento de tomar la foto.

Aplicar tratamiento matemático

45

Page 63: Tesis Angel 2014

Una vez normalizado el iris, fue procede a tratar matemáticamente la

información.

Figura Nº 19: Módulo de transformación en plantilla biométrica

1.18.4 COMPARACIÓN DE PLANTILLAS BIOMÉTRICAS

Este módulo de la aplicación se encargara de comparar dos plantillas

biométricas (figura 20) y emitir una resolución, concluyendo si

pertenece o no a la misma persona.

Figura Nº 20: Módulo de comparación de plantillas biométricas

46

Page 64: Tesis Angel 2014

1.19 IMPLEMENTACIÓN

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. Adquisición de imagen

2. Segmentación

3. Obtención del iris

4. Reconocimiento

1.19.1 ADQUISICIÓN DE LAS IMÁGENES

En esta etapa secaptura una imagen de la capa arbórea del iris en

blanco y negro, en un entorno correctamente iluminado, usando una

cámara de alta resolución.

Primero, es deseable adquirir imágenes del iris con resolución

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 iluminación que incomoda al usuario. Tercero,

estas imágenes deben idearse bien (por ejemplo, centradas).

Existen distintos sistemas de adquisición de imágenes, la mayoría de

ellos utilizan cámaras de video y sistemas de iluminación

sofisticados. En este trabajo de investigación se propone un sistema

de adquisición de imágenes de bajo costo basado en una cámara

digital convencional. En la figura se representa un esquema del

sistema de adquisición propuesto.

47

Page 65: Tesis Angel 2014

Esquema del sistema de adquisición propuesto

Figura Nº 21: Imagen captura por el computador

1.19.2 SEGMENTACIÓN

La segmentación de la imagen consiste en encontrar los parámetros

que determinan la ubicación, la forma y tamaño del iris dentro de la

imagen capturada. Con el fin de analizar la textura del iris humano

automáticamente, es necesario identificar en la imagen la región que

contiene el iris y separarla de otros elementos de la imagen que no

contienen información relevante, como la pupila, párpados y

pestañas.

a) Modelando el iris y la pupila

Para localizar el iris y la pupila, es necesario modelar ambos

elementos de alguna forma. Lo más común es representar tanto el

iris como la pupila como dos círculos casi concéntricos, con lo cual el

resultado de la segmentación será los parámetros de ambos círculos.

Un circulo cualquiera puede ser expresado con tres parámetros: las

coordenadas de su centro y su radio r, así que la segmentación

deberá encontrar un total de seis parámetros: tres para el circulo de

la pupila y tres para el círculo del iris.

48

Page 66: Tesis Angel 2014

También se puede representar al iris y la pupila como dos elipses,

con lo cual la cantidad de parámetros a encontrar asciende a 10 ya

que la elipse se define mediante 5 parámetros (dos longitudes para

sus ejes, el centro de la elipse y el ángulo de rotación). Esto provee

una representación más exacta para el iris y la pupila, pero al ser

necesario más parámetros, los tiempos de ejecución de los

algoritmos aumentan notablemente. Además, la ventaja de utilizar

elipses en vez de círculos para representación no resulta ser muy

significativa, ya que tanto el iris como la pupila son casi

perfectamente circulares.

Interesa entonces el problema de detectar círculos en la imagen.

Para esto, existe principalmente dos algoritmos utilizados por los

sistemas de reconocimiento de iris: el operador integro – diferencial y

la detección por transformada de Hough.

Operador integro-diferencial

El operador integro-diferencial fue propuesto por Dougman1en 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

se traduce en un máximo en la derivada de los tonos de gris de las

circunferencias centradas en el punto (xo, yo).

1High 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.

49

Page 67: Tesis Angel 2014

La expresión del operador para encontrar el círculo de centro (xo, yo)

y radio r en la imagen I es la siguiente:

Dónde:

- s representa el contorno sobre el cual se hace la integración, en

este caso, un contorno circular dado por el centro (xo, yo) y el

radio r.

- Gσ (r ) es una función Gaussiana que define el nivel de detalle en

el que se trabaja: mientras más precisión se desea, menor será

el parámetro de suavización σ .

Este operador funciona iterativamente, buscando primero una

aproximación y luego obteniendo resultados más precisos. La

cantidad de niveles de detalle puede ser ajustada para que el

operador trabaje en forma más 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 parábola, es

posible construir de manera similar un detector de parábolas, que

luego puede ser utilizado para detectar los parámetros de los

parpados.

50

Page 68: Tesis Angel 2014

Operador integro-diferencial

La mayoría de los trabajos utilizan la transformada circular de Hough

para detectar los parámetros de la pupila y el iris en forma

simultánea2.

Este método es común en el ámbito de procesamiento de imágenes

principalmente para encontrar curvas parametrizables en imágenes.

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 función C como:

C ( xc , yc , x , y , r )={1 Si lacircunferenciade radior y centro ( xc , yc ) pasa por el pixel ( x , y )0 sino

Una vez calculados los bordes, se crea un espacio discretizado

tridimensional H que va a acumular los votos para cada uno de los

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

51

Page 69: Tesis Angel 2014

tres parámetros (xc , yc , r) del círculo. Así, se define H de la siguiente

manera:

H ( x , y , r )= ∑(xc , yc)∈ B

C( xc , yc , x , y , r )

Finalmente, los parámetros xc , yc yr del círculo están dados por:

arg max H (xc , yc , r )( xc , yc ,r )

En forma similar, la transformada de hough se puede modificar

fácilmente para detectar parábolas en vez de círculos, con el fin de

segmentar los parpados.

Sin embargo, este método presenta algunos problemas:

1.- El resultado de la transformada de Hough está condicionado por

los parámetros del algoritmo de detección de bordes. En el caso de

las imágenes del iris, es necesario ajustar los parámetros de este

algoritmo de forma tal que los círculos de la pupila y el iris se

encuentren bien marcados en la imagen resultante.

2.- Dichos parámetros son poco flexibles: si existe una modificación

en las condiciones de captura, el detector de bordes puede dar

muchos falsos positivos. Con parámetros incorrectos es normal que

la imagen resultante o bien no contenga ningún borde útil, o bien,

más comúnmente, que se encuentren demasiados bordes en la

imagen. Esto último es producto de la naturaleza misma del iris, que

52

Page 70: Tesis Angel 2014

tiene patrones complicados que pueden aparecer en el algoritmo de

detección 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 pestañas y los parpados cuando la imagen está bien enfocada, el

algoritmo resulta muy lento.

4.- una imagen con demasiados bordes ocasiona tanto una

degradación en el tiempo de ejecución de la transformada de Hough

como en el resultado de la misma (es posible que se encuentren

“círculos” que en realidad no existen, por lo que es necesario recurrir

a heurísticas que permitan comprobar si un circulo detectado

realmente se corresponde con la pupila o el iris).

b) Segmentación de la pupila

La pupila se distingue fácilmente en la imagen como un círculo

negro, en la figura 22, las imágenes c y d corresponden al mismo ojo.

Se puede ver como varia el tamaño de ojo en función de la distancia

a la cámara, y el diámetro de la pupila por motivos naturales.

Figura Nº 22: Capturas típicas del iris humano

53

Page 71: Tesis Angel 2014

En la figura 23: (a) Extracción de un aro de la imagen, se puede ver

en amarillo de un aro de la imagen a extraer, rodeando el círculo de

la pupila (en rojo).

(b): efecto de considerar a la pupila como un círculo: en algunos

casos, la pupila no es perfectamente circular, por lo que al utilizar un

modelo circular de segmentación algunas partes de la pupila son

consideradas parte del iris

(a) (b)

Figura Nº 23: Segmentación de la pupila

c) Segmentación del iris

Una vez localizada la pupila, el iris es relativamente fácil de ubicar ya

que es casi concéntrico al círculo de la pupila (aunque este último

54

Page 72: Tesis Angel 2014

suele poseer una desviación hacia el lado de la nariz respecto al

círculo del iris).

1.19.3 OBTENCIÓN DEL IRIS

a) Extracción de la zona de interés

El objetivo principal de este módulo es localizar exactamente la

situación del iris, el cual el detalle del proceso a seguir es:

Carga y redimensión

El proceso comienza cargando la imagen indicada por el usuario. A

continuación, se redimensiona la imagen a un tamaño del 25% de

original. Esta reducción de tamaño, de 320x280 a 80x70, es útil para

aumentar el rendimiento del detector circular de Hough.

Figura Nº 24: Redimensión de la Imagen

Tratamiento previo a la detección de contornos. (Figura 25)

55

Page 73: Tesis Angel 2014

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 corrección del contraste, una

práctica común en el tratamiento de imágenes, que nos sirve para

corregir en la medida de lo posible una iluminación irregular.

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

Detección de contornos

Después 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 método de Canny Edge para

resaltar los contornos.

56

Page 74: Tesis Angel 2014

Figura Nº 26: Imagen de contornos resultante de la aplicación de Canny Edge

Detección de la región de iris mediante Hough

La imagen de contornos se pasa como parámetro a la función

detector de Hough. Esta función localiza el iris dentro de la imagen y

retorna sus coordenadas espaciales: centro y radio.

Extraer la región 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 región 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: Región de la pupila obtenida a partir de la región del iris

57

Page 75: Tesis Angel 2014

Histograma

El histograma de una imagen es la representación de cómo 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 aplicación del histograma.

Figura Nº 28: Imagen original (Izq.), su histograma (centro) y la detección Canny (der.)

La región de iris se pasa como parámetro a la función 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 círculos

concéntricos.

Por medio de un histograma, se puede determinar con bastante

exactitud la región de la pupila.

Detección de contornos y detección de la región de la pupila

mediante Hough

Estos pasos son exactamente iguales que los seguidos para detectar

la región del iris.

58

Page 76: Tesis Angel 2014

Localizar párpados

En el siguiente paso, se debe analizar la región de iris en busca de

zonas que estén ocluidas por los parpados. Estas zonas se deben

marcar como ruido figura 29 ya que es información no valida de cara

a la codificación. Para ello, utilizamos funciones (localizar párpados

superior e inferior), que forman el detector de párpados.

Los resultados de la implementación de esta función se pueden

apreciar en la siguiente figura.

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

La idea básica es utilizar un sistema muy parecido al detector circular

de Hough, con la diferencia de que no buscamos detectar círculos, si

no líneas, correspondientes a los párpados superior e inferior.

59

Page 77: Tesis Angel 2014

Figura Nº 30: Imagen original (izq.) línea detectada (centro) línea de intersección (Der.)

Marcar pestañas 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 pestañas y las

reflexiones especulares causadas, por ejemplo, por el flash de una

cámara. Esto se consigue aplicando una función que, dado una

umbral, marca a 0 (ruido) los pixeles que sobrepasen o que no

lleguen a un valor determinado de iluminación (en un rango de 0-

255).

Para pestañas pixeles valor < 90

Para reflejos Pixeles valor > 240

En el caso de las pestañas, cabe destacar que resulta imposible

eliminar todo el ruido (marcar toda la pestaña como ruido), ya que si

bien es sencillo eliminar la parte más gruesa (figura 31), la parte del

extremo tiende a ser tan fina que se pierde entre el resto de

irregularidades del iris.

60

Page 78: Tesis Angel 2014

Figura Nº 31: Detalle de pestañas marcadas como ruido. Imagen original (Izq.) imagen ruido (Der.)

Se han invertido los colores para que resulte más sencillo comprobar la

existencia de ruido eliminado.

1.20 RECONOCIMIENTO (Codificación y matching)

La codificación del iris es el proceso por el cual se analiza la textura del iris y

se extrae información, mientras que el matching es la comparación de la

información extraída con el fin de tomar una decisión acerca de la identidad

del usuario.

1.20.1 METODOS DE CODIFICACIÓN Y MATCHING EXISTENTES

La codificación debe ser capaz de extraer aquella información del iris

que permita discriminar una persona de otra. El resultado de la

codificación es por lo general un vector de características 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 métodos propuestos para

61

Page 79: Tesis Angel 2014

extraer características del iris, y cada uno de estos métodos tiene

asociado un método de matching.

La codificación de iris es probablemente el área que más se ha

estudiado y sobre el que existen mayor cantidad de trabajos. Entre

todos los métodos existentes, los más 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 continuación se explicara de los métodos más

utilizados y los más 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 método de codificación del iris. Los filtros de

Gabor son un tipo de filtro pasabanda (filtro que deja pasar un

determinado rango de frecuencias de una señal) que determina el

rango de frecuencias utilizando una función gaussiana. Estos filtros

surgen del análisis del funcionamiento de las neuronas en la corteza

visual primaria. Dichas neuronas reaccionan detectando la

orientación de los objetos.

En dominio de las frecuencias, el filtro de Gabor G(u , v ) se define

como una función Gaussiana:

G (u , v )=exp [−π ( (u−u0 )2 α2+( v−v0 )2 β2 )]

62

Page 80: Tesis Angel 2014

Donde (u¿¿0 , v0)¿ representa la modulación (es decir, el punto donde

la respuesta del filtro es maxima) y α y β representan la desviación

de la función Gaussiana bidimensional (el cociente ∝/ β define la

relación de aspecto de filtro). En el dominio espacial, el filtro de

Gabor centrado en el origen está dado por:

G ( x , y )=F−1 {G }=exp (−π ( x2

α 2 +y2

β2 ))exp (−2 πi(u0 x+v0 y ))

El filtro resultante es entonces una onda sinusoide compleja (llamada

carrier) modulada por una función Gaussiana (llamada envolvente).

La frecuencia espacial del filtro es ω0=√u02+v0

2 y su orientación es

θ0=arctan (v 0/u0), 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:

Gℜ ( x , y )=gα, β ( x , y ) .cos (2 π (u0 x+v0 y ))

Gℑ ( x , y )=gα, β ( x , y ) . cos (2 π (u0 x+v0 y))

Siendo gα , β ( x , y )=exp(−π ( x2

α 2 +y2

β2 )) el envolvente Gaussiano. Este

par de filtros están en cuadratura, lo que quiere decir que tienen la

misma amplitud pero están desfasados 900. El filtro Gℜ se denomina

filtro simétrico par y Gℑ se denomina filtro simétrico impar, ya qye el

coseno y el seno son funciones simétricas par e impar

63

Page 81: Tesis Angel 2014

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

información en el dominio de las frecuencias y en el dominio espacial

simultáneamente. El filtro de Gabor permite tener información en

ambos dominios minimizando la incertidumbre conjunta.

Generación del código

Para generar el código 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

método sea invariante frente a cambios en el tamaño del iris, ya sea

por la distancia del ojo o de la cámara o opr la contracción o

64

Page 82: Tesis Angel 2014

dilatación de la pupila. La textura del iris queda entonces expresada

como una función I(θ,r).

Luego, se proyecta un área del iris centrada en el punto (θ0 , r0) es

una wavelet bidimensional de Gabor3. Este procedimiento se repite

para varios puntos y varias wavelets de distintos tamaños y

frecuencias.

Cada aplicación de una wavelet en un punto da como resultado un

numero complejo c=a+ib que puede ser expresado en función de su

argumento o fase, arg(c) y su amplitud, |c|. Está demostrado que la

fase y no la amplitud es la que provee la información más

significativa en una imagen, por lo que la amplitud, que contiene

información redundante, es ignorada en la codificación.

La fase, al ser un número real entre 0 y 2π es cuantizada a fin de

reducir la complejidad del código 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:

h [ℜ , ℑ ]=sgn{ℜ ,ℑ}∫ρ

∫φ

I (φ , ρ )exp (−iw (θ0−φ )) . exp (−((r0−ρ)2

α 2 +(θ0−φ)2

β2 )) ρdφdρ

El código 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.

3Una wavelet de Gabor es una familia de wavelets que utiliza la función de Gabor descripta como una función madre e incluye translaciones y cambios de tamaño.

65

Page 83: Tesis Angel 2014

Ademas del código de iris, se genera una matriz binaria que marca

aquellos puntos que fueron afectados por ruidos provenientes de las

pestañas o los párpados 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 códigos de iris y decidir si

ambos fueron generados por el mismo iris o no. En el sistema

descripto por Daugman, cada código de iris es una matriz binaria que

también tiene asociada una máscara de ruido que marca aquellos

bits que fueron afectados por las pestañas y/o parpados. Para

comparar dos códigos, se calcula la distancia de Hamming entre

ambos códigos, C1 y C2, teniendo en cuenta sus respectivas

máscaras, M1 y M2:

HD (C1 , M 1 ,C2 , M 2 )=‖(C1⊗C2)∩( M1 ∩ M 2)‖

‖M 1∩ M 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 códigos que son desiguales entre sí. Este valor es

normalizado por la cantidad de bits validos en ambos códigos

(definidos por la intersección entre ambas máscaras), lo que da

como resultado un número entre 0 y 1. Mientras más parecido sean

66

Page 84: Tesis Angel 2014

los códigos de iris, la cantidad de bits distintos será cada vez menor

y por lo tanto la distancia de Hamming será cercana a 0.

Esta métrica permitirá tomar una decisión acerca de la identidad de

la persona.

1.20.2 IMPLEMENTACIÓN

A continuación se hará una descripción detallada:

a) Normalización

Previo a la codificación, se extrae la textura del iris en una nueva

imagen rectangular de dimensiones fijas. Cada punto de iris puede

ser referenciado, independientemente del tamaño, 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 normalización del iris

De la figura 33, luego de ser segmentado, la textura del iris se

transforma en una imagen rectangular de dimensiones fijas. Se

67

Page 85: Tesis Angel 2014

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 tamaño fijo, de manera que el sistema sea

invariante frente a cambios en el diámetro 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.

Además, para cada punto en la imagen normalizada, se genera una

máscara de ruido que marca aquellos puntos que fueron afectados

por los parpados (figura34).

Figura Nº 34: Textura normalizada y máscara de ruido

De la figura 34, las partes negras representan los puntos que fueron

afectados por los parpados.

b) Codificación

68

Page 86: Tesis Angel 2014

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 diseñados 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 simétrico par y la parte compleja se corresponde

con la respuesta al filtro simétrico impar (figura 36). Se codifica

únicamente la fase de la respuesta, ya que, como se mencionó, la

amplitud no aporta mucha información y es inestable frente a

cambios de iluminación. 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 método es que si, por efecto del ruido, la fase se

desplaza de cuadrante en dos imágenes del mismo iris, únicamente

cambiara un bit del código, haciéndolo más resistente frente al ruido

(es necesario un cambio de fase de casi 1800 para cambiar los dos

bits del código correspondiente a ese punto).

El resultado de este procedimiento son dos matrices de valores

binarios, donde cada fila de una matriz representa la codificación de

una fila de la textura del iris.

69

Page 87: Tesis Angel 2014

Figura Nº 35: extracción de señales 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 codificación

De la figura 36, (a): señal de entrada (una línea de la textura del iris),

(b) y (c): filtro simétrico para e impar, respectivamente, (d): respuesta

de la señal al filtro simétrico par (corresponde a la parte real de la

respuesta), (e): respuesta de la señal al filtro simétrico impar

(corresponde a la parte compleja de la respuesta).

70

Page 88: Tesis Angel 2014

Figura Nº 37: Posición 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 códigos de iris se utiliza la distancia de Hamming.

La ventaja principal de este método es que es sumamente rápido, ya

que se pueden “empaquetar” varios bits del código en una palabra

del procesador y realizar comparaciones en paralelo (por ejemplo, en

un procesador común de 32 bits, se pueden realizar 32

comparaciones por ciclo de reloj).

Como métrica, la distancia de Hamming permitirá establecer que

tanto se parecen dos códigos de iris. Al haber tantas variables en el

proceso previo a la codificación (pequeñas diferencias en la

segmentación, variables de captura como iluminación, reflejos,

distancia a la cámara, ruido electrónico en la cámara, etc) es de

71

Page 89: Tesis Angel 2014

esperar que dos códigos generados a partir del mismo iris no sean

exactamente iguales, lo que daría como resultado una distancia de 0.

El resultado de la comparación dará un valor que permitirá realizar

una decisión acerca de si los dos códigos fueron generados a partir

del mismo iris o no.

72

Page 90: Tesis Angel 2014

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 más fácil trabajar en una sola matriz que hacer

el tratamiento en colores RGB,que en ese caso se tendría que trabajar con

tres matrices.

Para la segmentación de una imagen y a su vez encontrar los parámetros

que determinarían la ubicación, la forma y el tamaño 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

automáticamente los parámetros de la figura.

Para la obtención del iris fue necesario trabajar con una imagen

segmentada y estándar, al cual se aplico el algoritmo de Canny Edge para

resaltar los contornos y este a su vez será aplicada la función detector de

Hough, esta función localizo el iris dentro de la imagen y retorno sus

coordenadas espaciales: centro y radio, la ventaja de esta función es que

no se aplica sobre toda la imagen sino sobre la región del iris, a pesar que

las imágenes tratadas presenten ciertos inconvenientes como reflejos

especulares, o cierta zonas con partes del parpado o las pestañas , el

algoritmo permitio eliminar dichos pixeles de manera que la identificación es

exacta.

73

Page 91: Tesis Angel 2014

Para el reconocimiento de iris se tuvo que realizar la codificación del iris en

binario y para realizar la comparación de dos códigos de iris se utiliza la

distancia de Hamming que es un algoritmo muy utilizado en otras áreas

como criptografía, es un algoritmo de investigación constante, el

reconocimiento del iris, es uno de los métodos menos intrusitos, el más

efectivo, pero a su vez uno de los más caros de implantar, los equipos para

la captura de imágenes aun poseen precios no accesibles a la gran

mayoría.

Se demuestra la eficacia, que al obtener la imagen de las 10 personas no

tuvimos ningún problema en reconocerlas a las imágenes 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.

74

Page 92: Tesis Angel 2014

RECOMENDACIONES Y SUGERENCIAS

Se recomienda utilizar estos sistemas biométricos para solucionar

problemas como: La suplantación en los exámenes de admisión,control de

asistencia, así como en otros sistemas en los cuales sea necesario

identificar a las personas unívocamente, garantizando la transparencia y

veracidad en los procesos.

Se sugiere realizar una extensión del presente trabajo de investigación,

considerando el uso de tecnologías actuales, como la captura de la imagen

mediante cámaras web, dando iniciativa para propagar el uso de software

basado en el reconocimiento de patrones físicos.

Se recomienda a los estudiantes en realizar investigaciones y desarrollo de

aplicaciones en temas de visión artificial, para la identificación de males en

el campo de la medicina, reconocimiento de personas, identificación de

vehículos 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 metodología aplicada en este trabajo,

considerando que este trabajo no pretende ser un trabajo de investigación

final, sino un incentivo para desarrollar investigaciones en este sub campo

de la Inteligencia Artificial.

75

Page 93: Tesis Angel 2014

BIBLIOGRAFIA

REFERENCIAS BIBLIOGRAFÍCAS

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. España: 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

76

Page 94: Tesis Angel 2014

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). “Autentificación Biométrica

de Personas por medio de Reconocimiento del Iris”. Tesis para Optar el

Título de Ingeniero en comunicaciones y Electrónica. México. Instituto

Politécnico Nacional de México.

Cayo Cabrera Guido Humberto (2005). “Prototipo neurogenetico aplicado en el

reconocimiento de imágenes bidimensionales estáticas: Rostros, Código de

Barras y Firmas”. Tesis de Maestría en Informática. Puno – Perú.

Universidad Nacional del Altiplano.

77

Page 95: Tesis Angel 2014

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

78

Page 96: Tesis Angel 2014

Figure 4: Img_2_1_2.jpg

2. Salida Imágenes normalizadas

Figure 5: 001_1_1.bmp

Figure 6: 001_1_3.bmp

Figure 5: Img_2_1_1.jpg

79

Page 97: Tesis Angel 2014

Figure 6: Img_2_1_2.jpg

3. Ruido de las Imágenes de Salida

Figure 9: 001_1_1.bmp

Figure 10: 001_1_3.bmp

Figure 11: Img_2_1_1.jpg

80

Page 98: Tesis Angel 2014

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

81

Page 99: Tesis Angel 2014

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 imágenes se dice que son relacionados; más las imágenes son diferentes.

Nº de

Pruebaentrada 1 entrada 2

Distancia de

Hamming

Match

Found/No

Match Found

1. 001_1_1.bmp 001_1_3.bmp 0.2647Match

Found

2. Img_2_1_1.jpg Img_2_1_2.jpg 0.1506Match

Found

3. 001_1_1.bmp 001_1_1.bmp 0Match

Found

4. 001_1_1.bmp Img_2_1_1.jpg 0.4454No Match

Found

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

82

Page 100: Tesis Angel 2014

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 añade 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 == 3weight = 1;end

if any(c-fix(c))error('Punto central del círculo 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;

83

Page 101: Tesis Angel 2014

% 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 <= 0error('Valor Gamma debe ser > 0');end

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

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

newim = newim.^(1/g);

84

Page 102: Tesis Angel 2014

% CANNY %% Argumentos: im - imagen a ser procesado% sigma - desviación estándar de filtro deGauss suavizado% (típicamente 1)% scaling - para reducir el factor de imagen de entrada mediante% vert - ponderación de los gradientes verticales% horz - ponderación de los gradientes horizontales%% Returns: gradient - imagen resistencia del borde (gradiente de amplitud)% or - orientación 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;

85

Page 103: Tesis Angel 2014

% circlecoords

% Argumentos:% c - una matriz que contiene las coordenadas del centro del círculo% [x,y]% r - el radio del círculo% imgsize - tamaño de la matriz en la imagen para trazar coordenadas en% nsides - el círculo es en realidad aproximar por un polígono, este% argumento da el número de lados utilizadas en esta aproximacióndefecto% es 600.%% Output:% x - una matriz que contiene las coordenadas x de los límites del círculo% puntos% y - una matriz que contiene las coordenadas de los límites y círculo% puntos

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

if nargin == 3nsides = 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);

86

Page 104: Tesis Angel 2014

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

global DIAGPATHDIAGPATH = '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);

87

Page 105: Tesis Angel 2014

% encode% Argumentos:% polar_array - región iris normalizada% noise_array - correspondiente region de mapa de ruido normalizado % nscales - número de filtros para usar en la codificación% minWaveLength - base de longitud de onda% mult - factor de multicative entre cada filtro% sigmaOnf - parámetro de ancho de banda%% Output:% template - plantilla biométrico binario del iris% mask - la máscara 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

88

Page 106: Tesis Angel 2014

% findcircle %% Arguments:% image - la imagen encontrar los círculos% 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 creación de mapa borde.% hithres - umbral para la creación de mapa borde% lowthres - umbral para bordes conectados% vert - contribución borde vertical (0-1)% horz - contribución borde horizontal (0-1)% % Salida:% circleiris - coordenadas del centro y el radio% de los límites del iris detectado% circlepupil - coordenadas del centro y el radio% del borde de la pupila detectado% imagewithnoise - imagen visual original, pero con% ubicación 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

89

Page 107: Tesis Angel 2014

% findline % Argumentos:% image - la imagen de entrada%% Output:% lines - parámetros de la línea 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)));elselines = [];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;

90

Page 108: Tesis Angel 2014

% gaborconvolve

% Argumentos:% im - la imagen convolucionar% nscale - número de filtros a utilizar% minWaveLength - longitud de onda del filtro de base% mult - el factor multiplicativo entre cada filtro% sigmaOnf - Relación entre la desviación estándar de la gaussiana describir% función 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);

91

Page 109: Tesis Angel 2014

% gethammingdistance % Argumentos:% template1 - primera plantilla% mask1 - máscara de ruido correspondiente% template2 - segunda plantilla% mask2 - máscara de ruido correspondiente% scales - el número de filtros utilizados para codificar las plantillas,% necesario para el cambio.%% Salida:% hd - la distancia de Hamming como una relación

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

92

Page 110: Tesis Angel 2014

% houghcircle

% Argumentos:% edgeim - el mapa de imagen del borde de transformarse% rmin, rmax - los valores mínimo y máximo radio% de círculos 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

93

Page 111: Tesis Angel 2014

% 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:npixbw(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:8ind = index(l);if bw(ind) > T2 stp = stp+1; stack(stp) = ind;bw(ind) = -1; endendendend

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

94

Page 112: Tesis Angel 2014

% linecoords % Argumentos:% lines - una matriz que contiene los parámetros de la línea de% forma% imsize - tamaño de la imagen, es necesario para que las coordenadas x y% están dentro del límite 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);

95

Page 113: Tesis Angel 2014

% NONMAXSUP

% entrada:% inimage - imagen para ser non-maxima suprimida.% % orient - imagen que contiene características ángulos normales de orientación en grados% (0-180), los ángulos positivos en sentido antihorario.% % radius - distancia en unidades de píxel a ser considerado en cada lado de cada% píxel cuando se determina si se trata de un máximo 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 orientación de la imagen son de diferentes tamaños ‘);end

if radius < 1error('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);

96

Page 114: Tesis Angel 2014

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

endendend

% normaliseiris % Argumentos:% image -la imagen del ojo de entrada para extraer datos del iris de% x_iris - la coordenada x del círculo que define el iris% límite% y_iris - la coordenada Y del círculo que define el iris% límite% r_iris - el radio del círculo que define el iris% límite% x_pupil - la coordenada X del círculo que define la pupila% limite% y_pupil - la coordenada y del círculo que define la pupila% limite% r_pupil - el radio del círculo que define la pupila% límite% eyeimage_filename - nombre de archivo original de la imagen del ojo de entrada% radpixels - resolución radial, define la dimensión vertical de% representación normalizada% angulardiv - resolución angular, define la dimensión horizontal% de la representación 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 irisox = x_pupil - x_iris;oy = y_pupil - y_iris;

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

97

Page 115: Tesis Angel 2014

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 == 0phi = pi/2;elsephi = 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);

98

Page 116: Tesis Angel 2014

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;

99

Page 117: Tesis Angel 2014

% segmentiris % Argumentos:% eyeimage - la imagen del ojo de entrada% % Output:% circleiris - coordenadas del centro y el radio% de los límites del iris detectado% circlepupil - coordenadas del centro y el radio% del borde de la pupila detectado% imagewithnoise - imagen visual original, pero con% ubicación 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 < 1icl = 1;end

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

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

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

100

Page 118: Tesis Angel 2014

[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 párpadotopeyelid = 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 párpado inferiorbottomeyelid = 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;

101

Page 119: Tesis Angel 2014

% shiftbits %% Argumentos:% template - la plantilla para cambiar% noshifts - número de turnos para llevar a cabo a la derecha, un negative% el valor, el cambio a la izquierda% nscales - número de filtros utilizados para la codificación, necesitaba% determinar el número 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 == 0templatenew = 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

102