localizaciÓn del iris en imÁgenes en escala de gris …...clase a través de su aplicación a un...

26
LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS USANDO LOS VALORES DE INTENSIDAD Asignatura: Procesamiento de Imágenes Digitales Tutores: - Mª José Jiménez Rodríguez - Belen Medrano Garfia Grupo: TD25 Curso: 2008/09 Alumnos: - Gómez Rodríguez, Francisco Manuel - González Guillén, Isidoro - Portero Espejo, Carlos 1

Upload: others

Post on 29-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS

USANDO LOS VALORES DE INTENSIDAD

Asignatura: Procesamiento de Imágenes DigitalesTutores:

- Mª José Jiménez Rodríguez - Belen Medrano Garfia

Grupo: TD25Curso: 2008/09Alumnos:

- Gómez Rodríguez, Francisco Manuel- González Guillén, Isidoro- Portero Espejo, Carlos

1

Page 2: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

Índice de contenidos

1. Introducción. 3

2. Objetivos y contenido. 4

Objetivos 4

Contenido 4

3. Problema teórico: Descripción del algoritmo. 5

Paso 1: Localización del centro de la pupila. 5

Paso 2: Cálculo del radio de la pupila. 7

Paso 3: Estimación de los gradientes más significativos desde la pupila. 8

Paso 4: Cálculo del radio y del centro del iris. 11

4. Problema práctico: Descripción de la aplicación. 12

Paso 1: Localización del centro de la pupila. 12

Paso 2: Cálculo del radio de la pupila. 13

Paso 3: Estimación de los gradientes más significativos desde la pupila. 13

Paso 4: Cálculo del radio y del centro del iris. 15

5. Experimentación. 16

6. Conclusiones. 21

7. Bibliografía y referencias. 23

8. Plantillas de tiempos. 24

9. ANEXO: Manual de usuario. 26

2

Page 3: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

1. Introducción.

La identificación automática de las personas viene siendo muy importante en los últimos

años. Debido a su gran fiabilidad se vienen desarrollando muchos sistemas de seguridad biométricos. La biométrica es la rama de la ciencia en la que una persona es automáticamente

identificada por su comportamiento (firma, paso, voz, etc) o su físico (huella dactilar, iris, retina, geometría de la mano, etc).

El iris empieza a formarse en el tercer mes de

gestación. Los patrones que forman el iris se completan en el octavo mes, aunque la pigmentación puede cambiar en el

primer año de vida. El patrón complejo del iris contiene muchas características como ligamentos arqueados, surcos,

crestas, anillos, coronas y pecas. El iris humano tiene características únicas y es lo suficiente complejo para ser

usado como firma biométrica y no cambia en la vida de una persona. No sólo los iris de gemelos idénticos son diferentes,

incluso el izquierdo y el derecho de una misma persona son diferentes.

La localización del iris en una imagen sirve como preprocesamiento en un sistema de

identificación por iris. Para cualquier sistema de reconocimiento, la precisión del sistema de reconocimiento del iris es muy dependiente de la precisión de la localización del iris. Cuanto mejor

localizado esté el iris, mejor será el rendimiento del sistema de reconocimiento.

En el siguiente documento se describe la implementación de un algoritmo para la localización del iris en imágenes en escala de grises usando los valores de intensidad. La

aplicación recibe como entrada una imagen en escala de grises de un ojo, tras la aplicación del algoritmo se delimitará el iris en la imagen.

3

Page 4: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

2. Objetivos y contenido.

Objetivos

El trabajo desarrollado tiene principalmente dos objetivos:

• Didáctico.

Se pretende mostrar de una manera gráfica y sencilla las diferentes operaciones

necesarias para la localización del iris en una fotografía. Para ello, la aplicación permite la ejecución paso a paso.

• Funcional.

Queremos demostrar la utilidad de las operaciones y las técnicas que hemos estudiado en

clase a través de su aplicación a un problema real: la localización del iris en una fotografía.

Como veremos más adelante, el objetivo principal de la aplicación de operaciones morfológicas sobre imágenes en escala de grises es localizar el anillo que forma el iris para su

posterior tratamiento.

Contenido En lo referente al contenido del documento, a continuación se presenta el problema

teórico, que ofrece una descripción del proceso seguido para la obtención del resultado final. Seguidamente se muestra el problema práctico, en el que se describe a grandes rasgos la

aplicación desarrollada, explicando las principales funciones implementadas. En la fase de experimentación se exponen una serie de observaciones y resultados obtenidos a lo largo del

proceso de implementación y del proceso de pruebas. Por último, se muestra un apartado de conclusiones y problemas abiertos.

4

Page 5: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

3. Problema teórico: Descripción del algoritmo.

En este apartado se van a mostrar los diferentes pasos que tiene el algoritmo para localizar el iris que hemos implementado en nuestra aplicación.

Paso 1: Localización del centro de la pupila.

Para localizar el centro de la pupila necesitaremos primero conocer la posición de

un punto cualquiera de la misma y después binarizar la imagen para hallar el centroide de la pupila.

• Suavizado

Como la pupila es una porción lisa y oscura en la imagen de un ojo, aplicamos un filtro de media. Para que el tiempo de proceso sea menor, se ignoran 50 pixeles alrededor de los

bordes de la imagen. Aplicamos una máscara de filtro de media de tamaño 3x3 pixeles.

• Localizar punto un interior de la pupila Para localizar un punto en el interior de la pupila seleccionaremos la fila y la

columna con mayor numero de valores grises oscuros. Es decir sumamos todos los valores de grises de una fila, para todas la filas, y seleccionamos la fila que que tenga un

valor menor en la suma anterior. El mismo proceso se realiza para las columnas de la imagen.

Px = {x,mínimo Intensidad(x,y)

columna∑ }

5

Page 6: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

• Binarización con umbral adaptativo.

Una vez que tenemos un punto dentro de la pupila vamos a delimitar una zona cuadrada centrada en este punto. El tamaño de esta zona lo hemos decidido

experimentalmente en 160x160 pixeles. Necesitamos binarizar esta zona para delimitar dónde se encuentra exactamente la pupila. Hacemos una binarización con umbral

adaptativo basado en el valor máximo del histograma en esta región.

Py = {y,mínimo Intensidad(x,y)fila∑ }

6

Page 7: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

• Cálculo del centroide

Tras binarizar la región vamos a calcular el centroide de la pupila. Para ello calculamos la posición media de los puntos negros que forman la pupila en la imagen

binarizada. Esto es para la coordenada X sumamos las coordenadas X de todos los pixeles negros y lo dividimos por el tamaño de la ventana. Y hacemos lo equivalente para

la coordenada Y. Con esto ya tenemos el centro de la pupila.

Paso 2: Cálculo del radio de la pupila.

Para calcular el radio de la pupila lo que hacemos es recorrer la imagen binarizada

partiendo del centro de la pupila. Contamos el número de pixeles negros consecutivos. Este proceso lo hacemos en las cuatro direcciones cartesianas. La media de estos cuatro

valores es el radio de la pupila.

7

Page 8: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

Paso 3: Estimación de los gradientes más significativos desde la pupila.

• Filtro Gaussiano

Para reducir el efecto de los detalles puntiagudos en el iris suavizamos la imagen

aplicando un filtro Gaussiano de tamaño 27x27 y una desviación estándar sigma 3.

• Cálculo de la banda de computación

Trazaremos 2 circunferencias centradas en el centro de la pupila y que servirán de

“fronteras” para limitar la región de procesado de los siguientes cálculos.

8

Page 9: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

Para encontrar el radio de la circunferencia interior, trazamos una linea horizontal

que pasa por el centro de la pupila. A partir del nivel de gris de los puntos de esa línea buscamos la primera cresta.

El radio interior tendrá ese radio, y para el radio exterior le sumamos el diámetro del iris.

• Búsqueda de los puntos con gradientes significativos

Trazamos 5 lineas centradas en el centro de la pupila hacia la izquierda y la

derecha desde la circunferencia interior hasta la exterior con inclinaciones entre horizontal y unos 40º hacia abajo.

Para cada uno de los pixeles contenidos en esos 10 segmentos, calculamos sus gradientes aplicando el operador Sobel.

9

Page 10: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

De todos los puntos anteriores nos quedamos con los 90 que tengan mayor gradiente.

• Filtrado de los puntos de gradiente significativo

A todos los puntos seleccionados les calcularemos la distancia Euclídea hacia el centro de la pupila y seleccionaremos finalmente al mayor grupo de puntos con la misma

distancia. Se añade ademas la restricción de que deben ser al menos 3 puntos y debe haber al menos un punto a cada lado de la pupila, por ello, si el mayor grupo de puntos

equidistantes no cumple dichas restricciones se ira aumentando progresivamente un margen de diferencia entre los puntos hasta que existan suficientes puntos para alcanzar

los requerimientos.

10

Page 11: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

Paso 4: Cálculo del radio y del centro del iris.

Con los cálculos anteriores hemos obtenido varios puntos (al menos 3) pertenecientes a la circunferencia que delimita la frontera entre el iris y la esclera. Así que escogemos 3

puntos de los anteriores y mediante un sistema de 3 ecuaciones calculamos el centro y el radio de una circunferencia que pase por dichos puntos. Al igual que antes, añadimos la

restricción de que uno de los 3 puntos tiene que estar al lado opuesto de la pupila que los otros dos.

Los parámetros del circulo de iris A, B y C son calculados para los puntos seleccionados

usando la ecuación:

El centro del iris es (-A/2, -B/2) y el radio es r = 12A2 + B2 − 4C

x2 + y2 + Ax + By + C = 0

11

Page 12: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

4. Problema práctico: Descripción de la aplicación.

En esta apartado explicaremos cómo hemos implementado el problema teórico, mostrando cuáles han sido las funciones más importantes que hemos desarrollado.

Paso 1: Localización del centro de la pupila.

La función filtroMedia se encarga de aplicar el filtro de media a toda la imagen excepto a una zona de 50 pixeles alrededor de los bordes. Como parámetros recibe la imagen

original y su tamaño en horizontal y vertical.

public static byte[,] filtroMedia(byte[, ] image, int Filas, int Cols)

Esta función se sirve de la función aplicaMascaraMedia que aplica la máscara de media a

un solo pixel. Como parámetros de entrada recibe la imagen original y las coordenadas del pixel al que se desea aplicar el filtro de media.

public static float aplicaMascaraMedia(byte[,] image, int puntoX, int puntoY)

La función puntoPupila devuelve la posición de un punto perteneciente a la pupila, para

ello elige la fila cuyos pixeles sumen menor valor de gris e igual para al columna.

public static int[] puntoPupila(byte[,] image, int Filas, int Cols)

La función binarizaciónUmbralAdaptativo que realiza la binarización con umbral adaptativo en una zona de la imagen. Ésta función recibe la imagen tratada, el tamaño de la misma,

el punto de la pupila calculado anteriormente y el lado de la ventana en la que haremos la binarización.

public static byte[,] binarizacionUmbralAdaptativo(byte[,] image, int filas, int cols, int origenX, int origenY, int lado)

Para calcular el umbral esta función se sirve de la función GetPartialHistogram. Esta función calcula el histograma en una zona delimitada por los parámetros que recibe de

entrada.

public static long[] GetPartialHistogram(byte[,] matriz, int iniFilas, int finFilas, int iniCols, int finCols)

12

Page 13: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

La función centroide devuelve la posición del centroide de los pixeles negros, es decir, la

media de la componente X de dichos pixeles y la media de su componente Y.

public static int[] centroide(byte[,] image, int Filas, int Cols, int origenX, int origenY, int lado)

Paso 2: Cálculo del radio de la pupila.

La función radioCentroide se encarga de calcular la media del radio de la pupila binarizada partiendo del centroide. Recibe como entradas la imagen parcialmente binarizada, el

centroide y el tamaño de un lado de la ventana donde hacemos las operaciones.

public static int radioCentroide(byte[,] image, int puntoX, int puntoY, int lado)

Paso 3: Estimación de los gradientes más significativos desde la pupila.

La función gauss devuelve el resultado de aplicar el filtro gaussiano con sigma 3 a la

imagen que recibe por parametro.

public static byte[,] gauss(byte[,] image, int tam)

La funciones Funtion2D, Kernel2D y KernelDiscret2D son funciones de AForge.NET que

sirven para calcular la mascara de convolución del filtro gaussiano.

public static double Function2D(double x, double y)public static double[,] Kernel2D(int size)public static int[,] KernelDiscret2D(int size)

La función aplicaMascara devuelve el resultado de aplicar una máscara de convolución al

pixel (i, j) de image.

public static byte aplicaMascara(byte[,] image, int i, int j, int[,] mascara)

La función primeraCresta devuelve la media de las cimas de la primera cresta desde el

centro de la pupila a la izquierda y la derecha, recibe el centro de la pupila, su radio y la imagen del ojo

public static int primeraCresta(int x, int y, int radioPupila, byte[,] array)

13

Page 14: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

La función calcula calculaGradientes se encarga realizar varias llamadas a la función Linea

para diferentes segmentos y devolver los resultados en una lista ordenada.

public static SortedList calculaGradientes(byte[,] image, int x, int y, int radioInterior, int radioExterior)

La función Linea calcula todos los pixeles que pasan por una recta que pasa por el centro

de la pupila y un extremo de la imagen, y les calcula el gradiente. Esta función ignora los puntos que se encuentran antes cortar la circunferencia interior y los posteriores a cortar la

circunferencia exterior. Recibe como parámetros el punto inicial, el punto final, el radio de la circunferencia interior y el radio de la circunferencia exterior. Para la realización de esta

función nos hemos basado en código externo (ver referencias).

public static List<PuntoGradiente> Linea(byte[,] imagen, int xa, int ya, int xb, int yb, int radioInterior, int radioExterior)

Para el cálculo del gradiente en un punto, hacemos una aproximación al mismo mediante el operador Sobel. Esto lo realizamos con la función apply de la clase Sobel sacada de

internet (ver Bibliografía) que calcula la aproximación al gradiente con el operador Sobel en el pixel (i, j).

public static double apply(byte[,] image, int i, int j)

La función euclidea recibe una lista de puntos y devuelve la distancia de esos puntos al punto (cx, cy)

public static ArrayList euclidea(List<PuntoGradiente> l, int cx, int cy)

La función gradientesSignificativos devuelve los 90 primeros elementos de la lista que recibe por parámetro.

public static List<PuntoGradiente> gradientesSignificativos(SortedList s)

La función mismaMahalanobis devuelve el mayor grupo de puntos con la misma distancia euclidea al centro, su nombre confuso se debe a que inicialmente usaba la distancia de

mahalanobis en lugar de la distancia euclidea.

public static List<PuntoGradiente> mismaMahalanobis(List<PuntoGradiente> l, int cx, int cy)

14

Page 15: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

Paso 4: Cálculo del radio y del centro del iris.

Una vez que tenemos el conjunto de puntos que están a una misma distancia del centro de

la pupila, tenemos que calcular el radio exterior y el centro del iris. Para ello usamos la función construyeIris.

public static double[] contruyeIris(List<PuntoGradiente> puntos, int centrox)

Esta función resuelve un sistema de ecuaciones lineales con las ecuaciones de la

circunferencia para obtener el centro y el radio exterior del iris. La función que resuelve el sistema de ecuaciones es GaussianElimination, esta función usa el método de Gauss-Jordan para resolver el sistema lineal. Este código no lo hemos desarrollado nosotros (ver referencias).

public static bool GaussianElimination(double[,] a, double[] r)

15

Page 16: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

5. Experimentación.

La experimentación ha sido clave para poder determinar exactamente aquellos puntos del algoritmo que el documento no explicaba correctamente o que simplemente no se comentaban en

él. Gracias a ella hemos podido adaptar ciertos parámetros del algoritmo para mejorar su eficiencia y su fiabilidad a la hora de localizar de una forma adecuada el iris. Concretamente los

parámetros ajustados mediante la experimentación han sido:

• Tamaño de la región cuadrada alrededor de la pupila: Una vez localizado un punto interior de la pupila debíamos buscar un cuadrado suficientemente grande para que contuviera

completamente la pupila, comprobamos que era suficiente con 160x160 pixeles.

• Umbral de binarización: El articulo de referencia explicaba que para binarizar la imagen se

debía escoger un umbral basado en el máximo valor en el histograma. Observamos que si le sumábamos 6 a ese nivel de gris, el posteriormente el radio de la pupila se ajustaba más a

su valor real, debido a que así en la binarización también aparecían negros los pixeles cercanos al borde de la pupila donde empezaban a aclararse, probablemente debido al

suavizado del filtro de la media.

• Direcciones para buscar el radio de la pupila: Cuando buscamos el radio de la pupila, decidimos por simplicidad solo contar el número de ceros en horizontal y vertical, se podría

comprobar si merece la pena usar también direcciones oblicuas.

• Filtro gaussiano: Al aplicar el filtro gaussiano nos encontrábamos el problema común al aplicar mascaras de convolución en los bordes de una imagen, este problema se agravaba

debido a que se trataba de una máscara de convolución muy grande. Finalmente optamos por aplicar máscaras de convolución más pequeñas (aunque con la misma sigma) conforme

nos acercamos a los bordes, lo cual nos dio muy buen resultado. Otro problema que relacionado con el tamaño de la máscara es que demora unos segundos, lo cual quizás

pudiera solucionarse consultando implementaciones más eficientes.

• Primera cresta: Este calculo ha sido reajustado multitud de veces durante la implementación ya que un buen radio ajustado al borde de la esclera permite además de ahorrar tiempo

computacional evitar encontrar gradientes significativos en el interior del iris. Finalmente se opto por empezar a buscar la cima de la cresta partir de la distancia del radio de la pupila

más cuarenta pixeles, y considerar que la cima aparece cuando el valor de intensidad

16

Page 17: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

decrece en una unidad. Sería muy interesante seguir probando si se puede incrementar el

valor de 40 pixeles sin que por ello haya peligro de salirnos del iris.

• Radio de la circunferencia de computación exterior: Probablemente este ha sido uno de los valores que peor hemos ajustado ya que actualmente aparecen muchos ojos en los en los

que el radio es tan grande que prácticamente no se tiene en cuenta. Según el articulo de referencia debía estar basado en el radio de la pupila, por ello lo ajustamos a la suma del

circulo interior más 7/4 del radio de la pupila, pero se podrían buscar otras formulas.

• Inclinación de las rectas en las que calculamos los gradientes: La primera mejora sobre las especificaciones del articulo fue lanzar las rectas solo a unos 40º por debajo del eje

horizontal en vez de usar toda la región inferior la justificación es que en la mayoría de los ojos por debajo de esa inclinación los párpados tapaban el borde del iris. Concretamente la

línea más baja llega a 6/7 de la distancia que hay entre el ojo y el margen inferior de la imagen.

• Número de rectas en las calculamos los gradientes: Comprobamos que aunque pueda

resultar contradictorio, si lanzamos muchas rectas, obtenemos peores resultados que si solo lanzamos unas pocas. Esto se debe a que cuando en los siguientes pasos obtenemos los

puntos con la misma distancia euclídea al centro, si había muchas rectas, obtendremos unos puntos demasiado cercanos, lo que hace que al hacer pasar la circunferencia por ellos

tengamos resultados inexactos, en especial en la posición del centro de la circunferencia. Viendo los resultados obtenidos para 10 rectas, parece que incluso se pudieran reducir aún

más este numero.

• Número de puntos con gradiente significativo: Hemos considerado que 90 puntos es un número que funciona bastante bien, pero se podría probar con un menor numero de puntos,

hay que tener en cuenta que este número puede estar relacionado con lo ajustado que tengamos la banda de computación y el numero de segmentos usados para calcular los

gradientes.

• Distancia de Mahalanobis: Se ha usado la distancia euclídea en lugar de la distancia de Mahalanobis, se profundizara un poco más sobre este cambio en las conclusiones.

• Puntos seleccionados para trazar el circulo de iris: Como ya se dijo en el planteamiento

teórico, se ha añadido la restricción de que se deben escoger puntos a ambos lados de la pupila, para que posteriormente el circulo del iris se ajuste mejor al real.

17

Page 18: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

Se ha realizado un muestreo para las 20 primeras galerías (151 fotos) de la base de datos

del articulo de referencia, obteniendo los siguientes resultados:

El algoritmo presenta un 90% de eficacia, el 10% erróneo se debe aparentemente a 3 motivos:

• En un 25% de los casos se debe a que las pestañas son muy gruesas y oscuras, esto

provoca que cuando se busca un punto interior de la pupila a partir del nivel de intensidad, la intensidad de las pestañas descentra tanto el punto que el rectángulo de binarización no

contiene completamente a la pupila. Al ser de los primeros pasos, esto afecta al resto del algoritmo. Aparentemente no hay una solución directa para estos casos.

18

Page 19: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

• Un 31% es debido a que el centro de la pupila esta considerablemente desplazado respecto

al centro del iris, esto invalida el paso de filtrado por distancia euclidea al centro. Este problema probablemente podría arreglarse con una correcta implementación de la distancia

de Mahalanobis.

• Finalmente en casi la mitad (44%) de los casos erróneos, los puntos de gradiente significativo no están bien colocados por lo que invalida los pasos posteriores del calculo del

circulo del iris. Estos casos suelen coincidir con malas fotografías, con mala iluminación o párpados demasiado cerrados, la solución sería exigir un mínimo de calidad en las fotos,

aunque también se podría intentar reajustar los parámetros del calculo de gradiente significativo eligiendo más puntos o trazando más rectas.

19

Page 20: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

En resumen, consideramos que el algoritmo tiene un rango de acierto muy alto y más aún si se tiene en cuenta que hay una gran proporción de fotos en las que la iluminación no es

adecuada o el iris aparece parcialmente oculto bajo los párpados.

20

Page 21: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

6. Conclusiones.

El algoritmo implementado cumple sus expectativas, es decir, la localización del iris en imágenes en escala de grises. La fotografía a procesar ha de tener unas características

adecuadas: una foto de un único ojo en escala de grises con resolución de 320x280 pixeles y una iluminación adecuada.

La efectividad del algoritmo se enfrenta a dos pasos críticos, primero, localizar un punto

interior de la pupila, este paso da problemas en algunas ocasiones debido a que unas pestañas gruesas y oscuras pueden desviar tanto el punto que haga posteriormente el recuadro no

contenga completamente la pupila, actualmente no parece que haya una solución a este problema, además al ser de los primeros pasos esto invalida el resto del proceso. Segundo,

filtrado de los puntos de máximo gradiente y misma distancia Euclídea para trazar el circulo del iris, en algunas ocasiones estos puntos no se eligen bien, se podría seguir experimentando

modificando estos parámetros para hacer conseguir que funcionara en las pocas fotos que no funcionan. Otra forma de mejorar la elección de estos puntos sería ajustando aún más la banda

de computación (más detalles en experimentación).

Es necesario tener bastantes conocimientos de procesamiento de imagen, ya que para el algoritmo se usan filtros y transformaciones que se dan por sabidas.

Encontramos que la mayoría de los pasos se realizan de forma casi instantánea, el único paso que demora unos segundos es el filtro Gaussiano, luego es ahí donde se debería incidir si se

quiere mejorar el tiempo de respuesta.

El gran cambio que hemos realizado sobre el planteamiento teórico original es el usar la distancia Euclídea en lugar de la distancia de Mahalanobis, debido a que la distancia de

Mahalanobis daba peores resultados. En concreto, el radio del circulo final del iris parecía correcto pero la mayoría de las veces el centro del iris aparecía muy desplazado. No estamos seguros si

esto es debido a un error en nuestra implementación, así que una posibilidad sería buscar librerías externas probadas y comparar sus resultados con los nuestros, por ello, en el código

fuente hemos dejado nuestra implementación de la matriz de covarianza y la función de Mahalanobis.

Si se quisiera ampliar la funcionalidad del programa, en el articulo de referencia se

explicaba como tratar imágenes en las que en la pupila aparecían 8 círculos blancos en el interior del iris, además se explicaba como eliminar los párpados superpuestos al iris, aunque este paso

era el que peores resultados daba. También se podría aumentar la compatibilidad permitiendo la

21

Page 22: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

entrada de imágenes a diferentes escalas, formatos de imagen y color. Estos pasos no han sido

realizados para reducir la carga de trabajo.

22

Page 23: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

7. Bibliografía y referencias.

• “Programación en Visual Studio .NET bajo C# de Aplicaciones Gráficas”: Proyecto de Ricardo Villa Brieva de la Universidad de Málaga. (base del código de la función Linea).

• http://www.wikipedia.org

• “Eliminación de Gauss-Jordan en C#”: http://vexpert.mvps.org/articles/GJE.htm. Código de la

técnica Eliminación de Gauss-Jordan para resolver sistemas de ecuaciones lineales de reales y complejos. Por Harvey Triana.

• Matriz de varianzas/covarianzas. http://www.psico.uniovi.es/Dpto_Psicologia/metodos/tutor.6/

matcov.html

• “Localization of iris in gray scale images using intensity gradient” por A. Basit, M.Y. Javed (Artículo de referencia). Optics and Lasers in Engineering, Volume 45, Issue 12, December

2007, Pages 1107-1114. http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6V4G-4PGPKX6-1&_user=10&_coverDate=12%2F31%2F2007&_rdoc=

1&_fmt=&_orig=search&_sort=d&view=c&_acct=C000050221&_version=1&_urlVersion=0&_userid=10&md5=2cd9a0b0d761c6d5640f341ac2752420

• Cálculo del gradiente Sobel. .NET GDI+ Graphics Edge Detection via Sobel Filter by

Shailendra Sason. http://www.eggheadcafe.com/tutorials/aspnet/c833c86a-677a-4ff3-b820-43126cbeb1a7/net-gdi-graphics-edge-d.aspx

• Cálculo de la matriz inversa para la distancia de Mahalanobis. Sinapse Neural Networking

Tool by Cesar Roberto de Souza. http://sinapse.googlecode.com

• Cálculo de la máscara de convolución para el filtro Gaussiano. AForge .NET library created by Andrew Kirillov. http://code.google.com/p/aforge/

• Entorno gráfico de la aplicación. “DETECCIÓN DE OJOS BASADA EN MORFOLOGÍA EN ESCALA DE GRISES” Procesamiento de Imágenes Digitales. 2006/2007. Santiago Miguel

Aranda Rojas, Miguel Ángel Luna Cantador, José Antonio Mora

• "Visual C#" 2ª Edición, Fco. Javier Ceballos, Editorial Ra-Ma..

23

Page 24: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

8. Plantillas de tiempos.

Fecha Inicio Fin Tiempo de interrupción Tiempo Miembros Actividad

21/11/08 17:30 19:30 0 2 horasFrancisco M. G. R.,

Isidoro G. G., Carlos P. E.

Comprensión del articulo de referencia

28/11/08 17:30 19:30 0 2 horasFrancisco M. G. R.,

Isidoro G. G., Carlos P. E.

Comprensión del articulo de referencia

12/12/08 17:30 19:30 0 2 horasFrancisco M. G. R.,

Isidoro G. G., Carlos P. E.

Comprensión del articulo de referencia

15/12/08 8:00 14:00 0 6 horas Carlos P. E. Interfaz gráfica

16/12/08 8:00 14:00 0 6 horas Carlos P. E. Interfaz gráfica

17/12/08 8:00 14:00 0 6 horas Carlos P. E. Interfaz gráfica

18/12/08 8:00 14:00 0 6 horas Carlos P. E. Interfaz gráfica

09/01/08 17:30 19:30 0 2 horasFrancisco M. G. R.,

Isidoro G. G., Carlos P. E.

Comprensión del articulo de referencia

10/01/08 10:00 21:00 1 hora 10 horasFrancisco M. G. R.,

Isidoro G. G., Carlos P. E.

Implementación

11/01/08 10:00 21:00 1 hora 10 horasFrancisco M. G. R.,

Isidoro G. G., Carlos P. E.

Implementación

12/01/08 10:00 14:00 0 4 horas Isidoro G. G., Carlos P. E. Implementación

12/01/08 15:00 21:00 0 6 horasFrancisco M. G. R.,

Isidoro G. G., Carlos P. E.

Implementación

13/01/08 10:00 14:00 0 4 horas Isidoro G. G., Carlos P. E. Implementación

13/01/08 15:00 21:00 0 6 horasFrancisco M. G. R.,

Isidoro G. G., Carlos P. E.

Implementación

24

Page 25: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

14/01/08 10:00 14:00 0 4 horas Isidoro G. G., Carlos P. E. Implementación

15/01/08 10:00 14:00 0 4 horas Isidoro G. G., Carlos P. E. Implementación

15/01/08 15:00 21:00 0 6 horas Francisco M. G. R., Isidoro G. G. Implementación

16/01/08 10:00 17:00 1 hora 6 horasFrancisco M. G. R.,

Isidoro G. G., Carlos P. E.

Preparación de la presentación

17/01/08 11:00 13:00 0 2 horas Francisco M. G. R., Isidoro G. G. Documentación

17/01/08 11:00 12:00 0 1 hora Carlos P. E. Documentación

18/01/08 11:00 22:00 1 hora 10 horas Isidoro G. G. Documentación

18/01/08 11:00 22:00 1 hora 10 horas Francisco M. G. R. Documentación

25

Page 26: LOCALIZACIÓN DEL IRIS EN IMÁGENES EN ESCALA DE GRIS …...clase a través de su aplicación a un problema real: la localización del iris en una fotografía. Como veremos más adelante,

9. ANEXO: Manual de usuario.

26