It should work…

Cuando cualquier trasto es útil

It should work… header image 2

[Fprint] Procesado de la imagen – Huellas dactilares

October 24th, 2008 · 4 Comments · linux, programming

Si analizamos los dispositivos que ya vimos en el post anterior podemos dividirlos en 2 grandes grupos. Los lectores de huellas que son un dispositivo de imágenes (y nos devuelven, entre otras cosas, una imagen en un cierto formato) y los lectores de huellas que son un dispositivo más autónomo que realizan el procesado y tan sólo nos devuelven una respuesta booleana.

Para el primer grupo de lectores de huellas necesitaremos pues una serie de algoritmos que nos permitan analizar y comparar las imágenes de las huellas dactilares.

A la hora de desarrollar fprint se consideró programar todos estos algoritmos pero ya existían, además en forma de código libre, unas posibles soluciones que ahora veremos.

Pero primero, ¿qué buscamos en una huella dactilar? ¿cuáles son los puntos de interes? En una huella tenemos una serie de crestas y surcos que van dibujando un laberinto en el cual podemos de reconocer ciertos puntos de interés, comunmente llamados minutiae. Lo que tenemos que detectar son principalmente las terminaciones o bifurcaciones de las crestas. Existen otros puntos de interés como: el corazón (centro del patrón de la huella), islas, deltas y discontinuidades. En la siguiente imagen podemos ver un ejemplo de cada caso:

Minutiae

Decía antes que ya existe una colección de herramientas libres que tenían los algoritmos implementados. Se llama NBIS (NIST Biometric Image Software) y fue creada por el grupo de imagen del NIST (National Institute of Standards and Technology). Inicialmente fue desarrollada para el FBI (Federal Bureau of Investigation) y el DHS (Department of Homeland Security) y fue usada para el control del crímen y el control fronterizo respectivamente. Vamos, que cuando vamos a USA y nos escanean las huellas usan este software.

MINDTCT

Dentro del paquete NBIS esta es la herramienta que se usa para detectar las minutiae, como bien su nombre indica: minutiae detector. Antes de buscar los puntos de interés deberemos tratar la imagen para que facilitar esa detección. Se realiza un aumento de contraste en la imagen para binarizarla a 2 colores sólidos. De ese modo las crestas se convertirán en zonas negras sobre blanco. Luego se escanea durante varias pasadas buscando patrones de píxeles. La realidad es que se generan bastante falsos positivos así que seguidamente se eliminan las minutiae de las zonas de la imagen con menos calidad y las que no están claras.

Deberíamos quedarnos no solo con las coordenadas de la minutiae sino también con la dirección de la cresta, que tipo de punto de interés es (bifurcación, terminación, etc, y muy importante un factor de confianza sobre  la formalidad de ese punto detectado.

BOZORTH3

El siguiente paso sería tener la capacidad de concordar diferentes huellas para buscar casos coincidentes y para ello se puede usar este algoritmo. Fue creado por el FBI (un tal Allan S. Bozorth, original, eh?) y detecta coincidencias independientemente de la traslación y rotación de las imágenes. Posteriormente el NIST lo adoptó y lo mejoró. Tiene un umbral configurable para ser más o menos estrictos en las concordancias.

Existe otro sistema open source de procesamiento de huellas digitales, se llama Fingerprint Verification System junto con efinger,  pero no es tan eficaz como el creado por el NIST.


Fuente original en http://vierito.es/wordpress

Similar Posts:

Tags: ··········

4 responses so far ↓

  • 1 jcarlosn // Oct 25, 2008 at 2:18 pm

    Hola, es interesante, nunca me había parado a pensar como se compraban dos huellas.

    Por cierto, te he agregado a mi (todavía pequeño) blogroll.

    Un saludo!

  • 2 vierito5 // Oct 27, 2008 at 12:17 am

    Gracias Jose Carlos :P

    Por cierto, el código de Bozorth3 está sujeto a leyes de exportación y esas cosas con las que los americanos dan por saco. Si quieres echarle un vistazo al código en lugar de ir a la página de NBIS es más fácil directamente en los repositorios de fprint.

  • 3 [Fprint] La implemetación del driver | It should work... // Oct 30, 2008 at 2:41 pm

    [...] RSS ← [Fprint] Procesado de la imagen – Huellas dactilares [...]

  • 4 KeHoeff // May 29, 2009 at 2:18 am

    hey this is a very interesting article!

Leave a Comment