Algoritmos de origen computacional como una alternativa

Anuncio
Universidad Nacional de Córdoba
Facultad de Matemática, Astronomía y Física
Licenciatura en Ciencias de la Computación
Trabajo final de Grado
“Algoritmos de origen computacional como
una alternativa eficaz para la segmentación y
comparación digital del iris humano”
Rocchietti Marco A.
Scerbo Alejandro L.A.
Autores:
Alejandro Luis Angel Scerbo scerbo@famaf.unc.edu.ar
Marco Augusto Rocchietti
mrocchie@famaf.unc.edu.ar
Supervisor:
Dra Silvia M. Ojeda
ojeda@famaf.unc.edu.ar
Marzo-2012
1
Clasificación ACM:
‘I.4.6’ (consultar http://www.acm.org/about/class/ccs98-html)
Palabras Clave:
Iris, Pupila, Segmentación, Computacional, Biometría, Algoritmo
Resumen:
Las técnicas empleadas en la actualidad para reconocimiento e
identificación del iris humano son de muy reciente aplicación.
La mayoría de desarrollos disponibles están basados en modelos
matemáticos complejos; que aunque demuestran buenos resultados
para imágenes digitales en general, no aprovechan propiedades
específicas de imágenes del ojo humano.
Este trabajo es una respuesta de concepción computacional a esta
problemática.
Se propone un algoritmo de segmentación de la pupila, y en
consecuencia un método computacional de reconocimiento del iris
humano.
2
Agradecimientos
En estos 9 años de vida universitaria, nos relacionamos con muchas personas que
influyeron muy positivamente en nuestro camino e indudablemente modelaron nuestro
carácter como individuos. Por ello queremos aprovechar esta página para dedicarles
nuestro más profundo agradecimiento:
A nuestra directora de tesis Silvia M. Ojeda, porque además de dirigir y supervisar
nuestro trabajo, fue siempre una fuente constante de motivación, apoyo y confianza
incondicionales, además de promover nuestra participación en actividades científicas
extracurriculares, que enriquecieron infinitamente esta etapa de nuestra carrera.
A Laura Alonso Alemany, Daniel Fridlender, Oscar H. Bustos, Valeria Rulloni y
Ronnie Vallejos, que ya sea como colaboradores directos o indirectos de este trabajo
especial, nos brindaron toda su atención, conocimientos, guía, apoyo y tiempo
desinteresadamente cada vez que fue necesario.
A los profesores Diego Vaggione, Daniel Penazzi, Javier Blanco, Pedro Dargenio,
Héctor Gramaglia, Pedro Sánchez Terraf, Carlos Marques, Nazareno Aguirre, Walter
Lamberti, Cristina Turner y Patricia Kisbye, los cuales no quisimos dejar de mencionar
especialmente por su influencia durante todo el transcurso de nuestra carrera. Todos
ellos nos dejaron algo más que su calidad como docentes e inagotable predisposición
para transmitir conocimientos, y debido a la forma en la que nos alcanzaron como
personas guardaremos un excelente recuerdo de cada uno.
A nuestros queridos amigos y compañeros de toda la carrera Paula Zeballos, Simon
Carbajal, Rafael Carrascosa, Marco Antonio Brunello, Dionisio Alonso, Matias Bellone,
Gerardo Marenco, Nicolás Bagatello, Jose Manzano, Javier Aliaga, Gabriel Cámara
Cagliero, Carlos Álvarez Luque y Jose Salinas; que llenaron esta larga etapa de nuestra
vida de momentos inolvidables, tanto dentro como fuera de la universidad y con los
cuales queremos seguir compartiendo las etapas que vengan.
A Laura Bettiol, María Elena Quiroga, Carolina Villalon, Nain Cadro, Rocío Tolaba,
Eduardo Cáserez, Mario Di Salvo y a todos los amigos de la comunidad del Coro de
FaMAF que nos brindaron su amistad y contención, enriqueciendo todos estos años.
A Diego Aguirre, Francisco Paván y Georgina Girbau, que como parte del personal no
docente nuestra facultad siempre mostraron dedicación, predisposición y una genuina
preocupación que en muchas ocasiones excedió a las responsabilidades propias del
cargo, facilitando enormemente nuestro paso por FaMAF.
A nuestros padres Alejandro y Viviana, Gustavo y Alicia, que junto a nuestros
hermanos apoyaron siempre esta etapa de nuestra vida, y sin los cuales hubiese sido
imposible de concretar.
Finalmente un agradecimiento muy particular a nuestro compañero de tesis, ya que
emprendimos este camino juntos hace 9 años, y el concluirlo juntos refleja mucho más
que una excelente relación académica, compartiendo además de muchísimos días de
estudio, infinidad de situaciones de la vida cotidiana fuera de la universidad.
Muchísimas gracias a todos ustedes!!!
ale y marco, Marzo-2012
3
4
Prólogo
El trabajo a continuación se enmarca como la asignatura “Trabajo Especial”
perteneciente al último año de la Licenciatura en Ciencias de la Computación de la
Facultad de Matemática, Astronomía y Física de la Universidad Nacional de Córdoba, y
representa en si mismo el trabajo final de grado de los estudiantes Alejandro L.A. Scerbo
y Marco A. Rocchietti, bajo la dirección y supervisión de la doctora Silvia María Ojeda
y la colaboración de los doctores Laura Alonso Alemany y Daniel Fridlender.
Cabe destacar que la participación de ambos estudiantes en este trabajo especial estuvo
implícitamente justificada por la dimensión de los objetivos planteados (y
posteriormente obtenidos).
La elección del director, tanto como la de los docentes colaboradores fueron hechos
intrínsecos al desarrollo del trabajo, ya que el mismo involucraba asesoramiento
multidisciplinario en áreas como estadística, inteligencia artificial, algoritmos y
estructuras de datos, etc.
En cuanto a la asignación de tareas para cada estudiante, cabe aclarar que salvo por
deberes como la revisión de la literatura, o investigación bibliográfica (los cuales
podrían ser llevados a cabo por separado), todas las actividades necesarias para concluir
el trabajo especial fueron realizadas conjuntamente.
En 2009 ambos estudiantes cursamos la materia optativa “Análisis Estadístico de
Imágenes Satelitales” dictada ese año por el doctor Oscar H. Bustos y la licenciada
Valeria Rulloni, hecho que nos acercó al gabinete de estadística aplicada sobre imágenes
digitales de la misma facultad y nos familiarizó tanto con los conceptos fundamentales
para el análisis de imágenes digitales como con algunas herramientas utilizadas para el
mismo fin. Consecuentemente, todos estos hechos estuvieron íntimamente relacionados
con la propia elección del tema y la posterior formulación del proyecto de tesis que
constituyen a este trabajo final.
Tanto el planteo como la investigación, desarrollo y pruebas pertinentes a este trabajo
fueron llevados a cabo en el período comprendido entre octubre de 2010 y diciembre de
2011, tiempo en el cual también tuvimos el orgullo de participar en el “I Encuentro
Regional de Procesamiento de Imágenes” llevado a cabo en Córdoba, posteriormente en
la “XIV Reunión de Trabajo en Procesamiento de la Información y Control” celebrada
en la localidad de Oro Verde, Entre Ríos, obteniendo en la misma el segundo premio en
el “Concurso AADECA Estudiantil RPIC 2011”. Finalmente en noviembre de 2011
tuvimos el agrado de concurrir al “IV Simposio de Estadística Espacial y Modelamiento
de Imágenes” llevado a cabo en la ciudad de Valparaíso, Chile, donde nuestro trabajo
fue positivamente valorado por el público especializado.
Desde que emprendimos este proyecto; y al haberlo montado sobre un ámbito
multidisciplinario, nos motivó la promesa de obtener algún resultado que más allá de su
valor teórico para alguna de las ciencias involucradas, fuese comprensible y apreciable
por el público en general. De igual manera, al momento de redactar esta versión escrita,
hemos perseguido el objetivo (no trivial) de producir un texto de comprensión
multidisciplinaria, buscando una redacción lo más al alcance del público en general
dentro de nuestras posibilidades.
En esta versión escrita el trabajo completo se presenta recopilado y organizado en las
secciones que consideramos más relevantes.
5
Índice
Sección 1: INTRODUCCIÓN.................................................................................... 8
1.1_Biometría.............................................................................................................. 9
1.1.1_Definición..................................................................................................... 9
1.1.2_Breve historia de la biometría................................................................... 9
1.1.3_Ejemplos de biométricas (diferentes del iris)........................................... 10
1.1.4_Características Biométricas....................................................................... 11
1.1.5_Los pasos de la biometría........................................................................... 11
1.1.6_El iris como biométrica.............................................................................. 12
1.2_Anatomía Básica: El ojo humano....................................................................... 13
1.3_Estado del Arte..................................................................................................... 15
Sección 2: MOTIVACIÓN......................................................................................... 18
2.1_Objetivos Iniciales................................................................................................ 19
2.2_Algunas Problemáticas........................................................................................ 20
2.2.1_La ausencia de estándar............................................................................. 20
2.2.2_Performance y polivalencia....................................................................... 22
2.2.3_Concepción de los métodos........................................................................ 22
2.2.4_Proyección del campo de uso: “industrial vs. forense”........................... 24
Sección 3: ENTORNO................................................................................................ 26
3.1_Plataforma de Software...................................................................................... 27
3.2_Plataforma de Hardware.................................................................................... 28
Sección 4: DATASETS............................................................................................... 29
4.1_El dataset elegido: Casia-IrisV1......................................................................... 30
4.2_Otros proyectos de CASIA: CASIA-IrisV2 y V3............................................. 31
4.2.1_CASIA-IrisV2............................................................................................. 31
4.2.2_CASIA-IrisV3............................................................................................. 33
4.3_MMU Iris Database............................................................................................ 34
4.4_Phoenix Iris Database......................................................................................... 35
4.5_Una comparación cualitativa............................................................................. 36
4.6_Proyecciones de utilización................................................................................. 38
Sección 5: DESARROLLO........................................................................................ 39
5.1_Primeros acercamientos...................................................................................... 40
5.1.1_Algoritmo para detección de bordes......................................................... 40
5.1.2_Algoritmos de Clasificación: “K-Medias”................................................ 41
5.1.3_Clasificación mediante ROI’s.................................................................... 41
5.2_Lineamientos........................................................................................................ 42
5.2.1_Convenciones de notación.......................................................................... 43
5.2.2_Pseudocódigo............................................................................................... 44
6
5.3_Nuestro Método.................................................................................................... 46
5.3.1_Localización de la Característica............................................................... 47
5.3.2_Normalización y Preprocesamiento...........................................................52
5.3.3_Extracción de característica....................................................................... 57
5.3.4_Comparación (matching)............................................................................59
5.4_Estructura del sistema......................................................................................... 60
Sección 6: PRETRATAMIENTOS........................................................................... 61
6.1_Preliminares......................................................................................................... 62
6.1.1_Un análisis semántico informal de Cruz................................................... 62
6.1.2_Las limitaciones de Cruz............................................................................ 63
6.2_La búsqueda del pretratamiento........................................................................ 64
6.2.1_El problema a combatir.............................................................................. 64
6.2.2_Las técnicas para combatirlo..................................................................... 65
6.3_Mejoras esperadas............................................................................................... 73
6.4_Posibles mejoras adicionales............................................................................... 75
6.5_Trabajando con las imágenes pretratadas......................................................... 76
6.5.1_El algoritmo Cruz 2.................................................................................... 76
6.5.2_Segmentar la pupila.................................................................................... 78
6.5.3_Estructura resultante del sistema con los pretratamientos.................... 80
Sección 7: VALIDACIÓN.......................................................................................... 81
7.1_Segmentación........................................................................................................ 82
7.1.1_Criterio de efectividad propuesto.............................................................. 82
7.1.2_Falsos positivos............................................................................................ 82
7.1.3_Pruebas........................................................................................................ 83
7.1.4_Resultados................................................................................................... 84
7.1.5_Conclusiones............................................................................................... 84
7.2_Matching............................................................................................................... 85
7.2.1_Criterio de efectividad propuesto.............................................................. 85
7.2.2_Falsos positivos............................................................................................ 85
7.2.3_Pruebas........................................................................................................ 85
7.2.4_Resultados.................................................................................................... 87
7.2.5 Conclusiones................................................................................................. 87
7.3_Pretratamientos.................................................................................................... 88
7.3.1_Criterio de efectividad propuesto.............................................................. 88
7.3.2_Falsos positivos, falsos negativos............................................................... 88
7.3.3_Pruebas........................................................................................................ 88
7.3.4 Resultados.................................................................................................... 89
7.3.5 Conclusiones................................................................................................ 89
Sección 8: CONCLUSIONES.................................................................................... 90
8.1_Valoraciones propias........................................................................................... 91
8.2_Trabajo a futuro................................................................................................... 93
Sección 9: REFERENCIAS…....................................................................................94
7
1.INTRODUCCIÓN
INTRODUCCIÓN
El objetivo de esta sección, es naturalmente introducir al lector en el área en la que este
trabajo final de grado se enmarca, revisando conceptos básicos sobre la biometría, luego
más particularmente la anatomía ocular básica y finalmente una breve reseña sobre el
estado del arte.
8
1.INTRODUCCIÓN
1.1 Biometría
1.1.1 Definición
Desde el punto de vista clásico la biometría se define como:
“La biometría es el estudio mensurativo o estadístico de los fenómenos o procesos
biológicos.” [4]
Aunque en la actualidad encontramos con frecuencia una definición más puntual:
“La biometría estudia el conjunto de métodos automatizados que analizan determinadas
características humanas para identificar o autentificar personas.” [6]
En este trabajo utilizaremos esta última definición de biometría y entenderemos por
biométrica a toda característica humana (conductual o física) capaz de identificar al
individuo.
1.1.2 Breve historia de la biometría
El primer registro que hay de la utilización de la biometría data del siglo XIV en China
donde el explorador y escritor Joao de Barros vio como los comerciantes de allí
estampaban las impresiones y las huellas de la palma de las manos de los niños en papel
con tinta para distinguir entre los mismos. [13]
En occidente el primer sistema biométrico fue el antropométrico, también conocido
más tarde como Bertillonage. Desarrollado en París en el año1883 el sistema usaba
ciertas medidas de la cabeza y el cuerpo como biométrica (también utilizaba tatuajes y
cicatrices de haberlas). Esta técnica era empleada principalmente por la policía para
identificar a los criminales y llegó a ser adoptada por gran parte de occidente. [13]
Aunque el sistema era preciso, se fueron presentando algunos problemas debido a
métodos distintos de medida y cambios de medida. Más adelante sería reemplazada por
las huellas dactilares el cual se comenzó a utilizar en occidente cuando Sir Francis
Galton definió algunos de los puntos o características desde las cuales las huellas
dactilares podían ser identificadas. Este método comienza su transición a la
automatización a finales de los años 60 junto con la aparición de las tecnologías de
computación.
El trabajo del NIST (Instituto Nacional de Estándares y Tecnología) Condujo el
desarrollo del algoritmo M40, el primer algoritmo operacional utilizado en el FBI para
estrechar la búsqueda de humanos. Los resultados producidos por el algoritmo M40
fueron provistos a técnicos humanos entrenados y especializados quienes evaluaron el
significantemente más pequeño grupo de imágenes candidatas. [14]
9
1.INTRODUCCIÓN
1.1.3 Ejemplos de biométricas (diferentes del iris)
En la actualidad existen muchas biométricas comprobadas y algunas experimentales.
Muchas veces se utilizan características que aunque no son absolutamente únicas por lo
menos si lo son al considerar un conjunto acotado razonable de personas. Por ejemplo
algunas organizaciones utilizan la forma en que se presionan las teclas del teclado de la
computadora como característica. Ciertamente esto no identifica a una persona, pero por
lo menos puede orientar al momento de buscar accesos no autorizados a equipo por
terceros.
Otras características usadas son:
• Geometría de la mano: El reconocimiento se basa en un número de medidas
tomadas de la mano humana, como su forma, tamaño y el largo y ancho de sus
dedos. No se considera parte de las características de la mano a su textura (es decir
que no incluye huellas dactilares).
• Huella digital: Es sin duda la característica biométrica más conocida y explotada
hasta hoy en día para identificar personas. Además su uso policial es de gran
importancia ya que estas huellas dactilares quedan impresas en los muchos objetos
que tocamos.
• Voz: El reconocimiento de voz se considera una biométrica tanto física como
conductal. La característica física de la voz se basa en la forma y tamaños de los
apéndices (tractos vocales, boca, cavidades nasales y labios) los cuales se mantienen
invariantes en el individuo.
• Escritura: Como su nombre lo indica la característica analizada en este método
es la escritura manuscrita de la persona. Para poder realizar la identificación se
necesita tener en una base de datos ejemplos de escritura del individuo para así
contrastar la muestra tomada. Los patrones biométricos distintivos de esta modalidad
son los ritmos personales, aceleración y flujo de presión de cuando una persona
escribe una palabra o grupo de palabras específicas. Usualmente se usa la firma
manuscrita de la persona para trabajar.
• Oreja: Es una nueva tecnología biométrica y es de particular utilidad durante la
escena del crimen cuando no hay huellas digitales que analizar. Puesto que los
delincuentes no suelen cubrirse las orejas, podrían usarse las imágenes de las
cámaras de seguridad para intentar identificarlos.
10
1.INTRODUCCIÓN
1.1.4 Características Biométricas
Habiendo mencionado diferentes biométricas y usos de las mismas, estamos ya en
condiciones de enumerar las características deseables en una biométrica:
Universalidad: Todos los individuos que accedan a la aplicación deben poseer
la característica.
Unicidad: Dicha característica debe ser única en la población tenida en cuenta.
Permanencia: La biométrica elegida no debe desaparecer o modificarse en el
individuo a lo largo del tiempo (o por lo menos debe durar mientras la
aplicación sea utilizada).
Mensurabilidad: Se debe poder digitalizar la característica biométrica usando
dispositivos que no causen inconvenientes al individuo.
1.1.5 Los pasos de la biometría
En general un sistema biométrico cuenta con las etapas ilustradas en la siguiente
figura:
Figura 1.1: “Los pasos de la biometría”
11
1.INTRODUCCIÓN
Cabe destacar que la adquisición de la imagen es todo un problema en sí mismo. El
desarrollo de dispositivos sensibles a la característica biométrica termina siendo crucial
para la viabilidad del sistema. Pero esto escapa al alcance de la informática y es un
problema del cual se deberá encargar la ingeniería. Es por ello que en este trabajo no
propondremos ningún método de captura de imagen, sino que trabajaremos sobre un
conjunto de imágenes previamente adquiridas por sensores especializados.
1.1.6 El iris como biométrica
Desde hace tiempo, se considera al iris del ojo humano como una característica de
interés biométrico, por sus cualidades especiales y diferentes de otras biométricas.
Además de identificar unívocamente a cada humano, las características que hacen del
iris una biométrica se forman desde los tres meses de gestación y permanecen
prácticamente idénticas durante toda la vida del individuo. Por otro lado no es necesario
el contacto físico para extraer una lectura y su falsificación es prácticamente remota, o
por lo menos demasiado dificultosa.
Dada la anatomía del ojo y centrando el análisis en la localización del iris dentro de
dicho órgano, se concluye que el iris es un tejido pigmentado de alta movilidad y que se
encuentra visible desde el exterior, debido a la trasparencia de la córnea, y gracias a ésta,
perfectamente protegido de agentes externos. Todo esto confiere al iris las siguientes
características, desde el punto de vista de su potencial aplicación a la identificación
biométrica:
Estabilidad: frente a cambios originados por accidentes, debido a la protección
que le confiere la córnea.
Fácil mecanismo de detección de «sujeto vivo». Pequeñas variaciones en la
iluminación producen alteraciones en la apertura de la pupila. Incluso, con
iluminación fija, el iris no se encuentra estático, sino que presenta pequeñas y
continuas variaciones en su apertura.
Profilaxis: Los datos (en este caso, la imagen) se pueden capturar de forma no
invasiva, al ser visible desde el exterior por la transparencia de la córnea.
“Legitimibilidad”: El intento de falsificar el iris de una persona conllevaría
operaciones quirúrgicas que podrían dañar muy seriamente la visión.
Todas estas características son sin duda, muy importantes a la hora de estudiar la
viabilidad de esta biométrica. Sin embargo falta la característica fundamental: la
unicidad. Basándose en diversos estudios recogidos en [15], en el patrón visual del iris
hay más información que identifica unívocamente a una persona, que en una huella
dactilar. Cabe destacar que la información útil del iris está en su textura, el color no
juega un papel importante. De hecho, los dos ojos de una persona poseen patrones
distintos, siendo ésta una característica muy importante que tiene que ser considerada en
el sistema al no ser la imagen de los dos ojos intercambiables. Estudios más detallados
han llevado a la conclusión de que incluso los hermanos gemelos poseen patrones de iris
bien diferenciados. De todo esto se puede concluir que esta biométrica presenta una
unicidad extremadamente alta, lo que llevaría a unas tasas de falsa aceptación nulas,
garantizando, por tanto, su viabilidad para ser utilizada en identificación en entornos de
alta seguridad.
12
1.INTRODUCCIÓN
1.2 Anatómica básica: El Ojo Humano
Antes de abordar la problemática que conlleva el procesamiento de una imagen
oftálmica recordaremos como esta estructurado el ojo humano desde el punto de vista
anatómico.
El ojo humano es el órgano encargado de brindar el sentido de la visión. Este órgano
comienza a desarrollarse en el 25º día de la fase embrionaria y hacia la octava semana
termina la génesis del esbozo ocular, que seguirá madurando hasta el noveno mes. Una
vez maduro podemos identificar las secciones que vemos cotidianamente.
A simple vista se pueden distinguen tres regiones:
•
La Esclerótica: Es la parte blanca del ojo que brinda protección a las partes
internas.
•
El Iris: Se manifiesta como la parte coloreada del ojo la cual es una membrana
circular de alta movilidad. Se forma desde los 3 meses de gestación y al octavo
mes ya esta completamente desarrollado. La pigmentación del iris se termina de
estabilizar pasado el año de nacimiento y permanece sin cambios durante toda la
vida del individuo (salvando patologías o accidentes muy particulares).
•
La Pupila: Es la parte negra del ojo; que es ni más ni menos, la apertura del iris
la cual se contrae y se dilata según las variaciones de intensidad lumínica que
impacten sobre la retina.
Pupila
Esclerótica
Iris
Figura 1.2: Secciones del ojo
13
1.INTRODUCCIÓN
Otro componente importante del ojo humano (el cual al ser translúcido no se ve a
simple vista) es la córnea. Se trata de la lente de mayor poder refractivo del ojo que
comunica ópticamente la parte exterior e interior del globo ocular.
Al igual que la esclerótica cumple una función protectora, en particular gracias a ella el
iris está bien resguardado de elementos externos que de otra manera podrían
deteriorarlo.
La córnea cubre la superficie abarcada por el iris y su forma es discoidal (como se
puede observar en la figura 1.3).
Su diámetro es prácticamente uniforme en los seres humanos oscilando entre los
11.5mm y 12mm aunque por el efecto de lente se observa una longitud horizontal
aproximada de 13mm.
Esta particularidad es de gran importancia en este trabajo, pues al tener la córnea una
longitud estándar, también se tiene una longitud acotada (por 13mm) del iris.
En la figura 1.3 se puede apreciar la estructura del ojo humano en su totalidad.
Figura 1.3: Anatomía del ojo
14
1.INTRODUCCIÓN
1.3 Estado del Arte: Trabajos relacionados
El estudio, análisis e implementación de algoritmos derivados de la problemática de
identificación y reconocimiento del iris, constituye un tema de gran interés que beneficia
a numerosas disciplinas científicas y áreas de aplicación tales como: biología, medicina,
optometría, física, tecnología, informática, seguridad, medicina forense, etc. Sin
embargo, no es sino hasta hace unos años, que los avances científicos y tecnológicos han
posibilitado la utilización del iris como medio de identificación de individuos, y/o
verificación de identidad en un tiempo razonable, y con un grado de confiabilidad
adecuado.
Las técnicas empleadas en la actualidad para reconocimiento e identificación del iris
son de muy reciente aplicación y día a día se continúan desarrollando en varios aspectos,
tales como: tiempo de respuesta, tolerancia y confiabilidad, extracción y/o lecturas
automáticas, etc., propiciando el desarrollo de un área de trabajo de gran interés y en
constante evolución.
Por otro lado, esta rápida evolución en las técnicas no se a visto acompañada en la
mayoría de los casos de implementaciones depuradas en el aspecto computacional.
Muchas de tales metodologías surgen como propuestas teóricas, a veces aplicadas a un
rango limitado de ejemplos pero luego no se ven respaldadas por un desarrollo
tecnológico y mucho menos por un desarrollo de software apropiado.
Varios aspectos han experimentado una constante evolución en la última década, tales
como: la representación del iris en formato digital, el establecimiento de estándares para
su almacenamiento y/o tratamiento, etc.
En contraposición a este rápido progreso, la mayoría de desarrollos disponibles están
basados en modelos matemáticos complejos; que aunque demuestran buenos resultados
para imágenes digitales en general, no aprovechan propiedades específicas de imágenes
del ojo humano.
Los primeros en proponer el concepto de reconocimiento automático del iris fueron
Flom y Safir en el año 1987. [16]
Desde entonces numerosos investigadores trabajaron tanto en el modelo de
representación del iris como en su comparación (matching) logrando importantes
avances en dichas cuestiones.
En los siguientes párrafos pasaremos a dar una sucesión de breves reseñas de trabajos
realizados en el área
En el trabajo de John Daugman [4] se utilizan los denominados filtros Gabor
multiescala para demodular la información de la estructura de fase que posee la textura
del iris. Al realizar el filtrado de una imagen de iris a través de dicha familia de filtros se
obtiene 1.024 factores de valores complejos que denotan la estructura de fase del iris a
diferentes escalas. Cada uno de los factores se asocia a uno de los cuatro cuadrantes del
plano complejo. Los resultantes 2.048 componentes del código de iris son utilizados para
caracterizar el iris. Para obtener el grado de semejanza que hay entre un par de códigos
de iris se calcula la distancia de Hamming que hay entre los códigos.
Sanchez-Reillo et al. [6] implementaron de manera parcial el algoritmo propuesto por
Daugman. Fue su objetivo el de simplificar el volumen de datos con el que se trabaja y
optimizar la velocidad de los algoritmos utilizados para así poder implementar un
sistema de identificación de personas usando el iris en pequeños sistemas embebidos.
15
1.INTRODUCCIÓN
Wildes et al. [5] representó a la textura del iris con una pirámide Laplaciana
construida por cuatro niveles de resolución y uso la correlación normalizada junto con el
discriminante lineal de Fisher para determinar si la imagen de entrada y la imagen del
modelo son de la misma clase. Su sistema de reconocimiento de iris usa descomposición
de imagen por paso de banda para obtener información multiescala.
Boles and Boashash [6] calcularon una representación de cruce por cero de una
transformada wavelet a varios niveles de resolución de círculos concéntricos sobre una
imagen de iris para caracterizar su textura. La comparación del iris se realiza a partir de
la señal unidimensional resultante de dicho cruce por cero, la cual se compara con las
características almacenadas del modelo usando distintas funciones de disimilitud.
Los investigadores Sanchez-Avila [6] se basaron en el trabajo hecho por Boles et al.,
particularmente en su forma de representar al iris, la cual siguieron desarrollando. Sin
embargo para la comparación intentaron con distintas medidas de similitud tales como
las distancias Euclidea y la de Hamming.
Lim et al. [6] descompusieron la imagen de iris en cuatro niveles usando la
transformada wavelet Haar 2D y cuantificaron la información de los cuatro niveles de
alta frecuencia en un código de 87 bits. Para el proceso de clasificación se uso una red
neuronal competitiva de aprendizaje modificada (LVQ). Además propusieron un método
de inicialización para los pesos de la red neuronal el cual maximiza el desempeño del
sistema.
En el trabajo desarrollado por Tisse et al. [6] se analizó las características del iris
utilizando una imagen construida a partir de la original y su transformada de Hilbert.
Las funciones de frecuencia emergentes para la extracción de características fueron en
esencia muestras de los campos de gradiente de fase de los componentes dominantes de
la imagen analítica [6]. El escenario de comparación es similar al aplicado por
Daugman, ya que se muestrean las funciones de frecuencia binaria emergentes para
formar un vector de características y usan la distancia de Hamming para la comparación.
Kumar et al. [6] utiliza filtros de correlación para medir la consistencia de las
imágenes de iris del mismo ojo. El filtro de correlación de cada clase fue diseñado
usando las transformadas de Fourier bi-dimensional (2D) de las imágenes de
entrenamiento. Si la correlación de salida (la transformada inversa de Fourier aplicada al
producto entre la transformada de Fourier de la imagen de entrada y el filtro de
correlación) muestra un pico pronunciado, se concluye que la imagen de entrada fue
obtenida a partir de un sujeto autorizado, de otra manera el sujeto era impostor.
Bae et al. [6] propone extraer la característica biométrica del iris mediante un método
basado en análisis de componentes independientes. En su trabajo los parámetros para
generar bases fijas (ubicación espacial, orientación y frecuencia), son seleccionados
usando un algoritmo basado en wavelets Gabor. Para optimizar los vectores de la base se
aplica la técnica conocida como análisis de componentes independientes. Finalmente se
proyecta la señal del iris sobre los vectores de la base para obtener un código de iris a
partir de los coeficientes obtenidos.
16
1.INTRODUCCIÓN
En otro enfoque realizado por Li Ma et al. se utilizo Multichannel y Even Symmetry
Gabor filters para capturar la información local de la textura del iris, la cual es usada
para construir un vector de característica de tamaño fijo. Para la comparación se utiliza
el “método de línea característica más cercana” (Nearest feature line method, NFL) [6].
En [17] un conjunto de señales de intensidad unidimensional es construido para
caracterizar efectivamente la información más importante de la imagen original de dos
dimensiones mediante una clase particular de wavelets; una secuencia de posición de
puntos locales de fuerte variación en dichas señales se registra como características. Un
escenario de comparación rápido basado en un operador XOR se usa para computar la
similitud entre un par de secuencias de posición.
En cuanto a la detección y localización del iris dentro de la imagen del ojo, Wildes,
King and Zhang, Tisse et al. y Ma et al. utilizaron la transformada de Hough [8], la cual
permite reconocer curvas en general dentro de una imagen.
Está técnica es muy efectiva pero el costo computacional resulta ser alto al ser un
algoritmo de fuerza bruta.
Por su parte Daugman [4] emplea un operador integro-diferencial, de su desarrollo,
para lograr la localización. Esté método resulta ser similar a Hough en cuanto a que
ambos se basan en la primera derivada de la imagen (pensando a la imagen como una
función) y ambos son algoritmos de fuerza bruta.
17
2.MOTIVACIÓN
MOTIVACIÓN
En esta sección vamos a explicar cuales fueron; en líneas generales, las ideas que nos
impulsaron en el desarrollo de nuestro trabajo, las primeras impresiones y las
problemáticas en el estado del arte que determinaron el curso que tomó nuestra
investigación finalmente.
Mencionaremos los objetivos iniciales en primera instancia y luego algunos planteos
conceptuales que formulamos con el fin de organizar y unificar criterios, los cuales
sirven también para comprender como se encaminó el desarrollo del trabajo y cuales
fueron las metas establecidas finalmente.
18
2.MOTIVACIÓN
2.1 Objetivos iniciales
Al planificar el desarrollo de lo que sería nuestro trabajo final, se eligieron a manera de
guía los siguientes objetivos generales:
•
Comprender la problemática tanto de la extracción/lectura como de la
comparación/reconocimiento del iris humano como biométrica.
•
Conocer diversas técnicas automáticas de detección/reconocimiento de iris
tanto supervisadas como no supervisadas.
•
Analizar tanto los algoritmos existentes y empleados usualmente como los
propuestos en diversas fuentes, y comprender sus puntos débiles si los
tuviesen.
•
Proponer, de ser posible, un nuevo algoritmo o técnica o una mejora a nivel
algorítmico, para alguno de los procedimientos ya existentes.
•
Desarrollar e implementar efectivamente el algoritmo elegido en una librería o
módulo para el lenguaje de programación “R” (u otro, si resultara
conveniente).
•
Probar o determinar algún tipo de mejora en la práctica sobre el algoritmo
propuesto, y/o analizar su desempeño sobre un “dataset” realizando tests de
performance comparativos con “el estado del arte”.
19
2.MOTIVACIÓN
2.2 Algunas problemáticas
Como puede observarse la primera mitad de los objetivos iniciales estaba orientada a
la comprensión del campo de estudio, análisis del estado del arte, estudio de bibliografía
relacionada y discusión sobre el tema, por lo cual resultó natural el planteo de nuevas
inquietudes luego de cumplir estos objetivos.
A continuación, se desarrollan estas inquietudes (o problemáticas) ya que las mismas
influyeron el posterior desarrollo de este trabajo especial.
2.2.1 La ausencia de estándar
En la actualidad no hay una “única” o “mejor” representación digital del iris, sino que
cada autor sugiere sus propias precondiciones precisamente basándose en el conjunto de
muestras (“dataset”) utilizado para probar su propia técnica.
Esta situación conlleva en sí misma cierto grado de arbitrariedad, dado que en la
actualidad tanto los bancos de datos de imágenes oculares, como los sensores y/o
cámaras destinados a la captura de tales imágenes forman un conjunto tan heterogéneo,
como diferentes resultan las muestras archivadas.
Estas diferencias van aún más allá de las esperadas, (resolución en píxeles, área de
interés de la imagen, rango de grises, etc.), ya que debido a factores como la tecnología
utilizada para la captura, también pueden variar características referidas a la cantidad de
bandas (sensores infrarrojos o multibanda), a la resolución radio-métrica, a la definición
(escala de grises vs. RGB color), a la presencia de diferentes niveles de ruido en las
muestras, etc.
La variación de algunas de estas características puede apreciarse al observar las figuras
1, 2 y 3, las cuales fueron obtenidas aleatoriamente de sendos bancos de datos
disponibles.
Figura 2.1: “108_1_1.bmp” (Casia-IrisV1 [1])
20
2.MOTIVACIÓN
Figura 2.2: “010101.bmp” (MMU Iris Database [2])
Figura 2.3: “049L_1.PNG” (“phoenix Iris Database" [3])
La figura 2.1 proviene de la base de datos de iris CASIA_IrisV1.0 [1] (probablemente
la más utilizada como referencia para probar fiabilidad de los algoritmos más
“vanguardistas”).
La figura 2.2 fue obtenida de la base de datos de iris de MultiMedia University[2]; en
tanto la figura 2.3 pertenece a la base de datos del Departamento de Ciencias de la
Computación de Palacky University[3].
Nótese cómo, no sólo varía el área capturada en la figura 2.1 con respecto a la de la
figura 2.2, sino que también varía la sobre-exposición a la luz.
Además, aunque ambas figuras tienen resoluciones similares (320x280 la figura 2.1 y
320x238 la figura 2.2), la figura 2.1 tiene mejor definición.
Por otro lado, la figura 2.3 viene a mostrarnos una versión más “extrema” en cuanto a
precisión del área capturada, ya que no hay ruido de párpados, ni pestañas, y de hecho,
enmascara con negro gran parte de la información despreciable, teniendo en cuenta que
nuestro objetivo es el iris.
Puede verse también que en las figuras 2.2 y 2.3 hay ruido en la pupila, producto del
reflejo ocasionado por la lámpara del sensor de turno al momento de la captura, lo cual
expone que no es para nada trivial el hecho de que todas las imágenes de
CASIA_IrisV1.0[1] tengan un post-tratamiento enmascarando la pupila con un “disco
21
2.MOTIVACIÓN
negro” (ver figura 2.1). Este detalle no es menor en absoluto, ya que la mayoría de los
algoritmos empleados y comparados en la actualidad tomados como “estado del arte” (J.
Daugman [4], R. Wildes [5], Boles and Boashash [6]) tanto como muchos trabajos
científicos relacionados con algoritmos o técnicas para detección y extracción digital del
iris, utilizan esta base de datos “post-tratada” como banco de pruebas para exponer sus
resultados.
2.2.2 Performance y polivalencia
El hecho de que la mayor parte de las técnicas existentes en el “estado del arte” base
sus resultados en un banco de datos particularmente favorable para aplicar estos
algoritmos plantea naturalmente la siguiente discusión: “performance y polivalencia”.
Por ejemplo, una técnica analizada puede resultar particularmente buena para el banco
de datos Casia-IrisV1, demostrando buenos resultados valiéndose de las características
particulares de este banco citadas en el apartado anterior, logrando buena performance,
aunque probablemente no logre los mismos resultados positivos en cualquier otro banco
de datos, demostrando así escasa polivalencia.
Desde este punto de vista, ambos conceptos quedan opuestos con características a
favor y en contra.
Entre las características a favor, podemos señalar sofisticación del modelo,
prestaciones (performance), y adaptabilidad a múltiples bancos de datos, utilidad bajo
“ruido”, precondiciones bajas (polivalencia).
En tanto que; entre las características en contra, mencionamos: precondiciones altas,
modelos de banco de datos irreales o no representativos, necesidad de pre-tratamientos
(performance), y posibles incrementos en tiempos de respuesta, riesgo de pérdida de
precisión en la segmentación (polivalencia).
Bajo esta concepción fundamental, el desarrollo de la propuesta persigue los siguientes
objetivos:
1. Producir mejoras en la complejidad (menor costo computacional) con respecto a los
algoritmos del estado del arte. (Performance)
2. Adquirir independencia del banco de datos que se utilice para mostrar resultados.
(Polivalencia)
2.2.3 Concepción de los métodos
Como es de conocimiento en el área, podemos mencionar que la gran mayoría (si no la
totalidad) de las técnicas de moda en reconocimiento e identificación del iris humano,
tienen un origen común y relacionado desde sus comienzos, con el análisis estadístico de
imágenes digitales [7]. Muchos de los mejores algoritmos de tratamiento, filtrado y
compresión de imágenes digitales deben su éxito a la influencia de este enfoque
estadístico, el cual revolucionó en un comienzo, la forma en la que se modela al objeto
de estudio para luego aplicar resultados teóricos.
22
2.MOTIVACIÓN
Estos “paradigmas de modelo” han establecido diversos objetos estadísticomatemáticos a lo largo de las últimas décadas, tales como por ejemplo:
•
Transformada de Fourier
•
Componentes principales
•
Matrices principales
•
“Imagen como base de un espacio vectorial”
Estos enfoques se instalaron durante mucho tiempo, sumado a que al menos en sus
inicios (década de los 90) [9], tanto los modelos como las técnicas para crear los
mismos, no estaban muy desarrollados desde la computación como ciencia [10].
En la actualidad la Ciencia de la Computación ha madurado lo suficiente como para
establecer paradigmas, dogmas, y estándares tanto de desarrollo de software, como de
creación de modelos útiles para problemas específicos; quedando así expuesta una de las
motivaciones de este trabajo: “establecer un modelo de concepción computacional”
para abordar el problema de la segmentación y comparación digital del iris humano.
La “oportunidad” reside en el hecho de que los algoritmos mencionados como “estado
del arte”, muchas veces dependen de filtrados estadísticos, pre-tratamientos,
descomposición matemática en componentes, y demás mecanismos dependientes de
modelos como los recién citados, los cuales resultan desde un punto de vista
computacional, de un costo considerable [5], [6].
Específicamente buscaremos un algoritmo de segmentación de la pupila, como una
primera aproximación al problema de reconocimiento e identificación de individuos a
partir del iris.
El trabajo, surge como una respuesta de concepción computacional a esta
problemática, la idea detrás de la iniciativa se basa en considerar a la imagen como una
“estructura de datos” (paradigma propio de las ciencias de la computación) y no como
un “objeto matemático”.
Bajo esta concepción fundamental, el desarrollo de la propuesta focaliza los siguientes
objetivos:
1. Producir mejoras en la complejidad (menor costo computacional) con respecto a
los algoritmos del estado del arte.
2. Lograr un adecuado balance entre performance y polivalencia.
3. Adquirir independencia del banco de datos que se utilice para mostrar resultados.
23
2.MOTIVACIÓN
2.2.4 Proyección del campo de uso: “industrial vs. forense”
Aunque para algunos lectores el campo de utilización de los métodos analizados
(incluso el que se desarrolla posteriormente en este trabajo) resulte evidente, con
frecuencia tiende a confundirse; por ejemplo, con:
• Desarrollos sobre un sensor específico.
• Software embebido en el hardware de un sensor para detección de iris.
• Búsqueda de una característica biométrica para comparación de iris humanos.
Y demás ideas erróneas.
Es por esto que nos pareció adecuado exponer dos de los campos que consideramos
más generales en el ámbito de la biométrica, para exponer cuál es el tipo de uso al que
apuntamos con el método desarrollado en nuestro trabajo especial.
Campo de uso “industrial”: Cuando el objetivo de la segmentación y comparación
de iris es la diferenciación e identificación de un conjunto finito de individuos, con el
único objeto de prescindir de personal que realice tal tarea.
Como ejemplos, se pueden citar:
• Accesos a áreas de seguridad bajo autorización
• Control de horas de personal
• Registro de visitantes a algún tipo de complejo
Existe un vasto conjunto de tecnologías en la industria que satisfacen las necesidades
de este campo; en general se desarrolla algún hardware capaz de encontrar puntos de
referencia en el iris del individuo, y luego un software ad-hoc capaz de caracterizar y
almacenar estos puntos de referencia, con el fin de contrastarlos con cada captura en el
momento de una nueva extracción.
Campo de uso “forense”: Cuando el objetivo de la segmentación y comparación
de iris es establecer algún grado de similitud entre muestras en general, en pos de
identificar un individuo, o una muestra en particular.
Como ejemplos, se pueden citar:
• Identificación de una muestra en un entorno policial
• Búsqueda de personas en un archivo público
• Búsqueda de rasgos comunes entre muestras en un ámbito
médico
En estos casos, el número de muestras a comparar puede ser indefinido y las muestras
en si mismas, pueden provenir de diversas fuentes no necesariamente capturadas con el
mismo tipo de sensor, condiciones de iluminación, área de interés, etc.
En este campo, la muestra a comparar puede no haber sido capturada en las mismas
condiciones que las muestras de cualquiera de los bancos de muestras con las que se la
desea contrastar.
En cambio en el primer campo, podemos asumir que el ente de control utiliza siempre
el mismo sensor, las mismas condiciones de iluminación, por lo tanto el conjunto de
muestras a contrastar es estándar per-sé. De esta manera, ante un falso negativo (cuando
no se identifica a un individuo cuya muestra sí esta almacenada en el conjunto) no hay
inconveniente en repetir la extracción cuantas veces sea necesario.
24
2.MOTIVACIÓN
Cabe así redundar al mencionar que nuestro objetivo es el desarrollo de un método
que: dado un conjunto de muestras fotográficas digitales de iris humanos, pueda
segmentar el área de interés biométrico en cada una y posteriormente comparar con otras
muestras para establecer un grado de similitud entre las mismas, como herramienta
fundamental para deducir si las muestras comparadas pertenecen o no al mismo
individuo.
En otras palabras, el campo que motivó nuestro desarrollo durante todo el trabajo es el
campo forense.
25
3.ENTORNO
ENTORNO
Delegamos a esta sección, todas las descripciones específicas pertinentes al
“framework” (marco de trabajo), describiendo en primera instancia la plataforma de
software utilizada tanto como algunas mecánicas comunes de trabajo y finalmente el
equipo de hardware en el que se compilaron y probaron todos los algoritmos
desarrollados e implementados durante este trabajo final.
26
3.ENTORNO
3.1 Plataforma de Software
Desarrollamos nuestros algoritmos usando como framework el software RSI-IDL y
RSI-ENVI que son aplicaciones orientadas al procesamiento de imágenes satelitales.
La elección de este entorno se debe a nuestra previa experiencia en tal área, durante la
cual implementamos varios algoritmos usando dichas herramientas.
La aplicación IDL proporciona un lenguaje de programación imperativo orientado al
manejo de matrices multidimensionales, las cuales son usadas para representar las
imágenes digitales. Además incluye soporte para la carga y almacenamiento de
imágenes mediante funciones internas que permiten manejar múltiples formatos como
por ejemplo jpg, tif, png, bmp, etc.
Figura 3.1: Captura de pantalla de las aplicaciones IDL y ENVI.
Por otra parte ENVI se orienta a trabajar de una manera más visual, permitiendo ver
imágenes guardadas en las variables de salida de los algoritmos usados en IDL y cargar
imágenes almacenadas en archivos. Una vez importadas las imágenes incluso se pueden
manipular aplicándoles transformaciones y filtros ya implementados por la herramienta,
como por ejemplo rotación a componentes principales, transformada de Fourier, etc.
La dinámica general de trabajo, consiste en programar nuestros métodos con la sintaxis
de IDL, compilamos las rutinas tras cada cambio efectuado y luego realizamos pruebas
sobre variables locales (imágenes de prueba) para visualizar los resultados con ENVI.
Una vez logrados los resultados esperados en tal o cual imagen arbitraria, pasamos a
probar las rutinas sobre conjuntos de datos seleccionados con algún criterio. Esto
produce el reconocimiento temprano de errores posibles, lo cual nos lleva a retocar el
código y depurarlo.
27
3.ENTORNO
3.2 Plataforma de Hardware
Para probar nuestro sistema no precisamos del uso de ninguna computadora de alta
capacidad de cómputo sino que utilizamos una notebook de uso personal:
Sony Vaio modelo VPCEB13EL. La misma cuenta con un procesador Intel i3 330 a
2.13GHz (gama más baja de procesadores Intel de la tecnología “i-core”) de doble
núcleo con tecnología “Hyper-Threading”.
En cuanto a la memoria, posee 2 GB de memoria RAM DDR3. Este último aspecto no
es realmente importante dado que los algoritmos no trabajan con objetos demasiado
grandes en principio.
Por último cabe aclarar (más allá que no sea una característica propia del hardware)
que se trabaja sobre el sistema operativo Windows XP edición Profesional (Service
Pack 3) para arquitectura de 32Bits.
Figura 3.2: Notebook utilizada para probar los algoritmos.
28
4.DATASETS
DATASETS
Es de esperarse cuando se desarrolla un trabajo de esta naturaleza (ya sea un desarrollo
de métodos, algoritmos, o cualquier otro relacionado con innovación en un campo que
resulta de interés para varias disciplinas) que se establezcan conjuntos de datos
(“datasets”) estándar con el fin natural de estandarizar las pruebas de estos desarrollos,
tal como la comparación o medición de resultados obtenidos.
El objetivo de esta sección es dar a conocer los detalles del dataset elegido para el
desarrollo y perfeccionamiento de nuestro método y la posterior validación de los
resultados obtenidos.
Luego mostrar en líneas generales y mediante imágenes representativas algunos de los
datasets que nos resultaron más paradigmáticos durante el desarrollo de nuestro trabajo
especial.
Finalmente el objetivo de esta sección es establecer algunos conceptos que hemos
utilizado a manera de parámetros, a fin de comparar los aspectos más relevantes entre
los datasets estudiados.
29
4.DATASETS
4.1 El dataset elegido: Casia-IrisV1
Introducción: Para promover la investigación, el “National Laboratory of Pattern
Recognition” (NLPR), el “Institute of Automation” (IA) y la “Chinese Academy of
Sciences” (CAS) proveen bases de datos de iris libres para investigadores de
reconocimiento de iris.
Las imágenes de iris de CASIA v1.0 (CASIA-IrisV1) fueron capturadas con una
“cámara de iris” [1] casera; ocho iluminadores NIR de 850nm se disponen
circularmente alrededor del sensor para asegurar que el iris quede uniforme y
adecuadamente iluminado.
Figura 4.1: sesión de captura utilizando la cámara desarrollada por la “Chinese
Academy of Sciences” para la creación de la base de datos CASIA-IrisV1
Con el fin de ocultar el diseño de esta “cámara de iris” (especialmente el esquema de
disposición de los iluminadores NIR), las regiones de pupila de todas las imágenes de
iris en CASIA-IrisV1 fueron automáticamente detectadas y reemplazadas con una región
circular de intensidad constante para enmascarar los reflejos de los iluminadores NIR
antes del lanzamiento al público.
Claramente este proceso puede afectar la detección de pupila, pero no tiene efectos en
otros componentes de un sistema de reconocimiento de iris, como la extracción de
característica, siempre y cuando la extracción de característica solo use datos de la
imagen en la región comprendida entre la pupila y la esclerótica.
30
4.DATASETS
Breve descripción y estadísticas de la Base de Datos: La Base de Datos de
imágenes de iris CASIA versión 1.0 (CASIA-IrisV1) incluye 756 imágenes de iris de
108 ojos. Para cada ojo, siete imágenes se capturaron en dos sesiones con la cámara
desarrollada por CASIA. Tres capturas en la primera sesión y cuatro en la segunda.
Todas las imágenes se guardaron en formato BMP con una resolución de 320 x 280
píxeles.
(a)
(b)
Figura 4.2: El ojo numerado 17 en la base de datos, capturado en ambas sesiones.
Corresponde (a) a la primera sesión y (b) a la segunda sesión.
Al momento de probar cualquier desarrollo de matching, se sugiere comparar dos
muestras del mismo ojo tomadas en diferentes sesiones, así; por ejemplo, las imágenes
de iris de la primera sesión pueden ser empleadas como conjunto de entrenamiento,
mientras que las de la segunda sesión pueden ser usadas para pruebas (testing).
4.2 Otros proyectos de CASIA: CASIA-IrisV2 y V3
Naturalmente, luego de encontrar que varios autores validan y desarrollan sus trabajos
con el dataset CASIA-IrisV1, aparecen interrogantes sobre el contenido de los dataset
versionados como 2 y 3.
La primer sorpresa, y quizás mejor introducción es aclarar que la numeración que
CASIA eligió para sus datasets no tiene que ver con ningún tipo de cronología y/o
perfeccionamiento versionado (como si de versiones de un software se tratase). En lugar
de esto, los números en la versión, refieren a que el tipo de contenido, organización de la
base de datos y/o propósito de las capturas es diferente.
4.2.1 CASIA-IrisV2:
Esta base de datos fue utilizada para la “Primera Competencia de Verificación de
Biométricas” en reconocimiento de cara, iris y huellas digitales durante la “Quinta
Conferencia China sobre Reconocimiento de Biométricas” (Sinobiometrics 2004),
llevada a cabo en Guangzhou, China en diciembre de 2004. La misma incluye dos
subconjuntos, cada cual con imágenes capturadas con un dispositivo diferente.
31
4.DATASETS
El primer subconjunto se corresponde con las muestras capturadas con el dispositivo
Irispass-h (figura 4.3) desarrollado por OKI y el segundo con las muestras capturadas
con el dispositivo CASIA-IrisCamV2 (figura 4.4), desarrollado por CASIA.
Cada subconjunto consta de 1200 imágenes de 60 ojos cada uno (20 capturas de cada
ojo para cada subconjunto).
Figura 4.3: Sensor OKI Irispass-h
Figura 4.4: Sensor CASIA-IrisCamV2
(a)
(b)
Figura 4.5: Muestras numeradas 28 de cada subconjunto de CASIA-IrisV2.
(a) Capturada con el sensor OKI y (b) con el desarrollado por CASIA.
Vale aclarar que la numeración en cada subconjunto no identifica a la misma persona.
32
4.DATASETS
4.2.2 CASIA-IrisV3:
Este dataset, incluye tres subconjuntos bastante dispares entre sí denominados CASIAIris-Interval, CASIA-Iris-Lamp y CASIA-Iris-Twins.
Posee un total de 22034 imágenes de iris tomadas con iluminación cercana al
infrarrojo de más de 700 individuos; casi todos chinos graduados de CASIA.
El subconjunto CASIA-Iris-Interval fue capturado con la misma cámara desarrollada
por CASIA utilizada para el dataset CASIA-IrisV1, con la particularidad de que en esta
ocasión se conserva el estado original de la captura, incluyendo los reflejos pupilares
ocasionados por los iluminadores NIR.
En la siguiente figura, podemos ver ejemplos.
(a)
(b)
Figura 4.6: Muestras del sub-conjunto CASIA-Iris-Interval. En (a) la 20 y en (b) la 47.
El segundo conjunto (CASIA-Iris-Lamp) fue completado usando la misma cámara de
mano OKI utilizada en CASIA-IrisV2. Además de probar la utilidad de la cámara, esta
vez se buscó generar deformaciones (forzadas mediante variaciones de iluminación) en
la textura del iris de los individuos.
Como es de común conocimiento en el área, el iris se expande hacia su centro o se
contrae contra su límite con la esclerótica según el ojo perciba exceso o falta de
iluminación respectivamente.
En la siguiente figura, podemos ver un ejemplo.
(a)
(b)
Figura 4.7: Aquí puede observarse el ojo numerado 88 de la base CASIA-Iris-Lamp
expandido hacia su centro en (a), y contraído contra sus bordes en (b).
33
4.DATASETS
Por último, el sub-conjunto CASIA-Iris-Twins contiene imágenes de iris de 100 pares
de gemelos, las cuales fueron recolectadas durante un Festival Anual de Gemelos en
Beijing, China usando la ya mencionada cámara de mano OKI IrisPass-h (figura 4.3).
No presentaremos ejemplos de este último grupo de CASIA-IrisV3 ya que las
imágenes son similares a las de cualquier otra muestra capturada con la cámara OKI
ejemplificada en sub-secciones anteriores de esta sección 4 (CASIA-Iris-Lamp ó
CASIA-IrisV2 dispositivo 1); siendo válida la aclaración de que aún comparando
muestras de dos hermanos gemelos, no sería reconocible un patrón a simple vista, ya que
como se mencionó en la sección 1.1.6, aún hermanos gemelos poseen iris diferentes.
4.3 MMU Iris Database
Por ser de libre acceso y estar disponibles para cualquier interesado en el tema, los
dataset MMU1 y MMU2 son una vista casi obligada para investigadores en el campo del
reconocimiento de iris.
Como particularidades más notorias, estos bancos de datos hicieron hincapié en la
comparación entre dos cámaras comerciales y en la variabilidad de los individuos de
prueba, los cuales provienen de múltiples orígenes (pensar que CASIA sólo trabajó con
individuos de origen Chino).
Así pues con colaboradores de Asia, Medio Oriente, África y Europa, las bases MMU
muestran como contrapartida una falta de rigurosidad y/o precisión notorias. Por
ejemplo, aunque las resoluciones (tamaño) de las imágenes son las mismas de CASIAIrisV1, la escala o resolución espacial aproximada de las muestras es de la mitad.
Sumado a éste hecho, en las muestras encontramos diversos tipos de ruido. Desde
anteojos o lentes de contacto hasta maquillaje o pestañas postizas, estos obstáculos
(desde el punto de vista de cualquier algoritmo de segmentación) pueden verse también
como un ámbito realista para someter los algoritmos a pruebas de polivalencia.
La base MMU1 cuenta con imágenes provenientes de 46 individuos (5 imágenes por
ojo) exceptuando uno proveniente de un colaborador con patología ocular de “cataratas”.
Todas las imágenes capturadas con la cámara LG IrisAccess®2200, la cual es
semiautomática y trabaja en el rango de 7cm a 25cm.
La base MMU2 consta de 995 imágenes recolectadas de 100 voluntarios diferentes
utilizando la cámara Panasonic BM-ET100US “Authenticam” la cual posee la
particularidad de trabajar a una distancia de 47cm a 53cm del colaborador.
(a)
(b)
Figura 4.8: La muestra número 9 del dataset MMU1 en (a), y la muestra número 8 del
dataset MMU2 en (b), con presencia de maquillaje y anteojos respectivamente.
34
4.DATASETS
4.4 Phoenix Iris Database
A pesar de ser la mejor base de datos que encontramos (desde sus atributos cualitativos
en cuanto a la cantidad de detalle o la ausencia de ruido) es a su vez muy inusual en este
ámbito.
El primer detalle que salta a la vista es que las imágenes fueron almacenadas a color;
es decir, estándar RGB 24bits de 3 bandas (8bits de profundidad por banda) y otras
cualidades como el aislamiento completo del globo ocular hacen que este banco de datos
diste mucho de cualquiera de los estudiados con anterioridad.
(a)
(b)
Figura 4.9: Las muestras numeradas: 63 en (a) y 50 en (b) del dataset Phoenix.
Esta base de datos contiene 384 muestras, recolectadas de 128 individuos distintos, y
marca una diferencia entre “sensor” y “cámara”; siendo los mismos un dispositivo óptico
TOPCON TRC50IA conectado con una cámara Sony DXC-950P 3CCD. Fue
completada en 2010 por Michal Dobeš y Libor Machala del departamento de ciencias
de la computación de Palacky University, República Checa.
35
4.DATASETS
4.5 Una comparación cualitativa
Resulta inevitable una comparación natural entre los datasets revisados en la sección
anterior, por lo que formulamos una tabla comparativa que reúne los aspectos
cualitativos más relevantes.
Antes de revisarla es necesario establecer algunos conceptos que nos servirán para
acordar ideas comunes a comparar entre los bancos de datos estudiados.
Resolución espacial (o “escala”): Se mide en cantidad de píxeles por unidad de
medida o en cantidad de unidades de medida por píxel según la escala o el tamaño del
área que una imagen digital represente.
Por ejemplo: una imagen satelital puede tener una “escala” de 1.2 km/px lo cual
significaría que cada píxel de la imagen representa 1,2km cuadrados de extensión
geográfica aproximadamente, pero en contrapartida las imágenes del banco de datos
Phoenix, poseen una alta resolución espacial de 50 px/mm lo cual significa que en la
imagen, un cuadrado de 50 píxeles de lado, representaría un milímetro cuadrado del ojo
que aparece en la imagen.
Definición (“nitidez”): Generalmente asociado con la calidad del lente y/o sensor
utilizado, usualmente hace referencia a la percepción de “foco” o nitidez que hallemos
en la imagen, y aquí le daremos un uso comparativo (y no absoluto, ya que no
utilizaremos una unidad de medida).
Es decir, numeramos del 1 al 5, donde 5 representa la definición hallada en las
imágenes más nítidas y 1 la definición que encontramos en las más borrosas.
Al ampliar una imagen fotográfica digital borrosa, habitualmente se halla que aún
teniendo alta resolución o incluso alta resolución espacial, aparecen píxeles de la imagen
que contienen información inútil (píxeles contiguos idénticos o redundantes por un
problema de foco) o no fiel a lo fotografiado (presencia de “ruido”, píxeles con
información inútil “inventados” por el sensor).
Con este análisis buscamos desasociar estos conceptos usualmente confundidos
“resolución” y “definición”.
Por ejemplo: Las imágenes de CASIA-IrisV1 poseen una muy buena definición a
pesar de su baja resolución (320 x 280) mientras que CASIA-IrisV2 las imágenes son
menos nítidas y por ende hay menos información útil en el área del iris (peor definición)
a pesar de tener mejor resolución (640 x 480).
Precisión: Simplemente otorgamos valores de 1 a 3 a los datasets estudiados, según el
nivel de aislamiento y/o proximidad al área de interés (en este caso iris humano), o
presencia de “ruidos” tales como pestañas, reflejos, u cualquier otro tipo de objeto que
pueda obstaculizar una segmentación correcta.
Con 3 puntuaremos los datasets más depurados, mientras que con 1 los “menos
precisos”, ya sea por lejanía del sensor (que puede acarrear exceso de información inútil
en las muestras) o por presencia de obstáculos y/o reflejos que pudiesen atentar contra la
segmentación.
Repasados estos conceptos, pasamos a exponer la tabla comparativa:
36
4.DATASETS
Figura 4.10: Tabla comparativa de los todos los Datasets estudiados durante el
desarrollo del trabajo especial.
37
4.DATASETS
4.6 Proyecciones de utilización
Nos pareció adecuado colocar esta sub-sección luego de que el lector haya tenido la
posibilidad de revisar la tabla comparativa, precisamente porque sirve para tener una
noción más certera acerca de la utilidad, ventajas y desventajas de cada banco de datos
de imágenes de iris analizado. En otras palabras, persuadir al lector sobre la tendencia a
creer que es sencillo catalogar un dataset como mejor que cualquier otro.
Esto se logra precisamente comprendiendo la noción de proyección de uso, ya que así
como nuestro trabajo en sí mismo persigue un campo de utilización y un modo de uso
específico, cada uno de estos datasets puede ser el más adecuado para un empleo
determinado.
El dataset Phoenix debido a su excelente definición, precisión, tamaño y profundidad,
podría resultar la mejor opción si el objetivo fuese hallar patrones en el genotipo del ojo
humano, desarrollar algoritmos de autenticación de altísima fidelidad, y/o cualquier otro
desarrollo que se vea beneficiado por la cantidad de información útil presente en cada
muestra del conjunto. En contrapartida, probablemente no sea el mejor dataset para
probar algún desarrollo pensado para superar ruido y/o obstáculos de segmentación, en
donde probablemente sí se destacaría el dataset MMU2 con su baja precisión, definición
y presencia de ruido de varios tipos, ya que prácticamente emularía condiciones
relacionadas con la extracción muestras a partir de fotos más generales. De manera
similar, CASIA-Iris-Lamp podría ser el más adecuado para estudiar y desarrollar
métodos que superen el problema de la estructura elástica del iris, como el
reconocimiento en múltiples condiciones de luz, etc.
En relación con lo competente a nuestro trabajo especial, el dataset que elegimos para
validar nuestro método completo fue CASIA-IrisV1 fundamentalmente para poder
contrastar nuestros resultados ya que muchas publicaciones lo utilizan para validar
desarrollos. Por otro lado, el dataset CASIA-Iris-Interval perteneciente a CASIA-Iris-V3
fue el elegido para validar y desarrollar pretratamientos en pos de dotar nuestro método
de cierto grado de polivalencia (condiciones de ruido pupilar, producto de reflejos
lumínicos en la pupila).
38
5.DESARROLLO
DESARROLLO
En esta sección mostraremos como implementamos cada etapa del sistema biométrico
según lo explicado en la sección 1.1.5.
Detallaremos además las hipótesis y análisis que nos encausaron al desarrollo de
distintos algoritmos así como también mencionaremos aquellos aspectos del sistema
influenciados por el estado del arte.
Comenzaremos relatando los primeros acercamientos realizados para abordar la
problemática de la segmentación del iris, etapa crucial para un sistema de identificación
basado en esta característica.
Finalmente establecemos una notación y expondremos los pseudocódigos de las
funciones que conforman el sistema (salvando las que resultan triviales) y sus
interacciones.
39
5.DESARROLLO
5.1 Primeros acercamientos
5.1.1 Algoritmo para detección de bordes [12]
Con el propósito de aproximarnos a una adecuada segmentación del iris y la pupila,
exploramos e implementamos computacionalmente diversas metodologías propuestas
en la literatura.
En primera instancia estudiamos un algoritmo de detección de bordes presentado
recientemente en el ámbito del tratamiento de imágenes digitales en general [12].
Este procedimiento se caracteriza por ofrecer como resultado final una segmentación
“demasiado fina” para nuestro propósito global (delimitar la región correspondiente al
iris). Dado que la textura del iris suele presentar pigmentación, dentro del mismo pueden
visualizarse formas cuyos bordes fueron detectados por el algoritmo y terminaron por
subdividir demasiado al iris dificultando su reconocimiento general.
Otro problema es que en las imágenes no siempre hay fuerte contraste entre el iris y la
esclera, de hecho en gran parte de las imágenes de CASIA 1 [1], el contraste es bajo,
por lo cual estos bordes no siempre fueron detectados por el algoritmo.
Las dificultades mencionadas pueden manifestarse en una misma imagen, tal como se
ilustra en la siguiente figura.
(a)
(b)
Figura 5.1: En (a) la muestra “003_1_3.bmp” perteneciente a Casia-IrisV1 [1].
En (b) el resultado de aplicarle el algoritmo [12] para reconocimiento de bordes.
Como alternativa, antes de aplicar el algoritmo, se realizó un pre-tratamiento a la
imagen original (ecualización y suavizado, ver sección 6.2.2) con la esperanza de
resaltar la frontera iris-esclerótica y ayudar al algoritmo a ignorar la presencia de bordes
intra-iris, pero los resultados fueron similares, sumado a un gran aumento de tiempo en
el proceso global, lo cual es indeseable a priori.
40
5.DESARROLLO
5.1.2 Algoritmos de Clasificación: “K-Medias”
En una segunda aproximación comenzamos a experimentar con algoritmos de
clasificación o “clustering”, e ilustraremos en este trabajo, los resultados obtenidos al
aplicar específicamente el algoritmo conocido como “k-medias” (k-means [7]).
Encontramos que aunque k-medias funcionó aceptablemente en algunas imágenes muy
particulares, en otras arrojó resultados poco alentadores como se ilustra a continuación:
(a)
(b)
Figura 5.2: En (a) la imagen “070_2_4.bmp” de Casia-Iris V1 [1] y en (b) el resultado
de aplicar k-medias “con 4 clases” (k = 4).
Notar como en la imagen procesada, k-medias asigna la misma clase a iris y
esclerótica del lado izquierdo, tanto como a la pupila y pestañas. Como alternativa,
modificamos la implementación de k-medias reemplazando la distancia euclídea por la
distancia de Mahalanobis [11] esperando una mejora en la clasificación; obteniendo
nuevamente resultados similares a los recién descriptos.
5.1.3 Clasificación mediante ROI’s
En tercera instancia se intentó aplicar la técnica de clasificación supervisada en base a
Regiones de Interés (ROIs) por distancia mínima [7].
Pero obtuvimos resultados similares, ya que al parecer, el problema de fondo reside en
que estos métodos se basan netamente en “el color” de cada píxel para establecer su
clasificación, sin tener en cuenta su ubicación espacial en absoluto
Así llegamos a la conclusión de que al menos con estas técnicas que probamos, la
respuesta no estaba en un pre-tratamiento de clasificación por lo cual convendría
elaborar métodos ad-hoc de segmentación del iris y la pupila, utilizando las
particularidades específicas de las imágenes en estudio.
41
5.DESARROLLO
5.2 Lineamientos
En la sección 2 mencionamos algunas problemáticas que marcarían las motivaciones
del desarrollo, pero luego de los acercamientos preliminares a enfrentar el problema de
la segmentación (sección 5.1) una de estas problemáticas hizo evidente su importancia y
se convirtió en el “leit motiv” del trabajo: “Concepción computacional”, sección 2.2.3.
“Si podemos efectuar la etapa de segmentación de una manera más eficiente,
podremos poner más énfasis en la etapa de comparación, en espera de resultados
globales competentes”
Como mencionamos en tal sección, gran parte de los algoritmos o métodos utilizados
en el estado del arte se basan en métodos complejos que no aprovechan características
comunes en las imágenes digitales del ojo humano, e invierten toda su complejidad en
determinar con exactitud los bordes del iris. En adición, vimos en la sección 1.1.6 que la
información de interés biométrico (“patrón visual”) presente en el iris es vasta respecto
de otras bio-métricas.
Combinando estos hechos, nos vimos motivados a creer que aún si una mejora
substancial en la performance de la etapa de segmentación conllevara una pérdida de
exactitud en los límites de la misma, esto podría no determinar un deterioro en los
resultados, poniendo el énfasis adecuado en las etapas subsiguientes del sistema.
Así, nos vimos impulsados a valernos de hipótesis como las siguientes para comenzar
el desarrollo de la 1er etapa (segmentación):
•
La pupila se manifestará en la imagen como un discoide de textura relativamente
homogénea.
•
La pupila es lo suficientemente grande como para conformar la región oscura de
mayor superficie en la imagen.
•
En todas las imágenes oftalmológicas hay exactamente un ojo.
•
Las muestras de un mismo dataset respetan la distancia del sensor al individuo.
•
Dado que el ojo humano promedio presenta escasa variación en el diámetro final
del iris (ver sección 1.2) el límite exterior de la segmentación quedaría
automáticamente determinado por la resolución espacial de cada muestra.
•
Debido a la cantidad de información biométrica presente en el iris, determinar el
límite exterior de la segmentación utilizando características anatómicas no producirá
pérdidas substanciales de información.
Nuestro objetivo es entonces tomar estas características comunes en la generalidad de
los bancos de datos (más particularmente CASIA IrisV1) y tomarlas como
precondiciones para desarrollar un método veloz y eficaz para la segmentación de la
pupila y con ello comenzar un sistema biométrico eficiente.
42
5.DESARROLLO
5.2.1 Convenciones de notación
Trabajaremos sobre la base del siguiente marco de referencia:
•
Una imagen I será una matriz de tamaño NxM (N columnas y M filas). Para
referirnos al elemento de la matriz I ubicado en “columna i” de la “fila j”
escribiremos I[i, j] donde 0≤ i < Ν y 0≤ j < Μ.
•
Si I es una imagen NxM, para referirnos a la posición determinada por la
“columna x” de la “fila y”, escribiremos “celda (x, y) de I” cuando 0 ≤ x
< Ν ∧ 0 ≤ y < Μ.
•
Cada celda (x, y) de una imagen I de tamaño NxM tendrá asociado un único
número entero entre 0 y 255, llamado valor de intensidad de la imagen en la
celda (x, y), que se denotará como I[x, y]. Los valores bajos de intensidad
estarán relacionados con menor luminosidad en la imagen (el valor de
luminosidad más baja es 0, considerado el negro absoluto).
•
Un píxel p será una terna (x, y, NI) tal que NI es un entero entre 0 y 255.
•
Dada una imagen I de tamaño NxM diremos que el píxel p=(x, y, NI) pertenece
a I y lo escribiremos p ∈ I cuando (x, y) sea una celda de I y I[x, y] = NI.
•
Dados un par de píxeles p=(x, y, NI) y p’= (x’, y’, NI’) diremos que p es
menor o igual a p’ y lo escribiremos como p ≤ p’ si y solo si se cumple que
NI ≤ NI’.
•
Una segmentación de pupila será un disco representado por un par (c, r) donde
el parámetro ‘c’ es la celda de la imagen correspondiente al centro de la pupila
y el escalar ‘r’ es el radio de la misma.
•
Una segmentación de iris será un anillo de parámetros (c, r, R) donde ‘c’ es el
centro en común de las dos circunferencias que lo delimitan, ‘r’ el radio del
círculo que separa la pupila del iris y ‘R’ el radio del círculo que delimita al iris
con la esclerótica. Este modelo exige que 0 < r < R.
43
5.DESARROLLO
5.2.2 Pseudocódigo
Para poder describir los algoritmos que desarrollamos, a continuación, vamos a
establecer un pseudocódigo, el cual no pertenece a ningún lenguaje de programación en
particular. La idea es simplemente capturar la esencia de los algoritmos sin perder
esfuerzo en cuestiones muy finas de implementación. Así pues cuando, por ejemplo, se
necesite usar conjuntos no habrá que diseñar mecanismos sofisticados para
implementarlos sino que directamente usaremos la notación de conjuntos habitual, con
sus operaciones. El mismo criterio es usado para el resto de los objetos matemáticos.
A continuación describiremos la sintaxis del pseudocódigo junto con una breve e
informal descripción de su significado.
Asignación de variable
v := E
Es la clásica asignación de un lenguaje imperativo, donde “E” es una expresión y “v”
la variable donde se guarda el valor resultante de “E”.
Otra de las formas de asignación que usaremos en el pseudocódigo es la asignación
múltiple:
v1, v2,..., vn := E1, E2,..., En
Aquí, a cada variable “vi” se le asigna el valor de la expresión “Ei” correspondiente
de manera simultánea.
Condicional
if C1 → S1
[] C2 → S2
:
[] Cn→ Sn
fi
Cuando alguna de las condiciones “Ci” se cumple, se ejecuta la sentencia (o grupo de
sentencias) “Si” correspondiente. Si no se cumple ninguna de las condiciones,
simplemente no realiza ninguna acción. En el caso que más de una condición se cumpla
se elegirá no determinísticamente alguna de las sentencias para ejecutar (en los
algoritmos desarrollados todas las condiciones son excluyentes entre si, por lo que esta
característica del condicional no será de importancia).
44
5.DESARROLLO
Iteraciones condicionales
while C do
S1
S2
Sn
od
Este tipo de iteración ejecuta las sentencias S1,..., Sn mientras la condición C sea
verdadera.
Otra de las formas de iteración que usaremos es la siguiente:
do C1 → S1
[] C2 → S2
:
[] Cn
→ Sn
od
En este caso, Si se ejecutará cuando se cumpla la condición Ci; luego se vuelven a
evaluar las condiciones para determinar que sentencia se ejecutará en el próximo paso
del ciclo. De esta manera el ciclo de iteraciones finalizara cuando todas las condiciones
Ci sean falsas. Si más de una condición es verdadera, se elije no determinísticamente
alguna de las sentencias correspondientes y se ejecuta.
Declaración de funciones
Para definir las funciones en el pseudocódigo usaremos la siguiente sintaxis:
fun nombre_funcion(p1, ..., pn)
S1
S2
:
Sr
return E1, E2,..., Ek
end
Las variables p1,..., pn tendrán los valores de entrada de la función. Los valores de
salida serán los resultados de las expresiones E1,..., Ek. Cuando k > 1 la forma de
recuperar las salidas de la función será:
v1, v2, ..., vk := nombre_funcion(p1,..., pn)
45
5.DESARROLLO
La sentencia de terminación por excepción
Cuando una función no logre cumplir con su propósito, y este sea crucial para el
funcionamiento del sistema, usaremos la sentencia “abort” que simplemente termina el
programa en un estado de error.
El tipo de dato “lista”
Usaremos en algunas funciones el tipo lista para almacenar datos. Este tipo de datos es
muy simple y solo nos hace falta definir dos operaciones y un constructor:
•
•
•
La lista vacía: []
Agregar por derecha un elemento a la lista: ◄
Tomar el primer elemento de la lista y sacarlo: take()
El funcionamiento del operador “◄” se ilustra en la siguiente ecuación:
([] ◄ 5) ◄ 2 = [5, 2]
En el caso de la función “take()” es importante notar que además de devolver el
primer elemento de la lista pasada como parámetro, modifica a la misma quitándole
dicho elemento. Un ejemplo:
lista := [5, 2]
e := take(lista)
Luego de ejecutar el programa anterior, los valores de las variables serán:
e = 5 ∧ lista =[2]
5.3 Nuestro Método
A continuación y como se anticipó en la portada de esta sección, hemos organizado la
exposición del desarrollo de acuerdo con las etapas de la biométrica detalladas en la
sección 1.1.5 (ver figura 1.1).
Así, explicaremos nuestro trabajo sobre:
1. Localización…….. sección 5.3.1
2. Normalización…... sección 5.3.2
3. Extracción……….. sección 5.3.3
4. Matching………… sección 5.3.4
Cada sección correspondiente con una etapa, desarrollada y subdividida en los pasos
que consideramos relevantes para cada una.
46
5.DESARROLLO
5.3.1 Localización de la Característica
Como ya se mencionó, en un sistema biométrico el primer paso es localizar dentro de
la imagen previamente adquirida la región en donde se encuentra la información
biométrica (el iris en nuestro caso).
Para localizar el iris necesitamos dos radios: el interior correspondiente al borde
pupilar y el exterior correspondiente a la frontera entre el iris y la esclera.
Los sub-pasos que siguen a continuación, desarrollan cada una de estas tareas.
Segmentación Pupilar
Suponiendo que tenemos las coordenadas de una celda correspondiente a la región
interior de la pupila y que la misma es un disco perfecto, propondremos un algoritmo
simple y eficaz para ayudar a determinar su centro y su radio. Dicho algoritmo lo hemos
llamado Cruz y trabaja de la siguiente manera:
(a)
(b)
Figura 5.3: En (a) un píxel perteneciente a la pupila. En (b) las trazas realizadas por el
algoritmo Cruz. El píxel rojo corresponde al píxel inicial. Los píxeles verdes
corresponden a las trazas. El espacio entre píxeles es solo por motivos estéticos, el
algoritmo revisa trazas conexas.
Realiza cuatro recorridos (o trazas) a partir del píxel perteneciente a la pupila, dos
recorridos en sentido vertical (direcciones “norte” y “sur”) y dos en sentido horizontal
(direcciones “este” y “oeste”).
Todos los recorridos finalizan al detectar que el próximo píxel a visitar presenta una
diferencia de intensidad considerable respecto a la del píxel inicial. El valor “de
corte” para esta diferencia se ajusta con un parámetro T (de tolerancia) que recibe el
algoritmo.
Las salidas serán el centro del disco (obtenido a partir de las trazas) y las longitudes de
los cuatro recorridos.
Valores de entrada:
•
•
•
Una imagen I de tamaño NxM
Un píxel inicial p = (x , y, NI)
Un entero T correspondiente a la diferencia de intensidad
tolerada entre cada píxel de una traza y p.
47
5.DESARROLLO
Las salidas son:
• Un par ordenado C=(xc, yc) correspondiente a las coordenadas del centro del
discoide
• Cuatro enteros positivos TN, TS, TE y TO correspondientes a las longitudes
de los recorridos en cada punto cardinal a partir de p.
Y las variables propias:
• YN, YS correspondientes a las coordenadas norte y sur de la traza vertical.
• XE, XO correspondientes a las coordenadas este y oeste de la traza horizontal.
El algoritmo Cruz queda entonces:
fun
(x,
YN,
XE,
algoritmo_cruz(I, p, T)
y, NI) := p
YS := y
XO := x
do |I[x, YN] – NI| ≤ T ∧ YN > 0 →
[] |I[x, YS] – NI| ≤ T ∧ YS < M – 1 →
[] |I[XE, y] – NI| ≤ T ∧ XE < N – 1 →
[] |I[XO, y] – NI| ≤ T ∧ XO > 0 →
od
C := (XE + XO, YN + YS) / 2
TN, TS := y – YN, YS – y
TE, TO := XE – x, x – XO
return TN, TS, TE, TO, C
end
YN := YN – 1
YS := YS + 1
XE := XE + 1
XO := XO – 1
Una vez obtenidas las salidas del algoritmo ya tenemos la mitad del problema resuelto
pues el centro de la pupila está determinado. Solo nos queda calcular el radio. Para
lograrlo se puede realizar una segunda ejecución del algoritmo a partir del centro
previamente calculado, ya que de esta manera las trazas realizadas en esta ocasión serán
las proyecciones radiales en los cuatro sentidos cardinales a partir del centro, como se
puede observar en la figura 5.4, así cualquiera de las longitudes de traza puede usarse
como radio.
Figura 5.4: Representación de la salida del algoritmo Cruz a partir del píxel central de la
pupila.
48
5.DESARROLLO
En principio con el método anteriormente explicado se resuelve la segmentación
pupilar, pero aun queda un pequeño detalle: La pupila no es un disco perfecto, ya que
presenta irregularidades sobre los bordes variando de individuo a individuo, condiciones
de iluminación, etc. Por ello hay dos cuestiones a resolver:
1. En la segunda ejecución del algoritmo Cruz las longitudes de traza serán
ligeramente distintas, por lo que hay que fijar un criterio para poder, a partir de
ellas, elegir la mas conveniente como radio.
2. Cuanto más alejado del centro de la pupila esté el píxel p (“inicial”) peor será
el centro calculado por la ejecución de Cruz, debido a las irregularidades en el
borde pupilar de la imagen.
En la primera cuestión nuestra política fue entonces elegir el mínimo de entre las
longitudes de traza como radio, priorizando no dejar fuera de la segmentación de iris
algún píxel del iris a no incluir píxeles de la pupila dentro de la misma.
La segunda problemática obliga a realizar una ejecución de Cruz más para poder
confiar en el centro calculado, es decir, la primera ejecución nos acercará bastante al
verdadero “centro pupilar” y luego necesitaremos hacer una nueva ejecución para
obtener el centro definitivo. Por último se obtiene el radio como se mencionó
anteriormente haciendo una última ejecución del algoritmo.
Buscando la Pupila
Hasta aquí hemos trabajado con la hipótesis de tener un píxel que efectivamente
pertenece a la pupila en la imagen. Evidentemente, para que el sistema funcione, dicho
píxel hay que encontrarlo en un primer momento. Para lograrlo nos basamos en la idea
de que al ser la pupila la región oscura de la imagen con mayor superficie, si tomamos
una muestra de píxeles uniformemente espaciados dentro de la imagen, la mayor parte
de píxeles oscuros (de bajos valores de intensidad) serán provenientes de la pupila.
La siguiente figura ilustra tal situación.
Figura 5.5: Muestra de píxeles con distancia uniforme.
49
5.DESARROLLO
Los demás pueden provenir de pestañas o algún ruido en la imagen. Para poder
descartar estos píxeles utilizaremos nuevamente el algoritmo Cruz haciendo el siguiente
análisis:
“Cuando Cruz se ejecute a partir de un píxel proveniente de las pestañas, las
longitudes de traza obtenidas serán ‘muy pequeñas’ y/o ‘muy distintas’ entre sí”
El mismo análisis puede hacerse para los píxeles oscuros producto del ruido. El
criterio para determinar si una traza es pequeña se fija con un parámetro que especifica
el radio más chico esperado para la pupila. Se calcula entonces la media de las
longitudes de traza y se verifica que sea mayor a dicho parámetro. Para decidir si las
trazas no son lo suficientemente similares se establece un criterio de “circularidad
esperada”.
Para la función, el parámetro es un porcentaje (entre 0 y 100) y la verificación se hace
de la siguiente manera:
traza_menor := min {trazaNorte, trazaSur, trazaEste, trazaOeste}
traza_mayor := max {trazaNorte, trazaSur, trazaEste, trazaOeste}
criterio_circularidad := traza_menor ≥ traza_mayor * (tolerancia_circular / 100)
Por último, para hacer la búsqueda más eficiente, ordenamos los candidatos de menor
a mayor según su nivel de intensidad (puesto que la pupila debe ser oscura) y además
sólo se prueba con los píxeles candidatos provenientes de regiones relativamente
centrales de la imagen. Para definir dicha región ‘A’ como área de interés usamos el
triple del parámetro del radio más chico (radio_minimo * 3) asumiendo
arbitrariamente un lado de distancia que aproxime “una pupila y media”.
A := {celda (x, y) ∈ I / x ≥ radio_minimo * 3 ∧ radio_minimo * 3 ≥ y}
A continuación se muestra el algoritmo para hallar la pupila:
Las entradas:
• Una imagen I de tamaño NxM
• Un entero T correspondiente a la tolerancia a distancias intensidad para el
algoritmo Cruz.
• Un entero TC de valores entre 0 y 100 que indica la tolerancia circular.
• Un entero RM que contiene el radio mínimo para la pupila
Las salidas son:
• Un valor E booleano (verdadero o falso) que indica si se encontró una presunta
pupila.
• Un par ordenado C=(xc, yc) correspondiente a las coordenadas del centro de la
segmentación pupilar.
• Un entero R que contendrá el radio de la segmentación pupilar.
50
5.DESARROLLO
Las variables propias relevantes:
• TN, TS correspondientes a las longitudes norte y sur de las trazas verticales.
• TE, TO correspondientes a las longitudes este y oeste de las trazas
horizontales,
• “pixeles” es una variable que contiene la lista de píxeles obtenidos de la
muestra uniforme en la imagen.
• “exito” contiene un valor de verdad que indica si el método pudo encontrar a la
pupila.
Además se usan las funciones tomar_puntos() y ordenar_puntos() que hacen lo
esperado. El segundo parámetro de la primera función es un porcentaje que determina la
distancia entre los píxeles de la muestra que se devolverá. Por ejemplo, si la imagen
tiene dimensión 320x280 y pasamos 5%, la distancia entre un punto y el siguiente en
sentido horizontal será de 16 píxeles (pues representa el 5% de 320) y la distancia entre
un punto y el siguiente en sentido vertical será de 14 píxeles (el 5% de 280).
fun hallar_pupila(I, T, TC, RM)
exito := falso
pixeles := tomar_puntos(I, 5)
pixeles := ordenar_puntos(pixeles)
while pixeles ≠ [] ∧ ¬exito do
p := take(pixeles)
if p ∈ {(x, y, NI) ∈ I / x ≥ RM * 3 ∧ RM * 3 ≥ y}
TN, TS, TE, EO, C := algoritmo_cruz(I, p, T)
traza_media := media {TN, TS, TE, TO}
→
if traza_media ≥ RM →
TN, TS, TE, TO, C := algoritmo_cruz(I, C, T)
TN, TS, TE, TO, c_aux := algoritmo_cruz(I, C, T)
traza_menor := min {TN, TS, TE, TO}
traza_mayor := max {TN, TS, TE, TO}
R := traza_menor
exito := traza_menor ≥ traza_mayor * (TC / 100)
fi
fi
od
return exito, C, R
end
Segmentación del Iris
Una vez determinados los parámetros de la pupila, para segmentar el iris solo debemos
encontrar el radio mayor del anillo que define al mismo.
Como se mencionó en la sección 1.2, la córnea cubre perfectamente al iris y su
diámetro está acotado por 13mm en los humanos. Por lo tanto usaremos el parámetro del
dataset resolución espacial o “escala” (ver sección 4.5) como referencia para calcular la
diferencia entre el radio pupilar y el radio estándar del iris (6,5mm menos el radio
pupilar obtenido en el paso anterior).
Hecho esto tenemos todos los parámetros necesarios para nuestro modelo de
segmentación del iris y por lo tanto concluye la etapa de localización de la característica
biométrica.
51
5.DESARROLLO
5.3.2 Normalización y Preprocesamiento
El propósito de la etapa de normalización en todo sistema biométrico (ver figura 1.1)
es, en pocas palabras, el de proveer alguna forma de estandarización entre las muestras
capturadas y/o a contrastar. Tal estandarización puede estar orientada a favorecer
cualquiera de los aspectos influyentes en las siguientes etapas del sistema biométrico,
tales como:
1. Acotar el tamaño de cada muestra en disco duro.
2. Reducir la cantidad de parámetros necesarios para definir un código biométrico
dado.
3. Combatir algún inconveniente común con el dominio de aplicación.
4. Favorecer la eficiencia de las etapas subsiguientes.
En nuestro caso, para implementar esta etapa del sistema nos basamos en el método de
desdoblamiento (o “unwrapping”) propuesto por Daugman [4], ya que a nuestro criterio
satisface los aspectos recién mencionados, pues:
1. El tamaño de las muestras normalizadas es mucho menor al de las muestras
originales de cada dataset..
2. Obtenidas las normalizaciones ya no necesitamos parámetros como “centro” y
“radio”.
3. La normalización de Daugman[4] es robusta frente a dilatación/contracción del
iris (i.e. dadas dos muestras del mismo individuo, una contraída y la otra
dilatada, sus formas normalizadas tienden a ser similares).
4. La mera manipulación de estas imágenes normalizadas, es mucho más rápida
que si se utilizaran las imágenes originales del dataset.
Básicamente se usa la representación polar de los píxeles correspondientes al iris para
construir una nueva imagen como se muestra en la figura 5.6.
Daugman[4] propone representar la versión normalizada de un anillo de iris, como una
matriz ‘N’ compuesta por una extracción parametrizada de información dentro del iris.
Es decir; una selección de sub-circunferencias concéntricas pertenecientes al anillo que
lo compone. La imagen normalizada dependerá entonces de dos parámetros:
•
Resolución radial ‘r’: La cantidad de sub-circunferencias que tomaremos del
anillo del iris, los cuales conformarán las filas de N.
•
Resolución angular ‘θ
θ’: La cantidad de radios seleccionados, los cuales
conformarán las columnas de N.
Es importante fijar estas resoluciones pues de variar según la imagen el objetivo de
normalización no se alcanza.
52
5.DESARROLLO
Figura 5.6: Representación gráfica del “unwrapping” propuesto por Daugman [4]
(desdoblamiento del iris en una matriz).
Figura 5.7: Ejemplo de los píxeles seleccionados en una normalización con 65 píxeles
de resolución angular y 15 píxeles de resolución radial.
Nuestra implementación del método de Daugman para normalizar el iris se detalla a
continuación:
53
5.DESARROLLO
Valores de entrada:
• Una imagen I de dimensión NxM.
• Un par de variables enteras “x_centro” e “y_centro” que son las
coordenadas del centro del anillo que representa al iris.
• “radio_menor” que es el radio de la pupila.
• “radio_mayor” que es el radio de la circunferencia que divide al iris
de la esclera.
• Un par de variables enteras “A” y “R” que indican la resolución
angular y la resolución radial (respectivamente) de la matriz de iris
normalizada que se generará.
Valor de salida:
•
Una matriz “matriz_iris” de dimensión AxR que contiene los pixeles
extraídos del iris.
fun normalizar_iris (I, x_centro, y_centro, radio_menor, radio_mayor, A, R)
for code_y := 0 to R – 1 do
for code_x := 0 to A – 1 do
alpha := (2 * π / (A – 1)) * code_x
iris_r := ((radio_mayor – radio_menor) / (R – 1)) * code_y + radio_menor
iris_x := cos(alpha) * iris_r + x_centro
iris_y := sen(alpha) * iris_r + y_centro
if celda (iris_x, iris_y) ∈ I →
→
matriz_iris[code_x, code_y] := I[iris_x, iris_y]
fi
od
od
return matriz_iris
end
54
5.DESARROLLO
Nuestra propuesta
En la normalización propuesta por Daugman, se toma una muestra de píxeles
arbitrarios y poco representativos del iris. Por otro lado, tampoco es viable trabajar con
la totalidad de ellos puesto que manipular objetos tan grandes tiene un costo
computacional alto, tanto desde el punto de vista del espacio requerido por la base de
datos como el del desempeño temporal del sistema. Pensar que cuando se quiere
determinar la identidad de una persona se debe comparar su característica biométrica
con todas las guardadas en el sistema.
Nuestra idea es entonces usar información más representativa de la textura.
Proponemos extraer estadísticos de distintas regiones del iris en la imagen y formar una
nueva a partir de ellos. En este trabajo las regiones serán bloques rectangulares y se
utilizará a la media muestral como estadístico ya que mostró mejores resultados que la
mediana y la desviación estándar.
El mecanismo para generar la nueva imagen se muestra en la siguiente figura.
Figura 5.8: Arriba la normalización que contiene todos los píxeles el iris de la muestra
original, superpuesta la grilla que determinaría la resolución de los códigos a
almacenar. Abajo el código ya generado a partir de las medias de las celdas de arriba.
Nuestra innovación aquí consiste en construir una imagen normalizada del iris que
contenga todos los píxeles de la muestra original y luego se descompone en una grilla
según la resolución convenida para almacenar los códigos de iris.
Finalmente se calcula la intensidad media de cada celda y se utiliza este resultado
como valor de intensidad de cada píxel del código generado (en el orden topológico).
55
5.DESARROLLO
Valores de entrada:
• Una imagen I de dimensión NxM.
• Un par de variables enteras “x_centro” y “y_centro” que son las
coordenadas del centro del anillo que representa al iris.
• “radio_menor” que es el radio de la pupila.
• “radio_mayor” que es el radio de la circunferencia que divide al iris de
la esclera.
• Un par de variables ‘N’ y M’ correspondientes a la dimensión de la
matriz de iris a generar.
Variables propias importantes:
• NT y MT son las dimensiones necesarias para almacenar en una matriz
todos los píxeles del iris.
• La variable “iris” contiene la matriz normalizada con la totalidad de
píxeles del iris.
• BX y BY contienen la longitud horizontal y vertical de un bloque
respectivamente.
Valor de salida:
• Una matriz “matriz_iris” de dimensión N’xM’ con el iris normalizado
procesado.
fun procesar_iris(I, x_centro, y_centro, radio_menor, radio_mayor, N’, M’)
MT := Ri - Rp
NT := 2 * π * radio_mayor
iris := normalizar_iris(I, x_centro, y_centro, radio_menor, radio_mayor, NT, MT)
BX :=
NT / N’
BY := MT / M’
for code_y := 0 to M’ - 1 do
for code_x := 0 to N’ - 1 do
bloque:=
iris[i, j] code_x * BX ≤ i < ((code_x +1) * BX) min NT
∧ code_y * BY ≤ j < ((code_y+1) * BY) min MT
matriz_iris[code_x, code_y] := media(bloque)
od
od
return matriz_iris
end
56
5.DESARROLLO
5.3.3 Extracción de característica
En esta etapa se busca capturar dentro de la muestra normalizada, la característica
elegida para identificar al individuo y almacenarla conformando así el llamado “código
biométrico”.
En nuestro caso particular, basados en la observación de que al momento de captura de
la imagen ocular puede haber variaciones en el nivel de luminosidad, se nos planteó
como objetivo desarrollar un método de extracción de característica que sea robusto ante
esta situación. Por ello nuestro método se enfoca en la relación de cambio que hay píxel
a píxel en la textura normalizada del iris y no en los valores de intensidad en sí. Más
precisamente el vector de característica o código de iris desarrollado se construye de la
siguiente manera:
La rutina toma:
• Una imagen I de tamaño NxM correspondiente al iris normalizado.
Devuelve:
•
Una matriz D de dimensión (N-1)xM que llamamos matriz diferencial.
fun codigo_iris(I)
for j := 0 to M - 1 do
for i := 0 to N - 2 do
D[i, j] := I[i + 1, j] – I[i, j]
od
od
return D
end
La denominación que le hemos dado a la matriz D proviene de la similitud que hay en
la forma de calcularla con el concepto de derivada de una función. Más aun, la
característica de representar el crecimiento por fila que posee la imagen I es un rasgo
importante, pues si calculamos la matriz diferencial de I y la matriz diferencial de la
imagen obtenida al sumar a cada componente cierta constante, dichas matrices serán
iguales. Esto hace que al momento de la comparación, el sistema sea robusto a la
variación de los niveles de luminosidad entre las imágenes adquiridas.
57
5.DESARROLLO
Finalmente el método que combina las funciones para poder, a partir de una imagen,
obtener el código de iris definitivo es:
Valores de entrada:
• Una imagen I de dimensión NxM
• Una constante RC que representa a 6.5mm en píxeles
• Un par de variables ‘N’ y ‘M’ correspondientes a la dimensión del código
de iris a generar.
• Un par de variables T y TC correspondientes a la tolerancia de intensidad
y a la tolerancia circular respectivamente.
• Una constante RM que indica el radio más chico esperado para la pupila
en píxeles.
Valor de salida:
• matriz iris_code de dimensión N’xM’ que contiene el código de iris
calculado.
fun hallar_iris(I, RC, N’, M’, T, TC, RM)
exito, centro, radio_menor := hallar_pupila(I, T, TC, RM)
radio_mayor := RC
if exito →
matriz_iris := procesar_iris(I, centro, radio_menor, radio_mayor, N’, M’)
iris_code := codigo_iris(matriz_iris)
return iris_code
[] ¬exito
abort
fi
end
→
58
5.DESARROLLO
5.3.4 Comparación (matching)
Esta es la última etapa en un sistema biométrico y la razón de ser de todo este trabajo.
Aquí la tarea es medir el grado de similitud del código de iris obtenido a partir de la
imagen de entrada con los demás códigos almacenados en el sistema. De esta manera se
intentará determinar la identidad del individuo. Para medir la similitud entre dos códigos
de iris usaremos la llamada distancia de Hamming. Esta distancia es un coeficiente de
similitud entre 0 y 1, y se calcula cuantificando la cantidad de bits en que difieren dichos
códigos y dividiendo por la totalidad de bits necesitados para representarlos. Es decir,
realizando un XOR entre la representación binaria de los códigos, contando cuantos
dígitos binarios no nulos hay en el resultado y dividiendo por el numero de bits
empleados para la representación.
Ejemplo: la distancia de Hamming entre los números 10 y 7 (usando 8 bits para la
representación) se calcula de la siguiente manera:
10 en binario es
: 00001010
7 en binario es
: 00000111
10 XOR 7 es
: 00001101
Distancia de Hamming: 3 / 8 = 0.375
Para calcular esta distancia entre matrices usamos el siguiente algoritmo:
Valores de entrada:
• D y D’, las matrices de dimensión NxM correspondientes al par de
códigos de iris para comparar.
La salida es:
• La variable “hamming” que contiene un valor entre 0 y 1
correspondiente a la distancia calculada.
Además usaremos la constante “B” que simboliza la cantidad de bits necesarios para
representar un elemento de las matrices D y D’, y la función bits_no_nulos() que
cuenta la cantidad de unos que hay en la representación binaria de un número dado.
fun hamming_dist(D, D’)
hamming := 0
for j := 0 to M - 1 do
for i := 0 to N - 1 do
hamming := hamming + bits_no_nulos(D[i, j] XOR D’[i, j])
od
od
hamming := hamming / (B * N * M)
return hamming
end
59
5.DESARROLLO
5.4 Estructura del sistema
El siguiente esquema, es una descripción TOP-DOWN de la estructura de funciones de
nuestro sistema.
En otras palabras se comienza (arriba) por la función de más “alto nivel” (la que
captura la funcionalidad final del sistema) y cada flecha simboliza la llamada al
procedimiento, función o funcionalidad señalada.
comparar_iris
hallar_iris
codigo_iris
tomar_puntos
hallar_pupila
algoritmo_cruz
hamming_dist
procesar_iris
normalizar_iris
Figura 5.9: Descripción TOP-DOWN del sistema completo.
60
6.PRETRATAMIENTOS
PRETRATAMIENTOS
En la sección 2, más precisamente en el apartado 2.2.2, se planteó la motivación de
dotar al algoritmo a desarrollar, de algún grado de independencia del banco de datos
(noción de “polivalencia”) además de la más usual; como lo es la búsqueda de algún
tipo de mejora en la performance de un método.
Luego, en la sección 5 se mencionó que llegado el desarrollo al punto de probar
nuestro método de segmentación en datasets diferentes, se analizaron al menos 5
posibilidades diferentes para continuar.
Pues bien, de las 5 posibilidades, se eligió una: “desarrollar una secuencia de pasos,
que tomen como entrada una imagen de un dataset dado, y devuelvan como salida una
imagen que el algoritmo pueda segmentar “efectivamente”; y en esta sección se
documentará el desarrollo de esta alternativa denominada “pretratamientos”.
61
6.PRETRATAMIENTOS
6.1 Preliminares
Aquí pasaremos a dar una descripción informal y conceptual del método propuesto
para segmentar la pupila (expuesto en detalle en la sección 5), con el fin de comprender
posteriormente las limitaciones del mismo, y en consecuencia las asistencias y objetivos
buscados con los pretratamientos en los cuales se basa esta parte del trabajo.
Inicialmente, el método trabaja bajo la suposición de que todas las muestras de un
banco de imágenes oculares, tienen un patrón de similitud “razonable”.
Entiéndase por razonable, características generales tales como:
• “en todas las imágenes hay un ojo”
• “todas las imágenes fueron capturadas aproximadamente a la misma distancia
de cada individuo”
Y características más particulares como por ejemplo:
• “todas las imágenes poseen un nivel de luz similar una respecto de otra”
• “la pupila representa en cada imagen un disco uniforme aproximadamente
negro”
6.1.1 Un análisis semántico informal de Cruz
Originalmente, el método se desarrolló sobre el dataset Casia-Iris V1 [1], el cual es
muy utilizado en la mayoría de desarrollos del estado del arte (tanto publicaciones
científicas, como tesis de grado y/o posgrado relativas al tema en cuestión; para mayores
detalles consultar la sección 4).
Mencionado esto, el método se basa en la suposición de que el disco pupilar, representa
el área uniformemente “negra” más extensa en la imagen a segmentar.
Así, inicialmente se distribuye uniformemente una cantidad prefijada de puntos sobre
la imagen, algunos de los cuales caerán dentro del disco que representa la pupila, y que;
adicionalmente, estos puntos estarán entre los más oscuros en la imagen.
Se ordenan los puntos según su nivel de gris (desde el más oscuro al más claro), y será
este orden el utilizado por el método para buscar el “píxel candidato” para obtener la
segmentación buscada.
A cada candidato, se le aplica el mencionado “Algoritmo Cruz” (para más detalle
consultar la sección 5) el cual básicamente, comprueba la diferencia de gris con los
píxeles vecinos, en cada punto cardinal; deteniéndose en cada traza cuando la diferencia
supera un umbral de tolerancia prefijado.
Subyacentemente, lo que se busca con este comportamiento, es que cuando se aplique
sobre un píxel perteneciente a la pupila los recorridos se detendrán precisamente en el
borde entre la pupila y el iris.
Establecemos el candidato, eligiendo el primer píxel cuyos recorridos superen una
longitud mínima arbitraria elegida según el caso.
A partir de los recorridos de este candidato, se obtienen el radio y centro presuntos, del
círculo imaginario al cual pertenecería este píxel.
Finalmente se corre nuevamente el algoritmo Cruz sobre este supuesto centro,
esperando una diferencia mínima entre la longitud de los recorridos (ya que
presuntamente estamos en el centro de un disco negro).
62
6.PRETRATAMIENTOS
Si se cumple esta hipótesis, entonces podemos calcular el radio pupilar con mayor
precisión y el método concluye, retornando este centro y radio, suficientes para
segmentar un disco. En caso contrario el método continúa sobre el siguiente candidato
(con el orden establecido inicialmente).
Si ningún candidato en la lista cumple con las longitudes mínimas de traza buscadas, el
método devuelve la señal de fracaso correspondiente.
6.1.2 Las limitaciones de Cruz
Como se explica en la sección 5, con el algoritmo Cruz básicamente se propuso un
método razonablemente eficiente (performance) para segmentar pupila en forma
automática, aunque que por la forma en la que se desarrolló el método de segmentación,
el mismo le debe su efectividad a varias características específicas de Casia-IrisV1 [1]
tales como:
• El disco negro y uniforme superpuesto artificialmente sobre cada pupila en
todas las muestras.
• La ausencia de reflejos y/o manchas accidentales en todas las muestras.
• La uniformidad lumínica entre todas las muestras.
• El foco sobre la región de interés que presenta todo el dataset.
• Excelente definición con baja resolución (320x280 píxeles).
• La utilización de un sensor pancromático para la captura de cada muestra.
Dicho de otra manera, analizando diferentes datasets de muy fácil acceso en la
actualidad, (tales como: MMU Iris Database[2], “phoenix Iris Database” [3] , Casia-Iris
V3) notamos que; no solo son muy diferentes uno respecto del otro (como ya se analizó
en la sección 4), sino que ninguno posee similitudes con Casia-IrisV1 [1] (en cuanto a
las características específicas mencionadas recién).
Cualquiera de estos puntos de vista, es suficiente para predecir (y posteriormente
comprobar) que el método de segmentación tuvo resultados catastróficos en cualquiera
de estos datasets diferentes de Casia-IrisV1 [1].
Así, el objetivo de los pretratamientos se resume a dotar las muestras de un dataset
dado, con estas características listadas recién, en lugar de adaptar o modificar el método
ad-hoc para cada dataset en particular.
63
6.PRETRATAMIENTOS
6.2 La búsqueda del pretratamiento
6.2.1 El problema a combatir
De entre todas las características que atentaron contra la efectividad del Algoritmo
Cruz, pudimos aislar dos; que no sólo fueron las que más afectaron el correcto
desempeño del método, sino que además son un denominador común en los datasets
analizados diferentes de Casia-IrisV1 [1].
•
La heterogeneidad de intensidad intrapupilar.
•
La presencia de reflejos/manchas accidentales producto de la iluminación al
momento de captura.
La primer característica, atenta principalmente contra la métrica utilizada para definir
la intensidad (nivel de gris) esperada de la pupila. Concretamente hablando, pensar en la
cota de tolerancia utilizada por el algoritmo para realizar el recorrido de cada traza.
La segunda, en un primer momento, nos impulsó a modificar el algoritmo de forma tal
que cuando una traza pasara por píxeles de alta luminosidad (donde la cota para
determinar cuando la luminosidad se considera alta se ajusta con un parámetro),
simplemente los ignore y siga su curso hasta encontrar la frontera del iris.
Figura 6.1: Ejecución del algoritmo Cruz modificado sobre una imagen
de CASIAv1 con una mancha blanca agregada digitalmente.
Esta modificación no fue suficiente, pues implícitamente se esta asumiendo que las
manchas son homogéneamente blancas, olvidando la dispersión de intensidad que se
produce en todo su entorno. Es decir, una corona de píxeles que rodea todas las manchas
intensas (blancas) en la cual hay intensidades propias del iris, haciendo imposible
discernir entre el borde pupilar exterior que queremos hallar y una de estas coronas.
64
6.PRETRATAMIENTOS
Esta situación provoca irremediablemente un corte prematuro de cada traza del
algoritmo, por ello esta característica es la que más obstaculiza a Cruz y en consecuencia
las técnicas desarrolladas se centran en combatirla.
6.2.2 Las técnicas para combatirlo
A continuación, describiremos los tres tipos de pre-tratamientos digitales que elegimos
para combinar y así combatir efectivamente el problema planteado en el apartado
anterior.
Ecualización controlada (y reducción del espacio de búsqueda):
Intuitivamente hablando, el problema de los “diferentes negros” en pupila podría
combatirse si todas estas intensidades oscuras tendieran a una intensidad oscura más
uniforme. Recíprocamente, el problema con las manchas podría atenuarse si las
intensidades muy claras, tendieran a una aún más clara.
Este principio, nos motivó a desarrollar ecualizaciones que tendieran a “oscurecer los
negros” y “aclarar los blancos”, tratando de mantener los medios tonos sin mayores
cambios.
La idea matemática es muy simple si pensamos en estas ecualizaciones como funciones
que toman un valor de la imagen original, y devuelven el de la imagen “ecualizada”
dentro de los nuevos rangos de intensidad.
Luego de varias pruebas con ecualizaciones conocidas como Gaussiana y Raíz
cuadrada, decidimos confeccionar dos alternativas muy simples basadas en los mismos
principios:
Una basada en la curva de la función seno (la sección con forma de ‘s’), y la otra
inspirada en la forma de una función exponencial.
Veamos las definiciones formales obtenidas durante el desarrollo:
•
Sinusoidal
1ro:
2do:
f ( x) =
•
Acotar entre -π/2 y π/2 (intervalo donde vemos la ‘s’)
Se corre y escala la función seno para tener dom e img = [0, 255]
255    x
1  
−   + 1
 sen π 
2    255 2   
Exponencial
Se parametriza con un coeficiente ‘k’ para ajustar la curva
x
 255

e
− 1

f ( x ) = 255
 (e − 1) 


k
Es fácil entender la idea detrás de cada fórmula con la figura a continuación:
65
6.PRETRATAMIENTOS
Figura 6.2: En la horizontal, tenemos las intensidades de la imagen original, el eje
vertical representa el valor devuelto por la función (ecualización) aplicada.
•
El 0 representa el negro absoluto y el 255 el blanco más intenso.
•
La línea negra representa la ecualización “identidad” (a cada valor de la
original se le asigna el mismo valor en la ecualización).
•
La línea azul, representa la ecualización basada en la función seno, notar como
tiende a oscurecer los valores cercanos a negro (curva por debajo de la
identidad) y aclarar los cercanos al blanco (la curva por arriba de la identidad).
•
La línea verde representa la ecualización basada en la función exponencial.
Oscurece el espectro general de toda la imagen. Generando un alto contraste
entre los valores oscuros, y los valores más blancos, los cuales tiende a no
escurecer demasiado.
66
6.PRETRATAMIENTOS
El efecto de tales funciones sobre las muestras puede verse ejemplificado con claridad
en la siguiente figura.
Figura 6.3: A la izquierda la muestra numerada 1 del dataset CASIA-Iris-Interval.
A la derecha los efectos de aplicar las ecualizaciones: arriba ecualización sinusoidal,
abajo la exponencial.
Notar como ambas ecualizaciones producen; a priori, una reducción en el “ruido”
intrapupilar, (entiéndase por ruido, la gran variación de intensidades que presenta la
muestra original).
Se ve también claramente el efecto de contraste buscado con las funciones. La imagen
en general es más oscura, pero las manchas se ven mucho más contrastantes.
67
6.PRETRATAMIENTOS
Reducción de profundidad (o resolución radiométrica):
Luego de experimentar con las funciones de ecualizado, fue muy sencillo acoplarles la
capacidad de reducir el espectro de colores.
En otras palabras, que la función respete su curva, escalando los valores que devuelve
entre 0 y N - 1, donde N es la cantidad de intensidades que pretendemos percibir en la
imagen ecualizada, y claramente está en el intervalo [0,255] ya que pretendemos reducir
(y no ampliar) el espacio de búsqueda.
Aquí vemos el efecto provocado por la reducción, pasando de una imagen con 255
niveles de gris, a una de 32.
Se pueden apreciar áreas en donde había variaciones de color (imagen original) que
han sido “unificadas” dentro de un único valor (imagen reducida).
(a)
(b)
Figura 6.4: (a) Es la muestra numerada 128 del dataset CASIA-Iris-Lamp, y en (b) se
aprecia la misma luego de una reducción a 32 niveles de gris.
Filtro “Moda” con ventana de lado ‘n’:
Este filtro, recorre todos los píxeles de la imagen, y pinta cada píxel con el color (valor
de intensidad) más presente en un área cuadrada de lado ‘n’ en torno a si mismo.
Así, el término “ventana de lado ‘n’” representa un área de la imagen, cuadrada de
tamaño n x n pixeles.
Aunque este filtro, produce resultados sea cual sea la cantidad de niveles de grises de la
imagen, produce cambios mucho más apreciables cuando esta cantidad es menor, ya que
se vuelve más probable la repetición de colores, sea cual sea la ventana.
En la figura 6.5 se puede observar claramente, como la unificación de colores se
acentuó muchísimo. Es decir, la cantidad de colores es la misma en ambas imágenes,
solo que en la imagen filtrada (muestra a la derecha) se resalta la división en estratos.
Como propiedad positiva, nótese como se ha reducido considerablemente el tamaño de
las manchas presentes en pupila, ya que eran blancos excepcionales rodeados por el
color oscuro uniforme predominante en el área.
68
6.PRETRATAMIENTOS
(a)
(b)
Figura 6.5: (a) Es la muestra ya reducida a 32 colores (misma que la figura 6.4(b)), y
(b) tal imagen luego de aplicarle el filtro Moda con ventana 3.
De nuestro desarrollo: el “Quitamanchas Cruz”
De nuestra autoría e inspirado en el método objeto de todo este trabajo (localización de
pupila y algoritmo Cruz), ideamos un sistema muy similar (precisamente inverso) pero
esta vez para localizar y posteriormente substituir áreas intensamente blancas en la
imagen (manchas reflejo).
El objetivo ahora son los píxeles de mayor intensidad en la imagen (en lugar de los más
oscuros), ahora buscamos con una cota máxima de área a recorrer (en lugar de un
tamaño mínimo como cuando se trataba de encontrar pupila), y el umbral ahora
representa la intensidad minima admisible como “mancha” para que Cruz corte sus
recorridos en cuanto halle un píxel de menor intensidad.
Una vez seleccionado un candidato a “píxel perteneciente a mancha”, ya no
necesitamos ubicar un centro ni un radio como se hacía con la pupila, sino que
utilizamos las longitudes de las trazas de Cruz, para pintar un área rectangular que cubra
la presunta mancha en cuestión. El algoritmo se describe a continuación:
Entradas:
•
•
•
Una imagen I de dimensión NxM.
Un píxel “p” el cual es tratara de determinar si proviene de una mancha en
la pupila.
Dos enteros positivos NT y LT correspondientes al valor de intensidad más
alto tolerado para la pupila y la longitud máxima para las trazas
respectivamente.
Salidas:
•
•
Cuatro enteros positivos correspondientes a las longitudes de trazas
calculadas
Un valor de verdad que indica si las cuatro trazas terminaron sobre píxeles
candidatos a ser parte de la pupila.
69
6.PRETRATAMIENTOS
fun algoritmo_cruz_mancha(I, p, NT, LT)
x, y, NI := p
YN, YS := y
XE, XO := x
> NT ∧ y – YN < LT ∧ YN > 0 → YN
[] I[x, YS] > NT ∧ YN – y < LT ∧ YS < M – 1 → YS
[] I[XE, y] > NT ∧ XE – x < LT ∧ XE < N – 1 → XE
[] I[XO, y] > NT ∧ x – XO < LT ∧ XO > 0 → XO
do I[x, YN]
:= YN – 1
:= YS + 1
:= XE + 1
:= XO – 1
od
mancha_en_pupila := I[x, YN] > NT ∨ I[x, YS] > NT ∨ I[XE, y] > NT ∨ I[XO, y] > NT
TN, TS := y – YN, YS – y
TE, TO := XE – x, x – XO
return TN, TS, TE, TO, mancha_en_pupila
end
Cabe destacar que la búsqueda de puntos candidatos, no es análoga a lo que hacíamos
anteriormente.
Ahora no alcanzaría con repartir puntos uniformemente en la imagen para garantizar
una alta probabilidad de que alguno caiga sobre cada mancha (cosa que realizábamos
para postular candidatos a pupila); ya que las mismas pueden ser varias, y su área;
mucho menor que la de la pupila, causaría que muchas queden sin ser alcanzadas por
estos puntos uniformes.
En lugar de ello, se resolvió dividir la imagen total en ventanas más pequeñas de
tamaño fijo y buscar el píxel de intensidad máxima local de cada una de estas ventanas,
el cual será; en los casos de ventana con mancha, un píxel tendiente a blanco
perteneciente a la misma mancha.
Valores de entrada:
• Una imagen I de dimensión NxM.
• Un entero positivo L que indica la longitud del lado correspondiente a la
ventana usada.
Salida:
• Un arreglo puntos que es la lista de píxeles obtenida.
fun tomar_puntos_mancha(I, L)
vx, vy, cur, puntos := 0, 0, 0, []
while vy
< M do
{
p := max (i, j, NI)
puntos := puntos ◄ p
vx := vx + L
∈ I
/vx
≤ i < vx + L ∧ vy ≤ j < vy + L}
if vx ≥ N →
vy := vy + L
vx := 0
fi
od
return puntos
end
70
6.PRETRATAMIENTOS
Precisamente éstos máximos almacenados en “puntos” son los puntos que ahora
ordenaremos para correr este “algoritmo cruz inverso” que acabamos de describir
informalmente.
Finalmente, el método para quitar las manchas pupilares se detalla a continuación:
Entradas:
• Una imagen I de dimensión NxM.
• Tres enteros positivos MT, NT, LT, correspondientes al valor de intensidad
más chico considerado candidato a mancha, al valor más alto tolerado para ser
candidato a pupila y la longitud del lado de ventana usada para la búsqueda de
píxeles candidatos respectivamente.
Salidas:
• La imagen “filtrada” resultante de aplicar el método.
Variables propias destacadas:
• TN, TS, TE, TO las longitudes de las trazas.
• La variable “candidatos” que contiene la lista de píxeles candidatos.
• “filtrada” que es inicialmente una copia de la imagen de entrada I.
• La variable “mep” (mancha en pupila) que guarda la salida del algoritmo cruz
que indica si laz trazas terminaron sobre píxeles candidatos a ser pupila.
-1
Además usamos la función ordenar_puntos () que ordena una lista de píxeles de
manera decreciente.
fun filtrar_manchas(I, MT, NT, LT)
candidatos := tomar_puntos_mancha(I, 10)
-1
candidatos := ordenar_puntos (candidatos)
filtrada := I
hay_candidatos := (candidatos ≠ [])
(x, y, NI) := take(candidatos)
while MT ≤ NI ≤ 255 ∧ hay_candidatos do
TN, TS, TE, TO, mep := algoritmo_cruz_mancha(I, (x, y, NI), NT, LT)
if mep →
izquierda := (x - TO) + 1
derecha := (x + TE) - 1
abajo := (y + TS) - 1
arriba := (y - TN) + 1
for i := izquierda to derecha do
for j := arriba to abajo do
filtrada[i, j] :=
NT / 2
od
od
fi
hay_candidatos := (candidatos ≠ [])
if hay_candidatos
od
return filtrada
end
→ (x, y, NI) := take(candidatos) fi
71
6.PRETRATAMIENTOS
Un detalle importante, que puede verse en el pseudocódigo, es que el método corre la
función algoritmo_cruz_mancha() sobre la imagen de entrada I, pero usa las salidas
de la función para pintar la copia de I que es la variable de salida “filtrada”. Esto se hace
para evitar que algún píxel candidato que se haya tomado al principio del método sea
pintado producto de la eliminación de una mancha próxima pero a la que no pertenezca.
Si esto sucediera, las trazas del algoritmo Cruz para manchas tendrían longitud cero y
quizás una porción de la mancha a la que pertenecía el píxel candidato sobreviva.
En la siguiente figura, puede apreciarse claramente la acción del algoritmo
Quitamanchas Cruz.
(a)
(b)
Figura 6.6: En (a), la muestra número 40 del dataset CASIA-Iris-Interval elegida por
la cantidad de manchas reflejo para mostrar la acción del “Quitamanchas Cruz” cuyo
resultado es (b).
Notar cómo pueden apreciarse las áreas rectangulares de “cobertura” de manchas, que
aunque son distinguibles, ya no representan el mismo peligro (para el método de
segmentación revisitado en 6.1.1) producto del alto contraste que generaban las manchas
mismas.
72
6.PRETRATAMIENTOS
6.3 Mejoras esperadas
Luego de explorar las técnicas de pretratamiento una por una y conocer sus efectos por
separado, resulta bastante evidente el resultado que se está buscando, tanto como alguna
sucesión natural de pasos para obtenerlo.
Ya hemos expuesto ideas claras como:
• “Un filtro moda, tiende a achicar manchas, dado que las mismas son
“excepciones” dentro de la oscuridad predominante en la pupila”
•
“El filtro moda, produce resultados mucho más apreciables si la imagen ya fue
reducida en sus colores”
•
“Una ecualización adecuada puede atenuar muchísimo el “ruido” de
intensidades en pupila, tendiendo a igualar estos valores”
•
“Una reducción de colores, (reducción de espacio de búsqueda) claramente
pintará del mismo color en la imagen de salida, píxeles con valores cercanos en
la imagen de entrada”
Por otro lado, expuestos anteriormente en el apartado 6.1.2 los inconvenientes que el
método original de segmentación de pupila enfrenta, resulta consecuente la utilización
de algunas de las técnicas exploradas para combatir directamente los aspectos
enumerados en la sección 6.2.1.
Dos ejemplos triviales inmediatos:
•
“Utilicemos el Quitamanchas, para combatir la presencia de manchas”
•
“Utilicemos una ecualización para reducir la heterogeneidad intrapupilar”
Estos principios pueden parecer algo ingenuos, pero básicamente combinándolos con
las ideas recién enumeradas, todo el trabajo detrás de esta sección se enfocó en ordenar
las técnicas para obtener los mejores resultados.
73
6.PRETRATAMIENTOS
Luego de varios días de pruebas supervisadas sobre diversos datasets, obtuvimos los
mejores resultados con el siguiente orden para combinar las técnicas:
1) Utilizar una ecualización y reducir la profundidad (la cantidad de colores, el
espacio de búsqueda):
Esto propicia un efectivo filtro moda, y “discretiza” las manchas, lo cual
ayuda al Quitamanchas.
2) Aplicar Quitamanchas:
Lo hacemos antes de moda, ya que a veces los rectángulos de cobertura del
Quitamanchas dejan píxeles blancos solitarios productos del degradé que
rodea las manchas.
3) Filtro Moda:
Luego del paso 1) debería maximizar su efectividad, y realizar el paso 2)
antes, garantiza su aprovechamiento, ya que; de las exploradas, es la técnica
más costosa computacionalmente.
4) Quitamanchas otra vez:
En algunos casos las manchas con mucho degradé sobrevivieron, pero como
el paso 3) contribuye a reducir ese fenómeno, una segunda corrida del
Quitamanchas pudo eliminar varias.
Finalmente, veamos un ejemplo ilustrativo:
(a)
(b)
Figura 6.7: En (a) vemos la muestra número 7 del dataset CASIA-Iris-Interval.
En (b) el resultado luego de la combinación de pasos recién detallada.
Nótese en el lado izquierdo de la figura 6.7 la presencia de todos los problemas
mencionados, hay una “corona” de reflejos justo en medio de la pupila, y varias réplicas
circundantes que extreman el nivel de ruido intrapupilar en la muestra.
Del lado derecho podemos ver que estos problemas prácticamente han desaparecido,
siendo propicia al menos en apariencia la aplicación del método de segmentación de
pupila, en espera de buenos resultados para segmentar.
74
6.PRETRATAMIENTOS
6.4 Posibles mejoras adicionales
En adición, los pre-tratamientos no sólo combaten los obstáculos que atentaban contra el
método de segmentación sino que también proporcionan ciertas asistencias a la
performance del mismo, tales como:
Reducir el espacio de búsqueda:
Que las intensidades dentro de la pupila quedasen homogéneas (único color)
determina que sólo se busque pupila de entre candidatos con un color
determinado (en lugar de ordenarlos por intensidad). Lo cual reduce
dramáticamente el número de candidatos a revisar por el método.
Quitar el ruido intrapupilar:
Podría propiciar la utilización de “tolerancia 0” para las corridas de Cruz (el
valor de tolerancia para decidir si seguimos en pupila o no), reduciendo la
performance total en el número de comparaciones necesarias.
Discretizar las manchas:
Esto sería en efecto; reducir el degradé entorno a las mismas, propiciando una
optimización de “salto de mancha” para los recorridos de Cruz, los cuales
pueden simplemente ignorar áreas intensamente blancas.
75
6.PRETRATAMIENTOS
6.5 Trabajando con las imágenes pretratadas
Hasta aquí hemos estado analizando los pretratamientos que usaremos para llevar una
imagen proveniente de un dataset cualquiera a una con las características necesarias para
que nuestro método trabaje correctamente. Ahora explicaremos en detalle las
modificaciones realizadas para trabajar con estas imágenes de manera tal de asegurar
una buena efectividad en la segmentación.
6.5.1 El algoritmo Cruz 2
Aunque los pretratamientos resultan ser bastante efectivos para eliminar las manchas
pupilares, en algunos casos pueden sobrevivir algunas de ellas. Para aumentar la
probabilidad de segmentar exitosamente la imagen en estos casos, emplearemos la
versión modificada del algoritmo Cruz que se mencionó en el apartado 6.2.1.
En esta oportunidad, por el efecto del pretratamiento aplicado, la hipótesis de que las
manchas son discretas (sin coronas de píxeles) será asumida.
Solo queda entonces analizar como afectan estas manchas a la ejecución del algoritmo,
para ello solo hay que considerar aquellas que están en la frontera entre la pupila y el
iris. En la figura 6.8 se puede ver el efecto que tienen este tipo manchas. Las trazas
obtenidas por el algoritmo Cruz modificado son más largas de lo que debieran, pues al
atravesar una mancha de la frontera, no se puede saber en que momento se abandona la
pupila. En estos casos el centro que nos devuelve el algoritmo no es confiable.
Figura 6.8: Comparando la ejecución del algoritmo Cruz modificado sobre
una imagen con manchas discretas agregadas digitalmente y la ejecución a
partir de la imagen original..
Es bueno entonces saber si las trazas obtenidas estuvieron influenciadas o no por la
presencia de manchas en los bordes, por lo que ahora la versión modificada del
algoritmo Cruz tendrá una salida extra que nos indica si ocurre dicha situación.
Vemos a continuación como queda el algoritmo con tal modificación:
76
6.PRETRATAMIENTOS
Valores de entrada:
• Una imagen I de tamaño NxM
• Un píxel p = (x , y, NI)
• Un entero T correspondiente a la tolerancia a distancias intensidad.
• Un entero U correspondiente al valor de intensidad más bajo considerado como
mancha.
Las salidas son:
• Un par ordenado C=(xc, yc) correspondiente a las coordenadas del centro de la
segmentación de pupila.
• Cuatro enteros positivos TN, TS, TE y TO correspondientes a las longitudes
de los recorridos en cada punto cardinal.
• Un valor booleano “meb” que indica si se detecto alguna mancha en el borde.
Y las variables propias:
• YN, YS correspondientes a las coordenadas norte y sur de la traza vertical.
• XE, XO correspondientes a las coordenadas este y oeste de la traza horizontal.
fun algoritmo_cruz2(I, p, T, U)
(x, y, NI) := p
YN, YS := y
XE, XO := x
(|I[x, YN]
[] (|I[x, YS]
[] (|I[XE, y]
[] (|I[XO, y]
do
≤
– NI| ≤
– NI| ≤
– NI| ≤
– NI|
≥
T ∨ I[x, YN] ≥
T ∨ I[x, YN] ≥
T ∨ I[x, YN] ≥
T ∨ I[x, YN]
U) ∧ YN > 0
→ YN := YN – 1
< M – 1 → YS := YS + 1
U) ∧ XE < N – 1 → XE := XE + 1
U) ∧ XO > 0 → XO := XO – 1
U) ∧ YS
od
C := (XE + XO, YN + YS) / 2
meb := I[x, YN + 1] ≥
TN, TS := y – YN,
TE, TO := XE – x,
return TN, TS, TE,
end
U ∨ I[x, YS - 1] ≥ U ∨ I[XE - 1, y] ≥ U ∨ I[XO + 1, y] ≥ U
YS – y
x – XO
TO, C, meb
77
6.PRETRATAMIENTOS
6.5.2 Segmentar la pupila
Puesto que ahora utilizaremos la segunda versión del algoritmo Cruz para trabajar, el
método de segmentación de la pupila debe ser retocado. La esencia del método es la
misma que se explico en 5.3.1, solo se agregan recaudos debido a la problemática que
generan las manchas de la frontera pupilar. Ahora al criterio para determinar si un píxel
es candidato o no a pertenecer a la pupila se le agrega la condición de que al ejecutar
Cruz modificado a partir de él las trazas no se vean afectadas por manchas en los bordes.
Es decir, se buscara primeramente un píxel de intensidad oscura en el área central de la
imagen que además genere trazas de Cruz que eviten el contacto con alguna mancha
fronteriza.
Otro aspecto que se modifica es el momento del ajuste del centro. Originalmente,
luego de la primera ejecución de cruz sobre el píxel candidato, para obtener un mejor
centro volvíamos a ejecutar a Cruz a partir del centro obtenido anteriormente (se explica
en detalle en 5.3.1). Esto lo hacíamos para evitar usar un centro calculado a partir de una
región extrema de la pupila, ya que si la misma no es muy circular, dicho centro no es
muy preciso.
Esta vez solo ajustaremos el centro, calculado primeramente, si las trazas generadas
por Cruz modificado a partir del primer centro no detectan manchas en los bordes.
Por último para la elección del radio pupilar, se mantendrá el mismo criterio que antes,
pues las manchas en los bordes (discretas) solo pueden hacer que las trazas se alarguen,
en cuyo caso tomando la más chica nos aseguramos que o bien dicha traza no fue
afectada por una mancha, o bien fue la menos afectada.
En la página siguiente, la descripción formalizada del algoritmo resultante.
78
6.PRETRATAMIENTOS
Las entradas:
• Una imagen I de tamaño NxM
• Un entero T correspondiente a la tolerancia a distancias intensidad para el
algoritmo Cruz modificado.
• Un entero TC de valores entre 0 y 100 que indica la tolerancia circular.
• Un entero RM que contiene el radio mínimo para la pupila
• Un entero U correspondiente al valor de intensidad más bajo considerado como
mancha.
Las salidas son:
• Un valor de verdad E que indica si se encontró o no una presunta pupila.
• Un par ordenado C=(xc, yc) correspondiente a las coordenadas del centro de la
segmentación pupilar hallada.
• Un entero R que contendrá el radio de la segmentación pupilar.
Las variables propias:
• TN, TS correspondientes a las longitudes norte y sur (trazas verticales).
• TE, TO correspondientes a las longitudes este y oeste (trazas horizontales).
• “pixeles” contiene los píxeles obtenidos de la muestra uniforme en la imagen.
• “exito” es el valor de verdad que indica si la segmentación hallada satisface el
criterio de circularidad convenido.
fun hallar_pupila2(I, T, TC, RM, U)
exito := falso
pixeles := tomar_puntos(I, 5)
pixeles := ordenar_puntos(pixeles)
while pixeles ≠ [] ∧ ¬exito do
p := take(pixeles)
if p ∈ {(x, y, NI) ∈ I / x ≥ RM * 3 ∧ RM * 3 ≥ y} →
TN, TS, TE, EO, C, meb := algoritmo_cruz2(I, p, T, U)
traza_media := media {TN, TS, TE, TO}
if traza_media ≥ RM ∧ ¬meb →
TN, TS, TE, TO, c_aux, meb := algoritmo_cruz2(I, C, T, U)
if ¬meb →
C := c_aux
TN, TS, TE, TO, c_aux, meb := algoritmo_cruz2(I, C, T, U)
fi
traza_menor := min {TN, TS, TE, TO}
traza_mayor := max {TN, TS, TE, TO}
R := traza_menor
exito := traza_menor ≥ traza_mayor * (TC / 100)
fi
fi
od
return exito, C, R
end
79
6.PRETRATAMIENTOS
6.5.3 Estructura resultante del sistema con los pretratamientos
Aquí se detalla como se integran las nuevas funciones al sistema biométrico explicado
en la sección 5. En la figura 6.9 se ilustran la relación de dependencia entre los
componentes del sistema. Una flecha entre componentes indica que el de partida utiliza
los servicios del de llegada.
Cabe mencionar que la función hallar_iris() usa la imagen pretratada solo para que
hallar_pupila2() obtenga la segmentación de la pupila (es decir un radio y un centro).
Para la normalización, preprocesamiento y extracción de característica se sigue usando
la imagen original.
comparar_iris
hamming_dist
hallar_iris
codigo_iris
procesar_iris
hallar_pupila2
pretratar_imagen
tomar_puntos
normalizar_iris
algoritmo_cruz2
reducir_profundidad
algoritmo_cruz_mancha
filtrar_manchas
tomar_puntos_mancha
Figura 6.9: Esquema del sistema con los pretratamientos incluidos.
80
7.VALIDACIÓN
VALIDACIÓN
Aquí hemos decidido agrupar y relacionar todo el trabajo y documentación referente a
las pruebas y resultados de los métodos y algoritmos desarrollados durante las secciones
anteriores (más precisamente secciones 5 y 6).
De alguna manera, probar los desarrollos en los que trabajamos y obtener algún tipo de
resultado no solo documenta sino que también dota de substancia el esfuerzo empeñado,
de ahí el nombre de esta sección; ya que en otras palabras: los resultados “validan” una
investigación.
Será una sección tri-partita, pues a pesar de que todo el desarrollo esté encaminado
hacia un mismo fin, las tareas fueron modularizadas en varios pasos, de modo que
decidimos probar los resultados de cada etapa de manera independiente.
“Segmentación”, “Matching” y “Pretratamientos” son los tres experimentos cuyos
resultados expondremos en esta sección.
81
7.VALIDACIÓN
7.1 Segmentación
7.1.1 Criterio de efectividad propuesto
En este apartado vamos a establecer un criterio de éxito/fracaso al momento de
segmentar pupila, el cual será el empleado para definir estadísticos de efectividad más
adelante.
Cabe aclarar que lo que se busca, es formalizar una idea bastante simple, tal como
“tendremos una segmentación exitosa cuando la pupila esté visualmente bien
segmentada”.
Dicho esto, la definición más acertada que encontramos, fue:
“Una segmentación de pupila (definida como una circunferencia) será exitosa cuando
esté contenida dentro de la pupila y al menos dos puntos de la misma; separados por al
menos 90° (en ambas direcciones), se correspondan con la frontera entre pupila e iris.
Salvando casos excepcionales de pupilas poco circulares donde se requiere el criterio
de un supervisor”.
7.1.2 Falsos positivos
En nuestra implementación del método por razones estadísticas y para obtener
resultados de prueba “en masa”, generamos una variable cuyo valor indica si se halló o
no una segmentación para cada muestra en la que se corre el algoritmo.
Un falso positivo será entonces en este caso, un resultado sobre una muestra tal que el
programa guarda un valor positivo en esa variable (por ende, se devuelve un centro y
radio), pero el centro y radio devueltos por el método no se corresponden con una
segmentación exitosa.
82
7.VALIDACIÓN
7.1.3 Pruebas
Como se anunció ya varias veces a lo largo de todo este escrito (sección 4.1 por
ejemplo), el dataset que elegimos para las pruebas del método de segmentación fue
CASIA-IrisV1, por la opción de comparación que teníamos en la bibliografía revisada
antes que ninguna otra razón.
Un ejemplo de la ejecución del algoritmo propuesto esta ilustrado en la figura 7.1. Allí
se puede ver como en la primera ejecución de cruz sobre un candidato de pupila (líneas
de puntos celestes) se obtiene el centro de la pupila a partir de las trazas y en una
segunda iteración (líneas de puntos violetas) se puede calcular el radio.
(a)
(b)
Figura 7.1: Corrida del algoritmo. En (a) la traza celeste corresponde al primer paso, la
traza violeta corresponde al segundo y los dos píxeles de color diferente ubicados al
centro corresponden al píxel inicial de cada traza.
En (b) vemos una expresión gráfica del resultado obtenido.
83
7.VALIDACIÓN
7.1.4 Resultados
Con el criterio de éxito recientemente explicado, obtuvimos una efectividad del 100%
en 4.45 segundos (es decir, unos 5 milisegundos por muestra).
Los pasos promedio del método (cada paso representa la corrida de Cruz sobre un
candidato diferente para cada imagen ) resultaron 1.067.
Aún en casos de pupilas poco circulares, la circunferencia hallada fue la que mejor se
ajustó a las mismas, por lo que se consideraron éxitos desde el punto de vista del
algoritmo. Cabe destacar que incluso en estos casos, el centro calculado resulta ser
preciso. Veamos un ejemplo en la figura 7.2:
Figura 7.2: Resultado de aplicar el algoritmo de segmentación propuesto en una imagen
con pupila “poco circular” (muestra número 51 de Casia-IrisV1 [1]).
7.1.5 Conclusiones
Todas estas pruebas se ejecutaron sobre el Framework, es decir que no se realizó
ningún tipo de optimización ad-hoc para la arquitectura electrónica, ni se implementaron
rutinas a bajo nivel con el fin de mejorar la performance computacional.
Dicho esto, valoramos esta performance muy positivamente, pues:
“analizar, segmentar y recrear las 756 imágenes que componen el dataset le tomó a
nuestro método aproximadamente 4.45 segundos en una computadora personal actual
de baja performance,, mientras que con el mismo equipo y sobre el mismo Framework,
toma aproximadamente 0.56 segundos ejecutar un “filtro de mayoría de ventana 3”
(una tarea trivial en el ámbito de las imágenes digitales) sobre una única muestra del
mismo dataset.”
Esto nos da una idea de la simplicidad computacional de Cruz.
El valor observado en “pasos promedio” denota que en la gran mayoría de los casos el
primer píxel elegido para correr Cruz, ya pertenecía a la pupila.
Los casos que requieren supervisión son aquellos en los que la pupila resulta ser
demasiado elipsoidal, por lo cual cualquier círculo que intente aproximarlas tendrá una
diferencia.
84
7.VALIDACIÓN
7.2 Matching
7.2.1 Criterio de efectividad propuesto
Ya que el banco de datos CASIA-Iris V1[1] provee 4 muestras por individuo para la
etapa de pruebas (y 3 distintas para entrenamiento), hay; en principio, dos criterios para
definir efectividad en la comparación (matching):
“Identificación de individuo”: Tendremos un éxito cada vez que se identifica al
individuo correcto con alguna de sus 4 imágenes, y la efectividad será el número de
éxitos sobre el total de individuos
“Identificación de muestra”: Tendremos un éxito cada vez que una muestra se
corresponde con el individuo correcto, y la efectividad será el número de éxitos sobre el
total de muestras (cuatro veces el total de individuos).
7.2.2 Falsos positivos
En todos los dataset revisados, algún prefijo en el nombre de cada muestra identifica al
voluntario.
Dado que nuestra implementación para probar la etapa de matching contrasta los
nombres de archivo de las muestras comparadas, se sabe entonces con seguridad a priori,
si las muestras pertenecen al mismo individuo.
En otras palabras, sabemos en cada comparación si tenemos un éxito o un fracaso,
hecho que no produce falsos positivos o falsos negativos en este experimento.
7.2.3 Pruebas
Las pruebas se realizaron sobre el dataset CASIA-Iris V1 [1] completo, a fin de
perseguir la comparación (al menos aproximada) con los métodos de moda en la
actualidad, según los datos extraídos de [6].
La siguiente figura ilustra la sucesión conceptual de pasos a los que se somete una
muestra que se desee comparar.
En este caso, el experimento incluía el paso de segmentación probado en el apartado
anterior (apartado 7.1) y luego las rutinas necesarias para la comparación descritas en
detalle en la sección 5; es decir:
1. Obtención de borde interior de iris (Segmentación de pupila, apartado 7.1).
2. Obtención de borde exterior de iris (Mediante resolución espacial del dataset).
3. En base a la segmentación compuesta por 1 y 2, formulación del código de iris
estándar de Daugman [6]. (ver figura 7.3)
4. Extracción de característica con parámetros de resolución 60x15 px.
5. Obtención de “Matriz Diferencial” propuesta en este trabajo, sección 5.
(Ver figura 7.4)
6. Utilización de distancia de Hamming para comparación y elección de muestra
según distancia mínima.
85
7.VALIDACIÓN
Figura 7.3: Representación gráfica de la Propuesta de Daugman[6] para formulación
del código de iris.
Iris normalizado
procesar_iris()
Iris procesado
codigo_iris()
Matriz Diferencial
Figura 7.4: Ilustración de la obtención de “matriz diferencial” (propuesta en este
trabajo, sección 5) a partir de un iris normalizado.
La prueba completa, consistió en aplicar los pasos desde el 1 al 5 detallados arriba para
las 756 imágenes del dataset CASIA-IrisV1, obteniendo de esta manera un “tiempo
promedio por muestra” en milisegundos.
Luego se contrastaron las 324 matrices obtenidas a partir de las muestras “de
entrenamiento” con las 432 matrices obtenidas a partir de las muestras de “testing” (ver
sección 4.1) que componen la totalidad del dataset, utilizando distancia de Hamming.
Finalmente a cada matriz del primer conjunto se le asignó la matriz del segundo
conjunto con la que menor distancia de Hamming tenía, con el fin de armar las parejas
(matching) y evaluar los dos criterios de “efectividad” propuestos más arriba.
86
7.VALIDACIÓN
7.2.4 Resultados
El tiempo en milisegundos descripto en 7.2.3, no representa una comparación
exhaustiva (o cualitativa) ni de complejidad con las propuestas estudiadas y comparadas
en [6], ya que; en efecto, al menos en esa bibliografía no se documenta el entorno de
pruebas en cuanto a hardware ni software utilizado.
Lamentablemente en [6] no se habla de lenguajes de implementación ni de
“frameworks” o “maquinas virtuales” para probar los algoritmos escritos en un código
en particular, pero sí se menciona en qué etapas consiste la medición del tiempo
utilizando cada una de las técnicas revisadas; las cuales son precisamente los 5 primeros
pasos descritos en la sección 7.2.3.
En pocas palabras, no tenemos documentación acerca de cómo se obtuvieron los
tiempos en milisegundos de las técnicas del estado del arte en siguiente cuadro
comparativo, lo que sí sabemos es que es el tiempo que le tomó a cada técnica
(implementada de alguna manera) en algún hardware determinado llevar a cabo los
mismos pasos que a nosotros nos tomo obtener el tiempo en milisegundos (ver sección
7.2.3), así que utilizaremos esa única métrica para tener alguna idea comparativa parcial
sobre la performance de nuestro desarrollo.
(*1): Nombre para representar el método basado en detección de bordes multiescala
usando “wavelet maxima” como paso de pre-procesamiento propuesto en [6].
(*2): Como en la bibliografía tampoco se menciona qué criterio de éxito se utiliza para
medir la efectividad, incluimos los dos resultados que obtuvimos: 95,8% de efectividad
para el criterio “identificación de muestra” (ver apartado 7.2.1), y 100% para el criterio
“identificación de individuo”.
7.2.5 Conclusiones
Los resultados obtenidos fueron muy alentadores, ya que; aunque las comparaciones
con el estado del arte no sean tan exhaustivas como hubiese sido lo ideal, las pruebas
bastaron para poner nuestro desarrollo en tiempos del mismo orden de los que hay
publicados en la bibliografía, y la efectividad en cuanto a “identificación de individuo”
(la cual creemos es muy razonable si pensamos en el campo de acción forense) arrojó
resultados inmejorables. Pudimos identificar a todos (los 108) individuos del dataset por
al menos una de sus 3 capturas biométricas disponibles en el subconjunto de
entrenamiento, y; en la mayoría de los casos, las 3 capturas apuntaron al mismo
individuo (95,8% de efectividad según el criterio “identificación de muestras”).
87
7.VALIDACIÓN
7.3 Pretratamientos
7.3.1 Criterio de efectividad propuesto
En esta ocasión, el éxito no se define per-sé; es decir que el éxito de los
pretratamientos dependerá pura y exclusivamente de qué tan exitoso sea el algoritmo de
segmentación desarrollado al correrlo sobre un conjunto de muestras sometido por el
pretratamiento.
Podríamos definir así entonces el criterio de éxito como sigue:
“Tendremos un éxito cada vez que el algoritmo de segmentación produzca una
segmentación exitosa (definición 7.1.1) sobre una muestra “pretratada”, sólo si el
mismo algoritmo produce un fracaso sobre la muestra sin pretratar”
7.3.2 Falsos positivos, falsos negativos
Dada la definición de éxito, tendremos un falso positivo cada vez que: dada una
muestra sometida a las pruebas, el algoritmo de segmentación produzca una
segmentación exitosa utilizando o no los pretratamientos sobre la muestra.
Por otra parte, un falso negativo estará dado por el concepto intuitivo de “imagen
inadmisible” cuando la
muestra sometida a las pruebas presenta factores
particularmente negativos, para los que ni el método de segmentación ni el
pretratamiento fue diseñado.
Por ejemplo: la presencia de pestañas, maquillaje y/o anteojos sobre el área
corneal en una muestra específica de un dataset.
7.3.3 Pruebas
Elegimos el dataset CASIA-Iris-Interval, (subconjunto de CASIA-IrisV3) para someter
nuestras hipótesis de mejora, dado que de todos los que tuvimos a nuestro alcance
resultó el de mayor reto por sus características de patrones de manchas, ruido en la
imagen, y muchas veces discrepancias en la iluminación de una muestra hacia otra del
mismo conjunto.
Se eligió una muestra de 100 imágenes, representativas de todo el dataset, con el
propósito de poder repetir las pruebas las veces que nos hiciera falta para ajustar los
parámetros, sin perder precisión al momento de devolver un estadístico de efectividad
confiable.
Una ventaja adicional fue la eliminación a priori de falsos positivos, ya que el método
de segmentación tuvo una efectividad del 0% (nula) sobre este conjunto de prueba sin
pretratar.
Finalmente, las ejecuciones, arrojaron dos combinaciones muy prometedoras:
1
2
3
4
Combinación N°1
Combinación N°2
Reducción Exponencial a 10 colores
Reducción Sinusoidal a 7 colores
Quitamanchas corte 0, lado 15px
Filtro Moda ventana de lado 3px
Quitamanchas corte 0, lado 15px
88
7.VALIDACIÓN
7.3.4 Resultados
Antes de revisar la tabla, valen algunas aclaraciones y conceptos clave.
“Efectividad automática”: Con el propósito de ir calibrando los parámetros tuvimos
que repetir las pruebas varias veces, y para agilizar este proceso, automatizamos el
recuento de “segmentación hallada”.
Pues bien, hallada no significa exitosa (según la definición 7.1.1) ya que el algoritmo
cruz puede hallar un centro y radio que no se correspondan con la pupila.
“Pasos promedio”: La cantidad de candidatos evaluados por el método de
segmentación para cada imagen (promediada sobre las 100 muestras).
Efectividad automática
Falsas segmentaciones
Falsos negativos
Efectividad real
Pasos Promedio
Combinación N°1
97%
7
2
92%
4.93
Combinación N°2
93%
5
1
89%
4.45
7.3.5 Conclusiones
Aunque la performance global del método se ve afectada por el significativo costo
computacional del filtro Moda, los resultados arrojados son muy positivos, dado que sin
los pre-tratamientos, el método sobre el mismo conjunto de datos de prueba, tiene una
efectividad real del 0% (nula), y una caída a 144 en los pasos promedio.
Hecho que valida no solo el cumplimiento de la hipótesis de mejora (sección 6.3), sino
también la efectividad de los pre-tratamientos, y la viabilidad de utilizarlos para llevar
las imágenes a estados en los cuales el método puede demostrar resultados.
En otras palabras, un mecanismo válido para acercar el método de segmentación
desarrollado al concepto de polivalencia.
89
8.CONCLUSIONES
CONCLUSIONES
Como su nombre nos sugiere, en esta sección incluiremos lo referido a los objetivos
alcanzados y valoraciones propias sobre el desarrollo completo de nuestro trabajo final.
Al final nuestra visión sobre el trabajo a futuro, tanto en cuanto a nuestros objetivos o
aspiraciones pendientes como al trabajo que proyectamos en el área, ya que cerramos
esta etapa de trabajo final con el pleno convencimiento de que es un área en crecimiento,
rica para investigar y depurar desde todas las disciplinas involucradas.
90
8.CONCLUSIONES
8.1 Valoraciones propias
En cuanto a los objetivos iniciales:
En la sección 2.1, se listaron los objetivos iniciales del pre-proyecto de nuestro trabajo
final, y luego del largo camino recorrido hasta que decidimos redondear lo enmarcado
por este trabajo final de grado, nos resulta muy alentador (salvo por el que habla de la
implementación en el lenguaje R) haber alcanzado satisfactoriamente todos los objetivos
planteados.
Se pudo ingresar a investigar el estado del arte mediante la revisión de bibliografía
muy reciente en el tema y comprender algunas de las problemáticas que aún siguen
vigentes en el área, luego propusimos un algoritmo de nuestra autoría no sólo para
alguno de los procedimientos ya existentes (ver 4to objetivo, sección 2.1) sino que a lo
largo del desarrollo pudimos posicionar una alternativa propia en cada paso de la
biométrica (ver esquema sección 1.1), partiendo desde la segmentación y
experimentando con todos los pasos hasta la etapa de matching.
En cuanto a los resultados:
En la sección anterior (Validación), se redactaron conclusiones locales a cada
resultado, ya que se dividió el desarrollo global en 3 áreas experimentales.
Para detalles remitirse a las secciones 7.1.5, 7.2.5 y 7.3.5 respectivamente.
En resumidas cuentas, los resultados para segmentación fueron inmejorables y
superaron ampliamente nuestras expectativas.
En el área de matching nos adentramos con una propuesta menos ambiciosa y; aunque
relativos, obtuvimos resultados en principio competentes con respecto a sus pares en el
estado del arte; no por algún aspecto de mejora sobre alguno sino por apostar a que una
visión “computacional” del problema a resolver (ver sección 2.2.3) podría bajar
drásticamente la complejidad del método.
En cuanto a los pretratamientos, obtuvimos resultados no menos alentadores (ver
sección 7.3.4), superando con relativo éxito las problemáticas que nos propusimos
combatir luego de revisar los datasets (ver sección 6). Acercando así nuestro algoritmo a
otros datasets fuera de CASIA-IrisV1.
Globales:
Partiendo de una valoración sobre los resultados en retrospectiva con las motivaciones
desarrolladas en la sección 2, se obtuvimos las conclusiones más generales sobre la
totalidad de nuestro trabajo final de grado.
Pudimos comprobar satisfactoriamente que la hipótesis de buscar performance a partir
de la reducción de complejidad era válida:
En líneas generales, verificamos ideas informales como
“Se podía resolver el problema de la segmentación de una manera mucho más simple
y sin modelos matemáticos complejos”
“Los métodos de moda vuelcan la complejidad a la detección exacta de los bordes del
iris, apostemos a la comparación”
91
8.CONCLUSIONES
Se obtuvieron en efecto; resultados competitivos dedicando menos computación a la
segmentación (resignando quizás un poco de exactitud en estos bordes), y proponiendo
una mejora a la comparación “tradicional” por Hamming.
Logramos una drástica reducción de complejidad segmentando el borde interno con
nuestro algoritmo Cruz y valiéndonos de estándares anatómicos (uso de parámetro de
resolución espacial) para obtener el borde exterior, perdiendo así exactitud en la
segmentación lo cual atenuamos con el empleo de la “matriz diferencial” antes del paso
final: el matching.
Estos resultados no sólo fueron valorados como positivos por nosotros, sino que
recibimos un gran estímulo obteniendo el 2° puesto en el concurso de carácter
internacional “XIV Reunión de Trabajo en Procesamiento de la Información y Control”
(más conocido como RPIC 2011) de entre un total de 31 participantes, llevado a cabo en
Oro Verde, provincia de Entre Ríos y posteriormente calificando como disertantes en el
“IV Simposio de Estadística Espacial y Modelamiento de Imágenes” (más conocido
como SEEMI 2011) llevado a cabo en Chile.
92
8.CONCLUSIONES
8.2 Trabajo a futuro
Automatización, inteligencia artificial:
A corto plazo se podría perfeccionar la integración del método descrito dentro de una
superestructura que decida de forma automática cuándo utilizar o no las rutinas de
pretratamiento, de manera tal que sea útil para reconocer la pupila incluso cuando dentro
de la misma se presenten irregularidades en la textura, generalmente producto de reflejos
de la luz utilizada para captar las imágenes y ruido digital intenso; por ejemplo.
De la misma manera, proponer un mecanismo “inteligente” de búsqueda y ajuste de
parámetros para poder adaptar los pretratamientos sin el pleno conocimiento o estudio
supervisado de las dificultades particulares que pueda presentar un dataset dado;
buscando así una polivalencia cada vez más real.
Implementación:
Teniendo en cuenta los objetivos planteados inicialmente (sección 2.1), el trabajo a
futuro más sugerente es el que determina el único objetivo que no abordamos en el
desarrollo de este trabajo: la implementación en R.
Como es de conocimiento en el área, R es un lenguaje muy utilizado en el ámbito de la
estadística, por lo tanto en líneas generales, lo que se busca es promover la integración
interdisciplinaria, (en este caso estadísticos de imágenes y computólogos), para acercar;
cuando menos en primera instancia, las rutinas desarrolladas en este trabajo a un
ambiente de aplicación real.
Integración:
Otro ambicioso objetivo podría ser el de desarrollar una plataforma de pruebas de
técnicas biométricas, es decir un Framework cuyos marcos sean; por ejemplo, las etapas
de la biometría (ver sección 1.1), y los módulos sean las técnicas a probar escritas en
algún lenguaje o código libre de aspectos estrictamente computacionales, a manera de
proveer un mecanismo eficaz de prueba de técnicas, para que los desarrollos teóricos en
el estado del arte no queden sólo “en los papeles” y se puedan someter a prueba y
práctica.
93
9.REFERENCIAS
REFERENCIAS
[1]. Chinese Academy of Sciences, CASIA-IrisV1, http://biometrics.idealtest.org/
[2]. MMU Iris Database, MultiMedia University, http://pesona.mmu.edu.my/~ccteo/
[3]. “phoenix Iris Database” Michal Dobeš and Libor Machala, Iris Database,
http://www.inf.upol.cz/iris/© 2005–2010 Dept. Computer Science Palacky University
[4]. J. Daugman, “How iris recognition works”, IEEE Transactions on Circuits and
Systems for Video Technology, vol. 14, pp. 21–30, 2004
[5]. R. Wildes, “Iris recognition: an emerging biometric technology”, Proceedings of the
IEEE,vol. 85, pp. 1348–1363, 1997.
[6]. A. Bouridane, Imaging for Forensics and Security, Signals and
CommunicationTechnology, DOI 10.1007/978-0-387-09532-5 1.
[7]. Bernd Jähne. (2004) “Practical Handbook on Image Processing for Scientific and
Technical Applications”, 2nd Ed. CRC Press LLC.
[8]. R. Molina “Introducción al Procesamiento y Análisis de Imágenes Digitales”,
Departamento de Ciencias de la Computación e I.A., Universidad de Granada. Curso
impartido hasta 1998.
[9].http://en.wikipedia.org/wiki/JPEG
[10].http://en.wikipedia.org/wiki/Pcx
[11].http://es.wikipedia.org/wiki/Distancia_de_Mahalanobis
[12]. Ojeda, S., Vallejos, R., Bustos, O. (2010)“A new image segmentation algorithm
with applications to image inpainting”. Computational Statistics and Data Analysis”,
volume 54 issue 9, 1 september 2010. Elsevier, 2010.
[13].http://es.wikipedia.org/wiki/Historia_de_la_biometría
[14].http://www.biometria.gov.ar
[15] J. G. Daugman. “High Confidence Visual Recognition of Persons by a Test of
Statistical Independence”. IEEE Trans. on Pattern Analysis and Machine Intelligence,
vol. 15, nº 11. Noviembre 1993.pp. 1148-1161.
[16]. “Iris Recognition” del NSTC, Comitee on Technology, Comitee on Homeland and
National Security, Subcomitee on Biometrics- www.biometrics.gov, 7 Aug 2006.
[17]. L. Ma, T. Tan, et al. “Efficient iris recognition by characterizing key local
variations,” IEEE Transactions on Image Processing, vol. 13, pp. 739–750, 2004.
94
95
96
Descargar