Procesador Hardware Auto-Reconfigurable de Huella...

8
Procesador Hardware Auto-Reconfigurable de Huella Dactilar Francisco Fons, Mariano Fons, Enrique Cantó Dept. d’Enginyeria Electrònica, Elèctrica i Automàtica Universitat Rovira i Virgili 43007 Tarragona {francisco.fons, mariano.fons}@estudiants.urv.cat , [email protected] Mariano López Dept. d’Enginyeria Electrònica Universitat Politècnica de Catalunya 08800 Vilanova i la Geltrú [email protected] Resumen La computación reconfigurable tiende, cada vez más, a fusionarse con el codiseño hardware- software (HW-SW) en el ámbito del desarrollo de aplicaciones embebidas que exigen alta complejidad de procesado, tiempo real y bajo coste. Ambas técnicas de diseño están presentes en la programación de un dispositivo system-on- chip (SoC), el cual combina aspectos SW a través de un microcontrolador (MCU) de propósito general y aspectos de HW flexible mediante un dispositivo lógico FPGA reconfigurable. Este trabajo aborda la implementación de un sistema automático de reconocimiento biométrico de huella dactilar fundamentado en estas dos técnicas de diseño. Se pretende alcanzar una eficiente arquitectura HW-SW que se adapte a la aplicación con un correcto balance entre área (coste) y tiempo (prestaciones). 1. Introducción En la actualidad, son numerosos los grupos de investigación que centran sus esfuerzos en el desarrollo de sistemas de identificación biométrica aplicables a entornos reales. Sin ir más lejos, se ha planteado recientemente en España la creación de una red temática de identificación biométrica, RETIB, encaminada a potenciar el avance tecnológico en este campo fruto de la cooperación entre grupos. Por lo general, la implementación de sistemas de autentificación/identificación personal basados en características biométricas se puede plantear desde dos ámbitos bien distintos: plataformas conectadas a un computador centralizado (normalmente PC) y gestionadas en red, como algunos sistemas de control de acceso a recintos. Acostumbran a ser soluciones desarrolladas a alto nivel y sin reparar en costes, con herramientas como Matlab y librerías o tool boxes específicas de procesado de imagen, plataformas embebidas, como las smartcards o los módulos electrónicos de un automóvil, en las que los recursos HW-SW son limitados y por tanto exigen ser eficientemente programados en lenguajes como VHDL y C. Este trabajo, enmarcado en este segundo grupo, se centra en la implementación de un sistema de reconocimiento de huella dactilar con un elevado nivel de seguridad y a bajo coste, basado en un dispositivo SoC. Aunque existen ya sistemas biométricos comerciales, su síntesis es todavía hoy un tema abierto, dado que existen algunos aspectos de arquitectura a mejorar, para lograr su integración definitiva en aplicaciones reales a gran escala. En este sentido, este trabajo pretende contribuir en la búsqueda de una arquitectura óptima, esta vez basada en HW flexible. Siguiendo esta introducción, en la sección 2 se presentan las distintas etapas del algoritmo de reconocimiento biométrico, prestando especial atención a los altos requerimientos de cómputo. En esta línea, se aborda a continuación el diseño de coprocesadores HW específicos, ilustrados en la sección 3, que permitan acelerar el procesado de imagen hasta conseguir características de tiempo real. Dichas prestaciones de tiempo, como muestran los datos experimentales de la sección 4, resultan inalcanzables cuando el mismo algoritmo es implementado únicamente en SW ejecutado por el MCU, sin complementarse con recursos HW de la FPGA. Como conclusión, la sección 5 hace balance de los resultados conseguidos mediante la arquitectura auto-reconfigurable propuesta. 2. Reconocimiento de huella dactilar La comparación de huellas dactilares es una de las técnicas biométricas más populares y fiables utilizadas en sistemas de reconocimiento personal

Transcript of Procesador Hardware Auto-Reconfigurable de Huella...

Page 1: Procesador Hardware Auto-Reconfigurable de Huella Dactilardeeea.urv.cat/DEEEA/ecanto/WWW/Publications/jcra07_ffons.pdf · Procesador Hardware Auto-Reconfigurable de Huella Dactilar

Procesador Hardware Auto-Reconfigurable de Huella Dactilar

Francisco Fons, Mariano Fons, Enrique Cantó Dept. d’Enginyeria Electrònica, Elèctrica i Automàtica

Universitat Rovira i Virgili 43007 Tarragona

{francisco.fons, mariano.fons}@estudiants.urv.cat, [email protected]

Mariano López Dept. d’Enginyeria Electrònica

Universitat Politècnica de Catalunya 08800 Vilanova i la Geltrú

[email protected]

Resumen

La computación reconfigurable tiende, cada vez más, a fusionarse con el codiseño hardware-software (HW-SW) en el ámbito del desarrollo de aplicaciones embebidas que exigen alta complejidad de procesado, tiempo real y bajo coste. Ambas técnicas de diseño están presentes en la programación de un dispositivo system-on-chip (SoC), el cual combina aspectos SW a través de un microcontrolador (MCU) de propósito general y aspectos de HW flexible mediante un dispositivo lógico FPGA reconfigurable. Este trabajo aborda la implementación de un sistema automático de reconocimiento biométrico de huella dactilar fundamentado en estas dos técnicas de diseño. Se pretende alcanzar una eficiente arquitectura HW-SW que se adapte a la aplicación con un correcto balance entre área (coste) y tiempo (prestaciones).

1. Introducción

En la actualidad, son numerosos los grupos de investigación que centran sus esfuerzos en el desarrollo de sistemas de identificación biométrica aplicables a entornos reales. Sin ir más lejos, se ha planteado recientemente en España la creación de una red temática de identificación biométrica, RETIB, encaminada a potenciar el avance tecnológico en este campo fruto de la cooperación entre grupos. Por lo general, la implementación de sistemas de autentificación/identificación personal basados en características biométricas se puede plantear desde dos ámbitos bien distintos:

plataformas conectadas a un computador centralizado (normalmente PC) y gestionadas en red, como algunos sistemas de control de acceso a recintos. Acostumbran a ser soluciones desarrolladas a alto nivel y sin

reparar en costes, con herramientas como Matlab y librerías o tool boxes específicas de procesado de imagen, plataformas embebidas, como las smartcardso los módulos electrónicos de un automóvil, en las que los recursos HW-SW son limitados y por tanto exigen ser eficientemente programados en lenguajes como VHDL y C.

Este trabajo, enmarcado en este segundo grupo, se centra en la implementación de un sistema de reconocimiento de huella dactilar con un elevado nivel de seguridad y a bajo coste, basado en un dispositivo SoC. Aunque existen ya sistemas biométricos comerciales, su síntesis es todavía hoy un tema abierto, dado que existen algunos aspectos de arquitectura a mejorar, para lograr su integración definitiva en aplicaciones reales a gran escala. En este sentido, este trabajo pretende contribuir en la búsqueda de una arquitectura óptima, esta vez basada en HW flexible.

Siguiendo esta introducción, en la sección 2 se presentan las distintas etapas del algoritmo de reconocimiento biométrico, prestando especial atención a los altos requerimientos de cómputo. En esta línea, se aborda a continuación el diseño de coprocesadores HW específicos, ilustrados en la sección 3, que permitan acelerar el procesado de imagen hasta conseguir características de tiempo real. Dichas prestaciones de tiempo, como muestran los datos experimentales de la sección 4, resultan inalcanzables cuando el mismo algoritmo es implementado únicamente en SW ejecutado por el MCU, sin complementarse con recursos HW de la FPGA. Como conclusión, la sección 5 hace balance de los resultados conseguidos mediante la arquitectura auto-reconfigurable propuesta.

2. Reconocimiento de huella dactilar

La comparación de huellas dactilares es una de las técnicas biométricas más populares y fiables utilizadas en sistemas de reconocimiento personal

Page 2: Procesador Hardware Auto-Reconfigurable de Huella Dactilardeeea.urv.cat/DEEEA/ecanto/WWW/Publications/jcra07_ffons.pdf · Procesador Hardware Auto-Reconfigurable de Huella Dactilar

automáticos. A grandes rasgos, una imagen de la huella es adquirida y procesada mediante distintas etapas de alta complejidad computacional para acabar emitiendo un veredicto acerca del nivel de semejanza entre dicha muestra y una huella patrón ya registrada en el sistema, lo que determinará si ambas huellas pertenecen al mismo dedo y por tanto al mismo usuario. Hoy en día, en una sociedad que manifiesta un interés creciente en todos los aspectos relacionados con la seguridad, la identificación biométrica es un tema de extrema actualidad. Prueba de ello es la implantación de sistemas de reconocimiento biométrico en muchas áreas de aplicación: teléfonos móviles, PDAs o laptops son algunos ejemplos. Estos sistemas han de permitir la autentificación de un usuario en tiempo real y con buenos niveles de confianza.

Conceptualmente, el algoritmo de procesado de imagen sintetizado en estos sistemas AFAS (Automatic Fingerprint Authentication System) se compone de cuatro etapas encadenadas [6]:

Adquisición de la huella. Existen distintas tecnologías implementadas sobre chips de silicio, las más conocidas basadas en efectos capacitivos o térmicos, que permiten adquirir un bitmap de la huella dactilar en escala de grises, normalmente en formato de píxeles de 8 bits y 500 dpi de resolución. Procesamiento de mejora de la imagen. Normalmente, la imagen capturada queda afectada por el ruido y requiere ser procesada para conseguir una mayor definición de la estructura de crestas y valles de la piel que conforma la huella. Extracción de características. Es sabido que la huella dactilar es única e irrepetible, de modo que cada huella presenta unos rasgos distintivos, constituidos por los finales y las bifurcaciones de las crestas, que actúan como código genético identificativo de su propietario. La distribución espacial de estos puntos característicos, así como la dirección o orientación de campo de estas líneas de la piel, determinan una geometría única que normalmente se convierte en información suficiente para caracterizar/abstraer la huella. Comparación o matching de huellas. Este es el proceso definitivo en el que la muestra de huella dactilar, ya procesada en las etapas previas, es finalmente comparada con la huella patrón para estimar si son la misma.

3. Computador auto-reconfigurable

La algorítmica de reconocimiento biométrico se rige por una secuencia de etapas de procesado distintas. En cada una de estas fases se procesa una serie de información, normalmente una imagen digital, y se genera como resultado un nuevo array de datos. En esta secuencia encadenada, los datos de salida de una tarea son a la vez los datos de entrada de la siguiente. En este ámbito, la combinación de aceleración HW, conseguida mediante paralelismo customizado, y el multiplexado en tiempo de estos recursos HW, para emplazar allí temporalmente el coprocesador a medida de la tarea a ejecutar en cada momento, convierte a los dispositivos FPGA reconfigurables en plataformas idóneas para el diseño de procesadores biométricos de altas prestaciones computacionales y bajo coste. Este trabajo aborda el diseño de un sistema AFAS ejecutado a tres niveles. En primer lugar se diseñan todas las fases del algoritmo en SW, con la ayuda de herramientas como Matlab que permiten el avance rápido en implementación y sobretodo en verificación mediante representación gráfica de los resultados. Esta fase pretende únicamente validar la algorítmica biométrica. En segundo lugar, este mismo algoritmo, ya validado, se sintetiza un lenguaje de programación C y se ejecuta sobre plataformas PC para obtener un profiling de todas las tareas que intervienen. En esta fase ya se hace especial hincapié en aspectos de optimización, con objeto de conseguir los menores tiempos de ejecución posibles sin perder precisión en los resultados. Esta fase pues apunta ya claramente a encauzar la implementación del algoritmo de acuerdo a características de embedded software (operación en enteros en lugar de coma flotante, modos de direccionamiento indirecto de datos, uso de pre-computaciones mediante look-up tables, simplificación de expresiones matemáticas...). Finalmente, la tercera etapa, y en la que se centra este artículo, consiste en el codiseño HW-SW del algoritmo bajo una plataforma SoC constituida por un MCU y una FPGA reconfigurable. Aquí, se ejecuta de nuevo todo el algoritmo desarrollado en SW sobre el MCU y se obtiene el desglose de tareas y tiempos. A partir de estos resultados, se planifica a continuación el particionado HW-SW que pondere prestaciones frente coste y se implementa finalmente en forma de prototipo físico.

Capítulo 1: Sistemas de Visión

20

Page 3: Procesador Hardware Auto-Reconfigurable de Huella Dactilardeeea.urv.cat/DEEEA/ecanto/WWW/Publications/jcra07_ffons.pdf · Procesador Hardware Auto-Reconfigurable de Huella Dactilar

La plataforma de desarrollo de nuestro prototipo AFAS queda representada en la Fig. 1. El sistema está basado en el dispositivo SoC Excalibur EPXA10 de Altera. Este dispositivo integra un procesador ARM922T de 32 bits, periféricos standard (UART, controlador de interrupciones, GPIOs, timers...) y memorias SRAM on-chip single-port y dual-port formando un embedded processor stripe o MCU. Además, el chip dispone de lógica programable agrupada en un dispositivo FPGA APEX20KE, basado en SRAM, de Altera. El SoC está provisto también de un controlador de configuración que permite configurar la FPGA tanto en modo master, en caso de power-on reset, descargando directamente el bitstream desde memoria no volátil a la FPGA, como en modo slave direccionado desde el procesador ARM para llevar a cabo una reconfiguración total del dispositivo lógico, mientras esta misma FPGA se mantiene en reset y el procesador ARM, activo, emplaza en ella el nuevo coprocesador o contexto HW. Todos los recursos mencionados se interconectan entre sí mediante dos buses AMBA AHB. Además del propio dispositivo SoC, la plataforma de desarrollo está equipada con un sensor de huella dactilar FingerChip FCD4B14 de Atmel, que conecta con un coprocesador sintetizado a medida en la FPGA para permitir la adquisición de huellas. En nuestro caso, las imágenes que procesa nuestro computador son de 512x256 píxeles efectivos, disponiendo el píxel de una profundidad de 8 bits, lo que significa un espacio de 128 kbytes para cada imagen completa. Debido a estos

requerimientos de memoria de almacenamiento de datos, nuestro sistema se compone de dos tipos de memoria externa. Por un lado, memoria SDRAM, conectada a un controlador SDRAM interno al SoC que enlaza a la vez con el bus AHB1, y que se utiliza para albergar la copia de la imagen procesada en cada etapa. Por otro lado, memoria FLASH. Esta memoria no volátil se utiliza para almacenar los distintos bitstreams o contextos HW que se descargan en el dispositivo lógico programable a medida que progresa la ejecución de las tareas del algoritmo biométrico. Esta memoria se conecta al bus AHB2 a través de un controlador EBI (expansion bus interface).Respecto a los coprocesadores sintetizados en la FPGA, a pesar de que se diseñan a medida de cada etapa de tratamiento de imagen, presentan una arquitectura bastante común a nivel de bloques. En general, nuestro coprocesador sintetiza un computador o ALU específico en cada fase, controlado internamente por una máquina de estados finitos (FSM) que define su comportamiento. En cuanto a datos intermedios, éste dispone de memoria RAM interna configurada a medida de las necesidades (library of parameterized modules LPM DPRAM). El conjunto de este coprocesador está integrado al sistema mediante tres interfaces: un controlador AHB master, a través del cual el propio coprocesador HW ejecuta accesos WR/RD a SDRAM donde se almacena la imagen completa, un controlador AHB slave, a través del que el MCU puede modificar determinados parámetros configurables del coprocesador, como por ejemplo

FINGERPRINT SENSOR

AUTOMATIC FINGERPRINT AUTHENTICATION SYSTEM

APEX20KE FPGA

EXCALIBUR EPXA10 SYSTEM-ON-CHIP

AMBA AHB1

AMBA AHB2

SDRAM CONTROLLER

ARM922T CORE

DP-SRAM (data)

SRAM (program code)

AHBBRIDGE

EBICONTROLLER

CONFIG.CONTROLLER

AHBBRIDGE

AHBBRIDGE

AHBSLAVE

AHBMASTER

LPMDPRAM

SPECIFIC ALU

AVALON CONTROLLER

UART CONTROLLER

COMPUTER PARAMETERS

FSM CONTROLLER

SDRAM (fingerprints)

FLASH (bitstreams)

EXTERNAL LINK

(debug purposes)

Figura 1. Arquitectura del computador auto-reconfigurable de huella dactilar.

VII Jornadas de Computación Reconfigurable y Aplicaciones (JCRA 2007)

21

Page 4: Procesador Hardware Auto-Reconfigurable de Huella Dactilardeeea.urv.cat/DEEEA/ecanto/WWW/Publications/jcra07_ffons.pdf · Procesador Hardware Auto-Reconfigurable de Huella Dactilar

las dimensiones Y-X de la imagen o valores umbrales como el de segmentación, y finalmente, un controlador AVALON para acceder a la memoria on-chip DP-SRAM desde la FPGA. Esta memoria, a diferencia de la SDRAM, se utiliza en nuestra aplicación como buffer que almacena datos intermedios que se comparten entre tareas, dado que no hay que olvidar que la FPGA resetea todo su contenido en cada reconfiguración. Esta memoria on-chip permite guardar información de forma rápida entre contextos a la vez que acceder a ellos en cualquier momento tanto desde el MCU como desde la FPGA. El resto de la sección profundiza en el desarrollo HW-SW de cada una de las fases de procesado que constituyen la etapa de mejora de la imagen, convirtiendo la imagen inicial de la huella en escala de grises, adquirida a través del sensor, en una imagen binarizada y con una buena definición estructural de crestas y valles.

3.1. Segmentación de la imagen

La imagen adquirida por el sensor dactilar consta normalmente de la región de interés, formada por las crestas y valles de la huella, y el fondo o región ruidosa sin información. El proceso de segmentación pretende pues separar la región de interés del resto, con objeto de centrar el procesado posterior sólo en la parte de la imagen que es válida. Para ello, se observa que las crestas y valles de la huella determinan una imagen en escala de grises con cambios de intensidad abruptos y continuados a lo largo de la superficie de píxeles, mientras que, por el contrario, en la región del fondo se mantiene la intensidad constante. Para la detección de cambios bruscos de la imagen hacemos uso del concepto de gradiente aplicado en las direcciones X e Y de la misma. Inicialmente dividimos la imagen en una rejilla de bloques de 8x8 píxeles consecutivos. Para cada píxel se calculan los gradientes Gx y Gymediante la convolución de la imagen inicial con los operadores de Sobel direccionales aplicados sobre una vecindad o kernel 5x5. Una vez calculados los gradientes de cada píxel, la magnitud del vector gradiente para cada bloque 8x8 se aproxima a la suma del valor absoluto de sus componentes direccionales dado por la ecuación (1) siguiente [7]:

( ) ( ) ( )+,+++,+=,8 88 8

88j i

xj i

yx ixjyGixjyGxyG

El criterio de segmentación se establece a partir de comparar la magnitud del gradiente con un valor umbral de acuerdo a la relación (2):

contrariocasoenSGMNTxyGsi

xySGMNT THRHLDxx ,1

,,0, 88

88

El computador que procesa todo este cálculo para la imagen completa se muestra a continuación. El flujo de datos es el siguiente: SDRAM (imagen)

AHB MST ALU AVALON DP-SRAM (array segmentación SGMNT). La imagen digital es transferida al procesador HW en formato de 4 líneas de píxeles consecutivas Y barridas por completo en dirección X, de modo que 4 píxeles de 8 bits de la imagen son procesados en paralelo (dado que el bus de datos AMBA AHB de nuestro sistema opera en 32 bits) cada 11 ciclos de reloj, y este bucle se repite hasta procesar todos los píxeles que constituyen la imagen completa.

Figura 2. Procesador de gradiente.

Y

(1,1) 516

280

LPM DPRAM 512x32

LPM DPRAM 512x32

X

1 2 3 ... 516

280

321

512

280

321

Gxj,i Gxj+2,i Gxj+3,i

4-70-3

4-7 0-34-7

0-3

8CONVOLVERS

5

4

3

2

1

4PRE-ADDERS

4KERNEL 5x5

8-BIT

Gxj+1,i

Pyx·Sxyx Pyx·Syyx

0-3 4-70-34-7

Pyx·Sxyx Pyx·Syyx

Pyx·Sxyx Pyx·Syyx

Pyx·Sxyx Pyx·Syyx

Gyj,i Gyj+3,iGyj+2,iGyj+1,i

X-shift

5SHIFT

REGISTERS 8-BYTE

SEL Y-shift

MUX 2x32 MUX 2x32

Pj,i Pj+1,i Pj+2,i Pj+3,i

Capítulo 1: Sistemas de Visión

22

Page 5: Procesador Hardware Auto-Reconfigurable de Huella Dactilardeeea.urv.cat/DEEEA/ecanto/WWW/Publications/jcra07_ffons.pdf · Procesador Hardware Auto-Reconfigurable de Huella Dactilar

Figura 3. Procesador de segmentación.

3.2. Normalización de la imagen

La normalización de una imagen digital es un procesado llevado a cabo típicamente para conseguir una imagen con una predeterminada media y varianza. En nuestro caso, este proceso permite decrementar el rango dinámico de la escala de grises entre crestas y valles, facilitando así las posteriores etapas de tratamiento de imagen [5]. Se calcula a nivel de píxel de acuerdo a la expresión (3):

contrariocasoenVAR

MxypVARM

MxypsiVAR

MxypVARM

xyN

,-),(

-

),(,-),(

),(2

00

20

0

donde M y VAR son la media y varianza de la imagen segmentada y M0 y VAR0 son los valores deseados de media y varianza respectivamente.

Tanto la media como la varianza de la imagen segmentada se pueden expresar en función de tres operadores: el numero de píxeles de la imagen segmentada N, el sumatorio de estos píxeles

p(y,x) y el sumatorio de estos mismos píxeles al cuadrado p2(y,x). El computador que calcula estos tres valores se muestra en la Fig. 4. Sólo si el

píxel procesado forma parte de la región de interés (SGMNT bit 31 = 0) se tiene en cuenta entonces en el cómputo de la media y varianza de la imagen segmentada. Así, la normalización (3) se puede reformular como (4):

( )xypSLOPEOFFSETxyN ,·+=),(donde OFFSET y SLOPE son valores función de las tres variables anteriores.

Figura 4. Procesador de normalización.

3.3. Eliminación de ruido

Frecuentemente, en la fase de adquisición de la huella, algunas regiones de la imagen quedan distorsionadas por el ruido. Muchas de estas regiones afectadas pueden ser recuperadas, sin embargo, mediante técnicas de procesamiento de señal. Nuestro algoritmo incorpora una de estas técnicas en la etapa siguiente a la normalización, en concreto basada en la teoría dyadic scale-space(DSS). Conceptualmente, la imagen adquirida se descompone en una serie de imágenes con objeto

ADD ADD ADD ADD

ADD ADD

ADD

LPM DPRAM 64x32

64

321

|Gxyx|+|Gyyx|

ADD

Q D 000…0

ACC

LOAD

Gxj,i Gyj,i Gxj+1,i Gyj+1,i Gxj+2,i Gyj+2,i Gxj+3,i Gyj+3,i

SGMNT

ABS ABS ABS ABS ABS ABS ABS

SUB

D Q

BIT31

D Q

BIT30

D Q

BIT1

D Q

BIT0

SGMNT THRHLD

Q D

...

ACC>>6

SIGN

ABS

AHB SLV

DP-SRAM

MUX

MUL MUL MUL MUL

ADD ADD

ADD

LPM DPRAM 64x32

64

321

Py,x·Py,x

ADD

Q D000…0

ACC

LOAD

MUX

Pj,i Pj,i Pj+1,i Pj+1,i Pj+2,i Pj+2,i Pj+3,i Pj+3,i

ADD ADD

ADD

LPM DPRAM 64x32

64

321

Py,x

ADD

Q D000…0

ACCLOAD

MUX

Pj+1,i Pj+2 Pj+3,iPj,i

P2SGMNTy,x

PSGMNTy,x

ENABLE SGMNT BIT31

MUX

DP-SRAM

ENABLE SGMNT BIT31

MUX

DP-SRAM

ADD

Q D 000…0

ACCLOAD

MUX

NSGMNT << 6

ENABLE SGMNT BIT31

MUX

DP-SRAM 000…01

VII Jornadas de Computación Reconfigurable y Aplicaciones (JCRA 2007)

23

Page 6: Procesador Hardware Auto-Reconfigurable de Huella Dactilardeeea.urv.cat/DEEEA/ecanto/WWW/Publications/jcra07_ffons.pdf · Procesador Hardware Auto-Reconfigurable de Huella Dactilar

de eliminar el ruido a diferentes escalas, para recomponerla después de nuevo preservando sólo la información válida [3]. Todo este tratamiento se lleva a cabo mediante la convolución de la imagen con un filtro simétrico 13x13.

Cuando una imagen digital se somete a una convolución o filtrado, el valor de cada píxel p(y,x) es remplazado por un nuevo valor p’(y,x)que es función no sólo de su valor actual sino también de sus píxeles vecinos, y donde la vecindad afectada viene determinada por las dimensiones de la matriz de convolución. Esta modulación de señal implica un gran número de operaciones de multiplicación y suma. Sin embargo, en caso de filtros con coeficientes que se repiten, como el caso de matrices simétricas, haciendo uso de la propiedad asociativa, los píxeles con coeficientes iguales se pueden sumar antes de someterse a la multiplicación, lo que permite optimizar la implementación HW del 2D-convolver. Esto mismo se muestra en la Fig. 2 a través de la etapa de pre-adders que precede la etapa de convolvers. De este modo, en este caso, en lugar de operar los 13x13 coeficientes del filtro con los píxeles de 8 bits de la imagen, con la etapa pre-adders la convolución se reduce a 28 coeficientes a operar con operandos de 11 bits, dado que en el filtro simétrico en cuestión un mismo coeficiente se repite hasta 8 veces (FFh x 8 = 7F8h). Así pues, estos pre-adders permiten reducir drásticamente el número de multiplicadores HW requeridos. A pesar de ello, 28 resultan todavía excesivos. Una alternativa más eficiente en área que la opción de sintetizar la convolución mediante multiplicadores y sumadores es la implementación basada en la teoría Vector Multiplier [2]. En la Fig. 5 se muestra nuestra implementación del 2D-convolver

p(i)·k(i) de acuerdo a ésta. El mecanismo de transferencia de píxeles

desde SDRAM y traslación en dirección Y e X al buffer de píxeles es similar al mostrado en la Fig. 2, con la diferencia de que aquí los bloques de memoria LPM DPRAM 512x32 son 4, formando un bus de datos de 16 píxeles, y el kernel de registros de desplazamiento está constituido por 13 registros de 16 bytes, lo que da lugar a 4 kernels 13x13 de píxeles de 8 bits. Como resultado, en 24 clocks, 4 píxeles de la imagen son transferidos desde SDRAM al computador HW y procesados en paralelo para finalmente almacenar de nuevo los 4 píxeles resultantes a SDRAM.

Figura 5. 2D-convolver basado en Vector Multiplier.

3.4. Orientación del campo

La orientación del campo es una característica fundamental de la imagen, relativa al ángulo que toma la estructura de crestas y valles en cada región de la imagen. Para estimar esta orientación nuestro algoritmo utiliza el método de ajuste por mínimos cuadrados [5]. Una vez calculados los gradientes Gy y Gx para cada píxel, la orientación local de cada bloque de 8x8 píxeles en que se divide la imagen, 8x8, se obtiene a través de (6):

8 822

8 8

1-88

,-,

,G,2tan

21,

j iyx

j iyx

x

ixjyGixjyG

ixjyixjyGxy

El procesador HW que calcula la orientación del campo se muestra en la Fig. 6, donde el coprocesador trigonométrico que sintetiza atan2(dY,dX) está basado en CORDIC [4].

3.5. Binarización

Una vez calculada la orientación del campo para cada bloque 8x8 de la imagen, se consigue enfatizar la claridad de crestas y valles mediante la convolución de la imagen con filtros direccionales de Gabor 7x7 [5], donde los coeficientes de la matriz de convolución se ajustan en función del ángulo del bloque en cuestión. A continuación, la imagen resultante se binariza

Q D Q D

000…0

BITS 0 BITS 1

Q DQ D ...

BITS 9 BITS 10

P0(10)&P1(10)…&P27(10) P0(9)&P1(9)…&P27(9) P0(1)&P1(1)…&P27(1) P0(0)&P1(0)…&P27(0)

LOAD/SHIFT

K0(19..0) K1(19..0)

MUX 2x20

K26(19..0)

MUX 2x20

K27(19..0)...

ADD

K2(19..0) K3(19..0)

MUX 2x20

K24(19..0)

MUX 2x20

K25(19..0)

000…0

...

...

...

Q DACC(31…0)

ADD(30..0)&0

000…0

bit1 bit2

bit0…bit27

bit3 bit24 bit25 bit26 bit27

11LOOPS

D Q

MUX 2x28

MUX 2x28 MUX

2x28

MUX2x28

MUX2x32

ADD(31…0) Pi·Ki

i = 0

27

SDRAM

...

bit0

...

ADD

ADD

ADD

ADD

ADD

ADD

ADD

MUX 2x20

MUX 2x20

MUX 2x20

MUX 2x20

... ...

Capítulo 1: Sistemas de Visión

24

Page 7: Procesador Hardware Auto-Reconfigurable de Huella Dactilardeeea.urv.cat/DEEEA/ecanto/WWW/Publications/jcra07_ffons.pdf · Procesador Hardware Auto-Reconfigurable de Huella Dactilar

comparándola con un valor umbral adaptativo. El resultado es una imagen en blanco y negro con una estructura de crestas y valles bien definida.

Figura 6. Procesador de orientación de campo.

3.6. Suavizado

Finalmente, la imagen binarizada se somete a un proceso de suavizado de líneas. Este refinamiento se realiza mediante una nueva convolución de la imagen con un filtro 7x7 diseñado para eliminar píxeles espurios o ruidosos [5].

4. Resultados experimentales

Nuestro algoritmo de procesado de huella dactilar se desglosa en cinco tareas: segmentación y normalización (en paralelo), eliminación de ruido, cálculo de orientación de campo, binarización y suavizado. Estas tareas se han ejecutado sobre distintas plataformas HW-SW procesando la misma imagen de 512x256 píxeles. Sobre PC se consiguen prestaciones ergonómicas de tiempo real. Estos resultados se muestran en la Tabla 1.

Tabla 1. Procesado de huella sobre plataforma PC.

PROCESADO PLATAFORMA PC Tarea SW Pentium4

2.66GHz Core2DuoT5600

1.83GHz Segment.-Normal. 30 ms 16 ms Eliminación ruido 210 ms 78 ms Orient. campo 10 ms 6 ms Binarización 270 ms 96 ms Suavizado 140 ms 63 ms

Cuando ese mismo embedded software es ejecutado sobre un procesador ARM de propósito general, las prestaciones de tiempo se ven degradadas en varias órdenes de magnitud. Sin embargo, si la misma algorítmica se sintetiza en procesadores HW dedicados, esas prestaciones de tiempo real alcanzadas con plataformas PC son factibles ahora con sistemas embebidos de bajo coste y procesados a menor frecuencia de reloj, como se muestra en la Tabla 2.

Tabla 2. Procesado de huella sobre plataforma SoC.

PROCESADO PLATAFORMA SoC Tarea SW o

Contexto HW ARM

50MHz FPGA & ARM

50MHz Segment.-Normal. 1575 ms 25 ms Eliminación ruido 18500 ms 35 ms Orient. campo 1970 ms 25 ms Binarización 27400 ms 40 ms Suavizado 7040 ms 40 ms

El coste que supone la inclusión de la FPGA queda amortiguado si este dispositivo lógico es reconfigurable, lo que permite mapear en un chip más pequeño distintos procesadores específicos de forma multiplexada en tiempo, mientras progresa la aplicación. De este modo, el MCU se ocupa de controlar el flujo del programa y de reconfigurar la FPGA a medida que avanzan las distintas etapas encadenadas que componen el algoritmo [1]. A la vez, la FPGA absorbe las tareas de mayor potencia computacional. Entre una etapa y la siguiente, el MCU transfiere el nuevo bitstream desde FLASH a la FPGA a través del controlador de configuración que opera a 16 MHz. De este modo, al tiempo de procesado hardware del planteamiento HW-SW de la Tabla 2, falta sumar el tiempo de reconfiguración total del dispositivo para conmutar así de un contexto al siguiente, que en el caso de la FPGA APEX20KE de 1 Mgates presente en el SoC EPXA10 es de 720 ms.

Gxj+3,i+Gyj+3,i

MUL MUL MUL MUL

ADD ADD

ADD

LPM DPRAM 64x32

64

321

Gxy,x·Gyy,

ADD

Q D

000…0

ACC

LOAD

MUX

Gxj,i Gyj,i Gxj+1,i Gyj+1,i Gxj+2,i Gyj+2,i Gxj+3,i Gyj+3,i

MUL MUL MUL MUL

ADD ADD

ADD

LPM DPRAM 64x32

64

321

Gx2y,x- Gy2

y,x

ADD

Q D 000…0

ACC

LOAD

MUX

Gxj,i-Gyj,i

Gxj+1,i+Gyj+1,i

Gxj+1,i-Gyj+1,i

Gxj+2,i+Gyj+2,i

Gxj+2,i-Gyj+2,i Gxj+3,i-Gyj+3,i

Gxj,i+Gyj,i

CORDIC-based ATAN2(dY/dX)

[-90º .. 90º]

dX

dY

DP-SRAM

VII Jornadas de Computación Reconfigurable y Aplicaciones (JCRA 2007)

25

Page 8: Procesador Hardware Auto-Reconfigurable de Huella Dactilardeeea.urv.cat/DEEEA/ecanto/WWW/Publications/jcra07_ffons.pdf · Procesador Hardware Auto-Reconfigurable de Huella Dactilar

Los recursos HW invertidos para emplazar los distintos procesadores no sobrepasan en ninguno de los cinco contextos los 12k elementos lógicos, 5k flip-flops y 64 kbits de memoria. Así pues, este mismo diseño sería sintetizable también en el SoC análogo de 400 kgates EPXA4, con lo que en este otro dispositivo la latencia de reconfiguración se reduciría a priori en un 60%. De todos modos, las nuevas tecnologías FPGA de Altera, como CYCLONE o STRATIX, admiten ya unos tiempos de reconfiguración más eficientes que los de estas APEX20KE, llegando incluso a tiempos del orden de 50 ms. Los resultados alcanzados mediante estas etapas de procesado se muestran en la Fig. 7.

Figura 7. Imagen inicial e imagen procesada.

5. Conclusiones

A medida que la potencia de cómputo de las aplicaciones aumenta y el precio de las FPGAs disminuye, éstas adquieren mayor aceptación en nuevos nichos de mercado hasta el momento dominados por los MCUs, alcanzando en la actualidad cotas de crecimiento de hasta un 20%.

Mientras aplicaciones de alta complejidad computacional como los sistemas automáticos de reconocimiento de huella dactilar son procesados en tiempo real sobre plataformas PC, estos tiempos de ejecución aumentan en varias órdenes de magnitud cuando el mismo código es ejecutado sobre embedded systems basados en MCUs de propósito general. Este hecho propicia recurrir a sistemas de mayor potencia de cómputo: las FPGAs reconfigurables encajan en este tipo de aplicaciones que exigen alto procesado paralelo a la vez que una algorítmica particionada en tareas

secuenciales en tiempo, lo que permite multiplexar el dispositivo mapeando sobre el mismo sustrato distintos coprocesadores a medida de la tarea a ejecutar en cada momento. Esta flexibilidad HW representa además un ahorro en coste que se convierte en un factor clave para su aceptación en aplicaciones del mundo real, en las que, por el contrario, el área ocupada por todo ese diseño multi-etapa de forma estática sobre la FPGA sería prohibitivo. Hasta ahora, esta arquitectura se ha validado sobre las primeras etapas del algoritmo de reconocimiento de huella dactilar. Como trabajo futuro, los autores persiguen implementar las etapas restantes para lograr un prototipo AFAS completo.

Referencias

[1] Altera Corp., Reconfiguring Excalibur Devices under Processor Control, www.altera.com.

[2] Atmel Corp., 3x3 Convolver with Run-Time Reconfigurable Vector Multiplier in Atmel AT6000 FPGAs, 1999, www.atmel.com.

[3] Cheng, J. and Tian, J., Fingerprint Enhancement with Dyadic Scale-Space, Pattern Recognition Letters 25, Elsevier, pp. 1273-1284, 2004.

[4] Fons, F., Fons, M., Cantó, E. and López, M., Trigonometric Computing Embedded in a Dynamically Reconfigurable CORDIC System-on-Chip, Springer Verlag, vol. LNCS 3985, pp. 122-127, March 2006.

[5] Hong, L., Wan, Y. and Jain, A., Fingerprint Image Enhancement: Algorithm and Performance Evaluation, IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 20, no. 8, pp. 777-789, 1998.

[6] Maltoni, D., Maio, D., Jain, A.K. and Prabhakar, S., Handbook of Fingerprint Recognition, Springer Verlag, 2003.

[7] Maio, D. and Maltoni, D., Direct Gray-Scale Minutiae Detection in Fingerprints, IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 19, pp. 27-40, January 1997.

Agradecimientos

Este trabajo ha sido financiado por el proyecto CICYT TEC2006-12365-C02-02 del Ministerio de Educación y Ciencia, España.

Capítulo 1: Sistemas de Visión

26