Huellas de niños
Como se mencionó, el objetivo del trabajo consiste en
analizar si mediante diferentes tipos de interpolación es posible llevar las
huellas de niños a un tamaño parecido al de un adulto para así poder utilizar
las técnicas de reconocimiento desarrolladas para estos.
En particular en determinar si es posible obtener minucias
en la imagen interpolada siendo que en la imagen original no se obtienen o se
obtienen muy pocas.
Las minucias de una huella dactilar son puntos
característicos de las mismas. Corresponden a las terminaciones y a las
bifurcaciones de las líneas.
La base de huellas de niños utilizada fue brindada por la DNIC
y está compuesta por más de una toma de huellas por persona, con la restricción
de que la primera toma sea de la persona con menos de 30 días de vida. Se
tienen las imágenes sin comprimir, en formato .bmp y en formato comprimido .wsq,
en este trabajo se utilizan las imágenes sin comprimir. Además de las huellas
se tienen las minucias de cada una, en caso de existir, extraídas por un
algoritmo utilizado por la DNIC.
Se le aplicó a toda la base los algoritmos de IPOL: Image interpolation with Countour Stencils y
Roussos-Maragos Tensor-Driven Diffusion for Image Interpolation. Además también
se le aplicó el algoritmo SAI, y la función imresize de matlab con interpolación bicúbica.
Luego de aplicar dichos algoritmos se mandaron las imágenes
a la DNIC para la extracción de minucias de las imágenes interpoladas.
Luego para comparar las minucias de las huellas se utilizó
un matcher de libre uso llamado Minutia
Cylinder-Code SDK (MCC) desarrollado por italianos.
El matcher MCC funciona dándole como argumentos dos archivos
de minucias y da como salida un score, este score es -1 si el archivo .ist no
contiene minucias y en caso de que haya devuelve un score entre 0 y 1, donde 0
significa que no hay correspondencia entre minucias y 1 se corresponde a que la
coincidencia es total.
También hay una aplicación junto con el matcher MCC que
permite observar las minucias sobre las huellas, a modo de ejemplo se muestra
en la siguiente imagen una huella que se corresponde con una niña de 22 días de
edad con las minucias marcadas con puntos azules.
En la siguiente imagen se muestra otra huella en de otra
persona, también con 22 días de edad en la que no fue posible encontrar
minucias.
Luego de aplicar algoritmos de interpolación, a esa misma
huella se le pueden encontrar minucias, por ejemplo, con la interpolación de
Contour Stencils se encontraron las minucias mostradas en la siguiente figura.
Por lo que como primera medida de desempeño de los algoritmos
de interpolación se buscaron cuantas huellas contenían minucias antes y luego
de aplicar los algoritmos.
Para este experimento se tomaron las huellas correspondientes a los dedos pulgares. Con un total de 97 huellas.
Para determinar cuantas huellas contenían minucias se ejecutó el matcher MCC de forma de matchear las huellas consigo mismas, de esta forma, si no se tienen minucias el MCC devuelve -1.
Esto se hizo para todos los dedos pulgar de las primeras tomas y para el pulgar de las últimas tomas de personas. De forma de tener pares de huellas para luego poder realizar otras medidas de calidad detalladas más adelante.
Intuitivamente se deduce que si una huella en la primera toma tiene minucias, en una toma con la persona mayor también debería tener minucias, pero esto no es así debido a que también influye la calidad de la toma, es decir, puede ser un adulto, pero si la huella se toma de forma inadecuada obteniendo por ejemplo un manchón en casos de huellas tomadas con tinta, no se obtienen minucias.
Al realizar este experimento se obtuvo que, para las huellas originales, sin ningún tipo de interpolación la cantidad de huellas pares con minucias fueron solamente 5, mientras que para las imágenes interpoladas con Roussos-Maragos se obtuvieron 61, para Contour Stencils 65, para SAI 75 y para bicúbica 80.
En principio de esto se deduce que al interpolar las imágenes se puede extraer información que antes era imposible con el extractor de minucias utilizado.
Por otra parte como primer resultado se encontraron más minucias con la interpolación bicúbica, esto no asegura que sea el mejor método dado que las minucias extraídas luego de interpolar pueden ser falsas, es decir, que por el ruido introducido en las imágenes al interpolar el extractor puede interpretar que hay una minucia donde en verdad no la hay. Un claro ejemplo de esto se muestra en la siguiente figura. Donde las minucias quedan marcadas fuera de la huella.
Para determinar si las minucias son utilizables se recurre a las medidas mas comunes de performance utilizadas en biometría: False Acceptance Rate (FAR) y False Rejection Rate (FRR).
FAR es la tasa de falsos positivos, es decir que el sistema determina que una persona es alguien que no es.
FRR es la tasa de falsos negativos, es decir que el sistema determina que una persona no es alguien que es.
Se calculan como:
donde qi y qj se corresponden con personas, d(qi,qj) se corresponde con el score obtenido al hacer el matching y N la cantidad de huellas en la base utilizada.
Para generar los scores genuinos se matchea la primer toma del pulgar con la última toma del mismo. Para generar los scores impostores se matchea la primer toma del pulgar contra la última toma del pulgar de los demás.
Se calcularon estas tasas para un umbral variando entre 0 y 1, que son los valores posibles de scores y se graficó la tasa FRR en función de la tasa FAR, obteniendo la siguiente gráfica:

Observando estas gráficas, la mejor interpolación resulta ser la del algoritmo SAI (curva rosada) dado que es en la que se presentan menores FAR y FRR.
La interpolación bicúbica que fue la que encontró más minucias resulta la peor de acuerdo a lo que muestra gráfica FRR en función de FAR (curva negra).
Al observar los resultados obtenidos se puede verificar que las minucias extraídas luego de realizar las interpolaciones son de utilidad.
Huellas de adultos
Con el fin de comprobar el desempeño de los algoritmos de interpolación, además de utilizar huellas de niños, se utilizaron huellas de una base de datos de huellas de adultos (Feret).
En primera instancia se seleccionaron 10 imágenes al azar de la base, para luego bajar su resolución con el fin de que el tamaño de la huella reducida se parezca a la de un niño. Seguido de esto se le aplicaron los diferentes métodos de interpolación para comprar las imágenes interpoladas con las originales.
Basados en el reporte "Biometrics for Child Vaccination and Welfare" de Anil K. Jain, Sunpreet y otros autores, donde se agrandan huellas de niños utilizando la función imresize de Matlab con un factor de 1.8 para que el tamaño se parezca al de un adulto, se bajó la resolución de las huellas de adultos con un factor de ½ para que el tamaño sea similar a la de un niño.
Para bajar la resolución de las imágenes se utilizaron distintas técnicas para poder visualizar también los distintos efectos obtenidos.
Como primer método de reducción de resolución se utilizó la función imresize de Matlab que utiliza una interpolación bicúbica. Como segundo método utilizando como referencia los artículos "Nonlinear Image Upsampling Method Based on Radial Basis Function Interpolation" de Yeon Ju Lee y Jungho Yoon y "Image zooming method using edge-directed moving least squares interpolation based on exponential polynomials" de Yeon Ju Lee y Jungho Yoon, se filtraron las imágenes originales usando un filtro de Lagrange de coeficientes ({-1, 0, 9, 16, 9, 0 , -1}/32) y luego se submuestrearon con un factor de 2. Como tercer método, se submuestrearon las imágenes por un factor de 2 sin ningún tipo de filtro.
Calidad de las imágenes obtenidas
Para determinar la calidad de las imágenes obtenidas se calcularon los valores de PSNR, MSE, FSIM y SSIM.
El Mean Square Error (MSE) es el error cuadrático medio entre dos imágenes y se calcula como:
Siendo I y K las imágenes de tamaño MxN.
La relación señal a ruido de pico (Peak Signal-to-Noise Ratio (PSNR)), es el cociente entre el máximo valor de la señal y el valor de MSE, generalmente se expresa en decibeles mediante la escala logarítmica debido al gran rango dinámico que puede tener la señal. Se calcula como:
Siendo MAXi el máximo valor que puede tomar un píxel en la imagen.
A pesar de que ambos son de los medidores más comunes en el tratamiento de señales, visualmente puede no aportar mucho en ciertos casos, por lo que también se estudia el SSIM y el FSIM. El índice de Structural similarity (SSIM) es un método para predecir la calidad de percepción humana en imágenes. Considera la degradación de la imagen como cambios percibidos en la información estrucutural, e incorpora fenomenos perceptuales como lo son el enmascarado lumínico y el enmascarado por contraste. La información estructural provinene de la fuerte relación entre pixeles cercanos, característica que contiene información importante acerca de la estructura de los objetos que conforman la imagen. El enmascarado lumínico es el fenómeno de percibir menos distorsión en zonas donde la imagen es muy brillante, mientras que el enmascarado por contraste donde se percibe menos distorsión en aquellas regiones donde hay gran actividad o presencia de texturas en la imagen.
El indice de Feature Similarity (FSIM), se basa en el hecho de que el sistema visual humano (HVS) comprende principalmente una imagen de acuerdo con sus características de bajo nivel. Específicamente, la congruencia de fase (PC), que es una medida adimensional de la importancia de una estructura local, se utiliza como la función primaria en FSIM. Teniendo en cuenta que la PC se contrasta invariante mientras que la información de contraste afecta a la percepción de la calidad de la imagen HVS ', la magnitud del gradiente de la imagen (GM) se emplea como la característica secundaria en FSIM. PC y GM desempeñan papeles complementarios en la caracterización de la calidad local de la imagen. Después de obtener el mapa local de calidad, se utiliza PC de nuevo como una función de ponderación para obtener una única puntuación de calidad.
En el cuadro 1 se tienen las diferentes medidas de calidad para los algoritmos de interpolación cuando se baja la resolución utilizando la función imresize, con interpolación bicúbica, el método SAI, utilizando el ejecutable disponible en la web de la autora, una implementación de New Edge-Directed Interpolation disponible en la web, una implementación de An Edge-Guided Image Interpolation Algorothm via Directional Filtering and Data Fusion, de IPOL: Image interpolation with Countour Stencils y Roussos-Maragos Tensor-Driven Diffusion for Image Interpolation.
En el cuadro 2 para las imágenes de baja resolución obtenidas filtrando con Lagrange y submuestreando, y en el cuadro 3 para las imágenes solamente submuestreadas.

Cuadro 1 Resolución reducida con imresize

Cuadro 2 Resolución reducida con filtro de Lagrange

Cuadro 3 Resolución
reducida submuestreando sin filtrar
En las siguientes figuras se muestra la misma información de las tablas en formato de gráfica para una mejor visualización de los resultados.




Al bajar la resolución con la función de imresize el mejor desempeño al interpolar lo tuvo el algoritmo de Countor-Stencils. Dado que presenta los mayores valores de PSNR y SSIM y los menores de MSE. Seguido del algoritmo bicubico, SAI, data fusion, nedi y por último el algoritmo de Roussos-Margos.
Al bajar la resolución con el filtro de lagrange el mejor desempeño al interpolar lo tuvo el algoritmo SAI. Seguido del algoritmo de data fusion, nedi, Roussos-Margos, bicubica y por último el algoritmo Countour Stencils. Esto se evidencia sobre todo en la medida de calidad del MSE en donde los valores para el SAI son mucho menores que para los demás.
Estos resultados no se evidencian visualmente, ya que al observar las huellas mostradas en las siguientes imágenes, los resultados obtenidos con los algoritmos de IPOL tienen apariencia más nítida, para ver cuál resulta mejor es necesario considerar medidas de calidad específicas para las huellas dactilares, ya que lo que importa en este caso es el poder identificar a la persona y no lo que resulte mejor en cuanto a la imagen original.

Comparación de algoritmos para resolución disminuida con imresize. De izquierda a derecha en la parte superior, imagen baja resolución, interpolación con Countour Stencils, interpolación con Roussos-Margos, interpolación con SAI, en la parte inferior, interpolacion con nedi, interpolacion con data fusion, huella original.

Comparación de algoritmos para resolución disminuida con filtro de lagrange. De izquierda a derecha en la parte superior, imagen baja resolución, interpolación con Countour Stencils, interpolación con Roussos-Margos, interpolación con SAI, en la parte inferior, interpolacion con nedi, interpolacion con data fusion, huella original.

Comparación de algoritmos para resolución disminuida sin filtrar. De izquierda a derecha en la parte superior, imagen baja resolución, interpolación con Countour Stencils, interpolación con Roussos-Margos, interpolación con SAI, en la parte inferior, interpolacion con nedi, interpolacion con data fusion, huella original.
Diferencias con el ejecutable
A pesar de que a primera vista el
resultado del SAI implementado (de ahora en más SAI*), presenta ciertos artefactos respecto al ejecutable SAI
de los desarrolladores del método. Estas diferencias se presentan principalmente
en los bordes de los objetos de la imagen.
Se intentó establecer comunicación vía e-mail con los creadores del método, para consultar cuáles podrían ser las posibles causas pero no se obtuvo respuesta. Se realizaron pruebas con imágenes artificiales, con el objetivo de encontrar irregularidades en alguna dirección, pero no se encontraron casos sospechosos.
Un ejemplo de las diferencias entre ambos métodos es la siguiente imagen, donde se aplican ambos medios a un recorte de la imagen lena.

1. Original 2.Sai implementado 3. Sai ejecutable 4. Diferencia
Como puede observarse, en la figura 4 se muestra la diferencia entre el método implementado y el ejecutable, con el colormap heat de Matlab. La imagen refleja que la diferencia reside casi exclusivamente en los bordes de los objetos de la imagen.
A su vez, se estudió la diferencia aplicada a una imagen de huella, y se estudio numéricamente la diferencia entre ambos métodos, promediando aquellos pixeles que presentan diferencia, los cuales constituyen aproximadamente un 10% de la imagen(resultado esperable dado que hay gran concetración de bordes en la imagen). El promedio de la diferencia es 9, siendo el valor más alejado 185. Esto muestra que a pesar de que ambos métodos no dan exactamente el mismo resultado, en aspectos generales la imagen es la misma, con pequeñas diferencias en los bordes.
En primer lugar, hay dos pasos del algoritmo que en el paper no se encuentran muy detalladas. Por un lado, se dice que un valor de lambda=0.5 es adecuado para la mayoría de las imágenes naturales, sin embargo plantea también la forma de calcularlo, no dejando claro cuál de los dos caminos es el finalmente efectuado en el ejecutable. A su vez, dicho ejecutable no brinda la oportunidad de trabajar con este parámetro (ni con ningún otro), solo recibe como entrada la imagen a interpolar. Mediante ciertas pruebas con imágenes de la base, tras obtener valores de lambda cercanos al mencionado, se optó por asumirlo como un valor fijo y no calcularlo, para reducir costo computacional.
Por otra parte, el método plantea que la estimación detallada puede hacerse solo en las áreas de gran actividad, es decir, aquellas cuya varianza sea mayor a un umbral dado, interpolando en el resto bajo un método tradicional como puede ser interpolación bicúbica, etc. Nuevamente el umbral que propone es rígido, y no explica cómo se calcula.
Se cree que estas son las principales diferencias entre el ejecutable y el algoritmo implementado, que de igual manera da resultados satisfactorios.