Architecture des traitements matériels (IP)

Architecture des traitements matériels (IP)

L’organisation de notre architecture, déployée sur FPGA, est représentée en figure 4.1. Elle se compose de plusieurs IP connectées entre elles, reliées à la caméra et au système logiciel par des interfaces dédiées.Un signal indique au système logiciel que les résultats sont disponibles, afin qu’ils les lise. Ainsi, il lit les coordonnées des points d’intérêt, et récupère dans les DoG les an- neaux de pixels dont il a besoin pour générer les caractéristiques locales. Ces imagettes log-polaires sont alors envoyées au réseau de neurone artificiel par le biais du module Ethernet de la carte.Le flux de pixels en provenance de l’interface de la caméra est transféré en entrée dela première IP : l’intensité de gradient. Un signal Enable permet d’activer le fonction- nement de cette IP dès qu’un nouveau pixel est disponible en entrée à chaque nouveau cycle d’horloge. Les coordonnées des pixels permettent aux IP de maîtriser les effets deLes DoG sont stockées dans une mémoire externe au FPGA, un contrôleur mémoire dédié permet de stocker les six DoG, en laissant un accès en lecture pour le système logiciel.

Les pixels, leurs coordonnées et les signaux Enable forment l’ensemble des données communiquées d’une IP à l’autre, du gradient jusqu’aux sorties des DoG. Les recherches et tris de points d’intérêt ont des fonctionnements différents : l’IP de recherche fournira, en plus des pixels et de leurs coordonnées, un signal indiquant si le pixel est un point d’intérêt. Les IP de tri ne liront les pixels et leurs coordonnées que quand ce signal sera actif, afin de ne trier que les points d’intérêt.La plupart des IP ayant pour entrées et sorties des flux de pixels de même type, il est utile de mettre en place une interface standard commune à ces IP. Cette standar- disation permet une connexion transparente d’une IP à une autre, et la modularité de l’architecture globale du système matériel.

L’IP de recherche de points d’intérêt utilise cette interface en entrée, mais en sortie, le signal Enable_out est remplacé par un signal « Trier ». Ce signal indique que le pixel en sortie est un point d’intérêt potentiel, et doit être inséré dans la liste triée de points d’intérêt (si sa valeur lui permet de rester dans la liste).Les IP de tri de points d’intérêt fournissent un seul signal de façon active : une fois que l’image est traitée dans son intégralité, le signal « Terminé » indique à l’interface du système logiciel que la demi-échelle correspondante est traitée. Le système logiciel peut alors travailler sur chacune des six demi-échelles au fur et à mesure qu’elles finissent d’être étudiées par les IP. Les résultats des IP de tris, sont lus à la manière de mémoires RAM, contenant les coordonnées des points d’intérêt par ordre de valeurs de points d’intérêt.

Intensité de gradient

L’algorithme choisi pour calculer l’intensité de gradient de l’image d’entrée corres- pond à une version simplifiée de l’opérateur de Sobel. La différence fondamentale avec l’opérateur de Sobel est la racine carrée, que l’on remplace par une simple moyenne pour gagner en place sur le FPGA pour un moindre impact sur l’efficacité du système. Dans le cas où l’on voudrait éviter cette approximation, le déploiement d’un opérateur de racine carrée pourrait être envisagé. Différentes IP présentes dans la littérature per- mettent le calcul d’une racine carrée en une seul itération (CL00), ce qui permettrait de conserver une homogénéité du comportement temporel des IP du système de vision. En figure 4.3, on peut voir l’architecture proposée pour l’IP d’intensité de gradient.La synchronisation des pixels en entrée de l’opérateur de l’IP est un point impor- tant. Une mémorisation des pixels d’entrée de l’IP, à base de registres à décalage et de simples registres, permet de fournir simultanément les huit pixels nécessaires au calcul de chaque pixel de sortie.

Filtrage Gaussien

Le filtrage Gaussien est réalisé par une convolution de l’image d’entrée avec un noyau de coefficients 2D. Étant donné que le filtrage Gaussien 2D est séparable en deux convolutions 1D, des déploiements en deux passes 1D sont étudiés et comparés aux équivalents en une passe 2D. On peut ainsi connaître l’impact du choix d’un filtrage séparable, et le surcoût qu’impliquerait un changement pour un filtrage non-séparable. Les IP de convolution 2D présentes dans la littérature sont présentées en section 4.4.1. Il est à noter que la plupart de ces déploiements ne semblent pas particulièrementLes algorithmes décrits en section 3.1.2.1 sont tous fidèles à la version logicielle du filtrage Gaussien, au détail près du type de données (virgule fixe). Les différentes architectures proposées ici jouent sur l’organisation des opérations de ces algorithmes, afin de paralléliser les calculs au maximum.

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *