|
|
 |
|
La vision artificielle, une réalité grâce à un processeur de signaux numériques
|
|
|
|
Les applications de traitement d'image haut de gamme sont typiquement exigeantes quant au traitement pixel et les besoins de performances
en temps réel. Évidemment, la notion de temps réel est relative. Il est peut-être nécessaire d'inspecter les étiquettes de 20 000 bouteilles/heure, ou un produit
qui requiert un étalonnage couleur en direct de plusieurs pieds/seconde. En imagerie médicale, l'exécution de convolutions à grand noyau dans des affichages haute
résolution de 30 images/seconde, est une pratique courante.
|
|
Illustration 1
Bien que le TI C80 puisse exécuter, sur une image 512 x 512 x 8 bits, des opérations en 2 ou 3 ms (par exemple point à point), les opérations de voisinage
telles que les convolutions ou la morphologie, fondamentales en traitement d'images, sont beaucoup plus lentes. Le processeur ASIC accélérateur d'opérations de voisinage (NOA)
de Matrox, disponible en option, supplée à ce manque de puissance du TI C80. Il consiste en une matrice de cellules MAC (multiplication/somme) pouvant effectuer simultanément
32 sommes de produits à 50 MHz, et exécute les opérations de voisinage jusqu'à 20 fois plus rapidement que le TI C80 travaillant seul.
|
|
Les applications de traitement d'images requièrent non seulement des composants de traitement puissants mais également une flexibilité d'acquisition.
Compte tenu de la large gamme de caméras utilisées, le matériel de traitement d'images pressenti pour les applications scientifiques, médicales et industrielles doit pouvoir
s'interfacer à une gamme complète de capteurs. En plus des caméras standard RS-170/CCIR et RVB; les caméras non standard, couleur et monochrome, analogiques et numériques,
progressives; les caméras à cadence d'images plus élevée (60 images/sec ou plus); les caméras à sorties multiples et les caméras de résolution plus élevée; sont utilisées
de plus en plus fréquemment. Les applications d'inspection industrielle requièrent normalement une interface à des caméras à balayage linéaire. On utilisera, pour l'inspection
de cartes à circuits intégrés, des caméras numériques dont les images sont plus précises et contiennent moins de bruit que celles des caméras analogiques.
|
|
Les besoins d'affichage varient selon les applications, mais il est probable qu'il sera nécessaire d'afficher en temps réel les images traitées et qu'un
opérateur devra intervenir. Il en va de même pour l'affichage de plusieurs fenêtres dans un espace de travail efficace; il faut un grand bureau virtuel. Il est aussi possible,
pour marquer les secteurs d'intérêt et les bordures, que vous deviez superposer à une fenêtre vidéo en direct des rectangles ou des réticules, dans l'exécution de tâches telles
que l'alignement de composants. En imagerie scientifique ou médicale, il est possible que vous utilisiez des graphiques ou du texte pour annoter des affichages.
Pour éviter les goulets d'étranglement, un système auxiliaire de traitement d'images doit pouvoir satisfaire les besoins entrées/sorties résultant de l'acquisition,
du traitement et de l'affichage simultanés de vidéo ultra-rapide. Le Matrox Genesis maintient un fort débit entrée/sortie grâce au VIA, qui gère et contrôle toutes les interfaces de données
et qui utilise la mémoire SDRAM comme mémoire principale. De multiples bus dédiés, ultra-rapides, assurent le transfert de données entre les unités de la carte principale et des cartes processeurs,
entre les cartes elles-mêmes, vers des ressources externes comme le PC hôte, ou en provenance de celles-ci (voir illustration 2).
|
|
Illustration 2
Les besoins en performances d'un système varient d'une application à l'autre. Pour résoudre ce problème, Matrox a retenu le concept des noeuds de traitement, qui sont
les éléments de base de la puissance de traitement du Matrox Génésis. La carte principale est munie d'un noeud de traitement alors que chaque carte processeur auxiliaire en possède un ou deux.
Un noeud comprend un processeur TI C80, un processeur NOA ASIC (en option), une puce VIA ASIC et jusqu'à 64 Mo de mémoire SDRAM.
|
|
Pour les applications qui le requièrent, il est possible d'utiliser de multiples noeuds de traitement en ajoutant des cartes processeurs auxiliaires à la carte principale
(voir illustration 2). Ces noeuds peuvent être utilisés en parallèle, conformément au modèle SIMD (single instruction, multiple data), ou selon le modèle MIND (multiple instructions, multiple data).
|
|
Maintes applications d'imagerie médicale requièrent l'acquisition, le traitement et l'affichage d'images pour fins de visualisation et d'étude. Le traitement typique peut comprendre
un filtrage des parasites et un filtrage temporel, la mise en évidence des bordures, et l'ajustement luminance/contraste. La carte principale peut suffire pour exécuter ces opérations sur une image 512 x
512 x 8 bits à 30 trames/seconde, mais il faudra peut-être ajouter une carte processeur dans le cas d'une image 1k x 1k x 10 bits à 30 trames/seconde.
|
|
Illustration 3
|
|
La façon traditionnelle de satisfaire les fortes exigences de l'inspection en temps réel a été de recourir à une architecture pipeline. Bien que cette approche puisse satisfaire certains
besoins, elle peut parfois coûter cher et être inflexible. De même, quoique le traitement pipeline puisse être accompli par la carte principale et les cartes processeur du Matrox Génésis, il serait plus efficace
de laisser traiter chaque bloc de données d'image par un noeud alors disponible.
|
|
Illustration 4
|
|
|
|
Comme le développement de logiciel peut constituer l'investissement le plus important en ce qui a trait à la solution d'une application, les outils de développement de logiciel comme les bibliothèques
devraient, non seulement offrir une fonctionnalité globale, mais aussi la flexibilité requise pour exécuter, au besoin, des opérations personnalisées. Matrox offre trois niveaux de programmation pour le Matrox Genesis :
une bibliothèque non tributaire du matériel - Matrox Imaging Library (MIL), une bibliothèque Matrox Genesis Native Library adaptée à la carte, et la trousse d'outils Matrox Genesis Developer's Toolkit (DTK). La trousse DTK
est utilisée pour la programmation directe du processeur TI C80 DSP, de concert avec les outils de développement de logiciel TMS320C80 de Texas Instruments.
MIL et Native Library possèdent un ensemble considérable de fonctions préétablies et optimisées pour le traitement point à point, la morphologie, les opérations de voisinage, les statistiques, les
transformations géométriques ainsi que les analyses de taches, la reconnaissance des formes et l'alignement, le jaugeage, et la compression JPEG. Bien que ces deux bibliothèques aient généralement les mêmes commandes,
Native Library possède quelques commandes supplémentaires pour exploiter les caractéristiques de la carte.
|
|
Pour mettre votre application au point, vous pouvez vous servir de MIL, de Native Library, de DTK ou de toute combinaison de ces trois approches. Pour mettre au point du code surtout portable, le développeur
est en mesure d'utiliser des commandes MIL pour écrire la majeure partie de l'application, et de faire appel à la programmation en mode naturel de MIL pour exécuter des commandes Native Library pour certaines tâches.
En misant sur la puissance de processeurs de signaux numériques optimisés pour le traitement d'images tel le TI C80, les fournisseurs comme Matrox pourront utiliser la technologie PC, même pour les applications
les plus exigeantes en imagerie médicale, industrielle et scientifique. Occupant une seule carte, flexible et offert en magasin, le Matrox Genesis est un système auxiliaire qui apporte une solution aux problèmes d'entrée/sortie et aux
besoins de traitement; son évolutivité rend possible pratiquement n'importe quel niveau de performance.
|
|
|
|
|