ES2556276B1 - Método de identificación de huellas dactilares y dispositivo que hace uso del mismo - Google Patents

Método de identificación de huellas dactilares y dispositivo que hace uso del mismo Download PDF

Info

Publication number
ES2556276B1
ES2556276B1 ES201300721A ES201300721A ES2556276B1 ES 2556276 B1 ES2556276 B1 ES 2556276B1 ES 201300721 A ES201300721 A ES 201300721A ES 201300721 A ES201300721 A ES 201300721A ES 2556276 B1 ES2556276 B1 ES 2556276B1
Authority
ES
Spain
Prior art keywords
image
sub
block
fingerprint
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
ES201300721A
Other languages
English (en)
Other versions
ES2556276A1 (es
Inventor
Maria Rosario ARJONA LÓPEZ
María Iluminada BATURONE CASTILLO
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Consejo Superior de Investigaciones Cientificas CSIC
Universidad de Sevilla
Original Assignee
Consejo Superior de Investigaciones Cientificas CSIC
Universidad de Sevilla
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Consejo Superior de Investigaciones Cientificas CSIC, Universidad de Sevilla filed Critical Consejo Superior de Investigaciones Cientificas CSIC
Priority to ES201300721A priority Critical patent/ES2556276B1/es
Priority to PCT/ES2014/000131 priority patent/WO2015015022A1/es
Priority to EP14832457.7A priority patent/EP3093793A4/en
Publication of ES2556276A1 publication Critical patent/ES2556276A1/es
Application granted granted Critical
Publication of ES2556276B1 publication Critical patent/ES2556276B1/es
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1347Preprocessing; Feature extraction
    • G06V40/1359Extracting features related to ridge properties; Determining the fingerprint type, e.g. whorl or loop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1347Preprocessing; Feature extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1365Matching; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1365Matching; Classification
    • G06V40/1376Matching features related to ridge properties or fingerprint texture

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Collating Specific Patterns (AREA)

Abstract

Método de identificación de huellas dactilares y dispositivo que hace uso del mismo.#Se describen en este documento un método y un dispositivo que permiten generar un vector de características de una huella dactilar humana mediante una serie de procesos realizados a partir de la imagen de dicha huella. Con esos vectores se puede realizar una clasificación, indexación o determinación de identidad de huellas (y, por tanto, de individuos), así como proteger secretos o generar claves criptográficas a partir de huellas.#La mayoría de los métodos de identificación reportados emplean vectores de características y técnicas para extraerlos y compararlos que no son adecuadas para dispositivos electrónicos con recursos de cómputo y almacenamiento reducidos, como una FPGA o un circuito integrado de aplicaciones específicas. Por el contrario, el método propuesto en esta invención si es adecuado, ofreciendo buenas prestaciones en cuanto a tiempos de extracción de vectores (situándolos por debajo del milisegundo para tamaños de huellas estándares), tiempos de emparejamiento y ordenación (valores despreciables de pocos nanosegundos por usuario) y requerimientos de memoria (poco más de cien bytes por huella). Los usos principales de la invención se sitúan en sistemas automáticos de identificación de huellas pequeños, portables, baratos y/o seguros donde el usuario está presente y quiere identificarse.

Description

utilicen bases con un numero elevado de huetlas y proporcionen tiempos de respuesta inmediatos, a la vez que exactitud en la identificacion. El tiempo necesario para la identificacion de un individuo (tidentificacion) se puede expresar como:
5 tidentificacion = textraccion + temparejamiento*N + tdecision
donde textraccion es el tiempo invertido en la extraccion de caracteristicas de la huella, temparejamiento es el tiempo empleado para comparar las caracteristicas extraidas de la huella de entrada con cada una de las N caracteristicas almacenadas 10 en la base, y tdecision es el tiempo empleado para decidir cual de los N individuos registrados es el candidato elegido como poseedor de la huella de entrada, en el caso de una aplicacion de identificacion, o el tiempo empleado en generar una lista reducida con los M individuos candidatos a poseerla (con M mucho menor que N), en el caso de una aplicacion de indexacion.
15
El valor de textraccion es mucho mayor que el de temparejamiento porque el proceso de extraccion de caracteristicas es mucho mas complejo que el del emparejamiento. Por ejemplo, el algoritmo de extraccion MINDTCT desarrollado por el NIST (“National Institute of Standards and Technology”) es un orden de magnitud mas lento en una 20 misma plataforma PC con un procesador Intel Core i7 que el algoritmo de emparejamiento BOZORTH98 de NIST, por ejemplo, mas de 200 ms de media para el primero y menos de 20 ms para el segundo (tanto MINDTCT como BOZORTH98 disponibles en NIST Biometric Image Software (NBIS),
http://www.nist.gov/itl/iad/ig/nbis.cfm ). Sin embargo, aunque el temparejamiento sea 25 menor, al estar multiplicado por N, la busqueda en la base puede ser demasiado lenta para aplicaciones en tiempo real.
Para reducir el numero de comparaciones de la huella de entrada con respecto a las huellas almacenadas en la base del sistema, se utilizan metodos denominados de 30 “clasificacion exclusiva” en los que las huellas se distribuyen en grupos disjuntos pre- establecidos, de forma que la huella de entrada se clasifica en uno de esos grupos y solo se compara con las huellas registradas de ese grupo. El esquema comunmente utilizado sigue las propuestas de Galton y Henry (E.R. Henry, “Classification and Uses of Finger Prints", London: Routledge, 1900), que distinguen cinco grupos de huellas 35 (“arch”, “whorl”, “tended arch”, “left loop”, y “right loop"). El problema es que la mayor parte de las huellas pertenecen solo a tres grupos (“right loop”, “left loop”, y “whorl”), con lo cual no se produce una gran reduccion del numero de comparaciones en una
5
10
15
20
25
30
35
base de huellas extensa (R. Cappelli, A. Lumini, D. Maio, and D, Maltoni, “Fingerprint classification by directional image partitioning”; IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 21, pages 402-421, 1999). Otro problema de los metodos de clasificacion exclusiva es que determinar a que clase pertenece una huella se trata en muchos casos de una operacion ambigua. Estos inconvenientes han propiciado la aparicion de los metodos denominados de “clasificacion continua", que asignan un vector de caracteristicas numericas a cada huella. De esta forma, en la fase de indexacion (“indexing”), se crea una tabla o base indexada de huellas. En la fase de recuperacion (“retrieving”), ante una huella de entrada con un vector de caracteristicas representative, se calcula la similitud entre el vector de entrada y los almacenados mediante una medida de distancia, de forma que puede obtenerse una lista reducida con los M candidates mas similares (con M mucho menor que N). A continuacion se pueden aplicar otros metodos de identification para determinar el individuo correcto de entre los seleccionados.
Una huella dactilar es una imagen donde se distinguen crestas y valles en escala de grises La comparacion directa de las huellas en escala de grises no ofrece buenos resultados, ademas de ser una tecnica costosa en cuanto a computo y almacenamiento. Es mejor procesar la imagen para obtener caracteristicas distintivas y compactas, Se suele hablar de caracteristicas de 3 niveles, segun el nivel de detalle con el que se analice la huella. Las caracteristicas de nivel 1 se obtienen de un analisis global de la huella. Un ejemplo es la imagen (campo o mapa) direccional (tambien llamado imagen, campo o mapa de orientaciones), que contiene las orientaciones locales de las crestas respecto a un eje de referencia. Otro ejemplo son los puntos singulares, que son puntos de la huella donde convergen (nucleos o “cores") o divergen (“deltas”) las orientaciones y en torno a los cuales se encuentra la mayor parte de la information distintiva de una huella. Las caracteristicas de nivel 2 se obtienen de un analisis local y en mas detalle de la huella. Un ejemplo son las tradicionales minucias, que pueden ser terminaciones (lugares donde las crestas acaban) y bifurcaciones (lugares donde las crestas se separan en otras dos). Las caracteristicas de nivel 3 (como poros o crestas incipientes) se obtienen tras un analisis muy detallado de la huella que requiere una adquisicion de la misma con muy buena calidad. La extraction de caracteristicas es tanto mas distintiva y a la vez mas costosa cuanto mayor sea el nivel.
Hasta el momento, apenas se han reportado tecnicas que empleen caracteristicas de nivel 3, Si se han reportado varias tecnicas que emplean caracteristicas de nivel 2. El
paso previo a todas estas tecnicas es extraer las minucias. Los procesos de extraccion de minucias son complejos debido a que ia imagen de la huella tiene que ser preparada para localizar ios minimos detalles (las minucias son poco robustas ante el posible ruido que la imagen de una huella puede presentar). Por ejemplo, la tecnica de 5 extraction de minucias mas comun requiere que la imagen de la huella sea mejorada, segmentada, binarizada, y adelgazada. Un ejemplo ampliamente conocido de algoritmo detector de minucias es el MINDTCT comentado anteriormente. La comparacion de huellas basada en minucias es relativamente lenta y, por lo tanto, no es adecuada para indexacion (por ejemplo, usando algoritmos como BOZORTH98 10 comentado anteriormente). Las tecnicas de indexacion que usan caracteristicas de nivel 2 aplican un post-procesado sobre las minucias extraidas. Asi por ejemplo, en la Patente “Method for searching fingerprint database based on quantum algorithm’’, CN102495886 (A), se elige un conjunto de minucias y se expresan en coordenadas polares respecto a unos puntos de referencia que tambien se eligen 15 convenientemente. En la Patente “Fast fingerprint identification and verification by minutiae pair indexing”, WO2008135521 (A2), se emplea indexacion mediante parejas de minucias. En el documento “Methods and systems for automated fingerprint recognition”, W02008098357 (A1), se asocian patrones de minucias a las huellas. El metodo y sistema propuesto en el documento “Progressive fingerprint matching system 20 and method”, US2004062426 (A1) se basa en emparejamiento de huellas por minucias. En el documento “Fingerprint verification”, US2005058325 (A1), se muestrean las minucias y se ordenan en subconjuntos. En el documento “System and method for matching (fingerprint) images an aligned string-based representation”, US6185318 (B1), se emplean las minucias como puntos de referencia. En el 25 documento “Methods and related apparatus for fingerprint indexing and searching”, US6181807 (B1), se extraen minucias de las huellas y se comparan en el proceso de busqueda. En el documento “Vector based topological fingerprint matching”, W09532482 (A1), se emplean las posiciones de las minucias y se les asigna un numero de indice. Otras tecnicas conocidas son las que emplean tripletas de minucias. 30 En el documento “Fingerprint identification method based on triangulation and LOD technology”, CN101620677 (A), se emplea una tecnologia de triangulation para extraer vectores de caracteristicas globales y locales. Anteriormente se ha propuesto usar todas las tripletas posibles que pueden formarse con cada minucia. Otros autores proponen aplicar la triangulacion de Delaunay de orden 1 a las coordenadas de las 35 minucias para asignar una estructura topologica unica a cada huella. En otras tecnicas conocidas en el arte se usan triangulos de Delaunay de orden superior a 1 para extraer mas information geometrica. Otra tecnica que usa caracteristicas de nivel 2 es
5
10
15
20
25
30
35
la representation MCC ("Minutia Cylinder-Code"), que asigna a cada minucia una estructura local que codifica la probabilidad de encontrar minucias a su alrededor, con una diferencia de orientacion similar a un valor dado.
Las tecnicas que usan caracteristicas de nivel 1 ofrecen prestaciones competitivas con mucho menor coste computacional. De hecho, la extraccion de la imagen direccional es un paso necesario en la mayoria de los algoritmos de extraccion de minucias y de comparacion de huellas, por lo que podria decirse que su coste es cero. Estas tecnicas se diferencian unas de otras en como extraen caracteristicas representativas y compactas de la imagen direccional. Por ejemplo, en tecnicas conocidas se emplea un modelo de orientacion de huellas basado en expansiones de Fourier bidimensionales para adaptarse a la periodicidad intrinseca de las orientaciones. En otras soluciones se emplean un conjunto de momentos complejos polares (PCMs) para extraer caracteristicas de la imagen direccional invariantes a rotaciones de la huella.
En el documento “New fingerprint database retrieval method", CN102368242 (A), se emplean puntos singulares, information sobre la relation entre puntos singulares y momentos invariantes ortogonales. En el documento “Method for rapidly calculating fingerprint similarity”, CN101996318 (A), se buscan unidades topologicas similares entre cada par de huellas a comparar, se expanden para obtener unidades topologicas similares mayores y se agrupan para obtener una medida de similitud global.
La mayoria de las soluciones para identification e indexacion de huellas son implementaciones software que involucran algoritmos de un coste computacional elevado en terminos de tiempo y recursos. El coste es elevado, no solo para la extraccion de las caracteristicas, sino incluso para el algoritmo de emparejamiento que calcula la similitud entre las caracteristicas de la huella de entrada y las almacenadas.
Las soluciones para indexacion normalmente se evaluan mostrando, para una razon de penetracion dada (un porcentaje promedio de la base de huellas que se va a analizar), la razon de error (porcentaje de huellas de entrada cuyo registro no se recupera de entre la lista con similitudes mas altas con esa penetracion). Esta es la razon de penetracion definida como el porcentaje de candidatos que se consideran para ver si entre ellos esta el poseedor verdadero de la huella de entrada (M/N). Otra medida normalmente analizada para evaluar la bondad de una tecnica de indexado es la tasa promedio en un escenario de busqueda incremental (“incremental search
5
10
15
20
25
30
35
scenario”), que se calcula como la tasa promedio que hay que llevar a cabo cuando no se quieren cometer errores en la recuperacion del poseedor de la huella de entrada. Los tiempos promedios que se invierten en la busqueda no suelen reportarse y tampoco los requerimientos de memoria. En los trabajos que si se reportan, los tiempos que se muestran son de realizaciones sobre PCs: 67 ms en un Intei Pentium 4 a 2.26 GHz y 1.6 ms, 14 ms o 16 ms (segun la tecnica) en un Intel Core 2 Quad a 2.66 GHz sobre 2000 huellas de la base NIST DB4
En las soluciones para identificacion, una vez generado el vector de caracterlsticas y comparado con los vectores almacenados, no se genera una lista ordenada de huellas sino que se establece un umbral de emparejamiento para aceptar o rechazar si un individuo es quien dice ser. En este caso, lo que se miden son razones de falso rechazo (FRR, “False Rejection Rate”) y de falsa aceptacion (FAR, “False Acceptance Rate"), en lugar de tasas de penetracion, como en el caso de indexacion. Tambien denominadas FNMR ("False Non-Match Rate") o FMR (“False Match Rate”), respectivamente.
El contexto de aplicacion de estas soluciones suele ser el forense y policial, en el que las huellas que se tienen de un individuo se ban adquirido sin su cooperacion (por ejemplo, porque se trate de identificar a un fallecido o a un delincuente). Se denomina un contexto “fuera de linea", por lo que las capturas pueden ser de mala caiidad y los algoritmos pueden realizarse sobre PCs sin requerimientos especialmente restrictivos de velocidad y consumo de memoria. Existen bases de huellas, como las de la “Fingerprint Verification Competition” (FVC), que estan construidas con muchas capturas de mala caiidad y mal adquiridas para probar la bondad de tecnicas complejas de identificacion e indexado.
Un contexto de aplicacion diferente es el que se denomina “en linea”, en el que el usuario de un sistema de reconocimiento coopera con el sistema porque quiere autenticarse (por ejemplo, en un sistema de control de acceso). En este caso, las capturas son de mucha mejor caiidad e, incluso, se puede interactuar con el usuario para que introduzca bien su huella. En esta linea, se conoce una solucion para la estimation de la caiidad de una huella basada en un algoritmo para la extraction de puntos singulares que satisface las restricciones en terminos de recursos, tiempo de respuesta y resultados de reconocimiento impuestos para una aplicacion de adquisicion inteligente en un dispositivo hardware empotrado. En el documento “Method for authenticating an individual by use of fingerprint data”, US7136514 (B1),
5
10
15
20
25
30
35
se tiene en cuenta que el individuo que introduce su huella mediante un sensor de barrido puede barrer el dedo en diferentes direcciones respecto al eje del sensor. En el documento “Fingerprint matching", GB2320352 (A), se emplean indices de calidad en la extraccion del vector de caracteristicas para luego emplearlos en el calculo del emparejamiento entre huellas.
Los requerimientos de velocidad si son restrictivos en un contexto de aplicacion en linea, porque la operacion debe ser en tiempo real. La facilidad de uso del sistema y su precio tambien pueden ser requerimientos importantes en este contexto. El usuario puede emplear comodamente un dispositivo electronico pequefio, ligero y barato, por ejemplo, una tarjeta o token con recursos reducidos. Los recursos de los que dispone una tarjeta inteligente o un DSP para dispositivos empotrados son mucho menores que los de un PC: CPUs de 50 6 100 MHz y memorias disponibles (ROM, EEPROM y RAM) de unas cuantas decenas de KBytes, en el mejor de los casos.
Los tiempos aumentan mucho si la plataforma donde se implementan los algoritmos tiene pocos recursos. Por ejemplo, el algoritmo MINDTCT adaptado y ejecutado sobre un procesador LEON2 empotrado invierte en su ejecucion casi tres ordenes de magnitud mas que en la plataforma PC (unos 100 s, segun se ha reportado). Por este motivo, la extraccion de caracteristicas se suele hacer sobre una plataforma tipo PC y las soluciones que emplean tarjetas o DSPs para reconocimiento en linea por huella dactilar solo implementan el algoritmo de emparejamiento entre las caracteristicas almacenadas y las que le llegan del exterior. Ademas, las caracteristicas almacenadas suelen ser las de un individuo solo (emparejamiento 1 frente a 1 en vez de 1 frente a N). A esta solucion se le suele denominar “match on card”. Aun asi, se han propuesto soluciones en las que se redisena el software del algoritmo de emparejamiento, se emplea aritmetica de punto fijo y se extiende el conjunto de instrucciones del procesador empotrado para acelerar la ejecucion. Los algoritmos de “match on card” se han estudiado recientemente en la campana MINEX II organizada por el NIST. Los resultados obtenidos demuestran que son menos precisos que los que se ejecutan sobre una plataforma PC. Otra opcion para la implementacion en sistemas empotrados es emplear FPGAs (“Field Programmable Gate Arrays”). En las FPGAs se pueden implementar coprocesadores hardware que aceleren la ejecucion de los algoritmos. Asi, por ejemplo, existe una solucion que propone la correlacion directa de imagenes en escala de grises, usando una FPGA Virtex 4, Para aplicaciones de indexacion de huellas, existe una tecnica que crea una base de huellas cuyos indices se basan en la extraccion de minucias, en la que la base de huellas y la busqueda sobre la base se
5
10
15
20
25
30
35
implementan en placas PCI basadas en FPGAs mientras que la extraccion de minucias se realiza en el PC al que se conectan las placas.
En terminos de seguridad, es muy interesante que todo el proceso de extraccion de caracterlsticas, su almacenamiento y emparejamiento se pueda realizar en el mismo dispositivo, lo que se denomina "authentication on card”, porque as! las caracterlsticas distintivas de los individuos se circunscriben dentro de un perlmetro mucho mas pequeho, que, por tanto, es mas facil de controlar y defender. En esta linea, existen soluciones donde se implementa un algoritmo de extraccion de minucias en una FPGA Spartan 3 y soluciones donde se implementa un sistema de reconocimiento basado en la localizacion de puntos singulares sobre una placa RC203E de Celoxica equipada con una FPGA Virtex II. En vez de simplificar los algoritmos a implementar, la solucion analizada en una segunda opcion es emplear FPGAs que se reconfiguran segun la tarea a realizar (extraccion de la imagen direccional, mejora y segmentacion de la imagen de la huella, binarizacion, suavizado, adelgazamiento, deteccion de minucias, alineamiento y emparejamiento). Esta idea de “authentication on card” aparece en varias patentes. Entre ellas, podemos citar “Biometric identity verification system and method”, US 20080223925 A1 y, entre las mas recientes, "Smart card system with ergonomic fingerprint sensor and method of using", US 8276816 B2.
Otro gran problema de los sistemas de identificacion basados en huella dactilar, ya no relacionado con la implementacion sino con su propia naturaleza, es el de la falta de diversidad en la obtencion de caracterlsticas distintivas. Por ejemplo, un usuario dispone como mucho de 10 dedos en sus manos. Si se descubre que un impostor se apodera de las caracterlsticas de uno de sus dedos, el individuo ya ha perdido el 10% de sus posibles caracterlsticas. Si el impostor se apodera de las caracterlsticas de los 10 dedos, el individuo ya no puede registrarse en ningun sistema. Este problema tambien se denomina como la escasa revocabilidad del sistema, es decir, es diflcil generar nuevas caracterlsticas cuando otras han sido descubiertas o comprometidas.
Para evitar que las caracterlsticas puedan ser comprometidas, se han propuesto sistemas que las transforman mediante funciones no invertibles, como las funciones hash, de forma que recuperar las caracterlsticas originales a partir de las transformadas sea practicamente inviable desde el punto de vista computacional. En estos sistemas, la medida de similitud o emparejamiento entre las caracterlsticas de entrada y las previamente registradas se reaiiza en el espacio transformado. Por eso hay que analizar muy bien como afecta la transformation a las prestaciones del
5
10
15
20
25
30
35
sistema resultante (por ejemplo, en cuanto a tasas de falsa aceptacion y falso rechazo). Esta solucion no solventa el problema de la diversidad porque la transformacion de caracteristicas no incrementa el numero de posibles caracteristicas. Para ello, se puede emplear un numero aleatorio (conocido como “salt" en las tecnicas criptograficas) que se combine con las caracteristicas originales, de forma que su transformacion sea diferente aun cuando emplee la misma informacion biometrica. El “salt” actua como una palabra de paso que el individuo debe introducir en el sistema, ademas de su huella dactilar. La desventaja de esta solucion es que la palabra de paso y las caracteristicas transformadas no deben hacerse publicas para incrementar la seguridad del sistema.
Otro esquema que posee la ventaja de no requerir almacenamiento seguro de informacion es el de los denominados sistemas de cifrado biometricos (“biometric criptosystems”)- Se basan en combinar las caracteristicas biometricas originales (sin ninguna transfomacion) con informacion adicional de tal manera que los datos resultantes, conocidos como “helper data” (datos de ayuda), puedan ser publicos. Las dos tecnicas mas empleadas en sistemas de cifrado han sido las denominadas Fuzzy Commitment y Fuzzy Vault. Fuzzy Commitment es un esquema mas basico y mas simple que Fuzzy Vault. Como contrapartida, Fuzzy Commitment requiere que el vector de caracteristicas sea un vector binario, ordenado y de longitud fija. Fuzzy Commitment se implementa en las dos fases siguientes:
- Fase de registro: la caracterlstica biometrica se combina (usualmente mediante una operacion XOR, en el caso de caracteristicas binarias) con una palabra codigo generada mediante la apficacion de un codigo corrector de errores a un numero aleatorio, clave o palabra de paso (contraseria). El resultado es una informacion de ayuda que no necesita ser almacenada de forma segura.
- Fase de verificacion o recuperacion de secreto: la nueva caracteristica biometrica, ligeramente diferente a la que se obtuvo durante el registro (lo cual es habitual), se combina con la informacion de ayuda, que es publica, para recuperar la palabra codigo (aplicando un codigo corrector de errores). A partir de la informacion recuperada en esta fase, tambien se puede generar una clave criptografica.
Hoy en dla, la mayoria de los metodos de identificacion por huella dactilar reportados (asi como los sistemas de cifrado basados en ellos) emplean vectores de caracteristicas y tecnicas para extraerlos y compararlos que no son adecuados para dispositivos electronicos con recursos de computo y almacenamiento reducidos. Por eso son necesarias soluciones de identificacion por huella dactilar validas para
5
10
15
20
25
30
35
sistemas de cifrado que, manteniendo buenos resultados de reconocimiento, sean adecuadas para dispositivos electronicos de bajo consumo de potencia, con capacidad de calculo limitada y que no requieran un “hardware" potente y/o voluminoso que emplee grandes recursos.
DESCRIPCION DE LA INVENCION
Se propone un metodo y un dispositivo para implementar el metodo que permiten, mediante una serie de procesos y a partir de una imagen capturada de una huella dactilar, generar un vector de caracteristicas basado en caracteristicas de nivel 1, en concreto en la segmentation de la imagen direccional en regiones homogeneas. El metodo permite obtener una cadena de bits de longitud fija a partir de la huella capturada preferentemente en linea mediante un sensor de huella de los que se emplean en los sistemas automaticos de identification (optico, capacitivo, etc.).
En una posible realization el metodo aqul descrito puede ser adaptado y emplearse en aplicaciones de clasificacion en las que las huellas de los individuos se distribuyen en grupos mas o menos disjuntos, segun el algoritmo de agrupamiento que se aplique sobre los vectores de caracteristicas. El metodo tambien puede emplearse en aplicaciones de indexado e identificacion/autenticacion, en las que se registran los individuos mediante los vectores de caracteristicas que se generan en una fase de indexado o registro. En la fase de recuperation o verificacion, dada una huella de entrada, se genera una lista ordenada de individuos candidatos a poseer esa huella (en el indexado) o se identifica el mejor candidato (en aplicaciones de identificacion). En el caso de autenticacion, se registra un solo individuo y en la fase de verificacion se mide la similitud entre el vector generado y el almacenado. Si supera un umbral, el individuo se autentica. No se autentica en otro caso.
El metodo aqut descrito se puede emplear en multi-biometria. Dadas varias muestras de huellas capturadas de dedos diferentes de un mismo individuo, los vectores obtenidos de cada dedo se concatenan para obtener un vector de identificacion digital del individuo. Y tambien, dadas varias muestras de huellas capturadas de un mismo dedo, los vectores obtenidos de cada muestra se concatenan para obtener un vector de identificacion de la huella.
5
10
15
20
25
30
35
El metodo puede emplearse en aplicaciones de identificacion (y autenticacion) por doble factor porque el vector que genera puede combinarse facilmente con vectores derivados de claves o contrasenas.
El metodo puede emplearse en los denominados esquemas de proteccion de plantilla ("template”). En particular, es muy adecuado para sistemas de cifrado basados en la tecnica Fuzzy Commitment, porque el vector generado es binario, ordenado y de longitud fija. En estos esquemas, el metodo de la invencion ofrece las ventajas de no- reversibilidad de los vectores transformados y diversificacion de los vectores generados, manteniendo la precision en la identificacion (y autenticacion).
El metodo propuesto en esta invencion puede impiementarse en un dispositivo electronico de bajo coste (con recursos de computo y memoria reducidos), como por ejemplo, una FPGA o un circuito integrado de apiicaciones especlficas, ofreciendo buenas prestaciones en cuanto a tiempos de extraccion de caracteristicas (situandoios por debajo del milisegundo para tamanos de huellas estandares), tiempos de emparejamiento y ordenacion de candidatos (valores despreciables de pocos nanosegundos por candidato) asi como requerimientos de memoria (poco mas de 100 bytes por huella). Asi se puede conseguir una solucion muy segura porque toda la informacion biometrica de los individuos puede estar confinada dentro del mismo dispositivo electronico y no salir de el.
El objeto de la invencion se basa en un contexto de apiicacion en linea, es decir, el usuario del dispositivo colabora para identificarse, a diferencia de otros contextos de apiicacion de identificacion por huella dactilar, como el forense o el policial, en los que el usuario no colabora (porque esta fallecido o no desea que lo identifiquen). En un contexto de apiicacion en el que el individuo quiere registrarse e identificarse, las caracteristicas se extraen con calidad. En cualquier caso, el dispositivo que implementa la invencion permite evaluar la calidad del proceso y la interaccion en linea con el usuario para evitar capturas defectuosas de huellas.
El metodo de identificacion se basa en generar un vector de caracteristicas de la huella dactilar para su identificacion a partir de una primera imagen de la misma en escala de grises que contiene crestas y valles de la huella, para ello se llevan a cabo los siguientes pasos:
a) determinar para cada pixel de la primera imagen, py (donde ij hacen referencia a la fila y columna del pixel en la imagen), el gradiente de la
5
10
15
20
25
30
35
intensidad de la imagen (de los niveles de grises) en ese pixel,
b) determinar la direccion del gradiente mediante un angulo ay con respecto a un eje de referenda,
c) dividir el intervalo de valores posibles de angulos, ay, en G sub-intervalos
(gi,.,., gG) que no se solapan y cuya union da lugar al intervalo completo de
posibles valores, englobando cada sub-intervalo gk angulos desde un valor ak-i hasta ak,
d) etiquetar cada gk sub-intervalo con una etiqueta, ck,
e) asociar, para cada pixel py de la primera imagen, la etiqueta
correspondiente al sub-intervalo al que pertenece el angulo ay correspondiente a ese pixel,
f) generar una segunda imagen a partir de la primera imagen, donde en dicha segunda imagen cada pixel lleva asociado una etiqueta,
g) realizar un proceso de suavizado a la segunda imagen para obtener zonas que comprenden pixeles con las mismas etiquetas,
h) localizar al menos un punto nucleo convexo en la segunda imagen suavizada,
i) definir una ventana centrada en el punto nucleo convexo,
j) realizar un muestreo de pixeles comprendidos en la ventana, y
k) generar el vector a partir de las etiquetas de los pixeles muestreados en el paso anterior, de forma ordenada.
La determinacion del sub-intervalo al que pertenece el angulo a del gradiente en un pixel se determina a partir del calculo del gradiente horizontal (Gx) y del gradiente vertical (Gv) de la intensidad de la imagen (de los niveles de grises) en ese pixel.
La determinacion del sub-intervalo gk = [aMl ak) que se le asocia al pixel py comprende:
• determinar el signo de Gx
• determinar el signo de Gy
• determinar que :
• a pertenece al primer cuadrante de angulos comprendido entre 0° y 90°, cuando Gx y Gy tienen el mismo signo, y, dentro de este primer cuadrante se distinguen dos situaciones segun el rango de angulos que abarca cada sub-intervalo a evaluar:
- si el sub-intervalo que se evalua, [«k-i, ak), esta totalmente incluido en el
5
10
15
20
25
30
35
primer cuadrante, porque tanto «k.i como <xk son menores o iguales que 90°, entonces
a£[ak.i, ak) si Gx• tan(ak.i) < Gy < Gx • tan(ak)
- si el sub-intervalo que se evalua. [ak.i, ak), esta parcialmente inclutdo en el primer cuadrante, porque m es menor que 90° pero ak es mayor que 90°, entonces
ae[ak-i, ak) si Gx-tan(ak-i) < Gy
• a pertenece al segundo cuadrante comprendido entre 90° y 180°,
cuando Gx y Gy tienen signos distintos, y, dentro de este segundo cuadrante se distinguen dos situaciones segun el rango de angulos que abarca cada sub-intervalo a evaluar:
- si el sub-intervalo que se evalua, [ak-i, ak), esta totalmente incluido en el segundo cuadrante, porque tanto ak-i como ak son mayores o iguales que 90°, entonces
imagen1
- si el sub-intervalo que se evalua, [ak-i, ak), esta parcialmente incluido en el segundo cuadrante, porque ak es mayor que 90° pero ak-i es menor que 90°, entonces
ae[ak-i, ak) si |Gy| > \GX ■ tan(ak)|
El proceso de suavizado calcula para cada pixel py de la segunda imagen preferentemente cual de las etiquetas es la que mas veces aparece en una ventana de tamano S x S pixeles de la segunda imagen, ventana centrada en el pixel a suavizar, donde S se puede factorizar como S= s1 x s2 x . . . x sn, proceso que comprende:
• comenzar con ventanas de tamano s1 x s1 pixeles y aplicarles el suavizado a sus s1 x s1 etiquetas,
• continuar con ventanas de (s1 x s2) x (s1 x s2) pixeles y aplicar el suavizado sobre s2 x s2 etiquetas suavizadas previamente en el paso anterior,
• proceder asi hasta llegar al tamano de ventana (s1 x s2 x ... x sn) x (s1 x s2 x ... x sn) pixeles y aplicar el suavizado sobre sn x sn etiquetas
5
10
15
20
25
30
35
suavizadas previamente en el paso anterior.
La determinacion del nucleo convexo puede llevar a cabo los siguientes pasos:
• hacer otra division del intervalo de valores posibles de angulos, ay, en 4 sub- intervalos (g’i,..., g’4) que no se solapan y cuya union da lugar al intervalo completo de posibles valores,
• etiquetar cada g’k sub-intervalo con una etiqueta, c’k,
• convertir la segunda imagen suavizada, en la que a cada uno de los pixeles se le asocia una de entre G etiquetas (Ci,..., cG), donde-preferiblemente G > 4, en una imagen tetra-direccional suavizada, en la que a cada uno de los pixeles se le asocia una de entre cuatro etiquetas (c’-i,..., c’4) y la conversion comprende a su vez:
• cambiar cada etiqueta ck asociada al sub-intervalo de angulos gk por aquella etiqueta c’k asociada al sub-intervalo de angulos g’k que verifique que la interseccion gk H g’k sea la mayor, y
• determinar el nucleo convexo como el punto donde se tocan tres de cuatro regiones homogeneas de la imagen tetra-direccional suavizada, que son regiones que engloban la mayoria de las crestas con curvatura convexa.
Asimismo la invention aqui descrita tambien esta dirigida como otro objeto de la misma a un dispositivo para generar un vector de caracteristicas de una huella dactilar a partir de una imagen de la misma, dispositivo que se encuentra asociado a unos medios de captura de imagen de la huella y caracterizado porque comprende:
• un bloque de asignacion de etiquetas destinado a asignar a cada pixel de la imagen una de entre G etiquetas posibles, que permite generar la segunda imagen,
• un bloque de suavizado destinado a realizar un proceso de suavizado a la segunda imagen para obtener zonas que comprenden pixeles con las mismas etiquetas,
• un bloque de determinacion del nucleo convexo en la huella, destinado a localizar al menos un punto nucleo convexo en la segunda imagen suavizada,
• un bloque de ventana destinado a definir una ventana centrada en el punto nucleo convexo, realizar un muestreo de pixeles comprendidos en la ventana, obtener la etiqueta de cada pixel muestreado y generar el vector a partir de las etiquetas obtenidas de forma ordenada.
El bloque de asignacion de etiquetas comprende:
• un filtro preferiblemente de Sobel 3x3 con mascaras de convolucion con valores enteros y potencias de 2 para calcular los gradientes horizontales (Gx)
5 y los gradientes verticals (Gy) de la intensidad de la imagen (de los niveles de
grises) en los pixeles, y
• operadores logicos tipo OR y AND, operadores relacionales y operaciones de valor absoluto y multiplicacion por valores constantes.
10 El bloque de suavizado se encuentra adaptado para procesar la segunda imagen barriendo sus pixeles de uno en uno y proporcionar los pixeles de la imagen suavizada tambien de uno en uno, donde el bloque de suavizado define una ventana de tamano SxS, donde S se puede factorizar como S= s1 x s2 x ... x sn, y donde el bloque de suavizado comprende una serie de registros y n sub-bloques con una arquitectura
15 hibrida serie-paralelo de los que:
• un primer sub-bloque con tamano de ventana s1 x s1 esta adaptado para aplicar una funcion de suavizado en paralelo sobre s1 x s1 etiquetas de pixeles que se han ido almacenando en los correspondientes registros, sub-bloque cuya etiqueta resultante se va almacenando una tras otra en una serie de
20 registros;
• un segundo sub-bloque con tamano de ventana (s1 x s2) x (s1 x s2) esta adaptado para aplicar una funcion de suavizado en paralelo sobre s2 x s2 etiquetas suavizadas previamente por el primer sub-bloque y disponibles en los correspondientes registros que almacenan la salida del primer sub-bloque, sub-
25 bloque cuya etiqueta resultante se va almacenando una tras otra en una serie
de registros;
• asi hasta un sub-bloque enesimo con tamano de ventana (s1 x s2 x ... x sn) x (s1 x s2 x ... x sn), que de nuevo aplica la funcion de suavizado en paralelo sobre sn x sn etiquetas suavizadas previamente por el sub-bloque anterior y
30 disponibles en los correspondientes registros que almacenan la salida del sub-
bloque anterior, sub-bloque cuya salida proporciona la etiqueta del pixel en la imagen suavizada.
El bloque de determinacion del nucleo convexo comprende:
35 • un sub-bloque del bloque de determinacion del nucleo convexo adaptado para
convertir la segunda imagen suavizada en una imagen tetra-direccional,
5
10
15
20
25
30
35
preferentemente truncando los fog2G bits de cada pixel a 2 bits que codifican las etiquetas de la imagen tetra-direccional, y
• un sub-bloque del bloque de determinacion del nucleo convexo adaptado para localizar al menos un punto nucfeo convexo.
De manera adicional y en diversas realizaciones se puede disponer de:
• Un bloque de memoria destinado a almacenar la imagen capturada de la huella.
• Un bloque de mejora de la imagen destinado a procesar la misma mejorando su calidad.
• Un bloque de fusion de informacion adaptado para: adquirir una clave o contrasena, aplicar una funcion no invertible (hash) a dicha clave o contrasena y combinar el resultado del paso anterior con el vector de caracteristicas de la huella.
Dado que el dedo, la huella, no siempre se encuentran orientados de la misma manera respecto al sensor, se contempla la opcion de incluir un bloque de orientacion de la imagen destinado a girar o rotar la misma hasta una posicion determinada en el caso de que la huella captada por los medios de captura de imagen de la huella no se encuentre en una orientacion determinada, bloque que preferentemente gira por angulos fijos para aplicar transformaciones lineales entre pixeles originates (Xj, y,) y pixeles de las imagenes rotadas (xf) yf) con los parametros de la transformation lineal fijos para cada giro, y bloque que en una realization posible puede ser programable en el numero de rotaciones asi como los parametros asociados a las rotaciones.
En el caso de protection de plantilla ("template”), el dispositivo que implementa el metodo adicionalmente puede comprender:
• Un bloque de adquisicion adaptado para adquirir un numero aleatorio, clave o contrasena y aplicar un codificador de un codigo corrector de errores para generar un secreto,
• Un bloque con operadores XOR adaptado para calcular y almacenar unos datos de ayuda publicos a partir del vector de caracteristicas de la huella y el secreto y
• Un bloque decodificador de un codigo corrector de errores adaptado para
recuperar un secreto a partir de una extraccion del vector de caracteristicas y de los datos de ayuda almacenados de la hueila asociada al secreto.
Todos los bloques descritos anteriormente pueden incluirse en un dispositivo 5 electronico de bajo coste que, ademas, permite interactuar con el usuario en base a la evaluacion de la calidad con unos indicadores extraidos fundamentalmente de la operacion de suavizado. El dispositivo puede contar con LEDs para comunicar al usuario con un sencillo codigo de colores que la hueila ha sido adquirida con buena calidad y/o el dedo ha sido bien colocado sobre el sensor (por ejemplo, un LED 10 iluminado en verde indica proceso correcto y en rojo indica error). El dispositivo puede comunicar al usuario informacion mas extensa sobre la captura (de forma visual mediante un pequeno panel LCD o de forma audible mediante un sintetizador de voz sencillo), como por ejemplo “el dedo se ha colocado demasiado abajo en el sensor”. Puesto que el contexto de aplicacion es en linea y el usuario esta presente, esta 15 informacion puede traducirse en que el usuario introduzca otra vez su dedo en el sensor (mas arriba o abajo, con mas o menos presion, etc., segun la informacion que reciba del dispositivo). En tal caso, si el dispositivo incluye un panel LCD y/o un sintetizador de voz para la interaccion en linea con el usuario a la hora de capturar la hueila, estos tambien se pueden aprovechar para comunicar hacia el exterior el/los 20 candidato/s seleccionado/s en el proceso de reconocimiento.
La interaccion en linea con el usuario proporciona muestras biometricas de calidad, que, por tanto, reducen las tasas de error que se obtienen para unas tasas bajas de penetracion en la base de huellas y la tasa promedio de penetracion en un escenario 25 de busqueda incremental (“incremental search scenario”) en una aplicacion de indexado. Como consecuencia, el promedio de candidatos entre los que siempre aparece el poseedor de la hueila de entrada es un porcentaje pequeno de toda la base. Tambien mediante la interaccion con el usuario se mejoran las razones de falso rechazo (FRR) y falsa aceptacion (FAR) para una aplicacion de identificacibn.
30
DESCRIPCION DE LOS DIBUJOS
35 Para complementar la descripcion que se esta realizando y con objeto de ayudar a una mejor comprension de las caracteristicas de la invention, de acuerdo con un ejemplo preferente de realization practica de la misma, se acompana como parte integrante de
5
10
15
20
25
30
35
dicha description, un juego de dibujos en donde con caracter ilustrativo y no limitativo, se ha representado lo siguiente:
Figura 1.- Muestra un grafica donde se aprecia la tasa de error frente a la tasa de penetration obtenida con el metodo de la invention aplicada a tres bases de huellas: la FVC2000 DB2a y la FVC2002 DB1a (de las bases de huellas de “Fingerprint Verification Competition’’) y una base de huellas generada a partir de usuarios de un sistema experimental de identification en linea.
Figuras 2a-2d.- Muestran unas graficas donde se representa la razon de falsa aceptacion (FAR) y de falso rechazo (FRR) frente a un umbral que mide el porcentaje de etiquetas diferentes entre los vectores de caracteristicas obtenidos con el metodo de la invention aplicado a la base de huellas en linea: (a) Sin aplicar fusion multi- biometrica. (b) Con fusion (operador minimo) de 3 muestras por huella en la fase de registro. (c) Con fusion (operador suma) de 2 dedos y (operador minimo) de 3 muestras por dedo en la fase de registro. (d) Con fusion de una muestra de un dedo y contraseha.
Figuras 3a-3d.- Muestran unas imagenes donde se aprecian posibles resultados de los pasos basicos del metodo para generar un vector de caracteristicas de una huella dactilar: (a) Primera imagen de la que parte el metodo, una imagen en escala de grises captada por un sensor optico de huella dactilar (tomada de la FVC2002 DB1). (b) Segunda imagen suavizada, con regiones homogeneas de etiquetas, donde cada pixel lleva asociado una de entre ocho etiquetas (cada una de las ocho etiquetas se representa por una trama diferente). (c) Ventana con information distintiva centrada en el punto nucleo convexo. (d) Pixeles muestreados de la ventana para obtener el vector de caracteristicas.
Figura 4 - Muestra el diagrama de bloques funcionales de un dispositivo que extrae un vector de caracteristicas distintivo de una huella dactilar. Los bloques dibujados con linea discontinua se usan o no segun la aplicacion.
Figura 5.- Muestra una representation del bloque de suavizado 27 x 27 que emplea tres sub-bloques: un primer sub-bloque de tamano de ventana 3x3, que suaviza 3x3 pixeles; un segundo sub-bloque de tamano de ventana 9x9, que aplica suavizado sobre 3x3 resultados del sub-bloque anterior; y, por ultimo un sub-bloque 27 x 27, que aplica suavizado sobre 3x3 resultados del sub-bloque anterior.
5
10
15
20
25
30
35
Figura 6.- Muestra el diagrama de bloques funcionales de un dispositivo que implementa un metodo de indexation e identificacion/autenticacion por huella y posible clave: (1A) Fase de registro sin clave (2A) Fase de verificacion sin clave (1B) Fase de registro con clave (2B) Fase de verificacion con clave. Los caminos que no se marcan se usan tanto en la fase de registro como en la de verificacion. Los bloques y caminos dibujados con linea discontinua se usan o no segun la aplicacion.
Figura 7.- Muestra el diagrama de bloques funcionales de un dispositivo que implementa un sistema de cifrado biometrico de identificacion/autenticacion por huella: (1) Fase de registro (2) Fase de verificacion. Los caminos que no se marcan se usan tanto en la fase de registro como en ia de verificacion. Los bloques y caminos dibujados con linea discontinua se usan o no segun la aplicacion.
REALIZACION PREFERENTE DE LA INVENCION
A la vista de las figuras se describe a continuacion un modo de realizacion del objeto de la invencion aqui descrita.
El metodo de la invencion se ha implementado en un dispositivo electronico tambien objeto de esta invencion; para una realizacion particular del dispositivo se selecciona una implementacidn en una FPGA de Xilinx, una Virtex 6 XC6VLX240T-3FFG1156, que contiene 37680 slices y 416 bloques RAM de 36 Kbits. El metodo de la invencion tambien se podria implementar en un circuito integrado de aplicacion especifica (ASIC); en tal caso, el dispositivo electronico seria aim mas pequeho, consumiria menos potencia y podria integrarse con sensores de huellas (por ejemplo, de tipo capacitivo) que emplean tecnologias CMOS.
En una realizacion preferida del metodo de identificacion de huellas dactilares a partir de una extraccion de vectores de caracteristicas de la invencion se ha implementado de la siguiente manera. Un bloque asigna a cada pixel de una imagen, correspondiente a una huella dactilar, una de entre ocho etiquetas posibles, empieando 3 bits para codificar las etiquetas, 8 bits para codificar intensidades (luminancias) de la imagen de la huella en escala de grises y 14 bits para los gradientes (obtenidos mediante filtros de Sobel 3x3), generandose una segunda
imagen.
Un bloque que aplica suavizado sobre la segunda imagen emplea un bloque de suavizado 3x3 conectado en cascada con otro bloque 9x9, conectado en cascada con 5 otro bloque 27x27. Un bloque detecta el nucleo convexo de la huella como el punto donde intersectan tres de las cuatro regiones de la imagen tetra-direccional suavizada.
La segunda imagen suavizada se procesa para seleccionar una ventana distintiva centrada en el nucleo convexo. En este caso la ventana tiene unas dimensiones de 10 129x129 pixeles, muestreada de 8 en 8 pixeles, es decir, que se genera una cadena
de 867 bits por huella capturada. La implementacion incluye, ademas, bloques para calcular indicadores de calidad, una memoria para almacenar la imagen de la huella en escala de grises y un bloque que aplica una rotacion sobre la imagen en escala de grises almacenada en la memoria. Todo ello ocupa el 18.31% de los slices y el 15.87% 15 de los bloques RAM, pudiendose alcanzar una frecuencia maxima de operacion de 257.7 MHz y considerando una huella con 374 filas x 388 columnas (como las de la FVC 2002 DB1). Aplicando un procesado pixel a pixel de la huella, esto significa que el tiempo en obtener los 867 (17x17x3) bits del vector de caracteristicas de una captura (sin rotaciones) puede ser de 0.56 ms (374 x 388 / 257.7 ps).
20
Si se tienen en cuenta 3 rotaciones de la huella para registrar a un usuario, se almacenan vectores de 2601 (3 x 17 x 17 x 3) bits por usuario. En la FPGA Virtex 6 considerada, pueden almacenarse los vectores de casi 5900 usuarios en los 416 bloques RAM de 36 Kbits.
25
El bloque que ordena los niveles de similitud entre el vector de entrada y los almacenados, que aplica un metodo de insercion y genera una lista con 50 candidatos, ocupa el 11.48% del total de slices de la FPGA Virtex 6 que estamos considerando y permite una frecuencia maxima de 207.5 MHz. Esto significa que el tiempo invertido en 30 la fase de recuperacion es bastante bajo (varias decimas de milisegundo para ordenar 5900 usuarios).
El mismo dispositivo, en este caso la misma FPGA, puede incluir todos los bloques requeridos por las fases de indexado y recuperacion del metodo de la invention. En el 35 caso de la Virtex 6 XC6VLX240T-3FFG1156 de Xilinx como dispositivo unico, 66 bloques RAM de 36 Kbits se emplean para almacenar la huella y la ventana distintiva (considerando una huella con 374 filas x 388 columnas como las de la FVC 2002 DB1)
5
10
15
20
25
30
35
y se dispone de 350 bloques RAM de 36 Kbits, que permiten registrar mas de 4950 usuarios (considerando 2601 bits por usuario).
El metodo de ia invencion, implementado en este ejemplo de realization FPGA, se ha evaluado con dos de las bases de huellas de “Fingerprint Verification Competition”: la FVC2000 DB2a y la FVC2002 DB1a, con 800 capturas cada una. Hay que tener en cuenta que bases como las FVC estan construidas con muchas capturas de mala calidad y mal adquiridas para probar la bondad de tecnicas complejas de identificacion e indexado. Ademas, tambien se ha considerado una base de huellas con 560 capturas, generada a partir de usuarios de un sistema experimental de identificacion en linea.
La colocacion del dedo es importante para extraer correctamente el vector de caracteristicas. En el contexto de aplicacion en linea en el que el usuario quiere identificarse, el dedo se suele colocar adecuadamente. Por ejemplo, en el experimento de registro de usuarios en linea en el que se capturaron 560 huellas, 23 capturas no permitieron extraer la ventana distintiva (4,11%). En las bases de huellas FVC2000 DB2 y FVC2002 DB1, con 800 capturas, como el contexto de aplicacion es distinto, el numero de capturas de las que no puede extraerse correctamente el vector de caracteristicas es bastante superior: 149 en la FVC2000 DB2 (18.6%) y 104 en la FVC2002 DB1 (13%).
La calidad de la imagen capturada tambien es importante evaluarla, pues en una captura de 560 huellas, 10 capturas (1.79%) fueron de muy mala calidad (porque las huellas realmente estaban deterioradas). En las bases de huellas FVC2000 DB2 y FVC2002 DB1, 16 (2%) y 24 (3%) capturas son tambien de muy mala calidad (debido a huellas deterioradas o capturas no bien adquiridas).
La Figura 1 representa la tasa de error frente a la tasa de penetracion obtenida con la tecnica de la invencion implementada en este ejemplo de realizacion y aplicada a las tres bases de huellas consideradas. Para obtener esta figura, en todas las bases se han eliminado las huellas de las que no se puede extraer su vector de caracteristicas correctamente y que son de muy mala calidad (los porcentajes comentados anteriormente), puesto que con el dispositivo de la invencion, que interactua con el usuario, estos porcentajes se hubieran reducido a cero. Se ha aplicado una mejora sobre las imagenes en escala de grises (aplicando filtros complejos) y reforzado la tecnica de deteccion del nucleo convexo. Como vectores de caracteristicas registrados
en la base se han tornado los de la primera captura de cada individuo (con 5 rotaciones en la FVC2002 DB1, 3 rotaciones en la FVC 2000 DB2, y ninguna en la tercera de las bases). Como vectores de entrada se han tornado todos los del resto de capturas, sin ninguna rotacion. Para calcular el nivel de simifitud entre el vector de 5 entrada y los almacenados previamente rotados (en el caso de las FVC2002 DB1 y FVC 2000 DB2) se ha seleccionado el maximo de los niveles de similitud con cada uno de los almacenados.
La tasa promedio de penetracion que hay que llevar a cabo cuando no se quieren 10 cometer errores en la recuperacion del poseedor de la huella de entrada (“incremental search scenario”), en las mismas condiciones que los resultados de la Figura 1, ha sido 3.16% en la FVC2000 DB2, 2.88% en la FVC2002 DB1 y 1.62% en la tercera de las bases analizadas.
15 El mismo dispositivo, en este caso la misma FPGA, puede incluir una implementacion de la funcion hash ganadora de la ultima competicion SHA-3 del NIST, Keccak, para permitir la identificacion/autenticacion por el doble factor de “quien eres” y “lo que sabes”. Esta funcion para generar 512 bits ocupa 1188 slices (3.15% del total) permitiendo una frecuencia maxima de 435.3 MHz.
20
La Figura 2 representa la razon de falsa aceptacion (FAR) y de falso rechazo (FRR) frente a un umbral que mide el nivel de disimilitud (porcentaje de etiquetas diferentes entre los vectores de caracteristicas). Los resultados corresponden a la base de huellas con capturas en linea. La Figura 2a ilustra los resultados de una identificacion 25 sin fusion biometrica. El valor donde las razones se intersectan (EER) es 5.4%. La Figura 2b ilustra los resultados de una identificacion con fusion de 3 muestras capturadas por cada huella del individuo en la fase de registro y una muestra capturada en la fase de verificacion. El valor donde las razones se intersectan (EER) es 2.5%. La Figura 2c ilustra los resultados de una identificacion con fusion de 2 dedos 30 por individuo, con 3 muestras capturadas por cada dedo en la fase de registro y una muestra capturada por cada dedo en la fase de verificacion. El valor donde las razones se intersectan (EER) es 0.9%. La Figura 2d ilustra los resultados de una identificacion con fusion de los vectores de caracteristicas con una funcion hash que devuelve 512 bits aplicada sobre una palabra de paso o contrasena para cada individuo. El valor 35 donde las razones se intersectan (EER) es 0%.
El mismo dispositivo, en este caso la misma FPGA, puede incluir todos los bloques
requeridos por la tecnica de proteccion del metodo de la invention. En el caso de la Virtex 6 XC6VLX240T-3FFG1156 de Xilinx como dispositivo unico, el bloque codificador de Reed-Solomon para n=511 y k=383 ocupa 473 slices (1.26% de los slices) y permite operar a una frecuencia maxima de 415 MHz. El bloque decodificador 5 de Reed-Solomon para n=511 y k=383 ocupa 24.763 slices (el 65% del total de slices) trabajando con una frecuencia maxima de 78.5 MHz.
De manera mas detallada el metodo para generar un vector de caracteristicas de una huella dactilar genera el vector que es una cadena de bits de longitud fija que 10 representa de forma compacta una huella dactilar. Para obtener ese vector, y tal y como se ha detallado anteriormente, se parte de una primera imagen como por ejemplo la captura de la huella como imagen en escala de grises (Figura 3a), se determina para cada pixel el gradiente de la intensidad de la imagen (de los niveles de grises) en ese pixel, y se determina la direccion del gradiente mediante un angulo con 15 respecto a un eje de referencia. El intervalo de valores posibles de angulos se divide en G sub-intervalos (gi,..., go) que no se solapan y cuya union da lugar a! intervalo completo de posibles valores, cada sub-intervalo gk englobando angulos desde ak.i hasta ctk. A cada sub-intervalo, gk, se le asocia una etiqueta, ck. A cada pixel de la imagen de la huella se le asocia la etiqueta correspondiente al sub-intervalo al que
20 pertenece el angulo de la direccion del gradiente en ese pixel. Como resultado, se
genera una segunda imagen a partir de la primera imagen de la huella, donde en dicha segunda imagen cada pixel Neva asociado una etiqueta. A continuation, se realiza un proceso de suavizado a la segunda imagen para obtener zonas que comprenden pixeles con las mismas etiquetas (Figura 3b). Se localiza al menos un punto nucleo
25 convexo en la segunda imagen suavizada y se define una ventana centrada en el
punto nucleo convexo (Figura 3c). Se realiza un muestreo de pixeles comprendidos en la ventana (Figura 3d). Las etiquetas de los pixeles muestreados, ordenadas, generan el vector de caracteristicas de la huella. Si las etiquetas se codifican con bits, el vector es una cadena de bits ordenada y de longitud fija.
30
Si el numero de etiquetas, G, considerado es pequeiio (por ejemplo, cuatro etiquetas), el vector que se va a generar es poco distintivo de la huella, es decir, puede haber muchas huellas con un vector parecido, lo que se traduce en una tasa elevada de falsa aceptacion, en el caso de una aplicacion de identificacion/autenticacion. Si puede 35 emplearse un numero como cuatro etiquetas en apiicaciones de clasificacion, en las que las huellas se distribuyen en grupos pre-establecidos de acuerdo a la similitud de sus vectores de caracteristicas, de forma que la huella de entrada se clasifica en uno
5
10
15
20
25
30
35
de esos grupos o se le asignan grados de pertenencia a varios de esos grupos.
Por el contrario, si se contempla un numero de etiquetas alto (por ejemplo, dieciseis etiquetas), el vector que se va a generar es muy distintivo, pero cambia demasiado para diferentes capturas de una misma huella, lo que se traduce en una tasa elevada de falso rechazo, en el caso de una aplicacion de identificacion/autenticacion. En una realizacion preferente del metodo de la invencion para aplicaciones de identificacion/autenticacion, se han elegido ocho etiquetas, que es el caso que se ilustra en la Figura 3.
Los sub-intervalos deben cubrir todo el rango de angulos que pueden tener las direcciones de los gradientes (entre 0° y 180°) de una forma mas o menos espaciada. En una realizacion preferente de la invencion para aplicaciones de identificacion/autenticacion con G=8, se han elegido los siguientes: gi = [0°, 22.5°), g2 = [22.5°, 45°), g3 = [45°, 67.5°), g4 = [67.5°, 90°), g5 = [90°, 112.5°), g6 = [112.5°, 135°), g7 = [135°, 157.5°) y g8 = [157.5°, 180°), eligiendo como eje de referenda el eje longitudinal de la huella.
El tamano de la ventana centrada en el nucleo convexo depende del sensor empleado. Por ejemplo, para las huellas de las bases FVC2002 DB1 (imagenes de 388x374 pixeles capturadas mediante un sensor optico), las de la FVC2000 DB2 (imagenes de 256x364 pixeles capturadas mediante un sensor capacitivo de bajo coste) y las de una base experimental (imagenes de 440x300 pixeles capturadas mediante un sensor optico), se ha probado que una ventana adecuada es de 129x129 pixeles (Figura 3c). Como representacion distintiva y compacta de la huella no son necesarios todos los pixeles de la ventana, sino que se aplica un muestreo 1/n (“down-sampling"), que significa emplear, preferentemente, 1 de entre n pixeles consecutivos en cada fiia de la ventana. Por ejemplo, para las huellas de las bases citadas anteriormente, se aplica un muestreo 1/8 sobre la ventana de 129x129 pixeles, que significa emplear la informacion de 17x17 pixeles (Figura 3d). En este ejemplo, si las ocho etiquetas se codifican con 3 bits, el vector obtenido para cada huella es una cadena de 17x17x3 = 867 bits = 108.4 Bytes. Estos vectores pueden cifrarse, por motivos de seguridad, y/o comprimirse (por ejemplo aplicando “Run-Length Encoding"), para consumir menos memoria y/o transmitirse mas facilmente.
La tecnica para extraer los vectores de caracteristicas de las huellas se implementa mediante el empleo de los siguientes bloques basicos (Figura 4):
10
15
• Un sensor de huella, que proporciona una imagen de la huella en escala de grises. Si el sensor no aplica mejoras sobre la imagen adquirida, se incluye un bloque de mejora de la imagen.
• Si la posicion del dedo sobre el sensor de huella puede rotar, tambien se incluye un bloque que aplica rotacion a la imagen de entrada en escala de grises.
• Un bloque que asigna a cada pixel de la imagen una de entre las G etiquetas posibles y genera una segunda imagen.
• Un bloque que aplica suavizado a la segunda imagen.
• Un bloque para detectar el nucleo convexo (o varios puntos candidatos a ser nucleo convexo) en la huella.
• Un bloque para determinar la ventana distintiva, muestrear sus pixeles y almacenar los valores de las etiquetas de esos pixeles en una cadena de bits.
• Adicionalmente, se puede incluir un bloque que evalua la calidad de todo el proceso y permite la interaction en llnea con el usuario.
El bloque que asigna a cada pixel de la imagen una de entre las G etiquetas posibles puede implementarse mediante un sencillo circuito digital. El primer paso que Neva a cabo este bloque es calcular los gradientes horizontales (Gx) y verticales (Gy) de ia 20 intensidad de la imagen (de los niveles de grises) con algun filtro adecuado para su implementation hardware (por ejemplo, mediante filtros de Sobel 3x3 que emplean mascaras de convolution con valores enteros y potencias de 2). Este paso es habitual en cualquier tecnica de extraction de caracteristicas. A continuation, en vez de calcular en cada pixel la direction del gradiente de una forma mas o menos exacta 25 mediante una funcion trigonometrica (en hardware dedicado, se emplea usualmente un procesador CORDIC, “Coordinate Rotation Digital Computer”, para calcular el angulo a cuya tangente es (Gy/Gx)) y luego calcular el sub-intervalo de entre los G posibles al que pertenece a, la tecnica de esta invention compara entre si los valores de los gradientes G, y G, y aplica operadores logicos (OR y AND), operadores 30 relacionales y operaciones de valor absoluto y multiplication por valores constantes, que es mucho mas eficiente desde un punto de vista hardware. En primer lugar, el bloque determina que a pertenece a un primer cuadrante comprendido entre 0° y 90°, cuando Gx y Gy tienen el mismo signo. En segundo lugar, dentro de este primer cuadrante, el bloque determina que:
35 - si e! sub-intervalo que se evalua, [an, ak), esta totalmente incluido en el
primer cuadrante, porque tanto an como ak son menores o iguales que
5
10
15
20
25
30
35
90°, entonces
cce[cxk-i,ak) si Gx- tan(ak-i) < Gy < Gx • tan(ak)
- si el sub-intervalo que se evalua, [«k-i, ak) esta parcialmente incluido en el primer cuadrante, porque an es menor que 90° pero ak es mayor que 90°, entonces
ae[ak.i, ak) si Gx- tan(ak-i) < Gy
El bloque determina que a pertenece a un segundo cuadrante comprendido entre 90° y 180°, cuando Gx y Gy tienen signos distintos. En tal caso, dentro de este segundo cuadrante, el bloque determina que:
- si el sub-intervalo que se evalua, [ak.i, ak), esta totalmente incluido en el segundo cuadrante, porque tanto «k.i como ak son mayores o iguales que 90°, entonces
a£[ak.j, ctk) si IG*' tanCock-j)) > \Gy\ > |G^-tan(ak)|
- si el sub-intervalo que se evalua, [ak-i, ak), esta parcialmente incluido en el segundo cuadrante, porque ak es mayor que 90° pero ak_i es menor que 90°, entonces
a£[ak-i,ak) si \Gy \ > \GX ■ tan(ak)|
Donde tan(ak) y tan(ak-i) son valores constantes previamente conocidos una vez se han fijado los sub-intervalos a considerar, gk = [a*.-,, ak).
El circuito digital que implementa estas operaciones puede emplear aritmetica de punto fijo, y palabras de log2G bits para codificar las G etiquetas posibles correspondientes a los G sub-intervalos gk.
El bloque de suavizado aplica un tamano de ventana S x S, donde S depende, en general, del tipo de sensor de huella empleado. Como suavizar en paralelo S x S pixeles (para conseguir elevada velocidad de procesado) puede ser muy costoso, se puede optar por conectar en cascada varios sub-bloques de suavizado uno tras otro. Si el valor de S se puede factorizar como S= s1 x s2 x ... x sn: primero se puede usar un sub-bloque con tamano de ventana s1 x s1, que aplica la funcion de suavizado
5
10
15
20
25
30
35
sobre s1 x s1 etiquetas de pixeles; el segundo sub-bloque con tamano de ventana (s1 x s2) x (s1 x s2), que aplica la funcion de suavizado sobre s2 x s2 etiquetas suavizadas previamente por el sub-bloque anterior, y asi hasta el ultimo sub-bloque con tamano de ventana (s1 x s2 x ... x sn) x (s1 x s2 x ... x sn), que de nuevo aplica la funcion de suavizado sobre sn x sn etiquetas suavizadas previamente por el sub- bloque anterior. Por ejemplo, para sensores opticos que captan imagenes de 388x374 o 440x300 pixeles o sensores capacitivos que captan imagenes de 256x364 pixeles, se ha probado que es adecuado un bloque de suavizado 27 x 27 que se puede realizar con tres sub-bloques de suavizado conectados en cascada: un primer sub-bloque de tamano de ventana 3x3, que suaviza 3x3 pixeles; un segundo sub-bloque de tamano de ventana 9x9, que aplica suavizado sobre 3x3 resultados del sub-bloque anterior; y, por ultimo un sub-bloque 27 x 27, que aplica suavizado sobre 3x3 resultados del sub-bloque anterior {Figura 5). En una realizacion preferente, la funcion de suavizado sj x sj considera una ventana de pixeles en torno al pixel analizado y asigna a este el valor de la etiqueta que mas veces aparece en toda la ventana. La tecnica de conectar n sub-bloques en cascada permite reducir el hardware requerido y la latencia del proceso de suavizado porque procesar S x S valores en paralelo es mucho mas costoso que procesar en paralelo sj x sj pixeles. Por ejemplo, si los pixeles de la imagen se van procesando uno a uno, el suavizado de toda la imagen se puede realizar con estos sub-bloques en cascada (y los bancos de registros necesarios) invirtiendo tantos ciclos de reloj como pixeles tenga la imagen.
El bloque que calcula el nucleo convexo (o los puntos candidatos a serlo) puede emplear tecnicas ampliamente conocidas, como las basadas en el cafculo del indice de Poincare. Una ventaja del metodo de la invencion es que permite reforzar la deteccion de este punto sin apenas coste computacional, como se describe a continuacion. Partiendo de la segunda imagen suavizada, se obtiene directamente una imagen tetra-direccional suavizada. Por ejemplo, si G=8 y los ocho sub-intervalos son gi = [0°, 22.5°), g2 = [22.5°, 45°), g3 = [45°, 67.5°), g4 = [67.5° 90°), g5 = [90° 112.5°), gs = [112.5°, 135°), g7 = [135°, 157.5°) y g8 = [157.5°, 180°), se pueden obtener directamente los siguientes cuatro sub-intervalos g’,= g! U g8, g’2= g2 U g3, g’3= g4 U g5 y g'4= g6 U g7. Puesto que cada pixel de la segunda imagen suavizada se representa por 3 bits, la obtencion de la imagen tetra-direccional suavizada es tan simple como truncar de 3 a 2 los bits de cada pixel, si las etiquetas se codifican adecuadamente. El nucleo convexo se puede determinar como el punto donde intersectan tres de cuatro regiones homogeneas de la imagen tetra-direccional suavizada, que son las tres regiones que engloban la mayoria de las crestas con curvatura convexa. Como la
deteccion correcta del nucleo convexo es importante para extraer correctamente el vector de caracteristicas, se pueden considerar varios puntos como candidatos y extraer los vectores de caracteristicas asociados a ellos.
5 La tecnica de la invencion permite contemplar huellas adquiridas con el dedo rotado respecto al eje longitudinal del sensor. La ventana con informacion representativa de la huella descrita anteriormente esta caracterizada por su invariancia ante traslaciones del dedo sobre el sensor puesto que el punto central de la ventana es el punto nucleo convexo. Sin embargo, la ventana no es invariante a rotaciones. Para asegurar que 10 diferentes capturas de la misma huella adquiridas con posibles rotaciones presenten un nivel de similitud alto con su vector de caracteristicas correspondiente almacenado en la base, una solucion con bajo coste en hardware es incluir un bloque que permite rotar la imagen de la huella en escala de grises. Pueden tenerse en cuenta R rotaciones previas a la obtencion de la segunda imagen (por ejemplo, con R=5: -22.5°, 15 -11.25°, 0°, 11.25° y 22.5°). Si la imagen capturada de la huella, cuyos pixeles tienen
por coordenadas cartesianas (x,, yj), se rota un angulo (3 respecto al pixel de coordenadas (xc, yc), las coordenadas de los pixeles pasan a ser ahora (xf, yf). Esta operacion se puede expresar matematicamente como sigue:
1
0 xc cos(/?) —sen(fi) 0 1 0 —xc Xi Xf
0
1 yc sen(fi) cos(/?) 0 0 1 -yc y« — yr
0
0
l. . 0 0 1. .0 0 i . Li J . i.
20
Por ejemplo, si el punto de giro se toma como el punto central de la imagen de la huella (para una imagen de 374 filas y 388 columnas, los valores para xc e yc son 187 y 194, respectivamente), y e! angulo de rotacion se elige como 11.25°, la expresion anterior se puede reducir a la siguiente:
ro.9808
-0.1951 41.4407 j ■Xf \xf]
L0.1951
0.9808 -32.7542J yi 1
Por ejemplo, si cada pixel de la imagen de entrada se direcciona por sus coordenadas (xit y,) en la memoria donde se almacena la captura, el bloque que aplica una rotacion de 11.25°, como la anterior, direcciona ahora a ese pixel por sus coordenadas (xf, yf). Como las rotaciones que se contemplan son fijas, este bloque implementa una 30 transformacion lineal entre (xh yO y (xf, yf) con parametros constantes, por lo que no requiere e! empleo de multiplicadores. En una realizacion posible de este bloque, el numero de rotaciones puede ser programable asi como los parametros asociados a
5
10
15
20
25
30
35
las rotaciones.
Para hacer la tecnica de clasificacion, indexado o identificacion robusta a rotaciones, se contemplan mas o menos angulos segiin el nivel de rotacion que se quiera soportar. Las rotaciones se pueden contempiar en la fase de indexado o registro y/o en la fase de recuperacion o verificacion y no tienen por que coincidir en numero. Asl, por ejemplo, en la fase de indexado o registro, si se consideran P candidatos de nucleo convexo y V plxeles por ventana distintiva, se puede extraer una cadena de P x V x 3 bits por cada rotacion, segun lo comentado anteriormente. Si se contemplan R rotaciones, el indice total que se emplea para representar una captura de huella concatena las R cadenas de bits, resultando un vector caracterlstico de una longitud deRxPxVx3 bits.
El metodo genera un numero de identificacion digital (un vector deRxPxVx3 bits) que se le asocia al individuo poseedor de la huella, de forma que puede generarse una base con los N numeros asociados a los N individuos registrados (los vectores pueden cifrarse, por motivos de seguridad, y/o comprimirse, para consumir menos memoria y/o transmitirse mas facilmente). En aplicaciones multi-biometricas que empleen D dedos por individuo, se genera para cada individuo un vector de D x R x P x V x 3 bits concatenando los D numeros de identificacion que se obtienen a partir de la huella de cada dedo. En aplicaciones multi-biometricas que empleen Z muestras del mismo dedo dei individuo, se genera para cada individuo un vector deZxRxPxVx3 bits concatenando los Z numeros de identificacion que se obtienen a partir de cada muestra.
En la fase de recuperacion se genera una lista ordenada de individuos registrados en la base, calculando un nivel de disimilitud (o similitud) entre el vector de caracteristicas de entrada y cada vector almacenado. Si los vectores han sido cifrados y/o comprimidos deben ser descifrados y/o descomprimidos para calcular e! nivel de disimilitud. El nivel de disimilitud se calcula como el porcentaje de etiquetas que son diferentes entre el vector de acceso y cada vector almacenado. En el caso de multi- biometria con D dedos, la disimilitud global se obtiene a partir de la fusion (por ejemplo con el operador suma) de las disimilitudes de cada dedo. En el caso de multi-biometna con Z muestras de un mismo dedo, la disimilitud global se obtiene como la fusion (por ejemplo, con el operador minimo) de las disimilitudes con cada muestra. La lista de individuos registrados se ordena de menor a mayor nivel de disimilitud, pudiendose truncar la lista en un numero dado de individuos o un porcentaje maximo de disimilitud.
5
10
15
20
25
30
35
En una aplicacion de identificacion, se selecciona el candidato de la lista que posea menor disimilitud (o, equivalentemente, mayor similitud). En una aplicacion de autenticacion, el nivel de disimilitud se compara con un umbral.
Para generar numeros de identificacion digital diferentes para una misma huella dactilar, el numero obtenido segun el metodo de la invencion puede combinarse con el resultado de una funcion no invertible (hash) de una clave o palabra de paso, siendo la combination: (a) una simple concatenation o (b) una intercalation determinada de los bits o (c) una operacion XOR entre los dos (para ello deben tener la misma longitud de bits), combinacion que permite indexacion e identificacion (o autenticacion) por el doble factor de “quien eres” (la huella) y “lo que sabes" (la clave o palabra de paso) y que permite revocar numeros de identificacion comprometidos, generando otros nuevos con una nueva clave o palabra de paso.
La tecnica para llevar a cabo la fase de recuperacion o verificacion se implements mediante los siguientes bloques basicos (Figura 6): (a) Una memoria para almacenar los numeros de identificacion digital o vectores de caracteristicas, Bi (i=1, .... N), de N individuos y asi permitir su registro. (b) Un bloque para calcular la similitud entre el numero de identificacion obtenido de la huella a identificar, B't y los N numeros almacenados, Bi (i=1, N), bloque que calcula la igualdad entre una etiqueta de
entrada y otra almacenada (ambas codificadas con 3 bits, en el caso de G=8) preferentemente con 3 operadores XOR cuyas salidas sean las entradas a un operador NOR, a continuacion un contador calcula el numero de etiquetas iguales entre el vector de entrada y cada vector almacenado (el nivel de disimilitud es el complemento del nivel de similitud). (c) En el caso de verificacion, un bloque que compara el resultado anterior con un umbral. En el caso de recuperacion, un bloque que ordena de mayor a menor las similitudes con cada vector almacenado, hasta llegar a un numero maximo, M, de candidatos. Existen muchos algoritmos de ordenacion reportados en la literatura (por ejemplo basados en arboles binarios o n- arios, metodos de insercion, etc.), pudiendose elegir uno u otro dependiendo de los objetivos de velocidad y recursos a emplear (los algoritmos mas rapidos suelen necesitar mas recursos que los mas lentos y vice versa).
Los numeros de identificacion digital, B, generados pueden protegerse mediante la tecnica denominada Fuzzy Commitment, de la siguiente manera:
• en la fase de registro: se asocia a cada usuario una palabra codigo aleatoria, Ci (i=1, ..., N), de un codigo corrector de errores (a B se le anaden ceros o unos hasta
5
10
15
20
25
30
que su tamano sea el mismo que el de las Ci) y se realiza el calculo y almacenamiento de una funcion hash de Ci, hash(Ci), y de los resultados Hi=(B XOR Ci), que se denominan datos de ayuda.
• en la fase de verification, dado un numero de entrada, B’, se calculan los Ci’=B’ XOR Hi (si B’ es similar a B, Ci’ sera similar a Ci), se aplica el codigo corrector de errores a Ci’ y a su resultado se le aplica el hash. Si el resultado coincide con algun hash de los almacenados, se identificara el usuario correspondiente (si N=1, el usuario sera autenticado).
* en una posible fase de comunicacion, Ci 6 B=Ci XOR Hi se pueden usar como secretos de los que generar claves criptograficas para cifrar o autenticar mensajes.
El codigo corrector de errores es preferiblemente un codigo Reed-Solomon, que trata las etiquetas codificadas con 3 bits como simbolos.
Para elegir la tasa de error que debe corregir el codigo Reed-Solomon se puede aplicar: (a) el porcentaje de etiquetas diferentes para las que se obtiene que la razon de falso rechazo coincide con la razon de falsa aceptacion, si se quiere un compromiso optimo entre ambas tasas; (b) el porcentaje de etiquetas diferentes para las que se obtiene una falsa aceptacion nula, si se quiere eliminar el intrusismo; o (c) el porcentaje de etiquetas diferentes para las que se obtiene un falso rechazo nulo, si se quiere eliminar la denegacion del servicio.
La tecnica para llevar a cabo la protection de los vectores de caracteristicas se implementa mediante los siguientes bloques basicos (Figura 7): (a) Un bloque de adquisicion adaptado para adquirir un numero aleatorio, clave o contraseha y aplicar un codificador de un codigo corrector de errores para generar una palabra codigo. (b) Un bloque adaptado para generar unos datos de ayuda publicos a partir del vector de caracteristicas de la huella y de la palabra codigo, para calcular una funcion hash de la palabra codigo y almacenar los resultados en una memoria. (c) Un bloque decodificador de un codigo corrector de errores adaptado para recuperar un secreto a partir de una extraction del vector de caracteristicas y de los datos de ayuda almacenados de la huella asociada al secreto.

Claims (12)

  1. 5
    10
    15
    20
    25
    30
    35
    REIVINDICACIONES
    1. Metodo para generar un vector de caracteristicas de una huella dactilar para su identificacion a partir de una primera imagen de la misma en escala de grises que contiene crestas y valles de la huella, metodo caracterizado porque comprende:
    a) determinar para cada pixel de la primera imagen, py (donde ij hacen referencia a la fila y columna del pixel en la imagen), el gradiente de la intensidad de la imagen {de los niveles de grises) en ese pixel,
    b) determinar la direccion del gradiente mediante un angulo ay con respecto a un eje de referencia,
    c) dividir el intervalo de valores posibles de angulos, ay, en G sub-intervalos (g-,,..., gG) que no se solapan y cuya union da lugar al intervalo completo de posibles valores, englobando cada sub-intervalo gk angulos desde un valor ak„i hasta ak,
    d) etiquetar cada gk sub-intervalo con una etiqueta, ckl
    e) asociar, para cada pixel py de la primera imagen, la etiqueta correspondiente al sub-intervalo al que pertenece el angulo ay correspondiente a ese pixel,
    f) generar una segunda imagen a partir de la primera imagen, donde en dicha segunda imagen cada pixel Neva asociado una etiqueta,
    g) realizar un proceso de suavizado a la segunda imagen para obtener zonas que comprenden pixeles con las mismas etiquetas,
    h) localizar al menos un punto nucleo convexo en la segunda imagen suavizada,
    i) definir una ventana centrada en el punto nucleo convexo,
    j) realizar un muestreo de pixeles comprendidos en la ventana, y
    k) generar el vector a partir de las etiquetas de los pixeles muestreados en el paso anterior, de forma ordenada.
  2. 2. Metodo segun reivindicacion 1 caracterizado porque cada sub-intervalo gk comprende angulos comprendidos entre 0° y 180°.
  3. 3. Metodo segun reivindicacion 1 caracterizado porque la determinacion del sub- intervalo al que pertenece el angulo a del gradiente en un pixel se determina a partir del calculo del gradiente horizontal (Gx) y del gradiente vertical (Gy) de la intensidad de la imagen (de los niveles de grises) en ese pixel.
    5
    10
    15
    20
    25
    30
    35
  4. 4. Metodo segun reivindicacion 3 caracterizado porque la determinacion del sub- intervalo gk = [an.!, ak) que se le asocia al pixel p«j comprende:
    • determinar el signo de Gx
    • determinar el signo de Gy
    • determinar que :
    • a pertenece al primer cuadrante de angulos comprendido entre 0° y 90°, cuando Gx y Gy tienen el mismo signo, y, dentro de este primer cuadrante se distinguen dos situaciones segun el rango de angulos que abarca cada sub-intervalo a evaluar:
    - si el sub-intervalo que se evalua, [ak.i, ak), esta totalmente incluido en el primer cuadrante, porque tanto ak.i como ak son menores o iguales que 90°, entonces
    ae[ak-i,ak) si G^-tanCcck i) < Gy < Gx ■ tan(ak)
    - si e! sub-intervalo que se evalua, ak) esta parcialmente incluido en el primer cuadrante, porque ak.i es menor que 90° pero ak es mayor que 90°, entonces
    ae[ak i, ak) si Gx■ tan(ak-i) < Gy
    a pertenece al segundo cuadrante comprendido entre 90° y 180°, cuando Gx y Gy tienen signos distintos, y, dentro de este segundo cuadrante se distinguen dos situaciones segun el rango de angulos que abarca cada sub-intervalo a evaluar:
    - si el sub-intervalo que se evalua, [ak.i, ak), esta totalmente incluido en el segundo cuadrante, porque tanto «k.i como cck son mayores o iguales que 90°, entonces
    ae[ak-i,ak) si IG^-tanCak-OI > \Gy \ > \GX -tan(ak)|
    - si el sub-intervalo que se evalua, [ak.i, ak), esta parcialmente incluido en el segundo cuadrante, porque ak es mayor que 90° pero ak_i es menor que 90°, entonces
    5
    10
    15
    20
    25
    30
    35
    a£[otk-i, an) si |Gy | > \GX • tan(ak)|
  5. 5. Metodo segun reivindicacion 1 caracterizado porque el proceso de suavizado calcula para cada pixel pi, de la segunda imagen preferentemente cual de las etiquetas es la que mas veces aparece en una ventana de tamano S x S pixeles de la segunda imagen, ventana centrada en el pixel a suavizar, donde S se puede factorizar como S= s1 x s2 x ... x sn, metodo que comprende:
    • comenzar con ventanas de tamano s1 x s1 pixeles y aplicarles el suavizado a sus s1 x s1 etiquetas,
    • continuar con ventanas de (s1 x s2) x (s1 x s2) pixeles y aplicar el suavizado sobre s2 x s2 etiquetas suavizadas previamente en el paso anterior,
    • proceder asi hasta llegar al tamano de ventana (s1 x s2 x ... x sn) x (s1 x s2 x ... x sn) pixeles y aplicar el suavizado sobre sn x sn etiquetas suavizadas previamente en el paso anterior.
    6 Metodo segun reivindicacion 1 caracterizado porque la determinacion del nucleo convexo adicionalmente comprende:
    • hacer otra division del intervalo de valores posibles de angulos, ay, en 4 sub-
    intervalos (g%.....g’4) que no se solapan y cuya union da lugar al intervalo
    completo de posibles valores,
    • etiquetar cada g’k sub-intervalo con una etiqueta, c’k,
    • convertir la segunda imagen suavizada, en la que a cada uno de los pixeles se le asocia una de entre G etiquetas (c-,,..., cG), donde-preferiblemente G > 4, en una imagen tetra-direccional suavizada, en la que a cada uno de sus pixeles se le asocia una de entre cuatro etiquetas (c'i,.,., c’4) y la conversion comprende a su vez:
    • cambiar cada etiqueta ck asociada al sub-intervalo de angulos gk por aquella etiqueta c'k asociada al sub-intervalo de angulos g’k que verifique que la interseccion gk fl g’k sea la mayor, y
    • determinar el nucleo convexo como el punto donde se tocan tres de cuatro regiones homogeneas de la imagen tetra-direccional suavizada, que son regiones que engloban la mayoria de las crestas con curvatura convexa
  6. 7. Dispositivo para generar un vector de caracteristicas de una huella dactilar a
    5
    10
    15
    20
    25
    30
    35
    partir de una imagen de la misma segun el metodo descrito en las reivindicaciones 1 a 6, dispositivo que se encuentra asociado a unos medios de captura de imagen de la huella y caracterizado porque comprende:
    • un bloque de asignacion de etiquetas destinado a asignar a cada pixel de la imagen una de entre G etiquetas posibles, que permite generar la segunda imagen,
    • un bloque de suavizado destinado a realizar un proceso de suavizado a la segunda imagen para obtener zonas que comprenden pixeles con las mismas etiquetas,
    • un bloque de determinacion del nucleo convexo en la huella, destinado a localizar ai menos un punto nucleo convexo en la segunda imagen suavizada,
    • un bloque de ventana destinado a definir una ventana centrada en el punto nucleo convexo, realizar un muestreo de pixeles comprendidos en la ventana, obtener la etiqueta de cada pixel muestreado y generar el vector a partir de las etiquetas obtenidas de forma ordenada.
  7. 8. Dispositivo segun reivindicacion 7 caracterizado porque adicionalmente comprende un bloque de memoria destinado a almacenar la imagen capturada de la huella.
  8. 9. Dispositivo segun reivindicacion 7 caracterizado porque comprende un bloque de orientacion de la imagen destinado a girar o rotar la misma hasta una posicion determinada en el caso de que la huella captada por los medios de captura de imagen de la huella no se encuentre en una orientacion determinada, bloque que preferentemente gira por angulos fijos para aplicar transformaciones lineales entre pixeles originales (xh yj) y pixeles de las imagenes rotadas (xf, yf) con los parametros de la transformacion lineal fijos para cada giro, y bloque que en una realization posible puede ser programable en el numero de rotaciones asi como los parametros asociados a las rotaciones.
  9. 10. Dispositivo segun reivindicacion 7 caracterizado porque el bloque de asignacion de etiquetas comprende:
    • un filtro preferiblemente de Sobel 3x3 con mascaras de convolution con valores enteros y potencias de 2 para calcular los gradientes horizontales (Gx) y los gradientes verticales (Gy) de las crestas de la huella, y
    5
    10
    15
    20
    25
    30
    35
    • operadores logicos tipo OR y AND, operadores relacionales y operaciones de valor absoluto y multiplicacion por valores constantes.
  10. 11. Dispositivo segun reivindicacion 7 caracterizado porque el bloque de suavizado se encuentra adaptado para procesar la segunda imagen barriendo sus plxeles de uno en uno y proporcionar los plxeles de la imagen suavizada tambien de uno en uno, donde el bloque de suavizado define una ventana de tamano SxS, donde S se puede factorizar como S= s1 x s2 x ... x sn, y donde el bloque de suavizado comprende una serie de registros y n sub-bloques con una arquitectura hibrida serie-paralelo de los que:
    • un primer sub-bloque con tamafio de ventana s1 x s1 esta adaptado para aplicar una funcion de suavizado en paralelo sobre s1 x s1 etiquetas de plxeles que se han ido almacenando en los correspondientes registros, sub-bloque cuya etiqueta resultante se va almacenando una tras otra en una serie de registros;
    • un segundo sub-bloque con tamano de ventana (s1 x s2) x (s1 x s2) esta adaptado para aplicar una funcion de suavizado en paralelo sobre s2 x s2 etiquetas suavizadas previamente por el primer sub-bloque y disponibles en los correspondientes registros que almacenan la salida del primer sub-bloque, sub- bloque cuya etiqueta resultante se va almacenando una tras otra en una serie de registros;
    • as! hasta un sub-bloque enesimo con tamano de ventana (s1 x s2 x ... x sn) x (s1 x s2 x ... x sn), que de nuevo aplica la funcion de suavizado en paralelo sobre sn x sn etiquetas suavizadas previamente por el sub-bloque anterior y disponibles en los correspondientes registros que almacenan la salida del sub- bloque anterior, sub-bloque cuya salida proporciona la etiqueta del pixel en la imagen suavizada.
  11. 12. Dispositivo segun reivindicacion 7 caracterizado porque adicionalmente comprende un bloque de fusion de informacion adaptado para:
    • adquirir una clave o contrasena,
    • aplicar una funcion no invertible (hash) a dicha clave o contrasena y
    • combinar el resultado del paso anterior con el vector de caracterlsticas de la huella.
    10
  12. 13. Dispositivo segun reivindicacion 7 caracterizado porque adicionalmente comprende los siguientes bloques:
    • un bloque de adquisicion adaptado para adquirir un numero aleatorio, clave o contrasena y aplicar un codificador de un codigo corrector de errores para generar un secreto,
    • un bloque con operadores XOR adaptado para calcular y almacenar unos datos de ayuda publicos a partir del vector de caracteristicas de la huella y el secreto y
    • un bloque decodificador de un codigo corrector de errores adaptado para recuperar un secreto a partir de una extraccion del vector de caracteristicas y de los datos de ayuda almacenados de la huella asociada al secreto.
ES201300721A 2013-07-31 2013-07-31 Método de identificación de huellas dactilares y dispositivo que hace uso del mismo Expired - Fee Related ES2556276B1 (es)

Priority Applications (3)

Application Number Priority Date Filing Date Title
ES201300721A ES2556276B1 (es) 2013-07-31 2013-07-31 Método de identificación de huellas dactilares y dispositivo que hace uso del mismo
PCT/ES2014/000131 WO2015015022A1 (es) 2013-07-31 2014-07-30 Método de identificación de huellas dactilares y dispositivo que hace uso del mismo
EP14832457.7A EP3093793A4 (en) 2013-07-31 2014-07-30 Fingerprint identification method and device using same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ES201300721A ES2556276B1 (es) 2013-07-31 2013-07-31 Método de identificación de huellas dactilares y dispositivo que hace uso del mismo

Publications (2)

Publication Number Publication Date
ES2556276A1 ES2556276A1 (es) 2016-01-14
ES2556276B1 true ES2556276B1 (es) 2016-11-08

Family

ID=52431044

Family Applications (1)

Application Number Title Priority Date Filing Date
ES201300721A Expired - Fee Related ES2556276B1 (es) 2013-07-31 2013-07-31 Método de identificación de huellas dactilares y dispositivo que hace uso del mismo

Country Status (3)

Country Link
EP (1) EP3093793A4 (es)
ES (1) ES2556276B1 (es)
WO (1) WO2015015022A1 (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107203647B (zh) * 2017-07-20 2020-04-07 长江大学 基于生物特征的学生信息采集方法及装置
CN112469116B (zh) * 2020-10-27 2023-06-16 北京嘀嘀无限科技发展有限公司 定位方法、装置、电子设备和计算机可读存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5631971A (en) 1994-05-24 1997-05-20 Sparrow; Malcolm K. Vector based topological fingerprint matching
US5841888A (en) 1996-01-23 1998-11-24 Harris Corporation Method for fingerprint indexing and searching
JP2815045B2 (ja) 1996-12-16 1998-10-27 日本電気株式会社 画像特徴抽出装置,画像特徴解析装置,および画像照合システム
US6185318B1 (en) 1997-08-22 2001-02-06 International Business Machines Corporation System and method for matching (fingerprint) images an aligned string-based representation
US7046829B2 (en) 2001-05-30 2006-05-16 International Business Machines Corporation Fingerprint verification
US7013030B2 (en) 2002-02-14 2006-03-14 Wong Jacob Y Personal choice biometric signature
US7313256B2 (en) 2002-09-30 2007-12-25 Motorola, Inc. Progressive fingerprint matching system and method
US8899487B2 (en) 2005-08-18 2014-12-02 Ivi Holdings Ltd. Biometric identity verification system and method
US7327859B1 (en) 2007-02-14 2008-02-05 Lam Ko Chau Methods and systems for automated fingerprint recognition
US20080273770A1 (en) 2007-05-03 2008-11-06 Upek, Inc. Fast Fingerprint Identification And Verification By Minutiae Pair Indexing
US8276816B2 (en) 2007-12-14 2012-10-02 Validity Sensors, Inc. Smart card system with ergonomic fingerprint sensor and method of using
CN101620677B (zh) 2009-03-11 2012-03-21 刘鸣宇 一种基于三角剖分与lod技术的指纹识别方法
CN101996318B (zh) 2010-11-25 2013-01-30 杭州晟元芯片技术有限公司 一种快速计算指纹相似度的方法
CN102368242A (zh) 2011-09-07 2012-03-07 常州蓝城信息科技有限公司 新型指纹数据库检索方法
CN102495886A (zh) 2011-11-28 2012-06-13 河南理工大学 基于量子算法的指纹数据库搜索方法

Also Published As

Publication number Publication date
WO2015015022A1 (es) 2015-02-05
EP3093793A4 (en) 2017-11-01
EP3093793A1 (en) 2016-11-16
ES2556276A1 (es) 2016-01-14

Similar Documents

Publication Publication Date Title
Moujahdi et al. Fingerprint shell: Secure representation of fingerprint template
ES2791776T3 (es) Sistema y método para la autenticación biométrica en conexión con dispositivos equipados con cámara
Jin et al. A non-invertible randomized graph-based hamming embedding for generating cancelable fingerprint template
ES2973497T3 (es) Método de extracción de características de una huella dactilar representada por una imagen de entrada
Kumar et al. Combination of symmetric hash functions for secure fingerprint matching
Jain et al. Fingerprint template protection: From theory to practice
Subban et al. A study of biometric approach using fingerprint recognition
CN109598247B (zh) 基于静脉图像细节点与纹路特征的二维码身份认证方法
TW201528030A (zh) 與配備有相機之裝置連接之用於生物特徵量測鑑認之系統及方法
Ali et al. Securing biometric user template using modified minutiae attributes
CN102273128B (zh) 认证或授权的方法以及相关的***和安全模型
CN111027404A (zh) 一种基于指纹保护模板的指纹识别方法
Selwal et al. Low overhead octet indexed template security scheme for multi-modal biometric system
Singh et al. Cancelable iris template generation by aggregating patch level ordinal relations with its holistically extended performance and security analysis
ES2556276B1 (es) Método de identificación de huellas dactilares y dispositivo que hace uso del mismo
CN108898023B (zh) 一种基于双旋转特征描述子的指纹模板加密方法
Jain et al. A novel fingerprint indexing scheme using dynamic clustering
Sinha et al. Upgrading security and protection in ear biometrics
CN110956468A (zh) 一种指纹支付***
Arjona et al. A dual-factor access control system based on device and user intrinsic identifiers
CN110990847A (zh) 一种基于局部敏感哈希的指纹模板保护方法
Adhiyaman et al. Fingerprint matching and similarity checking system using minutiae based technique
Sumalatha et al. A Comprehensive Review of Unimodal and Multimodal Fingerprint Biometric Authentication Systems: Fusion, Attacks, and Template Protection
Agarwal et al. An alignment-free non-invertible transformation-based method for generating the cancellable fingerprint template
Dwivedi et al. Securing fingerprint template using noninvertible ridge feature transformation

Legal Events

Date Code Title Description
FG2A Definitive protection

Ref document number: 2556276

Country of ref document: ES

Kind code of ref document: B1

Effective date: 20161108

FD2A Announcement of lapse in spain

Effective date: 20210928