Biometría dactilar parte 2

Biometría dactilar parte 2

Hola imaginadores, luego de un breve receso, continuaremos con el artículo de biometría dactilar, en ésta segunda parte nos adentraremos un poco más y hablaremos de los procesos internos de los sistemas biométricos, esto nos ayudará a entender las etapas que se requiere para obtener un resultado final. Dicho esto a empezar!

A través de los años se ha visto el desarrollo de tecnologías orientadas a la identificación por medio de las huellas dactilares, como por ejemplo NFIS, AFAS, AFIS o SAID, entre otras, con el único fin de validar la correspondencia de una huella dactilar. Resulta lógico que grandes empresas han orientado su investigación en mejorar estos sistemas de identificación como el AFIS (Automated Fingerprint Identification System) o en español  SAID (Sistemas Automáticos de Identificación Dactilar) usados por prestigiosas organizaciones como el FBI, instituciones policiales de investigación en países lationoamericanos, otras. Estos sistemas biométricos han alcanzado también en las instancias civiles encargadas de registrar información y datos de la persona con fines de identificación. En nuestro país por ejemplo está el RENIEC (Regisro Nacional de Identificación y Estado Civil) para el registro civil y la Policía Nacional del Perú para la solución de casos criminales e identificación de personas, que necesariamente deben convalidarse con un dictamen pericial previo. En la Figura 1 se visualiza el  diagrama en bloques de un AFIS cualquiera que fuese el caso (criminal o civil). Para un AFIS Civil el registro correspondería a uno o diez dedos de la mano de una persona, insertadas de forma presencial y voluntaria.

Figura 1. Procesamiento AFIS

 

Por ejemplo, si se trataría de un AFIS Criminal, en la fase de adquisición de imágen tendríamos que insertar las huellas papilares (dedos y palmas) de algún sospechoso, intervenido o las huellas encontradas en un escenario criminal (huella latente), también es posible en estos casos dejar la huella en forma voluntaria cuando se amerite la situación, mediante un lector o bloque óptico, como se observa en la figura 3. Estos sensores poseen fotodiodos (FTIR, Frustated Total Internal Reflexion) colocados en los extremos de un prisma de cristal proyectando un haz de luz que incide sobre las crestas dispersándose, mientras los que inciden en los valles tienen una reflexión, esta luz reflectada es focalizada hacia un sistema de cámara CCD o CMOS capturando de esta forma la imagen total de la huella dactilar como observamos en la Figura 2. En la captura de la huella lo que hace el sistema internamente es redimensionar la imagen en un formato único de tamaño, por ejemplo podría ser 400 x 400 pixeles o si se quiere más grande 550 x 550 pixeles. 

Figura 2. Sensor FTIR
Figura 3. Adquisición de imagen mediante lector óptico tipo bloque

En la fase de procesamiento de imagen,  lo que hace el sistema básicamente es mejorar la nitidez y contraste de la imagen, es necesario entender que no existe un método general para el mejoramiento de imágenes, debemos tener el conocimiento suficiente para ver que método o algoritmo usamos. En esta fase se trabajará cada pixel a nivel de gris, recordemos que los valores en esta escala corresponden del 0 al 255, que conlleva a la mejora del contraste local,  seguidamente se hace un filtrado, luego se binariza (valores «0» y «1») de esta forma esqueletizar la imagen para finalmente detectar las minucias. Explicar cada paso en esta fase también requiere de toda una teoría que involucra adentrase en procesos matemáticos y estadística determinística, por lo que cogeremos ciertas fórmulas estadísticas, además de abstraer conceptos encontrados en artículos  de investigación ya publicados. Es significante mencionar que este proceso puede ser llevado también con OPENCV (Open Computer Visión en español Visión Artificial Abierta), ya que posee librerías codificadas en Python que permiten trabajar con imágenes por lo que solamente hay que invocarlos. Justamente es ahí donde queríamos llegar, como recordarán esta organización como otras, promueve también la filosofía para usar tecnologías abiertas tanto en software como en hardware. A continuación explicaremos de manera resumida los procedimientos más importantes para mejorar la imagen:

Normalización: El objetivo de la normalización es reducir la variación de valores en escala de grises alrededor de las crestas y valles, que facilite los pasos sub siguientes como calcular la orientación y la frecuencia de las crestas y valles, valga la redundancia. Sin embargo, en esta fase no se logra rellenar pequeñas rupturas en las crestas, separar o limpiar  crestas paralelas que estén en contacto. El término normalizar nos resulta familiar,  ya que usamos la fórmula estadística de la media y varianza. Bien, al escanear la huella se produce una imagen de dimensiones n x m pixeles, cada pixel tiene una intensidad  cuyo valor va del 0 al 255, entonces podemos calcular el promedio total de la intensidad de toda la imagen, definiendo la varianza (Vc) de una imagen n x m pixeles como la siguiente expresión:

Donde I(i,j) es la intensidad asociada al pixel en la posición (i,j), X es la media de intensidad de toda la imagen.

Esta fórmula nos permitirá calcular la intensidad normalizada para cada pixel, es decir el nuevo valor ya modificado, condicionado si la intensidad es menor que la media se resta y si es mayor se suma. Asimismo, (vd) es la varianza deseada y (md) la media, son valores que asignamos.

Figura 4. Proceso de normalización

Segmentación: El objetivo de segmentar la imagen es restar o separar el fondo de la imagen de la huella que no es de interés y quedarnos solamente con la huella en sí. Para dicho efecto la imagen se divide en bloques de dimensiones a x b, en cada bloque se calcula la varianza local que es comparada con un umbral, visualmente se puede apreciar que la región de las crestas y valles tendrá una varianza elevada (contraste alto) dado que su diferencia de valor es alto, por ejemplo para la cresta = 0 y para el valle = 255 o viceversa, el valor del umbral podría ser 120, entonces la segmentación se aplica a los bloques con valores de bajo contraste, quedando como se aprecia en la Figura 5.

Figura 5. Imagen segmentada

Orientación: El objetivo es determinar la orientación de las crestas (ridges) en la imagen de la huella dactilar, este proceso se realiza luego de la segmentación. Aunque la explicación matemática es un tanto compleja, no abordaremos el detalle solo explicaremos su funcionalidad. La imagen de la huella se divide por bloques de un tamaño m x n pixeles, se calcula la orientación del pixel central y esta se aplica a todo el bloque. Pero antes se aplicará el operador Sobel que calcula el cambio de intensidad o gradiente en los bordes horizontales y verticales, esta operación se llama convolución que consiste en ir cogiendo los valores de intensidades de pixel a pixel y multiplicar por la matriz o kernel tanto en X (horizontal) y Y (vertical).

La orientación local de la cresta en (x, y) es el ángulo que la cresta forma con el eje horizontal. Esta orientación  se calculará dividiendo la imagen de huella en bloques de tamaño m x n y con un centro ubicado en el pixel  (i,j), la orientación de este pixel central se aplica a todo el bloque y así sucesivamente en toda la vecindad local, cuyo resultado se promedia. Para mejor ilustración se aprecia en la Figura 6.

Figura 6. Ventana orientada y bloque centrado en (i,j)

La orientación del ángulo en el pixel (i,j) esta definida por el arco tangente de los pixeles en Y dividido con los pixeles en X correspondiente a dicho bloque.

Los que hemos tenido la experiencia pericial de trabajar con la identificación de huellas, podemos referir que la orientación y direccionalidad de las crestas (ridges) siguen un mismo patrón, es por ello que al realizar este procedimiento, la orientación de los pixeles no sufren grandes cambios, siendo casi homogéneos en todos los bloques. Sin embargo pueden presentar minúsculos ruidos y para evitar ello se puede usar la técnica de suavizado o también un filtro pasa bajo, si usamos esta última aplicación la orientación del ángulo theta quedará definida con la siguiente ecuación:

Figura 7. Imagen de huella luego de aplicarse la fase de orientación

Filtrado: El objetivo de este procedimiento es determinar qué pixeles pertenecen a un valle (color blanco)  o a una cresta (color negro), para tal efecto deberá de enlazar pequeñas rupturas y llenar impurezas, generalmente las condiciones de las huellas no son las idóneas, por ejemplo una piel mojada o muy seca, cortes, raspaduras, una presión incorrecta del dedo sobre el lector, ruido en los sensores o una baja calidad de las crestas debido a la edad avanzada, trabajos en contacto directo con materiales de construcción, etc. Para acelerar el proceso de calculo solo se filtran los pixeles que no han sido segmentados. A continuación se denota la expresión para hacer el calculo mediante el algoritmo de filtro de Gabor:

Las variables dependientes se calculan de la siguiente manera:

La frecuencia la calculamos como el número de crestas que encierran la ventana orientada, observada en la Figura 6.  

Figura 8. Imagen de huella filtrada y binarizada

Para que la imagen de huella quede como la Figura 8, es decir con fondo blanco, entonces luego de realizar el filtro se procede a binarizar, esto con la aplicación de un bucle anidado que recorre toda la imagen realizando una comparación con un determinado umbral, por ejemplo 120, si la intensidad del pixel (i,j) es mayor a este umbral se asigna el valor «1» caso contrario se asigna el valor «0». Mejor ilustración en la imagen de la Figura 9.

Figura 9. Bucle para binarizar la imagen

Adelgazamiento: Una vez binarizada la imagen de la huella, es decir, valores de ceros y unos, el siguiente paso es adelgazar o esqueletizar la huella, procedimiento conocido como thining. Aquí se cogerá la parte de las crestas o valores de cero, reduciendo su grosor al tamaño de un pixel, la técnica que se emplea es el propuesto por el investigador Zhan Suen, que define ocho vecinos de un pixel central (P0), como se observa en el bloque siguiente. El algoritmo consiste en encontrar pixeles internos y después eliminar los pixeles límite, este proceso se realiza iterativamente hasta no encontrar más pixeles internos..

Para dicho efecto el algoritmo debe pasar por dos etapas, cada una con ciertas condiciones. Por ejemplo en la etapa 1 la condición a) indica que el número de vecinos diferentes de cero «0» debe ser mayor o igual que dos y menor e igual que seis. La condición b) Solamente una vez de presentarse la transición de «0» a «1» recorriendo el borde a partir del pixel P1. La condición c) Alguno de los valores P1, P3 y P5  tenga el valor «0» y d) Alguno de los valores P3,P5,P7 tengan el valor cero. Terminado esta etapa se continúa con la etapa dos, cumpliendo las mismas condiciones, con excepción de la c y d.

Una manera de procesarse en forma rápida es haciendo una convolución de la imagen, aplicando un filtro, de tal suerte que si el resultado cae dentro de los valores de la primera etapa S1 y segunda etapa S2, el pixel almacenado en dichos vectores debe eliminarse.

Por ejemplo, imaginemos que sea el primer bloque de la imagen, al realizar la convolución da un resultado de 120, por tanto se debe eliminar.

Figura 10. Imagen de huella adelgazada

Finalmente, luego de iteraciones la imagen original queda adelgazada «thinning» al grosor de un pixel como se muestra en la Figura 10. quedando lista para la fase siguiente (detección o extracción de minucias) que lo explicaremos en un tercer artículo. Bien, espero se haya entendido este proceso de mejoramiento de imagen, reitero, se ha tratado de ser lo más conciso por cuanto el fundamento teórico ha sido extraído de muchos artículos y trabajo de tesis, como verán su explicación requiere de muchos detalles ya que su teoría es compleja, instarles también que bien podría cogerse parte de ella para un trabajo superior a nivel pre grado o pos grado o simplemente profundizar sus conocimientos en el campo de visión artificial y machinne learning

Espero haya sido de su interés, no olviden de estar pendiente del siguiente artículo en donde explicaremos la extracción de puntos característicos (minucias) así mismo trataremos de explicar el algoritmo programado en lenguaje Python. Bien, sin otra cosa más, como siempre no olviden de suscribirse y compartirlo.

Deja una respuesta