• Aucun résultat trouvé

2.3 Architectures pour le traitement d’images ` a base de FPGAs

2.3.6 FPGA et quelques applications de traitement d’images

Les FPGAs offrent une tr`es forte flexibilit´e architecturale coupl´ee `a de tr`es bonnes performances dans le cas d’applications de traitement d’images qui sont deux des aspects importants d´efinis dans les objectifs de nos travaux. La flexibilit´e des FPGAs permet de cr´eer l’architecture mat´erielle en fonction de l’application `

a ex´ecuter. De ce fait, les performances de cette derni`ere s’en trouvent optimis´ees. Par opposition au paradigme d’impl´ementation temporelle des processeurs classiques, les FPGAs offrent la possibilit´e d’effectuer une impl´ementation spa- tiale des applications. Par exemple, la Fig. 2.31 illustre la r´esolution de l’´equation

y = a× x2+ b× x + c suivant le paradigme temporel et spatial.

De part leur architectures les FPGAs apparaissent comme une solution tr`es performante pour le traitement embarqu´e et notamment pour les applications de traitement d’images. Afin d’´etayer ces propos, W.J. MacLean propose une ´evaluation de la pertinence de l’utilisation des FPGAs pour les syst`emes de vi- sion embarqu´es [99]. Ses conclusions peuvent se r´esumer ainsi :

• Points positifs :

– La flexibilit´e pour exploiter la nature intrins`equement parall`ele de beaucoup d’algorithmes de traitement d’images,

– un temps de d´eveloppement, de test et de mise au point bien inf´erieur `a celui des ASICs,

– un temps de reconfiguration de quelques millisecondes,

horloge plus lente) et aux ASIC (empreinte mat´erielle plus petite),

– une forte protection face au reverse engineering (RE) grˆace `a l’utilisation de configurations par bit-stream crypt´es,

– un coˆut mat´eriel et logiciel relativement faible.

• Points n´egatifs :

– Le d´eveloppement d’algorithmes utilisant des donn´ees cod´ees en virgule flot- tante n’est pas impossible mais peut tr`es rapidement saturer les ressources du FPGA,

– Les ressources d’un FPGA sont fixes et dans le cas o`u trop de ressources sont n´ecessaires, le concepteur est bloqu´e (`a l’inverse des CPUs classiques o`u seul le temps de traitement est modifi´e)22,

– Les performances des FPGAs sont moindres que celle des ASICs,

– Le d´eveloppement d’application sur FPGA demande des connaissances so- lides en ´electronique num´erique et en programmation en langage HDL (VHDL[91] ou Verilog[92]).

En conclusion, W.J. MacLean estime que la technologie FPGA est promet- teuse pour les applications de vision embarqu´ees principalement grˆace aux avan- tages de leur reconfigurabilit´e et leur forte pr´edisposition `a l’exploitation du parall´elisme. Ceci est nuanc´e par les restrictions induites par la quasi obliga- tion d’utiliser des donn´ees cod´ees en virgule fixe. `A ces consid´erations, s’ajoute ´

egalement la n´ecessit´e de connaissances en ´electronique num´erique afin de r´epondre `

a la difficult´e du d´eveloppement d’algorithmes sur FPGA.

On peut trouver dans la litt´erature un grand nombre de syst`emes de vision int´egrant un dispositif FPGA en tant que module de traitement permettant d’ex´ecuter un large ´eventail d’algorithmes de traitement d’images de mani`ere optimale.

Un syst`eme de vision a ´et´e d´evelopp´e par le laboratoire Le2i de l’Universit´e de Bourgogne [48]. Ce syst`eme (Fig. 2.32), int`egre un capteur CMOS haute-vitesse de 1.3 Mpixels, un circuit FPGA de la famille Virtex II de chez Xilinx et une interface USB 2.0. Le capteur d’images employ´e est capable d’acqu´erir jusqu’`a 500 ips, soit une cadence de sortie de 6.55 Gbits/s. Afin de permettre la trans- mission d’un tel flot vid´eo via le lien USB 2.0 (480 Mbits/s), des algorithmes de compression sont impl´ement´es et ex´ecut´es au sein du circuit FPGA. Des tˆaches de traitement d’images sont ´egalement impl´ement´ees, comme le filtre de Sobel ou des op´erations d’´erosion/dilatation.

22. On peut nuancer cet argument grˆace aux possibilit´es d’int´egration de processeurssoft-core au sein d’un FPGA lui permettant d’ex´ecuter un algorithme de mani`ere temporelle.

Figure 2.32 – Cam´era rapide du laboratoire Le2i

Nous avons ´egalement, au LASMEA, deux syst`emes de vision bas´es sur un composant FPGA. La premi`ere plateforme baptis´ee SeeMOS et pr´esent´ee en d´etails en Sec. 6.1 int`egre notamment un FPGA STRATIX I, un imageur LUPA 4000 et une carte de communication FireWire. Plusieurs applications de traite- ment d’images ont ´et´e r´ealis´ees sur cette plateforme. On peut citer l’impl´ementation de l’algorithme d’extraction de flux optique suivant la m´ethode de Lucas et Ka- nade [42] (Fig. 2.34). Cet algorithme met particuli`erement en avant l’avantage de la parall´elisation offert par les composants FPGAs. Par exemple, la premi`ere ´etape de cet algorithme consiste `a calculer, pour chaque point d’une image, le gradient vertical, horizontal et temporel. Grˆace `a l’utilisation d’un FPGA, ces trois calculs peuvent ˆetre r´ealis´es en parall`ele l`a o`u sur un CPU classique il aurait ´et´e n´ecessaire de s´equencer leur calcul. Ainsi, suivant notre impl´ementation, on obtient, pour une r´esolution d’image de 800× 600, une cadence d’image de 30 IPS23. `A titre de comparaison, Marzat et al. [79] obtiennent une cadence de 15

IPS pour une r´esolution d’image de 640× 480 en utilisant un dispositif GPU. La seconde plateforme, la cam´era intelligente BiSeeMOS[40], est d´edi´ee aux traitements st´er´eo. Pour ce faire la cam´era BiSeeMOS (Fig. 2.35) dispose de deux capteurs d’image CMOS. La partie de traitement est bas´ee sur un FPGA Altera Cyclone III EP3C120. Enfin, la communication est assur´e par un module de communication Camera Link. `A titre d’exemple, la camera BiSeeMOS permet d’appliquer une transform´ee de Census sur une image de r´esolution 1024× 1024 `

a la cadence de 100 images par seconde [39].

Figure 2.33 – R´esolution spatiale de l’algorithme d’extraction de flux optique

Alimentation SRAM 72MB SRAM 72MB SRAM 1MB RS 232 16 Leds 16 Switches 50 MHz 125 MHz Connecteur d ’expension2 Connecteur d ’expension1 Flash JTAG SxVGA Camera Link Cyclone III EP3C120 ADC ADC DAC DAC Imageur Imageur Imageur DAC Optique Camera

Gauche Optique CameraDroite

Circuit analogique Circuit

analogique

Figure 2.35 – Cam´era intelligente BiSeeMOS