Algorithmique de vision mixte synchrone/asynchrone sur grille de processeurs

 
 
Domaines : 
  • Vision par ordinateur
  • Parallélisme
  • Traitement d'images
  • Algorithmique
  • Adéquation algorithme architecture
Sous-domaines :
  • Parallélisme SIMD
  • Parallélisme asynchrone
  • Rétines numériques
  • Morphologie mathématique
  • Files d'attente

Le parallélisme synchrone classique d'une machine SIMD consiste à envoyer à un réseau de processeurs une séquence globale de commandes telle que tous les processeurs effectuent la même opération sur leur donnée, exactement au même moment. En algorithmique synchrone, une commutation (changement de valeur d'une donnée dans un processeur) est associée à une date précise correspondant au numéro de commande où elle s'est produite dans la séquence globale.  Dans le cas d'un parallélisme asynchrone, il n'y a plus de séquencement global des commandes, les processeurs effectuent toujours la même opération sur leur donnée, mais pas forcément au même moment. Une commutation n'est plus associée à une date précise, mais se situe de manière plus ou moins imprévisible dans un intervalle temporel déterminé.

L'algorithmique synchrone présente des avantages certains en matière de facilité de contrôle et de conception. Une grille bidimensionnelle de processeurs commandés de manière synchrone est en outre bien adaptée aux traitement bas niveau sur les images, qui font typiquement appel à des opérations mettant en jeu de très gros volumes de données, avec des calculs locaux et invariants en translation. La rétine numérique actuelle est un exemple d'une telle architecture ; c'est une machine SIMD à entrée optique et à grain fin, avec de minuscules processeurs effectuant des opérations booléennes. Nous avons montré qu'un tel circuit pouvait effectuer très efficacement de nombreux traitements très intéressants en vision artificielle bas niveau.  Par "efficacement", nous entendons le fait de gagner un ou plusieurs ordres de grandeur en terme de temps de calcul et de consommation d'énergie, par rapport à un calcul séquentiel.

Or, certains traitements sur les images se traduisent par une grande inefficacité sur la machine synchrone, lorsque le nombre de commutations est négligeable par rapport au nombre total d'opérations. C'est le cas, par exemple, pour l'opérateur morphologique de reconstruction géodésique d'une courbe à partir de l'une de ses extrémités : le calcul synchrone se fait par un certain nombre - qui peut être très grand - d'itérations d'opérations (dilatation + intersection), et chaque itération ne produit qu'une seule commutation sur toute la grille. De tels opérateurs de "propagation" sont très utiles en traitement d'images, dans les traitements qui effectuent la transition entre le "bas" et le "moyen" niveau en vision par ordinateur, par des manipulations d'images qui vont du "local" (communication entre pixels voisins) vers le "régional" (communication entre pixels appartenant à une même composante connexe). Citons l'extraction de composante connexe, le seuil par hystérésis, le squelette par zones d'influence (SKIZ), le filtrage morphologique, et la segmentation morphologique de ligne de partage des eaux.

Th. Bernard a récemment identifié une architecture microélectronique capable de réaliser très efficacement une reconstruction géodésique grâce à un opérateur de propagation asynchrone. Cet opérateur devrait être disponible sur la prochaine génération de rétine numérique en tant qu'opération "spéciale", faisant exception au séquencement synchrone qui reste le mode "normal", et qui permettrait de disposer de la fonction de "reconstruction" comme opérateur élémentaire de la rétine numérique. Ce mode de reconstruction permet un gain sensible en temps de calcul, dans la mesure où la durée de propagation asynchrone d'un pixel à l'autre est inférieure de plusieurs ordres de grandeur à la période de contrôle synchrone. Il permet également une importante économie d'énergie, car la consommation du circuit dans les opérations asynchrones se limite aux pixels qui commutent.

Le problème qui se trouve au coeur de ce sujet de thèse est : comment exploiter le mieux possible une telle fonctionnalité, pour mettre en oeuvre une algorithmique mixte synchrone/asynchrone qui soit véritablement efficace ? Cette question devra conduire à proposer de nouvelles implantations d'algorithmes de vision sur les architectures massivement parallèles, mais aussi amener de nouvelles approches algorithmiques, qui pourront être en rupture avec les solutions classiques. Ainsi, les phases de propagations asynchrones peuvent être conçues, d'un point de vue algorithmique, comme l'implantation d'une certaine classe de files d'attente (FIFO). Cette structure de donnée exploite le fait que dans certains traitements (non linéaires typiquement), seul un petit sous-ensemble des pixels de l'image est susceptible de commuter. Or ce type d'implantation est  justement très complémentaire de la machine SIMD, de sorte que le couple {SIMD,FIFO} constituerait une "base orthogonale" de l'algorithmique mixte.

Quels types de FIFO peut-on implanter efficacement par les propagations asynchrones ? Comment répartir le mieux possible les traitements entre la "couche" synchrone et la "couche" asynchrone ? Quelles solutions originales peut apporter l'algorithmique mixte à des problèmes comme la squelettisation ou la segmentation par modèles dynamiques ? Comment l'exploiter pour améliorer la communication entre la machine parallèle et l'extérieur (extraction d'objet segmenté, désignation de zones d'intérêt...) ? Ces questions, non limitatives, constituent le point de départ de ce travail de thèse, dont on attend également qu'il puisse mettre en évidence l'intérêt de nouvelles caractéristiques architecturales des circuit de vision à venir...