FR2694430A1 - Dispositif électronique pour l'analyse d'image et la vision artificielle. - Google Patents

Dispositif électronique pour l'analyse d'image et la vision artificielle. Download PDF

Info

Publication number
FR2694430A1
FR2694430A1 FR9209529A FR9209529A FR2694430A1 FR 2694430 A1 FR2694430 A1 FR 2694430A1 FR 9209529 A FR9209529 A FR 9209529A FR 9209529 A FR9209529 A FR 9209529A FR 2694430 A1 FR2694430 A1 FR 2694430A1
Authority
FR
France
Prior art keywords
processors
processor
neighboring
graph
sum
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9209529A
Other languages
English (en)
Other versions
FR2694430B1 (fr
Inventor
Merigot Alain
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Centre National de la Recherche Scientifique CNRS
Original Assignee
Centre National de la Recherche Scientifique CNRS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Centre National de la Recherche Scientifique CNRS filed Critical Centre National de la Recherche Scientifique CNRS
Priority to FR9209529A priority Critical patent/FR2694430B1/fr
Priority to PCT/FR1993/000778 priority patent/WO1994003869A1/fr
Priority to EP93917839A priority patent/EP0606458A1/fr
Priority to JP6505054A priority patent/JPH06511586A/ja
Publication of FR2694430A1 publication Critical patent/FR2694430A1/fr
Application granted granted Critical
Publication of FR2694430B1 publication Critical patent/FR2694430B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

L'invention concerne un dispositif électronique pour l'analyse d'image et la vision artificielle comportant un ensemble de processeurs élémentaires (10) dans lequel chaque processeur (10), associé à un pixel d'image, est interconnecté par des liens série (12) à n processeurs voisins (10), possède une mémoire interne de taille limitée et peut opérer en mode SIMD sur ses données internes. Chaque processeur peut être connecté ou non à ses n processeurs voisins selon un graphe de connexion qui est un sous-graphe du graphe de connexion physique des processeurs, de manière à pouvoir manipuler directement des composantes connexes de l'image. Un opérateur associatif peut être appliqué à ces composantes connexes grâce à des communications asynchrones. Un organe local permet de déterminer le moment où les données restent stables sur le processeur, des détecteurs de stabilité des différents processeurs étant centralisés par un réseau de portes OU vers un contrôleur central qui peut déterminer l'instant d'occurence de la fin de calcul. Application notamment à l'analyse d'image et à la vision artificielle.

Description

DESCRIPTION
Domaine technique
La présente invention a pour objet un dispositif électronique pour l'analyse d'image et la vision artificielle, à fonctionnement parallèle, organisé en maille de processeurs à n dimensions et reposant sur des calculs globaux asynchrones.
Le domaine de l'invention est celui de la vision artificielle. La vision artificielle peut, schématiquement, être découpée en trois phases :
- le traitement de bas niveau, où l'on reconstruit une image à partir d'une transformation prenant en compte la valeur d'un pixel et des pixels plus proches voisins de celui-ci ;
- l'analyse d'image où l'on cherche à extraire des caractéristiques globales d'une image ; et
- la vision de haut niveau, proche des techniques d'intelligence artificielle.
La première catégorie de traitement a conduit à de nombreuses réalisations architecturales efficaces reposant notamment sur l'organisation en tableau de processeurs. Il n'en est pas de même pour la deuxième catégorie, pourtant essentielle, qui ne peut être exécutée efficacement que sur des machines fortement parallèles, sophistiquées, coûteuses et complexes à programmer.
L'analyse d'image est basée sur des mouvements de données divers et a priori irréguliers, donc difficilement parallélisables. Il s'avère cependant que la plupart de ces mouvements peuvent se ramener à des primitives de calculs simples. On considère l'ensemble d'une image comme un graphe, dont les noeuds sont les pixels et tel qu'un arc existe si les pixels sont voisins dans l'image et appartiennent à la même entité (région de l'image, courbe, etc...). Les composantes connexes de ces graphes représentent des entités de base fondamentales en analyse d'image.
Nombre de traitements peuvent ainsi se ramener à des itérations d'applications d'opérateurs associatifs (OU logique, maximum, addition) sur des composantes connexes de ces graphes. On appelera par la suite "associations" de telles applications.
Plusieurs solutions sont envisageables pour réaliser des associations à l'aide de machines parallèles. Tout d'abord, il est possible d'utiliser des architectures en maille traditionnelle mais, du fait du diamètre relativement important de la structure, l'application pas à pas d'un tel opérateur est relativement lente. Des architectures à plus fort degré sont également intéressantes. C'est le cas des hypercubes qui peuvent réaliser efficacement des associations grâce aux opérations à préfixe parallèle, et des pyramides qui profitent de leurs possibilités de centralisation et de diffusion rapide d'informations.
L'inconvénient de ces structures est leur volume et leur coût important, qui interdit leur utilisation dans la plupart des applications qui justifieraient de l'emploi de vision artificielle.
L'état de la technique antérieure
Du fait des contraintes de vitesse et d'encombrement des applications de vision, une tendance récente vise à utiliser différemment les ressources intégrées. C'est par exemple le cas des communications asynchrones du "tore polymorphe" proposé par Li et
Maresca, de la structure "Gated Connection Network" proposée par Nash, du projet "Image Understanding
Architecture" de l'Université du Massachusetts, telles que décrites dans l'article de H. Li et Q. Stout intitulé "Reconfigurable Massively Parallel Computers" et celui de B. Shu, j. Nash, M. Eshaghian et K. Kim intitulé "Implementation and Application of a
Gated-Connection Network in Image Understanding", ou encore de la machine PAPI A II, en cours d'étude à l'Université de Pavie.Dans toutes ces structures, il est possible de reconfigurer un tableau de processeurs à deux dimensions à l'aide de commutateurs
CMOS, pour établir directement des connexions distantes entre pixels ou groupes de pixels quelconques par commutation de circuit. Ces communications se faisant de manière asynchrone, la rapidité du temps de traversée d'un noeud compense largement la nécessité de traverser un grand nombre de processeurs. Cette organisation permet de résoudre élégamment certains problèmes d'analyse d'image, mais la seule utilisation de reconfiguration au niveau des connexions ne permet pas d'accélérer de manière suffisante l'ensemble des traitements, qui impliquent fréquemment certains calculs arithmétiques.
Une autre approche est d'utiliser des opérateurs analogiques pour profiter de la rapidité des traitements analogiques. Cette approche permet d'obtenir des structures compactes et efficaces ; par contre, elle souffre du manque de programmabi lité des traitements analogiques et se justifie principalement dans des systèmes dédiés.
Exposé de l'invention
L'objet de l'invention est de proposer un dispositif permettant d'offrir des performances supérieures aux dispositifs de l'art connu, pour un moindre coût, tout en étant programmable à partir d'un modèle de calcul simple à maîtriser.
L'invention concerne un dispositif électronique pour l'analyse d'image et la vision artificielle comportant un ensemble de processeurs élémentaires dans lequel chaque processeur, associé à un pixel d'image et interconnecté par des liens série à n processeurs voisins, possède une mémoire interne de taille limitée et peut opérer en mode SIMD sur ses données internes, caractérisé en ce que chaque processeur peut être connecté ou non à ses n processeurs voisins selon un graphe de connexion qui est un sous-graphe du graphe de connexion physique des processeurs, de manière à pouvoir manipuler directement des composantes connexes de l'image, en ce qu'un opérateur associatif peut être appliqué à ces composantes connexes grâce à des communications asynchrones, en ce qu'un organe local permet de déterminer le moment où les données restent stables sur le processeur, des détecteurs de stabilité des différents processeurs étant centralisés par un réseau de portes OU vers un contrôleur central qui peut déterminer l'instant d'occurence de la fin de calcul.
Avantageusement la connexion d'un processeur avec les n processeurs voisins à un instant donné est matérialisée dans un registre à n bits, chaque bit représentant un des processeurs voisins et étant positionné s'il y a dans le graphe de connexion un arc incident vers ce processeur depuis le processeur voisin, n portes ET associées aux registres et aux n connexions provenant des processeurs voisins permettant de masquer à zéro les données provenant des processeurs voisins qui ne sont pas liés par un arc incident vers ce processeur.
L'opérateur associatif peut être un OU global, ou une somme globale, ou un opérateur permettant de transformer un graphe non orienté en un graphe orienté par arbitrage asynchrone.
Pour des applications d'analyse d'image, il est intéressant d'utiliser un graphe de connexion physique en maille à deux dimensions, mais le modèle de calcul est applicable sur tout type de topologie et d'autres réseaux peuvent présenter un intérêt particulier suivant les applications.
Le dispositif de l'invention permet de résoudre des problèmes posés par l'analyse d'image avec des performances supérieures et une structure de coût et de dimension fortement réduite par rapport aux dispositifs de l'art antérieur.
En effet, le dispositif de l'invention présente un certain nombre d'avantages déterminants
- tout d'abord, du fait de la simplicité des processeurs élémentaires, ce dispositif est très aisément intégrable, notamment s'il repose sur une organisation en maille ;
- de par l'utilisation de communications asynchrones, on arrive à des temps de calcul incroyablement rapides.Ainsi le dispositif de l'invention permet d'améliorer les temps de traitement d'image de bas niveau (convolution, filtrage médian, etc...) d'un facteur de un à dix suivant les traitements, et les temps d'analyse d'image (segmentation en régions, etc...) d'un ou deux ordres de grandeur, à technologie et nombre de processeurs donnés par rapport aux machines actuelles ;
- enfin, du point de vue du programmeur, les communications dans la machine sont basées sur des opérations de très haut niveau, certes non conventionnelles, mais somme toute relativement naturelles dans le contexte visé. Le dispositif de l'invention offre un modèle de programmation simple qui devrait faciliter les développements logiciels.
Le dispositif de l'invention permet de réaliser à coût relativement faible des machines de vision très performantes. A terme (dix ans), il sera même possible d'intégrer le dispositif de l'invention dans un volume réduit ( < 1dm3). Les domaines d'application potentiels sont très nombreux, notamment
- l'aide à la conduite de véhicule (voire véhicule autonome) ;
- la robotique ;
- la télésurveillance ; ainsi que la plupart des autres domaines d'application de la vision artificielle (biomédical, analyse de qualité industrielle, images satellites).
Brève description des dessins
- La figure 1 donne une représentation schématique du dispositif de l'invention ;
- la figure 2 donne une représentation schématique d'un processeur élémentaire selon
L'invention ;
- la figure 3 donne une représentation schématique d'un compteur de bits arborescent selon l'invention ;
- la figure 4 donne une représentation schématique d'un circuit d'arbitrage selon l'invention.
Exposé détaillé de modes de réalisation
De très nombreux algorithmes de traitement d'images peuvent se ramener à des applications d'opérateurs associatifs (ou associations) sur des ensembles de pixels connexes, au sens d'un certain graphe représentant suivant les cas une région, une courbe, etc...
L'invention a pour but essentiel de définir un dispositif permettant une application rapide de ces associations.
Le dispositif de l'invention, comme représenté sur la figure 1, repose sur une interconnexion de processeurs élémentaires suivant une topologie donnée, par exemple une maille à deux dimensions. Chaque processeur élémentaire est interconnecté par des liens série à ses n plus proches voisins. Chaque processeur, qui possède une mémoire interne de taille limitée (par exemple 256 bits), peut simultanément recevoir des informations de son voisin sur un bit de large et lui en transmettre, ce qui nécessite deux fils de communication 12 et 13. Tous les processeurs sont pilotés par un contrôleur commun qui peut opérer en mode SIMD ("Single Instruction
Multiple Data") sur ses données internes. La base de la mise en oeuvre de performances de calcul rapide sur cette structure est l'utilisation de communications asynchrones entre processeurs voisins.
Dans la suite de la description, pour simplifier l'explication, on prendra comme exemple une maille à deux dimensions, chaque processeur étant interconnecté et ses huit processeurs voisins.
Chaque processeur élémentaire est le noeud de traitement de base de la machine. L'organisation de principe de son chemin de données pour réaliser des opérations rapides entre processeurs voisins est représentée en figure 2. Chaque processeur comprend donc :
- une unité 15 de masquage des processeurs voisins : elle comprend huit registres de un bit associés chacun à chacun des processeurs voisins, et huit portes ET. A la sortie de cette unité on a le
ET de chaque bit du registre et du bit envoyé par le processeur voisin correspondant. Il est ainsi possible de ne conserver qu'un sous-ensemble du voisinage, en remplaçant les autres valeurs par "O" , si les opérateurs de base utilisés possèdent le "0" comme élément neutre.Cette unité 15 de masquage des processeurs voisins reçoit donc les bits 16 envoyés par les huit processeurs voisins ;
- une unité 17 de combinaison des processeurs voisins : elle récupère les sorties de l'unité de masquage 15 et les combine soit par un OU global, soit par un comptage de bits, soit par un arbitrage ;
- une unité arithmétique et logique 18 c'est une unité arithmétique et logique classique sur quatre bits, opérant entre la sortie de l'unité de combinaison 17 et un registre 19. Le bit de poids faible 20 de la sortie de l'unité arithmétique et logique 18 peut être ensuite rediffusé vers les processeurs voisins de manière asynchrone ;
- une unité de détection de convergence 21 : cette unité observe la sortie 20 de l'unité arithmétique et logique 18 et détecte ses variations.
Les différentes sorties 22 des unités de détection de convergence des divers processeurs élémentaires sont centralisées par un OU global de manière à détecter une convergence globale du dispositif. Comme les communications sont asynchrones, il est nécessaire de disposer d'une telle unité pour savoir quand un calcul est terminé. La détection locale de stabilité peut, par exemple, se faire en comparant périodiquement la sortie 20 de l'ALU 18 avec sa valeur précédente.
Lorsque toutes les sorties 20 ont une valeur stable, le calcul asynchrone a convergé ;
- une mémoire 23 qui peut accéder en lecture et en écriture au registre 19, aux unités de masquage 15 des processeurs voisins et à la sortie de l'unité arithmétique et logique 18.
Chaque processeur élémentaire comprend également divers bus de communications entre la mémoire et certaines des ressources schématisées, ainsi que des multiplexeurs permettant d'utiliser également l'unité arithmétique et logique pour réaliser des opérations entre données locales. Ces fonctions, ne présentant aucune originalité, ne figurent pas sur la figure 2.
Le découpage réalisé à la figure 2 a été fait pour des raisons de simplicité. Mais pour des raisons d'optimisation de calcul il est tout à fait possible de combiner partiellement la valeur locale directement avec les valeurs venant des processeurs voisins.
Si l'on suppose que le graphe représentant les objets connexes est matérialisé dans les registres de l'unité de masquage des processeurs voisins 15, en sélectionnant chaque processeur voisin correspondant à un arc incident sur le processeur, il est possible de réaliser des opérations globales de la manière suivante
- réalisation d'un OU global : on suppose que l'on a un graphe non orienté. Il suffit de mettre le bit dont on veut faire le OU global dans le poids faible du registre 19, de réaliser le OU des processeurs voisins dans l'unité de combinaison des processeurs voisins 17, et de faire un OU de sortie des processeurs voisins 17 et du registre 19 avec l'ALU 18.Le bit est ainsi combiné avec celui des processeurs voisins connectés et, de manière asynchrone, réenvoyé aux processeurs voisins, de sorte que le OU s'effectue sur l'ensemble d'une composante connexe du graphe.
Il est également possible d'effectuer ce calcul sur un graphe orienté. Dans ce cas, finalement chaque noeud connaStra le résultat de l'application du OU à l'ensemble de ses noeuds en aval. La réalisation d'un
OU permet, en itérant sur les bits successifs, d'obtenir également un opérateur MAXIMUM. Pour cela, on suppose que l'on cherche le maximum d'une variable i non signée.
On fait le OU global du poids fort de i sur la composante et, si ce OU global est à "1", on remplace i par "O" partout où le poids fort de i est à "O".
En itérant sur les différents bits de i jusqu'au poids faible, la suite des OU globaux donne le maximum de i sur chaque composante connexe ;
- réalisation d'une somme globale : Il est nécessaire de supposer que le graphe est un arbre cors enté fi ls-- > père) . On met le mot à intégrer dans le registre 19 et on transmet le bit de poids faible vers les processeurs voisins. L'unité de combinaison des processeurs voisins 17 compte le nombre de bits provenant des voisins connectés (par une structure arborescente d'additionneurs de type arbre de Wallace, comme représenté sur la figure 3). Le résultat est additionné avec le registre 19 par l'unité arithmétique et logique 18, avec retransmission asynchrone du bit de poids faible du résultat etc...Le bit de poids faible du résultat arrive ainsi à la racine de l'arbre.
Il suffit de décaler d'un cran le registre 19 et d'itérer pour chacun des bits du résultat. Chaque noeud a effectué la somme des valeurs en aval dans l'arbre, et la racine contient la somme globale sur l'ensemble de la composante connexe. Il est ensuite possible en symétrisant le graphe de rediffuser le résultat vers tous les processeurs.
Le compteur de bits arborescent, représenté à la figure 3, comprend sept additionneurs à trois entrées (deux bits et une retenue) et deux sorties (somme et retenue). Les trois premiers additionneurs 25, 26 et 27 reçoivent les huit bits 24 à considérer ; les sommes des trois premiers additionneurs 25, 26 et 27 sont connectées aux entrées d'un quatrième additionneur 28, dont la somme constitue le bit de sortie de poids faible SO ; les retenues des additionneurs 25, 26 et 27 sont reliées aux entrées d'un cinquième additionneur 29 ; la retenue du quatrième additionneur 28 et la somme du cinquième additionneur 29 sont reliées à deux entrées du sixième additionneur 30 dont la somme constitue le second bit de sortie de poids faible S1 ; les retenues du cinquième et sixième additionneurs 29 et 30 sont reliées à deux entrées du septième additionneur 31 dont la somme constitue le bit de sortie de poids suivant S2 et la retenue constitue le bit de sortie de poids fort S3.
- extraction d'un arbre recouvrant : la réalisation d'une somme globale implique de disposer d'un arbre recouvrant d'un graphe a priori non orienté.
Pour extraire rapidement un arbre recouvrant, un module spécial de l'unité de combinaison des processeurs voisins est utilisé. C'est un module d'arbitrage asynchrone réalisé à partir d'un arbre de bascules
RS 35, suivies chacune d'un OU exclusif 36, comme représenté sur la figure 4. Ces bascules sont initialement dans l'état interdit (RS=OO) et la sortie des OU exclusifs est donc à "O". Ce qui force les bascules RS des étages suivants également dans l'état interdit : on suppose que l'on a initialement choisi un processeur par composante connexe qui sera la racine de l'arbre.Pour cela, on peut supposer que chaque processeur possède un numéro spécifique (son adresse), que l'on calcule le maximum des adresses sur la composante connexe comme décrit ci-dessus, et que l'on choisi comme racine le processeur dont l'adresse est égale au maximum. On positionne une variable à "1" sur la racine et à FFOFF ailleurs pour chaque composante connexe. On met cette variable en bit de poids faible du registre 19, et on réalise un OU entre ce registre et la sortie de l'arbitre 17 (initialement à "O") par l'ALU 18. On fait partir ainsi un "1" de la racine de l'arbre.Dès que ce "1" arrive sur un des arbitres, les bascules RS 35 concernées commutent en mémorisant l'origine du FFl FF, les OU exclusifs 36 passent à F11 FF, ainsi que la sortie de l'arbitre qui traverse l'unité arithmétique et logique (ALU) 18, en retransmettant le "1" FFvers les processeurs voisins. Comme un seul processeur voisin est retenu par l'arbitre, on réalise ainsi un arbre orienté père -- > fils, dont on peut récupérer les arcs dans chacun des registres de l'arbitre en utilisant une porte NOR 39 à trois entrées branchées respectivement, comme représenté sur la figure 4, sur l'une des sorties des bascules RS du premier, du second ou du troisième étage 40, 41 et 42. Il suffit ensuite de retourner les arcs, en regardant leur contenu sur les processeurs voisins, pour avoir un graphe orienté fils -- > père et pouvoir effectuer une somme globale.
De manière à évaluer les algorithmes mis en oeuvre dans le dispositif de l'invention, il est nécessaire de modéliser le temps d'une association.
Celui-ci est en effet variable et comprend le temps d'émission de l'instruction et de positionnement des données (qui est constant), la propagation asynchrone (qui est une fonction approximativement linéaire du plus grand diamètre des composantes connexes du graphe de connexion) et le temps de détection de convergence globale (qui est une fonction logarithmique de la taille du dispositif), le tout étant quantifié temporellement par l'horloge principale du dispositif.Une conception soignée du processeur peut rendre le temps de traversée d'un processeur très court, de sorte que, en se basant sur des hypothèses réalistes par rapport à l'état actuel de la technologie et au contexte applicatif, ce temps variera entre le temps de deux instructions SIMD (pour des graphes de connexion de faible diamètre, jusqu'à quelques dizaines de pixels) et une dizaine d'instructions pour les plus grands diamètres que l'on peut rencontrer pratiquement dans des graphes extraits d'images.
En première approximation, il semble donc raisonnable de supposer que, quel que soit le diamètre du graphe de connexion, ce temps est constant et de l'ordre de grandeur d'une instruction réalisant un accès local dans le dispositif.
Le dispositif de l'invention présente un certain nombre d'avantages déterminants
Tout d'abord, du fait de la simplicité des processeurs élémentaires, de son faible degré, et de son organisation, par exemple à deux dimensions, cette structure est très aisément intégrable. Le nombre de transistors par processeur élémentaire est de 3000-4000 et le nombre d'entrées d'un circuit de P processeurs est en 8 x IP. Ainsi, un circuit intégrant un tableau de 16x16 processeurs nécessite un circuit d'un million de transistors et implique 128 entrées/sorties pour les communications (plus quelques dizaines pour les instructions et les différents signaux de service), le tout étant parfaitement réalisable avec la technologie actuelle. Il est ainsi possible de réaliser une machine de taille 256x256 en quatre cartes de soixante quatre circuits.Les progrès prévisibles en terme d'intégration permettent d'espérer intégrer une machine 256x256 sur tranche entière (WSI) d'ici la fin de la décennie.
De par l'utilisation de communications asynchrones, on arrive à des temps de calcul particulièrement intéressants. Pour une machine de 64K processeurs élémentaires, en se basant sur un temps actuel de traversée de porte de l'ordre de 0,4 ns, on arrive à des temps de calcul pour une association variant entre 100 et 500 ns pour un bit, suivant le diamètre du graphe de connexion, et environ entre 5 et 30 P5 pour un mot de 32 bits, ce qui représente de deux à trois ordres de grandeur d'amélioration par rapport à un hypercube possédant le même nombre de processeurs (en utilisant un algorithme optimal pour cette machine), pour un coût considérablement plus faible.Le temps de calcul d'une association étant directement lié non pas à la fréquence d'horloge mais au temps de traversée d'une porte élémentaire, donc à la technologie, et les communications étant toujours locales, la structure tirera pleinement profit des diminutions prévisibles des dimensions de gravure.
On peut donc espérer gagner un facteur d'un ordre de grandeur sur le temps de calcul d'une association d'ici à la fin de la décennie.
Enfin, du point de vue du programmeur, les communications dans la machine sont basées sur des opérations de très haut niveau, relativement naturelles dans le contexte applicatif visé. On peut donc espérer avoir une mise en oeuvre logicielle des applications raisonnablement simples.
Ainsi, même si une telle structure présente dès aujourd'hui un intérêt certain, il semble raisonnable de supposer à l'horizon de quelques années que cette technique permettra de réaliser des machines compactes d'un volume de quelques dm3, entièrement programmables, et réalisant des associations en un temps moyen d'une microseconde. Les applications industrielles potentielles d'une telle machine sont, bien entendu, considérables (automobiles, robotique, etc...).
Un tel dispositif présente un grand intérêt potentiel pour la vision artificielle, dans le domaine
- des traitements de bas-niveau : même si la machine a été initialement conçue pour l'analyse d'image, la possibilité de prise en compte globale d'un ensemble de pixels présente un intérêt certain pour les traitements de bas niveau (qui se ramènent ainsi à des associations sur un graphe de connexion limité au strict voisinage d'un processeur). Ainsi, le modèle du dispositif de l'invention permet de gagner environ un ordre de grandeur sur l'application d'une convolution générale, un facteur 3 sur le filtrage maximum et plus d'un ordre de grandeur sur le filtrage médian ;
- de la manipulation d'objets connexes la manipulation d'objets connexes est de première importance en analyse d'image et se trouve être d'ailleurs la motivation première de cette architecture.
Les objets peuvent indifféremment être de deux types : compacts (régions) ou filiformes (contours). Par exemple, en considérant des régions, le dispositif de l'invention permet d'effectuer rapidement une fusion parallèle de celles-ci pour réaliser une segmentation de l'image (avec un temps constant par étape de fusion).
Dans tous les cas, on peut réaliser des opérations simples sur ces objets en temps constant (étiquetage, rectangle englobant, moments d'inertie,...) et des opérations plus complexes (enveloppe convexe, approximation polygonale,...) en temps logarithmique ;
- des graphes implicites : il s'agit dans ce cas de considérer des graphes liés à la structure de l'image et non aux données. Divers graphes de ce type présentent un intérêt particulier en vision. Des associations sur des droites parallèles permettent de réaliser en temps constant des projections. La transformée de Hough (ou de Radon) ne nécessite que des itérations de projections sur des droites dont l'angle est variable. Des courbes plus sophistiquées permettent de mettre en oeuvre la transformée de Hough généralisée.En groupant dans un même graphe des régions régulières de taille croissante, il est possible de manipuler en temps constant une structure multirésolution (pyramide), utile pour de nombreux algorithmes de vision, ou pour appliquer des techniques de type "diviser pour régner". Enfin, dans un autre ordre d'idées, il est possible d'effectuer en temps constant des produits matrice-vecteur (utiles, par exemple, pour effectuer une classification par réseau de neurones) ;
- des graphes orientés : la plupart des graphes considérés jusqu a présent étaient non-orientés.
Dans le cas d'un graphe orienté, chaque noeud va recevoir, lors de l'association, le résultat de l'application de l'opérateur aux noeuds qui sont en aval de lui. Un cas particulier de graphe orienté intéressant est une chaîne (deux voisins par noeud), dans la mesure où cela permet d'appliquer en temps constant un opérateur à préfixe parallèle ("scan segmenté"), que ce soit suivant un axe ou une courbe quelconque. Un intérêt similaire se présente pour un arbre qui permet d'effectuer rapidement des recherches ;
- des graphes valués : dans ce cas, on suppose que chaque arc possède un poids spécifique.
De nombreux problèmes, soit en vision, soit dans d'autres domaines, impliquent de rechercher un chemin minimal entre deux noeuds d'un graphe. Là encore, il est possible de programmer le dispositif pour résoudre rapidement le problème.

Claims (8)

REVENDICATIONS
1. Dispositif électronique pour l'analyse d'image et la vision artificielle comportant un ensemble de processeurs élémentaires (10) dans lequel chaque processeur (10), associé à un pixel d'image, et interconnecté par des liens série (12) à n processeurs (10) voisins, possède une mémoire interne de taille limitée et peut opérer en mode SIMD sur ses données internes, caractérisé en ce que que chaque processeur (10) peut être connecté ou non à ses n processeurs voisins selon un graphe de connexion qui est un sous-graphe du graphe de connexion physique des processeurs, de manière à pouvoir manipuler directement des composantes connexes de l'image ; en ce qu'un opérateur associatif peut être appliqué à ces composantes connexes grâce à des communications asynchrones-; en ce qu'un organe local permet de déterminer le moment où les données restent stables sur le processeur, des détecteurs de stabilité des différents processeurs étant centralisés par un réseau de portes OU vers un contrôleur central qui peut déterminer l'instant d'occurence de la fin de calcul.
2. Dispositif selon la revendication 1, caractérisé en ce que la connexion du processeur (10) avec les n processeurs voisins à un instant donné est matérialisée dans un registre à n bits, chaque bit représentant un des processeurs voisins, et étant positionné s il y a dans le graphe de connexion un arc incident vers ce processeur depuis le processeur voisin, n portes ET associées aux registres et aux n connexions provenant des processeurs voisins permettant de masquer à zéro les données qui proviennent des processeurs voisins qui ne sont pas liés par un arc incident vers ce processeur.
3. Dispositif selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que chaque processeur élémentaire (10) comprend
- une unité (15) de masquage des processeurs voisins ;
- une unité (17) de combinaison des processeurs voisins qui récupère les sorties de l'unité de masquage ;
- une unité arithmétique et logique (18) opérant entre la sortie de l'unité de combinaison (17) et un registre (19) ;
- une unité de détection des convergences (21) qui observe la sortie de l'unité arithmétique et logique (18) et en détecte les variations ;
- une mémoire (23) qui peut accéder au registre (19) et aux unités de masquage des processeurs voisins, et à la sortie de l'unité arithmétique et logique (18).
4. Dispositif selon la revendication 1, caractérisé en ce que l'opérateur associatif est un
OU global, ou une somme globale, ou un opérateur permettant de transformer un graphe non orienté en un graphe orienté par arbitrage asynchrone.
5. Dispositif selon la revendication 4, caractérisé en ce que, chaque processeur étant interconnecté à huit processeurs voisins, l'opérateur associatif étant une somme globale, ledit dispositif comprend un compteur de bits arborescent qui comporte sept additionneurs à trois entrées (deux bits et une retenue) et deux sorties (somme et retenue), les trois premiers additionneurs (25, 26 et 27) reçoivent les huit bits (24) à considérer, les sommes des trois premiers additionneurs (25, 26 et 27), étant connectées aux entrées d'un quatrième additionneur (28) dont la somme constitue le bit de sortie de poids faible (su), les retenues des trois additionneurs (25, 26 et 27) étant reliées aux entrées d'un cinquième additionneur (29), la retenue du quatrième additionneur (28) et la somme du cinquième additionneur (29) étant reliées à deux entrées du sixième additionneur (30) dont la somme constitue le second bit de sortie de poids faible (S1), les retenues du cinquième et sixième additionneurs (29 et 30) étant reliées à deux entrées du septième additionneur (31) dont la somme constitue le bit de sortie de poids suivant (S2) et la retenue constitue le bit de sortie de poids fort (S3).
6. Dispositif selon la revendication 4, caractérisé en ce qu'il comprend un module d'arbitrage réalisé par un arbre de bascules RS (35) suivies chacune d'une porte OU excusif (36) ; des portes NOR (39) à trois entrées branchées respectivement sur l'une des sorties des bascules RS du premier (40), du second (41) et du troisième (42) étages de l'arbre permettant de récupérer les arcs de l'arbre orienté père --- > fils.
7. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend des détecteurs de stabilité qui comparent périodiquement la valeur de sortie d'un noeud à la valeur précédente pour déterminer s'il y a ou non stabilité.
8. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il a une structure en maille à deux dimensions, chaque processeur élémentaire étant connecté à ses huit processeurs élémentaires voisins.
FR9209529A 1992-07-31 1992-07-31 Dispositif électronique pour l'analyse d'image et la vision artificielle. Expired - Fee Related FR2694430B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR9209529A FR2694430B1 (fr) 1992-07-31 1992-07-31 Dispositif électronique pour l'analyse d'image et la vision artificielle.
PCT/FR1993/000778 WO1994003869A1 (fr) 1992-07-31 1993-07-29 Dispositif electronique pour l'analyse d'image et la vision artificielle
EP93917839A EP0606458A1 (fr) 1992-07-31 1993-07-29 Dispositif electronique pour l'analyse d'image et la vision artificielle
JP6505054A JPH06511586A (ja) 1992-07-31 1993-07-29 人工視覚画像解析用電子デバイス

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9209529A FR2694430B1 (fr) 1992-07-31 1992-07-31 Dispositif électronique pour l'analyse d'image et la vision artificielle.

Publications (2)

Publication Number Publication Date
FR2694430A1 true FR2694430A1 (fr) 1994-02-04
FR2694430B1 FR2694430B1 (fr) 1994-09-09

Family

ID=9432512

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9209529A Expired - Fee Related FR2694430B1 (fr) 1992-07-31 1992-07-31 Dispositif électronique pour l'analyse d'image et la vision artificielle.

Country Status (4)

Country Link
EP (1) EP0606458A1 (fr)
JP (1) JPH06511586A (fr)
FR (1) FR2694430B1 (fr)
WO (1) WO1994003869A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2129589A (en) * 1982-11-08 1984-05-16 Nat Res Dev Array processor cell

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2129589A (en) * 1982-11-08 1984-05-16 Nat Res Dev Array processor cell

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PROCEEDINGS OF THE IEEE vol. 79, no. 4, Avril 1991, NEW YORK US pages 429 - 443 LI H ET AL. 'reconfigurable simd massively parallel computers' *

Also Published As

Publication number Publication date
EP0606458A1 (fr) 1994-07-20
FR2694430B1 (fr) 1994-09-09
WO1994003869A1 (fr) 1994-02-17
JPH06511586A (ja) 1994-12-22

Similar Documents

Publication Publication Date Title
EP3660849B1 (fr) Circuit mémoire adapté à mettre en oeuvre des opérations de calcul
EP0552074B1 (fr) Système de traitement de données multiprocesseur
EP3053108B1 (fr) Circuit electronique, notamment apte a l&#39;implementation d&#39;un reseau de neurones, et systeme neuronal
EP3084588B1 (fr) Module de traitement du signal, notamment pour reseau de neurones et circuit neuronal.
FR3050846A1 (fr) Dispositif et procede de distribution de donnees de convolution d&#39;un reseau de neurones convolutionnel
FR2780535A1 (fr) Dispositif de traitement de donnees d&#39;acquisition, notamment de donnees d&#39;image
FR2711436A1 (fr) Procédé perfectionné de fonctionnement en parallèle de plusieurs unités de calcul, notamment en traitement d&#39;images, et architecture correspondante.
CA1289261C (fr) Systeme de traitement d&#39;images pour reseau maille polymorphe
EP0262032B1 (fr) Additionneur binaire comportant un opérande fixé, et multiplieur binaire parallèle-série comprenant un tel additionneur
FR2850768A1 (fr) Dispositif electronique configurable a granularite mixte
EP0206892A1 (fr) Procédé de traitement de signaux numérisés représentatifs d&#39;une image origine
EP2310954B1 (fr) Circuit de traitement de données à processeur élémentaire, ensemble de traitement de données comportant une grille de tels circuits, et capteur matriciel comportant un tel ensemble
WO2017108398A1 (fr) Circuit electronique, notamment apte a l&#39;implementation de reseaux de neurones a plusieurs niveaux de precision
FR2694430A1 (fr) Dispositif électronique pour l&#39;analyse d&#39;image et la vision artificielle.
FR2683349A1 (fr) Reseau de resistances binaires et son utilisation pour l&#39;etiquetage de composantes connexes d&#39;images numerisees en vision artificielle.
FR2563349A1 (fr) Multiplieur matriciel systolique de traitement de donnees numeriques
FR2918190A1 (fr) Dispositif d&#39;adressage pour processeur parallele.
Hakkarainen et al. A 40× 40 CCD/CMOS AVD Processor for Use in a Stereo Vision System
Valkenburg et al. Parallel implementation of vision algorithms on a hybrid pipelined/multitransputer architecture
Venkataraman et al. FPGA based Power-Efficient Convolutional Neural Network
FR2683348A1 (fr) Reseau bidimensionnel periodique de memorisation et de traitement booleen d&#39;images.
EP3971785A1 (fr) Calculateur électronique de mise en oeuvre d&#39;un réseau de neurones artificiels, avec blocs de calcul de plusieurs types
WO1992020038A1 (fr) Procede et dispositif de classification automatique d&#39;objets
EP2329596B1 (fr) Module reconfigurable et procede de mise en oeuvre de ce module reconfigurable pour realiser des operations morphologiques
Ducksbury Driveable region segmentation using a Pearl Bayes network

Legal Events

Date Code Title Description
ST Notification of lapse