12.07.2015 Views

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

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.

<strong>Algorithmes</strong> <strong>de</strong> <strong>la</strong> <strong>morphologie</strong> <strong>mathématique</strong> <strong>pour</strong> les architectures orientées fluxJaromír BRAMBORoffrent. Parmi les architectures qui peuvent être utilisées <strong>pour</strong> le calcul avec les flux <strong>de</strong> donnés, nous noussommes intéressés en particulier aux processeurs du calcul général grand public (GPP) avec les capacitésmultimédia, surtout <strong>pour</strong> leur position actuelle sur le marché qui les rend très intéressants du point <strong>de</strong> vueapplicatif. Malgré le fait que nous avons visé ce type d’architectures <strong>pour</strong> nos algorithmes et que nousavons testé ces algorithmes sur un processeur appartenant à ce type d’architectures, le fonctionnement<strong>de</strong> ces algorithmes n’est pas lié à une architecture du calcul parallèle ou séquentiel quelconque et leursprincipes peuvent être réutilisés, notamment sur les architectures qui ont été nativement conçues <strong>pour</strong> letraitement <strong>de</strong>s flux <strong>de</strong> donnéesUn autre groupe d’architectures que nous avons pu explorer et dont nous présentons <strong>la</strong> <strong>de</strong>scriptiondans cette partie est constitué <strong>de</strong>s processeurs graphiques (GPU). Ces processeurs n’était pas <strong>de</strong>stinés,dans leur fonction originale, au calcul <strong>de</strong> l’analyse d’image mais à leur synthèse. Vu les possibilités <strong>de</strong>programmation qu’ils offrent à nos jours et qui les rapprochent <strong>de</strong> plus en plus <strong>de</strong>s applications généralesqui ont besoin <strong>de</strong> <strong>la</strong> parallélisation massive (ce qui est le cas <strong>pour</strong> les algorithmes <strong>de</strong> <strong>la</strong> <strong>morphologie</strong> <strong>mathématique</strong>),nous avons exploré également <strong>la</strong> piste <strong>de</strong> leur possible utilisation <strong>pour</strong> les implémentations<strong>de</strong>s opérations <strong>de</strong> base <strong>de</strong> <strong>la</strong> <strong>morphologie</strong>.C’est également dans <strong>la</strong> première partie (chapitre 4) <strong>de</strong> cette thèse que nous avons introduit le formalismefonctionnel, représenté par le Lambda calcul, en tant que moyen <strong>de</strong> spécification que nous avonsadopté <strong>pour</strong> <strong>la</strong> <strong>de</strong>scription <strong>de</strong>s algorithmes. Nous avons choisi comme outil <strong>de</strong> travail le <strong>la</strong>ngage fonctionnelHaskell implémentant <strong>la</strong> théorie du <strong>la</strong>mbda calcul. Il s’est avéré particulièrement utile <strong>pour</strong> <strong>la</strong><strong>de</strong>scription <strong>de</strong>s procédés traitant les flux <strong>de</strong> données. Nous avons pu facilement exprimer le traitement<strong>de</strong>s flux comme traitement <strong>de</strong>s listes du Haskell et exprimer également les kernels d’exécution, propresau paradigme stream, en tant que fonctions appliquées aux éléments <strong>de</strong> ces listes.Pour pouvoir exprimer le travail <strong>de</strong> <strong>la</strong> <strong>morphologie</strong> traitant le voisinage en termes <strong>de</strong> Lambda calcul,nous avons défini, <strong>pour</strong> formaliser le traitement sur les architectures GPP, un certain nombre <strong>de</strong> fonctionsprimitives, incluant les fonctions <strong>de</strong> passage d’un array à un stream <strong>de</strong> données, les fonctions d’échantillonnage<strong>de</strong>s pixels <strong>pour</strong> pouvoir extraire les pixels désignés par l’élément structurant et les fonctionsqui expriment le kernel d’exécution <strong>de</strong> l’opération morphologique à l’échelle d’un pixel. Nous avonsutilisé <strong>la</strong> <strong>de</strong>scription <strong>de</strong>s algorithmes généraux en tant que skeletons algorithmiques, définis <strong>pour</strong> le typepolymorphe α. Ce fait s’est révélé utile quand nous sommes passé, à partir du traitement sur le voisinage<strong>de</strong>s données sca<strong>la</strong>ires, au traitement du voisinage <strong>de</strong>s données paquetées contenant plusieurs éléments<strong>de</strong> base et exprimés en Haskell par un autre type, plus spécifique, qui décrivait les vecteurs paquetés –PVec I α.Pour pouvoir effectuer le même travail sur les processeurs graphiques, nous avons construit un modèleformel du fonctionnement du pipeline graphique. La construction d’un algorithme qui est exécutésur les GPU va se <strong>pour</strong>suivre comme <strong>la</strong> spécification <strong>de</strong>s fonctions correspondant aux programmes maniantles divers blocs du pipeline graphique.L’apport <strong>de</strong> ce formalisme a été particulièrement apprécié lors <strong>de</strong>s vérifications <strong>de</strong> fonctionnement<strong>de</strong>s <strong>de</strong>scriptions présentées dans cette thèse car tous les algorithmes que nous décrivons dans le Lambdacalcul sont également les fonctions du Haskell. Ainsi, nous avons pu faire appel au compi<strong>la</strong>teur duHaskell et vérifier leur bonne syntaxe. De plus, il a été possible <strong>de</strong> tester, <strong>pour</strong> les algorithmes concrets,leur fonctionnement sur les données synthétiques en exécutant le programme du Haskell.Deuxième partie <strong>de</strong> <strong>la</strong> thèseLa <strong>de</strong>uxième partie <strong>de</strong> cette thèse a été consacrée à <strong>la</strong> <strong>de</strong>scription <strong>de</strong>s différentes façons <strong>de</strong> construire<strong>de</strong>s algorithmes morphologiques <strong>pour</strong> les architectures orientées flux. Nous avons exploré, dans le chapitre5, les principes qui entrent en jeu lors <strong>de</strong> <strong>la</strong> construction <strong>de</strong>s algorithmes travail<strong>la</strong>nt sur le voisinage,qui ne dépen<strong>de</strong>nt pas du sens du parcours et dont l’exécution peut être facilement parallélisée. Dans lemême chapitre, nous avons présenté les algorithmes <strong>pour</strong> les processeurs graphiques. Les tests comparatifs<strong>pour</strong> les opérations <strong>de</strong> base <strong>de</strong> <strong>la</strong> <strong>morphologie</strong> <strong>mathématique</strong> qui mettaient en re<strong>la</strong>tion <strong>de</strong>s implémen-192

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

Saved successfully!

Ooh no, something went wrong!