X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/these_gilles.git/blobdiff_plain/1bdc5bd76352d829a51e2d6407ad331af7164113..1171799649e99aa6b7222c9f180de7523e5e7da4:/THESE/these.out?ds=sidebyside diff --git a/THESE/these.out b/THESE/these.out index f947487..9ff4ede 100644 --- a/THESE/these.out +++ b/THESE/these.out @@ -1,79 +1,91 @@ -\BOOKMARK [0][]{chapter.1}{1 Introduction}{} -\BOOKMARK [0][]{chapter.2}{2 Les processeurs graphiques \(GPU\) NVidia\256}{} +\BOOKMARK [-1][]{part.1}{I Introduction}{} +\BOOKMARK [0][]{chapter.1}{1 Pr\351ambule}{part.1} +\BOOKMARK [0][]{chapter.2}{2 Les processeurs graphiques \(GPU\) NVidia\256}{part.1} \BOOKMARK [1][]{section.2.1}{2.1 Pourquoi ?}{chapter.2} \BOOKMARK [1][]{section.2.2}{2.2 Comment ?}{chapter.2} \BOOKMARK [2][]{subsection.2.2.1}{2.2.1 Le mat\351riel}{section.2.2} \BOOKMARK [2][]{subsection.2.2.2}{2.2.2 Le logiciel}{section.2.2} -\BOOKMARK [2][]{subsection.2.2.3}{2.2.3 l'Occupancy}{section.2.2} -\BOOKMARK [0][]{chapter.3}{3 Le traitement des images bruit\351es}{} +\BOOKMARK [2][]{subsection.2.2.3}{2.2.3 L'occupancy}{section.2.2} +\BOOKMARK [1][]{section.2.3}{2.3 Contraintes de conception}{chapter.2} +\BOOKMARK [-1][]{part.2}{II Le traitement des images}{} +\BOOKMARK [0][]{chapter.3}{3 Mod\350les d'image et de bruits - notations}{part.2} \BOOKMARK [1][]{section.3.1}{3.1 Mod\350le d'image bruit\351e}{chapter.3} \BOOKMARK [1][]{section.3.2}{3.2 Mod\350les de bruit}{chapter.3} \BOOKMARK [2][]{subsection.3.2.1}{3.2.1 Le bruit gaussien}{section.3.2} \BOOKMARK [2][]{subsection.3.2.2}{3.2.2 Le speckle}{section.3.2} -\BOOKMARK [2][]{subsection.3.2.3}{3.2.3 Le bruit ``sel et poivre''}{section.3.2} +\BOOKMARK [2][]{subsection.3.2.3}{3.2.3 Le bruit \253 sel et poivre \273}{section.3.2} \BOOKMARK [2][]{subsection.3.2.4}{3.2.4 Le bruit de Poisson}{section.3.2} -\BOOKMARK [1][]{section.3.3}{3.3 Les techniques de r\351duction de bruit}{chapter.3} -\BOOKMARK [2][]{subsection.3.3.1}{3.3.1 Les op\351rateurs de base}{section.3.3} -\BOOKMARK [3][]{subsubsection.3.3.1.1}{3.3.1.1 Le filtre de convolution}{subsection.3.3.1} -\BOOKMARK [3][]{subsubsection.3.3.1.2}{3.3.1.2 Le filtre m\351dian}{subsection.3.3.1} -\BOOKMARK [3][]{subsubsection.3.3.1.3}{3.3.1.3 Le filtre bilat\351ral}{subsection.3.3.1} -\BOOKMARK [3][]{subsubsection.3.3.1.4}{3.3.1.4 Les algorithmes de filtrage par dictionnaire}{subsection.3.3.1} -\BOOKMARK [2][]{subsection.3.3.2}{3.3.2 Les algorithmes de filtrage par patches}{section.3.3} -\BOOKMARK [1][]{section.3.4}{3.4 Les impl\351mentations GPU des algorithmes de filtrage}{chapter.3} -\BOOKMARK [2][]{subsection.3.4.1}{3.4.1 Le filtrage par convolution}{section.3.4} -\BOOKMARK [2][]{subsection.3.4.2}{3.4.2 Le filtre m\351dian}{section.3.4} -\BOOKMARK [2][]{subsection.3.4.3}{3.4.3 Le filtre bilat\351ral}{section.3.4} -\BOOKMARK [2][]{subsection.3.4.4}{3.4.4 Les filtres par patches}{section.3.4} -\BOOKMARK [1][]{section.3.5}{3.5 Les techniques de segmentation}{chapter.3} -\BOOKMARK [2][]{subsection.3.5.1}{3.5.1 Analyse d'histogramme}{section.3.5} -\BOOKMARK [2][]{subsection.3.5.2}{3.5.2 Partitionnement de graphe}{section.3.5} -\BOOKMARK [2][]{subsection.3.5.3}{3.5.3 kernel-means, mean-shift et apparent\351s}{section.3.5} -\BOOKMARK [2][]{subsection.3.5.4}{3.5.4 Les contours actifs, ou snakes}{section.3.5} -\BOOKMARK [2][]{subsection.3.5.5}{3.5.5 M\351thodes hybrides}{section.3.5} -\BOOKMARK [1][]{section.3.6}{3.6 Les impl\351mentations GPU des techniques de segmentation}{chapter.3} -\BOOKMARK [2][]{subsection.3.6.1}{3.6.1 Calcul d'histogramme}{section.3.6} -\BOOKMARK [2][]{subsection.3.6.2}{3.6.2 Partitionnement de graphe}{section.3.6} -\BOOKMARK [2][]{subsection.3.6.3}{3.6.3 K-means, mean-shift et apparent\351s}{section.3.6} -\BOOKMARK [2][]{subsection.3.6.4}{3.6.4 Snakes et Level set}{section.3.6} -\BOOKMARK [2][]{subsection.3.6.5}{3.6.5 Algorithmes hybrides}{section.3.6} -\BOOKMARK [1][]{section.3.7}{3.7 Conclusion}{chapter.3} -\BOOKMARK [0][]{chapter.4}{4 La segmentation par snake polygonal orient\351 r\351gions}{} -\BOOKMARK [1][]{section.4.1}{4.1 Pr\351sentation de l'algorithme}{chapter.4} -\BOOKMARK [2][]{subsection.4.1.1}{4.1.1 Formulation}{section.4.1} -\BOOKMARK [2][]{subsection.4.1.2}{4.1.2 Optimisation des calculs}{section.4.1} -\BOOKMARK [2][]{subsection.4.1.3}{4.1.3 Impl\351mentation s\351quentielle}{section.4.1} -\BOOKMARK [2][]{subsection.4.1.4}{4.1.4 Performances}{section.4.1} -\BOOKMARK [1][]{section.4.2}{4.2 Impl\351mentation parall\350le GPU du snake polygonal}{chapter.4} -\BOOKMARK [2][]{subsection.4.2.1}{4.2.1 pr\351-calculs des images cumul\351es}{section.4.2} -\BOOKMARK [2][]{subsection.4.2.2}{4.2.2 Calcul des contribution des segments}{section.4.2} -\BOOKMARK [3][]{subsubsection.4.2.2.1}{4.2.2.1 Cas particulier des segments dont la pente k v\351rifie |k|1}{subsection.4.2.2} -\BOOKMARK [2][]{subsection.4.2.3}{4.2.3 Performances}{section.4.2} -\BOOKMARK [2][]{subsection.4.2.4}{4.2.4 Discussion sur l'initialisation}{section.4.2} -\BOOKMARK [2][]{subsection.4.2.5}{4.2.5 Conclusion}{section.4.2} -\BOOKMARK [0][]{chapter.5}{5 R\351duction de bruit par recherche des lignes de niveaux}{} -\BOOKMARK [1][]{section.5.1}{5.1 Pr\351sentation de l'algorithme}{chapter.5} -\BOOKMARK [2][]{subsection.5.1.1}{5.1.1 Formulation}{section.5.1} -\BOOKMARK [3][]{subsubsection.5.1.1.1}{5.1.1.1 Isolines \340 un seul segment}{subsection.5.1.1} -\BOOKMARK [3][]{subsubsection.5.1.1.2}{5.1.1.2 Isolines compos\351es de plusieurs segments - crit\350re d'allongement}{subsection.5.1.1} -\BOOKMARK [1][]{section.5.2}{5.2 Impl\351mentation parall\350le}{chapter.5} -\BOOKMARK [2][]{subsection.5.2.1}{5.2.1 Isolines \351valu\351es semi-globalement}{section.5.2} -\BOOKMARK [2][]{subsection.5.2.2}{5.2.2 Isolines \340 segments pre-\351valu\351s - mod\350le PI-PD}{section.5.2} -\BOOKMARK [2][]{subsection.5.2.3}{5.2.3 Mod\350le PI-PD hybride}{section.5.2} -\BOOKMARK [3][]{subsubsection.5.2.3.1}{5.2.3.1 Le d\351tecteur de zone \340 faible pente}{subsection.5.2.3} -\BOOKMARK [1][]{section.5.3}{5.3 R\351sultats}{chapter.5} -\BOOKMARK [1][]{section.5.4}{5.4 Conclusion}{chapter.5} -\BOOKMARK [0][]{chapter.6}{6 Le filtre m\351dian sur GPU}{} +\BOOKMARK [0][]{chapter.4}{4 Les techniques de r\351duction de bruit}{part.2} +\BOOKMARK [1][]{section.4.1}{4.1 Les techniques de r\351duction de bruit}{chapter.4} +\BOOKMARK [2][]{subsection.4.1.1}{4.1.1 Les op\351rateurs de base}{section.4.1} +\BOOKMARK [3][]{subsubsection.4.1.1.1}{4.1.1.1 Le filtre de convolution}{subsection.4.1.1} +\BOOKMARK [3][]{subsubsection.4.1.1.2}{4.1.1.2 Le filtre m\351dian}{subsection.4.1.1} +\BOOKMARK [3][]{subsubsection.4.1.1.3}{4.1.1.3 Le filtre bilat\351ral}{subsection.4.1.1} +\BOOKMARK [3][]{subsubsection.4.1.1.4}{4.1.1.4 Les algorithmes de filtrage par dictionnaire}{subsection.4.1.1} +\BOOKMARK [2][]{subsection.4.1.2}{4.1.2 Les algorithmes de filtrage par patches}{section.4.1} +\BOOKMARK [1][]{section.4.2}{4.2 Les impl\351mentations sur GPU des algorithmes de filtrage}{chapter.4} +\BOOKMARK [2][]{subsection.4.2.1}{4.2.1 Le filtrage par convolution}{section.4.2} +\BOOKMARK [2][]{subsection.4.2.2}{4.2.2 Le filtre m\351dian}{section.4.2} +\BOOKMARK [2][]{subsection.4.2.3}{4.2.3 Le filtre bilat\351ral}{section.4.2} +\BOOKMARK [2][]{subsection.4.2.4}{4.2.4 Les filtres par patches}{section.4.2} +\BOOKMARK [0][]{chapter.5}{5 Les techniques de segmentation des images}{part.2} +\BOOKMARK [1][]{section.5.1}{5.1 Introduction}{chapter.5} +\BOOKMARK [1][]{section.5.2}{5.2 Les techniques de segmentation orient\351es r\351gions}{chapter.5} +\BOOKMARK [2][]{subsection.5.2.1}{5.2.1 Analyse d'histogramme}{section.5.2} +\BOOKMARK [2][]{subsection.5.2.2}{5.2.2 Partitionnement de graphe}{section.5.2} +\BOOKMARK [2][]{subsection.5.2.3}{5.2.3 kernel-means, mean-shift et apparent\351s}{section.5.2} +\BOOKMARK [1][]{section.5.3}{5.3 Les techniques de segmentation par contours actifs, ou snakes}{chapter.5} +\BOOKMARK [2][]{subsection.5.3.1}{5.3.1 M\351thodes hybrides}{section.5.3} +\BOOKMARK [1][]{section.5.4}{5.4 Les impl\351mentations des techniques de segmentation sur GPU}{chapter.5} +\BOOKMARK [2][]{subsection.5.4.1}{5.4.1 Calcul d'histogramme}{section.5.4} +\BOOKMARK [2][]{subsection.5.4.2}{5.4.2 Partitionnement de graphe}{section.5.4} +\BOOKMARK [2][]{subsection.5.4.3}{5.4.3 K-means, mean-shift et apparent\351s}{section.5.4} +\BOOKMARK [2][]{subsection.5.4.4}{5.4.4 Level set et snakes}{section.5.4} +\BOOKMARK [2][]{subsection.5.4.5}{5.4.5 Algorithmes hybrides}{section.5.4} +\BOOKMARK [1][]{section.5.5}{5.5 Conclusion}{chapter.5} +\BOOKMARK [-1][]{part.3}{III Algorithmes GPU rapides pour la r\351duction de bruit et la segmentation}{} +\BOOKMARK [0][]{chapter.6}{6 La segmentation par snake polygonal orient\351 r\351gions}{part.3} \BOOKMARK [1][]{section.6.1}{6.1 Introduction}{chapter.6} -\BOOKMARK [1][]{section.6.2}{6.2 Les transferts de donn\351es}{chapter.6} -\BOOKMARK [1][]{section.6.3}{6.3 Utilisation des registres}{chapter.6} -\BOOKMARK [2][]{subsection.6.3.1}{6.3.1 La s\351lection de la valeur m\351diane}{section.6.3} -\BOOKMARK [2][]{subsection.6.3.2}{6.3.2 Masquage des latences}{section.6.3} -\BOOKMARK [1][]{section.6.4}{6.4 R\351sultats}{chapter.6} -\BOOKMARK [1][]{section.6.5}{6.5 Conclusion}{chapter.6} -\BOOKMARK [0][]{chapter.7}{7 Les filtres de convolution sur GPU}{} +\BOOKMARK [1][]{section.6.2}{6.2 Pr\351sentation de l'algorithme}{chapter.6} +\BOOKMARK [2][]{subsection.6.2.1}{6.2.1 Formulation}{section.6.2} +\BOOKMARK [2][]{subsection.6.2.2}{6.2.2 Optimisation des calculs}{section.6.2} +\BOOKMARK [2][]{subsection.6.2.3}{6.2.3 Impl\351mentation s\351quentielle}{section.6.2} +\BOOKMARK [2][]{subsection.6.2.4}{6.2.4 Performances}{section.6.2} +\BOOKMARK [1][]{section.6.3}{6.3 Impl\351mentation parall\350le GPU du snake polygonal}{chapter.6} +\BOOKMARK [2][]{subsection.6.3.1}{6.3.1 Pr\351-calculs des images cumul\351es}{section.6.3} +\BOOKMARK [2][]{subsection.6.3.2}{6.3.2 Calcul des contributions des segments}{section.6.3} +\BOOKMARK [3][]{subsubsection.6.3.2.1}{6.3.2.1 Cas particulier des segments dont la pente k v\351rifie |k|1}{subsection.6.3.2} +\BOOKMARK [2][]{subsection.6.3.3}{6.3.3 Performances}{section.6.3} +\BOOKMARK [2][]{subsection.6.3.4}{6.3.4 D\351termination du contour initial au sens du maximum de vraisemblance}{section.6.3} +\BOOKMARK [2][]{subsection.6.3.5}{6.3.5 Conclusion}{section.6.3} +\BOOKMARK [0][]{chapter.7}{7 R\351duction de bruit par recherche des lignes de niveaux}{part.3} \BOOKMARK [1][]{section.7.1}{7.1 Introduction}{chapter.7} -\BOOKMARK [1][]{section.7.2}{7.2 Impl\351mentation g\351n\351rique de la convolution non s\351parable}{chapter.7} -\BOOKMARK [1][]{section.7.3}{7.3 Impl\351mentation optimis\351e de la convolution non s\351parable}{chapter.7} -\BOOKMARK [1][]{section.7.4}{7.4 Cas de la convolution s\351parable}{chapter.7} -\BOOKMARK [1][]{section.7.5}{7.5 Conclusion}{chapter.7} -\BOOKMARK [0][]{chapter.8}{8 Conclusion g\351n\351rale}{} +\BOOKMARK [1][]{section.7.2}{7.2 Pr\351sentation de l'algorithme}{chapter.7} +\BOOKMARK [2][]{subsection.7.2.1}{7.2.1 Formulation}{section.7.2} +\BOOKMARK [3][]{subsubsection.7.2.1.1}{7.2.1.1 D\351termination du premier segment}{subsection.7.2.1} +\BOOKMARK [3][]{subsubsection.7.2.1.2}{7.2.1.2 Isolines compos\351es de plusieurs segments - crit\350re d'allongement}{subsection.7.2.1} +\BOOKMARK [1][]{section.7.3}{7.3 Mod\351lisation des isolines pour l'impl\351mentation parall\350le sur GPU}{chapter.7} +\BOOKMARK [2][]{subsection.7.3.1}{7.3.1 Isolines \351valu\351es semi-globalement}{section.7.3} +\BOOKMARK [2][]{subsection.7.3.2}{7.3.2 Isolines \340 segments pr\351-\351valu\351s - mod\350le PI-PD}{section.7.3} +\BOOKMARK [2][]{subsection.7.3.3}{7.3.3 Mod\350le PI-PD hybride}{section.7.3} +\BOOKMARK [3][]{subsubsection.7.3.3.1}{7.3.3.1 Le d\351tecteur de bords}{subsection.7.3.3} +\BOOKMARK [1][]{section.7.4}{7.4 R\351sultats}{chapter.7} +\BOOKMARK [1][]{section.7.5}{7.5 Extension aux images couleurs}{chapter.7} +\BOOKMARK [2][]{subsection.7.5.1}{7.5.1 Expression du crit\350re}{section.7.5} +\BOOKMARK [2][]{subsection.7.5.2}{7.5.2 R\351sultats - analyse}{section.7.5} +\BOOKMARK [1][]{section.7.6}{7.6 Conclusion}{chapter.7} +\BOOKMARK [0][]{chapter.8}{8 Le filtre m\351dian sur GPU}{part.3} +\BOOKMARK [1][]{section.8.1}{8.1 Introduction}{chapter.8} +\BOOKMARK [1][]{section.8.2}{8.2 Les transferts de donn\351es}{chapter.8} +\BOOKMARK [1][]{section.8.3}{8.3 Utilisation des registres}{chapter.8} +\BOOKMARK [2][]{subsection.8.3.1}{8.3.1 La s\351lection de la valeur m\351diane}{section.8.3} +\BOOKMARK [2][]{subsection.8.3.2}{8.3.2 Masquage des latences}{section.8.3} +\BOOKMARK [1][]{section.8.4}{8.4 R\351sultats}{chapter.8} +\BOOKMARK [1][]{section.8.5}{8.5 Conclusion}{chapter.8} +\BOOKMARK [0][]{chapter.9}{9 Les filtres de convolution sur GPU}{part.3} +\BOOKMARK [1][]{section.9.1}{9.1 Introduction}{chapter.9} +\BOOKMARK [1][]{section.9.2}{9.2 Impl\351mentation g\351n\351rique de la convolution non s\351parable sur GPU}{chapter.9} +\BOOKMARK [1][]{section.9.3}{9.3 Impl\351mentation optimis\351e de la convolution non s\351parable sur GPU}{chapter.9} +\BOOKMARK [1][]{section.9.4}{9.4 Cas de la convolution s\351parable}{chapter.9} +\BOOKMARK [1][]{section.9.5}{9.5 Conclusion}{chapter.9} +\BOOKMARK [0][]{chapter.10}{10 Conclusion g\351n\351rale}{part.3}