arquitectura para extracción de primitivas visuales de bajo nivel en un mismo chip en tiempo real

8
Arquitectura para extracción de primitivas visuales de bajo nivel en un mismo chip en tiempo real Francisco Barranco Matteo Tomasi Mauricio Vanegas CITIC, Univ. Granada CITIC, Univ. Granada CITIC, Univ. Granada [email protected] [email protected] [email protected] Javier Díaz Eduardo Ros ETSI Informática, U. Granada ETSI Informática, U. Granada [email protected] [email protected] Resumen En este trabajo presentamos una arquitectura para la extracción en tiempo real de primitivas visuales de bajo nivel: energía, orientación, disparidad y flujo óptico. La implementación se ha llevado a cabo utilizando cauces de grano fino superescalares, sobre un dispositivo hardware reconfigurable FPGA, cuyas características lo hacen un muy buen candidato gracias a su alto nivel de paralelismo. El sistema obtiene tasas de transferencia de entre 350 y 270 fps para la disparidad y el flujo óptico monoescala y hasta 32 fps para la extracción de todas las primitivas con la arquitectura multiescala. Además analizamos las prestaciones en tasa de transferencia, precisión y recursos hardware. 1. Motivación El procesamiento de la imagen y la visión artificial constituyen uno de los campos más importantes de la Inteligencia Artificial. Un procesamiento computacionalmente eficiente y preciso del bajo nivel se revela indispensable para la computación en capas superiores. Desarrollamos una arquitectura para la extracción de estas primitivas de bajo nivel: descriptores de contraste local (energía y orientación), disparidad de un par de imágenes y estimación de flujo óptico de una secuencia. La computación de estas primitivas es una tarea resuelta actualmente. Sin embargo, su extracción para altas prestaciones sigue siendo una tarea muy compleja. Para ello necesitamos arquitecturas que permitan aprovechar el paralelismo de los algoritmos a diferentes niveles. De ahí que en muchos trabajos se utilicen para ello procesadores gráficos o GPUs [12], versiones optimizadas que aprovechan las prestaciones paralelas que nos ofrecen los computadores actuales [2], arquitecturas dedicadas [10] y, como en nuestro caso, arquitecturas hardware reconfigurables [7]. Nuestra mayor aportación es el encapsulamiento en un mismo chip usando una arquitectura versátil y compleja de los circuitos para extraer todas estas primitivas al mismo tiempo y en tiempo real. Nuestro grupo tiene una gran experiencia en el desarrollo de estas arquitecturas, como vemos en [7][5][15], sobre los que nos basamos para el desarrollo del presente trabajo. Este trabajo se estructura como sigue: la Sección 2 detalla los algoritmos utilizados; la Sección 3 expone la arquitectura jerárquica mientras que la Sección 4 se centra en la exposición de la arquitectura hardware; la Sección 5 aporta los detalles sobre prestaciones y recursos y finalmente se exponen las conclusiones extraídas. actas_JCRA_Rev.pdf 209 16/07/2010 18:57:35

Upload: umd

Post on 11-Nov-2023

0 views

Category:

Documents


0 download

TRANSCRIPT

Arquitectura para extracción de primitivas visuales de bajo nivelen un mismo chip en tiempo real

Francisco Barranco Matteo Tomasi Mauricio VanegasCITIC, Univ. Granada CITIC, Univ. Granada CITIC, Univ. Granada

[email protected] [email protected] [email protected]

Javier Díaz Eduardo RosETSI Informática, U. Granada ETSI Informática, U. Granada

[email protected] [email protected]

Resumen

En este trabajo presentamos una arquitecturapara la extracción en tiempo real deprimitivas visuales de bajo nivel: energía,orientación, disparidad y flujo óptico. Laimplementación se ha llevado a cabo utilizandocauces de grano fino superescalares, sobre undispositivo hardware reconfigurable FPGA,cuyas características lo hacen un muybuen candidato gracias a su alto nivel deparalelismo. El sistema obtiene tasas detransferencia de entre 350 y 270 fps parala disparidad y el flujo óptico monoescalay hasta 32 fps para la extracción de todaslas primitivas con la arquitectura multiescala.Además analizamos las prestaciones en tasa detransferencia, precisión y recursos hardware.

1. Motivación

El procesamiento de la imagen y la visiónartificial constituyen uno de los campos másimportantes de la Inteligencia Artificial. Unprocesamiento computacionalmente eficiente ypreciso del bajo nivel se revela indispensablepara la computación en capas superiores.Desarrollamos una arquitectura para laextracción de estas primitivas de bajo nivel:descriptores de contraste local (energía yorientación), disparidad de un par de imágenesy estimación de flujo óptico de una secuencia.

La computación de estas primitivas es unatarea resuelta actualmente. Sin embargo, suextracción para altas prestaciones sigue siendouna tarea muy compleja. Para ello necesitamosarquitecturas que permitan aprovechar elparalelismo de los algoritmos a diferentesniveles. De ahí que en muchos trabajos seutilicen para ello procesadores gráficos o GPUs[12], versiones optimizadas que aprovechanlas prestaciones paralelas que nos ofrecenlos computadores actuales [2], arquitecturasdedicadas [10] y, como en nuestro caso,arquitecturas hardware reconfigurables [7].

Nuestra mayor aportación es elencapsulamiento en un mismo chip usandouna arquitectura versátil y compleja de loscircuitos para extraer todas estas primitivas almismo tiempo y en tiempo real. Nuestro grupotiene una gran experiencia en el desarrollo deestas arquitecturas, como vemos en [7][5][15],sobre los que nos basamos para el desarrollodel presente trabajo.

Este trabajo se estructura como sigue: laSección 2 detalla los algoritmos utilizados; laSección 3 expone la arquitectura jerárquicamientras que la Sección 4 se centra en laexposición de la arquitectura hardware; laSección 5 aporta los detalles sobre prestacionesy recursos y finalmente se exponen lasconclusiones extraídas.

actas_JCRA_Rev.pdf 209 16/07/2010 18:57:35

2. Descripción de los algoritmos

Esta sección describe brevemente losalgoritmos utilizados para la extracciónde las distintas primitivas. Los descriptores decontraste local han sido extraídos utilizandoel gradiente espacial de la imagen. Lasestimaciones de flujo y disparidad sellevan a cabo utilizando los algoritmosde Lucas&Kanade [9]. Para ambos casosañadimos además las extensiones multiescalapara aumentar el rango de las estimacionescalculadas.

2.1. Energía y orientación

Para el cálculo de estas dos característicaslocales de la imagen necesitamos las derivadasparciales espaciales Ix y Iy. Ambas sontambién computadas para la estimación deflujo óptico, usando el filtrado de Simoncellipropuesto en [7]. Partiendo de ellas obtenemoslas primitivas como se ve en (1) y (2)

E =√I2x + I2

y (1)

O = arctan(IyIx

) (2)

2.2. Flujo Óptico

La estimación de flujo óptico se calculaasumiendo que la intensidad del valor de cadauno de los píxeles se mantiene constante a lolargo del tiempo.

Los algoritmos de flujo óptico se dividenen dos grandes grupos: locales y globales.Los métodos locales asumen flujo constantepara cada píxel dentro del mismo vecindariocentrado en él (basados en los trabajosde Lucas & Kanade [9]). Por otro lado,los globales asumen que el flujo para unpíxel dado depende del resto de píxelesdel fotograma (basados en los trabajos deHorn & Schunk [8]). En nuestro caso, hemoselegido el conocido algoritmo de Lucas &Kanade (L&K). Es uno de los más utilizadosactualmente gracias al buen compromiso queofrece entre la precisión obtenida y la bajacomplejidad computacional. El flujo ópticose calcula basándose en la constancia de la

intensidad, premisa conocida como OpticalFlow Constraint y que puede ser expresadacomo se ve en (3)

I(x, y, t) = I(x+ u, y + v, t+ 1) (3)

De esta forma, definimos el flujo óptico comola velocidad (u, v). Aplicando la expansión deTaylor llegamos a (4)

Ixu+ Iyv + It = 0 (4)

donde los subíndices representan las derivadasparciales. Para la resolución de este sistemaaplicamos mínimos cuadrados, obteniendo (5)

(u, v) = (ATW 2A)−1ATW 2b (5)

En (5), A y b son las matrices de coeficientesy términos independientes respectivamente yW representa la matriz de pesos para elvecindario (Ω). Con W pesamos más losvalores centrales que los de alrededor. Desde(5) resolvemos obteniendo el sistema lineal 2x2definido por (6) y (7)

(ATW 2A) =

∑i∈Ω

W 2i I

2xi

∑i∈Ω

W 2i IxiIyi∑

i∈Ω

W 2i IxiIyi

∑i∈Ω

W 2i I

2yi

(6)

(ATW 2b) =

∑i∈Ω

W 2i IxiIti∑

i∈Ω

W 2i IyiIti

(7)

En cuanto a las métricas para medir lacalidad de nuestras estimaciones utilizamosel AAE (Error angular medio) y el SAE(Desviación típica del error angular) definidasen [4]. Además medimos la densidad puestoque nuestras estimaciones son dispersas.Con la extensión multiescala conseguimosestimaciones en un rango hasta 30 veces mayorque las estimaciones monoescala.

Para este trabajo nos hemos basado en laimplementación propuesta por Barron en [3],aunque utilizamos como medida de confianzael valor del determinante de (6), lo que noreduce significativamente la precisión [6][7].

200 X Jornadas de Computación Reconfigurable y Aplicaciones, (JCRA2010)

actas_JCRA_Rev.pdf 210 16/07/2010 18:57:35

2.3. Disparidad

La disparidad, en un sistema estéreo como elque proponemos, se define para un píxel comola diferencia en la coordenada x entre imagenderecha e izquierda. Se puede expresar comoen (8)

IR(x) = IL(x+ δ(x)) (8)

donde IR e IL son la imagen derechae izquierda respectivamente y δ(x) es ladisparidad.

En cuanto a las técnicas para resolverel problema de la disparidad, diferenciamosde nuevo entre modelos locales y globales.Los locales se centran en el vecindarioalrededor del píxel para calcular su disparidadmientras que los globales se refieren a laimagen completa. En nuestro caso, utilizamosel algoritmo local de Lucas&Kanade [9].Esta técnica estima pequeñas disparidadeslocales asumiendo que la intensidad de unpíxel se mantiene constante entre ambasimágenes. Para obtener las estimacionespara disparidades mayores utilizamos lamultiescala.

La resolución en este caso es similar a lade la Subsección anterior. Así, si tenemos encuenta (9)

I(x+ δ) ≈ I(x) + δI ′(x) (9)

y resolvemos (8) minimizando el error conrespecto a la disparidad, obtenemos (10)

δ =

∑i∈Ω

W 2i Lxi(Ri − Li)∑

i∈Ω

W 2i L

2xi

(10)

donde hemos simplificado la notación y losW son los pesos como en el flujo óptico yLxi representa la derivada parcial en x de laimagen izquierda.

3. Arquitectura multiescala

Como hemos dicho, la extensión multiescalade los algoritmos nos permite el cálculode las primitivas visuales para valores conmayores rangos (hasta 30 veces mayores

que los monoescala). Se puede estructurarmodularmente en:

• Cálculo de la pirámide Gaussiana: Paralos fotogramas de entrada (3 para flujoóptico y 2 para disparidad). Su cómputodepende del número de escalas que vamosa implementar que depende a su vez dela resolución de la imagen y del rangode los desplazamientos. Además, llevamosa cabo un filtrado inicial para reducir elaliasing producido por el muestreo. Estedesarrollo se basa en [1].

• Cálculo de la primitiva: A continuaciónse computan las primitivas visuales debajo nivel. Para Energía y Orientaciónno necesitamos la estimación multiescala,sólo se computan en la última escala.

• Escalado: Expansión de la escala actual ala resolución de la escala siguiente.

• Compensación: Desplazamientode las imágenes actuales con laestimación computada para reducir losdesplazamientos con precisión subpíxel.Para la disparidad la compensación tieneuna componente (x) mientras que para elflujo óptico es bidimensional.

• Combinación: Suma del valor de laprimitiva calculado para la etapa actualy la estimación computada hasta la etapaanterior.

En la Fig. (1) se muestra el procesamientodel algoritmo multiescala. Se computa lapirámide para las imágenes de entrada, estasalida se pasa directamente al módulo querealiza la extracción de la primitiva en el casode ser la primera vez. El siguiente paso es elescalado a la resolución de la siguiente escala yla compensación (warping) de las imágenes deesa nueva escala con la estimación escalada.Una vez realizado este paso, lo siguientees volver a computar la estimación para lanueva entrada compensada y volver a escalary compensar iterativamente en función delnúmero de escalas. La arquitectura multiescalase basa principalmente en el trabajo de [15].

Sistemas de visión artificial 201

actas_JCRA_Rev.pdf 211 16/07/2010 18:57:35

Figura 1: Esquema del algoritmo multiescala parala extracción

4. Implementación hardware

La plataforma utilizada es una XircaV4[14], que contiene una FPGA Xilinx Virtex4XC4vfx100. Además de una interfaz PCIexpress para conectar con el computador y 4bancos SRAM ZBT de 8 MB. Puede trabajartanto como plataforma stand-alone como paracoprocesamiento.

Implementamos usando dos niveles deabstracción diferentes: mediante el lenguajeVHDL se implementó el controlador dememoria (MCU) y las interfaces con memoriay con el PCI; para el cómputo de la primitivay la multiescala utilizamos el lenguaje de altonivel Handel-C, puesto que es más apropiadopara la descripción algorítmica y no degradalas prestaciones o aumenta el uso de recursoshardware significativamente [11].

4.1. Flujo óptico

Las contribuciones principales respecto atrabajos anteriores son: la migración a la nuevaplataforma, las conexiones con el controladorde memoria (MCU) [16] y la adaptación a laarquitectura multiescala.

Las etapas para la implementación del flujoóptico son:

• S0: Filtrado de los fotogramas de entradacon kernels Gaussianos K = [1 21]/4 para reducir el aliasing. Nuestraventana temporal es de 3 fotogramas, unmayor número de los mismos complica la

Figura 2: Etapas de procesamiento para el flujoóptico

operación de warping y conlleva un mayoruso de recursos de memoria.

• S1: Cálculo de las derivadas temporales.

• S2: Calcula las derivadas espaciales apartir de las anteriores: Ixi, Iyi, Iti.

• S3: En esta etapa calculamos loscoeficientes del sistema lineal quemostramos en (6) y (7). Los pesos Wi sonkernels separables W = [1 4 6 4 1]/16,que son los que se utilizan en [4] [6] [7] .

• S4: Resolución del sistema queplanteamos en la etapa anterior. Utilizael determinante de (6) como medida deconfianza. Se estudiaron dos alternativaspara la resolución de esta etapa: usararitmética de punto fijo y de puntoflotante.

En la Fig. (2) podemos ver las etapas antesdescritas y el número de etapas de caucepara cada una de ellas junto con el númerode cauces superescalares; teniendo en cuentanuestra arquitectura de cauces de grano finoparalelos superescalares, podemos calcular untotal de: 36 (S0)+ 18 (S1)+ 36 (S2)+ 72 (S3)+37 (S4) = 199 unidades de procesamientoparalelo. En la Fig. (4) podemos ver losresultados de salida para la extracción de flujoóptico para Yosemite.

202 X Jornadas de Computación Reconfigurable y Aplicaciones, (JCRA2010)

actas_JCRA_Rev.pdf 212 16/07/2010 18:57:35

Figura 3: Etapas de procesamiento para ladisparidad

Figura 4: Resultados para flujo óptico y disparidadpara las secuencias de Yosemite (izquierda) yTsukuba (derecha)

4.2. Disparidad

La implementación de la disparidad tambiénse basa en el algoritmo de L&K[9] extendidotambién a la arquitectura multiescala.

Las etapas del core para la implementaciónde la disparidad son similares a las de flujoóptico (tal y como vimos en la Sección 2).Para este sistema utilizamos 127 unidades deprocesamiento paralelo, tal y como se muestraen la Fig. (3). Además, el número de unidadessuperescalares disminuye en algunos casos, asícomo la profundidad de los cauces. Podemosver un ejemplo de disparidad en la Fig. (4),sobre la imagen de Tsukuba.

4.3. Energía y orientación

Para el cálculo de estas dos primitivasnecesitamos las derivadas del fotograma deentrada, pero únicamente son calculadas enla última escala (la de grano más fino). Las

Figura 5: Etapas de procesamiento para laextracción de energía y orientación

etapas para el cálculo de las mismas aparecenlistadas a continuación y están representadasen la Fig. (5):

• S0: Esta etapa lleva a cabo el filtradoGaussiano K = [1 2 1]/4 para reducir elaliasing.

• S1: Esta etapa calcula las derivadastemporales.

• S2: Calcula las derivadas espacio-temporales a partir de las anteriores.

• S3: En esta etapa se calculan orientacióny energía como el módulo y la dirección apartir del gradiente.

En total, llegamos a emplear 86 unidadesde procesamiento paralelo. Como hemoscomentado, los cauces paralelos superescalaresse representan por el número de caminosen cada una de las etapas. Los valoresentre paréntesis en cada una representan laprofundidad del cauce de las mismas.

Estas primitivas se utilizan para todo tipode aplicaciones, entre otras, la orientación seusa para reconocimiento de patrones. Puestoque el esquema está basado en el gradiente,los módulos que se utilizan para el cálculo deestas primitivas se pueden reutilizar tambiénen las demás primitivas extraídas. En la Fig.(6) podemos ver los resultados de extracciónde estos descriptores de contraste local.

Sistemas de visión artificial 203

actas_JCRA_Rev.pdf 213 16/07/2010 18:57:35

Figura 6: Resultados para una imagen realde tráfico (arriba) de extracción de energía yorientación (abajo izquierda y derecha)

Figura 7: Arquitectura hardware del sistemacompleto

4.4. Sistema completo

En este apartado vamos a comentar detallessobre la arquitectura completa de nuestrosistema. En primer lugar, los tres grupos deprimitivas extraídas (flujo óptico, disparidady energía y orientación) se corresponderíancon tres cores independientes pero comohemos dicho, tenemos dos cores: uno con ladisparidad y en el otro integramos juntosenergía y orientación con el flujo óptico paraahorrar recursos (también se podrían haberintegrado con disparidad). La aportaciónprincipal de este trabajo respecto a losanteriores ya mencionados es precisamente laintegración de las diferentes primitivas (en los

anteriores se hacía sobre flujo óptico y sólose disponía de un core monoescala) con lamultiescala, junto con la migración a la nuevaplataforma para la conexión con el PC y lasnuevas interfaces con memoria.

La multiescala se implementa para flujoy disparidad por tanto, si todo se ejecutaen paralelo, duplicamos algunos módulosde procesamiento. Además, la memoriacompartida para lectura y escritura hace quetengamos que establecer un mapa de memoriacuidadosamente para evitar los problemas decoherencia.

El sistema completo se detalla en la Fig. (7),por un lado el core de disparidad y por otroel de flujo óptico y descriptores de contrastelocal. El procesamiento de la expansión yel warping se duplican pero el módulo quese encarga del cómputo de la pirámide escompartido (para disparidad se hace tantode la imagen derecha como de la izquierda,mientras que el flujo óptico se aplica sólo ala izquierda). La arquitectura presentada essimilar a la que se presentó en [15] pero noaplicada únicamente al flujó óptico.

La etapa de construcción de la pirámideGaussiana ha sido ya comentada previamente.Lo primero que llevamos a cabo es un filtradoGaussiano 5x5 para reducir el aliasing. Elsiguiente paso es el submuestreo encadenadoen función del número de escalas para crearlas entradas de cada una de las iteraciones delalgoritmo. Las imágenes de entrada son leídasa través de la interfaz PCI express, tal y comose muestra en [5][13][15] y una vez procesadas,son almacenadas en los bancos ZBT.

La etapa de warping o compensaciónconsiste en una interpolación bilineal (linealen el caso de la disparidad) de las imágenesde entrada con los valores computados para lacaracterística extraída en la iteración anterior(no se realiza en la primera iteración).

La etapa de suma combina los valores de lacaracterística extraída en la iteración anterior(la suma total) y los computados en la nueva.La propagación de valores no válidos se realizacon una operación "AND" lógica.

La última etapa es la del filtrado de medianaentre escalas de tamaño 3x3.

204 X Jornadas de Computación Reconfigurable y Aplicaciones, (JCRA2010)

actas_JCRA_Rev.pdf 214 16/07/2010 18:57:35

5. Prestaciones

En cuanto al flujo óptico, el core presentadoen este trabajo consigue alcanzar hasta270 fps (fotogramas por segundo) utilizandoresolución VGA (640x480) en la entrada.Este valor se obtiene usando aritmética enpunto fijo, en el caso de usar punto flotantealcanza hasta 247 fps. Por otro lado, en laTabla (1) podemos ver que la implementaciónmonoescala alcanza el 9% de los recursos yla multiescala hasta el 61%. Por último, encuanto a la precisión, para la secuencia deYosemite, muy utilizada en visión artificial,el AAE (error angular medio) llega hasta los9.08o con un 81% de densidad, como vemosen la Tabla (2). En cuanto a los resultados,en la Fig. (4) podemos ver la salida para esasecuencia.

Para la disparidad, el core alcanza unmáximo de hasta 352 fps para imágenes conresolución VGA. En la Tabla (1) podemos vercómo la implementación monoescala alcanzael 5% de los recursos y la multiescalahasta el 44%. Para la secuencia de Tsukuba,también muy utilizada en visión artificial, elMAE(error absoluto medio) llega hasta 0.83con un 94.03% de densidad, tal y como vemosen la Tabla (2). En cuanto a los resultadoscualitativos, podemos ver la primitiva extraídaen la Fig. (4).

Por último, el sistema completo que extraetodas las primitivas visuales aparece en laTabla (1) que analiza los recursos. Comovemos, llega a consumir hasta el 76% de losrecursos totales del sistema. Este valor no seobtiene como la suma de los anteriores puestoque se comparten recursos al encapsularlosen el mismo circuito como por ejemplo laconstrucción de la pirámide, las interfaces conla plataforma y con memoria, además de laoptimización de las herramientas de Xilinx[17]. Esta arquitectura nos permitiría procesarhasta 32 fps para resolución VGA.

6. Conclusiones

En este trabajo hemos diseñado eimplementado un sistema empotrado para

Flujo Óptico: Yosemite Disparidad: TsukubaEsc. AAE SAE Dens. MAE SAE Dens.1 10.92 15.36 98.30 5.20 3.6 94.642 9.08 12.40 80.94 2.25 3.02 92.913 9.20 11.72 84.05 0.83 1.26 94.034 9.42 12.12 85.83 0.93 1.37 93.89

Tabla 2: Error para flujo y disparidad enfunción del número de escalas para lassecuencias de Yosemite y Tsukuba

la extracción de primitivas visuales de bajonivel en tiempo real. En todos los algoritmoshemos intentado mantener un compromisoentre precisión, eficiencia y consumo de losrecursos.

El principal objetivo es el de la computaciónen tiempo real. Este hecho representauna oportunidad muy interesante para lacomputación en medio y alto nivel de visión.El sistema llega a conseguir hasta 32 fpspara resoluciones VGA para la arquitecturamultiescala y 350 fps y 270 fps respectivamentepara la extracción monoescala del flujo ópticoy la disparidad. En nuestro caso, el sistemacompleto utiliza hasta un 76% de los recursosdisponibles en la plataforma. Además, todoesto lo conseguimos manteniendo un buencompromiso con la precisión de las primitivasextraídas.

La arquitectura basada en caucessuperescalares de grano fino consigue unsistema de altas prestaciones con un consumode potencia bajo [7]. Más que el diseño de unsistema específico, en el trabajo describimosuna forma versátil de implementar quepueda ser fácilmente adaptada a diferentescompromisos entre prestaciones y recursoshardware. Además, podemos controlar lacompartición de recursos lo que hace alsistema fácil de reutilizar en diferentescampos.

Todo esto hace al sistema apropiado paraimplementar sistemas aún más complejos paraaplicaciones muy diversas, como por ejemplo,arquitecturas para sistemas de visión activos,vídeo-vigilancia o navegación autónoma.

Sistemas de visión artificial 205

actas_JCRA_Rev.pdf 215 16/07/2010 18:57:36

4 input LUTs Slice FlipFlops Slices DSP BlockRAM Freq(out of 84352) (out of 84352) (out of 42716) (160) (378) (MHz)

OF system 31793 (37%) 24694 (29%) 26036 (61%) 62 (38%) 112 (29%) 44OF core 4589 (5%) 6622 (5%) 4128 (9%) 30 (18%) 48 (12%) 83Disp system 21287 (25%) 16989 (20%) 18773 (44%) 6 (3%) 92 (24%) 49Disp core 2358 (2%) 3120 (3%) 2129 (5%) 3 (1%) 28 (7%) 108Board Interface 4774(5%) 5195 (6%) 5388 (6%) 0 36 (9%) 112Complete system 41613 (49%) 32706 (38%) 32442 (76%) 49 (30%) 162 (43%) 44

Tabla 1: Utilización de recursos hardware

7. Agradecimientos

Este trabajo ha sido financiado por el proyectonacional DINAM-VISION (DPI2007-61683),los de la Junta de Andalucía P06-TIC02007y TIC-3873 y el Programa Alβan, Programade Becas de Alto Nivel de la Unión Europeapara América Latina, beca [E06D101749CO].

Referencias

[1] Adelson, E.H., Burt, P.J., The Laplacianpyramid as a compact image code, IEEET.Commun., vol. 31, pp. 532-540, 1983.

[2] Anguita, M., Diaz, J., et al. Optimizationstrategies for high-performance computingof optical-flow in general-purposeprocessors, IEEE TCSVT, 2009.

[3] Beauchemin, S., Barron, J.L., Thecomputation of optical flow, ACM CompSurv, vol. 27, pp. 433-466, 1995.

[4] Barron, J.L., Fleet, D.J., Beauchemin, S.,Performance of optical flow techniques,IJCV, vol. 12, pp. 43-77, 1994.

[5] Barranco, F., Tomasi, M., et al. Entornosoftware para visualización y configuraciónde procesamiento de imágenes en tiemporeal con plataformas reconfigurables,JCRA, pp. 327-336, 2009.

[6] Brandt, J.W., Improved accuracy ingradient based optical flow estimation,IJCV, vol. 25, pp. 5-22, 1997.

[7] Diaz, J., Ros, E., Agis, R., Bernier, J.L.,Superpipelined high-performance optical-flow computation architecture, CVIU, vol.112, pp. 262-273, 2008.

[8] Horn, B., Schunk, B., Determining opticalflow, AI, vol. 17, pp. 185-203, 1985.

[9] Lucas, B.D., Kanade, T., An iterativeimage registration technique with anapplication to stereo vision, Int. Conf. onAI, Vancouver, pp. 674-679, 1981.

[10] Murachi, Y., Fukuyama, Y., Yamamoto,R., et al. A VGA 30-fps Realtime Optical-Flow Processor Core for Moving PictureRecognition, IEICE, pp.457-464, 2008.

[11] Ortigosa, E.M., Cañas, A., et al.Hardware description of multilayerperceptrons with different abstractionlevels, Microp. and Microsys., vol. 30, pp.435-444, 2006.

[12] Pauwels, K., Van Hulle, M. M., Optimalinstantaneous rigid motion estimationinsensitive to local minima, CVIU, pp. 77-86, 2006.

[13] Open-rt Vision web page:http://code.google.com/p/open-rtvision/

[14] Seven Solutions web page:http://www.sevensols.com

[15] Tomasi, M., Barranco, F., et al.Arquitectura multiescala de cálculo deflujo óptico basado en la fase, JCRA, pp.295-304, 2009.

[16] Vanegas, M., Tomasi, M., Diaz, J.,Ros, E., Multiport abstraction layer forFPGA intensive memory exploitationapplications, Submitted to JSA, 2010.

[17] Xilinx web page: http://www.xilinx.com

206 X Jornadas de Computación Reconfigurable y Aplicaciones, (JCRA2010)

actas_JCRA_Rev.pdf 216 16/07/2010 18:57:36