Codiseño Hardware-Software de un Algoritmo de Matching Biométrico Fons M 1, Fons F 1, Canyellas N 1, López M 2, Cantó E 1 1 Escuela Técnica Superior de Ingeniería ETSE-URV, Tarragona, Spain, mfons@learcom http://wwwetseurves 2 Escuela Universitaria Politécnica de Vilanova i la Geltrú EUPVG-UPC, Spain, http://wwwupces Resumen En la actualidad, la gran mayoría de sistemas de identificación personal basados en técnicas biométricas se organizan sobre plataformas puramente informáticas, puesto que las estrategias de enrolment, storage y matching se traducen en algoritmos implementados completamente por software La arquitectura de dichos sistemas la constituye una máquina de gran capacidad, tanto de cómputo como de almacenamiento, manejando gran volumen de información en forma de base de datos En lo referente a los sistemas de autentificación/verificación personal, la arquitectura actual sigue siendo similar a la anterior pero a menor escala: sistemas microprocesadores de reducida capacidad de almacenamiento y medianas prestaciones de cómputo como son las actuales smart cards En este artículo se presenta una nueva propuesta de arquitectura orientada cada vez más hacia un particionado hardware software de los diferentes algoritmos que intervienen en el reconocimiento biométrico 1 Introducción Todo sistema electrónico de identificación/autentificación personal basado en biometría de huella dactilar se estructura en 3 etapas claramente diferenciadas: i) adquisición y tratamiento de la imagen de la huella dactilar En una primera etapa se adquiere digitalmente una imagen de la huella dactilar del usuario y se procesa con el fin de facilitar el manejo de la misma en las etapas posteriores ii) extracción de las características de la huella dactilar En una segunda etapa se extraen de la huella dactilar aquellos rasgos legítimos que caracterizan de forma inequívoca a esa huella (minutiae) iii) proceso de matching de la huella dactilar adquirida versus las huellas registradas en una base de datos Finalmente en esta tercera etapa se contrastan los rasgos previamente extraídos con los ya existentes en una base de datos, con el propósito de identificar o autentificar la identidad del propietario de la huella dactilar
Adquisición imagen huella dactilar Pre-tratamiento imagen adquirida Extracción firma de la huella dactilar Base de datos huellas dactilares (templates) Proceso de matching Resultado Identificación - Autentificación Fig 1 Diagrama de flujo general sistema de identificación/autentificación biométrico de huella dactilar La figura 1 muestra el diagrama de bloques general de todo sistema de identificación biométrico Dicho diagrama es válido tanto para el proceso de identificación (matching one-to-many, donde se contrasta la huella dactilar recién adquirida con cualquiera de las ya almacenadas en una base de datos grande, correspondientes a un grupo de personas, con el fin de reconocer si el usuario ha sido previamente registrado en dicha base de datos ej: aplicaciones de acceso restringido a edificios ), como para el proceso de autentificación/verificación (matching one-to-one, donde la base de datos la componen una o varias huellas dactilares asociadas a un único individuo ej: aplicaciones en smart cards ) Los autores se centran en este artículo en la última fase del proceso de identificación/autentificación, correspondiente al proceso de matching entre la firma (o rasgos característicos diferenciadores) de la huella dactilar recién adquirida y las firmas de las huellas dactilares almacenadas en la base de datos El presente estudio pretende dejar entrever las ventajas del uso del codiseño hardwaresoftware y de las arquitecturas SoC (System-on-Chip) en el campo de aplicación de la biometría Se muestra un claro ejemplo de sistema embebido de aplicación específica, cuya arquitectura combina µp y FPGA normalmente integrados en formato SoC, y cuyo principal exponente práctico son las futuras Trusted Smart Cards (integración de SoC y sensor biométrico) Se plantea la implementación Hw-Sw de un algoritmo de matching a partir del conocimiento previo de los resultados de la ejecución de ese mismo algoritmo únicamente por software y sobre un sistema µp 80C188 @ 25MHz (arquitectura 8-bit externa/16-bit interna) Se particiona el algoritmo en tareas Hw (sintetizadas sobre lógica programable que permita el diseño de controladores específicos) y tareas Sw (ejecutadas por programa sobre un µp) Esta nueva arquitectura constituida por µp y FPGA permitirá alcanzar unas prestaciones de tiempo de ejecución y flexibilidad hoy por hoy inalcanzables mediante la implementación del sistema únicamente por software Se demuestra como el uso de dispositivos lógicos programables donde sintetizar por hardware aquellas tareas de matching biométrico de mayor coste computacional mejora notablemente el tiempo de respuesta del sistema de identificación/autentificación, facilitando así el desarrollo de aplicaciones cotidianas de identificación biométrica (acceso a edificios, fichas médicas, tarjetas de crédito )
Seguidamente en la sección 2 se hace referencia al algoritmo de matching biométrico utilizado La sección 3 muestra el particionamiento hardware-software del algoritmo además del diagrama de flujo general que comprende cada una de las tareas (tareas Hw y Sw) en que se estructura este La implementación física del sistema de matching, así como los resultados obtenidos, aparecen descritos en la sección 4 Finalmente, en la sección 4 se citan también los trabajos o retos futuros a los que hacer frente siguiendo la misma pauta de investigación 2 Estudio Previo: Algoritmo de Matching Biométrico El algoritmo de matching propuesto corresponde a [1], y fue desarrollado por Dinesh P Mital y Eam Khwang Teoh (Singapore, IEEE 1996) Se recomienda la lectura del mismo para un mejor seguimiento de este artículo 3 Particionamiento Hardware-Software del Algoritmo El algoritmo de matching propuesto [1] se compone de las siguientes tareas funcionales: 31 Análisis Local Tarea 11 Análisis estructural de vecindad del minutiae patrón (template minutiae) presente en la base de datos Tarea 12 Análisis estructural de vecindad del minutiae recién adquirido (scan minutiae) Tarea 13 Análisis de similitud entre el minutiae patrón y el minutiae recién adquirido (matriz de similitud) Tarea 14 Estudio de correlación entre minutiaes (identificación de parejas de puntos correspondientes entre el minutiae template y el minutiae scan) 32 Análisis Global Tarea 21 Identificación de la pareja de puntos característicos correspondientes con mayor índice de similitud (minutias de referencia) a partir de la cual referenciar los análisis globales Tarea 22 Análisis estructural global del minutiae template teniendo en cuenta únicamente aquellas minutias correspondidas con el minutiae scan Tarea 23 Análisis estructural global del minutiae scan teniendo en cuenta únicamente aquellas minutias correspondidas con el minutiae template Tarea 24 Estudio de correlación entre minutiaes correspondientes y toma de decisión del proceso de matching Como paso previo al desarrollo del sistema de matching es necesario definir la arquitectura del mismo: qué tareas deben ser ejecutadas por el microprocesador (tareas Sw) y qué tareas deben ser sintetizadas sobre lógica programable (tareas Hw) Las prestaciones requeridas por la aplicación (frecuencia máxima, retardo, consumo) y los costes de desarrollo (inversiones, tiempos) y de producción permitidos fijarán a priori la arquitectura del sistema de matching biométrico Por ello es de gran ayuda la implementación, en una
primera fase, de todo el algoritmo de matching por software, permitiendo así cuantificar el tiempo de cómputo de cada una de las tareas para luego, en el caso de no alcanzar las prestaciones generales deseadas, pasar seguidamente a implementar como tareas Hw aquellas de mayor coste temporal y computacional La tabla 1 muestra el resultado temporal promedio de cada una de las tareas cuando dicho algoritmo es ejecutado (únicamente por software) sobre un sistema embebido formado por un µc 80C188@25MHz: Tarea Plataforma 80C188@25MHz Particionamiento Hw-Sw propuesto Tiempo (ms) Template Minutiae Local Neighbourhood Analysis 171 Hw Scan Minutiae Local Neigbourhood Analysis 171 Hw Scan-Template Minutiaes Similarity Analysis 418 Hw Scan-Template Correlation Analysis 20 Sw Central Feature Search 15 Sw Template Minutiae Global Neighbourhood Analysis 25 Hw Scan Minutiae Global Neighbourhood Analysis 25 Hw Global Matching 9 Sw Tabla 1 Desglose de los tiempos de ejecución de cada una de las tareas que componen el algoritmo de matching biométrico y propuesta de particionamiento Hw-Sw de las tareas De la tabla 1 se deduce como, en el caso de desarrollar el sistema de matching únicamente por software, el tiempo de matching puede llegar a ser demasiado elevado en aquellas aplicaciones de identificación biométrica que requieran características de tiempo real o verificación on line Es por ello que las tareas más críticas en cuanto a tiempo de ejecución deben pasar a ser sintetizadas en hardware sobre dispositivos lógicos programables (FPGAs, ASICs), dejando la ejecución del resto de tareas menos críticas (en cuanto a complejidad de cálculo y tiempo de ejecución) al microprocesador A continuación se detalla la arquitectura general del sistema planteado, así como el diagrama de bloques resultante del particionamiento Hw-Sw Periféricos Entrada/Salida CPU Memoria Datos Memoria Programa ASIC/FPGA DIRECCIONES DATOS CONTROL Fig 2 Arquitectura general del sistema de matching biométrico
Address Bus Data Bus Write Read Comm s Controller Template Minutiae Scan Minutiae Similarit y Matrix R i 1 R i i 3 R i n R ii 1 R ii j 3 R ii n R v 1,1 3R v i,j R v n,n Control Reg Matching Reg M U X Similarit y Matrix Analysis Global Feature Analysis Local Feature Analysis Template Local Scan Local R iii 1 R iii i 3 R iii n R iv 1 R iv j 3 R iv n D E M U X Fig 3 Estructura del coprocesador implementado mediante lógica programable El bloque funcional COMM S CONTROLLER constituye el interfaz Hw-Sw entre el µp y el propio coprocesador lógico Tal y como se puede observar, el interfaz de comunicaciones es el genérico de todo sistema microprocesador (buses de datos, direcciones y control lectura/escritura) Además aparecen otros 3 controladores o bloques funcionales fundamentales: LOCAL FEATURE ANALYSIS: encargado de llevar a cabo el análisis de vecindad de cada uno de los puntos característicos del minutiae patrón y/o del minutiae recién extraído SIMILARITY MATRIX ANALYSIS: bloque encargado de construir la matriz de similitud a partir de los minutiaes template y scan GLOBAL FEATURE ANALYSIS: encargado de ejecutar el estudio de correlación entre las parejas de puntos obtenidos del estudio de similitud de las estructuras locales minutiaes template y scan Se observa como el coprocesador de matching implementado dispone internamente de una serie de registros donde almacenar los datos de entrada (minutiaes objeto de estudio), los datos intermedios resultado del procesado interno (local registers y similarity matrix registers), además del resultado del algoritmo de matching (matching result register) El coprocesador dispone también de un registro de control (control register) mediante el cual el microprocesador del sistema será capaz de gestionar la aplicación
MATCHING Adquisición Template minutiae Periférico E/S µc Pase parámetros a coprocesador µc FP GA Análisis local Template minutiae FPGA process Recepción Scan minutiae? No µc process Sí Adquisición Scan minutiae Periférico E/S µc Pase parámetros a coprocesador µc FP GA Análisis local Scan minutiae FPGA process Template Scan Similarity Mat rix FPGA process Resultados análisis similitud FPGA µc Análisis correlación Template - Scan µc process Pase parámetros a coprocesador µc FP GA Análisis global Template - Scan FPGA process Resultado MATCHING FPGA µc No ACCESO DENEGADO Identificación OK? Sí FIN ACCESO PERMITIDO µc process Fig 4 Diagrama de flujo aplicación de matching biométrico
library ieee; use ieeestd_logic_1164all; use ieeenumeric_stdall; package matching is constant N: integer :=30; -- Maximum number of minutia points subtype nibble is integer range 7 to 7; subtype byte is integer range 0 to 255; type minutia is record -- Minutia features x: byte; -- x location y: byte; -- y location Ax: nibble; -- x ridge direction Ay: nibble; -- y ridge direction t: std_logic; -- minutia type: junction or end of ridge Data_valid: std_logic;-- flag end record; type minutiae is array(0 to (N-1)) of minutia; end matching; Fig 5 Paquete de definiciones matching conteniendo el tipo de datos minutiae Cada minutiae se define mediante un array de minutias caracterizadas por las coordenadas espaciales del punto característico (x e y), la orientación o pendiente que toma la cresta de la huella dactilar en el punto característico (definido de la forma x/ y), y el tipo (bifurcación o final de cresta) de punto característico Además, existe un flag Data_valid mediante el cual el µp puede especificar al coprocesador si los datos almacenados temporalmente en los registros son o no válidos Una vez realizado el particionamiento Hw-Sw de la aplicación, y sintetizado sobre lógica programable tanto el interfaz de comunicaciones como el coprocesador de matching, ya sólo queda desarrollar el programa que debe ejecutar el propio microprocesador El µp es quien realmente controla la aplicación y todo el proceso de matching, partiendo de la adquisición de los minuties template y scan, gestionando el proceso de matching con el coprocesador, recibiendo el resultado y actuando en consecuencia, tal y como queda reflejado en el diagrama de flujo de la figura 4 4 Resultados, Conclusiones y Trabajos Futuros El objetivo final de este estudio es llegar a integrar todo el sistema de matching biométrico expuesto en un solo chip (SoC) que incluya la electrónica necesaria (µp + memoria + periféricos estándar E/S + lógica programable) No obstante, y en una primera fase del diseño se plantea el uso de una plataforma PC (µp + memoria + puerto paralelo como periférico E/S) que permita emular la parte correspondiente al bloque µp + memoria + periféricos estándar E/S, y usar otra tarjeta electrónica genérica constituida por dispositivos lógicos programables y conectada al PC a través del puerto paralelo donde albergar las tareas hardware Tras la codificación en lenguaje VHDL y la posterior simulación funcional de los bloques principales del algoritmo de matching, se estima una reducción notable (de hasta el 45% en términos generales) en la latencia de la aplicación si el algoritmo se implementa
sobre un embedded system constituido por dispositivos lógicos programables funcionando a una frecuencia de reloj de 8MHz Paral lel Port Programmable Logic Devices Personal Computer System on Chip Fig 6 Evolución propuesta en la fase de desarrollo de la aplicación de matching biométrico En vista de los buenos resultados previstos, y con el fin de seguir mejorando las prestaciones del sistema final, se plantea un nuevo reto enfocado a evolucionar desde la implementación estática de las tareas Hw del algoritmo de matching hacia una nueva síntesis de estas mismas tareas sobre dispositivos con capacidad de reconfiguración dinámica (DR-Hw Dynamically Reconfigurable Hardware) Se pretende con ello aprovechar al máximo las prestaciones de los actuales dispositivos lógicos programables, a la vez que reducir los requerimientos de área y consumo del sistema Además, una segunda línea de investigación complementaria consiste en el desarrollo de componentes IP (Intellectual Property) que lleven a cabo la implementación de algoritmos biométricos ya contrastados, como es el caso del algoritmo de matching abarcado en este artículo [1] Con estas librerías de componentes IP Hw-Sw de aplicaciones biométricas se facilitará el prototipado rápido de dicho tipo de aplicaciones seguras (sistemas basados en Smart Cards), reduciendo así el time-to-market del producto Se trata en definitiva de facilitar el desarrollo de aplicaciones que garanticen el manejo de información confidencial de forma segura, tal y como exige la era actual de las tecnologías de la información y de las comunicaciones Referencias 1 Dinesh P Mital and Eam Khwang Teoh, An Automated Matching Technique for Fingerprint Identification IEEE, 1996