13.07.2015 Views

dont ceux que je n'ai pas cité, MM. Bertrand ZAVIDOVIQUE

dont ceux que je n'ai pas cité, MM. Bertrand ZAVIDOVIQUE

dont ceux que je n'ai pas cité, MM. Bertrand ZAVIDOVIQUE

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

À mes parents, ma famille, mes amis ...


RemerciementsJe tiens à remercier Mme Claire DUPAS pour m'avoir accueilli à l'Institutd'Électroni<strong>que</strong> Fondamentale et M. Alain MÉRIGOT pour son accueil dans le départementd'Architectures et Conception de Circuits Intégrés et de Systèmes, ainsi <strong>que</strong> pour son rôlede président du jury.Ce travail de thèse n'aurait pu avoir lieu sans le soutien permanent de mon directeurde thèse Mme Edwige PISSALOUX <strong>que</strong> <strong>je</strong> remercie de m'avoir guidé. Merci aussi à M.Patrick BONNIN pour avoir assumé pleinement la codirection. Avec votre aide, j'ai aussidécouvert une activité d'enseignement à l'IUT de Villetaneuse au sein du département GÉII<strong>dont</strong> <strong>je</strong> remercie les participants, notamment <strong>MM</strong>. Homère N'KWAWO et PatriceBERTHAUD. Les deux années d'Attaché Temporaire d'Enseignement et de Recherche ontparticipé pleinement à l'aboutissement de mes travaux.Je remercie l'Établissement Central de l'Armement (Arceuil) pour m'avoir permisd'accéder au système parallèle CM-5 qui a été un point important au tournant de laréalisation du système <strong>que</strong> <strong>je</strong> propose. Je remercie aussi le Commissariat à l'ÉnergieAtomi<strong>que</strong> (centre de Bruyère-le-Chatel) et les personnes qui ont suivi mes travaux depuisle commencement : <strong>MM</strong>. François DURBIN, André TISSOT, Gilles BEZENCENET,Thierry GARIÉ, Pierre LALANDE.Merci à M. Francis DEVOS pour avoir été à l'origine de ce su<strong>je</strong>t de thèse, ainsi qu'àmes collègues de DEA pour avoir collectivement fait naître une réalisation <strong>dont</strong> la suite amontré qu'il s'agissait d'un dispositif intéressant pour de nombreuses applications.Merci aux professeurs Kun-Mean HOU et Jack-Gérard POSTAIRE pour avoir étérapporteurs sur mon travail de thèse et pour leur bienveillance. Je remercie aussi M.Georges QUÉNOT pour avoir fait partie du jury, pour m'avoir soutenu et encouragé depuisle début de mes réalisations, et pour m'avoir toujours accueilli lors<strong>que</strong> la réflexion sur mestravaux le nécessitait.Je tiens également à remercier l'ensemble des permanents du département AXIS,<strong>dont</strong> <strong>ceux</strong> <strong>que</strong> <strong>je</strong> <strong>n'ai</strong> <strong>pas</strong> cité, <strong>MM</strong>. <strong>Bertrand</strong> <strong>ZAVIDOVIQUE</strong>, Roger REYNAUD, ThierryMAURIN, Samir BOUAZIZ, Michel FAN, Éric BÉLHAIRE, Mlle Samia BOUCHAFA,<strong>MM</strong>. Hugues MOUNIER, Patrice BRAULT. Merci à Marius VASILIU pour être toujoursde très bon conseil. Merci à M. Antoine DUPRET et à M. Jac<strong>que</strong>s-Olivier KLEIN pourleurs conseils. Je tiens aussi à remercier M. Claude ARCILE avec le<strong>que</strong>l j'ai poursuivi monperfectionnement dans l'utilisation du système UNIX, et pour sa grande disponibilité. Jeremercie chacun d'entre eux pour avoir porté intérêt au bon déroulement de mes travaux.


Je tiens à remercier M. Jean LOUCHET qui par sa <strong>pas</strong>sion pour les dispositifsopti<strong>que</strong>s a bouleversé ma vision du problème, et m'a guidé vers un énoncé rigoureux de maproblémati<strong>que</strong>.Je remercie les collègues du troisième étage, notamment M. Jean-Pierre RUAUD,Mme Bénédicte DINAND pour m'avoir aidé dans mes recherches bibliographi<strong>que</strong>s, et pouravoir gentiment proposé de corriger la première version de ce manuscrit. Je remercie aussiMlle Annie CHARRIER pour avoir aidé à la touche finale du manuscrit et pour laprésentation orale des travaux.Je remercie chaleureusement Mme Annick GIORDANO, Mme Sylvie BONNOTet M. Guy VERNET pour leur aide dans les démarches d'administration.Merci à Mme Huguette MARÉCHAL pour la reprographie de ce manuscrit et desnombreux autres documents d'avancement au cours de cette thèse.Je remercie Cédric CLERC pour son aide dans mes réalisations électroni<strong>que</strong>s.Merci à Mme Claudine FALCETTA et Mme Élisabeth BOUYSSY pour leurs rôlesincontournables à l'Institut, et <strong>que</strong> j'ai connues tout au long de mes études.Je remercie mes collègues de l'IEF : Frédéric BIZOUERNE, Franck DHELLIER,Alain NIFLE, Kamel BOUCHEFRA, Saloua GUEZGUEZ, Nicolas LLASER, MingZANG, Fabrice VERJUS, Olivier GEVIN, Nicolas ZEROUNIAN, Frédéri<strong>que</strong> GADOT,Alexandre LABICHE, Nathalie HAZIZA, Didier DULAC, Siamak MOHAMADI, NorrihVALAYDEN, <strong>Bertrand</strong> GRANADO, <strong>Bertrand</strong> DUCOURTHIAL, Florence RÉMY, LiHAITAO, Andrei CARDOSO, Martial DESGEORGES, Abdallah NSHARE. Merci à euxtous d'avoir partagé cette expérience de vie d'un doctorant. Merci aux membres du réseaudoctoral en architecture.Merci Kafia ZEMIRLI pour notre parcours commun qui n'a <strong>pas</strong> été toujours facile,et le soutien permanent <strong>que</strong> tu es. Merci aussi à Édith LÉAUTEY car tu es d'une bonnehumeur constante, et <strong>que</strong> tu a assumé pleinement ton rôle de responsable des doctorantsd'AXIS. Je voudrais aussi remercier mes collègues doctorants de l'IEF, et très bons amis,Thierry et Laleh ROCHEBOIS, et les féliciter pour la naissance de leur petit Antoine, quiétait un événement autrement plus important <strong>que</strong> l'achèvement de mes travaux de thèse.Merci aussi à mes amis Nicolas LE GRAND DES CLOIZEAUX, David ROUSSELet Fabien CHAINTREAU.Je remercie aussi profondément mes parents et mon frère Jean-Baptiste qui m'ontconstamment soutenu, et aidé au cours de ces années.


Sommaire.Introduction..................................................................................................................... 31ère Partie........................................................... 11Chapitre 1. Évaluation qualitative de méthodes d'appariement. ................................... 11Chapitre 2. Contexte de la vision aérienne pour l'appariement d'images...................... 192.1 Vision aérienne et modélisation géométri<strong>que</strong>........................................................... 212.1.1 Modèle de transformation pro<strong>je</strong>ctive à paramètres implicites. .................. 232.1.2 Modèle de transformation pro<strong>je</strong>ctive plane à paramètres explicites.......... 252.2 Détermination du mouvement spatial de la caméra.................................................. 292.3 Quantification du mouvement spatial de la caméra.................................................. 292.4 Principe pyramidal d'appariement d'images aériennes. ............................................ 312.5 Détails de l'algorithme généri<strong>que</strong> de mise en correspondance d'images. ................. 342.5.1 Gestion de la pyramide d'images. ............................................................. 352.5.2 Modélisation du mouvement global entre images. .................................... 372.5.3 Quantification des paramètresajustement du champ par le modèle pro<strong>je</strong>ctif.......................................... 392.5.4 Superposition des deux images (mosaï<strong>que</strong>) - Vérification qualitativede l'appariement. ................................................................................................. 402.5.5 Vérification quantitative de qualité de l'appariement. ............................... 412.5.6 Invariance à la luminosité ambiante constituant le traitementpréalable. ............................................................................................................. 422.6 Contraintes de notre application, le pro<strong>je</strong>t SYRAR.................................................. 462.7 Remar<strong>que</strong>s. ............................................................................................................... 47Chapitre 3. Mise en oeuvre d'une méthode d'appariement d'images............................. 493.1 Énoncé de la méthode d'appariement d'images aériennes. ....................................... 513.2 Création de la pyramide d'images............................................................................. 543.3 Programmation dynami<strong>que</strong> monodimensionelle. ..................................................... 563.3.1 Formulation mathémati<strong>que</strong>. ....................................................................... 563.3.2 Exemples sur des images de synthèsecas monodimensionnel. ........................................................................... 583.3.3 Distance lumineusela fonction de coût. .................................................................................. 633.4 Programmation dynami<strong>que</strong> orthogonale (bidimensionelle). .................................... 673.5 Modélisation du flot opti<strong>que</strong> par la méthode des moindres carrés. .......................... 693.5.1 Transformation pro<strong>je</strong>ctive explicitée. ........................................................ 693.5.2 Comparaison des modèles pro<strong>je</strong>ctifs sur des images réelles...................... 713.5.3 Moindres carrés non-linéaires supervisés. ................................................. 74


3.5.4 Critère de sélection des vecteurs du champ de disparité............................ 763.5.5 Initialisation des paramètres de la transformation pro<strong>je</strong>ctive. ................... 773.6 Vérification du résultat par application de la transformée........................................ 803.7 Quantification du résultat de recalage pro<strong>je</strong>ctif........................................................ 813.8 Rebouclage de l'algorithme....................................................................................... 823.9 Résultats de la méthode. ........................................................................................... 833.10 Conclusion partielle sur la partie algorithmi<strong>que</strong> du mémoire. ............................... 862ème Partie ............................................................ 89Chapitre 4. Modèle et principe fonctionnel du dispositif de micro-programmationdynami<strong>que</strong>....................................................................................................................... 894.1 Définition d'un modèle de circuit de programmation dynami<strong>que</strong>. ........................... 924.1.1 Formulation mathémati<strong>que</strong>. ....................................................................... 924.1.2 Analogie mécani<strong>que</strong> du fonctionnement du système deprogrammation dynami<strong>que</strong>. ................................................................................ 944.1.3 Simulation sé<strong>que</strong>ntielle de la machine systoli<strong>que</strong>...................................... 954.1.4 Algorithme parallèle respectant le modèle................................................. 974.1.5 Validation du modèle fonctionnel.............................................................. 984.2 Mise en oeuvre des calculs de programmation dynami<strong>que</strong> sur des images. .......... 1024.3 Évaluation temporelle par simulation de la machine de micro-programmationdynami<strong>que</strong>..................................................................................................................... 1044.4 Commentaires. ........................................................................................................ 107Chapitre 5. Réalisation et évaluation du prototype de processeur de microprogrammationdynami<strong>que</strong>. .......................................................................................... 1095.1 Architecture proposée du système de mise en correspondance d'images............... 1125.2 Architecture du processeur de micro-programmation dynami<strong>que</strong>. ........................ 1135.2.1 Optimisation spatiale du calculateur. ....................................................... 1145.2.2 Chemin des données dans le calculateur.................................................. 1165.2.3 Élément de calcul d'un processeur élémentaire........................................ 1185.3 Extensibilité du circuit. ........................................................................................... 1205.3.1 Réseau de calculateurs µPD. .................................................................... 1205.3.2 Processeur virtualisable............................................................................ 1225.4 Réalisation et évaluation d'un prototype................................................................. 1255.4.1 Implantation dans un Xilinx XC4010. ..................................................... 1265.4.2 Portage sur un Xilinx Virtex 300. ............................................................ 1305.5 Conclusion partielle. ............................................................................................... 131Conclusion ................................................................................................................... 133Bibliographie ............................................................................................................... 1412


Introduction.3


La mise en correspondance d'images est un point important pour le domaine de lavision des dispositifs autonomes. Cette problémati<strong>que</strong> apparaît lors<strong>que</strong> deux images d'unemême scène étant acquises sous deux points de vue, et à des instants différents, doiventêtre appariées afin de donner une information de position relative (mouvement global) ausystème de navigation. L'information de recalage visuel est alors une information parmid'autres (odomètrie, dispositifs électromécani<strong>que</strong>s de positionnement, capteurs <strong>pas</strong>sifs ouactifs) qui permet le recalage de la tra<strong>je</strong>ctoire de navigation. Les domaines d'applicationsdes dispositifs de mise en correspondance d'images sont variés :- roboti<strong>que</strong> autonome aux moyens embarqués : industriel, nucléaire, militaire- médical : Par exemple assistance à la chirurgie opératoire et téléopératoire- protection de l'environnement- roboti<strong>que</strong> aérienne, spatiale- multimédia : stabilisation d'image, vision panorami<strong>que</strong> etc ...La mise en correspondance est un domaine vaste, où deux approches différentes seconfrontent en traitement des images. Les uns cherchent à mettre en correspondance desprimitives d'images, à la suite d'une segmentation. La méthode consiste alors à trouver despoints d'intérêt dans la sé<strong>que</strong>nce d'images, et à déterminer le déplacement de <strong>ceux</strong>-ci, s'ilsse conservent, d'une image à la suivante. La difficulté qui apparaît alors, est <strong>que</strong> des scènesréelles s'avèrent toujours difficiles à analyser, et les caractéristi<strong>que</strong>s <strong>que</strong> l'on extrait semodifient au fil des images par des changements des conditions d'illumination, desphénomènes d'occultation etc ... Ces méthodes de mise en correspondance "éparse" 1 ont unatout, qui est la faible complexité algorithmi<strong>que</strong> au regard de la quantité d'information àtraiter. Les images <strong>que</strong> nous traitons ont une dimension typi<strong>que</strong> de 256x256 pixels en 256niveaux de gris, ce qui fait <strong>que</strong> la complexité algorithmi<strong>que</strong> est une caractéristi<strong>que</strong> cruciale,lors<strong>que</strong> l'on cherche à obtenir des traitements en temps réel (l'ordre de grandeur du tempsde calcul est alors la seconde).Une deuxième classe d'algorithmes, <strong>dont</strong> notre méthode fait partie, permet d'obtenird'une information "dense" par l'appariement de la réflectance de tous les éléments de lascène. Lors<strong>que</strong> l'on utilise des images en niveaux de gris, c'est la luminance de cha<strong>que</strong>pixel qui est comparée d'une image à l'autre (avec l'hypothèse <strong>que</strong> la luminance seconserve). L'avantage ma<strong>je</strong>ur de ces méthodes est leur robustesse. Une grande quantitéd'information étant traitée, une erreur n'aura <strong>que</strong> peu de répercussion à coté de la quantitéde résultats corrects. Le désavantage est la lourdeur de calcul. Toutefois, ces algorithmesont une caractéristi<strong>que</strong> favorable : la très grande régularité de leur formulation. Le flot depixel peut être traité d'une manière régulière, c-à-d identi<strong>que</strong> pour cha<strong>que</strong> pixel. Cettecaractéristi<strong>que</strong> ouvre le champ à la réalisation matérielle de dispositifs électroni<strong>que</strong>s dédiésqui viennent palier la complexité naturelle de ces méthodes. La réalisation d'un dispositif1 Lorsqu'un faible nombre de primitives, au regard de la taille de l'image, sont mises en correspondance.5


impose <strong>que</strong> l'on se fixe de nouvelles contraintes, et va souvent de pair avec l'épuration desalgorithmes mis en oeuvre.La plupart des algorithmes "denses" ont recours à un opérateur qui permet lalocalisation d'un voisinage de pixels d'une image à l'autre. Cet opérateur est l'intercorrélationqui indi<strong>que</strong> par son indice (entre 0 et 1) la ressemblance locale des voisinages.Il impose <strong>que</strong> l'on examine dans une région limitée (le déplacement d'un pixel d'une imageà l'autre est par contrainte borné) le maximum d'un pic (de corrélation entre images) quidonne le déplacement du voisinage d'origine dans la seconde image. Ce calcul constitueune méthode locale permettant d'obtenir un champ de vecteurs de déplacement d'une imagevers l'autre. Cette méthode requiert un calcul en nombres rationnels (flottants) du fait de lanormalisation de l'opérateur (l'indice doit se situer entre 0 et 1). C'est donc un algorithmelocal, complexe mais régulier et nécessitant un calcul rationnel qui a donné lieu à denombreuses réalisations (Algorithme Dauphin de l'IGN, Machine de vision stéréoscopi<strong>que</strong>de Kanade, C.M.U.).L'algorithme au<strong>que</strong>l nous avons eu recours, est plus rarement utilisé entraitement des images. Il a surtout donné lieu à des réalisations pour le traitement de laparole. Il s'agit de l'algorithme de programmation dynami<strong>que</strong>. C'est à l'origine unalgorithme permettant d'apparier des données monodimensionnelles, toutefois, grâce à laséparabilité de l'information portée par les lignes et colonnes d'images, il peut être employésur des données bidimensionnelles (images) pseudo-stationnaires. Il s'agit, lors<strong>que</strong> l'onapparie deux lignes d'images, de trouver le chemin de correspondance optimal, qui donneun vecteur de déplacement correct localement, et tel <strong>que</strong> tous les vecteurs de déplacement(disparité) aient une cohérence globale sur l'ensemble des pixels de la ligne. Il fait appel àun calcul intégral (comme la corrélation), et choisit parmi tous les chemins possibles, lechemin (extrémités des vecteurs) qui donne une cohérence globale aux vecteurs selon uncritère de coût. L'intégrale des coûts locaux selon toutes les tra<strong>je</strong>ctoires possibles forme unscore global qui doit être minimisé. Si la pondération par le coût local est optimale, lechemin (champ de vecteurs) est aussi optimal (selon le principe d'optimalité de Bellman).C'est donc un algorithme semi-global, complexe mais régulier et se satisfaisant d'un calculen nombres entiers <strong>que</strong> nous avons choisi.L'implantation de l'algorithme de programmation dynami<strong>que</strong> <strong>que</strong> nousréalisons <strong>pas</strong>se par une transcription sous forme parallèle de celui-ci. Cette formulationparallèle se prête bien au fonctionnement d'un dispositif électroni<strong>que</strong>. De plus lacomplexité de la programmation dynami<strong>que</strong> sé<strong>que</strong>ntielle est O(N 2 ), alors <strong>que</strong> notreformulation parallèle possède une complexité en O(N) (N étant le nombre de pixels). Cegain en complexité avantage notre réalisation, car le volume de données (image) estimportant. Nous verrons <strong>que</strong> la complexité spatiale est aussi en O(N).Ces caractéristi<strong>que</strong>s sont favorables à une implantation matérielle, afin deréaliser un appariement en temps réel des images par un système embarqué.6


Les dispositifs matériels basés sur cet algorithme sont répandus en traitementde la parole [Qué88] (cas monodimensionnel), mais peu appliqués au traitement desimages (micro-programmation dynami<strong>que</strong> µPCD de G. Quénot pour la parole, machined'identification de sé<strong>que</strong>nces d'ADN de l'IRISA). Il apparaît <strong>que</strong> notre formulation del'algorithme permet une réalisation simple, qui n'était <strong>pas</strong> réalisable jusqu'à présent du faitdu volume des données, et de la structure équivalente à un processeur de traitement designal dédié (DSP) qui était envisagée jus<strong>que</strong>-là. En effet, le calcul d'une intégrale(nécessaire à l'algorithme) peut être codé par une durée, ce qui favorise une réalisation.Cela rend infini la résolution du terme intégral, <strong>que</strong>lle <strong>que</strong> soit la résolution des élémentsde la somme. C'est un résultat impossible à obtenir si l'on conçoit un processeur de calculd'intégrale (DSP dédié) car la complexité spatiale devient un obstacle.La programmation dynami<strong>que</strong> est à la base de notre algorithme, toutefois, ils'agit d'un problème où les contraintes géométri<strong>que</strong>s sont importantes. Nous nous sommesplacés dans le cadre d'images stéréoscopi<strong>que</strong>s au sens large. Lors<strong>que</strong> l'on évo<strong>que</strong> lastéréoscopie, on fait souvent allusion à des images rectifiées (ou calibrées) qui possèdentdonc une contrainte épipolaire. Nos yeux possèdent cette contrainte (ils sont alignés). Cettedisposition permet la vision en relief, car le cerveau interprète la disparité entre laperception des deux yeux. La stéréovision au sens large, ne pose <strong>pas</strong> de contrainteépipolaire, et permet, après rectification des images (pour retrouver la contrainte) depercevoir le relief. Une fois effectuée la rectification des images, le relief est un résultat quivient naturellement. L'une des applications immédiates de notre dispositif est lareconstitution tridimensionnelle à partir de deux images <strong>dont</strong> le contenu (observation) estproche.L'accélération matérielle de l'algorithme de programmation dynami<strong>que</strong> est untraitement de bas niveau qui s'intègre dans un algorithme élaboré qui permet le recalagepro<strong>je</strong>ctif d'un couple d'images. Nous avons pour cela, recours à un processus d'affinementd'un modèle géométri<strong>que</strong> pro<strong>je</strong>ctif, au cours d'itérations successives, de faibles résolutionsd'images vers des résolutions plus élevées. Il s'agit d'un processus pyramidald'approximation d'un modèle de transformation géométri<strong>que</strong> liant les images. Plusieursmodèles ont été expérimentés, <strong>dont</strong> l'un, de notre conception, possède des paramètres detransformation explicites, pour l'appariement des images.Les modèles géométri<strong>que</strong>s de transformation d'images ne font aucunesupposition sur le contenu de l'image, et modélisent uni<strong>que</strong>ment le mouvementtridimensionnel de la caméra. C’est en ce sens <strong>que</strong> notre algorithme constitue unerectification stéréoscopi<strong>que</strong> des images, et s'apparente à un problème de calibration decaméras.7


L'algorithme tel <strong>que</strong> nous l'avons implanté sur différentes plates-formes, <strong>dont</strong>une machine parallèle (CM5), constitue un simulateur du dispositif matériel. Nous l'avonsformulé en langage sé<strong>que</strong>ntiel (C), puis parallèle (C*), pour aboutir à une descriptionmatérielle (en VHDL), qui a été une occasion permanente d'approcher le conceptd'Adéquation entre Algorithme et Architecture en satisfaisant aux Contraintes matérielles(A 3 C) [Pis2000]. Il s'agit d'une validation à cha<strong>que</strong> étape des caractéristi<strong>que</strong>sfonctionnelles, bien <strong>que</strong> l'on aille de plus en plus vers une description structurelle. Il s'agiten fait d'un retour constant des contraintes imposées par la réalisation, vers la descriptionfonctionnelle qui à un haut niveau n'a <strong>pas</strong> de limitation.Il faut être conscient des capacités et contraintes architecturales, pour réaliserun traitement et concevoir son adéquation matérielle. Les contraintes du traitement, commele temps réel, le coût ou l'embarquabilité, rendent nécessaire une telle adéquation. Leprogrès seul de la technologie ne fait <strong>que</strong> contribuer partiellement à la réalisationcontraignante des algorithmes complexes de traitement d'images.Ce mémoire de thèse comporte deux parties complémentaires. L'une porte surles principes algorithmi<strong>que</strong>s qui sous-tendent une méthode d'appariement d'imagesaériennes ; l'autre décrit le dispositif matériel qui a été réalisé, qui permet de respecter lescontraintes de temps réel et d'embarquabilité. Le chapitre 1 situe le contexte actuel desméthodes algorithmi<strong>que</strong>s connexes à notre approche. Le chapitre 2 décrit la problémati<strong>que</strong>d'appariement stéréoscopi<strong>que</strong> d'images dans le cas où les images traitées sont aériennes. Cedeuxième chapitre permet d'énoncer des modèles géométri<strong>que</strong>s de vision qui ont trait à lanature pro<strong>je</strong>ctive des transformations mises en <strong>je</strong>u. Il s'agit moins dans ce contexted'étudier le mouvement des constituants de la scène observée, <strong>que</strong> d'étudier le mouvementglobal induit par le déplacement de l'ob<strong>je</strong>ctif de prise de vue. Il ne s'agit <strong>pas</strong> d'un problèmelocal de poursuite d'une cible, mais plutôt de la mesure d'une transformation globaled'image. Nous faisons aussi état du pro<strong>je</strong>t de vision (en collaboration avec le Commissariatà l'Énergie Atomi<strong>que</strong>) qui est à l'instigation de notre application. Le chapitre 2 est unsurvol rapide d'une méthode <strong>que</strong> nous avons analysée et modélisée. Le chapitre 3 découlede l'analyse et de la modélisation, et détaille la mise en oeuvre des concepts énoncés, etprésente des résultats qualitatifs sur des images. Ces trois chapitres aboutissent à uneméthode algorithmi<strong>que</strong> conçue et évaluée. Ils se terminent par une conclusion partielle surla caractérisation de la méthode proposée.La deuxième partie du mémoire porte sur la mise en oeuvre matérielle d'undispositif de vision. La première partie du mémoire aboutit à la conclusion <strong>que</strong> l'algorithmeest précis dans la mesure robuste qu'il effectue sur les images. Bien <strong>que</strong> nous ayons eu unsouci constant pour notre algorithme, de faire des choix qui favorisent la réalisabilité entemps réel, les compromis ne permettent <strong>pas</strong> d'atteindre cet ob<strong>je</strong>ctif. Les traitements de basniveau, qui vont permettre une décision (grâce à la mesure du déplacement de la caméra),sont très difficiles à réaliser à cause des contraintes de temps réel et d'embarquabilité lié àl'application. Ces contraintes ne peuvent être satisfaites à l'aide des dispositifs matériels8


courants (processeurs généralistes, coprocesseurs, processeurs de traitement de signal,processeurs de traitement d'images etc ...). Il faut avoir recours à la conception dedispositifs dédiés <strong>dont</strong> l'architecture est très peu conventionnelle. Le chapitre 4 proposeune réflexion sur un modèle architectural qui peut permettre un calcul efficace d'uneprimitive de calcul qui est à la base des traitements effectués par notre algorithme : lamesure du flot opti<strong>que</strong> entre images.Le chapitre 4 ayant permis d'énoncer un modèle de circuit dédié au calcul de laprimitive complexe de bas niveau, c'est à l'optimisation et à l'évaluation d'un prototype <strong>que</strong>nous consacrons le cinquième chapitre. La deuxième partie de ce mémoire se termine parune conclusion partielle sur l'architecture proposée et son adéquation au problème posé.Enfin une conclusion générale résume nos travaux et ouvre des perspectives quant auxtravaux accomplis dans le cadre de l'application immédiate et des domaines d'applicationproches.9


1ère PartieChapitre 1. Évaluation qualitative de méthodesd'appariement.11


Dans ce qui suit, nous essayons de faire une évaluation qualitative de deuxméthodes d'obtention du champ vectoriel de disparité. Il s'agit, pour obtenir ce champ, dedéterminer à l'aide de deux images, le mouvement individuel de chacun des pixels de l'unedes images (référence) vers l'autre image (à apparier). Deux autres méthodes (la notre, etcelle de Kanade-Okutomi) pourraient être présentées dans cette évaluation. Nous pourrionsprésenter le résultat de notre méthode, mais cela nécessiterait des explications qui serontdétaillées par la suite.La méthode Kanade-Okutomi (http://www.ius.cs.cmu.edu/demo/ko.html) aaussi été évaluée. Cette dernière méthode présente une très faible qualité du résultat. Nousne nous autorisons <strong>pas</strong>, par consé<strong>que</strong>nt à le présenter. Deux hypothèses peuvent être faitepour cet échec de la méthode. D'une part, nous pourrions avoir utilisé incorrectement lessources qui sont mises publi<strong>que</strong>ment à disposition. D'autre part, les images <strong>que</strong> nousprésentons sont peut être inadaptées au type de traitement qui est effectué par la méthode"ko".Les deux méthodes présentées sont celles de Changming Sun(http://www.dms.CSIRO.AU/~changs/cgi-bin) et celle de Georges Quénot (qui a bienvoulu mettre à notre disposition un résultat à partir de nos images) <strong>que</strong> nous remercionstous les deux pour nous avoir guidé dans notre démarche. Les images présentées sontextraites d'une base de couples d'images de l'INRIA (pro<strong>je</strong>t SYNTIM), constituée par Jean-Philippe Tarel (http://www-syntim.inria.fr/syntim/analyse/paires-eng.html) etont été corrigées pour obtenir une disparité horizontale (par notre méthode) puisreconstruites par interpolation bilinéaire (qui donne une qualité d'image très conforme àl'original).Ces deux méthodes sont implantées sur des ordinateurs conventionnels, et nous neproposons aucune évaluation temporelle. Il aurait été bien difficile d'évaluer les tempsd'exécution des algorithme, et il n'ont de toute façon <strong>pas</strong> donné lieu à la réalisation dedispositif d'accélération matériel. Nous ne connaissons <strong>pas</strong> leur complexité spatiale(nécessité en ressource mémoire), et ils n'ont <strong>pas</strong> été conçus avec les contraintes de tempsréel et d'embaquabilité qui est notre préoccupation. Ils ne répondent <strong>pas</strong> au problème dedétermination du mouvement spatial de la caméra <strong>que</strong> nous élaborons dans les chapitresuivants. Toutefois, par la détermination d'un champ (monodimensionnel) de disparitéentre images, ils constituent une problémati<strong>que</strong> proche de la notre. Ce traitement(bidimensionnel dans notre cas) est rendu nécessaire pour déterminer le mouvement (dansl'espace) du dispositif de prise de vue. Cela sera détaillé par la suite. Il s'agit d'une méthodelocale (Sun) et semi-globale (Quénot) de détermination du champ de disparité.La figure 1.1 présente deux images <strong>que</strong> l'on a soumises à deux méthodes dedétection du champ de disparité. Ces deux résultats présentent la composante horizontaledu champ de déplacement. Les deux images étant prati<strong>que</strong>ment alignées horizontalement,le déplacement horizontal représente pres<strong>que</strong> parfaitement le mouvement d'une image à13


l'autre. La composante verticale du champ est très peu prononcée. Plus les pixels desimages des figures 1.2 et 1.3 sont clairs, plus le déplacement horizontal est important(norme du vecteur de disparité).La figure 1.2 présente une méthode de corrélation. C'est une méthode locale. Eneffet, on cherche à identifier des voisinages deux à deux dans les deux images <strong>que</strong> l'on meten correspondance. Cette méthode consiste à identifier des ob<strong>je</strong>ts de la scène (grâce aumaximum du pic de corrélation) d'une image à l'autre, en reconnaissant une ressemblancede leur réflectance. Cette méthode de corrélation sera décrite au chapitre suivant,notamment grâce à l'opérateur d'évaluation de ressemblance sur le<strong>que</strong>l est basé le calcul.La figure 1.3 présente la méthode de Programmation Dynami<strong>que</strong> Orthogonale(ODP [Qué92]). C'est une méthode semi-globale. En effet, on recherche une ressemblancedes pixels des deux images entre eux (sur une même ligne des deux images), et lacorrespondance locale entre pixels doit être validée globalement grâce à un critère de coûtd'appariement (score global). Plus <strong>que</strong> l'identification de l'ob<strong>je</strong>t en lui-même, il s'agit dereconnaître le contexte dans le<strong>que</strong>l se trouve un pixel donné. La reconnaissance ducontexte vient apporter à la mise en correspondance une robustesse de calcul, <strong>que</strong> nepossèdent <strong>pas</strong> les méthodes locales telles <strong>que</strong> la méthode de corrélation.Visuellement, le résultat de corrélation (figure 1.2) laisse apparaître des contoursd'ob<strong>je</strong>ts mal définis comparé à la méthode ODP (figure 1.3). Les zones d'uniformité de laréflectance (zones uniformes des images de la figure 1.1) posent un problèmed'indétermination pour une méthode locale. La robustesse de l'appariement d'un contextevisuel est supérieure à la mise en correspondance isolée de primitives visuelles.Figure 1.1 : Deux images corrigées provenant d'un pro<strong>je</strong>t INRIA14


Figure 1.2 : Image de déplacement horizontal obtenue à l'aide de la méthode de corrélationde Changming Sun (CSIRO Australie)Figure 1.3 : Image de déplacement horizontal obtenu à l'aide de la méthode ODP deGeorges Quénot (CNRS IMAG Grenoble)15


Le caractère robuste, grâce à sa globalité, de la méthode de programmationdynami<strong>que</strong>, étant donné <strong>que</strong> le problème d'appariement dans notre cas, n'est <strong>pas</strong>monodimensionnel, mais bidimensionnel, nous a mis sur la voie de cette méthode. Elle estmieux à même, en terme de précision et de robustesse, de répondre au besoin de mise encorrespondance d'images.La précision intervient dans la détermination juste du vecteur disparité, et donneune image de disparité où l'on peut distinguer, avec une bonne qualité, les ob<strong>je</strong>ts dans lesdifférents plans où ils se situent.La robustesse intervient par le fait qu'une petite modification du contenu d'imagen'influera <strong>que</strong> peu sur la précision du résultat d'appariement. Les modifications de contenu,d'un point de vue local, peuvent être constituées des transformations suivantes :- Déplacement dans les deux directions x et y.- Ajout d'un ou plusieurs pixels (un ob<strong>je</strong>t apparaît)- Suppression d'un ou plusieurs pixels (élision, un ob<strong>je</strong>t disparaît)Ces deux dernières transformations sont naturellement produites parl'occultation d'un ob<strong>je</strong>t par un autre.- Modification de luminosité d'un pixel.Cette transformation intervient, car il y a des modifications de contrasteentre images. Les instants de prise de vue peuvent être bien distincts.Toutes ces transformations locales couvrent l'ensemble des transformationsgéométri<strong>que</strong>s de notre application, et du point de vue de l'image globale, se traduisent parles transformations suivantes :- Les transformations modélisables :- Translation- Rotation- Facteur d'échelle- Transformation perspective (Roulis, tangage et lacet)16


- Et les perturbations du champ, non modélisées, aux<strong>que</strong>lles il faut être rendu non sensible:- Contraste (changement d'illumination de la scène)- Occultation (Ajout et Élision de pixels)- Apparition et disparition d'ob<strong>je</strong>ts de la scène- Bruit en provenance du capteur.La mise en correspondance d'images aériennes offre, par sa modélisation, un cadrebien défini. Il nous a fallu adapter l'algorithme général pyramidal d'appariement auxcontraintes qui nous sont posées pour l'application. Les contraintes géométri<strong>que</strong>s et dedurée de traitement étant imposées, il faut mettre en oeuvre des choix de réalisation quinous permettent de répondre à ces exigences. La réponse à un tel problème met en oeuvrela conception d'un algorithme de vision, et nécessite aussi la réalisation d'un dispositifmatériel du fait de la complexité algorithmi<strong>que</strong> temporelle des traitements. Il faut bieninterpréter les hypothèses de la méthode de flot opti<strong>que</strong>, et caractériser les contraintes duproblème, pour répondre au mieux aux exigences du pro<strong>je</strong>t de vision aérienne au<strong>que</strong>l nouscontribuons.17


Chapitre 2. Contexte de la vision aérienne pourl'appariement d'images.19


2.1 Vision aérienne et modélisation géométri<strong>que</strong>.La mise en correspondance d'images dans le contexte de vision aérienne, puisqu'ils'agit du cadre <strong>que</strong> nous nous sommes fixé, conduit à une définition particulière de laproblémati<strong>que</strong> d'appariement (figure 2.1). Ce <strong>que</strong> l'on observe à haute altitude (A) estcontenu dans une profondeur de champ (de vision) très réduite. Ce qui est perçu par lacaméra se situe très loin du point focal ( Φ), la formation de l'image sur la rétine constituedonc la pro<strong>je</strong>ction d'un plan situé dans l'espace (scène plane) sur le plan image. Le relief(H) des constituants de la scène (bâtiments, terrain ...) peut être négligé devant la distancepar rapport au plan image.Le problème <strong>que</strong> nous nous posons est de mettre en correspondance deux imagesprises dans ces conditions. L'image formée est issue d'une pro<strong>je</strong>ction spatiale 2 de la scèneobservée sur le plan photosensible. Si l'on considère deux images issue de deux pro<strong>je</strong>ctionsdistinctes, la transformation pro<strong>je</strong>ctive plane subie d'une image à l'autre peut êtremodélisée. On modélise alors le mouvement de la caméra.Le relief des éléments de la scène étant négligeable, le mouvement de ces élémentspeut être assimilé à une transformation plane, rigide, globale d'image (le mouvement decha<strong>que</strong> pixel n'est <strong>pas</strong> indépendant, mais suit un mouvement d'ensemble <strong>que</strong> l'on peutdécrire à l'aide de cette transformation).La figure 2.2 donne un exemple d'une scène aérienne (au centre) et de part etd'autre, deux pro<strong>je</strong>ctions de la même scène selon deux angles de vue.Du point de vue géométri<strong>que</strong>, la pro<strong>je</strong>ction d'un quadrilatère, dans l'espace, donneun quadrilatère (ou un segment) dans le plan image. Ce quadrilatère pro<strong>je</strong>té, peut subirdiverses transformations :- Des transformations affines- un facteur d'échelle (zoom),- une translation (déplacements transversaux de la caméra),- une rotation (pivotement de la caméra).- Des transformations perspectives- roulis,- tangage,- lacet.Ces transformations définissent pour la caméra 6 degrés de liberté dans l'espace (3degrés de translation et 3 degrés de rotation).2 En fait il s'agit d'une double pro<strong>je</strong>ction spatiale et temporelle, puis<strong>que</strong> l'image pour se former sur la rétinephotosensible est pro<strong>je</strong>tée spatialement, mais nécessite aussi une intégration temporelle (durée d'acquisition).21


ΦAHA >> HFigure 2.1 : Principe de formation d'une image aérienne prise de l'altitude A (Hypothèse :La hauteur H des éléments de la scène peut être négligée devant l'altitude A de la caméra).22


Figure 2.2 : Pro<strong>je</strong>ction d'une scène plane sur le plan image.2.1.1 Modèle de transformation pro<strong>je</strong>ctive à paramètres implicites.La scène observée subit toutes les transformations qui sont celles d'un plan(tridimensionnel) pro<strong>je</strong>té sur un autre plan (plan image bidimensionnel). En effet, la scèneest considérée comme plane (1 ère hypothèse) ; sa pro<strong>je</strong>ction est une transformation noninversible.Si on veut modéliser le mouvement de la caméra dans l'espace, en observant lapro<strong>je</strong>ction de la scène sur le plan image, on peut s'aider de la définition de latransformation homographi<strong>que</strong> [Sze93]. Cette transformation associe à tout point M(x,y,z)de l'espace, son pro<strong>je</strong>té M'(x',y') sur le plan image tel <strong>que</strong> :⎛x' .z' ⎞⎜y' .z' ⎟⎜ ⎟z'⎜ ⎟⎝ 1 ⎠⎛m 00 m 01 m 02 t x ⎞⎛x⎞⎜ m 10 m 11 m 12 t y⎟⎜y⎟= ⎜⎟⎜⎟m 20 m 21 m 22 1z⎜⎟⎜⎟⎝ 0 0 0 1⎠⎝1⎠(2.1)23


M'(x',y',0)X'Y'YXM(x,y,z)Figure 2.3 : Pro<strong>je</strong>ction d'un point M(x,y,z) de l'espace, dans le plan image, en M'(x',y').Ce modèle est idéal, car il est celui du modèle de sténopé (voir figure 2.3) quiconsidère <strong>que</strong> l'ob<strong>je</strong>ctif est un simple trou (idéalement ponctuel) qui laisse <strong>pas</strong>ser lesrayons lumineux, en direction du plan photosensible (plan image en z=0). C'est toutefois, lemodèle vers le<strong>que</strong>l tendent tous les dispositifs de vision, car c'est un modèle sans défautsopti<strong>que</strong>s 3 .Si on développe le modèle (2.1) on obtient le système (2.2) :Z⎧x' = m x + m y + m z + t 00 01 02 x⎪ mM' = P(M) tel <strong>que</strong>20x + m 21y + m 22z + 1⎨y' = m x + m y + m z + t 10 11 12 y⎩⎪m 20x + m 21y + m 22z + 1(2.2)C'est un modèle de pro<strong>je</strong>ction à 11 paramètres qui prend en compte la position(x,y) de cha<strong>que</strong> point, et son altitude (z). Les paramètres de cette transformation sontdonnés par les caractéristi<strong>que</strong>s opti<strong>que</strong>s de la caméra (calibration).3 Les défauts opti<strong>que</strong>s <strong>que</strong> l'on cherche à minimiser lors<strong>que</strong> l'on construit un dispositif opti<strong>que</strong> sont parexemple le décentrage de l'axe opti<strong>que</strong> par rapport au centre de la zone photosensible, les distorsions radiales(qui sont très apparentes, et de façon voulue sur les ob<strong>je</strong>ctifs "fish eye") etc ... Tous ces défauts ne sont <strong>pas</strong>pris en compte, car les caméras, et les ob<strong>je</strong>ctifs actuels tendent à s'en affranchir pour un coût toujoursmoindre.24


Si l'on considère l'ensemble des transformations <strong>que</strong> peut subir l'image pro<strong>je</strong>tée, onse situe dans le plan image, et on pose alors z=0. La transformation pro<strong>je</strong>ctive du planapparaît alors [Dup98]. Cette transformation associe à un point M(x,y) un point M'(x',y')du plan tel qu'il correspond à une transformation pro<strong>je</strong>ctive plane de l'image :⎧x' = m x + m y + t 00 01 x⎪ mM' = T(M) tel <strong>que</strong>20x + m 21y + 1⎨y' = m 10x + m 11y + t y⎩⎪m 20x + m 21y + 1(2.3)On aboutit à un modèle complet à 8 paramètres qui décrit l'ensemble destransformations <strong>que</strong> peut subir une scène plane, lorsqu'elle est vue sous deux angles de vuedifférents. Cette transformation est le produit d'une transformation affine par unetransformation perspective. La décomposition en ces deux transformations simples nous aguidé pour élaborer notre propre transformation à paramètres explicites, <strong>que</strong> nous décrironspar la suite.La définition (2.3) de la transformation pro<strong>je</strong>ctive plane a en effet, l'inconvénientd'avoir des paramètres qui ne sont <strong>pas</strong> reliés directement aux degrés de liberté dumouvement tridimensionnel de la caméra. Il est plus prati<strong>que</strong> de pouvoir explicitementdécrire le mouvement de la caméra à l'aide de ses 6 degrés de liberté dans l'espace 3D (3rotations et 3 translations).2.1.2 Modèle de transformation pro<strong>je</strong>ctive plane à paramètres explicites.Si l'on décompose la transformation pro<strong>je</strong>ctive plane implicite de la formule (2.3)on arrive à l'expression (2.4) suivante :⎛M' = T(M) tel <strong>que</strong>x' ⎞ ⎡⎛m 00 m 01 ⎞⎜ ⎟ = ⎜⎝y'⎠ ⎝ m 10 m 11 ⎠⎟ ⎛⎜ x⎞ ⎝ y ⎠ ⎟ ⎛+ t x⎞⎤⎢⎜⎝t ⎟ ⎥⎣⎢y ⎠ ⎦⎥ / ⎡⎛m 20 ⎞ ⎛x⎜ ⎟. ⎜ ⎞ ⎝ m 21 ⎠ ⎝y⎠ ⎟ ⎤⎢ + 1⎥ (2.4)⎣⎦(2.4) ⇔ M' = T(M) = S(M) / D(M)Le premier crochet (l'expression S(M)) de l'équation est une transformation affineS. La division par le second crochet (scalaire D(M)) correspond donc à la transformationperspective D. La transformation T possède des paramètres implicites (m00, m01, m10,m11 m20 et m21). Au produit (en fait l'opération est une division scalaire) peut êtresubstitué une composition. La similitude S peut s'écrire de façon équivalente, avec desparamètres explicites :25


⎛M' = S(M) tel <strong>que</strong>x' ⎞⎜⎝y'⎠⎟ = ⎛ zx .cos(α) zy .sin(α) ⎞⎛x − c x ⎞⎜⎝−z x .sin(α) z y .cos(α) ⎟⎜⎠⎝y − c ⎟ y ⎠+ ⎛ t x⎞⎜⎝t ⎟ y ⎠+ ⎛ c x⎞⎜⎝c ⎟ (2.5)y ⎠(2.5) est la composée des transformations affines du plan suivantes :- une rotation d'angle α, et de centre (cx,cy),- une homothétie de rapport zx en x et zy en y,- une translation du vecteur (tx,ty).Les paramètres de S sont donc les suivants :- α angle de rotation- zx facteur d'échelle en x- zy facteur d'échelle en y- cx abscisse du centre de la rotation- cy ordonnée du centre de la rotation- tx translation horizontale- ty translation verticaleLa transformation perspective P du plan peut être énoncée de la façon suivante :⎧x' = (x − N/2).(1+ (y − N/2).tg(λ)/N)+ (y − N / 2).tg(s x ) + N ⎪⎪1 + tg 2 (s x )2M' = P(M) avec ⎨y' = (y − N/2).(1+ (x − N/2).tg(µ)/N)+ (x − N / 2).tg(s y⎪) + N⎪1 + tg 2 (s y )2⎩(2.6)P est une transformation géométri<strong>que</strong> bilinéaire plane, comportant donc des termespondérés en x, y et xy. Elle est effectuée sur une image <strong>dont</strong> le système de coordonnées estrapporté au centre de l'image (N/2). Les termes en x et xy pour x', et y et xy pour y',produisent le tangage et le roulis, respectivement. Les termes en y pour x', et x pour y',produisent le lacet en x et y, respectivement. Les termes au dénominateur évitent <strong>que</strong> lestransformations de lacet ne produisent un facteur d'expansion 4 . L'image est enfin rapportéeaux coordonnées standard (en ajoutant N/2).4 Le modèle de transformation implicite, qui décomposé permet d'énoncer un modèle explicite, possède cettepropriété.26


Les paramètres de la transformation perspective P sont les suivants :- λ angle de tangage- µ angle de roulis- sx angle de lacet en x- sy angle de lacet en yNxN correspond à la taille de l'image (carrée par hypothèse). Les axes de roulis etde tangage sont donc constitués par les deux médianes d'images.La transformation pro<strong>je</strong>ctive du plan est la composée de la transformationperspective P et de la similitude S. Elle est équivalente 5 à l'expression (2.3).(2.3) ⇔ M' = T(M) tel <strong>que</strong> T = S o P (2.7)Cette transformation équivalente à T de (2.3) est une transformation à paramètresexplicites, comportant 11 paramètres physi<strong>que</strong>s liés au mouvement rigide de la caméraentre les deux prises de vue.Les paramètres de la transformation explicite sont plus nombreux <strong>que</strong> dans le casimplicite, ils ne sont <strong>pas</strong> tous indépendants. Déterminer la valeur de ces 11 paramètresconstitue donc un problème de déconvolution.La figure 4 illustre les transformations géométri<strong>que</strong>s élémentaires du modèleexplicite. Elles décrivent la pro<strong>je</strong>tée du mouvement dans l'espace de la caméra, et donc lestransformations pro<strong>je</strong>ctives <strong>que</strong> peut subir l'image d'un angle de vue à l'autre.5 Ceci n'a <strong>pas</strong> été formellement démontré ici. Mais les résultats expérimentaux obtenus à l'aide de ce modèle,se correspondent avec les deux formulations.27


RéférenceÉchelle xÉchelle yRotationTranslation xTranslation yTangageRoulisLacet xLacet yFigure 2.4 : Transformations géométri<strong>que</strong>s pro<strong>je</strong>ctives planes élémentaires.28


2.2 Détermination du mouvement spatial de la caméra.Nous avons défini le contexte de vision aérienne, et le modèle de transformationpro<strong>je</strong>ctive qui intervient dans la formation des images aériennes. Pour effectuer lamodélisation du déplacement de l'ob<strong>je</strong>ctif de la caméra, il nous faut mesurer cedéplacement.La caméra est un capteur qui nous donne une information qui peut être représentéesous forme d'une matrice carrée de valeurs d'intensité lumineuse (la réflectance). Cha<strong>que</strong>élément de cette matrice est nommé pixel. Dans le problème <strong>que</strong> nous nous posons, noussommes en présence de deux images proches par leur contenu (la scène observée, dans desconditions particulières où on l'observe). Nous cherchons à établir une transformationpro<strong>je</strong>ctive du plan, qui permet de lier les deux images.Pour déterminer un mouvement, et obtenir les 11 paramètres de la transformationentre deux images, il nous faut une mesure du déplacement spatial d'un certain nombre depixels d'une image à l'autre. On fait en fait l'hypothèse supplémentaire <strong>que</strong> le flux lumineuxcapté par la caméra, issu de la réflectance des ob<strong>je</strong>ts de la scène, est quasi constant.Si l'on modélise le déplacement à l'aide du mouvement estimé de <strong>que</strong>l<strong>que</strong>s pixels,on dira <strong>que</strong> l'on a affaire à une méthode éparse [Zha97]. Si au contraire, nous utilisons lemouvement de tous les pixels d'une des images (l'image de référence), pour modéliser ledéplacement, nous nommerons une telle méthode dense [Rob92]. C'est grâce à une mesure(de déplacement) sur les données obtenues par le capteur opti<strong>que</strong> (caméra) <strong>que</strong> nouspouvons modéliser le mouvement de ce capteur dans l'espace.2.3 Quantification du mouvement spatial de la caméra.Pour effectuer une mesure de ressemblance entre images, nous pouvons le faire àl'aide de <strong>que</strong>l<strong>que</strong>s opérateurs qui comparent les intensités lumineuses, en effectuant unemesure de déplacement bidimensionnel des pixels. L'un de ces opérateurs (le plus usuel)est l'inter-corrélation. La forme normalisée et centrée de cet opérateur agit sur deux imagesde dimensions identi<strong>que</strong>s en effectuant un produit point à point des matrices de pixelsconstituant les images U et V, tel <strong>que</strong>:r 2 =⎡⎢⎣⎢∑(x,y)∈image⎤(U xy − U).(V xy − V) ⎥⎦⎥(U xy − U) 2 . (V xy − V) 2∑(x,y)∈image∑(x,y)∈image2(2.8)29


Uxy et Vxy sont les intensités des pixels (luminance) des images U et V. U et Vreprésentent les moyennes des images U et V. L'opérateur est normalisé par le produit desvariances de chacune de ces images (dénominateur).Cet opérateur permet de comparer des voisinages (imagettes extraites des images)et d'identifier leur déplacement. En effet, r est un scalaire compris dans ]0,1] qui mesure laressemblance (1 si U=V) ou la dissemblance (tend vers 0) des images. Si l'on suppose <strong>que</strong>les images U et V sont proches par le mouvement (des pixels) qui les différencie, on peut,pour cha<strong>que</strong> pixel de l'image de référence, déterminer dans des voisinages de la secondeimage, <strong>que</strong>l voisinage (de la première image) lui ressemble le plus. Cette correspondancesera donnée par le maximum du pic de corrélation entre voisinages 6 .Si l'on effectue l'opération d'identification pour un certain nombre de pixels (centresdes voisinages) de l'image de référence, on obtiendra un champ vectoriel de mouvemententre images. Ces vecteurs sont donnés par les maxima de ressemblance entre desvoisinages pris sur chacune des images. Si l'on effectue cette mise en correspondance pourtous les pixels des deux images, les voisinages seront appariés exhaustivement, et on aaffaire alors à une méthode dense.La complexité temporelle d'une telle opération sur deux imagettes carrées estconstante, car le voisinage constitue une partie fixe de l'image d'origine. Si l'on imagine<strong>que</strong> cette opération est répétée dans un voisinage proche entre les deux images, celaapporte un facteur multiplicatif constant à la complexité temporelle du traitement, qui restedonc inchangée. Puis<strong>que</strong> cette opération doit être répétée pour chacun des pixels del'image, pour obtenir un résultat dense la complexité est portée à O(N 2 ). N est la tailled'une image carrée NxN à la<strong>que</strong>lle est appliquée la mise en correspondance. Cela donne lacomplexité temporelle d'un tel algorithme en nombre de calculs de produits point à pointdes matrices pixels des images.L'implantation de cet algorithme, exige un calcul flottant, puis<strong>que</strong> du fait de lanormalisation de l'opérateur, l'indice de corrélation est un nombre compris dans ]0,1]. Lefait <strong>que</strong> cette méthode nécessite des calculs flottants, limite beaucoup la "réalisabilité" dedispositifs matériels. Un certain nombre de réalisations ont pourtant été faites, en se basantsur ce calcul (Machine de vision temps réel du C.M.U.[Kan95], algorithme Dauphin del'IGN sur Sympati [...94]). La régularité des calculs est en effet un point favorable àl'accélération matérielle de telles procédures.6 La corrélation calculée donne en effet une courbe, à 2 variables (surface), assez régulière, qui a une formeen "cloche", et <strong>dont</strong> le maximum identifie la correspondance des voisinages.30


2.4 Principe pyramidal d'appariement d'images aériennes.Nous avons vu <strong>que</strong> le calcul de la transformation pro<strong>je</strong>ctive liant deux imagespermet de les apparier globalement. Pour définir un algorithme de mise en correspondanced'images, nous nous plaçons dans le cadre de la stéréoscopie généralisée [Wu88]. Souvent,lors<strong>que</strong> l'on parle d'images stéréoscopi<strong>que</strong>s, on suppose <strong>que</strong> celles-ci sont alignéeshorizontalement. Lors<strong>que</strong> les images sont alignées (on parle de contrainte épipolaire) touteune géométrie très développée (la géométrie épipolaire) permet de déduire desinformations spatiales de ces images. La recherche du mouvement des pixels se trouvesimplifiée, puis<strong>que</strong> située dans une direction horizontale. La stéréoscopie avec la contrainted'alignement se rapporte à un problème monodimensionnel. Afin de se ramener à unproblème classi<strong>que</strong>, il est nécessaire d'obtenir des images rectifiées [Loo99]. Larectification d'images <strong>que</strong>lcon<strong>que</strong>s permet de se ramener à un problème 1D.Notre problème de modélisation et mise en correspondance des images estbidimensionnel, donc plus complexe. Il apparaît <strong>que</strong> si nous recherchons dans le voisinaged'une image, la ressemblance avec une imagette d'une image de référence, nous aimerions<strong>que</strong> le déplacement recherché puisse être borné 7 .Si l'on suppose <strong>que</strong> le déplacement est borné, et pour rendre performante larecherche du mouvement des pixels, la méthode pyramidale peut être proposée [Bur83][Ber92]. Cette méthode consiste à rechercher un mouvement important, et peu précis, à unsous-échantillonnage important des images. Puis, au fur et à mesure des itérations del'algorithme, et avec une définition de plus en plus élevée des images, à affinerl'approximation initiale. En augmentant la résolution des images, nous estimons unevariation de plus en plus faible autour de l'estimation initiale. Nous pouvons donc définirun algorithme efficace d'appariement stéréoscopi<strong>que</strong> d'images tel <strong>que</strong> sur la figure 2.5 ; ilsera détaillé dans les paragraphes suivants.Tout algorithme pyramidal, dans la recherche de correspondance, n'intègre <strong>pas</strong>nécessairement la détermination d'un modèle tel <strong>que</strong> celui <strong>que</strong> nous avons présenté. Lamise en correspondance d'images peut être effectuée sans qu'aucun modèle physi<strong>que</strong> dumouvement de la caméra ne soit déterminé [Qué96]. Toutefois, la prise en compte d'unmodèle de vision, par la contrainte physi<strong>que</strong> qu'il apporte au processus d'appariement(énoncé du modèle), permet de distinguer la convergence ou la divergence de la méthode,selon la validité des paramètres obtenus. Il est important d'avoir des paramètres <strong>dont</strong> lasignification physi<strong>que</strong> est non ambiguë, pour pouvoir juger de la pertinence du résultatd'appariement.7 Si nous n'avions <strong>pas</strong> fait l'hypothèse <strong>que</strong> ce mouvement est borné, cela aurait porté la complexité del'algorithme de recherche par corrélation à O(N 4 ).31


L'algorithme généri<strong>que</strong> d'appariement pyramidal proposé (figure 2.5), permetd'obtenir trois résultats :- les paramètres approximés d'une transformation pro<strong>je</strong>ctive entre images ;l'approximation du modèle pro<strong>je</strong>ctif peut être réalisée par une méthode de descente degradient, qui permet à partir d'un champ de vecteurs, et d'un modèle physi<strong>que</strong>, d'estimer lesparamètres du modèle, pour qu'il corresponde au mieux à la mesure.- un coefficient de qualité global r de l'appariement. Il peut être constitué par lecalcul de l'opérateur d'inter-corrélation entre les deux images <strong>dont</strong> l'une aura été rectifiéepar l'application de la transformation pro<strong>je</strong>ctive plane estimée.- un champ de vecteurs de déplacements <strong>dont</strong> les vecteurs le constituant sontobtenus précisément, même si la "distance" (résultant de la pro<strong>je</strong>ction) à la<strong>que</strong>lle ilscorrespondent est importante.32


ImagesGestion des imagesde la pyramideMesure du champ devecteurs-déplacementApproximation dela transformationliant les imagesSuperposition desdeux images(recalage pro<strong>je</strong>ctif)Calcul d'uncoefficient dequalité del'appariementOUILeCoefficientest-ilamélioré?NONMeilleurerésolution?OUIPrise en compte dumodèle pro<strong>je</strong>ctifFINNONFigure 2.5 : Algorithme pyramidal général de mise en correspondance d'images.33


La figure 2.6 illustre ce processus d'affinement d'un vecteur-déplacement par unerecherche pyramidale de correspondance. Le modèle pro<strong>je</strong>ctif permet de contraindre lechamp mesuré en le lissant après une itération réussie, et entre les résolutions d'images.Son rôle est de donner une cohérence globale au champ de vecteurs estimés. Il s'agit d'unlissage du champ, car le champ recherché a une cohérence globale. Cette cohérence estdonnée par la connaissance du phénomène physi<strong>que</strong> de mouvement des pixels, dû audéplacement de la caméra.La recherche pyramidale multirésolution de correspondance 8 apparie des blocs detaille importante (constitués de beaucoup de pixels) aux premières itérations. La prise encompte d'un bloc de pixels est liée à ce <strong>que</strong> l'on appelle en traitement du signal le souséchantillonnage. Une valeur uni<strong>que</strong> doit en effet représenter tout un voisinage afin d'êtrecomparée, via une distance lumineuse, à un autre voisinage. Une fois <strong>que</strong> des blocs detaille importante ont été appariés (appariement grossier), on subdivise ces blocs pouraffiner l'approximation. Le processus se répète jusqu'à la résolution originale des images.La première itération apparie des blocs de pixels, la dernière itération de l'algorithmepermet d'apparier des pixels entre eux et possède la plus grande précision d'estimation.Résolutioninitiale (32x32)RésolutionsIntermédiairesRésolutionFinale (256x256)Figure 2.6 : Recherche pyramidale de correspondance entre voisinages : approximationd'un vecteur.2.5 Détails de l'algorithme généri<strong>que</strong> de mise en correspondance d'images.Différents éléments participent à la définition de l'algorithme de mise encorrespondance d'images. Nous allons détailler chacun de ces éléments. Il s'agit de décrirele principe d'appariement, et d'expli<strong>que</strong>r la démarche qui conduit à l'élaboration de notrepropre algorithme. Le chapitre suivant précisera les choix d'implantation <strong>que</strong> nous avonsfaits. Le problème <strong>que</strong> nous nous posons possède en effet des contraintes (de modélisationet d'implantation) <strong>que</strong> nous décrirons, qui imposent des choix.8 dénommée aussi "coarse to fine registration".34


2.5.1 Gestion de la pyramide d'images.Le sous-échantillonnage intervient en premier lieu dans l'algorithme pyramidal. Ilest constitué de deux opérations : le filtrage et la décimation. En effet, la pyramided'images est constituée des deux images d'origine (à apparier), et de plusieurs sousrésolutionsde ces mêmes images obtenues par leur sous-échantillonnage.Le filtrage est un filtrage <strong>pas</strong>se bas. Il évite le phénomène d'alaising et élimine lescomposantes de haute fré<strong>que</strong>nce du signal, et prépare la décimation. Le filtrage peut êtrefait à l'aide de différentes fenêtres (carrée, triangulaire, Hann, Hamming, Gaussienne etc...). Ces différents fenêtrages atténuent plus ou moins fortement les artefacts constitués parles raies spectrales secondaires qui apparaissent lors<strong>que</strong> l'on examine (à l'aide de latransformée de Fourier) le signal dans le domaine fré<strong>que</strong>ntiel.Cette préoccupation dissertée méthodi<strong>que</strong>ment dans le cas monodimensionnel dutraitement numéri<strong>que</strong> du signal [Pic89], est abordée plus pragmati<strong>que</strong>ment dans le domainedu traitement des images. Pour ne <strong>pas</strong> rendre prohibitif le coût temporel des calculs deconvolution par une fenêtre, et pour réduire la taille du support spatial de la fenêtre deconvolution, des approximations de ces fenêtrages sont effectuées. Dans notre domaine detraitement des images, on utilise souvent des filtres (anti-repliement) moyen (fenêtrecarrée), moyen pondéré (approximation du cosinus surélevé de Hann ou Hamming), voirela convolution gaussienne (bien sûr approximée, car la taille du support le nécessite).Puis<strong>que</strong> nous recherchons la rapidité et la régularité des traitements, le fenêtragecarré a été sélectionné. Ce fenêtrage carré est en effet constitué par le calcul d'une moyenned'intensité de pixels sur un voisinage (qui n'est <strong>pas</strong> nécessairement un support carré), et nenécessite aucune pondération. Il s'agit d'une convolution simple et régulière.Quel doit alors être le support spatial de fenêtrage (n.n) pour obtenir une sousrésolution d'un facteur s entier ?Nous voulons <strong>que</strong> le filtre <strong>pas</strong>se-bas coupe les fré<strong>que</strong>nces spatiales supérieures à spixels. Nous imposons la forme du filtre (carré moyen et centré, pour illustrer la nécessitédu filtrage) nous pouvons donc en déduire sa fré<strong>que</strong>nce de coupure. Il suffit d'étudier laréponse fré<strong>que</strong>ntielle du filtre moyen <strong>dont</strong> la dimension du mas<strong>que</strong> de convolution est n 2 .⎡porte⎡− nTransformée de Fourier2 , n ⎤⎤⎢ ⎣⎢ 2 ⎦⎥ ⎥⎢⎥ =⎢ n ⎥⎣⎢⎦⎥sin ( π.n.f )π.n.f(2.9)35


Pour trouver la fré<strong>que</strong>nce spatiale normalisée de coupure, il suffit donc de résoudrel'équation (2.10) :sin( π.n.f)= 1 π.n.f 2soitsin( 2.y) = y⎧⎨⎩y =π.n.f / 2(2.10)La solution de l'équation (2.10) est obtenue pour y=0.98. Nous en déduisons <strong>que</strong> :π.f.n = 1.39 (2.11)Si nous appelons s le facteur de réduction entier de l'image, le théorème del'échantillonnage impose <strong>que</strong> :f < 12.s(2.12)Nous en déduisons l'inéquation suivante :n > 0.89.s (2.13)On peut donc en déduire une règle de filtrage pour le sous échantillonnage desimages:Pour sous échantillonner une image d'un facteur de décimation s entier, il fautappli<strong>que</strong>r, au moins, un filtre centré moyen de taille n carré 0,89.sLa décimation consiste alors à ne prendre qu'un pixel sur s pixels. Puis<strong>que</strong> lemas<strong>que</strong> de convolution doit être centré (pour ne <strong>pas</strong> changer le <strong>pas</strong> d'échantillonnage), lesvaleurs convenables pour n sont 3,5,7,9 etc ... Autrement dit :- pour réduire par s=2 ou 3 la taille d'une image, il faut appli<strong>que</strong>r un filtre moyen detaille n 2 =3x3.- pour réduire par 4 ou 5 la taille d'une image, il faut appli<strong>que</strong>r un filtre moyen detaille n 2 =5x5.- pour réduire par 6 ou 7 la taille d'une image, il faut appli<strong>que</strong>r un filtre moyen detaille n 2 =7x7.- et ainsi de suite ...Il s'agit d'un filtrage anti-repliement du spectre spatial des images. Si ce filtragen'est <strong>pas</strong> appliqué, des effets de moirage apparaissent sur l'image décimée. Ceci correspondà des hautes fré<strong>que</strong>nces repliées dans le domaine de fré<strong>que</strong>nce de l'image (de 0 à 1/2.[<strong>pas</strong>36


d'échantillonnage]), qui peuvent perturber l'appariement des images par la méthodepyramidale.2.5.2 Modélisation du mouvement global entre images.Le mouvement entre deux images aériennes <strong>que</strong> nous voulons détecter peut êtredéterminé si les deux hypothèses suivantes sont vérifiées ; d'une part, la réflectance deséléments de la scène se conserve (hypothèse de calcul du flot opti<strong>que</strong>) ; d'autre part, lesimages <strong>que</strong> nous apparions se recouvrent de manière importante (les images sont fortementcorrélées) et donc, un champ de déplacement peut être déterminé.Le champ de déplacement calculé sur la partie commune des images peut de plusêtre modélisé, car les images correspondent à des images aériennes. Nous pouvons doncdéterminer la transformation pro<strong>je</strong>ctive plane, qui relie ces images. Le champ dense devecteurs <strong>que</strong> nous cherchons à établir s'appelle plus couramment champ de disparitésstéréoscopi<strong>que</strong>. Il est constitué pour cha<strong>que</strong> pixel de l'image de référence, d'un vecteur quiindi<strong>que</strong> son déplacement dans la seconde image (voir figures 2.7 et 2.8).La mesure de déplacement d'un pixel ne peut <strong>pas</strong> être faite indépendamment de sonvoisinage. Un pixel en lui-même n'apporte <strong>pas</strong> une information suffisante pour identifierun déplacement. Il faut avoir recours à l'examen du voisinage d'un pixel pour trouver unvoisinage équivalent dans une autre image. Afin de trouver le déplacement (disparité) dupixel nous pouvons mesurer localement l'inter-corrélation entre les voisinages adéquats.Ce calcul étant effectué en tout pixel des images (nous voulons obtenir un champdense), il exige un temps considérable lors<strong>que</strong> l'on utilise un ordinateur classi<strong>que</strong> actuel. Ils'agit de la partie la plus complexe, et la plus coûteuse en temps de calculs, de l'algorithmepyramidal. C'est sur l'étude et l'accélération d'une telle mise en correspondance <strong>que</strong> se sontportés nos travaux. Il s'agit d'une mesure du flot opti<strong>que</strong> entre images [Bér99].Il est souvent mentionné le fait <strong>que</strong> les méthodes de calcul du flot opti<strong>que</strong>,constituent un problème mal posé. En effet, l'hypothèse sous-jacente à ces méthodes estqu'il y a une conservation spatiale et temporelle de la réflectance des éléments pro<strong>je</strong>tés dela scène. Un ob<strong>je</strong>t, par hypothèse, est reconnaissable, car son aspect (sa perceptionvisuelle) ne se modifie <strong>pas</strong> au cours des prises de vue. Cette hypothèse n'est pres<strong>que</strong> jamaisvérifiée en toute rigueur. En effet, l'apparence d'un ob<strong>je</strong>t dépend certes des conditionsd'éclairage, mais également de la position d'observation, qui va changer entre les deuxprises de vue.Par ailleurs, l'algorithme chargé de reconstituer le flot opti<strong>que</strong> doit être rendurobuste aux variations d'éclairement et aux différentes perturbations opti<strong>que</strong>s (enparticulier l'occultation [Int94]) afin d'agrandir le champ d'application de la méthode.37


Les images aériennes de la figure 2.7 présentent, outre la transformation pro<strong>je</strong>ctiveliée au mouvement de la caméra, des différences importantes de contraste. Le calcul de flotopti<strong>que</strong> de la figure 2.8, correspondant aux images de la figure 2.7, a toutefois pu êtreeffectué [LeC97]. Le champ de disparité présente pour ces images une composante derotation importante.Figure 2.7 : Exemple d'images aériennes du CEA.Figure 2.8 : Champ de disparité déduit des images de la figure 2.7 ; le mouvement indi<strong>que</strong>la façon de transformer l'image de gauche, pour l'amener sur l'image de droite.38


Il faut pouvoir être capable de donner au champ calculé un indice de confiance, quipermette de vérifier, a posteriori, la justesse de l'hypothèse de flot opti<strong>que</strong>. C'est dans cebut qu'une modélisation du champ a été choisie comme partie constituante de l'algorithmepyramidal.Si l'on fait la seconde hypothèse <strong>que</strong> le champ est modélisable, puis<strong>que</strong> nousconnaissons un modèle de déplacement de caméra, et si le champ déterminé par la méthodede flot opti<strong>que</strong> ne correspond <strong>pas</strong> bien au modèle de déplacement, alors soit notre modèlepro<strong>je</strong>ctif est imparfait, soit le champ calculé sous l'hypothèse du flot opti<strong>que</strong> est mis endéfaut.Pour une certaine classe d'images (aériennes pour la<strong>que</strong>lle notre modèle a étéconçu) le modèle est adéquat. Ainsi, si la convergence de l'algorithme n'a <strong>pas</strong> lieu, nous enconcluons <strong>que</strong> le calcul du champ de disparité n'est <strong>pas</strong> fiable, car sans doute l'hypothèsedu flot opti<strong>que</strong> sur la<strong>que</strong>lle il est basé, n'est <strong>pas</strong> vérifiée. La méthode de descente degradient nous fournit en effet un indice de conformité entre le modèle et le champexpérimental (indice de corrélation globale).2.5.3 Quantification des paramètres : ajustement du champ par le modèle pro<strong>je</strong>ctif.À cette étape, nous disposons de deux éléments. D'une part un champ de disparitémesuré, et d'autre part de l'énoncé d'un modèle de transformation pro<strong>je</strong>ctive globale entreles images (implicite ou explicite). Le champ de vecteurs disparité est cohérent (lemouvement des pixels n'est <strong>pas</strong> indépendant). Ce champ provient de la quantification d'undéplacement tridimensionnel de la caméra, mesuré par une méthode de flot opti<strong>que</strong>. Latransformation pro<strong>je</strong>ctive plane qu'il décrit, peut donc être identifiée.Il s'agit à cette étape de déterminer une série de paramètres, qui décrivent toutautant <strong>que</strong> le champ de vecteurs, la transformation entre les images. Le modèle dedéplacement est pro<strong>je</strong>ctif, donc non linéaire. L'algorithme de descente de gradientpermettant l'approximation des paramètres, est par consé<strong>que</strong>nt un algorithme itératif.L'algorithme de descente de gradient nécessite l'estimation de paramètres initiaux(solution initiale). Celui-ci trouve, dans le plan constitué par les dérivées partielles dumodèle, la solution optimale la plus proche de la solution initiale. L'optimalité est définieau sens de la distance choisie pour métri<strong>que</strong> de l'espace des dérivées partielles.L'algorithme le plus couramment utilisé est l'algorithme de moindres carrés, qui est optimalau sens d'une distance quadrati<strong>que</strong>. Le choix d'une distance quadrati<strong>que</strong> donne lieu à unalgorithme des moindres carrés non linéaire (Non Linear Least Square ou NLLS [Pre92])du fait de la nature pro<strong>je</strong>ctive du modèle de transformation recherché.La solution vers la<strong>que</strong>lle converge l'algorithme est correcte si les paramètresinitiaux se trouvent proches de la solution ; sinon une solution erronée (minimum local) ou39


aucune solution ne sera trouvée. Un paramètre de mesure d'erreur (coefficient dedétermination) peut être toutefois calculé. Cet indice permet de juger de la validité de lasolution. Il mesure la distance statisti<strong>que</strong> du champ modélisé par rapport au champexpérimental de disparité. Nous sommes donc à même de déduire si l'algorithmed'approximation a convergé vers une solution, juste, erronée, ou s'il n'a <strong>pas</strong> convergé dutout (divergence). La plupart des difficultés de convergence, si le modèle proposé estcorrect, est liée à une estimation incorrecte des paramètres initiaux.L'approche pyramidale, de la résolution la plus basse à la résolution la plusimportante (coarse to fine), favorise la convergence d'un tel algorithme. En effet, le moduledes vecteurs constituant le champ étant, à la résolution initiale, divisé par le facteur deréduction d'image, c'est un faible déplacement apparent (correspondant à un mouvementréel important à la résolution d'origine) <strong>que</strong> nous approximons tout d'abord sur les images(réduites). Les paramètres estimés pour la première phase de l'algorithme d'estimation (dumodèle) peuvent donc être constitués par <strong>ceux</strong> de la transformation identité. Au fur et àmesure des itérations de l'algorithme pyramidal, un mouvement relatif de plus en plusfaible est à approximer.Estimer la transformation identité à l'initialisation (première itération del'algorithme pyramidal) peut se faire si le mouvement apparent entre les images est "faible"(ce qui pourra être vérifié par la convergence). Dans les autres itérations de l'algorithme dela figure 2.5, on réin<strong>je</strong>cte (si l'approximation a convergé vers une solution correcte) lesparamètres de la transformation déterminés à l'étape précédente.En consé<strong>que</strong>nce, il apparaît alors qu'au cours des itérations de l'algorithme, lesparamètres de la transformation pro<strong>je</strong>ctive sont affinés. Une correspondance entre lesimages est aussi établie (recalage pro<strong>je</strong>ctif). Il faudra un moyen de mesurer la qualité del'estimation. Cela <strong>pas</strong>se par l'application de la transformation déterminée (constructiond'une mosaï<strong>que</strong> [Sze96]), et par l'évaluation quantitative de la justesse de cettetransformation.2.5.4 Superposition des deux images (mosaï<strong>que</strong>) - Vérification qualitative del'appariement.À cette étape, une transformation pro<strong>je</strong>ctive est estimée. L'opération appliquée alorsconsiste à transformer l'image à apparier, pour la superposer à l'image de référence (voirfigure 2.9). On appli<strong>que</strong> sur l'image à apparier la transformation estimée précédemment.Plusieurs algorithmes (de déformation d'images ou "warping" en anglais) permettent detransformer une image à l'aide d'une transformation géométri<strong>que</strong>. Il faut en effetreconstruire l'image après avoir appliqué la transformation. On peut avoir recours à une40


interpolation bilinéaire voire spline-bicubi<strong>que</strong>. Toutefois, la méthode d'approximation auplus proche voisin est celle qui se prête le mieux à la rapidité et à la simplicité des calculs 9 .L'avantage d'une telle superposition, est surtout pour l'oeil humain (l'opérateur) quipeut apprécier très finement la justesse des paramètres approximés (voir la continuité desconstituants de figure 2.9). Mais puis<strong>que</strong> nous avons comme ob<strong>je</strong>ctif de faire un calculautomati<strong>que</strong>, et sans intervention d'un opérateur, il nous faudra quantifier la justesse de lamise en correspondance à l'aide d'un estimateur.Figure 2.9 : Mosaï<strong>que</strong> du recalage pro<strong>je</strong>ctif des images de la figure 2.6.2.5.5 Vérification quantitative de qualité de l'appariement.La superposition - mosaï<strong>que</strong> - des deux images est un moyen pour l'opérateurhumain de juger de la qualité de l'appariement. Mais il s'agit d'une appréciation sub<strong>je</strong>ctive,puis<strong>que</strong> visuelle. Pour effectuer une mesure précise, on appli<strong>que</strong> les paramètres pro<strong>je</strong>ctifsapproximés. Puis, l'opérateur d'inter-corrélation est calculé sur la totalité des images. Biensûr, on ne peut calculer cet opérateur <strong>que</strong> sur la zone de recouvrement des deux images. Onévalue ainsi un coefficient global de ressemblance entre images.L'inter-corrélation est un opérateur normalisé (voir formule 2.8). Quel <strong>que</strong> soit lenombre de pixels qui se recouvrent entre les deux images, et <strong>que</strong>lle <strong>que</strong> soit la résolutiond'image, le coefficient de qualité sera valable et comparable. Ainsi, il peut être utile pour9 Elle ne nécessite aucune opération arithméti<strong>que</strong> sur les pixels.41


juger de la convergence de l'algorithme. La valeur du coefficient est toutefois trèsdépendante du contenu de l'image. Les images ne se ressemblent <strong>que</strong> partiellement du faitde la distance spatiale et temporelle qui sépare les prises de vue.Pour l'algorithme de mise en correspondance, si le coefficient d'inter-corrélation estmeilleur, le modèle pro<strong>je</strong>ctif calculé à cette étape sera pris en compte. Sinon la résolutionest augmentée. En effet, à une sous résolution donnée (par exemple si les images sontréduites 8 fois), on ne peut obtenir une précision de calcul qu'au facteur de réduction près(8 pixels). Les vecteurs constituant le champ de disparité ne correspondent qu'à uneapproximation au facteur de réduction près (dans un bloc de pixels 8 par 8). Augmenter larésolution consiste donc à déterminer un champ plus exact, et donc affiner la précision del'approximation du modèle pro<strong>je</strong>ctif.Si la résolution ne peut être améliorée, nous sommes donc à la résolution originale.À cette résolution le champ de vecteurs disparité est le plus finement approximé. On nepeut obtenir une précision supérieure au pixel. L'algorithme prend donc fin à la résolutioninitiale d'images.A la fin de l'algorithme (à la résolution d'origine), nous sommes en présence desparamètres de la transformation pro<strong>je</strong>ctive modélisée. Nous avons aussi à notre dispositionun champ dense de vecteurs disparité <strong>dont</strong> la précision d'estimation est faite au pixelprès 10 . Enfin, nous avons le coefficient de qualité de la mise en correspondance d'images(recalage).Ce coefficient dépend du contenu des images (le contenu des images n'est <strong>pas</strong>identi<strong>que</strong>). Toutefois, pour certaines d'images se ressemblant, il est possible de choisir unseuil de qualité (40% semble être un bon seuil), permettant de juger à la fin des étapes del'algorithme, de la validité du recalage. Si le seuil n'est <strong>pas</strong> franchi, c'est <strong>que</strong> les imagesprésentées ne sont <strong>pas</strong> conformes aux hypothèses <strong>que</strong> nous avions formulées enconstruisant notre algorithme.Pour une implantation efficace de cet algorithme, il faut toutefois s'assurer de larobustesse de celui-ci aux conditions réelles de notre application. Il faut se rendre tolérantaux variations d'illumination ambiante de la scène par exemple. Diverses contraintes sont àrespecter dans l'implantation de l'algorithme pour satisfaire les conditions réelles de prisede vue.10 Les vecteurs constituant le champ de disparité indi<strong>que</strong>nt une correspondance de chacun des pixels de l'unedes images, vers l'autre image.42


2.5.6 Invariance à la luminosité ambiante constituant le traitement préalable.Lors<strong>que</strong> l'on fait un calcul de flot opti<strong>que</strong>, outre les problèmes de contraste, il fautau préalable se rendre invariant à l'illumination ambiante de la scène [Gro98]. On peutenvisager de traiter les images avec des opérateurs d'ordres supérieurs. Par exemple, ungradient, ou un Laplacien, sont du fait de leur nature différentielle, des opérateurs qui sontinsensibles à la variation d'éclairement de la scène. On peut donc envisager, au lieu detraiter des images de luminance, de traiter des images de gradient (contour) ou de dérivéeseconde (courbure). Toutefois, d'un point de vue fré<strong>que</strong>ntiel, ces opérateurs sont des filtres<strong>pas</strong>se-haut. Ils éliminent les basses fré<strong>que</strong>nces des images (<strong>dont</strong> la composante continueambiante) et ne laissent dans l'image <strong>que</strong> les hautes fré<strong>que</strong>nces. L'inconvénient ma<strong>je</strong>ur dece pré traitement, et <strong>que</strong> la mise en correspondance s'effectuera y compris sur le bruit(haute fré<strong>que</strong>nce) <strong>que</strong> génère le dispositif opti<strong>que</strong>. C'est donc une solution très peu robuste.Une solution opposée consiste à traiter la luminance des images, et mêmeéventuellement à effectuer une intégration (<strong>pas</strong>se-bas) des images afin de traiter lescomposantes de basses fré<strong>que</strong>nces des images (régions). C'est une méthode beaucoup plusrobuste, mais qui suppose <strong>que</strong> l'on se rende invariant au niveau continu des images(ambiant) et à la dynami<strong>que</strong> de la distribution (histogramme) des réflectances des images.Un traiteur d'image dira qu'il faut faire une correction préalable de gain et d'offset desimages. Un statisticien dira qu'il faut normaliser l'image en moyenne, et en variance.Diverses méthodes permettent cette correction. Dans notre contexte, et étant donnéla grande durée qui peut séparer la prise de vue des deux images à apparier, nous avonsopté pour une normalisation a priori des images. C'est-à-dire, <strong>que</strong> <strong>que</strong>lle <strong>que</strong> soit l'image àtraiter, nous ne cherchons <strong>pas</strong> à ramener la luminance de la seconde image, sur laluminance de la première, mais nous traitons les deux images en leur donnant un éclairagestandard. On peut se ramener à un tel éclairage standard, car on suppose <strong>que</strong> les deuximages ont un contenu très similaire. En les rendant similaires par leur luminosité ambiante(sans quoi le calcul du flot opti<strong>que</strong> ne peut être réalisé), on peut supposer <strong>que</strong> l'on pourracomparer les ob<strong>je</strong>ts qu'elles contiennent par la ressemblance des luminances.L'éclairage standard est défini par un offset de 128 (l'image est en 256 niveaux degris) et par un gain tel <strong>que</strong> 3 déviations par rapport à l'offset de l'histogramme doivent êtrecomprises entre 0 et 255. Cette normalisation est tout à fait arbitraire (on peut choisir unautre éclairage standard), mais il conditionne les traitements qui vont être effectués par lasuite, et constitue donc une hypothèse de travail. Comment définissons nous alors l'offsetet la déviation ?L'offset peut être calculé comme la moyenne d'intensité sur l'image. La déviationsera alors standard, et sera constituée par la variance de l'image. Ces grandeurs sont alorsdéfinies par :43


Offset moyen = 1 N 2∑ U ij (2.14)(i,j)∈imageDéviation = 1 N∑(i,j)∈image( U ij − offset)2(2.15)Si dans la formule (2.15) offset=offsetmoyen la déviation est alors la déviationstandard ou écart type (la racine carrée de la variance).Des recherches ont montré <strong>que</strong> si l'on prend pour offset la médiane de l'image, lanormalisation est plus robuste [Pre92]. La médiane définit le mode d'une distributionmodale, et se comporte mieux <strong>que</strong> la moyenne dans le cas d'une distribution multimodaleou modale bruitée. Le médian est bien plus immune au bruit.Le médian est défini par le niveau d'intensité de l'image tel qu'il y ait autant de pixelplus clairs ou plus sombres (ou égaux) au niveau médian. C'est le niveau de l'histogrammede l'image qui délimite l'équirépartition des intensités autour de celui-ci. Si l'offset estchoisi comme la médiane d'image, la déviation est alors une déviation par rapport auniveau médian, et l'on peut constater <strong>que</strong> la normalisation standard des images conduit àune bien meilleure invariance par rapport à l'illumination de la scène. On peut définirl'offset médian comme :Offset median = histogramme 1/2 (2.16)Toutefois, il existe une mesure plus fiable de l'offset de l'image. Cette mesure estpartie de la constatation suivante. Si l'on prend le niveau d'intensité le plus bas del'histogramme (minimum de l'image) et le niveau d'intensité le plus haut de l'histogramme(maximum de l'image) on pourrait définir le centre de l'histogramme par la moyennearithméti<strong>que</strong> suivante :Offset min max = maximum image + min imum image2(2.17)Toutefois une telle mesure est très sensible au bruit dans l'image, les minimum etmaximum étant des moments d'ordre 0. Une telle mesure est très peu précise. Alors, de lamême façon <strong>que</strong> nous avons défini le médian dans la formule (2.16), nous pouvons définirle centre de la distribution par une mesure plus robuste :Offset centre = histogramme 3/4 + histogramme 1/42(2.18)44


Cette mesure de l'offset de l'image concilie les propriétés de précision d'un calcul demoyenne (de la formule 2.14) et la robustesse d'un calcul médian (comme dans 2.16). Nousavons pu constater expérimentalement, la très grande stabilité d'une normalisation parrapport à ce centre robuste d'histogramme.Cet offset est défini, par la moyenne arithméti<strong>que</strong> entre les niveaux qui représententle quart de la distribution des pixels, et le niveau qui représente les trois-quarts de ladistribution. Si Offset=Offsetcentre dans la formule (2.15), on obtient la déviation parrapport au centre de la distribution. La mise à un éclairage standard des images consistealors à retrancher Offsetcentre à l'image, à multiplier l'image par un facteur128/(3.Deviationcentre), et à lui ajouter 128. Deviationcentre est définie par :Déviation centre = 1 N∑(i,j)∈image( U ij − offset centre )2(2.19)Si l'on avait considéré la déviation de la formule (2.15) avec Offset=Offsetmoyen,la normalisation à un éclairage standard aurait consisté à ramener la moyenne de l'image à128, et si la distribution de l'histogramme était Gaussienne d'écart type σ, à ramener 3.σentre les niveaux de luminance 0 et 128. Il faut préciser <strong>que</strong> ce choix n'a <strong>pas</strong> été fait auhasard, car dans le cas d'une distribution Gaussienne, 3.σ représente aux alentours de99.9% de la distribution (les statisticiens connaissent ce calcul, puis<strong>que</strong>, pour qu'uneméthode soit réputée fiable, on considère <strong>que</strong> 3.σ de la distribution des résultats doiventêtre corrects).On peut considérer qu'après une telle normalisation à un éclairage standard,l'histogramme de l'image est d'une part bien centré dans la dynami<strong>que</strong> des niveaux de gris(de 0 à 255), et <strong>que</strong> d'autre part, la distribution autour du centre de l'histogramme est bienrépartie puis<strong>que</strong> la pres<strong>que</strong> totalité de la distribution s'y trouve située (à 1/1000 près). C'estune base de travail, qui va permettre de traiter les images avec un étalonnage précis desniveaux de gris de l'image. Il s'agit d'une correction linéaire de l'histogramme de l'image(aux saturations éventuelles près).45


2.6 Contraintes de notre application, le pro<strong>je</strong>t SYRAR.Notre travail s'inscrit dans un pro<strong>je</strong>t de conception et de réalisation d'un systèmetemps réel pour la mise en correspondance d'images aériennes. Ce pro<strong>je</strong>t se nommeSYstème de Reconnaissance Automati<strong>que</strong> d'ob<strong>je</strong>ts en temps Réel 11 . Il a pour butd'effectuer une mise en correspondance d'une primitive d'image, dans deux images. L'uneest par avance connue, car son acquisition est faite par un repérage préalable (imaged'archives). La seconde est prise lors d'une mission, et la primitive qui avait été désignéedans la première image, doit être repérée dans la deuxième, dans un temps qui ne doit <strong>pas</strong>dé<strong>pas</strong>ser la durée d'une seconde (temps réel très strict). Les contraintes de l'application sontbasées sur les transformations géométri<strong>que</strong>s acceptables entre les images. Elles sont lessuivantes :- Rotation +/- 10 degrés- Translation +/- 10% de la taille de l'image- Zoom +/- 10%Ces contraintes géométri<strong>que</strong>s, et la contrainte temporelle, constituent le cahier descharges, et nous permettent d'élaborer une méthode d'appariement. Les images sont enniveaux de gris, et de taille 256x256. Les images pour les<strong>que</strong>lles nous effectuons une miseen correspondance sont, de plus, prises à des instants nettement distincts, et desmodifications de contraste et de contenu, interviennent naturellement. Le problème de miseen correspondance est donc très contraint, notamment aussi par la contrainted'embaquabilité du dispositif de traitement.Ce pro<strong>je</strong>t a bénéficié de l'apport d'une équipe de travail, et se déroule sur plusieursannées. Diverses méthodes ont été proposées dans le cadre de stages (Thierry Fernandez,Rodrigo Gilbert, Jane You, Kolman Yovo, Pawel Zgagacz, Christophe Demeze, ...), et detravaux de thèse (Dhellier F.). Notre travail s'inscrit donc dans une continuité, et proposeun approfondissement de la problémati<strong>que</strong>, qui nous distingue des travaux précédents, tantpar l'approche proposée, <strong>que</strong> par les réalisations matérielles aux<strong>que</strong>lles il a donné lieu.L'énoncé des contraintes de l'application nous permet d'affirmer qu'à unetransformation géométri<strong>que</strong> près, les images sur les<strong>que</strong>lles nous travaillons sont corrélées.Autrement dit, lorsqu'une personne voit les images <strong>que</strong> l'on traite, elle peut reconnaître unepartie commune, et distinguer leurs différences et leurs ressemblances. Les deux images,puisqu'elles se ressemblent, sont en partie identi<strong>que</strong>s par leur contenu. Ces deux images serecouvrent de façon importante (près de 70% de recouvrement). Ceci n'exclut <strong>pas</strong> le fait<strong>que</strong> l'ob<strong>je</strong>t <strong>que</strong> l'on désigne dans l'image de référence, ne fasse plus partie de la secondeimage.11 Ce pro<strong>je</strong>t est soutenu par le Commissariat à l'Énergie Atomi<strong>que</strong> (CEA)46


Une méthode pour résoudre le problème peut consister à choisir un ob<strong>je</strong>t repérédans la première image, et tenter de le localiser dans la seconde image. Une méthode plusrobuste peut consister à reconnaître le contexte visuel de l'ob<strong>je</strong>t à identifier, et à recherchernon <strong>pas</strong> l'ob<strong>je</strong>t en lui-même, mais le contexte au<strong>que</strong>l il appartient. Ainsi, même si l'ob<strong>je</strong>t àidentifier disparaît lors de la seconde prise de vue, une extrapolation permettra de designerl'endroit où l'on aurait dû trouver la correspondance visuelle. La vision humaine fonctionnede cette façon, car un ob<strong>je</strong>t recherché est souvent associé à son contexte, et toute personnepeut affirmer "l'ob<strong>je</strong>t aurait dû se trouver à telle place" en voyant deux images qui serecouvrent.2.7 Remar<strong>que</strong>s.Dans ce chapitre, nous avons rappelé les bases de la formalisation d'une méthodegénéri<strong>que</strong> pyramidale permettant la mise en correspondance d'images aériennes. Un certainnombre d'hypothèses ont été formulées tenant compte de la spécificité de la visionaérienne. Le contexte de nos travaux a été présenté, et les contraintes du pro<strong>je</strong>t ont étéénoncées. Cette méthode généri<strong>que</strong> est reprise dans le chapitre suivant, tenant compted'une approche plus appliquée aux contraintes d'un système de vision, situé dans uncontexte réel.Ce chapitre a été l'occasion de définir une approche pyramidale généri<strong>que</strong> de miseen correspondance d'images. L'énoncé des contraintes liées au contexte de nos travauxpermet d'en préciser les éléments. Chacune des hypothèses donne lieu à un traitement <strong>que</strong>nous avons mis au point :- filtrage pour la gestion de la pyramide d'image.- normalisation des images pour respecter l'hypothèse de flot opti<strong>que</strong>.- modèle géométri<strong>que</strong> qui conditionne l'algorithme d'appariement.- construction d'une mosaï<strong>que</strong> qui permet la quantification de la qualité du recalage.- méthode d'approximation bidimensionnelle du flot opti<strong>que</strong> (moindres carrés 2D).- etc ...Par la suite, il faut mettre en oeuvre des choix d'algorithme, paramétrer <strong>ceux</strong>-ci afinqu'ils donnent des résultats satisfaisants dans le cadre de travail qui a été défini. Un premier<strong>pas</strong> vers la définition d'une méthode robuste a été fait, puis<strong>que</strong> l'on sait se rendre invariantà l'éclairage ambiant. C'est une condition préalable à toute autre ébauche de réalisation. Onne peut en effet comparer deux images <strong>que</strong> si elles sont placées dans les mêmes conditionsde luminosité. D'autres caractéristi<strong>que</strong>s de la méthode ont été définies qui autorisent uncalcul fiable sur des images réelles. C'est autant une définition précise de notre méthode,<strong>que</strong> les critères de robustesse, la justification de paramètres (pour le calcul automati<strong>que</strong>)qui seront définis dans le chapitre suivant.47


La méthode de mesure du flot opti<strong>que</strong> entre images est un point délicat del'algorithme. Une étude poussée a été faite sur la réalisation de celui-ci. Une fois cettemesure effectuée, la modélisation du champ de disparité peut être entreprise. Il y a doncdeux niveaux dans la hiérarchie des algorithmes de vision. La mesure du flot opti<strong>que</strong> sesitue au bas niveau. Le niveau intermédiaire est constitué par une extraction decaractéristi<strong>que</strong>s (paramètres) de ces images. Nous sommes à même d'extraire <strong>que</strong>l<strong>que</strong>sparamètres de la mesure, qui caractérisent le mouvement de la caméra <strong>que</strong> l'on veutidentifier. L'obtention de ces <strong>que</strong>l<strong>que</strong>s paramètres physi<strong>que</strong>s qui décrivent le mouvement,ouvre la voie à un niveau supérieur qui sera constitué par une prise de décision. Notreméthode couvre donc les deux niveaux inférieurs dans le classement des algorithmes devision (bas et intermédiaire).C'est dans le but <strong>que</strong> des fondations solides permettent une prise de décision fiable,<strong>que</strong> nous nous situons délibérément dans les deux niveaux inférieurs des méthodes devision. La prise de décision est du domaine de l'intelligence artificielle (IA) et de la fusionde données multicapteur, et l'exploitation des résultats obtenus ne sont <strong>pas</strong> le but de notrerecherche. Nous avons toutefois, à défaut d'exploiter les résultats (paramètres dumouvement), donné une interprétation de <strong>ceux</strong>-ci qui permet de comprendre la manière<strong>dont</strong> ils peuvent être utilisés.48


Chapitre 3. Mise en oeuvre d'une méthode d'appariementd'images.49


Dans le chapitre précédent, nous avons décrit la problémati<strong>que</strong> d'appariement dansle cas de mise en correspondance d'images aériennes. Nous avons précisé le cadreformalisé du domaine de la vision aérienne, et le contexte dans le<strong>que</strong>l se situent nostravaux. Ce nouveau chapitre va nous permettre de mieux définir les choix <strong>que</strong> nous avonsfaits, pour satisfaire les contraintes de notre application, et sélectionner parmi les méthodeset algorithmes, <strong>ceux</strong> qui permettent d'élaborer notre propre système de vision. L'algorithmegénéral pyramidal, décrit au chapitre précédent, est ici repris et détaillé par notre propreapproche. Les choix de méthodes sont souvent guidés par des soucis de complexitétemporelle, et de réalisabilité matérielle. Lors<strong>que</strong> nous concevons un algorithme, lacontrainte temporelle de notre réalisation, impose <strong>que</strong> l'algorithme ait une transpositionmatérielle aisée. Ce chapitre reprend la structure du précédent en en détaillant lesconstituants.3.1 Énoncé de la méthode d'appariement d'images aériennes.La méthode algorithmi<strong>que</strong> d'appariement global d'images aériennes est donnée parle synopti<strong>que</strong> (figure 3.2). Elle peut être énoncée de la manière suivante.La méthode apparie deux images (Im1 et Im2) en suivant un processus multirésolution(pyramidal) [Lec97]. Elle débute par un sous échantillonnage initial, ce quicorrespond à la plus basse résolution (typi<strong>que</strong>ment 32x32). Elle finit avec la résolution laplus élevée (avec les images originales). Un vecteur de déplacement est ainsi déterminépour cha<strong>que</strong> pixel de l'image Im1. Ce processus de calcul par étapes de recalage pro<strong>je</strong>ctifest présenté sur la figure 3.1. La première étape (à la plus basse résolution) estime toutd'abord un vecteur approximatif, puis la composante résiduelle est affinée aux résolutionsplus élevées.yHauteM ˜ r" x,ij x + M ˜ r" y,ij yIntermédiaireM ˜ r' x,ij x + M ˜ r' y,ij yBasse résolutionM ˜ rx,ij x + M ˜ ry,ij yxFigure 3.1 : Estimations successives d'un vecteur disparité (parmi le champ) par étapespyramidales de recalage pro<strong>je</strong>ctif.51


A une résolution donnée les étapes suivantes sont effectuées :(1&2) Calcul du champ de disparité entre l'image 1 et l'image 2. Il est effectué en deuxphases horizontales et verticales indépendantes 12 , qui permettent d'obtenir les composantesrespectives du champ. C'est l'opération la plus coûteuse et délicate de l'algorithme (il s'agitd'un calcul de flot opti<strong>que</strong>). Nos travaux se sont principalement portés sur l'étude d'un telcalcul. Il est réalisé dans notre cas, par l'algorithme de programmation dynami<strong>que</strong> <strong>que</strong> nousdétaillerons. C'est sur l'étude de la formulation, des optimisations logicielles et matérielles,de l'ajustement des paramètres (ou poids), et l'évaluation de performances, <strong>que</strong> nousconsacrons une grande part de ce manuscrit.(3) La somme vectorielle des composantes obtenues précédemment, est effectuée. Cecipermet d'obtenir un champ de vecteurs bidimensionnels (flot opti<strong>que</strong>).(4) Approximation du champ de vecteurs par une transformation globale pro<strong>je</strong>ctive plane.Cela permet de caractériser les paramètres physi<strong>que</strong>s (a) de déplacement de la caméraentre les deux prises de vue.(5) Pro<strong>je</strong>ction (warping) de la première image sur la seconde à l'aide des paramètres (a)estimés précédemment.(6) Calcul d'un coefficient r de corrélation entre la première image recalée, et la seconde.- Si le coefficient r est plus élevé <strong>que</strong> le précédant (initialement 0), l'image 1pro<strong>je</strong>tée à cette étape, est conservée pour les traitements qui suivent.- Sinon, nous améliorons la résolution des images, en prenant en compte lameilleure transformation pro<strong>je</strong>ctive estimée jus<strong>que</strong> là.12 Cette indépendance est autorisée par la propriété de séparabilité des composantes du champs vectoriel dedéplacement (flot opti<strong>que</strong>).52


a = paramètres ( Identité )r = 0, Im1 & Im2 à 32x32Im1, Im2Calcul des disparitéshorizontales et verticales (PD)Dx, DyDx, DySomme vectorielle des diparitésDijDijApproximation de transformationpro<strong>je</strong>ctive par moindres carrésa'Im1, Im2Recalage des imagesIm1', Im2Im1', Im2Calcul ducoefficient de corrélationr'(1&2)(3)(4)(5)(6)a, a' = vecteurs deparamètres de latransformation pro<strong>je</strong>ctiver, r' = coefficients decorrélationIm1, Im2 = imagesOUIr' > r?OUIIm1 = Im1'r = r' a=a'NONMeilleurerésolution?FINNONFigure 3.2 : Synopti<strong>que</strong> de la méthode d'appariement global d'images.53


Nous décrirons par la suite chacun des éléments qui composent cette méthoded'appariement. C'est une méthode globale, car les paramètres déterminés lors del'approximation des moindres carrés permet un recalage pro<strong>je</strong>ctif global pour les images.C'est une démarche qui nous distingue des travaux où ce sont des régions ou des blocsd'images qui sont appariés, souvent à l'aide de transformations affines (linéaires), pourréaliser une compensation locale de mouvement (cf. norme du Moving Picture ExpertGroup MPEG 1&2). Cette méthode a pour ob<strong>je</strong>ctif d'approximer le mouvement réel globaldu dispositif de prise de vue. Il n'est <strong>pas</strong> caractérisé par le mouvement des diversconstituants de la scène individuellement (mouvement local), mais par le mouvementglobal induit par le déplacement de l'ob<strong>je</strong>ctif de prise de vue. Tout mouvement particulierd'un ob<strong>je</strong>t par rapport au mouvement général de l'image, n'est <strong>pas</strong> considéré par notreméthode. Ces déplacements individuels de constituants de la scène ne seront <strong>pas</strong>modélisés, et sont donc considérés comme des défauts du champ de disparité.La compensation de mouvement à l'aide de blocs ou régions d'images, est souventfaite dans un but de compression de sé<strong>que</strong>nces d'images. Notre but, est d'effectuer unemesure physi<strong>que</strong> précise du mouvement de la caméra. Une méthode semblable à la notre,<strong>que</strong> l'on appli<strong>que</strong>rait sur des régions d'images, constituerait sans doute une méthode troplourde, pour être appliquée, par exemple, dans le cadre d'une compensation de mouvementpour la compression de sé<strong>que</strong>nces d'images. Elle donne toutefois des résultatsencourageant temporellement et qualitativement pour une compensation globale demouvement.3.2 Création de la pyramide d'imagesLa réduction de résolution des images est une opération de décimation. Elleconsiste à ne conserver qu'un pixel parmi un certain nombre dans un voisinage. Toutefois,nous avons démontré au chapitre précédent, <strong>que</strong> cette opération ne peut être effectuée sansun filtrage <strong>pas</strong>se-bas préalable. Pour réduire une image 256x256 en une image 32x32, cequi correspond à une réduction d'un facteur 8, il faut nécessairement appli<strong>que</strong>r un filtre deconvolution moyen de dimension 9x9. D'autres types de filtres de convolution sontenvisageables, mais le mas<strong>que</strong> de convolution moyen est le plus aisé et rapide à appli<strong>que</strong>r.Toutefois, comme nous le verrons par la suite, la méthode <strong>que</strong> nous appliquons,inspirée de l'Orthogonal Dynamic Programming (ODP) [Qué92], consiste à effectuer desbalayages d'images horizontaux et verticaux indépendants, afin de déterminer lescomposantes indépendantes horizontales et verticales du champ de mouvementbidimensionnel (flot opti<strong>que</strong>). Si l'on veut obtenir un champ de déplacement cohérent, etbien <strong>que</strong> l'appariement sur les diverses lignes (ou colonnes) d'images soit indépendant entreces lignes (ou colonnes) [Anc93], il apparaît nécessaire de corréler ces lignes (ou colonnes)entre elles.54


Nous appliquons un mas<strong>que</strong> de convolution, qui non seulement permet de souséchantillonnerles images, mais aussi de corréler les lignes (ou colonnes) entre elles. Celacontraint alors à appli<strong>que</strong>r notre méthode sur des images pseudo-stationnaires 13 . Il esteffectué un filtrage <strong>pas</strong>se-bas important sur les images, qui élimine le bruit des images, etrend les images traitées stationnaires dans la direction perpendiculaire à la recherche dumouvement. Pour effectuer une recherche horizontale de déplacement, il faut prendre encompte non <strong>pas</strong> une ligne isolée, mais un vecteur-ligne représentant une bande horizontalelarge de l'image. Les mas<strong>que</strong>s de convolution appliqués pour former des bandes d'images,se recouvrent de façon importante.Le filtrage <strong>que</strong> nous effectuons a donc deux fonctions utiles. Longitudinalement(horizontalement pour les lignes et verticalement pour les colonnes d'images), il permet deréduire correctement la dimension des images (pour respecter le théorème del'échantillonnage). Le même traitement est appliqué aux deux images à apparier.Perpendiculairement, il permet non seulement la réduction, mais en plus, il rend les imagesstationnaires dans cette direction (les lignes (ou colonnes) sont corrélées entre elles). Letableau 3.1 indi<strong>que</strong> des tailles convenables de mas<strong>que</strong>s de convolution moyen, <strong>que</strong> nousappliquons pour obtenir des bandes horizontales ou verticales à différentes résolutionsd'images.Facteur de réduction d'image Dimension longitudinale dumas<strong>que</strong> moyenDimension transversale dumas<strong>que</strong> moyen8 9 454 5 252 3 151 1 5Tableau 3.1: Dimension du mas<strong>que</strong> de convolution moyen permettant la constitution desous-résolution d'images.Nous avons en effet pu déterminer qu'un mas<strong>que</strong> transversalement 5 fois plus granddonne de bon résultat quant à la stationnarité des images, et à la cohérence du champ dedisparité obtenu. La dimension longitudinale respecte strictement le théorème del'échantillonnage.13 Une image stationnaire est une image <strong>dont</strong> les voisinages sont corrélés. Seule une image de synthèse peutposséder cette propriété. Une image non-stationnaire est un bruit décorrélé. Une image pseudo-stationnaireest une image qui possède des propriétés intermédiaires.55


3.3 Programmation dynami<strong>que</strong> monodimensionelle.L'algorithme de programmation dynami<strong>que</strong> [Bel57] emprunte son nom à undomaine où il a été appliqué initialement : l'étude de systèmes dynami<strong>que</strong>s. Il s'agit dedécrire un système, qui évolue selon des lois physi<strong>que</strong>s. Il permet dans le même ordred'idée d'optimiser sous contrainte, le calcul de tra<strong>je</strong>ctoires. Il a subi des évolutions, pourdes applications dans le domaine du traitement de la parole, avec l'adjonction de modèlesprobabilistes de locution (l'algorithme de Viterbi). La programmation dynami<strong>que</strong> permetde trouver dans un graphe, le chemin de correspondance optimal, selon un critère de coûtchoisi. La décision de parcourir un arc du graphe est guidée à cha<strong>que</strong> étape par un choixoptimal. Le fait qu'une décision optimale soit prise à cha<strong>que</strong> étape, <strong>que</strong>lles <strong>que</strong> soient lesconditions initiales, garantit l'optimalité globale de la solution 14 .L'algorithme de programmation dynami<strong>que</strong> permet en particulier de déterminer lechemin le plus court, pour la mise en correspondance de deux vecteurs constitués, dansnotre cas, par les luminances de deux lignes ou deux colonnes d'images. Il s'apparente auproblème du voyageur de commerce. En effet, une ligne ou une colonne de l'image définitun graphe 2D (matrice) orienté dans le<strong>que</strong>l nous cherchons un circuit hamiltonien [Min83](cha<strong>que</strong> noeud du graphe n'est atteint qu'une seule fois). Si l'on considère la matrice deprogrammation dynami<strong>que</strong>, formée par les distances élémentaires entre pixels, nouspourrons déterminer une distance globale (score) entre lignes (resp. colonnes) d'images,qui minimise la somme des distances locales affectée d'un coût. La distance élémentaire etle coût sont combinés dans une fonction choisie pour ses propriétés intéressantesconcernant notre application. Nous l'avons appelé fonction de coût. Elle favorise ledéveloppement de chemins diagonaux dans la matrice de programmation dynami<strong>que</strong>(ressemblance) et évite la divergence du chemin lors<strong>que</strong> deux zones d'images identi<strong>que</strong>ssont rencontrées. Ce sont des caractéristi<strong>que</strong>s qui favorisent la robustesse de l'appariement.Le score ou distance globale entre lignes (resp. colonnes) est déterminé dans le piredes cas en 2.N étapes (N étant la taille de la ligne). Il détermine, selon notre implantation(parallèle), la complexité algorithmi<strong>que</strong> du processus d'appariement. Le chemin ou circuitdéterminé dans le graphe (grille 2D de la matrice de programmation dynami<strong>que</strong>) permet dedéterminer, grâce à l'écart à la diagonale de la matrice, le vecteur de déplacement oudisparité stéréoscopi<strong>que</strong> de cha<strong>que</strong> pixel d'image.3.3.1 Formulation mathémati<strong>que</strong>.Soit la matrice de programmation dynami<strong>que</strong> constituée des distances élémentairesdij entre les éléments des vecteurs à apparier. Si l'on considère deux k èmes lignes (oucolonnes) des images U et V, formant les vecteurs Uk et Vk. Si l'on choisit commedistance élémentaire la distance L1 de Minkowski, dij est défini par :14 Selon le principe d'optimalité énoncé par Bellman.56


d ij = U ki − V kj (3.1)Il s'agit d'une distance élémentaire entre les luminances des pixels. Effectuer uncalcul de programmation dynami<strong>que</strong>, et rechercher le chemin optimal entre les vecteurs Uket Vk consiste à calculer le score tel <strong>que</strong> :score = Min ∑ d ij .C(s) (3.2)che min sLes chemins se développent depuis l'origine de la matrice de programmationdynami<strong>que</strong> (d00) et se terminent au dernier élément (dnn). Un chemin local peut sedévelopper dans l'une des 3 directions possibles (figure 3.3), <strong>que</strong> l'on nommeraorthogonale inférieure ou supérieure, ou diagonale (le graphe est orienté).Chemin associéà n élémentsE3 Chemins associésEst SE et Sud, à (n+1)élémentsSSEFigure 3.3 : 3 directions de développement d'un chemin local dans la matrice deprogrammation dynami<strong>que</strong>.Cha<strong>que</strong> élément de la matrice de programmation dynami<strong>que</strong> (noeud du graphe) nepeut être parcouru qu'une seule fois (on cherche un circuit hamiltonien). Si l'on considèreun cas symétri<strong>que</strong> de l'algorithme (le seul qui ait une utilité en traitement des images) C(s)est un coût local associé au développement d'un chemin. Il est identi<strong>que</strong> dans les deuxdirections orthogonales (symétrie). On définit la pénalité orthogonale par :γ= C(orthogonal)C(diagonal)(3.3)s correspond à une direction de développement du chemin. Si l'on recherche lechemin le plus court entre les deux vecteurs, ce rapport est compris dans l'intervalle ]1, 2[.Le choix correct de ce coût C(s), ainsi <strong>que</strong> de la distance dij, déterminera la robustesse, laprécision, l'optimalité de la solution du calcul de programmation dynami<strong>que</strong>, et la vitesse57


d'exécution (l'algorithme est piloté par les données images). Pour illustrer le calcul de cetalgorithme, nous présentons maintenant <strong>que</strong>l<strong>que</strong>s exemples, sur des images de synthèse.3.3.2 Exemples sur des images de synthèse : cas monodimensionnel.Dans les différents exemples <strong>que</strong> nous présentons, les images considérées sontmonodimensionelles. Elles représentent des sinusoïdes et des sinusoïdes distordues. Lamise en correspondance des images consiste donc à former deux vecteurs Uk et Vk (karbitraire) à partir de deux lignes d'images. Il s'agira ensuite, de calculer dij de la formule(3.1), et de former le score de la formule (3.2). Ce qui nous intéresse dans ces différentscalculs, est le chemin optimal représenté en noir dans la matrice (au centre d'un nuage gris,qui sera expliqué par la suite). Sur les axes sont figurés les vecteurs lignes qui constituentles données d'images à mettre en correspondance.58


a) IdentitéUUkiimage de référenceVVkj Calcul de programmationdynami<strong>que</strong>image à comparerFigure 3.4 : Mise en correspondance de deux images identi<strong>que</strong>sCe cas de figure présente un chemin optimal de correspondance entre les deuxvecteurs, qui suit une diagonale parfaite. La position du chemin indi<strong>que</strong> la correspondanceélasti<strong>que</strong> des éléments des vecteurs considérés. Ce chemin suivant la diagonale de lamatrice de programmation dynami<strong>que</strong> indi<strong>que</strong> <strong>que</strong> chacun des éléments des vecteurs, telsqu'ils se suivent, se correspondent exactement.59


) L'ajoutUUkiimage de référenceVVkj Calcul de programmationdynami<strong>que</strong>image à comparerFigure 3.5 : Mise en correspondance dans le cas d'un ajoutDans cet exemple, les sinusoïdes des deux images ont la même période. Elles ontété déphasées par rapport au bord de l'image (translation spatiale) ; et de plus, au milieu del'image à comparer, sept pixels ont été ajoutés. Le chemin est d'abord situé en dessous de ladiagonale de la matrice. Cela correspond au déphasage. Puis, à partir du milieu de l'image,le chemin subit un décrochement au-dessus du chemin initial (sous diagonal). Cedécrochement est de 7 unités au-dessus de la diagonale initiale (compté horizontalement).Ces 7 unités correspondent aux 7 pixels ayant été ajoutés dans l'image à comparer.Cet exemple met en évidence <strong>que</strong> le chemin de programmation dynami<strong>que</strong> peutnous renseigner, par l'écart par rapport à la diagonale de la matrice, sur l'ajout de pixelsentre les images. Il nous renseigne aussi sur l'importance du décalage (translation) entrecelles-ci. C'est en examinant le chemin optimal déterminé dans la matrice de60


programmation dynami<strong>que</strong>, <strong>que</strong> l'on trouve le vecteur de disparité (déplacement d'uneimage à l'autre) et donc le mouvement des pixels recherché.c) L'élisionUUkiimage de référenceVVkj Calcul de programmationdynami<strong>que</strong>image à comparerFigure 3.6 : Mise en correspondance dans le cas d'une élisionL'élision est le cas dual de l'ajout. Nous sommes dans les mêmes conditions <strong>que</strong>précédemment, avec deux images constituées de sinusoïdes de même période. Le chemininitial se situe en dessous de la diagonale (comme pour l'ajout). Puis, au milieu de l'image àcomparer, 7 pixels d'une image sinusoïdale ont été retirés. Le chemin dans la matrice subitdonc un décrochement de 7 unités en dessous de la diagonale initiale. L'écart à la diagonalede la matrice (relevé horizontalement) nous renseigne, pour cha<strong>que</strong> pixel, sur lacomposante horizontale du vecteur déplacement (disparité). Les images <strong>que</strong> l'on a conçuespour cet exemple ont une disparité purement horizontale. Le flot opti<strong>que</strong> entre les images61


est donc complètement déterminé par la mise en correspondance par programmationdynami<strong>que</strong> effectuée entre deux lignes <strong>que</strong>lcon<strong>que</strong>s de ces images.c) Le changement d'échelleUUkiimage de référenceVVkj Calcul de programmationdynami<strong>que</strong>image à comparerFigure 3.7 : Mise en correspondance dans le cas d'un changement de fré<strong>que</strong>nceDans ce cas de figure, les deux images contiennent des sinusoïdes de périodesdifférentes. Le chemin de programmation dynami<strong>que</strong> s'écarte de la diagonale d'unemanière linéaire. La pente de la droite (discrétisée) <strong>que</strong> suit le chemin, peut nousrenseigner sur le rapport des périodes des signaux comparés.Remar<strong>que</strong> : Tous ces exemples sont des cas particuliers de transformations élémentairesidentifiés par le calcul. On a mis en évidence la translation, l'ajout de pixel, l'élision depixels et le changement d'échelle. Ces transformations, combinées entre elles, permettentde comparer des signaux complexes, et de trouver un champ de vecteurs correspondant à62


une déformation élasti<strong>que</strong>. Il y a lieu de généraliser cette mise en correspondance afin depermettre la comparaison élasti<strong>que</strong> de signaux bidimensionnels (images réelles).3.3.3 Distance lumineuse : la fonction de coût.L'équation (3.2) fait apparaître une distance dij qui est fonction de la luminance despixels <strong>que</strong> nous mettons en correspondance. Cette distance est très caractéristi<strong>que</strong> duproblème <strong>que</strong> nous avons à résoudre par programmation dynami<strong>que</strong>.∑score = Min d ij .C(s)che min s(3.2) rappelNous avons à comparer des pixels d'images. La distance lumineuse doit donc avoircertaines propriétés.Les propriétés de la distance lumineuse sont les suivantes :- Une faible différence d'intensité (de l'ordre de U ki − V kj ≈ 10) doit conduire àune faible croissance de la distance lumineuse. Ainsi, le bruit, une légère différence decontraste entre images par exemples, ne perturberont <strong>pas</strong> la mesure. Cela renforce larobustesse de l'appariement. L'algorithme sera insensible par exemple, au bruit généré parla caméra.- Une forte différence d'intensité (de l'ordre de U ki − V kj ≈ 100) doit conduire àune saturation de la fonction de coût. dij.C(s) forme la fonction de coût, et il est inutiled'augmenter celle-ci au-delà d'un certain seuil. En effet, les pixels trop différents par leurluminance ne peuvent se correspondre (sous nos hypothèse). Les chemins qui ont un coûtmaximal ne participent <strong>pas</strong> à l'élaboration du chemin optimal dans la matrice deprogrammation dynami<strong>que</strong>. La saturation interviendra par exemple dans le cas d'un refletdans l'image.- Une variation moyenne d'intensité doit conduire à une croissance linéaire de lafonction de coût. Toutes les intensités des pixels (lorsqu'elles correspondent à une variationmoyenne) ont ainsi un poids égal vis-à-vis de la fonction de coût.- De plus, la distance doit être codée sur un nombre limité de bits (8, 16, 32) poursatisfaire un calcul en entiers 15 .15 Les calculs effectués en traitement d'images, sont la plupart du temps effectués sur des entiers. Celagarantit certaines performances sur les machines actuelles, bien <strong>que</strong> les calculs soient complexes. De plus, lesimages sont numéri<strong>que</strong>s, et donc les pixels les constituants sont codés sur des octets (8 bits, de 0 à 255).63


Toutes ces propriétés définissent assez bien ce <strong>que</strong> l'on appelle en traitement dusignal, une fonction de compression de dynami<strong>que</strong>. Parmi les fonctions mathémati<strong>que</strong>ssatisfaisant ces propriétés, nous avons choisi la suivante [Pis96] :⎧ ⎛ ⎛d ij = L min α. U ki − V kj ⎞⎞⎜,α⎪ ⎜⎟⎝ ⎝ 255 ⎠⎟⎨⎠⎪L(x) =δ(s). 1 − cos(π.x) +β(s)⎩⎪2(3.4)- α fixe le support d'excursion de la fonction de coût, et sa saturation.- δ fixe la dynami<strong>que</strong> de la fonction. Cela permet de représenter les valeurs de lafonction sur un nombre de bits fini, pour un calcul entier.- β permet <strong>que</strong> la fonction de coût ne soit <strong>pas</strong> nulle pour une différence nulleU ki − V kj . En effet, une fonction de coût qui prendrait une valeur nulle dans les troisdirections de développement de chemins engendrerait une divergence du chemin lors<strong>que</strong>deux zones d'images identi<strong>que</strong>s seraient comparées (d'où la nécessite d'un coût additif).Le rôle de la fonction est de limiter la dynami<strong>que</strong> de codage du coût local, afin defixer la sensibilité et la discriminance du coût, par rapport à la perception (niveaux deluminance des pixels). La figure 3.8 illustre les fonctions de coût orthogonales et diagonaleavec les poids <strong>que</strong> nous avons pu déterminer expérimentalement pour satisfaire autraitement de la base d'images <strong>dont</strong> nous disposons.605040302010-150 -100 -50 50 100 150Figure 3.8 : Fonctions de coût orthogonal (haut) et diagonal (bas) de l'algorithme deprogrammation dynami<strong>que</strong>. En abscisse U ki − V kj . En ordonnée dij.C(s).64


Cette fonction de coût est fonction de la luminance, et prend des valeurs discrètes etentières. Étant donné la dynami<strong>que</strong> de codage de celle-ci, la figure 3.8 laisse apparaître unefonction pres<strong>que</strong> continue.Nous avons pu déterminer expérimentalement qu'une pénalitéγ= C(orthogonal) = 4/3 donne de très bons résultats sur la base d'images <strong>dont</strong> nousC(diagonal)disposons. Il s'agit du rapport homothéti<strong>que</strong> des courbes de coût diagonal et orthogonal.Plus γ est grand, plus les chemins diagonaux sont favorisés. γ constitue une pénalitéorthogonale. La valeur choisie correspond à un équilibre entre le développement deschemins orthogonaux et diagonaux. γ agit comme une force de rappel du chemin (dans lamatrice de programmation dynami<strong>que</strong>), par rapport à la direction diagonale de la matrice.On recherche donc une ressemblance entre pixels.Nous avons vu dans le chapitre précédent <strong>que</strong> la variance des images était fixée defaçon à ce <strong>que</strong> 3.σ (3 déviations), soient placés entre 0 et 128. Si l'écart type des images Uet V est σ (identi<strong>que</strong> puis<strong>que</strong> les images ont un éclairage standard), l'écart type de ladifférence U ki − V kj est σ. 2. Nous avons pu déterminer expérimentalement <strong>que</strong> lasaturation, fixée par le coefficient α, est bien choisie lorsqu'elle correspond à 256. 2 /3.C'est-à-dire <strong>que</strong> la fonction de coût sature exactement à deux écarts types de la quantitéU ki − V kj . Cette saturation correspond à la valeur 120.7 (voir figure 3.8). D'oùα=3/traitées.2. Ce paramètre est fixé par l'étalonnage préalable, en luminance des imagesLe niveau maximum des deux fonctions de coût, qui correspond à la saturation de lafonction pour s=orthogonal, est fixé à 63. Les valeurs de la fonction de coût peuvent doncêtre codées sur 6 bits. Nous avons en effet choisi une fonction de coût prenant des valeursdiscrètes et entières. Cela peut trouver une explication dans le fait qu'il est admis <strong>que</strong> l'oeilhumain distingue 64 niveaux d'intensités lumineuses. Si la fonction de coût discrimine 64niveaux, on peut penser qu'elle permet d'obtenir un résultat au moins aussi précis <strong>que</strong> ce<strong>que</strong> pourrait voir l'oeil humain.On a choisi β(orthogonal) = 4 et β(diagonal) = 3 (dans le même rapport <strong>que</strong> γ).δ(s) est un coût multiplicatif, et β(s)un coût additif. Nous avons donc fixé dans le mêmerapport ces deux coûts.δ(s) est choisi tel <strong>que</strong> dij.C(orthogonal) prenne à son maximum lavaleur 63 (la fonction orthogonale utilise toute la dynami<strong>que</strong> de codage). Étant donné lechoix de γ, les valeurs de δ(s) se déduisent par le calcul de normalisation de la fonction decoût (à 64 niveaux).65


La fonction de coût détermine un comportement local optimal, pour l'appariementdes pixels d'images, pour toutes les combinaisons de pixels, prises deux à deux.L'algorithme minimise la somme des coûts locaux sur la globalité de la ligne, en formant lescore. La correspondance locale est validée par la minimisation d'une somme globale. Laméthode de calcul du flot opti<strong>que</strong>, est donc pour l'appariement de bas niveau (celui despixels), une méthode semi-globale. Ce n'est <strong>pas</strong> le cas des méthodes basées sur lacorrélation, qui sont locales (cf. chapitre 2).Les phénomènes d'occultation sont pris en compte par la programmationdynami<strong>que</strong>. Des exemples ont été donnés dans le cas de l'ajout et de l'élision de pixels.L'algorithme de programmation dynami<strong>que</strong> est donc particulièrement bien adapté à lamesure du flot opti<strong>que</strong> entre les images. Il permet d'obtenir un champ de vecteurs dedisparité dense, puis<strong>que</strong> le déplacement individuel de cha<strong>que</strong> pixel est obtenu.Si comme dans le cas des images monodimensionelles, le champ de disparité estobtenu directement par le calcul de l'algorithme de programmation dynami<strong>que</strong>, pourquoiest-il nécessaire d'employer une méthode pyramidale ? La réponse est la suivante.Le calcul du flot opti<strong>que</strong> ne peut être effectué, si on dispose d'un algorithme deprogrammation dynami<strong>que</strong> monodimensionnel, <strong>que</strong> si les images traitées se différencientpar une transformation <strong>dont</strong> les paramètres sont proches de la transformation identité, c'està-dire,si les images sont proches par leur contenu (corrélées). Des algorithmes deprogrammation dynami<strong>que</strong> mutidimensionnels sont envisageables [Vas98], mais ils ontune complexité algorithmi<strong>que</strong> élevée, et sont difficilement transposables à des dispositifsmatériels dédiés.La méthode pyramidale permet d'augmenter la portée spatiale, l'excursion du calculde programmation dynami<strong>que</strong>. Elle conserve de plus, dans la détermination du champ devecteurs, une précision égale au pixel. Ceci permet d'exploiter le résultat du champ devecteurs avec l'approximation d'un modèle de transformation continu, et d'obtenir lerésultat du calcul du modèle pro<strong>je</strong>ctif, avec une précision sub-pixel. Même si la disparitédes images est importante, la méthode pyramidale conserve la précision du calcul.Une formulation algorithmi<strong>que</strong> détaillée de l'algorithme de programmationdynami<strong>que</strong>, découlant de la formulation mathémati<strong>que</strong> sera donnée dans le chapitrecorrespondant à l'architecture du dispositif de vision (chapitre 5). La formulationalgorithmi<strong>que</strong> nous est propre, et ressemble peu à la définition récursive courante. Notrepropre formulation a une consé<strong>que</strong>nce immédiate sur l'adéquation de l'algorithme avecl'architecture proposée (A 3 C [Pis2000]). Une formulation récursive, telle qu'elle estcommunément exposée, ne s'adapte <strong>pas</strong> bien à une implantation matérielle. La formulationrécursive s'implante très bien dans des machines d'usage général, contenant une pile decalcul. Implanter l'algorithme dans du matériel, ou l'adapter à une formulation parallèlesuppose, pour être performant, de dérécursiver la formulation.66


3.4 Programmation dynami<strong>que</strong> orthogonale (bidimensionelle).Puis<strong>que</strong> nous avons fait le choix d'un algorithme de programmation dynami<strong>que</strong>monodimensionnel, et <strong>que</strong> le flot opti<strong>que</strong>, sans la contrainte d'alignement des images -contrainte épipolaire - est bidimensionnel, il nous faut étendre l'algorithme 1D. Ceciconduit au principe de la programmation dynami<strong>que</strong> orthogonale [Qué92].Il est admis, étant donné <strong>que</strong> le mouvement des pixels d'une image à une autre estindépendant en X et Y(séparabilité) [Anc93], <strong>que</strong> pour obtenir un champ de disparité 2D larecherche des composantes des vecteurs peut se faire indépendamment horizontalement etverticalement. La programmation dynami<strong>que</strong> orthogonale se base sur cette propriété.La programmation dynami<strong>que</strong> orthogonale, consiste à utiliser l'algorithme 1D, 2.Nfois, sur les lignes et colonnes d'images. Pour une étape déterminée, nous effectuons lamise en correspondance, à une résolution donnée, en X et en Y. Les deux composanteshorizontales et verticales, pour chacun des pixels, sont alors les composantes 2D de cha<strong>que</strong>vecteur de déplacement. Les calculs horizontaux et verticaux étant indépendants, ilspeuvent éventuellement être effectués simultanément (voir figure 3.9). C'est une fois <strong>que</strong>sont effectués les calculs 1D de programmation dynami<strong>que</strong>, horizontalement etverticalement, <strong>que</strong> le flot opti<strong>que</strong> bidimensionnel est obtenu. Il s'agit d'une sommevectorielle des composantes vectorielles obtenues horizontalement et verticalement. Lechamp de vecteurs 2D obtenu peut être alors approximé par le modèle pro<strong>je</strong>ctif.Il était aussi envisageable d'alterner les calculs de programmation dynami<strong>que</strong> danschacune des directions d'image, et d'alterner les recalages pro<strong>je</strong>ctifs en X puis en Y[Qué96]. Cela aurait rendu plus complexe l'approximation d'un modèle pro<strong>je</strong>ctif 2D devision et nécessité la mise en oeuvre double de l'algorithme des moindres carrés 1D.L'algorithme des moindres carrés <strong>que</strong> nous avons adapté, est bidimensionnel. Il est détaillépar la suite dans ce chapitre.L'avantage d'effectuer les mises en correspondance par programmation dynami<strong>que</strong>1D, horizontalement et verticalement, simultanément, est qu'aucune supposition n'est faitesur le déplacement préférentiel dans une direction privilégiée X ou Y. Le champ demouvement peut être arbitrairement complexe, dans les deux directions X et Yindifféremment. La figure 3.9 illustre la mise en correspondance d'images, en deux <strong>pas</strong>seshorizontales et verticales simultanées.67


Figure 3.9 : Programmation dynami<strong>que</strong> orthogonale effectuée en deux <strong>pas</strong>ses horizontaleet verticale indépendantes lors de l'appariement des images.La mise en correspondance 1D a beau être imprécise aux premières itérations del'algorithme pyramidal, le fait <strong>que</strong> nous recalions pro<strong>je</strong>ctivement les images, grâce à unmodèle de transformation pro<strong>je</strong>ctive plane, permet <strong>que</strong> le mouvement global 2D soit lerésultat de la convergence de la méthode. Rien ne différencie les directions X ou Yd'appariement. Les directions horizontales et verticales sont symétri<strong>que</strong>s du point de vue dela méthode d'appariement. Un champ de disparité stéréoscopi<strong>que</strong> 2D complexe peut êtreitérativement déterminé, avec une approximation globale du flot opti<strong>que</strong>.68


3.5 Modélisation du flot opti<strong>que</strong> par la méthode des moindres carrés.Au chapitre précédent, deux modèles équivalents de transformation pro<strong>je</strong>ctiveplane, explicite et implicite, ont été énoncés. Ils permettent de modéliser le flot opti<strong>que</strong>.Ces deux modèles proviennent de l'analyse du contexte de vision, dans le cas de prises devue aérienne. Les modèles obtenus permettent de déterminer à l'aide de <strong>que</strong>l<strong>que</strong>sparamètres, le mouvement global qui lie deux images corrélées. Les deux transformationsdécoulent du modèle de pro<strong>je</strong>ction de l'espace sur le plan image. Ces deux modèlesdonnent des résultats de transformation équivalents lors<strong>que</strong> l'on examine le recalagepro<strong>je</strong>ctif (warping) obtenu à la fin de l'algorithme pyramidal (mosaï<strong>que</strong>).Les paramètres obtenus, qui sont au nombre de 8 dans le cas implicite, et de 11dans le cas explicite, n'ont <strong>pas</strong> la même signification. Les paramètres de la transformationexplicite, sont plus directement reliés au mouvement tridimensionnel de la caméra. Ilspermettent aussi de comprendre plus simplement la nature des transformationsélémentaires issues du mouvement de la caméra.Si l'on utilise les 11 paramètres de la transformation explicite, <strong>ceux</strong>-ci n'étant <strong>pas</strong>indépendants, il se pose pour l'algorithme de moindres carrés un problèmed'indétermination. L'algorithme chargé de déterminer la valeur des paramètres se heurte àune redondance de paramètres (<strong>ceux</strong>-ci jouent des rôles similaires). Malgré cela, l'intérêtd'une transformation explicite est important. On peut en effet juger simplement de lapertinence des paramètres obtenus. Les valeurs précises des transformations élémentairesdécomposées sont obtenues à l'aide de l'algorithme global explicitement. Il est plus aisé decomprendre, et d'apprécier par une approche "rationnelle", la valeur numéri<strong>que</strong> destransformations élémentaires ainsi décomposées.La transformation explicite telle qu'elle a été énoncée au chapitre précédant ne peutêtre directement utilisée. Nous allons préciser son bon usage.3.5.1 Transformation pro<strong>je</strong>ctive explicitée.Le chapitre précédent nous a permis de formuler deux modèles pro<strong>je</strong>ctifs, parl'intermédiaire de deux transformations : l'une explicite et l'autre implicite. Les paramètresde la transformation pro<strong>je</strong>ctive explicite sont les suivants :69


- α angle de rotation- zx facteur d'échelle en x- zy facteur d'échelle en y- cx abscisse du centre de la rotation- cy ordonnée du centre de la rotation- tx translation horizontale- ty translation verticale- λ angle de tangage- µ angle de roulis- sx angle de lacet en x- sy angle de lacet en yCes paramètres décrivent les transformations élémentaires qui lient deux imagesaériennes de la même scène, pro<strong>je</strong>tées selon deux axes de vue. Lors<strong>que</strong> l'on examine latransformation implicite, on s'aperçoit <strong>que</strong> le centre de la transformation est fixe. Le centrede la transformation implicite est fixé à l'origine de l'image (le point de coordonnées (0,0)en haut à gauche de l'image). On peut, de même pour la transformation explicite, fixer lescoordonnées de ce point. On peut indifféremment avoir une référence fixe ou variable,pour les coordonnées du centre. Les coordonnées du centre de la transformation ont un rôle"muet" du point de vue de la nature des transformations. Il s'agit d'une origine, qui peutêtre placée arbitrairement par rapport à l'image de référence 16 .zx et zy sont deux facteurs d'échelles indépendants en abscisse et ordonnée. Si ledispositif de vision (caméra) est bien conçu, les pixels sont "carrés", c'est-à-dire <strong>que</strong> larésolution sur le terrain, la distance réelle qui sépare deux pixels, est identi<strong>que</strong> dans lesdeux directions. Il est inutile de fixer deux paramètres indépendants, puis<strong>que</strong> la réalité de laprise de vue permet de dire <strong>que</strong> ces deux paramètres sont liés. zx et zy peuvent êtrefusionnés en un seul paramètre z qui correspond aux conditions de prise de vue.On peut démontrer qu'un lacet en x et un lacet en y d'un angle α identi<strong>que</strong>,équivalent à une rotation du même angle α [Owe97]. Le lacet x appliqué en même temps<strong>que</strong> le lacet y n'est donc <strong>pas</strong> indépendant de la rotation. Il faut appli<strong>que</strong>r une seule de cestransformations de lacet. On peut appli<strong>que</strong>r le lacet en x uni<strong>que</strong>ment, et le lacet en y sera lacomposée du lacet en x et de la rotation. Le lacet en y n'est absolument <strong>pas</strong> utile (il a étédonné pour la symétrie la formulation de la transformation) et peut être ignoré.Si l'on compte parmi les paramètres des facteurs d'échelle indépendants en x et en y(la transformation implicite possède de tels facteurs indépendants), le nombre de16 Tout comme l'origine de l'espace est fixée arbitrairement lors<strong>que</strong> l'on utilise la définition d'un espacevectoriel pour définir l'espace affine.70


paramètres de la transformation explicite est identi<strong>que</strong> à celui de la transformationimplicite. Les paramètres "utiles" sont les suivants :- α angle de rotation- zx facteur d'échelle en x- zy facteur d'échelle en y- tx translation horizontale- ty translation verticale- λ angle de tangage- µ angle de roulis- ψ angle de lacetIls décrivent (mais cela n'a <strong>pas</strong> été démontré formellement) l'ensemble destransformations telles <strong>que</strong> le permet la transformation implicite. Ces deux transformationscomportent le même nombre (8) de paramètres. Il s'agit de transformations équivalentes,mais <strong>dont</strong> la forme explicite possède des paramètres "physi<strong>que</strong>s décorrélés".3.5.2 Comparaison des modèles pro<strong>je</strong>ctifs sur des images réelles.Les images (figure 3.10) qui suivent, présentent les photographies aériennes d'uncentre d'affaires en Améri<strong>que</strong>. Elles ont été recalées pro<strong>je</strong>ctivement à l'aide des deuxmodèles présentés à 8 paramètres. La figure 3.11 présente le résultat (mosaï<strong>que</strong>) del'appariement sous forme graphi<strong>que</strong>. Suivent les résultats quantitatifs dans les deux cas defigure. Le résultat présente dans les deux cas, une composante de lacet très prononcée. Lesrésultats sous forme graphi<strong>que</strong> (mosaï<strong>que</strong>s) sont (peu s'en faut) équivalents pour les deuxformulations.La formulation explicite du modèle est toutefois plus aisée à analyser, car lesparamètres obtenus sont "physi<strong>que</strong>ment décorrélés". Énoncer explicitement le modèle,contraint l'algorithme des moindres carrés (qui détermine la valeur des paramètres) à unemeilleure discrimination des transformations élémentaires. Les consé<strong>que</strong>nces physi<strong>que</strong>s dumouvement tridimensionnel de la caméra, et donc le problème de détermination desparamètres, sont mieux formulés. On a affaire à un problème plus contraint (les causesphysi<strong>que</strong>s sont décorrélées), et donc mieux conditionné.71


Figure 3.10 : Deux images aériennes d'un business-center aux USA.Figure 3.11 : Mosaï<strong>que</strong>s d'images de la figure 3.10 obtenues avec la forme implicite(gauche) et explicite (droite) de la transformation pro<strong>je</strong>ctive plane.Paramètres du modèle implicite :m00 = 0.980783m01 = -0.270642tx= 65 pixelsm10 = -0.006761m11 = 1.036057ty= -10 pixelsm20 = -5.369096e-05m21 = -5.498772e-06Paramètres du modèle explicite :α = -5.4 °zx = 101.3 %zy = 99.6 %tx= 11 pixelsty= -2 pixelsλ = 3 °µ = 2 °ψ = -11 °72


Nous pouvons constater sur un tel résultat numéri<strong>que</strong>, <strong>que</strong> les paramètres obtenus àl'aide du modèle explicite sont vraisemblablement justes. Les paramètres obtenus à l'aidedu modèle implicite, ne sont absolument <strong>pas</strong> interprétables par un humain, à moins de voirle résultat graphi<strong>que</strong> au<strong>que</strong>l il correspond (mosaï<strong>que</strong> présentée à la figure 3.11). Toutefois,nous estimons, en visualisant le résultat des mosaï<strong>que</strong>s présentées, <strong>que</strong> le résultat obtenu àl'aide de la transformation explicite, est bien plus proche d'une réalité tangible (de parl'interprétation des paramètres).On peut remar<strong>que</strong>r <strong>que</strong> les images traitées possèdent un relief non-négligeable quicontredit l'hypothèse de planarité (de la scène) <strong>que</strong> nous avons formulés.La forme implicite est utile pour montrer la nature du phénomène physi<strong>que</strong>, etétayer la démonstration (voir chapitre 2).73


3.5.3 Moindres carrés non-linéaires supervisés.Soit le vecteur de paramètres suivant :⎛ α ⎞⎜z x⎟⎜ ⎟⎜z y ⎟⎜ t ⎟ xa = ⎜ ⎟⎜ t y ⎟⎜ λ ⎟⎜ ⎟⎜ µ ⎟⎜ ⎟⎝ ψ ⎠(3.5)Ce vecteur contient tous les paramètres de la transformation pro<strong>je</strong>ctive plane T.Effectuer un calcul de moindres carrés consiste [Pre92] déterminer la valeur numéri<strong>que</strong> desparamètres du vecteur a, afin <strong>que</strong> celui-ci corresponde au mieux au sens d'une distancequadrati<strong>que</strong>, au champ de vecteurs de disparité (flot opti<strong>que</strong>). Soit D le champ de disparitétel <strong>que</strong> :D = D x,ij . r x + D y,ij . r y (3.6)D est la somme vectorielle des disparités obtenues horizontalement etverticalement, par la méthode de programmation dynami<strong>que</strong> orthogonale ; i et j sont lescoordonnées d'un pixel d'image. On rappelle <strong>que</strong> T est la transformation pro<strong>je</strong>ctive àapproximer. On a alors les deux composantes de cette transformation T telles <strong>que</strong> :T = T x,ij . r x + T y,ij . r y (3.7)Calculer une approximation des moindres carrés consiste à minimiser la distancequadrati<strong>que</strong> entre le modèle T et le champ expérimental D, selon la formule (3.8).( ) 2 + ( D y,ij − T y,ij (a)) 2⎡E 2 D x,ij − T x,ij (a)(a) = ⎢mina⎢∑σ 2(i,j)∈imageij⎣⎢⎤⎥⎥⎦⎥(3.8)Cette minimisation consiste à approximer de manière optimale (au sens desmoindres carrés) le vecteur de paramètres a. L'algorithme de minimisation est dit nonlinéaire,du fait <strong>que</strong> le modèle T n'est <strong>pas</strong> linéaire selon ses variables i et j. En effet, si latransformation avait été une simple similitude (transformation affine), l'algorithme desmoindres carrés aurait été linéaire. Mais puis<strong>que</strong> l'on a composé à cette similitude une74


transformation perspective (non-linéaire) la transformation devient pro<strong>je</strong>ctive, et donc nonlinéaire.L'algorithme des moindres carrés non-linéaire est itératif. Il s'agit de donner unevaleur initiale au vecteur a. Puis, en plusieurs itérations, l'algorithme converge vers lasolution (uni<strong>que</strong>), en approximant les paramètres du vecteur a à l'aide de l'estimationinitiale. Pour cette méthode des moindres carrés, nous avons utilisé l'algorithme deLevenberg-Markard 17 [Pre92][Sze93].Dire <strong>que</strong> l'algorithme est supervisé consiste à donner une valeur non constante à lavariance σ 2 ij (au dénominateur de 3.8). Cette variance vient pondérer la minimisation, etpermet de contraindre l'algorithme à prendre en compte les incertitudes sur les vecteurscomposant D (flot opti<strong>que</strong>). L'incertitude prépondérante est liée à la position du vecteurdisparité, à une sous résolution donnée. Lors<strong>que</strong> l'on réduit par 8 la taille des images àapparier, pour la première itération de l'algorithme pyramidal, le facteur de réduction de 8génère une incertitude sur la position du vecteur de +/- 4 pixels.Si l'on ne prend <strong>que</strong> cette incertitude due à la réduction des images, σ 2 ij resteconstant à une résolution d'image donnée. Il faut donc évaluer plus finement la variance<strong>dont</strong> nous nous servirons pour rendre supervisé l'algorithme des moindres carrés. Nousavons choisi :σ ij = 1 + r 2 . U Dij − V Dij128. 2 /3 . 1 2 (3.9)σ ij doit être non nul (on ne peut diviser par 0 dans la formule 3.8). Il estime unemesure d'incertitude sur le vecteur Dij. U Dij représente la luminance du pixel de lapremière image (à apparier), qui est à l'origine du vecteur disparité. Il s'agit donc du pixel(i,j) de la première image. V Dij représente la luminance du pixel de la seconde image (deréférence), qui est à l'extrémité (flèche) du vecteur disparité. Nous estimons l'écart type,pour cha<strong>que</strong> vecteur, et donc pour cha<strong>que</strong> pixel de la première image. Cette estimation sebase sur la différence de luminosité des pixels pointés par le vecteur Dij.⎛1 + r ⎝ 2Le terme r de la formule (3.9) est le facteur de réduction de l'image (8, 4, 2 et 1).⎞représente donc l'erreur <strong>que</strong> l'on commet en estimant un vecteur disparité, en ayant⎠réduit l'image d'un facteur r. Cette erreur est pondérée par une fonction de distancelumineuse. On a vu, dans le paragraphe sur la fonction de coût (dans ce même chapitre),17 C'est un algorithme très utilisé autant pour l'analyse numéri<strong>que</strong> (Cf. Matlab) <strong>que</strong> pour la résolutionformelle (Cf. Mathematica).75


<strong>que</strong> 128. 2 /3 représente un écart-type de la distance U ki − V kj . Afin <strong>que</strong> la distancelumineuse ait la dimension d'un écart-type (sans dimension), il apparaît naturel denormaliser la distance par l'écart-type de cette distance. La pondération est constituée par lamoitié de cette distance normalisée (facteur 1/2).Ne <strong>pas</strong> pondérer l'approximation (moindres carrés) par l'énoncé de la distancequadrati<strong>que</strong>, et donc utiliser un algorithme non supervisé, aurait consisté à poser σ ij = 1.On a pu vérifier expérimentalement, <strong>que</strong> l'algorithme supervisé (pondéré), donne de bienmeilleurs résultats. L'approximation du modèle pro<strong>je</strong>ctif devient robuste. C'est unepropriété intéressante des algorithmes supervisés, pourvu comme dans notre cas, <strong>que</strong>l'incertitude sur la mesure effectuée puisse être qualifiée et évaluée.3.5.4 Critère de sélection des vecteurs du champ de disparité.Lors des différentes étapes de l'algorithme pyramidal, le nombre de vecteursdisparitén'est <strong>pas</strong> constant. Le nombre de vecteurs-disparité quadruple (comme larésolution des images traitées) à cha<strong>que</strong> nouvelle résolution prise en compte parl'algorithme. La population statisti<strong>que</strong> sur la<strong>que</strong>lle est effectuée le calcul de moindrescarrés pourrait quadrupler à cha<strong>que</strong> nouvelle résolution. Cela augmenterait la durée ducalcul de l'algorithme NLLS à cha<strong>que</strong> nouvelle résolution.Pour palier ce problème, nous avons utilisé la méthode suivante. A la plus faiblerésolution (initiale 32x32), le calcul de NLLS est effectué sur tous les vecteurs de D. Puis,lors<strong>que</strong> la résolution est doublée, nous ne prenons qu'un vecteur sur 4 en découpant lechamp D en blocs de vecteurs 2x2. A cha<strong>que</strong> nouvelle résolution, nous prenons des blocsde vecteurs 2 fois plus grands, et nous en choisissons 1 (vecteur) par bloc. Nousconservons donc égale, entre les résolutions, la population statisti<strong>que</strong> traitée parl'algorithme NLLS.Le choix d'un vecteur par bloc est décidé par un critère de minimisation de lavariance affectée au vecteur concerné. La formule (3.9) donne à cha<strong>que</strong> vecteur un écarttypeσ ij . Nous choisissons parmi les vecteurs du bloc, le vecteur <strong>dont</strong> l'écart-type est leplus faible. L'écart-type de la formule (3.9) détermine l'incertitude pour cha<strong>que</strong> vecteur deD. Nous cherchons donc à ne proposer à l'algorithme NLLS, <strong>que</strong> les vecteurs quiprésentent l'incertitude la plus réduite possible. Cela permet d'obtenir un résultat del'algorithme de moindres carrés, avec un coefficient de détermination (fiabilité) plus élevé,car l'algorithme se voit présenter des données sélectionnées, et entachées de moinsd'incertitude.76


3.5.5 Initialisation des paramètres de la transformation pro<strong>je</strong>ctive.Le modèle de transformation pro<strong>je</strong>ctive du plan (image) est non-linéaire.L'algorithme des moindres carrés qui permet de déterminer les paramètres, connaissant lemodèle et un champ de vecteur expérimental (flot opti<strong>que</strong>), est itératif [Pre92]. À lapremière itération, il faut présenter à cet algorithme, des valeurs numéri<strong>que</strong>s de paramètresproches de la solution (uni<strong>que</strong>) à approximer.La première itération de l'algorithme NLLS, est aussi la première itération del'algorithme pyramidal. On peut donc admettre, étant donné <strong>que</strong> les images ont été réduitesconsidérablement, <strong>que</strong> le mouvement <strong>que</strong> l'on cherche à estimer est très faible (à cetterésolution). Les images ont typi<strong>que</strong>ment une taille 32x32, et le mouvement d'un pixel estconsidérablement affaibli (par 8) à cette résolution. Ce <strong>que</strong> nous avons à estimer à lapremière itération est une transformation proche de l'identité.Toutefois, si nous donnons à l'algorithme les paramètres correspondants à latransformation identité, l'approximation échoue pour deux raisons. D'une part une rotationd'un angle de 0 degrés (comme pour l'identité), conduit l'algorithme NLLS à unesingularité qu'il re<strong>je</strong>tte. Il faut donc présenter à cet algorithme un angle de rotation estiméfaible, et non nul. D'autre part, il est préférable, pour <strong>que</strong> la convergence ait lieu, d'estimerla translation initiale des images. Dans ce qui suit, nous allons donc proposer uneestimation des paramètres initiaux pour les deux modèles pro<strong>je</strong>ctifs considérés, àparamètres explicites et implicites.a) Estimation de la translation initiale.Lors de la première itération de l'algorithme NLLS, nous avons calculé le flotopti<strong>que</strong> entre les deux images. Nous avons à notre disposition le champ de vecteurs D. Lechamp D est d'abord très imparfait. Il s'agit du premier calcul de D, qui sera perfectionnépar les itérations suivantes de l'algorithme pyramidal. D présente naturellement parexemple, des effets de bords indésirables. Le seul sous-ensemble "fiable" du champ D, sesitue au centre du champ des vecteurs-disparité.Afin d'estimer la translation des images, et connaissant le champ D nousmaximisons l'expression (3.10) suivante :⎡max ⎢ ∑ ∑ U Dmn − U Dmnij ⎣⎢m=i±kn= j±l( ).V ( Dmn − V Dmn )⎤⎥⎦⎥(3.10)i et j varient de +/- 5 voisinages de blocs 9x9, du centre de l'image U. k et l varientde +/- 4 pixels. U Dmn représente donc un voisinage 9x9 de l'image U, tel <strong>que</strong> les77


voisinages comparés ne se recouvrent <strong>pas</strong> (<strong>que</strong>ls <strong>que</strong> soient i et j). V Dmn représente levoisinage 9x9 qui correspond à U Dmn par le calcul de flot opti<strong>que</strong>. U Dmn et V Dmn sontles niveaux moyens sur les deux voisinages de U et V.Le calcul de (3.10) qui détermine deux valeurs de i et j, consiste donc à maximiserl'inter-corrélation centrée, mais non normalisée (contrairement au chapitre 2), sur desvoisinages appariés du centre des images U et V. Le choix du centre des images permetd'éviter les effets de bords du calcul de flot opti<strong>que</strong>.Si l'on avait normalisé la formule de corrélation, par le produit des variances desvoisinages, le calcul aurait consisté à choisir i et j (et donc deux voisinages) tel <strong>que</strong> lesdeux voisinages se ressemblent le plus, au sens de la corrélation. Mais, cet opérateurn'étant <strong>pas</strong> normalisé, il est implicitement le produit de la corrélation normalisée-centrée(cf. chapitre 2) par la variance des voisinages. Cela signifie <strong>que</strong> l'on recherche nonseulement les deux voisinages qui se ressemblent le plus, mais qui en même temps,possèdent la plus grande variance. Un voisinage de grande variance, en traitementd'images, représente un point d'intérêt. Ce <strong>que</strong> nous recherchons par la maximisation de(3.10) sont deux voisinages appariés et corrélés, qui correspondent le plus à un pointd'intérêt commun. Nous maximisons à la fois la ressemblance, et la variance des voisinagesappariés. La translation des images <strong>que</strong> nous cherchons à estimer est alors le vecteursuivant :⎛ˆt x ⎞⎜⎝ˆt ⎟ y ⎠= D ij (3.11)Figure 3.12 : Estimation initiale d'une translation pure, sur les images de la figure 3.10. Agauche, extrait de U, et à droite, extrait apparié de V.La figure 3.12 est un exemple, sur les images de la figure 3.10, de la recherched'une translation pure, afin d'estimer les paramètres initiaux. On recherche, par inter-78


corrélation centrée, les voisinages corrélés mis en correspondance, qui correspondent à unpoint d'intérêt. Le voisinage qui satisfait le mieux à ces conditions, est encadré de noir, etsa luminance est inversée (pour l'illustration du résultat et non pour <strong>que</strong>l<strong>que</strong> traitementutile). La translation estimée alors, pour initialiser les paramètres tx et ty, est constituée parle vecteur Dij établi par programmation dynami<strong>que</strong> orthogonale.b) Initialisation des autres paramètres pour la transformation implicite.Pour la transformation implicite, les paramètres d'initialisation sont choisis tel <strong>que</strong> :m00 = 1.0m01 = 0.0001tx= ˆt xm10 = 0.0001m11 = 1.0ty= ˆt ym20 = 0.0001m21 = 0.0001Cette transformation est proche d'une translation pure selon le vecteur estimé. Elleévite à l'algorithme NLLS d'échouer par une singularité de calcul.c) Initialisation des autres paramètres pour la transformation explicite.Pour la transformation explicite, les paramètres d'initialisation sont choisis tel <strong>que</strong> :α = 1 °zx = 1zy = 1tx= ˆt xty= ˆt yλ = 0 °µ = 0 °ψ = 0 °Cette transformation est proche d'une translation pure selon le vecteur estimé. Elleévite à l'algorithme NLLS d'échouer par une singularité de calcul.En utilisant une translation estimée pres<strong>que</strong> "pure", nous avons constaté <strong>que</strong>l'algorithme pyramidal converge toujours vers une solution. Si l'algorithme NLLS diverge,c'est <strong>que</strong> l'hypothèse du flot opti<strong>que</strong> (voir chapitre 2) n'est <strong>pas</strong> vérifiée. Le modèle de79


transformation pro<strong>je</strong>ctive du plan est adéquat. L'algorithme de calcul du flot opti<strong>que</strong> estoptimal (selon le principe d'optimalité de Bellman). L'algorithme de moindres carrés(NLLS) est optimal selon le critère d'une distance quadrati<strong>que</strong>. De plus, l'algorithme demoindres carrés est robuste, puis<strong>que</strong> supervisé. Les meilleurs critères de convergence del'algorithme pyramidal sont réunis. Le seul critère qui puisse être mis en défaut estl'hypothèse initiale du flot opti<strong>que</strong>. Nous présenterons les étapes de l'algorithme pyramidalsur des exemples précis dans une partie correspondant aux résultats.3.6 Vérification du résultat par application de la transformée.Afin de juger de la qualité du recalage pro<strong>je</strong>ctif, il est nécessaire d'appli<strong>que</strong>r latransformation pro<strong>je</strong>ctive pour superposer les images. Ainsi, une fois les imagessuperposées, il est aisé de les comparer pixels à pixels. L'opération consiste à effectuer unetransformation d'image (warping) à l'aide du modèle déterminé par l'étape des moindrescarrés. Les paramètres (vecteur a) de la transformation sont connus.Pour transformer l'image, il s'offre deux choix. Soit appli<strong>que</strong>r la transformation à laseconde image pour la ramener sur la première. Soit transformer la première, pour larendre similaire à la seconde.La première solution (V=>U) consiste à utiliser l'inverse de la transformée. En fait,la transformation T est complexe, et sa transformation inverse est difficile à obtenir. Leplus souvent, on a recours à la pseudo-inverse. Appli<strong>que</strong>r une pseudo-inverse consiste enl'algorithme de la figure 3.13.Pour j variant de 1 à la hauteur d'imagePour i variant de 1 à la largeur d'imageImage_transformée[i][j]


Pour j variant de 1 à la hauteur d'imagePour i variant de 1 à la largeur d'imageImage_transformée[Tx,ij][Ty,ij]


Le cardinal (card) représente le nombre de pixel de l'intersection par superposition(mosaï<strong>que</strong>) des deux images. Il s'agit de la partie des images où elles se coïncident par lecontenu. Étant donné la normalisation préalable des images, on a immédiatement :⎧ U = V = 128⎨⎩σ U =σ V = 128 / 3(3.13)puis<strong>que</strong> la moyenne et l'écart-type des images sont fixés préalablement. De plus, pourtrouver l'intersection C = U ∩ V, on peut utiliser l'algorithme de la figure 3.16.Pour tout i,j : C[i][j]


- Soit r est moins grand. Dans ce cas, r et a ne sont <strong>pas</strong> réactualisés.L'image_transformée n'est <strong>pas</strong> non plus réactualisée. Mais U et V sont échantillonnés àune taille d'image deux fois supérieure dans le cas d'une résolution intermédiaire. Bien sur,avant de sous-échantillonner U, on lui appli<strong>que</strong> la transformation par a (qui correspond aumeilleur r estimé jus<strong>que</strong>-là). Si U et V atteignent la résolution initiale, l'algorithme prendfin.Lors<strong>que</strong> l'algorithme prend fin, nous disposons de l'image_transformée, du champD, de la transformée T caractérisée par ses coefficients a, et enfin du paramètre de qualité rqui permet de juger numéri<strong>que</strong>ment du résultat.Pour illustrer la méthode pyramidale d'approximation globale du recalage pro<strong>je</strong>ctif,nous allons maintenant présenter un résultat.3.9 Résultats de la méthode.Le résultat est celui des deux images de la base d'images provenant du CEA,recalées pro<strong>je</strong>ctivement, <strong>que</strong> nous avions placées pour illustrations dans le chapitreprécédent. Nous le commenterons. Nous disposons d'un échantillon d'une quarantained'images correspondant à des vues aériennes de deux scènes différentes. Ces images, prisesdeux à deux, constituent autant de couples sur les<strong>que</strong>ls notre algorithme peut être évalué.La figure 3.17 et les données qui suivent présentent le résultat obtenu sur deux imagesextraites de la base d'images <strong>que</strong> nous avons constituée.Figure 3.17 : Images aériennes 256x256 de test du CEA.83


N°d'itérationTailled'imageTempsd'exécutionPD bi-SPARC 400(en ms)Phases de l'algorithme pyramidal :Facteur decorrélation(%)Filtragebi-SPARC400(ms)Moindrescarrés bi-SPARC400(ms)Recalagepro<strong>je</strong>ctifbi-SPARC400(ms)Corrélationbi-SPARC400(ms)1 32x32 163.3 35.08 23.3 22.2 69.3 6.12 32x32 163.3 52.75 23.3 10.9 69.6 5.93 32x32 156.5 44.13 23.2 9.6 69.2 5.94 64x64 628.8 52.94 24.5 10.8 69.2 5.95 64x64 647.5 48.92 23.9 15.9 69.9 6.06 128x128 1891 53.51 29.6 11.6 69.3 5.97 128x128 1857 53.32 30.2 14.4 69.7 5.98 256x256 13 755 59.28 25.0 14.2 68.9 6.09 256x256 14 022 57.25 24.3 13.0 69.2 5.9Total 33 284 227 123 624 54Paramètres de la transformationpro<strong>je</strong>ctive :Échelle : 96.4 %Angle de rotation : -16.8°Translation horizontale : 62 pixelsTranslation verticale : 20 pixelsPosition x du centre : 175Position y du centre : 13Angle de tangage : -3°Angle de roulis : -1°Angle de lacet : 0°Corrélation : 59.28 %Mosaï<strong>que</strong>Le résultat est obtenu sur deux images 256x256 provenant du CEA. Ces imagescorrespondent pres<strong>que</strong> aux hypothèses <strong>que</strong> nous avions formulées pour l'algorithmepyramidal. Pres<strong>que</strong>, mais <strong>pas</strong> tout à fait. En effet, le relief des bâtiments de la scène n'est<strong>pas</strong> tout à fait négligeable. Et surtout, des modifications de contraste des imagesinterviennent. On peut percevoir cela, par le mouvement des ombres (pour le contraste), etpar le fait <strong>que</strong> les bâtiments apparaissent sous deux angles de vue différents (pour le relief).Nous ne sommes <strong>pas</strong> tout à fait dans les conditions qui correspondent auxhypothèses émises. Toutefois, l'algorithme est suffisamment robuste pour se comportercorrectement dans des conditions réelles de prise de vue.84


La première démonstration de la qualité du recalage pro<strong>je</strong>ctif, est illustrée par lamosaï<strong>que</strong> d'images reconstituée. On peut apercevoir sur celle-ci une continuité parfaite desvoies ferroviaires qui sont présentes dans les deux images. Pour effectuer la mosaï<strong>que</strong>,nous appliquons la transformation déterminée par les paramètres de a (vecteur deparamètres résultat) en effectuant une moyenne des deux images sur la partie commune decelles-ci (recouvrement). Si le recalage pro<strong>je</strong>ctif était moins bon <strong>que</strong> celui présenté, onverrait, sur la partie commune des images, un flou (moyen) qui n'apparaît <strong>pas</strong> ici. Lecoefficient de corrélation obtenu globalement sur la partie commune des images, estd'environ 60%.Le tableau de résultat présenté illustre la convergence de l'algorithme pyramidal. Sil'on prend en compte la colonne qui concerne le coefficient de corrélation (enpourcentage), les nombres en gras indi<strong>que</strong>nt qu'à cette itération de l'algorithme, celui-ci aconvergé. Il faut 9 itérations pour <strong>que</strong> l'algorithme converge, après l'examen de toutes lesrésolutions (deuxième colonne à gauche du tableau). La première itération donne unrésultat de corrélation assez bon, car l'estimation initiale d'une translation "pure" a donné àla méthode des moindres carrés, une estimation correcte de la solution.Dans les différentes autres colonnes, les temps de calcul des différents éléments del'algorithme sont donnés. La dernière ligne du tableau indi<strong>que</strong> les temps cumulés. Le tempsdonné pour le calcul du champ de disparité (par programmation dynami<strong>que</strong>) n'est donné<strong>que</strong> pour les balayages horizontaux de lignes d'images. Il faut donc multiplier ce temps par2 pour obtenir le temps total du calcul de flot opti<strong>que</strong>. Si l'on effectue cette multiplicationpar 2 du temps annoncé pour le calcul du champ, on se rend compte <strong>que</strong> 99% du temps prispar la méthode, est utilisé à effectuer un calcul de programmation dynami<strong>que</strong>. Celareprésente en tout, environ 1 minutes de calcul.On est bien éloigné (de 2 ordres de grandeur) du temps réel qui nous est imposé parles impératifs de notre application. Si l'on veut effectuer un calcul en moins d'une seconde,il faut nécessairement penser à accélérer le calcul de programmation dynami<strong>que</strong>. C'est cequi va faire l'ob<strong>je</strong>t de la deuxième partie de notre manuscrit. Un dispositif matériel pour lecalcul parallèle de l'algorithme de programmation dynami<strong>que</strong>, va être décrit.85


3.10 Conclusion partielle sur la partie algorithmi<strong>que</strong> du mémoire.Une méthode robuste, précise et performante pour l'appariement d'images aériennesa été proposée. Elle est basée sur une approche formalisée de la problémati<strong>que</strong>d'appariement de ces images. Le cadre formel a été décrit, conduisant à une caractérisationphysi<strong>que</strong> des données et hypothèses. Cela nous amène à proposer une méthode globale demise en correspondance d'images, qui répond aux contraintes du problème dans lecontexte qui a été décrit. En découle l'énoncé d'un algorithme pyramidal basé surl'approximation itérative du calcul de flot opti<strong>que</strong>, et l'approximation du champ de vecteursobtenu par un modèle de vision. Ce modèle permet de décrire tout comme le champ devecteurs disparité, le mouvement relatif d'une caméra lorsqu'elle observe la même scèneaérienne, sous deux angles de vue et à des instants distincts.Le calcul du flot opti<strong>que</strong> possède des limites intrinsè<strong>que</strong>s, dues à l'hypothèsed'invariance spatio-temporelle de la luminance des images, préalable à celui-ci. Despropositions ont été faites, qui permettent d'étendre le champ d'application de la méthodede calcul par programmation dynami<strong>que</strong> orthogonale. La fiabilité de ce calcul reposeautant sur le bon étalonnage en luminance des images, <strong>que</strong> sur les propriétésmathémati<strong>que</strong>s de la fonction de coût qui constitue la distance lumineuse entre les images.Cette fonction de coût, qui intervient dans le calcul de programmation dynami<strong>que</strong>,constitue les caractéristi<strong>que</strong>s opti<strong>que</strong>s de ce qui représente l'oeil, si l'on fait une analogieanthropomorphi<strong>que</strong>, de l'algorithme de vision.Nous avons choisi l'algorithme de programmation dynami<strong>que</strong>, car celui-ci estparticulièrement adapté à la mesure du flot opti<strong>que</strong> entre images. C'est sa propriété desemi-globalité, qui offre à la partie de bas niveau de la méthode une adéquation complèteaux contraintes du problème. L'algorithme des moindres carrés, une fois annoncé le modèlede vision est aussi parfaitement adéquat et optimal. Nous avons proposé une manière derendre cet algorithme supervisé. Cela apporte une très grande fiabilité aux paramètres dumodèle, déterminé tout au long des itérations pyramidales.La méthode pyramidale offre une précision au calcul <strong>que</strong> nous avons pu constatersur le résultat présenté. Il reste à démontrer l'adéquation de cette méthode, par le biais deson implantation, avec du matériel et une architecture "accélératrice" <strong>que</strong> nous avonsconçue. L'une des contraintes de notre application, n'est en effet <strong>pas</strong> respectée. Cettecontrainte porte sur la durée du calcul, qui ne doit <strong>pas</strong> dé<strong>pas</strong>ser une seconde. Dans ce but,nous avons simulé une machine virtuelle permettant le calcul parallèle de l'algorithme deprogrammation dynami<strong>que</strong>. L'algorithme de programmation dynami<strong>que</strong> est en effet lepoint criti<strong>que</strong> de la méthode, du fait de sa complexité temporelle.La simulation d'une machine de programmation dynami<strong>que</strong>, a pour but d'étudier lescaractéristi<strong>que</strong>s d'une machine physi<strong>que</strong>. Elle permet de vérifier qu'à un haut niveau, lescontraintes d'implantation, n'influeront <strong>pas</strong> significativement sur la qualité des résultats.86


Cela <strong>pas</strong>se par une formulation originale de l'algorithme de programmation dynami<strong>que</strong>, quise prête à l'implantation dans un dispositif matériel dédié.C'est grâce à la "solidité" de la méthode de recalage pro<strong>je</strong>ctif des images aériennes,<strong>que</strong> nous pouvons envisager une accélération matérielle des calculs. C'est ce <strong>que</strong> nousdévelopperons dans les chapitres suivants.87


2ème PartieChapitre 4. Modèle et principe fonctionnel du dispositif demicro-programmation dynami<strong>que</strong>.89


La première partie de ce mémoire nous a permis d'énoncer une méthoded'appariement global d'images aériennes. Un algorithme a été défini, et sa réalisation avecla contrainte de temps d'exécution, impose qu'un dispositif matériel soit mis en oeuvre pourla respecter 18 (méthodologie A 3 C). La partie la plus criti<strong>que</strong> de l'algorithme pyramidal quia été défini, est constituée par les traitements de bas niveaux. C'est en effet le calcul du flotopti<strong>que</strong>, par la méthode de programmation dynami<strong>que</strong> 1D "orthogonale" qui affectebeaucoup les performances temporelles de la méthode proposée [Lec97]. En effet, le tempsqui est imparti pour la réalisation de la mesure de déplacement de la caméra est d'uneseconde, et correspond au temps <strong>que</strong> mettrait un humain pour réagir à une perceptionvisuelle. Le dispositif de prise de décision se basant sur la méthode doit être au moins aussifiable et rapide <strong>que</strong> le serait un opérateur.Les critères de fiabilité de la méthode ont été discutés précédemment. Nous avonsconstruit un algorithme en analysant les données et hypothèses liées au contexte de visionaérienne dans le<strong>que</strong>l nous sommes placés, et évalué qualitativement celui-ci. Dans cettedeuxième partie, c'est l'adéquation entre une définition algorithmi<strong>que</strong> énoncée, et undispositif matériel, qui est abordée. Il s'agit de formuler un modèle fonctionnel d'unemachine permettant le calcul d'un champ vectoriel de disparité, satisfaisant les contraintes(temps réel, embarquabilité ...). Ce calcul, d'après le choix précédent, est basé surl'algorithme de programmation dynami<strong>que</strong> monodimensionnel. L'implantation matériellede celui-ci nécessite une formulation adaptée. Un dispositif électroni<strong>que</strong> a toujours unfonctionnement parallèle et asynchrone 19 . La description fonctionnelle de notre dispositif<strong>pas</strong>se par la formulation adéquate dans un langage adapté.Un grand nombre de langages permettent la spécification fonctionnelle d'unemachine à différents niveaux d'observation. Au cours de la progression de nos travaux demodélisation nous avons utilisé des langages sé<strong>que</strong>ntiels (langage C) parallèles (langage dela machine Synapse, C* de la machine CM5, VHDL proche du langage ADA). Certains seprêtent mieux à la description d'une machine parallèle et asynchrone telle <strong>que</strong> par nature,est constitué un dispositif matériel électroni<strong>que</strong>. Il s'agissait, lors de ces différentesimplantations de spécifier et de valider une description fonctionnelle du modèle du circuitproposé.Le modèle de la machine permet de concevoir une description fonctionnelle pourcelle-ci. Le modèle systoli<strong>que</strong> [Qui89] du<strong>que</strong>l s'inspire la description, ressemble peu auxarchitectures conventionnelles. Du reste, implanter une description fonctionnelle d'une telle18 A 3 C : méthodologie adéquation-algorithme-architecture sous contrainte ; elle vise à définir lesarchitectures de systèmes/circuits non seulement par le biais des structures les plus adéquates pour supporterefficacement le principe calculatoire de l'algorithme donné (comme le stipule la méthodologie A 3 ), maisaussi à prendre en compte les contraintes hexogènes à ce principe [Pis2000].19 Une machine sé<strong>que</strong>ntielle possède toujours des degrés de parallèlisme masqués, et la synchronisationd'une machine est un modèle qui permet d'appréhender le fonctionnement d'un dispositif par natureasynchrone.91


machine sur une machine conventionnelle conduit à un échec quant aux performancesattendues. C'est un modèle <strong>dont</strong> on conçoit aisément qu'il puisse permettre desperformances accrues, mais qui du fait des réalisations aux<strong>que</strong>lles il a donné lieu, s'estsouvent heurté à des contraintes de réalisation insurmontables [NEC94].Remar<strong>que</strong> : On traite dans cette partie de la programmation dynami<strong>que</strong> en général[LeC98] (et non de la programmation dynami<strong>que</strong> pour le traitement d'images - letraitement d'image intervient uni<strong>que</strong>ment dans la définition de la fonction de coût). On sepréoccupe du principe calculatoire : structure d'un Processeur Élémentaire, liaison entre lesPE. Le modèle <strong>que</strong> nous énonçons d'abord, et le calculateur systoli<strong>que</strong> qui en découle parla mise en oeuvre d'une méthodologie (A 3 [Sor94]) est indépendant de l'application. C'estl'application des contraintes de l'application en traitement des images qui dédie la mise enoeuvre.4.1 Définition d'un modèle de circuit de programmation dynami<strong>que</strong>.Énoncer un modèle pour la machine de micro-programmation dynami<strong>que</strong> permet deconcevoir une description fonctionnelle. Le modèle énoncé permet <strong>que</strong> la descriptionfonctionnelle de la machine soit en correspondance avec le matériel qu'elle impli<strong>que</strong>. Unebonne description suppose aussi <strong>que</strong> la mise en oeuvre matérielle, par les contraintesqu'elle impose, produise un retour sur la description fonctionnelle, et fasse évoluer celle-ci.L'adéquation découle de cette interaction entre la description et sa mise en oeuvre.4.1.1 Formulation mathémati<strong>que</strong>.D'après le chapitre 3, pour le calcul de la matrice programmation dynami<strong>que</strong> 1D ilfaut choisir une distance dij entre tous les éléments (i,j) (pixels) de deux vecteurs Uk et Vk(lignes et colonnes) :d ij = U ki − V kj(3.1) rappelLa recherche du chemin global de coût minimal (score) qui établi unecorrespondance optimale entre le premier vecteur et le deuxième, selon la définition de laprogrammation dynami<strong>que</strong> de Bellman, est la minimisation de la somme de coûtsdirectionnels locaux C(s) pondérés par la distance de luminosité dij. Cela forme la fonctionde coût élaborée pour cha<strong>que</strong> couple (i,j) de pixels considérés. Effectuer un calcul deprogrammation dynami<strong>que</strong> consiste à former le score :∑score = Min d ij .C(s)che min s(3.2) rappel92


Le score minimise sur l'ensemble des chemins dans la matrice (cha<strong>que</strong> élément nepouvant être atteint qu'une fois) la distance affectée d'un coût directionnel. C(s) est le coûtqui dépend de la direction du chemin, diagonale ou sur l'une des directions orthogonales.Le sens de propagation dans ces directions est imposé, puis<strong>que</strong> le chemin se propage dansle cadran inférieur droit du voisinage de l'élément de matrice courant (figure 4.1).DépartVkN Vkj Vk1Uk1 ... Uki ... VkNDij (2)(2)(1)ArrivéeFigure 4.1 : Propagation d'un chemin dans la matrice de programmation dynami<strong>que</strong>.(2) = C(orthogonal) et (1) = C(diagonal). U et V sont les luminances de 2 lignes d'images.La définition rencontrée couramment donne lieu à une implantation récursive[Qué88] , du fait <strong>que</strong> le problème global, qui est un problème d'optimisation, se décomposeen sous-problèmes élémentaires résolus chacun de manière optimale. Mais une formulationrécursive se prête mal à la définition d'un modèle de machine dédiée. C'est un problème<strong>que</strong> l'on rencontre aussi, et pour une raison similaire, lorsqu'un algorithme est défini àl'aide d'une simple boucle (Tant <strong>que</strong> ... Faire) qui donne lieu à un coût matérielimportant 20 .Afin d'adapter la formulation de l'algorithme à une implantation matérielledescriptible, on peut avoir recours à une analogie mécani<strong>que</strong>. L'analogie mécani<strong>que</strong> <strong>que</strong>nous proposons permet de concevoir la forme dérécursivée de l'algorithme, et possède entout point les mêmes éléments <strong>que</strong> <strong>ceux</strong> présents dans la formulation mathémati<strong>que</strong>. Il20 la synthèse d'architecture donne lieu au déroulement spatial de la boucle.93


s'agit d'un modèle mécani<strong>que</strong> simple, qui permet, lors<strong>que</strong> l'on simule son fonctionnement,de concevoir une forme non récursive de l'algorithme de programmation dynami<strong>que</strong>[LeC94].4.1.2 Analogie mécani<strong>que</strong> du fonctionnement du système de programmationdynami<strong>que</strong>.Le modèle systoli<strong>que</strong> 2D par analogie mécani<strong>que</strong>, de la machine de programmationdynami<strong>que</strong> permet de décrire l'algorithme parallèle de programmation dynami<strong>que</strong> (figure4.2).Figure 4.2 : Modèle systoli<strong>que</strong> de la machine par analogie mécani<strong>que</strong>.La matrice de programmation dynami<strong>que</strong> contient N 2 éléments. Ces N 2 élémentssont autant de Processeurs élémentaires (PE) constituant le système de calcul del'algorithme.Cha<strong>que</strong> PE est constitué d'un percuteur et de 3 dominos. Le percuteur active les 3dominos de sa cellule, dans un délai paramétrable ; les dominos activent les percuteursd'autres cellules. Le délai de chute de cha<strong>que</strong> domino est paramétré par la fonction de coûtdij.C(s), c'est-à-dire <strong>que</strong> le domino diagonal chute en premier (dij.C(diagonal)) et <strong>que</strong> lesdeux dominos orthogonaux chutent ensuite (dij.C(orthogonal)). dij est un terme qui dépendde la luminance des pixels considérés et C(s) constitue le coût de temporel dudéveloppement des chemins dans la structure 2D.94


Le développement initial des chemins débute par une impulsion extérieure sur lepremier élément de la matrice de PE. Une onde de chute des dominos se propage dans lamatrice de programmation dynami<strong>que</strong>. Cela correspond au développement parallèle desdifférents chemins dans la matrice de programmation dynami<strong>que</strong>. Cha<strong>que</strong> PE ne peut êtreactif qu'une seule fois, car le chemin <strong>que</strong> l'on recherche dans la matrice est hamiltonien 21(voir chapitre 3).D'après la formule (3.2), on recherche dans la matrice de programmationdynami<strong>que</strong> le chemin qui minimise la somme des dij.C(s). Le détermination du chemin decoût minimal dans la matrice de PE <strong>pas</strong>se donc par une phase de recouvrement. Ainsi il estnécessaire <strong>que</strong> cha<strong>que</strong> percuteur mémorise la provenance du domino qui l'a percuté lapremière fois. À partir du premier domino qui chute sur les PE de la ligne d'arrivée(extrémités droite et basse de la matrice de PE : figure 4.1), déterminer le chemin optimalconsiste à suivre le chemin de percussion mémorisé dans cha<strong>que</strong> PE. Le chemin recouvrédans la matrice est le chemin de plus faible score. Ce chemin indi<strong>que</strong> la correspondanceélasti<strong>que</strong> entre les vecteurs appariés.La minimisation de la somme (de la formule 3.2) se traduit par analogie mécani<strong>que</strong>par la minimisation d'une somme de délais (équivalent à des coûts) sur l'ensemble deschemins propagés dans la matrice. Le premier chemin qui aboutit est donc par l'analogie, lechemin recherché.4.1.3 Simulation sé<strong>que</strong>ntielle de la machine systoli<strong>que</strong>.Le mouvement des données à l'exécution de l'algorithme permet de donner unmodèle de machine. L'architecture proposée se réfère à un modèle systoli<strong>que</strong> et à unemachine SIMD (single instruction multiple data). L'algorithme qui découle d'une tellemachine est un algorithme piloté par les données (data driven) constituées par lesluminances des lignes d'images à mettre en correspondance.Simuler informati<strong>que</strong>ment une telle machine à l'aide d'un langage sé<strong>que</strong>ntiel,consiste à réaliser un échéancier permettant de dater cha<strong>que</strong> événement (de chute dedominos) parmi les 3.N 2 événements possibles (2.N 2 si l'on considère la symétrie descoûts orthogonaux). Le modèle d'exécution est asynchrone.21 Cela correspond au fait <strong>que</strong> les dominos ne se redressent <strong>pas</strong>.95


DépartUkjVkiChemin N°2Chemin N°1Chemin N°3échéancierArrivéeFigure 4.3 : Mise en concurrence du développement des chemins.L'implantation consiste en la mise en oeuvre un échéancier (liste d'événementsconcurrents) piloté par la donnée de la fonction de coût (liste de similarité). La concurrencedu développement des chemins est présentée dans la figure 4.3. L'échéancier contient laliste des événements activables (un percuteur a été activé) et est systémati<strong>que</strong>mentparcouru pour désigner un événement activé (un domino chute) qui sortira donc de la liste.Si deux événements possèdent la même date d'activation, l'événement diagonal estfavorisé 22 .La complexité temporelle d'un tel algorithme est donnée par l'algorithme deparcours de la liste d'événements, et est donc dans le pire des cas en O(N 2 ). La fonction decoût est calculée sur les données d'images (Uk et Vk) prenant des valeurs sur 8 bits, etproduit un résultat normalisé codé sur 6 bits. La fonction de coût est donc précalculée etconstitue une table réduite (Look-Up Table de dimension 256x64x2 bits = 4 Koctets). Celane nécessite aucune opération arithméti<strong>que</strong> pendant l'exécution de l'algorithme.22 Un chemin diagonal (chemin le plus court suivant le parcours dans la matrice) indi<strong>que</strong> une ressemblancedes vecteurs comparés. La résolution du conflit favorise donc la recherche d'une ressemblance entre vecteurs.96


4.1.4 Algorithme parallèle respectant le modèle.La définition de l'algorithme parallèle de programmation dynami<strong>que</strong> découle del'énoncé du modèle de la machine (voir figure 4.4) [LeC98]._________________________________________________________________________PE(0,0) := ACTIF;FIN := FALSE;score partiel := 0;TIMER := 0; /* TIMER de cha<strong>que</strong> PE */TANT QUE (NOT FIN) FAIRE EN PARALLELE SUR LES PEs ACTIFSSI RECEPTION du score partiel voisin ALORSMEMORISER la direction s du chemin optimal ;METTRE À JOUR le score partiel dans les 3 directions;ATTENDRE <strong>que</strong> TIMER = dij.C(diagonal);ACTIVER le voisin diagonal;ENVOYER le score mis à jour au voisin SUD-EST;ATTENDRE TIMER = dij.C(orthogonal);ACTIVER les voisins orthogonaux;ENVOYER le score mis à jour aux voisins SUD et EST;FIN=SI(index=(N,N)) ALORS TRUE;DESACTIVER LE PE;FIN DE SI ;FIN DE TANT QUESCORE= score partiel(N,N);/* recouvrement du chemin optimal */i=2*N;CHEMIN(i)=POSITION=(N,N);TANT QUE (NOT CHEMIN(i)=(0,0)) FAIREPOSITION := POSITION-s(POSITION);i := i-1;CHEMIN(i) := POSITION;FIN DE TANT QUE /* CHEMIN contient le chemin optimal */_________________________________________________________________________Figure 4.4 : Algorithme parallèle de programmation dynami<strong>que</strong> pour l'appariement dedeux vecteurs.97


L'algorithme comprend deux étapes : une étape de développement des chemins, etune étape de recouvrement du chemin optimal. L'étape de développement permet le calculdu score de programmation dynami<strong>que</strong>. C'est un résultat qui numéri<strong>que</strong>ment n'est <strong>pas</strong> utilepour l'algorithme qui a été défini au chapitre 3. Cette étape est toutefois nécessaire, carc'est la détermination du score (intégrale des coûts minimale) qui détermine le cheminélasti<strong>que</strong> de correspondance optimale entre les deux vecteurs mis en correspondance. Lechemin optimal est utile pour déterminer le champ vectoriel de disparité entre les images<strong>que</strong> nous apparions (voir chapitre 3). Une étape de recouvrement du chemin est doncnécessaire.Seule l'étape de développement admet une forme parallèle et possède unecomplexité en O(N) (qui est proportionnelle à la longueur 2.N du plus long chemin dans lamatrice). L'étape de recouvrement nécessite peu de calculs (complexité O(N)) et peut êtreeffectuée sé<strong>que</strong>ntiellement. Il s'agit en effet d'un simple parcours d'une liste d'indirectionscalculées par l'étape de développement des chemins.L'algorithme de programmation dynami<strong>que</strong> ainsi défini nécessite toutefois, pourêtre implanté efficacement sur une machine parallèle, <strong>que</strong> celle-ci comporte autant deTIMERS (élément de mesure du temps) <strong>que</strong> la matrice de programmation dynami<strong>que</strong>possède d'éléments. Une implantation correcte sur une machine parallèle, suppose <strong>que</strong>celle-ci ait un parallélisme de faible grain, et possède beaucoup de noeuds de calcul(jusqu'à 64K noeuds pour la résolution 256x256). Ce type de machine n'existe <strong>pas</strong>, ni pourles machines à usage général, ni pour les machines dédiées. Le plongement de l'algorithmesur les machines parallèle existantes est donc toujours sous optimal. L'énoncé d'un modèlede machine systoli<strong>que</strong> adaptée par une approche "bottom-up" 23 , permet de concevoir unemeilleure Adéquation Algorithme Architecture (A 3 ).4.1.5 Validation du modèle fonctionnel.Afin d'étudier la conformité du modèle avec une implantation parallèle, nous avonssimulé le système décrit par la machine systoli<strong>que</strong> analogue [Lec97]. Nous avons pour celautilisé une description fonctionnelle en C* (langage C parallèle) sur la machine CM-5(Connection Machine de Thinking Machine Corporation). Cette machine est massivementparallèle et possède une architecture très favorable au plongement d'un algorithme répartispatialement sur une grille 2D de noeuds de calcul (son réseau de connexion y estfavorable). Le langage C parallèle qui permet sa programmation possède des propriétés devirtualisation, puisqu'il permet de simuler le fonctionnement d'une grille 2D (shape) dedimension virtuelle arbitraire, indépendamment de la dimension physi<strong>que</strong> de la machine.La machine CM-5 possède un parallélisme de gros grain, puis<strong>que</strong> cha<strong>que</strong> noeud estconstitué de processeurs généralistes (SPARC). Son modèle de programmation est dit23 de la machine vers les algorithmes qu'elle serait susceptible de supporter98


SPMD (Single Process Multiple Data) qui est une variante du modèle MIMD (MultipleInstruction Multiple Data) de la classification de Flynn.Décrire un algorithme en langage parallèle suppose <strong>que</strong> l'on précise la significationdes ses directives. La directive Sur (with du C*) délimite le traitement effectué enparallèle. Cela signifie <strong>que</strong> les variables appartiennent à un processeur de la grille 2D(forme ou shape en C*) ; cha<strong>que</strong> variable élémentaire est donc implicitement indexée parla position du processeur. La directive Où (where du C*) est une forme parallèle de ladirective sé<strong>que</strong>ntielle Si ; elle a donc une signification conditionnelle sur un processeurparticulier (dans notre cas TIMER).Deux formes de l'algorithme sont données, l'une abrégée (figure 4.5a) et l'autredétaillée (figure 4.5b)._________________________________________________________________________Remplir le tableau de ressemblance entre pixel (initialise les TIMERS)Tant <strong>que</strong> les TIMERS (N, ?) ou (?, N) ne sont <strong>pas</strong> atteintsSur les processeursOù le TIMER atteint 0Où le TIMER adjacent ne dé<strong>pas</strong>se <strong>pas</strong> la matriceDéveloppe un nouveau chemin (Rend actif le compteur adjacent) etmémorise la direction sSur les processeursDécrémente les TIMERS actifsIncrémente le compteur tempsFin de Tant <strong>que</strong>Score = tempsBacktracking à l'aide des directions s mémorisées_________________________________________________________________________Figure 4.5a : Algorithme parallèle - principeL'algorithme de la figure 4.5a décrit le fonctionnement du système deprogrammation dynami<strong>que</strong> simulé sur la CM-5. Il apparaît <strong>que</strong> les calculs effectifs sonttrès localisés. En effet la directive Où concerne peu de processeurs simultanément. Lacharge de calcul sur l'ensemble des processeurs est faible. Ces processeurs effectuentd'ailleurs des opérations très simples, car il ne s'agit <strong>que</strong> d'additions et de comparaisons.Une forme détaillée de cet algorithme est donnée dans la figure 4.5b.99


_________________________________________________________________________Définir forme Processeur(N,N)Remplir le tableau de ressemblance des valeursD(s,i,j) ← dij.C(s)Tant <strong>que</strong> [ D(diagonale,N,N) >= 0] fairePour s dans les trois directions faireSur ProcesseurNouvelle Position ← (-1,-1)Où PE(s) = inactifOù D(s) (N,N)Nouvelle Position ← (-1,-1)Pour s dans les trois directions faireSur ProcesseurOù Nouvelle Position (-1,-1)Où PE(toutes directions) = inactifDirection ← sPE(s) ←ActifPour s dans les trois directions faireSur ProcesseurOù PE(s) = actifOù D(s) >= 0D(s) ← D(s)-1Time ← Time+1Fin de Tant <strong>que</strong>Score = Time(* Score mesure la ressemblance entre les vecteurs *)(* Backtracking *)Chemin(i,j) ← 0Position ← (N,N)Tant <strong>que</strong> (Position (0,0)) faireChemin(Position) ← 1Position ← Position - Direction(Position)Fin de Tant <strong>que</strong>(* chemin(i,j) contient le chemin optimal *)_________________________________________________________________________Figure 4.5b : Algorithme parallèle - détaillé100


Étant donné <strong>que</strong> cette formulation est très conditionnée par la position duprocesseur dans la grille 2D de processeurs, pour atteindre certaines performances, ilfaudrait être à même de contrôler l'allocation dynami<strong>que</strong> des ressources de calcul. Maisnotre but n'est <strong>pas</strong> d'optimiser l'algorithme, mais de valider la spécification fonctionnelledu modèle systoli<strong>que</strong> de machine dédiée [Pis98a]. Le modèle SPMD de la machine CM-5est d'ailleurs suffisamment souple et généraliste pour permettre une telle validationfonctionnelle.À cette étape nous avons pu prouver l'équivalence entre la simulation sé<strong>que</strong>ntielledu modèle mécani<strong>que</strong> analogue, et la formulation fonctionnelle explicitement parallèle dumodèle sur la machine CM-5. Cette démarche a été une première étape dans la péréquationdes modèles ainsi décrits. Une équivalence de fonctionnement a été prouvée, en fournissantaux deux implantations (sur une machine parallèle, et l'autre sé<strong>que</strong>ntielle) des données(images) complexes. Un <strong>pas</strong> particulièrement délicat a d'ailleurs été franchi dans larésolution systémati<strong>que</strong> des conflits entre événements simultanés. La formulation parallèlenécessite en effet de décrire explicitement et exhaustivement les cas de conflit. Il se posedéjà à cette étape de description fonctionnelle la nécessité d'une preuve, puis<strong>que</strong> leparallélisme implicite décrit dans un langage sé<strong>que</strong>ntiel, exige une certaine exhaustivitélorsqu'il est explicité.La description fonctionnelle en C* sur la machine CM-5 formule une description deplus en plus précise de la machine <strong>que</strong> nous souhaitons réaliser, puis<strong>que</strong> l'on peut déjà voirqu'elle est constituée pour cha<strong>que</strong> PE de la grille 2D, de compteurs et de comparateurs.101


4.2 Mise en oeuvre des calculs de programmation dynami<strong>que</strong> sur des images.Nous avons décrit le modèle du système de programmation dynami<strong>que</strong>. Il endécoule une description fonctionnelle <strong>que</strong> nous avons validée. Il faut adapter la descriptionafin qu'elle soit synthétisable. Lors<strong>que</strong> l'on conçoit un système les contraintes de réalisationmatérielle exigent <strong>que</strong> l'on fasse des concessions pour permettre la "réalisabilité" dusystème.Nous avons vu à la section précédente <strong>que</strong> le chemin de programmation dynami<strong>que</strong>recherché débute au premier élément de la matrice et se termine aux bords inférieur et droitde la matrice de programmation dynami<strong>que</strong>. Cette configuration de la machine estdéfavorable pour deux raisons. Ces raisons sont d'ordre algorithmi<strong>que</strong>s et architecturalestout à la fois.La première raison d'ordre algorithmi<strong>que</strong> tient aux propriétés de la programmationdynami<strong>que</strong>. Cet algorithme, <strong>que</strong>l<strong>que</strong>s soient les conditions initiales du calcul, déterminegrâce à l'optimalité de la fonction de coût locale, une solution globalement optimale. Nousavons défini une telle fonction de coût local, mais dans le domaine des images où nousappliquons l'algorithme, il est difficile de démontrer <strong>que</strong> ce coût est optimal. En effet, lespoids déterminé lors de l'énoncé de la fonction de coût (chapitre 3) ont été déterminésexpérimentalement ; les propriétés de la fonction de coût ne garantissent aucune optimalité.Il s'agit d'un problème ouvert.Le calcul de programmation dynami<strong>que</strong> (voir figure 4.6) donne correctement lerésultat. Toutefois le choix du point de départ du chemin comme l'origine de la matrice deprogrammation dynami<strong>que</strong>, conduit à l'apparition d'effets de bord. Le calcul deprogrammation dynami<strong>que</strong> débute avec des conditions initiales fausses. Grâce au critèred'optimalité de l'algorithme, et aux "bonnes" propriétés de la fonction de coût, le cheminconverge spatialement vers une solution juste, mais le calcul contient des effets de bord.Ce problème lié aux effets de bords est illustré par le résultat présenté sur la figure4.6. La condition initiale (origine du chemin optimal) et la condition finale (aboutissementdu chemin optimal) sont toutes les deux fausses, le nombre de noeuds de calcul étant faible(48x48 PE), les effets de bords apparaissent clairement.102


UUkiimage de référenceVVkj Calcul de programmationdynami<strong>que</strong>image à comparerFigure 4.6 : Mise en correspondance de deux lignes d'images (élision)Pour palier ce problème d'effet de bord, nous avons opté pour la solution d'agrandirles bords de la matrice, en présentant sur les bords le signal image répliqué en miroir.Durant sa progression spatiale, l'algorithme converge très rapidement. Il n'est donc <strong>pas</strong>utile d'ajouter beaucoup de réplication en miroir de l'image. Prati<strong>que</strong>ment, et <strong>que</strong>lles <strong>que</strong>soient les résolutions d'images (de 32x32 à 256x256) seulement 8 pixels sont répliqués auxbords des images. 8 pixels correspondent à 8/32=25% de la taille d'image au sommet de lapyramide, et convient à l'approximation initiale de la disparité. Une telle réplication(48x48) permet toutefois pour la partie qui concerne l'image (32x32), <strong>que</strong> le calcul deprogrammation dynami<strong>que</strong> débute avec une condition initiale correctement calculée.La deuxième raison architecturale de l'extension de la matrice de programmationdynami<strong>que</strong>, tient au fait <strong>que</strong> le chemin ne pourrait aboutir sur les bords entiers de lamatrice (inférieurs ou gauches) sans <strong>que</strong> la réalisation du système ne se compli<strong>que</strong>103


considérablement. Nous avons arbitrairement fixé la position de l'aboutissement duchemin, au dernier élément de la matrice. Cela entraîne un problème dans le calcul del'algorithme : le calcul a une condition finale fausse.De la même façon <strong>que</strong> précédemment, étendre l'image sur les bords avec un signalrépliqué en miroir permet <strong>que</strong> pour la partie centrale de la matrice qui concerne l'image, lerésultat soit correct. On ne prend en compte <strong>que</strong> la partie centrale du résultat correspondantà l'image totale. Les ajouts au bords ne sont utiles <strong>que</strong> pour "resynchroniser" la mise encorrespondance, et donc débuter et aboutir sur des conditions initiales et finalesacceptables. Cette "resynchronisation" est visible (en dehors de la matrice 32x32) sur lesimages de la figure 4.6.Le choix d'une réplication en miroir de l'image s'expli<strong>que</strong> car, mettre encorrespondance deux images ou leur miroir est équivalent du point de vue de l'algorithme(ça n'est <strong>pas</strong> le cas si l'on change la direction de parcours gauche-droite ou droite-gauche).Le calcul "inutile" qui est effectué sur les bords (on ne prend <strong>pas</strong> en compte son résultat)constitue donc un calcul dual correct qui va permettre de fixer des conditions initiales etfinales acceptables.La figure 4.6 permet de voir qu'une partie centrale (cadre noir) constitue un calcul"fiable" de programmation dynami<strong>que</strong>. Seule cette partie utile (dans la matrice 32x32) seraprise en compte. Le chemin optimal présenté en noir est entouré d'une zone grise quicorrespond aux processeurs qui ont participés à l'élaboration des chemins concurrents. Lazone grise correspond donc à des chemins qui n'ont <strong>pas</strong> aboutis. On peut constater sur cettefigure <strong>que</strong> seule une bande diagonale restreinte participe à l'élaboration du chemin. Cetteremar<strong>que</strong> donnera lieu à une optimisation spatiale de la machine de programmationdynami<strong>que</strong> (A 3 C).4.3 Évaluation temporelle par simulation de la machine de micro-programmationdynami<strong>que</strong>.Nous présentons dans cette section le même résultat qualitatif, sur les mêmesimages <strong>que</strong> dans la chapitre 2. Toutefois, des temps simulés d'exécution du circuit proposésont donnés. Ils permettent de prédire le temps pris par le calcul parallèle sur le processeurde micro-programmation dynami<strong>que</strong> <strong>que</strong> nous proposons. Les temps des algorithmesautres <strong>que</strong> la programmation dynami<strong>que</strong> correspondent à une exécution sur un processeurSPARC cadencé à 250 MHz.104


Images aériennes 256x256 de test du CEA :N°itérationTailled'imageTempsd'exécutionPDSPARC250(en ms)TempsestiméµPD Fc1MHz(en ms)Facteur decorrélation(%)FiltrageSPARC250(ms)MoindrescarrésSPARC250(ms)Recalagepro<strong>je</strong>ctifSPARC250(ms)CorrélationSPARC250(ms)1 32x32 269.2 8.235 35.08 44.0 39.9 116.6 9.82 32x32 273.1 7.611 52.75 40.4 33.4 123.1 9.93 32x32 260.7 7.952 44.13 40.5 17.9 116.1 9.64 64x64 1082 29.49 52.94 39.7 19.3 120.9 9.75 64x64 1051 29.09 48.92 39.3 27.0 115.3 9.56 128x128 3175 110.3 53.51 46.2 21.2 116.3 9.47 128x128 3275 110.8 53.32 47.0 25.4 118.8 9.48 256x256 20 056 468.3 59.28 41.9 25.8 115.7 9.49 256x256 19 737 467.0 57.25 40.3 23.4 117.3 9.4Total 49 179 1 239 379 233 1060 86Timings pour Fc=10MHz et SPARC 250 :µPDMoindrescarrésRecalage pro<strong>je</strong>ctifCorrélation0,2s 0,2s 1s 0,1sFiltrage0,4sTotal = 1,7 sFigure 4.7 : Résultats temporels de simulation de la machine de µPD.105


L'algorithme de programmation dynami<strong>que</strong>, tel <strong>que</strong> nous l'avons énoncé, établi unecorrespondance entre le coût local (donné par la fonction de coût) et un délai qui permet dedérouler temporellement les chemins qui se développent. Les chemins se développentconcurremment. Le score de programmation dynami<strong>que</strong> est donc proportionnel, d'aprèsnotre modèle, au temps d'exécution du calcul de programmation dynami<strong>que</strong>.Le score de programmation dynami<strong>que</strong>, moyennant un facteur multiplicatif tenantcompte de la cadence du processeur µPD, est lié au temps de calcul nécessaire poureffectuer le calcul. Une première approximation des temps de calculs est donc donnée surla figure 4.7. Elle ne tient compte <strong>que</strong> de la phase opérative du calcul correspondant audéroulement des chemins de programmation dynami<strong>que</strong>. Pour obtenir le temps totalnécessaire au calcul, il suffit de cumuler le score d'appariement de 2.N lignes (et colonnes)et de multiplier ce score global par la cadence d'horloge du circuit proposé (ici 10MHz estune fré<strong>que</strong>nce convenable). Pour obtenir ici le temps simulé correspondant au calcul demicro-programmation dynami<strong>que</strong>, il faut multiplier le temps total par 2 fois la cadence del'horloge (en MHz) puis<strong>que</strong> celui-ci ne tient compte <strong>que</strong> de la phase horizontale de calcul(le calcul est effectué sur les lignes et colonnes d'images).Ce <strong>que</strong> l'on peut remar<strong>que</strong>r, c'est <strong>que</strong> le temps obtenu par simulation est multipliépar 4 à cha<strong>que</strong> nouvelle résolution. On observe une progression géométri<strong>que</strong> 8 32 128 512du temps simulé. Cela confirme, s'il était nécessaire, la complexité en O(N 2 ) del'algorithme, N 2 étant la taille de l'image carrée. Nous avions en effet annoncé <strong>que</strong> lacomplexité d'appariement de deux lignes est O(N) (proportionnelle au chemin de plusgrande longueur 2.N dans la matrice). L'algorithme étant appliqué 2.N fois sur les lignes etcolonnes d'image, cela porte la complexité à O(N 2 ) pour l'appariement de deux images.Le temps global d'appariement de deux images obtenu par simulation est de l'ordrede grandeur d'une seconde, tel <strong>que</strong> nous souhaitions qu'il soit (chapitre 2). Le temps decalcul de la convolution nécessaire au filtrage des images est figuré en parallèle du tempsde calcul de micro-programmation dynami<strong>que</strong>, car le système de micro-programmationdynami<strong>que</strong> étant un coprocesseur indépendant, on peut considérer <strong>que</strong> la convolution peutêtre effectuée durant le calcul du µPD. Cela nécessite <strong>que</strong> l'on décrive plus précisément leprincipe du dispositif matériel global proposé. Cela fera l'ob<strong>je</strong>t du chapitre suivant.106


4.4 Commentaires.Nous avons proposé un modèle pour un système de micro-programmationdynami<strong>que</strong>. Ce modèle est inspiré des modèles de machines systoli<strong>que</strong>s. Les équationsmathémati<strong>que</strong>s de l'algorithme peuvent avoir une analogie mécani<strong>que</strong>. L'analogiemécani<strong>que</strong> qui constitue un modèle adapté pour le problème de mise en correspondanced'images, étaye une description fonctionnelle qui a été transcrite de manière équivalentesur diverses machines, et dans divers langages. Une preuve de fonctionnement a été faitegrâce à la qualité du résultat présenté, obtenu sur des images réelles et complexes. Ladescription fonctionnelle de la machine peut donc être formulée dans un langage (VHDL)permettant la synthèse. Le problème d'adéquation qui se pose alors exige d'avoir une idéeprécise de l'équivalence matérielle de la description fonctionnelle.La formulation parallèle, et son implantation explicitement parallèle (en C*)constitue la description fonctionnelle la plus proche d'éléments matériels synthétisables.C'est en reprenant cette description <strong>que</strong> nous pourrons obtenir une description structurellesynthétisable. Le <strong>pas</strong>sage d'une description fonctionnelle à une description structurelle estune problémati<strong>que</strong> d'architecture, et nécessite encore d'établir une preuve defonctionnement. La description fonctionnelle a permis de valider un modèle architectural.La description structurelle va permettre de vérifier <strong>que</strong> le modèle correspondcomplètement, à une réalité matérielle proposée. L'implantation matérielle de la machinepeut être réalisée de diverses façons, mais l'implantation adéquate de l'algorithme(description fonctionnelle) n'est effectif uni<strong>que</strong>ment <strong>que</strong> sur "une" structure architecturale.C'est cette uni<strong>que</strong> structure adéquate <strong>que</strong> nous développerons par la suite.Le problème qui se pose dorénavant n'est <strong>pas</strong> un problème d'optimisation (celui-cise posera ensuite) mais de concevoir une structure optimale qui permette l'implantationefficace d'un seul algorithme. Le but est de concevoir une machine dédiée. Toutefoisl'algorithme de programmation dynami<strong>que</strong> <strong>que</strong> nous implantons constitue une primitive decalcul suffisamment répandue pour <strong>que</strong> cette réalisation porte à consé<strong>que</strong>nce. L'apparitionde structures électroni<strong>que</strong>s programmable (FPGA = Field Programmable Gate Array) dedimensions acceptables, permet d'envisager de nouvelles structures simplement. Leprototypage réel <strong>que</strong> permettent ces structures ouvre la voie à la réalisation de structure demachines non conventionnelle (autre <strong>que</strong> Von Neumann ou Harvard respectivementconçues pour les microprocesseurs et les Digital Signal Processors ...).107


108


Chapitre 5. Réalisation et évaluation du prototype deprocesseur de micro-programmation dynami<strong>que</strong>.109


110


Les premiers chapitres nous ont permis de définir tout d'abord un algorithmegénéral de mise en correspondance (par un modèle rigide de déformation globale d'imagesaériennes). Puis un accent a été mis sur le point criti<strong>que</strong> de la méthode d'appariementglobal, constituée par la partie de bas niveau : le calcul de flot opti<strong>que</strong>. Une carte dedisparités dense entre deux images doit être obtenue, et l'établissement du champ devecteurs de déplacement est très coûteux en temps de calcul. Seul un dispositifélectroni<strong>que</strong> dédié à ce calcul est en mesure de satisfaire les contraintes de temps réelsévère qui sont imposées par notre application.Le chapitre précédent a permis de donner une base à la réalisation d'un dispositif, etdes concepts architecturaux ont été validés. Il s'est agit de formuler un modèle (systoli<strong>que</strong>)pour le processeur de micro-programmation dynami<strong>que</strong>. Ce modèle a été envisagé par uneanalogie mécani<strong>que</strong> impliquée par la formulation mathémati<strong>que</strong> du problème de larecherche d'un plus court chemin entre deux vecteurs constitués de pixels. Ce problème,qui s'apparente au problème du voyageur de commerce, est résolvable par programmationdynami<strong>que</strong>. Dans le cas de la mise en correspondance d'images, la programmationdynami<strong>que</strong> orthogonale fait usage 2.N fois (N étant la taille de l'image carrée) del'algorithme de programmation dynami<strong>que</strong> 1D. C'est donc à la réalisation de cette primitive1D <strong>que</strong> nous consacrons cette partie du mémoire.Il faut prévoir dans notre démarche de description, autant la partie opérative (lecoeur du processeur) <strong>que</strong> les entrées/sorties qui lui permettent de communi<strong>que</strong>r avec sonenvironnement, et même plus largement, le dispositif embarquable dans le<strong>que</strong>l il s'intègre.Lors de la conception du circuit VLSI µPD il faut non seulement définir ses partiesopératives et contrôle, mais aussi arrêter ses entrées/sorties, les moyens pour rendre sonarchitecture extensible (scalability).Nous nous sommes attachés à la réalisation d'un prototype de processeur de microprogrammationdynami<strong>que</strong>. Le dispositif dans le<strong>que</strong>l un tel processeur s'intégrera n'estencore qu'une ébauche. On peut toutefois concevoir plus largement qu'il ne s'agit <strong>pas</strong> deconcevoir un processeur de micro-programmation dynami<strong>que</strong>, mais plutôt un systèmed'appariement d'images aériennes dans le<strong>que</strong>l il s'intègre. La conception du prototype dudispositif, à l'aide des composants actuels, étant donné la forte densité d'intégration <strong>que</strong>celle-ci exige, ne permet <strong>pas</strong> d'envisager la réalisation complète et performante <strong>que</strong> noussouhaiterions. Il faut donc adopter une structure modulaire, tout en ayant une conceptionclaire du système envisagé.111


5.1 Architecture proposée du système de mise en correspondance d'images.Le système de mise en correspondance d'images contient plusieurs éléments decalcul (figure 5.1). D'une part, il contient 1 ou plusieurs processeurs µPD suivant la tailledes images, et la densité de Processeurs Élémentaires intégrables dans <strong>ceux</strong>-ci. Ce(s)processeur(s) nécessitent un pilote constitué par un micro-contrôleur. Celui ci contrôle lechargement des données images à apparier, et permet d'extraire le résultat (cheminoptimal) du calculateur µPD. Il fournit à ce calculateur les images rectifiées au cours desdifférentes étapes du recalage pro<strong>je</strong>ctif. Il calcule aussi, à partir du chemin deprogrammation dynami<strong>que</strong>, la disparité stéréoscopi<strong>que</strong> c'est-à-dire le champ de vecteurs dedéplacement. Le champ de vecteur est transmis à un processeur de calcul flottant (DSP) quieffectuera l'ajustement du modèle pro<strong>je</strong>ctif par rapport à ce champ. Le processeur transmeten retour une image recalée pro<strong>je</strong>ctivement au micro-contrôleur.données images1216Entréesdirectionnellesµ PD(s)2Contrôle de(dé)chargementdes donnéesSortie chemin3MémoireImagesµ ContrôleurMémoireRésultat16SortiesdirectionnellesDisparitésRecalageProcesseur de calcul flottant (DSP)Figure 5.1 : Architecture du système pour le recalage pro<strong>je</strong>ctif des images.Il y a dans ce système 3 niveaux dans la classification des algorithmes de traitementd'images. Le bas niveau est le calcul de flot opti<strong>que</strong> réalisé par le calculateur µPD. Leniveau intermédiaire est celui du calcul du modèle pro<strong>je</strong>ctif dans le DSP. Le plus hautniveau peut être situé aussi dans le DSP qui contrôle le déroulement de l'algorithme (par ladétermination de la qualité du recalage pro<strong>je</strong>ctif) et permet de prendre une décision à partirde la mesure de déplacement (de la caméra) effectuée. Le micro-contrôleur permet de faire112


l'intermédiaire entre le bas et le haut niveau, et sé<strong>que</strong>nce les mouvements de données(driver). Les flux de données sont un transfert régulier entre lescalculateur→contrôleur→processeur→contrôleur→calculateur qu'il faudra aussi prendreen compte pour évaluer les performances de l'algorithme sur cette architecture. Chacun deséléments a sa cadence d'horloge propre. Dans l'état de progression de nous travaux, notresouci immédiat n'étant <strong>pas</strong> l'embarquabilité, seule la partie de bas niveau constituée par lecalculateur a été prototypée grâce à un FPGA (Field Programmable Gate Array). Lesopérations de plus haut niveau sont émulées par un ordinateur standard (PC).5.2 Architecture du processeur de micro-programmation dynami<strong>que</strong>.L'organisation qui est schématisée par la figure 5.2 constitue l'architectureminimale, telle <strong>que</strong> nous l'avons d'abord envisagée. Elle convient à la mise encorrespondance, en 1 bloc calculateur µPD, d'une image 256x256.top nn16clkminimuminoou ino ioufincompteurtop6celluleckcnt64chargeT-edgex66scompar6down nnvaleur6registreen3rcoloadhalfoorthodiagosuesosu16rwshiftresetencodeurreadwritechainetransavant<strong>je</strong>ton (n-1)cex(256+16).(5+4)x(256+16).(5+4)razldloadoesmemsortie2<strong>je</strong>ton (n)suivant2stopmem<strong>je</strong>ton0start<strong>je</strong>ton suivantavanthorFigure 5.2 : Organisation d'un système minimum pour l'architecture d'un µPD.113


5.2.1 Optimisation spatiale du calculateur.Plusieurs éléments fonctionnels ont été mis en oeuvre. Nous détaillerons chacun deces éléments, toutefois il faut se pencher sur les optimisations possibles du calculateur[Pis99]. Le cas de la mise en correspondance d'image par programmation dynami<strong>que</strong> estspécifi<strong>que</strong>. De plus, les contraintes de l'application bornent la recherche de disparité dansles images. Nous avons pu vérifier au chapitre 4 <strong>que</strong> seule une bande diagonale de largeurréduite contribue au calcul parallèle de l'algorithme de programmation dynami<strong>que</strong> d'unepart. D'autre part, la méthode pyramidale adoptée dans l'algorithme général, augmente laportée de la recherche du vecteur disparité. Le tableau 5.1 fixe la limite théori<strong>que</strong> de laportée du vecteur de disparité en fonction de la résolution (pyramidale) de l'image.RésolutionpyramidaleLargeur de la bandediagonaleNombre de PE/ligne32x32 9 (9+8)=1764x64 9 (9+8)=17128x128 7 (7+6)=13256x256 5 (5+4)=9Limitation de laportée en % d'image± 832 ⇔ 50%± 864 ⇔ 25%± 6128 ⇔ 10%± 4256 ⇔ 3%Tableau 5.1 : Limite théori<strong>que</strong> de la portée du vecteur disparité, fonction de la résolutionpyramidale d'image.La résolution pyramidale indiquée dans le tableau 5.1 convient à la mise encorrespondance pyramidale, par programmation dynami<strong>que</strong> 1D orthogonale, d'une image256x256. La mise en correspondance contient donc 4 étapes, à 4 résolutions distinctes. Aucours des étapes successives de l'algorithme, le recalage pro<strong>je</strong>ctif étant de plus en plus fin,c'est un champ de disparité résiduel de plus en plus faible <strong>que</strong> nous avons à estimer. Il estdonc permis de limiter au cours des étapes successives, la largeur de la bande diagonale.Cette limitation est une optimisation qui diminue le nombre de PE mis en <strong>je</strong>u, pour unecomplexité spatiale qui reste en O(N).La taille de l'image étant 256x256, le nombre d'éléments de calculs mis en <strong>je</strong>u est(256+16).(5+4) qui est proportionnel à la dimension (N=256) d'image. Ce calcul estreprésenté dans la figure 5.2 comme facteur multiplicateur du nombre d'élémentsfonctionnels mis en oeuvre. Le nombre 16 qui entre en <strong>je</strong>u dans le calcul du nombre de PEconstitue le nombre d'éléments de la matrice de programmation dynami<strong>que</strong> ajoutés lors del'extension de la matrice, pour éviter les effets de bord du calcul (voir chapitre 4). La114


somme (5+4) prend en compte l'organisation spatiale de la diagonale de processeursélémentaires, et est illustré par la figure 5.3.126374859Figure 5.3 : Organisation spatiale du processeur de micro-programmation dynami<strong>que</strong>.La figure 5.3 représente un extrait du système minimum envisagé pour la réalisationd'une matrice de programmation dynami<strong>que</strong>. La diagonale de PE implantés, figurée par leséléments grisés de la matrice, est de largeur 5, et nécessite 9 PE par couche diagonale.Toutefois, la disparité étant relevée horizontalement (ou verticalement) par rapport à ladiagonale de la matrice, la disparité (portée du vecteur mesurée) acceptable est de ±4pixels 24 .Le système minimum est composé d'une bande diagonale d'éléments de calculsconstituant des processeurs élémentaires. Si l'on se réfère à la figure 5.2, cha<strong>que</strong> PE estconstitué d'une cellule (de calcul) et d'un élément chaîne. La description structurelle d'unecellule sera donnée par la suite, puisqu'elle définit la partie opérative du PE. Nous allonsd'abord nous intéresser au mouvement des données (chargement et déchargement ducalculateur µPD).24 Cela convient à la résolution d'image originale (256x256) et est convenable pour une approximation finedu champ de vecteurs à 3% (de la taille d'image) près du vecteur résiduel.115


5.2.2 Chemin des données dans le calculateur.Le système minimum est constitué de (256+16).(5+4) Processeurs Élémentaires.Son fonctionnement décrit 3 étapes. Il faut tout d'abord charger les données correspondantà la fonction de coût, effectuer le calcul de programmation dynami<strong>que</strong>, puis lire le résultatpermettant de reconstituer le chemin calculé (permettant le recouvrement). Ces trois étapessont donc :1 - Initialisation,2 - Calcul,3 - Lecture du résultat.Le processeur de calcul correspond structurellement à la description ce la cellule dela figure 5.2. Les mouvements de données se font aux étapes 1 et 3. Il faut attendre la finde chacune des étapes pour <strong>pas</strong>ser à la suivante. Il faut, dans les étapes 1 et 3, <strong>que</strong> latotalité des cellules soient initialisées puis <strong>que</strong> le résultat soit lu dans toutes les cellules,pour <strong>pas</strong>ser à l'étape suivante. Ainsi, il est indifférent pour le fonctionnement du système<strong>que</strong> le chargement et déchargement des données dans une cellule soit sé<strong>que</strong>ntiel (unecellule après l'autre) ou aléatoire (on peut adresser individuellement chacune des cellules).Un accès aléatoire (Random Access) pour le (dé)chargement des cellules est trèscoûteux en matériel, et complexe à mettre en oeuvre. Cela suppose une logi<strong>que</strong> dedécodage d'un bus d'adresse, et l'accès individuel à cha<strong>que</strong> cellule est très pénalisant dupoint de vue du routage (complexité des connexions) du dispositif. Puis<strong>que</strong> l'accèsaléatoire aux cellules n'est <strong>pas</strong> nécessaire, il est alors préférable d'utiliser un(dé)chargement sé<strong>que</strong>ntiel des données nécessaires au calcul. Sur la figure 5.2 sontreprésentés un bus d'entrée sur 12 bits (6 compteur, et 6 valeur) permettant l'initialisationdes cellules. Il est aussi représenté un bus de sortie sur 2 bits (mem) qui permet la lecturedu résultat. Afin de gérer les entrées/sorties de données dans le calculateur, un <strong>je</strong>ton circulede PE en PE qui permet de désigner successivement chacun des PE, et permettre le(dé)chargement sé<strong>que</strong>ntiel de chacun d'entre eux.À cha<strong>que</strong> cycle (asynchrone) du signal shift (pour le décalage du <strong>je</strong>ton de PE enPE) chacun des processeurs élémentaires constituant une chaîne est initialisé par le busd'entrée (12 bits) ou une lecture du résultat est effectuée sur le bus de sortie (2 bits). Lemécanisme de transmission du <strong>je</strong>ton de PE en PE est réalisé par l'élément chaîne (de lafigure 5.2) qui correspond à une bascule D d'un registre à décalage (un point de vuefonctionnel). La distinction entre un cycle d'écriture (à l'étape 1) ou de lecture (à l'étape 3)est réalisée par le signal rw (read ou write). Un signal reset permet la réinitialisation de laposition du <strong>je</strong>ton (dans le PE numéro 1).116


Afin de prévoir la mise en cascade de plusieurs processeurs µPD, un élément dedébut de chaîne (<strong>je</strong>ton) et une entrée start, ainsi qu'une sortie stop sont disponibles àl'extérieur du système minimum.Les ordres de lecture/écriture sur les bus d'entrée/sortie donnés par la combinaisonde l'ordre de décalage (shift) du <strong>je</strong>ton et de l'état rw, sont cadenceables à la fré<strong>que</strong>nced'horloge (clk) ou des fré<strong>que</strong>nces inférieures, ce qui permet de grandes performances dansles mouvements de données. Nous présenterons une évaluation de performances(chronogrammes mesurés) par la suite.Pour résumer, chacun des processeurs élémentaires de la matrice de programmationdynami<strong>que</strong> est adressé sé<strong>que</strong>ntiellement pour initialiser le calcul de programmationdynami<strong>que</strong>, et en lire le résultat de calcul. Le mécanisme matériel de lecture/écritures'apparente au accès des mémoires de masse (dis<strong>que</strong> dur, CDROM etc ...) et s'oppose àcelui des mémoires à accès aléatoire (ROM, RAM etc ...). C'est un accès à débit important,qui favorise les performances au regard de la quantité de données à transférer. Celaconvient tout à fait à un processeur de traitement d'images où les mouvements de donnéessont un point criti<strong>que</strong> de la réalisation matérielle. Un tel accès sé<strong>que</strong>ntiel aux éléments demémorisation est souvent présent sur tous les processeurs pour autoriser le debuggage etpar consé<strong>que</strong>nt l'observabilité du fonctionnement (JTAG). C'est un mécanisme analogue, etqui est aujourd'hui devenu standard, qui nous permet le mouvement des données dans lamatrice de processeurs. Il a été adopté pour le test des composants, pour son faible coûtmatériel et ses performances, et permet dans le même ordre d'idée un accès rapide auxéléments de notre calculateur.117


5.2.3 Élément de calcul d'un processeur élémentaire.La figure 5.4 constitue une description structurelle de la cellule d'un processeurélémentaire [LeC98].LoadCompteurdij.C(ortho)RCOSorties SUD & ESTRegistre = dij.C(diag)EntréesCEComparateur


participé à l'élaboration du chemin, il faut qu'elle ait été activée). Le point mémoire estaussi représenté sur la figure 5.4.Afin de générer les deux délais paramétrables (orthogonaux et diagonaux),déclenchés par l'activation de la cellule, l'élément fonctionnel principal de la cellule estconstitué par un compteur 6 bits (selon le choix effectué au chapitre 3). Le comptage decelui-ci est déclenché par l'encodeur prioritaire par le signal CE (Count Enable). Lors<strong>que</strong>ce compteur arrive à la fin du comptage (signal RCO), il active ses voisins orthogonaux(sud et est). C'est le délai paramétrable long nécessaire à la réalisation de la fonction decoût temporel. Mais avant <strong>que</strong> cet événement orthogonal ne survienne, il se produit unévénement diagonal. Lors<strong>que</strong> le compteur arrive à une valeur intermédiaire de comptage,par analogie, le domino diagonal doit chuter. D'un point de vue fonctionnel, on doit doncmettre en oeuvre un comparateur de la valeur de comptage, par rapport à un seuil (délaidiagonal). Cette fonction est réalisée par la présence d'un registre contenant la valeur deseuil de comparaison, et d'un comparateur <strong>dont</strong> l'état déclenche l'activation diagonale (sudest).Afin d'initialiser les deux délais d'activations, il faut donner à cha<strong>que</strong> cellule deuxvaleurs sur 6 bits, qui vont permettre de paramétrer les deux délais. Le mécanisme de<strong>pas</strong>sage de <strong>je</strong>ton permet de désigner le chargement d'une cellule parmi l'ensemble de cellesde la matrice de programmation dynami<strong>que</strong> (calculateur). Le chargement se fait donc parun bus 12 bits, en entrée (voir figure 5.2). Les valeurs des deux délais sont données par lecalcul de la fonction de coût (voir chapitre 3), et sont les valeurs dij.C(ortho) et dij.C(diag).Du point de vue du système global, c'est au micro-contrôleur (figure 5.1) qu'il incombe defournir ces deux valeurs, d'après une table de transcodage (mémoire) permettant le calculde la fonction de coût, à partir des valeurs d'intensité lumineuse des pixels d'images.De la même façon, pour extraire le résultat du point mémoire 2 bits de chacune descellules, le <strong>pas</strong>sage du <strong>je</strong>ton d'un PE à l'autre, va permettre la lecture sé<strong>que</strong>ntielle durésultat du calcul. Le chemin recherché, par l'algorithme de programmation dynami<strong>que</strong>,dans la phase de recouvrement, peut donc être déterminé.L'ensemble des cellules, et des éléments de la chaîne (pour le <strong>pas</strong>sage du <strong>je</strong>ton)regroupés, constituent les Processeurs Élémentaires de programmation dynami<strong>que</strong>, et sontorganisés selon le schéma de la figure 5.3. L'interconnexion des PE est locale, pour d'unepart la transmission de l'activation des cellules, et d'autre part la transmission du <strong>je</strong>ton parles éléments de la chaîne (registres à décalage). Par contre, 2 bus globaux, un de 12 bits enentrée, et un de 2 bits en sortie, doivent parvenir à chacun des PE. Le routage d'une tellearchitecture, du point de vue de la réalisation, grâce à la localité des transferts de données,est très favorable aux dispositifs VLSI actuellement disponibles 25 .25 notamment, les FPGA actuels, qui autorisent la réalisation de bus 3 états dans leur conception.119


5.3 Extensibilité du circuit.Les dispositifs VLSI actuellement disponibles (FPGA, ASIC) permettent de réalisermatériellement, seulement une partie du dispositif <strong>que</strong> nous souhaiterions réaliser. Unaspect important de notre réalisation doit donc être un souci d'extensibilité du calculateurµPD. Notre réalisation possède la topologie d'une grille 2D de processeurs élémentaires(matrice de programmation dynami<strong>que</strong>). L'extensibilité 26 peut être réalisée de deuxmanières. L'une consiste à cascader les calculateurs, et donc à constituer un réseau linéairede calculateurs. C'est une solution <strong>pas</strong> toujours évidente à adopter, du point de vue de lamise en oeuvre, mais qui convient aux performances temporelles souhaitables.Une autre solution consiste à rendre le processeur virtualisable. Par exemple, lafamille des processeurs TMS C40 de Texas Instrument, possède de telles propriétés devirtualisation. Pour ces processeurs, il est possible à l'aide d'un nombre réduit deprocesseur (avec 1 processeur éventuellement) d'implanter le même code <strong>que</strong> pour un largeréseau de processeurs (les processeurs C40 sont prévus pour être implantés en réseauphysi<strong>que</strong>). Afin de permettre la virtualisation, des mécanismes hardware doivent êtreimplantés.Ces deux solutions autorisant l'extensibilité du circuit vont être développées.5.3.1 Réseau de calculateurs µPD.La figure 5.5 détaille la mise en cascade de 3 calculateurs µPD de dimensiondiagonale 5x3. Chacun de ses calculateurs contient (5+4).3=27 PE. C'est une dimensionacceptable pour un système réduit de micro programmation dynami<strong>que</strong>, puis<strong>que</strong> dans uncircuit programmable XC4010XLPC84 de Xilinx (FPGA) nous avons pu implanter 21 PE(avec un taux de remplissage de 70%). Malheureusement, un tel système réduit ne permet<strong>pas</strong> d'effectuer des calculs sur des images. Pour traiter une image 32x32, il faudrait uncalculateur de (5+4).(32+16)=432 PE. Une solution pour étendre la machine consiste àmettre en cascade des calculateurs, pour en constituer un réseau linéaire.Sur la figure 5.5, chacun des PE est figuré par un carré hachuré. Cha<strong>que</strong> PE del'extrémité basse de la diagonale, pour le premier calculateur, est cascadé par ses sorties(down) avec les entrées (top) du deuxième calculateur. À l'échelle d'un PE, celui-cipossède 3 entrées et 3 sorties. Ces entrées/sorties sont reliées de manière interne aucalculateur, aux voisins amont/aval de cha<strong>que</strong> PE. Lors<strong>que</strong> ce voisin ne se situe <strong>pas</strong> àl'intérieur du calculateur, cela donne lieu à des entrées/sorties directionnelles. Cesentrées/sorties directionnelles (au nombre de 16) sont représentées sur la figure 5.1, etautorisent donc la mise en cascade des calculateurs µPD. Elles sont aussi représentées sur26 faculté à pouvoir utiliser le calculateur pour traiter des images aussi larges qu'il est souhaitable.120


la figure 5.2 et se nomment alors "top nn" et "down nn". Elles permettent <strong>que</strong> le calculsystoli<strong>que</strong> de l'algorithme de programmation dynami<strong>que</strong>, se propage de calculateurs encalculateurs.La propagation de l'initialisation des cellules est aussi à prendre en compte, ainsi<strong>que</strong> la lecture du résultat du calcul, par propagation du "<strong>je</strong>ton" entre calculateurs.L'initialisation et la lecture du résultat, sur un réseau de calculateurs µPD doit êtreéquivalente à l'initialisation/lecture sur un seul calculateur µPD.Calculateur No1Calculateur No2Calculateur No3Start1Stop1Start2Stop2Start3Stop3Figure 5.5 : Mise en cascade de calculateurs, pour obtenir un réseau.Il est représenté sur la figure 5.5 le parcours de propagation du <strong>je</strong>ton dans lecalculateur, ainsi <strong>que</strong> sa transmission de calculateurs en calculateurs. Les entrées/sortiesstart et stop sont chaînées entre calculateurs pour <strong>que</strong> le <strong>je</strong>ton circule entre les puces misesen cascade. Ainsi, l'initialisation sérialisée des calculateurs est rendue possible, et cha<strong>que</strong>puce possède le même bus sur 12 bits en entrée, et sur 2 bits en sortie. La gestion du buscommun 2 bits en sortie suppose aussi <strong>que</strong> les puces soient connectées sur un buffer 3 états(mise en haute impédance).121


Un réseau de calculateurs comme celui-ci est envisageable. Mais cela donne unsystème lourd à mettre en oeuvre, et de plus, les éléments étant sérialisés un défaut sur l'undes PE entraîne la panne du réseau complet. C'est malgré tout la solution la plusperformante du point de vue temporel qui puisse être construite. Il est possible deconcevoir une solution moins performante, mais sans doute plus fiable, en prévoyant desstructures matérielles de virtualisation du calculateur.5.3.2 Processeur virtualisable.Le concept d'un processeur virtuel de micro-programmation dynami<strong>que</strong> systoli<strong>que</strong>,consiste à prévoir qu'une fois le calcul effectué sur un tronçon diagonal de la matrice deprogrammation dynami<strong>que</strong>, le même calculateur va servir à nouveau pour calculerl'ensemble de la diagonale. S'il est impossible d'implanter physi<strong>que</strong>ment la totalité de labande diagonale de processeurs élémentaire, et <strong>que</strong> l'on en implante seulement une partie,ce même tronçon va servir plusieurs fois au calcul total de la diagonale complète. Il s'agitd'une virtualisation à gros grain 27 .top nnREG/INCNTCNTREG/OUTdown nnFigure 5.6 : Calculateur de micro-programmation dynami<strong>que</strong> virtualisable.27 Cette virtualisation diffère de la virtualisation à grain fin introduite par les CM-1/2. Dans ce dernier cas,on connaît à priori le nombre de processeurs virtuels. Ce nombre sera équitablement simulé par cha<strong>que</strong> PEphysi<strong>que</strong>, qui réitérera autant de fois l'exécution d'une même instruction dans les environnements d'exécutionde ses PE virtuels.122


Il s'agit de concevoir tous les mécanismes qui vont permettre qu'un seul calculateurpuisse effectuer un calcul complet sur l'ensemble d'une image, même si la dimensionphysi<strong>que</strong> du calculateur est inférieure à celle de l'image. D'un point de vue fonctionnel, lecalculateur virtualisé constitue une fenêtre de dimension fixe glissant le long d'unediagonale. Ce glissement permet le calcul de programmation dynami<strong>que</strong> par tronçons dediagonale. On doit donc être à même de prélever les résultats issus de l'aval de ladiagonale, pour "réalimenter" le calculateur en amont du tronçon de la diagonale glissante.La figure 5.6 représente un calculateur contenant (5+4).3=27 PE. Il contient donc 3couches :- une couche d'entrée interfacée par les signaux "top nn",- une couche de calcul connectée en interne avec les PE voisins amont et aval,- une couche de sortie interfacée par les signaux "down nn".Ce calculateur est virtualisable, c'est-à-dire qu'il peut constituer un tronçon decouches de PE qui va successivement être employé au calcul d'une diagonale (5+4).3.n,avec n entier.Afin de rendre virtualisable ce calculateur, du matériel électroni<strong>que</strong> a été ajouté. Ils'agit en entrée comme en sortie d'un compteur CNT, d'une batterie de registres (REG/IN etREG/OUT) et de comparateurs. Afin de décrire le mécanisme virtuel, nous allons décrired'abord la virtualisation de la sortie du calculateur.Le calculateur est initialisé (étape 1 par <strong>pas</strong>sage du <strong>je</strong>ton), et le lancement du calculest effectué. On a vu (dans le chapitre 4) <strong>que</strong> le lancement du calcul s'effectue par lapercussion du PE diagonal en tête de la matrice. Sur la figure 5.6 la diagonale de PEdiagonaux est représentée par des carrés hachurés clair. Le calcul de programmationdynami<strong>que</strong> suit la sé<strong>que</strong>nce suivante :Les PE sont d'abord initialisés par les dij.C(s) par le <strong>pas</strong>sage du <strong>je</strong>ton. L'étape 1d'initialisation est effectuée. Le calcul (étape 2) est lancé, le PE qui reçoit le lancement ducalcul est ici le premier de la diagonale désigné par une flèche noire (signal top). À la suitedu lancement du calcul, l'onde de propagation d'activation des PE parcourt la bandediagonale d'amont en aval. La virtualisation en sortie du calculateur consiste alors en lasé<strong>que</strong>nce suivante :- Dès qu'un PE de la couche de sortie du calculateur est activée (un domino chutesur la ligne d'arrivée) le compteur de sortie est autorisé à compter (Count Enable).- Cha<strong>que</strong> nouvel événement sur la couche de sortie est scruté, et pour chacun desévénements, l'état du compteur (valeur de comptage) est stocké dans la batterie de registresde sortie (REG/OUT).123


- Lors<strong>que</strong> tous les événements sur la couche de sortie se sont produits, le calcul deprogrammation dynami<strong>que</strong> prend fin.La mémorisation de l'activation est alors extraite du calculateur grâce aux pointsmémoire 2 bits (<strong>pas</strong>sage du <strong>je</strong>ton). L'étape 3 est alors accomplie pour un tronçon. Par lasuite la fenêtre (tronçon diagonal) glisse sur la diagonale, et cha<strong>que</strong> PE est initialisé par lesdij.C(s) correspondant au tronçon suivant (étape 1 par <strong>pas</strong>sage du <strong>je</strong>ton). La virtualisationen entrée du calculateur consiste alors en la sé<strong>que</strong>nce suivante :- La batterie de registres d'entrée (REG/IN) est chargée à l'aide des valeurs desregistres de sortie obtenues précédemment (REG/OUT).- Le compteur d'entrée est autorisé à compter (Count Enable).- Dès <strong>que</strong> la valeur de comptage du compteur d'entrée atteint la valeur stockée dansla batterie de registres d'entrée (REG/IN), l'événement correspondant est déclenché sur lessignaux "top nn".- Lors<strong>que</strong> tous les événements d'entrée ont eu lieu, le compteur cesse de compter, etla virtualisation reprend en sortie par un nouveau glissement du tronçon diagonal.C'est ainsi <strong>que</strong> de proche en proche, les étapes de calcul de 1 à 3 (Initialisation,Calcul et Lecture du résultat) sont répétées autant de fois <strong>que</strong> la diagonale de la matrice deprogrammation dynami<strong>que</strong> possède de tronçons.Pour résumer, afin de prévoir l'extensibilité du calculateur de micro-programmationdynami<strong>que</strong>, on a soit la possibilité d'étendre le matériel mis en oeuvre (réseau decalculateurs), soit la possibilité de réutiliser successivement le matériel disponible, enprévoyant les mécanismes de virtualisation décrits. Le choix entre une solution et l'autrepeut être décidé par la densité d'intégration rendue possible par le matériel électroni<strong>que</strong>actuel, et le souci d'embarquabilité qui est celui du domaine de notre application deroboti<strong>que</strong> aérienne. Mais le plus probable semble être une hybridation de ces deuxsolutions. Le souci de performance nous fera réaliser la plus grande matrice de processeursdiagonaux, dans la mesure de ce qui est acceptable. Le souci d'embarquabilité nousengagera à virtualiser le calculateur. Dans l'état de notre réalisation, les deux solutions sontenvisageables simultanément grâce au matériel décrit.Un calculateur µPD virtualisable d'une dimension (9+8).8=136 PE a pu êtresynthétisé pour un composant Xilinx VIRTEX (FPGA) contenant 300 000 portes avec untaux de remplissage de 97%. Un tel composant convient tout à fait à la réalisation d'uncalculateur de micro-programmation dynami<strong>que</strong> performant et embarquable. Pour traiterune image 256x256, il faudrait utiliser pour un réseau complet (256+16).(9+8)/136=34 deces puces. La virtualisation du calcul convient donc bien à la "réalisabilité" d'un système derecalage pro<strong>je</strong>ctif embarquable.124


5.4 Réalisation et évaluation d'un prototype.La validation du concept de calculateur systoli<strong>que</strong> de programmation dynami<strong>que</strong> aété accomplie en deux étapes. Il a fallu réaliser une description en VHDL de la machine.Ce langage possède 3 niveaux de description : la description fonctionnelle,comportementale et structurelle. Le niveau fonctionnel consiste à faire réaliser aucompilateur le travail de modélisation architecturale. En effet, à ce niveau, il n'est <strong>pas</strong>nécessaire de connaître un modèle de machine, car c'est l'algorithme, sans modification,qui sert de description pour la synthèse architecturale.Malheureusement, la synthèse d'un algorithme et pres<strong>que</strong> toujours impossible, cartoutes les ressources matérielles qu'impli<strong>que</strong> la description fonctionnelle ne sont <strong>pas</strong>disponibles. Une description fonctionnelle est pres<strong>que</strong> toujours non-synthétisable. Il fauttoujours <strong>pas</strong>ser par l'élaboration d'un modèle de machine, et prendre en compte lesressources rendues disponibles par le matériel ciblé. Nous avons fait ce travail demodélisation (voir chapitre 4), et par consé<strong>que</strong>nt la description matérielle s'en trouvefacilitée.Il est possible grâce au niveau comportemental et au niveau structurel dedescription, de produire un code VHDL descriptif synthétisable du calculateur. Le niveaucomportemental permet de spécifier <strong>que</strong> la machine <strong>pas</strong>se par certains états, et de décrireles transitions entre ces états. Ce niveau de description permet de réaliser des automatesd'états finis. Le niveau structurel permet d'assembler des primitives opératives (bascules,logi<strong>que</strong> combinatoire, compteurs, multiplexeurs, décodeurs etc ...) qui auront étépréalablement décrites. Notre travail a donc été de décrire chacun des éléments duprocesseur élémentaire (voir figure 5.4), et d'assembler ces PE en une matrice constituantle calculateur.Une implantation a été réalisée à petite échelle sur un FPGA Xilinx XC4010 afin devalider le concept du processeur, et prouver sa possibilité de synthèse. Ce prototype nous aaussi permis d'obtenir une évaluation temporelle du dispositif. Puis un calculateurvirtualisable a été porté grâce à un FPGA de plus grande intégration : le Xilinx VIRTEX300. La portabilité et donc la pérennité de notre description matérielle a ainsi été prouvée.125


5.4.1 Implantation dans un Xilinx XC4010.La figure 5.7 représente le système réduit de micro-programmation dynami<strong>que</strong> <strong>que</strong>nous avons validé sur le circuit XC4010XLPC84 de Xilinx. Ce système réduit contient 21PE. Il ne convient évidemment <strong>pas</strong> à la mise en correspondance d'image pour deux raisons.Premièrement, comme on peut le voir sur la figure 5.7, ce système correspondrait à la miseen correspondance d'images 6x6. Une telle image porte trop peu d'information pourpermettre <strong>que</strong>l<strong>que</strong> traitement <strong>que</strong> ce soit 28 . Deuxièmement la bande diagonale n'est <strong>pas</strong>symétri<strong>que</strong>. Ce système réduit est utile pour expérimenter le concept du calculateur.top9top8top7top5top64top12top4toptop33top11711top1top22top106101418d31591317d221d11d12d108121620find8d9d715d119d5d6d4Figure 5.7 : Dispositif réduit implanté sur le FPGA 4010.28 On peut parler de traitement sur des images, à partir d'une dimension 32x32.126


Le dispositif réduit ne contient <strong>pas</strong> de mécanisme de virtualisation. D'après l'outild'implantation (Fondation) il est susceptible de fonctionner à 50MHz. Nous l'avons testé à12MHz grâce à une carte XS40 de la société XESS. Les chargement et déchargement desdonnées est effectué grâce à une carte d'entrée/sortie numéri<strong>que</strong> National Instrument. Lecadencement des échanges de données se fait à la fré<strong>que</strong>nce de 10KHz. Il y a donc undéséquilibre important entre la cadence de (dé)chargement des données et la cadence decalcul propre du calculateur µPD. Ce déséquilibre, dû aux faibles performances du transfertde données pourrait laisser penser <strong>que</strong> le temps utilisé pour transfert de données estprépondérant dans le processus de calcul. En effet d'après les chronogrammes obtenus surl'oscilloscope le rapport entre le temps de calcul par le temps de (dé)chargement est del'ordre de 1/50. C'est-à-dire <strong>que</strong> le processus est temporellement occupé pour 98% par letransfert des données.Mais nous avons pour but de valider un concept, et de mettre au point de manièremodulaire le dispositif de mise en correspondance d'images. Le principal intérêt d'une telleexpérimentation est d'appréhender le fonctionnement du calculateur. Nous avons pueffectuer 10 000 cycles d'Initialisation/Calcul/Lecture du résultat, en environ 1 minute.Cela donne une cadence de fonctionnement du calculateur d'environ 200 Cycles/seconde.C'est une fré<strong>que</strong>nce qui permet d'observer et d'améliorer le fonctionnement du calculateur àl'aide d'outils logiciels classi<strong>que</strong>s (sur un ordinateur PC) et d'un oscilloscope. Leschronogrammes de la sé<strong>que</strong>nce de test sont présentés sur la figure 5.8.Sur la figure 5.8, les différentes entrées/sorties du calculateur sont présentées. Il estprésenté sur le bus de données 12 bits (compteur/valeur) des données identi<strong>que</strong>s pour tousles PE. Le chemin de programmation dynami<strong>que</strong> doit donc suivre la diagonale de lamatrice, ce qui se vérifie. Après le positionnement du signal Reset (qui positionne le <strong>je</strong>tondans le premier PE) le signal Shift est activé pour donner l'ordre d'écriture (rw=1) danstous les PE. Le signal Stop, à la fin de l'initialisation <strong>pas</strong>se à 1, pour indi<strong>que</strong>r la fin de lapériode d'initialisation.Après cette étape d'initialisation, le signal Top est activé, ce qui correspond aulancement du calcul de programmation dynami<strong>que</strong>, qui s'achève par le positionnement dusignal Fin. Les différentes sorties directionnelles "down nn" basculent aussi indiquant <strong>que</strong>tous les PE du calculateur ont été activés. Le signal Fin est activé en premier (avant lessignaux Down), indiquant <strong>que</strong> le chemin optimal aboutit sur la diagonale de la matrice.Afin de <strong>pas</strong>ser à l'étape de lecture du résultat, le signal Reset est de nouveaupositionné (<strong>pas</strong>sage du <strong>je</strong>ton dans le PE N°1), et l'étape de lecture est désignée par lepositionnement de rw à 0. Le signal Shift indi<strong>que</strong> alors la lecture successive du contenu dupoint mémoire 2 bits de cha<strong>que</strong> PE, et est lisible sur le bus Mem. La période de lectureprend fin avec l'activation du signal Stop (le <strong>je</strong>ton se trouve dans le PE N°21).127


Figure 5.8 : Chronogrammes de simulation d'un cycle de calcul de programmationdynami<strong>que</strong>.128


On distingue donc bien sur la figure 5.8, les 3 étapes du calcul de microprogrammationdynami<strong>que</strong>. C'est l'accomplissement de ces 3 phases <strong>dont</strong> on a pudéterminer, en constituant le dispositif de test hardware, qu'il était réalisable à une cadencede 200 Hz, et avec un résultat exact. Cela permet de valider le concept architectural decalculateur de micro-programmation dynami<strong>que</strong>. Il resterait à intégrer ce calculateur audispositif qui a été énoncé par la figure 5.1. Mais, ce calculateur est trop réduit pour traiterdes images, même si l'on envisageait de le rendre virtualisable. Le FPGA n'est <strong>pas</strong> remplientièrement (voir figure 5.9), puis<strong>que</strong> le taux de remplissage est de 70%. Mais il n'y aaucun intérêt à le virtualiser, car la densité du composant 4010 n'est <strong>pas</strong> assez importantepour permettre un calcul sur des images.Figure 5.9 : Layout de placement/routage sur le FPGA 4010Nous avons alors envisagé d'utiliser un composant à plus forte intégration. Lecircuit 4010 possède l'équivalent de 10 000 portes logi<strong>que</strong>s. Un composant mieux à mêmede convenir au traitement d'images est le circuit VIRTEX 300, qui contient l'équivalent de129


300 000 portes. De plus, il possède tout comme les composants de la série 4000, lapossibilité de réaliser des bus 3 états, ce qui est favorable au portage du design du 4010.5.4.2 Portage sur un Xilinx Virtex 300.La formulation en langage VHDL du calculateur virtualisable reprenant celle del'implantation sur le FPGA 4010 a pu être synthétisée. Ce système est composé de(9+8).8=136 PE. Il a de plus été ajouté les éléments de virtualisation (2 compteurs 10 bitset les batteries de registres REG/IN et REG/OUT). La figure 5.10 représente les statisti<strong>que</strong>sde remplissage du circuit VIRTEX.Device utilization summary:Number of External GCLKIOBs 1 out of 4 25%Number of External IOBs 45 out of 166 27%Number of SLICEs 3072 out of 3072 100%Number of GCLKs 1 out of 4 25%Number of TBUFs 272 out of 3200 8%Figure 5.10 : Statisti<strong>que</strong>s de remplissage du circuit Xilinx VIRTEX XCV300PQ240.Le circuit est considéré rempli lorsqu'une au moins de ses ressources estentièrement utilisée. Sur la figure 5.10 on peut constater <strong>que</strong> la ressource criti<strong>que</strong> est lecomposant "SLICE". Il s'agit du composant principal du FPGA VIRTEX. C'est en effet lamacro-cellule de ce composant (appelée aussi CLB sur d'autres FPGA comme le 4010). Sil'on arrive à un taux d'utilisation des macro-cellules si important (toutes ont été utilisées),c'est <strong>que</strong> la conception en grille 2D de PE du calculateur, se prête très bien à la structure duFPGA. Les interconnexions entre les PE sont de plus locales, et se prêtent très bien à unroutage automati<strong>que</strong> par le logiciel d'implantation (Fondation de Xilinx). Nous pensonsqu'il serait tout aussi aisé, malgré la complexité du calculateur, d'implanter un telcalculateur dans un ASIC. La régularité de son architecture peut permettre avec les outilsactuels de synthèse (tel Cadence) d'obtenir, avec les outils de compilation automati<strong>que</strong>(synthèse de Layout), une synthèse efficace.130


5.5 Conclusion partielle.Un calculateur de micro-programmation dynami<strong>que</strong> tel <strong>que</strong> nous l'avons proposé nepeut être pensé indépendamment de l'environnement dans le<strong>que</strong>l il s'intègre. C'est pourquoinous avons proposé une architecture d'un dispositif global de mise en correspondanced'images. L'ensemble de cette réalisation pourra être mis en oeuvre par morceaux, c'estpourquoi nous avons une approche modulaire. L'architecture proposée pour le système demise en correspondance d'image permet de maîtriser les échanges de données entre lesentités fonctionnelles. Le problème des échanges de donnée, est en effet criti<strong>que</strong> lors<strong>que</strong>l'on traite des volumes correspondants à des images. Nous avons pu nous en rendrecompte, car le dispositif de test du circuit µPD <strong>que</strong> nous utilisons pour la conception, neconviendrait certainement <strong>pas</strong> au fonctionnement du calculateur dans le but d'effectuer uneaccélération des traitements.Toutefois, avec différentes étapes marquées, <strong>pas</strong> à <strong>pas</strong>, par des validationssuccessives, nous avons abouti à une preuve de fonctionnement du calculateur. Nousl'avons en effet soumis au test d'images réelles de la base d'image du CEA (et d'autresdisponible publi<strong>que</strong>ment), qui est un moyen efficace de se rendre compte du moindredysfonctionnement.L'optimisation spatiale du calculateur a été envisagée, ce qui rend le concept decelui-ci viable. L'architecture du Processeur élémentaire est simple, et grâce auregroupement de fonctionnalités simples, il est possible d'obtenir à une plus grande échelleun dispositif constituant une primitive de calcul fondamentale pour la vision parordinateur. Le calculateur effectue en effet un traitement de bas niveau qui est, puis<strong>que</strong> l'ontraite des images, un point délicat de la conception d'architectures, lors<strong>que</strong> l'on souhaite desperformances temporelles et l'embaquabilité des moyens de calcul.Des propositions allant dans le sens d'une réalisation concrète, et plus loin qu'unprototype réduit ont été faites (optimisation, extensibilité par plusieurs voies). Étant donnéles développements récents des FPGA, il est possible d'envisager la conception de grosdispositifs avec un effort et des délais toujours réduits 29 . Les outils de synthèse se basantsur le langage VHDL (qui possède une normalisation récente en 1993), et grâce àl'existence de ce langage, permettent un développement coordonné de ces outils. Ilsouvrent aussi la voie à la portabilité des architectures qui offre la pérennité et une base detravail aux concepteurs d'architectures.Il devient possible de mettre en oeuvre des concepts qui n'étaient <strong>pas</strong> viables jusqu'àprésent. Les architectes ont toujours eu des solutions à proposer pour résoudre de manièreefficace des problèmes informati<strong>que</strong>ment parlant trop complexes. Ces concepts (comme le29 l'intégration des FPGA actuels va jusqu'au million de portes logi<strong>que</strong>s ce qui fait de l'ordre de 10 millionsde transistors.131


calculateur systoli<strong>que</strong> au<strong>que</strong>l nous nous sommes intéressé) deviennent maintenant nonseulement expérimentable, mais aussi viables grâce à la reconfigurabilité des moyensélectroni<strong>que</strong>s.132


Conclusion.133


134


Dans ce mémoire, il a été fait état de deux versants complémentaires de travauxpermettant la mise en correspondance d'images aériennes. Cela a donné lieu à deux parties.L'énoncé d'un algorithme inspiré de l'algorithme pyramidal a été proposé. Cet algorithmepyramidal possède une spécificité car un modèle pro<strong>je</strong>ctif plan résultant de l'analyse ducontexte de la vision aérienne est déterminé. Le modèle peut être déterminé parl'approximation de la mesure du flot opti<strong>que</strong> entre les images. Nous avons donc toutd'abord évalué qualitativement des méthodes de mise en correspondance dense d'imagespar plusieurs opérateurs de calcul du champ de disparité stéréoscopi<strong>que</strong>. Cela a mis enévidence <strong>que</strong> la méthode choisie est très adaptée à la mesure du champ du fait de la naturedes transformations élémentaires engendrées par la pro<strong>je</strong>ction de deux images selon deuxangles de vue (et à deux instants distincts), et la capacité de l'algorithme de programmationdynami<strong>que</strong> (elastic matching) à prendre en compte ces transformations.Grâce à la mesure dense du flot opti<strong>que</strong>, et à la modélisation géométri<strong>que</strong> de latransformation <strong>que</strong> présente le champ de vecteurs, en analysant le contexte de la visionaérienne, il est possible de définir un algorithme itératif pyramidal <strong>dont</strong> la condition deconvergence est contrôlée par la qualité du modèle déterminé. Par cet algorithmepyramidal, c'est la conformité du modèle de recalage pro<strong>je</strong>ctif d'images aériennes quidécide d'une itération réussie. Afin <strong>que</strong> la détermination du modèle décide de laconvergence, il faut s'assurer de conditions correctes de mesure du flot opti<strong>que</strong>. Si lechamp de vecteurs déterminé n'est <strong>pas</strong> correct, l'approximation par une transformation n'est<strong>pas</strong> possible. La mesure du flot opti<strong>que</strong> ne peut être effectuée <strong>que</strong> si une hypothèse estvérifiée : S'il y a invariance spatio-temporelle de la réflectance des éléments de la scèneobservés. Cette hypothèse n'est en toute rigueur jamais vérifiée. Toutefois on peut seramener à des conditions convenables de mesure en observant le contexte dans le<strong>que</strong>l noussommes.Nous sommes en présence d'images très corrélées (elles se recouvrent pour plus de70% de leur contenu), le flot opti<strong>que</strong> peut donc être déterminé à condition <strong>que</strong> l'éclairagedes images soit rendu similaire. Les images ont un contenu très proche, une correctionstatisti<strong>que</strong> linéaire de la distribution des luminances (histogramme) peut permettre desatisfaire correctement l'hypothèse du flot opti<strong>que</strong>. A cette correction près, et si la mesuredu flot opti<strong>que</strong> possède certaines propriétés de robustesse vis à vis des conditions réelles deprise de vue (distorsions, bruit etc ...) la convergence de la méthode, par la déterminationdu modèle pro<strong>je</strong>ctif peut avoir lieu.Le choix de l'ajustement d'une mesure dense du champ de disparité par le modèlede transformation plane pro<strong>je</strong>ctive est très favorable du fait de la nature du modèle. Ilpossède au minimum 8 paramètres, et c'est à condition <strong>que</strong> les données mesurées soientnombreuses (vis à vis du nombre de paramètres) <strong>que</strong> l'ajustement sera précis. Noussélectionnons les vecteurs de champ de disparité en fonction d'une mesure d'incertitude. Ilest présenté pour l'ajustement du modèle (par l'algorithme des moindres carrés non linéairesupervisé) de l'ordre de 256 vecteurs mesurés (<strong>que</strong>lle <strong>que</strong> soit la résolution des images de135


la pyramide). La densité de la mesure favorise beaucoup l'estimation du modèle (et laprécision de la transformation obtenue).Le choix d'une mesure dense du champ de disparité conduit à un algorithme trèsrégulier de mesure du champ. Il permet d'obtenir une très grande robustesse et très bonneprécision de calcul. Ce sont des contraintes qui sont énoncées dans le cadre de notre pro<strong>je</strong>tde mise en correspondance d'images aériennes. Toutefois, cela conduit à une très grandecomplexité du calcul, au regard des données d'images <strong>que</strong> nous avons à traiter. Lacomplexité du calcul est en O(N 2 ) pour des images de taille NxN. C'est à dire <strong>que</strong> le tempsde calcul est multiplié par un facteur constant (typi<strong>que</strong>ment 4 puis<strong>que</strong> l'on quadruple lataille des images) à cha<strong>que</strong> nouvelle résolution pyramidale d'image. Mis à part lescontraintes sur la nature des transformations géométri<strong>que</strong>s pour notre application, lors<strong>que</strong>les contraintes de temps réel (durée des traitements d'une seconde) et d'embaquabilité desmoyens de calcul sont énoncés, cela conduit à la nécessité de réaliser une accélérationmatérielle, par la mise en oeuvre d'un dispositif électroni<strong>que</strong> dédié.Pour le calcul du champ de disparité nous avons choisi un algorithme dense. Celapermet d'envisager une structure matérielle simple et régulière. Cette structure donne lieu àun flot constant de données d'images, traitées de manière identi<strong>que</strong>, qui permet de satisfaireles contraintes strictes de notre application.Il nous est imposé de faire une mesure automati<strong>que</strong> de transformation d'image, sansl'assistance d'un opérateur. Nous présentons un algorithme basé sur le principe de laprogrammation dynami<strong>que</strong> orthogonale (ODP), mais pour le<strong>que</strong>l la nature destransformations géométri<strong>que</strong>s acceptables sont différentes, dans le contexte de lastéréoscopie généralisée. C'est à dire qu'aucune contrainte d'alignement des lignes d'imagesn'est posée, et <strong>que</strong> le problème est énoncé avec une transformation pro<strong>je</strong>ctivebidimensionnelle (bornée toutefois). Le choix des paramètres, des poids, des seuils et despropriétés des fonctions qui interviennent est justifié. L'une des raisons du choix decertains paramètres est liée aux caractéristi<strong>que</strong>s de la vision humaine. Le calcul étanteffectué automati<strong>que</strong>ment, et dans un ordre de grandeur du temps de réaction d'unopérateur humain, il faut <strong>que</strong> la mesure soit au moins aussi fiable <strong>que</strong> le serait unopérateur.Des résultats qualitatifs sont présentés qui démontrent <strong>que</strong> l'analyse du contexte, etsa modélisation ont été corrects. Les résultats sont encourageants qualitativement, mais <strong>pas</strong>du point de vue de la contrainte de temps d'exécution. Cela conduit à la deuxième partie dece mémoire, qui traite de l'accélération matérielle du calcul de flot opti<strong>que</strong>. En effet, parmitous les constituants de l'algorithme général, évalués temporellement, c'est la mesure duchamp de disparité qui est la plus pénalisante dans la réalisation (en temps réel) de laméthode.136


Il est possible de trouver des algorithmes qui répondent de manière satisfaisante auxproblèmes complexes de traitement d'image. On peut même lors<strong>que</strong> les problèmes sonttrop complexes pour être modélisés, avoir recours à des méthodes de classification parapprentissage (réseaux de neurones). Mais lors<strong>que</strong> certaines contraintes spécifi<strong>que</strong>s à lavision autonome sont énoncées (coût, consommation, embarquabilité, temps réel etc ...)cela nécessite non seulement des compromis algorithmi<strong>que</strong>s, mais aussi impose laréalisation de dispositifs dédiés. L'état actuel des technologies nécessite une réflexion surl'adéquation des algorithmes, car le progrès des technologies à moyen terme voire à longterme ne permet <strong>pas</strong> de satisfaire les contraintes.Dans la deuxième partie de ce mémoire, il est proposé le modèle d'un dispositifinspiré du modèle des calculateurs systoli<strong>que</strong>s. Celui-ci permet l'adéquation du principealgorithmi<strong>que</strong> de calcul de programmation dynami<strong>que</strong> avec une architecture dédiée,satisfaisant les contraintes. Ce calculateur, grâce à une spécification fonctionnelle permetd'obtenir l'estimation de temps plus conformes aux contraintes. Dans un deuxième temps,la mise en oeuvre d'un prototype matériel (sur un circuit programmable FPGA) impose denouvelles contraintes qui font évoluer la description fonctionnelle (écrite en C sur unemachine sé<strong>que</strong>ntielle SPARC, puis en C* parallèle sur la machine CM-5).La mise en oeuvre est parallèle avec un contrôle asynchrone (piloté par les donnéesd'images) et permet d'obtenir des temps de traitement conformes aux ordres de grandeurénoncés. Nous envisageons ensuite les optimisations matérielles par l'analyse du modèlefonctionnel. La description structurelle découle de l'assemblage de cellules élémentaires decalcul dans la grille 2D du calculateur. Nous avons vu en effet <strong>que</strong> le calcul dense del'algorithme de programmation dynami<strong>que</strong> donne lieu à un flot régulier de donnéesd'images traitées de manière identi<strong>que</strong>. Cela correspond à une machine <strong>dont</strong> la structure estrégulière, et est assemblée à partir de processeurs élémentaires (PE) identi<strong>que</strong>s répliquéspour former un réseau bidimensionnel. Cette structure bidimensionnelle est favorable àl'implantation dans un dispositif matériel électroni<strong>que</strong>, d'autant plus, comme dans notrecas, <strong>que</strong> les communications entres les processeurs élémentaires sont locales (un PE necommuni<strong>que</strong> qu'avec ses voisins immédiats à la manière des automates cellulaires).Lors<strong>que</strong> les optimisations et les contraintes d'implantation sont envisagées, il estpossible de réaliser une description structurelle (en VHDL) du calculateur conforme aumodèle. Toutes ces étapes ont permis d'élaborer une description synthétisable, car nousavons décrit et validé le circuit à différents niveaux d'observation. La prise en compte descontraintes à cha<strong>que</strong> niveau remet en cause tous les niveaux supérieurs et nécessite denombreuses validations. Même si un dispositif complet n'est <strong>pas</strong> réalisable, il faut s'assurer<strong>que</strong> s'il l'était, il donnerait un résultat conforme sur des images. C'est à dire <strong>que</strong> lesimulateur (en C ou en C*) <strong>dont</strong> nous présentons les résultats, fonctionne de la même façon<strong>que</strong> la description structurelle (en VHDL). Nous avons pour cela recours à des sé<strong>que</strong>ncesde test ("test bench") sur des données complexes (cas réel).137


On se rend compte qu'il n'est <strong>pas</strong> possible de réaliser matériellement un dispositifpermettant la mise en correspondance des images traitées sans qu'une solution devirtualisation du dispositif soit envisagée. Le calculateur a été validé à petite échelle, puisporté sur un dispositif (FPGA) plus à même de traiter des images. Il faut toutefois, du faitde la contrainte d'embaquabilité, envisager d'utiliser et de réutiliser un dispositif réduit afinde traiter des morceaux d'images. En traitant des tronçons d'images, et en utilisant aumieux le matériel électroni<strong>que</strong> disponible, on est à même de satisfaire la contrainted'embarquabilité. Toutes les contraintes doivent être envisagées car l'application lenécessite. Cela vient s'ajouter aux contraintes de réalisations, et la justification descompromis réalisés pour l'application ou sa mise en oeuvre, est souvent complémentaire.Cela prouve l'adéquation entre l'énoncé du problème et la méthode employée pour sarésolution.Par exemple les propriétés de la fonction de coût <strong>que</strong> nous avons défini à un hautniveau prennent en compte à la fois à des bonnes propriétés locale (tendantexpérimentalement vers un coût local optimal) qu'à la nécessité de compression dedynami<strong>que</strong> rendue nécessaire pour le codage en vue de l'implantation etc ... Les contraintess'expriment différemment à différents niveaux de réalisation, mais participent au mêmeproblème d'adéquation. Lors de la mise en oeuvre du dispositif, nous avons moins à fairedes compromis, qu'à énoncer différemment pour cha<strong>que</strong> niveau de description, les mêmescontraintes.Dans la deuxième partie de ce mémoire nous nous sommes attachés à accélérer pardes moyens matériels le calcul de l'algorithme de programmation dynami<strong>que</strong>. Nous avonsobtenu un dispositif qui répond aux contraintes de notre application dans les ordres degrandeur qui avaient été imposés. Il serait tout aussi envisageable de traiter del'accélération des calculs de convolution rendus nécessaire pour le filtrage des images pourconstituer les images de la pyramide (convolueur hardware). On aurait pu envisager aussid'accélérer le traitement de l'algorithme qui appli<strong>que</strong> la transformation pro<strong>je</strong>ctive (warpinghardware). Toutefois c'est en accélérant le calcul de programmation dynami<strong>que</strong> <strong>que</strong> le gainen temps de calcul (speedup) est prépondérant. Aucune solution matérielle pour cetteaccélération n'est à l'heure actuelle proposée, alors <strong>que</strong> pour les autres constituants del'algorithme pyramidal des solutions (y compris industrielles) sont proposées.Le recalage pro<strong>je</strong>ctif des images <strong>que</strong> nous effectuons est en fait un préalable à lareconstruction en trois dimensions à partir de vues aériennes (ou tout au moins des scènesoù la composante de profondeur visuelle est peu prononcée). Un domaine d'applicationimmédiat est donc la constitution de modèles numéri<strong>que</strong>s de terrain (MNT) pour lacartographie par exemple. Un autre domaine d'application où le recalage intervient estaussi la "réalité augmentée". Il s'agit dans ce cas d'assister un opérateur, en superposant à laréalité du terrain des informations supplémentaires qui vont le guider dans son travail. Onpeut envisager de réaliser de l'indexation d'images, qui permet de reconnaître une imagedans une base d'images, grâce à l'appariement de son contenu. Le flot opti<strong>que</strong> étant calculé138


par notre dispositif, l'application dans le domaine de la compression de sé<strong>que</strong>nces d'imagesest aussi envisageable. En effet, l'estimation de mouvement est à la base de la compressiondynami<strong>que</strong> de ces algorithmes (MPEG). On peut se rendre compte <strong>que</strong> notre réalisationdans le contexte immédiat de notre application, constitue plus généralement une primitivede calcul répandue, qui peut être ouverte à de nombreux autres domaines.139


140


Bibliographie[Anc93] N. Ancona, T. Poggio, Optical flow 1D correlation : application to a simple timeto-crashdetector. In Proceedings of the 4th International Conference on Computer Vision,pages 209-214, Berlin, Allemagne, Mai 1993.[Bel57] Bellman, R., Dynamic programming, Princeton University Press, 1957[Ben92] A. Bensrhair, Contribution à la réalisation d'un capteur de vision 3D parstéréovision <strong>pas</strong>sive, Thèse de doctorat, Université de Rouen 1992[Bér99] D. Béréziat, Détection et suivi de structures déformables en mouvement,application à la météorologie, Thèse de doctorat, Université Paris Sud 1999.[Ber92] J.R. Bergen, P.J.Burt, R. Hingorani, and S. Peleg, A Three Frame Algorithm forEstimating Two-Component Image Motion, IEEE Trans. on PAMI, Vol 14, Dec 1992, pp.886-896.[Bur83] P.J. Burt, C. Yen, and X. Xu. Multi-resolution ow-through motion analysis. InIEEE Conference on Computer Vision and Pattern Recognition, pages 246-252,Washington, DC, June 1983.[Cer96] E. Cerclier, Décomposition fonctionnelle d'opérateurs de détection et d'estimationde mouvement en traitement d'images, Thèse de doctorat, Université Paris Sud 1996.[Dup98] Dupla<strong>que</strong>t M., Building large image mosaics with invisible seam lines,Proceedings of the SPIE, The International Society for Optical Engineering, vol 3387,1998, pp 369-77[Fau93] O. Faugeras, Three-Dimensional Computer Vision, A Geometric Viewpoint, TheMIT Press, 1993[Gro98] P. Gros. De l'appariement l'indexation des images. Habilitation à diriger desrecherches, Institut National Polytechni<strong>que</strong> de Grenoble, Décembre 1998.[Int94] Stephen S. Intille and Aaron F. Bobick Disparity-Space Images and LargeOcclusion Stereo European Conference on Computer Vision, p. 179-186, Vol B, Springer-Verlag, May 1994.[Kan95] T. Kanade, et al, Development of a Video Rate Stereo Machine, Proc. ofInternational Robotics and Systems Conference (IROS-95), Pittsburgh, PA, August 7-9,1995.141


[LeC98] F. Le Coat, E. Pissaloux, P. Bonnin, Th. Garié, F. Durbin, A. Tissot, Conceptiond'une Architecture systoli<strong>que</strong> pour le calcul parallele de l'algorithme de programmationdynami<strong>que</strong>., 4eme Journées Adéquation Algorithme Architecture en traitement du signal etimages, CEA/LETI, Saclay, France, 28-30 janvier 1998, pp. 207-212.[LeC97] F. Le Coat, E. Pissaloux, P. Bonnin, Th. Garié, F. Durbin, A. Tissot, A parallelAlgorithm for a Very Fast 2D Velocity Field Estimation, IEEE's 1997 InternationalConference on Image Processing, Santa Barbara, USA, 26-29 Octobre, 1997. Vol. II pp.179-183[LeC94] F. Le Coat Conception et caractérisation d'un dispositif électroni<strong>que</strong> mettant enoeuvre l'algorithme de programmation dynami<strong>que</strong>, mémoire de stage de DEA, Septembre1994[Loo99] C. Loop and Z. Zhang. Computing Rectifying Homographies for Stereo Vision.Technical Report MSR-TR-99-21, Microsoft Research, April 1999.[Min83] M. Minoux Programmation mathémati<strong>que</strong>, théorie et algorithmes.. Dunod 1983.[NEC94] 7764 NEC , NEC DataBook, 1994[Owe97] Charles B. Owen, Fillia Makedon, Bottleneck-free Separable Affine ImageWarping IEEE's 1997 International Conference on Image Processing, Santa Barbara,USA, 26-29 Octobre, 1997. Vol. I pp. 683-686[Pic89] B. Picinbono, Théorie des signaux et des systèmes, Dunod 1989[Pis2000] Pissaloux E., Le Coat F., A 3 C & its Application to spatial Optimisation of aParallel Architecture dedicated to Image Matching, Proc. Int. Conf. on Computer Vision,Pattern Recognition & Image Processing CVPRIP'2000, Atlantic City, USA, Feb. 27-March 3, 2000.[Pis99b] Edwige E. Pissaloux, Francois Le Coat, Patrick Bonnin, A. Tissot, F. Durbin,Design and Optimization of a parallel architecture dedicated to image matching, IEEE's1999 International Conference on Image Processing, Kobe, Japan, 25-28 Octobre, 1999.[Pis99a] E. Pissaloux, F. Le Coat, P.Bonnin et al. Optimal design and implementation of aparallel VLSI circuit dedicated to image matching SPIE's Int. Symp. on Intelligent systemsand Advanced Manufacturing, BOSTON Ma. USA, 19-22 Sep. 1999, vol. 3837.[Pis98] E.E.Pissaloux, F.Le Coat, P.Bonnin, A.Tissot, F.Durbin and T.Garié Design andRealisation of a Parallel Systolic Architecture Dedicated to Aerial Image Matching.,142


MVA'98 IAPR Workshop on Machine Vision Applications, Chiba, Japan, November 17-19, 1998.[Pis98c] Pissaloux Edwige E., Le Coat Francois, Bonnin, Patrick J., Tissot A., Durbin, F.,Garié, Thierry Design and implementation of a systolic circuit dedicated to dynamicprogramming algorithm parallel calculation., SPIE's Intelligent Systems and AdvancedManufacturing, Boston, Massachusetts, 1-6 November 1998, Vol. 3526, p. 43-51.[Pis98b] E. Pissaloux, F. Le Coat, P. Bonnin, A. Tissot, F. Durbin, Th. Garié, Toward adesign of Data Driven Parallel Circuit for Signals Comparison., ICSPAT 1998,International Conference On Signal Processing Applications & technology, Toronto,Canada, September 13-16 1998, pp. 1503-1507.[Pis98a] E. Pissaloux, F. Le Coat, P. Bonnin, A. Tissot, F. Durbin, Th. Garié, Jane You, AParallel Method for Aerial Image Matching using a Modified Dynamic ProgrammingAlgorithm., IEEE ICIPS'98, 2nd International Conference on Intelligent ProcessingSystems, Gold Coast, Australia, August 4-7 1998, pp. 173-176.[Pis97] E. Pissaloux, F. Le Coat, P. Bonnin, G. Bezencenet, F. Durbin, A. Tissot, A veryfast dynamic programming based parallel algorithm for aerial image matching, Proc. ofthe SPIE 's 11th Annual Int. Symp. on Aerospace/Defence Sensing, Simulation andControl, Orlando, USA, Avril, 1997, vol. 3069, pp 354-360.[Pis96] E. Pissaloux, F. Le Coat, P.Bonnin et al. A parallel method for matching of aerialimages SPIE's Int. Symp. on Intelligent systems and Advanced Manufacturing, BOSTONMa. USA, 18-22 Nov. 1996, vol. 2904, pp. 75-81[Pre92] William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery,Numerical Recipes in C : The Art of Scientific Computing. Cambridge University Press,1992.[Qué88] G. M. Quénot, Conception d'un microprocesseur de comparaison dynami<strong>que</strong> pourla reconnaissance vocale, Thèse de doctorat, Université Paris Sud, 1988[Qué92] G. M. Quénot The "Orthogonal Algorithm" for Optical Flow Detection usingDynamic Programming, IEEE International Conference on Acoustics, Speech and SignalProcessing, San Francisco, CA, USA, March 1992.[Qué96] Georges M. Quénot, Computation of Optical Flow Using Dynamic Programming,Machine Vision Applications, Tokyo, Japan, 12-14 nov 1996.[Qui89] P. Quinton et Y. Robert, Algorithmes et architectures systoli<strong>que</strong>s, Masson, 1989143


[Rob92] L. Robert, R. Deriche et O.D. Faugeras. Dense depth recovery from stereoimages. In Proceedings of the European Conference on Artificial Intelligence, pages 821-823, Vienna, Austria, August 1992.[Sor94] Sorel, Y., Massively Parallel Computing Systems with Real Time Constrains — theAlgorithm Architecture Adequation, Proc. of the IEEE Conference on Massively ParallelComputing Systems, pp. 282-294, Ischia, (Italy), 2-6 May , 1994, pp. 44—53[Sze96] R. Szeliski. Video mosaics for virtual environments. IEEE Computer Graphics andApplications, pages 22-30, March 1996.[Sze93] Szeleski, and Sing Bing Kang Recovering 3D Shape and Motion from ImageStreams using Non-Linear Least Squares, Technical report DEC-CRL-93-3, DigitalEquipment Corporation, Cambridge Research Lab, 1993.[Vas98] M.C. Vasiliu High Precision Image Matching using 4D Optimal Minimisation,Proc. of ICASSP, 12-15 May 1998, Seattle, Washington, USA[Wu88] Y. Wu and H. Maitre, A New Dynamic Programming Method for StereovisionIgnoring Epipolar Geometry, Ninth International Conference on Pattern Recognition(Rome, Italy, November 14--17, 1988), pp. 146-148, Computer Society Press, 1988.[Zha97] Z. Zhang and G. Xu. A General Expression of the Fundamental Matrix for BothPerspective and Affine Cameras, In Proc. Fifteenth International Joint Conference onArtificial Intelligence (IJCAI'97), pages 1502-1507, Nagoya, Japan, August 23-29, 1997.144


Résumé :Le pro<strong>je</strong>t de recherche porte sur deux aspects de la mise au point d'un dispositif électroni<strong>que</strong> deguidage d'un robot aérien autonome. Il s'agit, grâce à un capteur <strong>pas</strong>sif : une caméra, de mettre au point unalgorithme de vision, qui permette le recalage du robot par rapport à une tra<strong>je</strong>ctoire connue. Nous disposonsd'images prises lors d'une phase de reconnaissance, qui devront être appariées aux images de mission, afin depouvoir situer le robot. Cette étude porte sur la conception d'un algorithme, en ayant pour but sonimplantation électroni<strong>que</strong> dans un dispositif matériel embarquable permettant l'analyse temps réel desdonnées captées.L'algorithme consiste en un recalage pro<strong>je</strong>ctif, par une approximation bidimensionnelle du flotopti<strong>que</strong>, grâce à un modèle géométri<strong>que</strong> explicite de transformation 2D. Pour les traitements de bas niveau, ila été conçu à partir de la reformulation de l'algorithme de programmation dynami<strong>que</strong>. Le but de cetteformulation est la capacité à implanter celui-ci sur la maille d'un processeur systoli<strong>que</strong> <strong>dont</strong> les performancestemporelles soient satisfaisantes. L'architecture visée comporte un VLSI dédié au calcul du champ dedéplacement et un processeur de traitement de signal (DSP) capable de calculer la transformation pro<strong>je</strong>ctiveissue des deux images comparées. L'algorithme a été conçu et évalué avec la perspective de sa réalisationmatérielle (méthodologie d'adéquation entre celui-ci et sa réalisation) qui constitue la deuxième phase de cepro<strong>je</strong>t.La deuxième phase consiste en la réalisation matérielle d'un prototype de calculateur permettant desatisfaire les contraintes strictes. Ce calculateur est validé grâce à une implantation et une évaluation sur unFPGA (Field Programmable Gate Array) à l'aide d'un langage de description matérielle (VHDL). Desrésultats temporels et qualitatifs sont obtenus. La portabilité et l'extensibilité du dispositif sont aussiprouvées, ce qui garanti la pérennité des travaux._______________________________________________________________________________________Abstract :The research pro<strong>je</strong>ct relates two aspects of the conception of an electronic device that allowsguidance of an autonomous aerial robot. Thanks to a <strong>pas</strong>sive sensor : a camera, we develop a visionalgorithm, which allows the matching of the robot compared to a known tra<strong>je</strong>ctory. We have taken images ata phase of recognition, which will have to be paired with the images of mission, in order to be able to locatethe robot. This study relates to the design of an algorithm, by having in mind its electronic implemetation inan onboard material device, allowing the real time analysis of the collected data.The algorithm consists of a pro<strong>je</strong>ctive matching, by a two-dimensional approximation of the opticalflow, thanks to an explicit geometrical model of 2D transformation. For the low level processing, it wasdesigned starting from the reformulation of the dynamic programming algorithm. The goal of thisformulation is the capacity to implement it on the mesh of a systolic processor whose temporal performancesshould be satisfactory. The concerned architecture comprises a VLSI dedicated to the calculation of thedisplacement field, and a signal processor (DSP) able to calculate the pro<strong>je</strong>ctive transformation resultingfrom the two compared images. The algorithm was designed and evaluated with the goal of its materialrealization (methodology of adequacy between the algorithm and its realization) which constitutes the secondphase of this pro<strong>je</strong>ct.The second phase consists of the material realization of a prototype of calculator that satisfy thestrict constraints. This calculator is validated thanks to the design of a prototype on a FPGA (FieldProgrammable Gate Array) using a material description language (VHDL). Temporal and qualitative resultsare obtained. The portability and the scalability of the device are also proved, which guarantee theperenniality of this work.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!