X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/these_gilles.git/blobdiff_plain/e81bd9912542bc52e4b0fd1206e0b6f9b93a5fda..7a1f7981654e75ea330b58c7f93620ce69bf13b2:/THESE/these.aux?ds=sidebyside diff --git a/THESE/these.aux b/THESE/these.aux index 64e231b..5f3f6bd 100644 --- a/THESE/these.aux +++ b/THESE/these.aux @@ -33,73 +33,74 @@ \newlabel{fig-gpucpu1}{{2.1}{13}{Comparaison des structures d'un c\oe ur de GPU et d'un c\oe ur de CPU (d'après \cite {CUDAPG}). ALU = Arithmetical \& Logical Unit}{figure.2.1}{}} \citation{CUDAPG} \citation{CUDAPG} -\citation{wong2010demystifying} \@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces Comparaison des performances des GPUs Nvidia et des CPU Intel (d'apr\IeC {\`e}s \cite {CUDAPG}).}}{14}{figure.2.2}} \newlabel{fig-gpucpu2}{{2.2}{14}{Comparaison des performances des GPUs Nvidia et des CPU Intel (d'après \cite {CUDAPG})}{figure.2.2}{}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Nombre maximum th\IeC {\'e}orique d'op\IeC {\'e}rations en virgule flottante par seconde en fonction de l'ann\IeC {\'e}e et de l'architecture.}}}{14}{figure.2.2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Bande passante th\IeC {\'e}orique maximale des diverses architectures.}}}{14}{figure.2.2}} -\@writefile{toc}{\contentsline {section}{\numberline {2.2}Comment ?}{14}{section.2.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Le mat\IeC {\'e}riel}{14}{subsection.2.2.1}} \citation{wong2010demystifying} \citation{wong2010demystifying} -\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces Organisation des GPUs d'architecture Fermi, comme le C2070 (d'apr\IeC {\`e}s www.hpcresearch.nl).}}{15}{figure.2.3}} -\newlabel{fig-c2070}{{2.3}{15}{Organisation des GPUs d'architecture Fermi, comme le C2070 (d'après www.hpcresearch.nl)}{figure.2.3}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Organisation en groupes de SMs }}}{15}{figure.2.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Constitution d'un SM.}}}{15}{figure.2.3}} -\@writefile{lot}{\contentsline {table}{\numberline {2.1}{\ignorespaces Caract\IeC {\'e}ristiques des diff\IeC {\'e}rents types de m\IeC {\'e}moire disponibles sur le GPU. Pour les m\IeC {\'e}moires cach\IeC {\'e}es, les latences sont donn\IeC {\'e}es selon l'acc\IeC {\`e}s \textit {sans-cache/L1/L2}. Les mesures ont \IeC {\'e}t\IeC {\'e} obtenues \IeC {\`a} l'aide des microprogrammes de test de \cite {wong2010demystifying}.}}{16}{table.2.1}} -\newlabel{tab-gpu-memoire}{{2.1}{16}{Caractéristiques des différents types de mémoire disponibles sur le GPU. Pour les mémoires cachées, les latences sont données selon l'accès \textit {sans-cache/L1/L2}. Les mesures ont été obtenues à l'aide des microprogrammes de test de \cite {wong2010demystifying}}{table.2.1}{}} +\citation{wong2010demystifying} +\@writefile{toc}{\contentsline {section}{\numberline {2.2}Comment ?}{15}{section.2.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Le mat\IeC {\'e}riel}{15}{subsection.2.2.1}} +\@writefile{lot}{\contentsline {table}{\numberline {2.1}{\ignorespaces Caract\IeC {\'e}ristiques des diff\IeC {\'e}rents types de m\IeC {\'e}moire disponibles sur le GPU. Pour les m\IeC {\'e}moires cach\IeC {\'e}es, les latences sont donn\IeC {\'e}es selon l'acc\IeC {\`e}s \textit {sans-cache/L1/L2} et ont \IeC {\'e}t\IeC {\'e} obtenues \IeC {\`a} l'aide des microprogrammes de test de \cite {wong2010demystifying}. Les valeurs de d\IeC {\'e}bit sont donn\IeC {\'e}es par le constructeur.}}{15}{table.2.1}} +\newlabel{tab-gpu-memoire}{{2.1}{15}{Caractéristiques des différents types de mémoire disponibles sur le GPU. Pour les mémoires cachées, les latences sont données selon l'accès \textit {sans-cache/L1/L2} et ont été obtenues à l'aide des microprogrammes de test de \cite {wong2010demystifying}. Les valeurs de débit sont données par le constructeur}{table.2.1}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces Organisation des GPUs d'architecture Fermi, comme le C2070 (d'apr\IeC {\`e}s www.hpcresearch.nl).}}{16}{figure.2.3}} +\newlabel{fig-c2070}{{2.3}{16}{Organisation des GPUs d'architecture Fermi, comme le C2070 (d'après www.hpcresearch.nl)}{figure.2.3}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Organisation en groupes de SMs }}}{16}{figure.2.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Constitution d'un SM.}}}{16}{figure.2.3}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}Le logiciel}{16}{subsection.2.2.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Repr\IeC {\'e}sentation d'une grille de calcul en 2D et des blocs de threads, \IeC {\`a} 2 dimensions, qui la composent.}}{16}{figure.2.4}} -\newlabel{fig-threads}{{2.4}{16}{Représentation d'une grille de calcul en 2D et des blocs de threads, à 2 dimensions, qui la composent}{figure.2.4}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Repr\IeC {\'e}sentation d'une grille de calcul en 2D et des blocs de threads, \IeC {\`a} 2 dimensions, qui la composent.}}{17}{figure.2.4}} +\newlabel{fig-threads}{{2.4}{17}{Représentation d'une grille de calcul en 2D et des blocs de threads, à 2 dimensions, qui la composent}{figure.2.4}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {2.2.3}L'occupancy}{17}{subsection.2.2.3}} +\@writefile{toc}{\contentsline {section}{\numberline {2.3}Synth\IeC {\`e}se des contraintes d'impl\IeC {\'e}mentation}{18}{section.2.3}} \citation{Caselles99topographicmaps} \citation{cutrona1990synthetic} \citation{mancuso2001introduction} \citation{theuwissen2001ccd} -\@writefile{toc}{\contentsline {chapter}{\numberline {3}Mod\IeC {\`e}les d'image et de bruits - notations}{23}{chapter.3}} +\@writefile{toc}{\contentsline {chapter}{\numberline {3}Mod\IeC {\`e}les d'image et de bruits - notations}{25}{chapter.3}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {3.1}Mod\IeC {\`e}le d'image bruit\IeC {\'e}e}{23}{section.3.1}} -\@writefile{toc}{\contentsline {section}{\numberline {3.2}Mod\IeC {\`e}les de bruit}{23}{section.3.2}} -\newlabel{sec_bruits}{{3.2}{23}{Modèles de bruit\relax }{section.3.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Le bruit gaussien}{23}{subsection.3.2.1}} +\@writefile{toc}{\contentsline {section}{\numberline {3.1}Mod\IeC {\`e}le d'image bruit\IeC {\'e}e}{25}{section.3.1}} +\@writefile{toc}{\contentsline {section}{\numberline {3.2}Mod\IeC {\`e}les de bruit}{25}{section.3.2}} +\newlabel{sec_bruits}{{3.2}{25}{Modèles de bruit\relax }{section.3.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Le bruit gaussien}{25}{subsection.3.2.1}} \citation{healey1994radiometric} \citation{kodakccd} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Le speckle}{24}{subsection.3.2.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Le bruit \FB@og sel et poivre \FB@fg {}}{24}{subsection.3.2.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.4}Le bruit de Poisson}{25}{subsection.3.2.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Le speckle}{26}{subsection.3.2.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Le bruit \FB@og sel et poivre \FB@fg {}}{26}{subsection.3.2.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.4}Le bruit de Poisson}{27}{subsection.3.2.4}} \citation{coil} \citation{Wang04imagequality} -\@writefile{toc}{\contentsline {chapter}{\numberline {4}Les techniques de r\IeC {\'e}duction de bruit}{27}{chapter.4}} +\@writefile{toc}{\contentsline {chapter}{\numberline {4}Les techniques de r\IeC {\'e}duction de bruit}{29}{chapter.4}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\newlabel{ch-filtrage}{{4}{27}{Les techniques de réduction de bruit\label {ch-filtrage}\relax }{chapter.4}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.1}Les techniques de r\IeC {\'e}duction de bruit}{27}{section.4.1}} +\newlabel{ch-filtrage}{{4}{29}{Les techniques de réduction de bruit\label {ch-filtrage}\relax }{chapter.4}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4.1}Les techniques de r\IeC {\'e}duction de bruit}{29}{section.4.1}} \citation{tukey77} \citation{4287006} -\newlabel{ny-sap}{{4.1(c)}{28}{Subfigure 4 4.1(c)\relax }{subfigure.4.1.3}{}} -\newlabel{sub@ny-sap}{{(c)}{28}{Subfigure 4 4.1(c)\relax }{subfigure.4.1.3}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces Images 256$\times $256 en niveau de gris 8 bits utilis\IeC {\'e}es pour l'illustration des propri\IeC {\'e}t\IeC {\'e}s des filtres. a) l'image de r\IeC {\'e}f\IeC {\'e}rence non bruit\IeC {\'e}e. b) l'image corrompue par un bruit gaussien d'\IeC {\'e}cart type $\sigma =25$. c) l'image corrompue par un bruit impulsionnel \IeC {\`a} 25\%.}}{28}{figure.4.1}} -\newlabel{fig-ny-noises}{{4.1}{28}{Images 256$\times $256 en niveau de gris 8 bits utilisées pour l'illustration des propriétés des filtres. a) l'image de référence non bruitée. b) l'image corrompue par un bruit gaussien d'écart type $\sigma =25$. c) l'image corrompue par un bruit impulsionnel à 25\%}{figure.4.1}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Sans bruit}}}{28}{figure.4.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Bruit gaussien $\sigma =25$, PSNR=22.3~dB MSSIM=0.16}}}{28}{figure.4.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Bruit impulsionnel 25\%, PSNR=9.48~dB MSSIM=0.04}}}{28}{figure.4.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.1}Les op\IeC {\'e}rateurs de base}{28}{subsection.4.1.1}} -\newlabel{sec-op-base}{{4.1.1}{28}{Les opérateurs de base\relax }{subsection.4.1.1}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1.1}Le filtre de convolution}{28}{subsubsection.4.1.1.1}} -\newlabel{convoDef}{{4.1}{28}{Le filtre de convolution\relax }{equation.4.1.1}{}} +\newlabel{ny-sap}{{4.1(c)}{30}{Subfigure 4 4.1(c)\relax }{subfigure.4.1.3}{}} +\newlabel{sub@ny-sap}{{(c)}{30}{Subfigure 4 4.1(c)\relax }{subfigure.4.1.3}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces Images 256$\times $256 en niveau de gris 8 bits utilis\IeC {\'e}es pour l'illustration des propri\IeC {\'e}t\IeC {\'e}s des filtres. (a) l'image de r\IeC {\'e}f\IeC {\'e}rence non bruit\IeC {\'e}e. (b) l'image corrompue par un bruit gaussien d'\IeC {\'e}cart type $\sigma =25$. (c) l'image corrompue par un bruit impulsionnel \IeC {\`a} 25\%.}}{30}{figure.4.1}} +\newlabel{fig-ny-noises}{{4.1}{30}{Images 256$\times $256 en niveau de gris 8 bits utilisées pour l'illustration des propriétés des filtres. (a) l'image de référence non bruitée. (b) l'image corrompue par un bruit gaussien d'écart type $\sigma =25$. (c) l'image corrompue par un bruit impulsionnel à 25\%}{figure.4.1}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Sans bruit}}}{30}{figure.4.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Bruit gaussien $\sigma =25$, PSNR=22.3~dB MSSIM=0.16}}}{30}{figure.4.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Bruit impulsionnel 25\%, PSNR=9.48~dB MSSIM=0.04}}}{30}{figure.4.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.1}Les op\IeC {\'e}rateurs de base}{30}{subsection.4.1.1}} +\newlabel{sec-op-base}{{4.1.1}{30}{Les opérateurs de base\relax }{subsection.4.1.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1.1}Le filtre de convolution}{30}{subsubsection.4.1.1.1}} +\newlabel{convoDef}{{4.1}{30}{Le filtre de convolution\relax }{equation.4.1.1}{}} \citation{710815} -\@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces Filtrage par convolution.}}{29}{figure.4.2}} -\newlabel{fig-ny-convo}{{4.2}{29}{Filtrage par convolution}{figure.4.2}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Moyenneur 3$\times $3, PSNR=27.6dB MSSIM=0.34}}}{29}{figure.4.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Moyenneur 5$\times $5, PSNR=27.7dB MSSIM=0.38}}}{29}{figure.4.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Filtre gaussien 3$\times $3, PSNR=27.4dB MSSIM=0.33}}}{29}{figure.4.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.3}{\ignorespaces R\IeC {\'e}duction du bruit impulsionnel par filtre m\IeC {\'e}dian.}}{29}{figure.4.3}} -\newlabel{fig-ny-median}{{4.3}{29}{Réduction du bruit impulsionnel par filtre médian}{figure.4.3}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {M\IeC {\'e}dian 3$\times $3 une passe, PSNR=26.4~dB MSSIM=0.90}}}{29}{figure.4.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {M\IeC {\'e}dian 3$\times $3 deux passes, PSNR=34.4~dB MSSIM=0.98}}}{29}{figure.4.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {M\IeC {\'e}dian 5$\times $5 une passe, PSNR=35.1~dB MSSIM=0.98}}}{29}{figure.4.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1.2}Le filtre m\IeC {\'e}dian}{29}{subsubsection.4.1.1.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces Filtrage par convolution.}}{31}{figure.4.2}} +\newlabel{fig-ny-convo}{{4.2}{31}{Filtrage par convolution}{figure.4.2}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Moyenneur 3$\times $3, PSNR=27.6dB MSSIM=0.34}}}{31}{figure.4.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Moyenneur 5$\times $5, PSNR=27.7dB MSSIM=0.38}}}{31}{figure.4.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Filtre gaussien 3$\times $3, PSNR=27.4dB MSSIM=0.33}}}{31}{figure.4.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.3}{\ignorespaces R\IeC {\'e}duction du bruit impulsionnel par filtre m\IeC {\'e}dian.}}{31}{figure.4.3}} +\newlabel{fig-ny-median}{{4.3}{31}{Réduction du bruit impulsionnel par filtre médian}{figure.4.3}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {M\IeC {\'e}dian 3$\times $3 une passe, PSNR=26.4~dB MSSIM=0.90}}}{31}{figure.4.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {M\IeC {\'e}dian 3$\times $3 deux passes, PSNR=34.4~dB MSSIM=0.98}}}{31}{figure.4.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {M\IeC {\'e}dian 5$\times $5 une passe, PSNR=35.1~dB MSSIM=0.98}}}{31}{figure.4.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1.2}Le filtre m\IeC {\'e}dian}{31}{subsubsection.4.1.1.2}} \citation{1521458} \citation{4587843} \citation{BuadesCM06} @@ -110,43 +111,43 @@ \citation{strang1999discrete} \citation{elad2006image} \citation{elad2006image} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1.3}Le filtre bilat\IeC {\'e}ral}{30}{subsubsection.4.1.1.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1.4}Les algorithmes de filtrage par dictionnaire}{30}{subsubsection.4.1.1.4}} -\newlabel{subfig-bruit-bilat}{{4.4(e)}{31}{Subfigure 4 4.4(e)\relax }{subfigure.4.4.5}{}} -\newlabel{sub@subfig-bruit-bilat}{{(e)}{31}{Subfigure 4 4.4(e)\relax }{subfigure.4.4.5}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.4}{\ignorespaces R\IeC {\'e}duction de bruit gaussien par filtrage bilat\IeC {\'e}ral de voisinage 5$\times $5. $\sigma _S$ et $\sigma _I$ sont les \IeC {\'e}carts type des fonctions gaussiennes de pond\IeC {\'e}ration spatiale et d'intensit\IeC {\'e}.}}{31}{figure.4.4}} -\newlabel{fig-ny-bilat}{{4.4}{31}{Réduction de bruit gaussien par filtrage bilatéral de voisinage 5$\times $5. $\sigma _S$ et $\sigma _I$ sont les écarts type des fonctions gaussiennes de pondération spatiale et d'intensité}{figure.4.4}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$\sigma _S=1.0$ et $\sigma _I=0.1$, PSNR=25.6~dB MSSIM=0.25}}}{31}{figure.4.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$\sigma _S=1.0$ et $\sigma _I=0.5$, PSNR=28.0~dB MSSIM=0.36}}}{31}{figure.4.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$\sigma _S=1.0$ et $\sigma _I=1.0$, PSNR=27.9~dB MSSIM=0.36}}}{31}{figure.4.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$\sigma _S=2.0$ et $\sigma _I=0.1$, PSNR=26.7~dB MSSIM=0.29}}}{31}{figure.4.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {$\sigma _S=2.0$ et $\sigma _I=0.5$, PSNR=27.9~dB MSSIM=0.39}}}{31}{figure.4.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {$\sigma _S=2.0$ et $\sigma _I=1.0$, PSNR=27.5~dB MSSIM=0.38}}}{31}{figure.4.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(g)}{\ignorespaces {$\sigma _S=5.0$ et $\sigma _I=0.1$, PSNR=26.8~dB MSSIM=0.29}}}{31}{figure.4.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(h)}{\ignorespaces {$\sigma _S=5.0$ et $\sigma _I=0.5$, PSNR=26.8~dB MSSIM=0.37}}}{31}{figure.4.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(i)}{\ignorespaces {$\sigma _S=5.0$ et $\sigma _I=1.0$, PSNR=25.9~dB MSSIM=0.36}}}{31}{figure.4.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1.3}Le filtre bilat\IeC {\'e}ral}{32}{subsubsection.4.1.1.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1.4}Les algorithmes de filtrage par dictionnaire}{32}{subsubsection.4.1.1.4}} +\newlabel{subfig-bruit-bilat}{{4.4(e)}{33}{Subfigure 4 4.4(e)\relax }{subfigure.4.4.5}{}} +\newlabel{sub@subfig-bruit-bilat}{{(e)}{33}{Subfigure 4 4.4(e)\relax }{subfigure.4.4.5}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.4}{\ignorespaces R\IeC {\'e}duction de bruit gaussien par filtrage bilat\IeC {\'e}ral de voisinage 5$\times $5. $\sigma _S$ et $\sigma _I$ sont les \IeC {\'e}carts type des fonctions gaussiennes de pond\IeC {\'e}ration spatiale et d'intensit\IeC {\'e}.}}{33}{figure.4.4}} +\newlabel{fig-ny-bilat}{{4.4}{33}{Réduction de bruit gaussien par filtrage bilatéral de voisinage 5$\times $5. $\sigma _S$ et $\sigma _I$ sont les écarts type des fonctions gaussiennes de pondération spatiale et d'intensité}{figure.4.4}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$\sigma _S=1.0$ et $\sigma _I=0.1$, PSNR=25.6~dB MSSIM=0.25}}}{33}{figure.4.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$\sigma _S=1.0$ et $\sigma _I=0.5$, PSNR=28.0~dB MSSIM=0.36}}}{33}{figure.4.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$\sigma _S=1.0$ et $\sigma _I=1.0$, PSNR=27.9~dB MSSIM=0.36}}}{33}{figure.4.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$\sigma _S=2.0$ et $\sigma _I=0.1$, PSNR=26.7~dB MSSIM=0.29}}}{33}{figure.4.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {$\sigma _S=2.0$ et $\sigma _I=0.5$, PSNR=27.9~dB MSSIM=0.39}}}{33}{figure.4.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {$\sigma _S=2.0$ et $\sigma _I=1.0$, PSNR=27.5~dB MSSIM=0.38}}}{33}{figure.4.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(g)}{\ignorespaces {$\sigma _S=5.0$ et $\sigma _I=0.1$, PSNR=26.8~dB MSSIM=0.29}}}{33}{figure.4.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(h)}{\ignorespaces {$\sigma _S=5.0$ et $\sigma _I=0.5$, PSNR=26.8~dB MSSIM=0.37}}}{33}{figure.4.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(i)}{\ignorespaces {$\sigma _S=5.0$ et $\sigma _I=1.0$, PSNR=25.9~dB MSSIM=0.36}}}{33}{figure.4.4}} \citation{1467423} \citation{Dabov06imagedenoising} \citation{Dabov09bm3dimage} -\@writefile{lof}{\contentsline {figure}{\numberline {4.5}{\ignorespaces Filtrage par d\IeC {\'e}composition en ondelettes et seuillage dur des coefficients inf\IeC {\'e}rieurs au seuil $T$.}}{32}{figure.4.5}} -\newlabel{fig-ny-dwt}{{4.5}{32}{Filtrage par décomposition en ondelettes et seuillage dur des coefficients inférieurs au seuil $T$}{figure.4.5}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$T=20$, PSNR=26.9~dB MSSIM=0.30}}}{32}{figure.4.5}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$T=35$, PSNR=27.6~dB MSSIM=0.36}}}{32}{figure.4.5}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$T=70$, PSNR=26.7~dB MSSIM=0.37}}}{32}{figure.4.5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.2}Les algorithmes de filtrage par patches}{32}{subsection.4.1.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.5}{\ignorespaces Filtrage par d\IeC {\'e}composition en ondelettes et seuillage dur des coefficients inf\IeC {\'e}rieurs au seuil $T$.}}{34}{figure.4.5}} +\newlabel{fig-ny-dwt}{{4.5}{34}{Filtrage par décomposition en ondelettes et seuillage dur des coefficients inférieurs au seuil $T$}{figure.4.5}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$T=20$, PSNR=26.9~dB MSSIM=0.30}}}{34}{figure.4.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$T=35$, PSNR=27.6~dB MSSIM=0.36}}}{34}{figure.4.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$T=70$, PSNR=26.7~dB MSSIM=0.37}}}{34}{figure.4.5}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.2}Les algorithmes de filtrage par patches}{34}{subsection.4.1.2}} \citation{cmla2009Kes} \citation{convolutionsoup} -\@writefile{lof}{\contentsline {figure}{\numberline {4.6}{\ignorespaces Filtrage par NL-means pour diff\IeC {\'e}rentes combinaisons des param\IeC {\`e}tres de similarit\IeC {\'e} $f$ et de non localit\IeC {\'e} $t$.}}{33}{figure.4.6}} -\newlabel{fig-ny-nlm}{{4.6}{33}{Filtrage par NL-means pour différentes combinaisons des paramètres de similarité $f$ et de non localité $t$}{figure.4.6}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$f=2$ et $t=2$, PSNR=28.5~dB MSSIM=0.37}}}{33}{figure.4.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$f=2$ et $t=5$, PSNR=28.6~dB MSSIM=0.38}}}{33}{figure.4.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$f=5$ et $t=2$, PSNR=29.0~dB MSSIM=0.39}}}{33}{figure.4.6}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$f=5$ et $t=5$, PSNR=29.0~dB MSSIM=0.40}}}{33}{figure.4.6}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.7}{\ignorespaces Filtrage par BM3D, PSNR=29.3~dB MSSIM=0.41}}{33}{figure.4.7}} -\newlabel{fig-ny-bm3d}{{4.7}{33}{Filtrage par BM3D, PSNR=29.3~dB MSSIM=0.41\relax }{figure.4.7}{}} -\newlabel{sec-filtresgpu}{{4.2}{33}{Les implémentations sur GPU des algorithmes de filtrage\label {sec-filtresgpu}\relax }{section.4.2}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4.2}Les impl\IeC {\'e}mentations sur GPU des algorithmes de filtrage}{33}{section.4.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Le filtrage par convolution}{33}{subsection.4.2.1}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.6}{\ignorespaces Filtrage par NL-means pour diff\IeC {\'e}rentes combinaisons des param\IeC {\`e}tres de similarit\IeC {\'e} $f$ et de non localit\IeC {\'e} $t$.}}{35}{figure.4.6}} +\newlabel{fig-ny-nlm}{{4.6}{35}{Filtrage par NL-means pour différentes combinaisons des paramètres de similarité $f$ et de non localité $t$}{figure.4.6}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$f=2$ et $t=2$, PSNR=28.5~dB MSSIM=0.37}}}{35}{figure.4.6}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$f=2$ et $t=5$, PSNR=28.6~dB MSSIM=0.38}}}{35}{figure.4.6}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$f=5$ et $t=2$, PSNR=29.0~dB MSSIM=0.39}}}{35}{figure.4.6}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$f=5$ et $t=5$, PSNR=29.0~dB MSSIM=0.40}}}{35}{figure.4.6}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.7}{\ignorespaces Filtrage par BM3D, PSNR=29.3~dB MSSIM=0.41}}{35}{figure.4.7}} +\newlabel{fig-ny-bm3d}{{4.7}{35}{Filtrage par BM3D, PSNR=29.3~dB MSSIM=0.41\relax }{figure.4.7}{}} +\newlabel{sec-filtresgpu}{{4.2}{35}{Les implémentations sur GPU des algorithmes de filtrage\label {sec-filtresgpu}\relax }{section.4.2}{}} +\@writefile{toc}{\contentsline {section}{\numberline {4.2}Les impl\IeC {\'e}mentations sur GPU des algorithmes de filtrage}{35}{section.4.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Le filtrage par convolution}{35}{subsection.4.2.1}} \citation{4287006} \citation{6288187} \citation{5402362} @@ -154,61 +155,62 @@ \citation{5402362} \citation{sanchez2013highly} \citation{5402362} -\newlabel{fig-compare-jacket-pcmf1}{{4.8(a)}{34}{Subfigure 4 4.8(a)\relax }{subfigure.4.8.1}{}} -\newlabel{sub@fig-compare-jacket-pcmf1}{{(a)}{34}{Subfigure 4 4.8(a)\relax }{subfigure.4.8.1}{}} -\newlabel{fig-compare-jacket-pcmf2}{{4.8(b)}{34}{Subfigure 4 4.8(b)\relax }{subfigure.4.8.2}{}} -\newlabel{sub@fig-compare-jacket-pcmf2}{{(b)}{34}{Subfigure 4 4.8(b)\relax }{subfigure.4.8.2}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.8}{\ignorespaces Performances relatives des filtres m\IeC {\'e}dians impl\IeC {\'e}ment\IeC {\'e}s sur GPU dans libJacket/ArrayFire, PCMF et BVM et ex\IeC {\'e}cut\IeC {\'e}s sur deux mod\IeC {\`e}les de g\IeC {\'e}n\IeC {\'e}rations diff\IeC {\'e}rentes.}}{34}{figure.4.8}} -\newlabel{fig-compare-jacket-pcmf}{{4.8}{34}{Performances relatives des filtres médians implémentés sur GPU dans libJacket/ArrayFire, PCMF et BVM et exécutés sur deux modèles de générations différentes}{figure.4.8}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Sur GPU GTX260. Courbe tir\IeC {\'e}e de \cite {5402362}}}}{34}{figure.4.8}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Sur GPU C2075. Courbe tir\IeC {\'e}e de \cite {sanchez2013highly}}}}{34}{figure.4.8}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}Le filtre m\IeC {\'e}dian}{34}{subsection.4.2.2}} -\newlabel{sec-median}{{4.2.2}{34}{Le filtre médian\relax }{subsection.4.2.2}{}} \citation{sanchez2013highly} \citation{aldinucci2012parallel} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}Le filtre m\IeC {\'e}dian}{36}{subsection.4.2.2}} +\newlabel{sec-median}{{4.2.2}{36}{Le filtre médian\relax }{subsection.4.2.2}{}} \citation{5206542} \citation{zheng2011performance} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.3}Le filtre bilat\IeC {\'e}ral}{35}{subsection.4.2.3}} -\newlabel{sec-bilateral}{{4.2.3}{35}{Le filtre bilatéral\relax }{subsection.4.2.3}{}} +\newlabel{fig-compare-jacket-pcmf1}{{4.8(a)}{37}{Subfigure 4 4.8(a)\relax }{subfigure.4.8.1}{}} +\newlabel{sub@fig-compare-jacket-pcmf1}{{(a)}{37}{Subfigure 4 4.8(a)\relax }{subfigure.4.8.1}{}} +\newlabel{fig-compare-jacket-pcmf2}{{4.8(b)}{37}{Subfigure 4 4.8(b)\relax }{subfigure.4.8.2}{}} +\newlabel{sub@fig-compare-jacket-pcmf2}{{(b)}{37}{Subfigure 4 4.8(b)\relax }{subfigure.4.8.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.8}{\ignorespaces Performances relatives des filtres m\IeC {\'e}dians impl\IeC {\'e}ment\IeC {\'e}s sur GPU dans libJacket/ArrayFire, PCMF et BVM et ex\IeC {\'e}cut\IeC {\'e}s sur deux mod\IeC {\`e}les de g\IeC {\'e}n\IeC {\'e}rations diff\IeC {\'e}rentes.}}{37}{figure.4.8}} +\newlabel{fig-compare-jacket-pcmf}{{4.8}{37}{Performances relatives des filtres médians implémentés sur GPU dans libJacket/ArrayFire, PCMF et BVM et exécutés sur deux modèles de générations différentes}{figure.4.8}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Sur GPU GTX260. Courbe tir\IeC {\'e}e de \cite {5402362}}}}{37}{figure.4.8}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Sur GPU C2075. Courbe tir\IeC {\'e}e de \cite {sanchez2013highly}}}}{37}{figure.4.8}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.3}Le filtre bilat\IeC {\'e}ral}{37}{subsection.4.2.3}} +\newlabel{sec-bilateral}{{4.2.3}{37}{Le filtre bilatéral\relax }{subsection.4.2.3}{}} \citation{zheng2011performance} \citation{zheng2011performance} +\@writefile{lof}{\contentsline {figure}{\numberline {4.9}{\ignorespaces Illustration du pr\IeC {\'e}-chargement en m\IeC {\'e}moire partag\IeC {\'e}e mis en \oe uvre dans \cite {zheng2011performance} pour l'impl\IeC {\'e}mentation, entre autres, du filtre bilat\IeC {\'e}ral. a) en vert le bloc de threads associ\IeC {\'e} aux pixels centraux. b-e) les blocs de pixels successivement pr\IeC {\'e}-charg\IeC {\'e}s en m\IeC {\'e}moire partag\IeC {\'e}e. f) la configuration finale de la ROI en m\IeC {\'e}moire partag\IeC {\'e}e.}}{38}{figure.4.9}} +\newlabel{fig-prefetch-zheng}{{4.9}{38}{Illustration du pré-chargement en mémoire partagée mis en \oe uvre dans \cite {zheng2011performance} pour l'implémentation, entre autres, du filtre bilatéral. a) en vert le bloc de threads associé aux pixels centraux. b-e) les blocs de pixels successivement pré-chargés en mémoire partagée. f) la configuration finale de la ROI en mémoire partagée}{figure.4.9}{}} \citation{PALHANOXAVIERDEFONTES} \citation{nlmeansgpubelge} -\@writefile{lof}{\contentsline {figure}{\numberline {4.9}{\ignorespaces Illustration du pr\IeC {\'e}-chargement en m\IeC {\'e}moire partag\IeC {\'e}e mis en \oe uvre dans \cite {zheng2011performance} pour l'impl\IeC {\'e}mentation, entre autres, du filtre bilat\IeC {\'e}ral. a) en vert le bloc de threads associ\IeC {\'e} aux pixels centraux. b-e) les blocs de pixels successivement pr\IeC {\'e}-charg\IeC {\'e}s en m\IeC {\'e}moire partag\IeC {\'e}e. f) la configuration finale de la ROI en m\IeC {\'e}moire partag\IeC {\'e}e.}}{36}{figure.4.9}} -\newlabel{fig-prefetch-zheng}{{4.9}{36}{Illustration du pré-chargement en mémoire partagée mis en \oe uvre dans \cite {zheng2011performance} pour l'implémentation, entre autres, du filtre bilatéral. a) en vert le bloc de threads associé aux pixels centraux. b-e) les blocs de pixels successivement pré-chargés en mémoire partagée. f) la configuration finale de la ROI en mémoire partagée}{figure.4.9}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.4}Les filtres par patches}{37}{subsection.4.2.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.4}Les filtres par patches}{39}{subsection.4.2.4}} \citation{humphrey1924psychology} -\citation{4310076} -\@writefile{toc}{\contentsline {chapter}{\numberline {5}Les techniques de segmentation des images}{39}{chapter.5}} +\@writefile{toc}{\contentsline {chapter}{\numberline {5}Les techniques de segmentation des images}{41}{chapter.5}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {5.1}Les techniques de segmentation}{39}{section.5.1}} +\@writefile{toc}{\contentsline {section}{\numberline {5.1}Introduction}{41}{section.5.1}} +\@writefile{toc}{\contentsline {section}{\numberline {5.2}Les techniques de segmentation orient\IeC {\'e}es r\IeC {\'e}gions}{41}{section.5.2}} +\citation{4310076} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.1}Analyse d'histogramme}{42}{subsection.5.2.1}} +\newlabel{sec-histo}{{5.2.1}{42}{Analyse d'histogramme\relax }{subsection.5.2.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.2}Partitionnement de graphe}{42}{subsection.5.2.2}} +\newlabel{fig-histo-cochon-a}{{5.1(a)}{43}{Subfigure 5 5.1(a)\relax }{subfigure.5.1.1}{}} +\newlabel{sub@fig-histo-cochon-a}{{(a)}{43}{Subfigure 5 5.1(a)\relax }{subfigure.5.1.1}{}} +\newlabel{fig-histo-cochon-b}{{5.1(b)}{43}{Subfigure 5 5.1(b)\relax }{subfigure.5.1.2}{}} +\newlabel{sub@fig-histo-cochon-b}{{(b)}{43}{Subfigure 5 5.1(b)\relax }{subfigure.5.1.2}{}} +\newlabel{fig-histo-cochon-c}{{5.1(c)}{43}{Subfigure 5 5.1(c)\relax }{subfigure.5.1.3}{}} +\newlabel{sub@fig-histo-cochon-c}{{(c)}{43}{Subfigure 5 5.1(c)\relax }{subfigure.5.1.3}{}} +\newlabel{fig-histo-cochon-d}{{5.1(d)}{43}{Subfigure 5 5.1(d)\relax }{subfigure.5.1.4}{}} +\newlabel{sub@fig-histo-cochon-d}{{(d)}{43}{Subfigure 5 5.1(d)\relax }{subfigure.5.1.4}{}} +\newlabel{fig-histo-cochon-e}{{5.1(e)}{43}{Subfigure 5 5.1(e)\relax }{subfigure.5.1.5}{}} +\newlabel{sub@fig-histo-cochon-e}{{(e)}{43}{Subfigure 5 5.1(e)\relax }{subfigure.5.1.5}{}} +\newlabel{fig-histo-cochon-f}{{5.1(f)}{43}{Subfigure 5 5.1(f)\relax }{subfigure.5.1.6}{}} +\newlabel{sub@fig-histo-cochon-f}{{(f)}{43}{Subfigure 5 5.1(f)\relax }{subfigure.5.1.6}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par analyse simple d'histogramme. Colonne de gauche : image d'entr\IeC {\'e}e. Colonne centrale : histogramme des niveaux de gris. Colonne de droite : r\IeC {\'e}sultat de la segmentation.}}{43}{figure.5.1}} +\newlabel{fig-histo-cochon}{{5.1}{43}{Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par analyse simple d'histogramme. Colonne de gauche : image d'entrée. Colonne centrale : histogramme des niveaux de gris. Colonne de droite : résultat de la segmentation}{figure.5.1}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image initiale comportant deux zones : le fond et la peluche (la cible)}}}{43}{figure.5.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Histogramme des niveaux de gris}}}{43}{figure.5.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Image binaire repr\IeC {\'e}sentant la segmentation. Seuil estim\IeC {\'e} \IeC {\`a} 101 apr\IeC {\`e}s 4 it\IeC {\'e}rations.}}}{43}{figure.5.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {Image initiale bruit\IeC {\'e}e}}}{43}{figure.5.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {Histogramme des niveaux de gris}}}{43}{figure.5.1}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {Image binaire repr\IeC {\'e}sentant la segmentation. Seuil estim\IeC {\'e} \IeC {\`a} 99 apr\IeC {\`e}s 5 it\IeC {\'e}rations.}}}{43}{figure.5.1}} +\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces Calcul du seuil de s\IeC {\'e}paration des segments de l'histogramme.}}{43}{algocfline.1}} +\newlabel{algo-histo-cochon}{{1}{43}{Analyse d'histogramme\relax }{algocfline.1}{}} \citation{Zahn:1971:GMD:1309266.1309359} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.1}Analyse d'histogramme}{40}{subsection.5.1.1}} -\newlabel{sec-histo}{{5.1.1}{40}{Analyse d'histogramme\relax }{subsection.5.1.1}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.2}Partitionnement de graphe}{40}{subsection.5.1.2}} -\newlabel{fig-histo-cochon-a}{{5.1(a)}{41}{Subfigure 5 5.1(a)\relax }{subfigure.5.1.1}{}} -\newlabel{sub@fig-histo-cochon-a}{{(a)}{41}{Subfigure 5 5.1(a)\relax }{subfigure.5.1.1}{}} -\newlabel{fig-histo-cochon-b}{{5.1(b)}{41}{Subfigure 5 5.1(b)\relax }{subfigure.5.1.2}{}} -\newlabel{sub@fig-histo-cochon-b}{{(b)}{41}{Subfigure 5 5.1(b)\relax }{subfigure.5.1.2}{}} -\newlabel{fig-histo-cochon-c}{{5.1(c)}{41}{Subfigure 5 5.1(c)\relax }{subfigure.5.1.3}{}} -\newlabel{sub@fig-histo-cochon-c}{{(c)}{41}{Subfigure 5 5.1(c)\relax }{subfigure.5.1.3}{}} -\newlabel{fig-histo-cochon-d}{{5.1(d)}{41}{Subfigure 5 5.1(d)\relax }{subfigure.5.1.4}{}} -\newlabel{sub@fig-histo-cochon-d}{{(d)}{41}{Subfigure 5 5.1(d)\relax }{subfigure.5.1.4}{}} -\newlabel{fig-histo-cochon-e}{{5.1(e)}{41}{Subfigure 5 5.1(e)\relax }{subfigure.5.1.5}{}} -\newlabel{sub@fig-histo-cochon-e}{{(e)}{41}{Subfigure 5 5.1(e)\relax }{subfigure.5.1.5}{}} -\newlabel{fig-histo-cochon-f}{{5.1(f)}{41}{Subfigure 5 5.1(f)\relax }{subfigure.5.1.6}{}} -\newlabel{sub@fig-histo-cochon-f}{{(f)}{41}{Subfigure 5 5.1(f)\relax }{subfigure.5.1.6}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par analyse simple d'histogramme. Colonne de gauche : image d'entr\IeC {\'e}e. Colonne centrale : histogramme des niveaux de gris. Colonne de droite : r\IeC {\'e}sultat de la segmentation.}}{41}{figure.5.1}} -\newlabel{fig-histo-cochon}{{5.1}{41}{Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par analyse simple d'histogramme. Colonne de gauche : image d'entrée. Colonne centrale : histogramme des niveaux de gris. Colonne de droite : résultat de la segmentation}{figure.5.1}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image initiale comportant deux zones : le fond et le cochon (la cible)}}}{41}{figure.5.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Histogramme des niveaux de gris}}}{41}{figure.5.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Image binaire repr\IeC {\'e}sentant la segmentation. Seuil estim\IeC {\'e} \IeC {\`a} 101 apr\IeC {\`e}s 4 it\IeC {\'e}rations.}}}{41}{figure.5.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {Image initiale bruit\IeC {\'e}e}}}{41}{figure.5.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {Histogramme des niveaux de gris}}}{41}{figure.5.1}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {Image binaire repr\IeC {\'e}sentant la segmentation. Seuil estim\IeC {\'e} \IeC {\`a} 99 apr\IeC {\`e}s 5 it\IeC {\'e}rations.}}}{41}{figure.5.1}} -\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces Calcul du seuil de s\IeC {\'e}paration des segments de l'histogramme.}}{41}{algocfline.1}} -\newlabel{algo-histo-cochon}{{1}{41}{Analyse d'histogramme\relax }{algocfline.1}{}} \citation{wu1993optimal} \citation{wang2001image} \citation{wang2003image} @@ -224,71 +226,74 @@ \citation{agarwal2002exact} \citation{arora1998approximation} \citation{pelleg2000x} +\@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par simplification de graphe de type \textit {Normalized cut} pour un nombre $s$ de segments variant de 2 \IeC {\`a} 5.}}{45}{figure.5.2}} +\newlabel{fig-graph-cochon}{{5.2}{45}{Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par simplification de graphe de type \textit {Normalized cut} pour un nombre $s$ de segments variant de 2 à 5}{figure.5.2}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$s = 2$}}}{45}{figure.5.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$s = 3$}}}{45}{figure.5.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$s = 4$}}}{45}{figure.5.2}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$s = 5$}}}{45}{figure.5.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.3}kernel-means, mean-shift et apparent\IeC {\'e}s}{45}{subsection.5.2.3}} \citation{fukunaga1975estimation} \citation{cheng1995mean} -\@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par simplification de graphe de type \textit {Normalized cut} pour un nombre $s$ de segments variant de 2 \IeC {\`a} 5.}}{43}{figure.5.2}} -\newlabel{fig-graph-cochon}{{5.2}{43}{Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par simplification de graphe de type \textit {Normalized cut} pour un nombre $s$ de segments variant de 2 à 5}{figure.5.2}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$s = 2$}}}{43}{figure.5.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$s = 3$}}}{43}{figure.5.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$s = 4$}}}{43}{figure.5.2}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$s = 5$}}}{43}{figure.5.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.3}kernel-means, mean-shift et apparent\IeC {\'e}s}{43}{subsection.5.1.3}} \citation{foley1994introduction} \citation{comaniciu1999mean} \citation{comaniciu2002mean} \citation{keselman1998extraction} -\@writefile{lof}{\contentsline {figure}{\numberline {5.3}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme \textit {k-means} pour un nombre $s$ de segments variant de 2 \IeC {\`a} 5. Chaque couleur est associ\IeC {\'e}e \IeC {\`a} un segment. Les couleurs sont choisies pour une meilleure visualisation des diff\IeC {\'e}rents segments.}}{44}{figure.5.3}} -\newlabel{fig-kmeans-cochon}{{5.3}{44}{Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme \textit {k-means} pour un nombre $s$ de segments variant de 2 à 5. Chaque couleur est associée à un segment. Les couleurs sont choisies pour une meilleure visualisation des différents segments}{figure.5.3}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$s = 2$}}}{44}{figure.5.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$s = 3$}}}{44}{figure.5.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$s = 4$}}}{44}{figure.5.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$s = 5$}}}{44}{figure.5.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.4}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme \textit {mean-shift} pour un rayon de voisinage $r$ de 100, 50, 35 et 25 pixels permettant d'obtenir un nombre $s$ de segments variant respectivement de 2 \IeC {\`a} 5. Le volume minimal admis pour un segment est fix\IeC {\'e} \IeC {\`a} 100 pixels. Chaque couleur est associ\IeC {\'e}e \IeC {\`a} un segment. Les couleurs sont choisies pour une meilleure visualisation des diff\IeC {\'e}rents segments.}}{44}{figure.5.4}} -\newlabel{fig-meanshift-cochon}{{5.4}{44}{Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme \textit {mean-shift} pour un rayon de voisinage $r$ de 100, 50, 35 et 25 pixels permettant d'obtenir un nombre $s$ de segments variant respectivement de 2 à 5. Le volume minimal admis pour un segment est fixé à 100 pixels. Chaque couleur est associée à un segment. Les couleurs sont choisies pour une meilleure visualisation des différents segments}{figure.5.4}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$r=100 \Rightarrow s = 2$}}}{44}{figure.5.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$r=50 \Rightarrow s = 3$}}}{44}{figure.5.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$r=35 \Rightarrow s = 4$}}}{44}{figure.5.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$r=25 \Rightarrow s = 5$}}}{44}{figure.5.4}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.3}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme \textit {k-means} pour un nombre $K$ de segments variant de 2 \IeC {\`a} 5. Chaque couleur est associ\IeC {\'e}e \IeC {\`a} un segment. Les couleurs sont choisies pour une meilleure visualisation des diff\IeC {\'e}rents segments.}}{46}{figure.5.3}} +\newlabel{fig-kmeans-cochon}{{5.3}{46}{Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme \textit {k-means} pour un nombre $K$ de segments variant de 2 à 5. Chaque couleur est associée à un segment. Les couleurs sont choisies pour une meilleure visualisation des différents segments}{figure.5.3}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$K = 2$}}}{46}{figure.5.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$K = 3$}}}{46}{figure.5.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$K = 4$}}}{46}{figure.5.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$K = 5$}}}{46}{figure.5.3}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.4}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme \textit {mean-shift} pour un rayon de voisinage $r$ de 100, 50, 35 et 25 pixels permettant d'obtenir un nombre $K$ de segments variant respectivement de 2 \IeC {\`a} 5. Le volume minimal admis pour un segment est fix\IeC {\'e} \IeC {\`a} 100 pixels. Chaque couleur est associ\IeC {\'e}e \IeC {\`a} un segment. Les couleurs sont choisies pour une meilleure visualisation des diff\IeC {\'e}rents segments.}}{47}{figure.5.4}} +\newlabel{fig-meanshift-cochon}{{5.4}{47}{Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme \textit {mean-shift} pour un rayon de voisinage $r$ de 100, 50, 35 et 25 pixels permettant d'obtenir un nombre $K$ de segments variant respectivement de 2 à 5. Le volume minimal admis pour un segment est fixé à 100 pixels. Chaque couleur est associée à un segment. Les couleurs sont choisies pour une meilleure visualisation des différents segments}{figure.5.4}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$r=100 \Rightarrow K = 2$}}}{47}{figure.5.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$r=50 \Rightarrow K = 3$}}}{47}{figure.5.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$r=35 \Rightarrow K = 4$}}}{47}{figure.5.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$r=25 \Rightarrow K = 5$}}}{47}{figure.5.4}} +\@writefile{toc}{\contentsline {section}{\numberline {5.3}Les techniques de segmentation par contours actifs, ou snakes}{47}{section.5.3}} \citation{KassWT88} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.4}Les contours actifs, ou snakes}{45}{subsection.5.1.4}} \citation{osher1988fronts} \citation{adalsteinsson1994fast} \citation{sethian1996fast} +\@writefile{lof}{\contentsline {figure}{\numberline {5.5}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme dit du \textit {snake}, dans sa version originale. Les param\IeC {\`e}tres d'\IeC {\'e}lasticit\IeC {\'e}, de raideur et d'attraction ont \IeC {\'e}t\IeC {\'e} fix\IeC {\'e}s respectivement aux valeurs 5, 0.1 et 5. }}{48}{figure.5.5}} +\newlabel{fig-snake-tradi-cochon}{{5.5}{48}{Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme dit du \textit {snake}, dans sa version originale. Les paramètres d'élasticité, de raideur et d'attraction ont été fixés respectivement aux valeurs 5, 0.1 et 5. \relax }{figure.5.5}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Les \IeC {\'e}tats initial et suivant chacune des trois premi\IeC {\`e}res it\IeC {\'e}rations}}}{48}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la septi\IeC {\`e}me it\IeC {\'e}ration}}}{48}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la dixi\IeC {\`e}me it\IeC {\'e}ration}}}{48}{figure.5.5}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la centi\IeC {\`e}me it\IeC {\'e}ration. C'est le contour final.}}}{48}{figure.5.5}} \citation{cohen1993surface} \citation{ronfard1994region} \citation{ChesnaudRB99} \citation{GallandBR03} \citation{GermainR01} -\@writefile{lof}{\contentsline {figure}{\numberline {5.5}{\ignorespaces Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme dit du \textit {snake}, dans sa version originale. Les param\IeC {\`e}tres d'\IeC {\'e}lasticit\IeC {\'e}, de raideur et d'attraction ont \IeC {\'e}t\IeC {\'e} fix\IeC {\'e}s respectivement aux valeurs 5, 0.1 et 5. }}{46}{figure.5.5}} -\newlabel{fig-snake-tradi-cochon}{{5.5}{46}{Segmentation d'une image en niveaux de gris de 128 $\times $ 128 pixels par algorithme dit du \textit {snake}, dans sa version originale. Les paramètres d'élasticité, de raideur et d'attraction ont été fixés respectivement aux valeurs 5, 0.1 et 5. \relax }{figure.5.5}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Les \IeC {\'e}tats initial et suivant chacune des trois premi\IeC {\`e}res it\IeC {\'e}rations}}}{46}{figure.5.5}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la septi\IeC {\`e}me it\IeC {\'e}ration}}}{46}{figure.5.5}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la dixi\IeC {\`e}me it\IeC {\'e}ration}}}{46}{figure.5.5}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {L'\IeC {\'e}tat du contour apr\IeC {\`e}s la centi\IeC {\`e}me it\IeC {\'e}ration. C'est le contour final.}}}{46}{figure.5.5}} +\citation{galland2005minimal} +\citation{5767240} +\citation{ChesnaudRB99} \citation{arbelaez2011contour} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.5}M\IeC {\'e}thodes hybrides}{47}{subsection.5.1.5}} -\@writefile{toc}{\contentsline {section}{\numberline {5.2}Les impl\IeC {\'e}mentations des techniques de segmentation sur GPU}{47}{section.5.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.1}M\IeC {\'e}thodes hybrides}{49}{subsection.5.3.1}} +\@writefile{toc}{\contentsline {section}{\numberline {5.4}Les impl\IeC {\'e}mentations des techniques de segmentation sur GPU}{49}{section.5.4}} \citation{fluck2006gpu} \citation{lefohn2003interactive} \citation{Vineet:2009:FMS:1572769.1572796} \citation{dixit2005gpu} \citation{4563095} \citation{kohli2007dynamic} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.1}Calcul d'histogramme}{50}{subsection.5.4.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.2}Partitionnement de graphe}{50}{subsection.5.4.2}} \citation{graphcutscuda} \citation{graphcutscuda} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.1}Calcul d'histogramme}{48}{subsection.5.2.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.2}Partitionnement de graphe}{48}{subsection.5.2.2}} \citation{graphcutscuda} \citation{graphcutscuda} \citation{che2008performance} \citation{kddcup99} \citation{5170921} \citation{che2008performance} +\@writefile{lof}{\contentsline {figure}{\numberline {5.6}{\ignorespaces \IeC {\'E}volution du nombre de pixels actifs pour les it\IeC {\'e}rations successives de l'impl\IeC {\'e}mentation de l'algorithme push-relabel de \cite {graphcutscuda}. Les petites images montrent la localisation des pixels actifs apr\IeC {\`e}s chaque it\IeC {\'e}ration, en blanc.}}{51}{figure.5.6}} +\newlabel{fig-graphcutscuda}{{5.6}{51}{Évolution du nombre de pixels actifs pour les itérations successives de l'implémentation de l'algorithme push-relabel de \cite {graphcutscuda}. Les petites images montrent la localisation des pixels actifs après chaque itération, en blanc}{figure.5.6}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.3}K-means, mean-shift et apparent\IeC {\'e}s}{51}{subsection.5.4.3}} \citation{kmeansgpuopengl} \citation{li2009mean} -\@writefile{lof}{\contentsline {figure}{\numberline {5.6}{\ignorespaces \IeC {\'E}volution du nombre de pixels actifs pour les it\IeC {\'e}rations successives de l'impl\IeC {\'e}mentation de l'algorithme push-relabel de \cite {graphcutscuda}. Les petites images montrent la localisation des pixels actifs apr\IeC {\`e}s chaque it\IeC {\'e}ration, en blanc.}}{49}{figure.5.6}} -\newlabel{fig-graphcutscuda}{{5.6}{49}{Évolution du nombre de pixels actifs pour les itérations successives de l'implémentation de l'algorithme push-relabel de \cite {graphcutscuda}. Les petites images montrent la localisation des pixels actifs après chaque itération, en blanc}{figure.5.6}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.3}K-means, mean-shift et apparent\IeC {\'e}s}{49}{subsection.5.2.3}} \citation{vedaldi2008quick} \citation{fulkerson2012really} \citation{fulkerson2012really} @@ -301,17 +306,17 @@ \citation{lefohn2003interactive} \citation{rumpf2001level} \citation{rumpf2001level} -\@writefile{lof}{\contentsline {figure}{\numberline {5.7}{\ignorespaces Segmentation d'une image couleur de 512$\times $512 pixels par l'impl\IeC {\'e}mentation GPU quick-shift de \cite {fulkerson2012really}.}}{51}{figure.5.7}} -\newlabel{fig-quickshift-yo}{{5.7}{51}{Segmentation d'une image couleur de 512$\times $512 pixels par l'implémentation GPU quick-shift de \cite {fulkerson2012really}}{figure.5.7}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image originale}}}{51}{figure.5.7}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$\tau =10$ et $\sigma =2$}}}{51}{figure.5.7}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$\tau =10$ et $\sigma =10$}}}{51}{figure.5.7}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$\tau =20$ et $\sigma =10$}}}{51}{figure.5.7}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.8}{\ignorespaces Comparaison des segmentations d'une image couleur de 2256$\times $3008 pixels r\IeC {\'e}alis\IeC {\'e}es par \textit {mean-shift} standard et par le \textit {mean-shift kd tree} de \cite {xiao2010efficient}.}}{51}{figure.5.8}} -\newlabel{fig-meanshift-castle}{{5.8}{51}{Comparaison des segmentations d'une image couleur de 2256$\times $3008 pixels réalisées par \textit {mean-shift} standard et par le \textit {mean-shift kd tree} de \cite {xiao2010efficient}}{figure.5.8}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image originale}}}{51}{figure.5.8}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Image segment\IeC {\'e}e par mean-shift standard}}}{51}{figure.5.8}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Image segment\IeC {\'e}e par mean-shift kd-tree}}}{51}{figure.5.8}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.7}{\ignorespaces Segmentation d'une image couleur de 512$\times $512 pixels par l'impl\IeC {\'e}mentation GPU quick-shift de \cite {fulkerson2012really}.}}{53}{figure.5.7}} +\newlabel{fig-quickshift-yo}{{5.7}{53}{Segmentation d'une image couleur de 512$\times $512 pixels par l'implémentation GPU quick-shift de \cite {fulkerson2012really}}{figure.5.7}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image originale}}}{53}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$\tau =10$ et $\sigma =2$}}}{53}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {$\tau =10$ et $\sigma =10$}}}{53}{figure.5.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {$\tau =20$ et $\sigma =10$}}}{53}{figure.5.7}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.8}{\ignorespaces Comparaison des segmentations d'une image couleur de 2256$\times $3008 pixels r\IeC {\'e}alis\IeC {\'e}es par \textit {mean-shift} standard et par le \textit {mean-shift kd tree} de \cite {xiao2010efficient}.}}{53}{figure.5.8}} +\newlabel{fig-meanshift-castle}{{5.8}{53}{Comparaison des segmentations d'une image couleur de 2256$\times $3008 pixels réalisées par \textit {mean-shift} standard et par le \textit {mean-shift kd tree} de \cite {xiao2010efficient}}{figure.5.8}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image originale}}}{53}{figure.5.8}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Image segment\IeC {\'e}e par mean-shift standard}}}{53}{figure.5.8}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Image segment\IeC {\'e}e par mean-shift kd-tree}}}{53}{figure.5.8}} \citation{lefohn2005streaming} \citation{cates2004gist} \citation{jeong2009scalable} @@ -322,26 +327,26 @@ \citation{bauer2009segmentation} \citation{li2011robust} \citation{snakegvfopencl12} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.4}Level set et snakes}{52}{subsection.5.2.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.4}Level set et snakes}{54}{subsection.5.4.4}} \citation{snakegvf06} \citation{snakegvf06} \citation{snakegvf06} -\newlabel{fig-l7-brain}{{5.9(a)}{53}{Subfigure 5 5.9(a)\relax }{subfigure.5.9.1}{}} -\newlabel{sub@fig-l7-brain}{{(a)}{53}{Subfigure 5 5.9(a)\relax }{subfigure.5.9.1}{}} -\newlabel{fig-l7-reins}{{5.9(b)}{53}{Subfigure 5 5.9(b)\relax }{subfigure.5.9.2}{}} -\newlabel{sub@fig-l7-reins}{{(b)}{53}{Subfigure 5 5.9(b)\relax }{subfigure.5.9.2}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.9}{\ignorespaces Segmentation d'images issues d'examens IRM par la m\IeC {\'e}thode des level set \IeC {\`a} bande \IeC {\'e}troite.}}{53}{figure.5.9}} -\newlabel{fig-l7-narrow}{{5.9}{53}{Segmentation d'images issues d'examens IRM par la méthode des level set à bande étroite}{figure.5.9}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Cerveau 256$\times $256$\times $256 en 7~s}}}{53}{figure.5.9}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Reins et aorte, 256$\times $256$\times $272 en 16~s}}}{53}{figure.5.9}} -\newlabel{fig-epaule-init}{{5.10(a)}{53}{Subfigure 5 5.10(a)\relax }{subfigure.5.10.1}{}} -\newlabel{sub@fig-epaule-init}{{(a)}{53}{Subfigure 5 5.10(a)\relax }{subfigure.5.10.1}{}} -\newlabel{fig-epaule-fin}{{5.10(b)}{53}{Subfigure 5 5.10(b)\relax }{subfigure.5.10.2}{}} -\newlabel{sub@fig-epaule-fin}{{(b)}{53}{Subfigure 5 5.10(b)\relax }{subfigure.5.10.2}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.10}{\ignorespaces Segmentation d'une image d'\IeC {\'e}paule en 1024$^2$ pixels issue d'un examen IRM par l'impl\IeC {\'e}mentation du snake GVF de \cite {snakegvf06}. Le contour est repr\IeC {\'e}sent\IeC {\'e} en rouge et le contour final est obtenu en 11~s. Le trac\IeC {\'e} initial du contour a \IeC {\'e}t\IeC {\'e} artificiellement \IeC {\'e}paissi pour le rendre visible \IeC {\`a} l'\IeC {\'e}chelle de l'impression.}}{53}{figure.5.10}} -\newlabel{fig-snakegvf}{{5.10}{53}{Segmentation d'une image d'épaule en 1024$^2$ pixels issue d'un examen IRM par l'implémentation du snake GVF de \cite {snakegvf06}. Le contour est représenté en rouge et le contour final est obtenu en 11~s. Le tracé initial du contour a été artificiellement épaissi pour le rendre visible à l'échelle de l'impression}{figure.5.10}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Contour initial}}}{53}{figure.5.10}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Contour final}}}{53}{figure.5.10}} +\newlabel{fig-l7-brain}{{5.9(a)}{55}{Subfigure 5 5.9(a)\relax }{subfigure.5.9.1}{}} +\newlabel{sub@fig-l7-brain}{{(a)}{55}{Subfigure 5 5.9(a)\relax }{subfigure.5.9.1}{}} +\newlabel{fig-l7-reins}{{5.9(b)}{55}{Subfigure 5 5.9(b)\relax }{subfigure.5.9.2}{}} +\newlabel{sub@fig-l7-reins}{{(b)}{55}{Subfigure 5 5.9(b)\relax }{subfigure.5.9.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.9}{\ignorespaces Segmentation d'images issues d'examens IRM par la m\IeC {\'e}thode des level set \IeC {\`a} bande \IeC {\'e}troite.}}{55}{figure.5.9}} +\newlabel{fig-l7-narrow}{{5.9}{55}{Segmentation d'images issues d'examens IRM par la méthode des level set à bande étroite}{figure.5.9}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Cerveau 256$\times $256$\times $256 en 7~s}}}{55}{figure.5.9}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Reins et aorte, 256$\times $256$\times $272 en 16~s}}}{55}{figure.5.9}} +\newlabel{fig-epaule-init}{{5.10(a)}{55}{Subfigure 5 5.10(a)\relax }{subfigure.5.10.1}{}} +\newlabel{sub@fig-epaule-init}{{(a)}{55}{Subfigure 5 5.10(a)\relax }{subfigure.5.10.1}{}} +\newlabel{fig-epaule-fin}{{5.10(b)}{55}{Subfigure 5 5.10(b)\relax }{subfigure.5.10.2}{}} +\newlabel{sub@fig-epaule-fin}{{(b)}{55}{Subfigure 5 5.10(b)\relax }{subfigure.5.10.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.10}{\ignorespaces Segmentation d'une image d'\IeC {\'e}paule en 1024$\times $1024 pixels issue d'un examen IRM par l'impl\IeC {\'e}mentation du snake GVF de \cite {snakegvf06}. Le contour est repr\IeC {\'e}sent\IeC {\'e} en rouge et son \IeC {\'e}tat final est obtenu en 11~s. Le trac\IeC {\'e} initial du contour a \IeC {\'e}t\IeC {\'e} artificiellement \IeC {\'e}paissi pour le rendre visible \IeC {\`a} l'\IeC {\'e}chelle de l'impression.}}{55}{figure.5.10}} +\newlabel{fig-snakegvf}{{5.10}{55}{Segmentation d'une image d'épaule en 1024$\times $1024 pixels issue d'un examen IRM par l'implémentation du snake GVF de \cite {snakegvf06}. Le contour est représenté en rouge et son état final est obtenu en 11~s. Le tracé initial du contour a été artificiellement épaissi pour le rendre visible à l'échelle de l'impression}{figure.5.10}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Contour initial}}}{55}{figure.5.10}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Contour final}}}{55}{figure.5.10}} \citation{zheng2012fast} \citation{li2011robust} \citation{snakegvfopencl12} @@ -352,54 +357,56 @@ \citation{bresenham1965algorithm} \citation{martin2001database} \citation{martin2001database} -\newlabel{sec-seg-hybride}{{5.2.5}{54}{Algorithmes hybrides\label {sec-seg-hybride}\relax }{subsection.5.2.5}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.5}Algorithmes hybrides}{54}{subsection.5.2.5}} +\newlabel{sec-seg-hybride}{{5.4.5}{56}{Algorithmes hybrides\label {sec-seg-hybride}\relax }{subsection.5.4.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.5}Algorithmes hybrides}{56}{subsection.5.4.5}} \citation{volkov2010better} -\@writefile{lof}{\contentsline {figure}{\numberline {5.11}{\ignorespaces Extraction de contour par la version GPU de l'algorithme gPb. Les images sont issues de la base BSDS \cite {martin2001database}}}{55}{figure.5.11}} -\newlabel{fig-gPb}{{5.11}{55}{Extraction de contour par la version GPU de l'algorithme gPb. Les images sont issues de la base BSDS \cite {martin2001database}\relax }{figure.5.11}{}} -\@writefile{toc}{\contentsline {section}{\numberline {5.3}Conclusion}{55}{section.5.3}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.11}{\ignorespaces Extraction de contour par la version GPU de l'algorithme gPb. Les images sont issues de la base BSDS \cite {martin2001database}}}{57}{figure.5.11}} +\newlabel{fig-gPb}{{5.11}{57}{Extraction de contour par la version GPU de l'algorithme gPb. Les images sont issues de la base BSDS \cite {martin2001database}\relax }{figure.5.11}{}} +\@writefile{toc}{\contentsline {section}{\numberline {5.5}Conclusion}{57}{section.5.5}} \citation{ChesnaudRB99} \citation{ChesnaudRB99} -\@writefile{toc}{\contentsline {chapter}{\numberline {6}La segmentation par snake polygonal orient\IeC {\'e} r\IeC {\'e}gions}{59}{chapter.6}} +\@writefile{toc}{\contentsline {chapter}{\numberline {6}La segmentation par snake polygonal orient\IeC {\'e} r\IeC {\'e}gions}{61}{chapter.6}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\newlabel{ch-snake}{{6}{59}{La segmentation par snake polygonal orienté régions\label {ch-snake}\relax }{chapter.6}{}} -\@writefile{toc}{\contentsline {section}{\numberline {6.1}Introduction}{59}{section.6.1}} -\@writefile{toc}{\contentsline {section}{\numberline {6.2}Pr\IeC {\'e}sentation de l'algorithme}{59}{section.6.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}Formulation}{59}{subsection.6.2.1}} -\newlabel{eq-lhprod1}{{6.2}{60}{Formulation\relax }{equation.6.2.2}{}} -\newlabel{eq-pdfgauss}{{6.3}{60}{Formulation\relax }{equation.6.2.3}{}} -\newlabel{eq-gl1}{{6.4}{60}{Formulation\relax }{equation.6.2.4}{}} -\newlabel{eq-teta}{{6.5}{60}{Formulation\relax }{equation.6.2.5}{}} -\newlabel{eq-gl}{{6.6}{60}{Formulation\relax }{equation.6.2.6}{}} -\newlabel{snake-formulation}{{6.2.2}{60}{Optimisation des calculs\label {snake-formulation}\relax }{subsection.6.2.2}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}Optimisation des calculs}{60}{subsection.6.2.2}} +\newlabel{ch-snake}{{6}{61}{La segmentation par snake polygonal orienté régions\label {ch-snake}\relax }{chapter.6}{}} +\@writefile{toc}{\contentsline {section}{\numberline {6.1}Introduction}{61}{section.6.1}} +\@writefile{toc}{\contentsline {section}{\numberline {6.2}Pr\IeC {\'e}sentation de l'algorithme}{61}{section.6.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}Formulation}{61}{subsection.6.2.1}} +\newlabel{eq-lhprod1}{{6.2}{62}{Formulation\relax }{equation.6.2.2}{}} +\newlabel{eq-pdfgauss}{{6.3}{62}{Formulation\relax }{equation.6.2.3}{}} +\newlabel{eq-gl1}{{6.4}{62}{Formulation\relax }{equation.6.2.4}{}} +\newlabel{eq-teta}{{6.5}{62}{Formulation\relax }{equation.6.2.5}{}} +\newlabel{eq-gl}{{6.6}{62}{Formulation\relax }{equation.6.2.6}{}} +\newlabel{snake-formulation}{{6.2.2}{62}{Optimisation des calculs\label {snake-formulation}\relax }{subsection.6.2.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}Optimisation des calculs}{62}{subsection.6.2.2}} +\newlabel{eq-sommes1}{{6.7}{62}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.7}{}} \citation{ChesnaudRB99} -\newlabel{eq-sommes1}{{6.7}{61}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.7}{}} -\newlabel{eq-sommes-gene}{{6.8}{61}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.8}{}} -\newlabel{eq-cumuls1}{{6.9}{61}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.9}{}} -\newlabel{eq-somme-cumuls2}{{6.10}{61}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.10}{}} -\newlabel{eq-somme-contour}{{6.11}{61}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.11}{}} -\newlabel{eq-coefC}{{6.12}{61}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.12}{}} -\newlabel{eq-img-cumul}{{6.13}{61}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.13}{}} +\citation{GallandBR03} +\citation{GallandBR03} +\citation{GallandBR03} +\newlabel{eq-sommes-gene}{{6.8}{63}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.8}{}} +\newlabel{eq-cumuls1}{{6.9}{63}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.9}{}} +\newlabel{eq-somme-cumuls2}{{6.10}{63}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.10}{}} +\newlabel{eq-somme-contour}{{6.11}{63}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.11}{}} +\newlabel{eq-coefC}{{6.12}{63}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.12}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.1}{\ignorespaces \IeC {\`A} gauche : d\IeC {\'e}termination des vecteurs $f_{in}$ et $f_{out}$. \IeC {\`A} droite : code de Freeman d'un vecteur en fonction de sa direction, l'origine \IeC {\'e}tant suppos\IeC {\'e}e au pixel central, en noir. }}{63}{figure.6.1}} +\newlabel{fig-freeman}{{6.1}{63}{À gauche : détermination des vecteurs $f_{in}$ et $f_{out}$. À droite : code de Freeman d'un vecteur en fonction de sa direction, l'origine étant supposée au pixel central, en noir. \relax }{figure.6.1}{}} \citation{ChesnaudRB99} -\@writefile{lof}{\contentsline {figure}{\numberline {6.1}{\ignorespaces \IeC {\`A} gauche : d\IeC {\'e}termination des vecteurs $f_{in}$ et $f_{out}$. \IeC {\`A} droite : code de Freeman d'un vecteur en fonction de sa direction, l'origine \IeC {\'e}tant suppos\IeC {\'e}e au pixel central, en noir. }}{62}{figure.6.1}} -\newlabel{fig-freeman}{{6.1}{62}{À gauche : détermination des vecteurs $f_{in}$ et $f_{out}$. À droite : code de Freeman d'un vecteur en fonction de sa direction, l'origine étant supposée au pixel central, en noir. \relax }{figure.6.1}{}} -\@writefile{lot}{\contentsline {table}{\numberline {6.1}{\ignorespaces Valeur du coefficient $C(i,j)$ en fonction des valeurs des codes de Freeman des vecteurs $f_{in}$ et $f_{out}$.}}{62}{table.6.1}} -\newlabel{tab-freeman}{{6.1}{62}{Valeur du coefficient $C(i,j)$ en fonction des valeurs des codes de Freeman des vecteurs $f_{in}$ et $f_{out}$}{table.6.1}{}} -\newlabel{snake-cpu-impl}{{6.2.3}{62}{Implémentation séquentielle\label {snake-cpu-impl}\relax }{subsection.6.2.3}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.3}Impl\IeC {\'e}mentation s\IeC {\'e}quentielle}{62}{subsection.6.2.3}} -\newlabel{li-img-cumul}{{2}{63}{}{AlgoLine3.2}{}} -\newlabel{li-bresen}{{18}{63}{}{AlgoLine3.18}{}} -\newlabel{li-contrib-seg-deb}{{19}{63}{}{AlgoLine3.19}{}} -\newlabel{li-contrib-seg-fin}{{21}{63}{}{AlgoLine3.21}{}} -\newlabel{algo-snake-cpu1}{{2}{63}{Implémentation séquentielle\label {snake-cpu-impl}\relax }{algocfline.2}{}} -\@writefile{loa}{\contentsline {algocf}{\numberline {2}{\ignorespaces Principe mis en \oe uvre pour la convergence du snake polygonal}}{63}{algocfline.2}} -\@writefile{loa}{\contentsline {algocf}{\numberline {3}{\ignorespaces D\IeC {\'e}tail de l'impl\IeC {\'e}mentation du snake polygonal}}{64}{algocfline.3}} -\newlabel{algo-snake-cpu2}{{3}{64}{Implémentation séquentielle\label {snake-cpu-impl}\relax }{algocfline.3}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.4}Performances}{65}{subsection.6.2.4}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.2}{\ignorespaces \IeC {\'E}volution du contour lors de la segmentation d'une image de 512$^2$ pixels. La convergence est obtenue \IeC {\`a} l'it\IeC {\'e}ration 14 apr\IeC {\`e}s 44~ms pour un total de 256 n\oe uds.}}{66}{figure.6.2}} -\newlabel{fig-snakecpu-cochon512}{{6.2}{66}{Évolution du contour lors de la segmentation d'une image de 512$^2$ pixels. La convergence est obtenue à l'itération 14 après 44~ms pour un total de 256 n\oe uds}{figure.6.2}{}} +\newlabel{li-img-cumul}{{2}{64}{}{AlgoLine3.2}{}} +\newlabel{li-bresen}{{18}{64}{}{AlgoLine3.18}{}} +\newlabel{li-contrib-seg-deb}{{19}{64}{}{AlgoLine3.19}{}} +\newlabel{li-contrib-seg-fin}{{21}{64}{}{AlgoLine3.21}{}} +\@writefile{lot}{\contentsline {table}{\numberline {6.1}{\ignorespaces Valeur du coefficient $C(i,j)$ en fonction des valeurs des codes de Freeman des vecteurs $f_{in}$ et $f_{out}$ \cite {GallandBR03}.}}{64}{table.6.1}} +\newlabel{tab-freeman}{{6.1}{64}{Valeur du coefficient $C(i,j)$ en fonction des valeurs des codes de Freeman des vecteurs $f_{in}$ et $f_{out}$ \cite {GallandBR03}}{table.6.1}{}} +\newlabel{eq-img-cumul}{{6.13}{64}{Optimisation des calculs\label {snake-formulation}\relax }{equation.6.2.13}{}} +\newlabel{snake-cpu-impl}{{6.2.3}{64}{Implémentation séquentielle\label {snake-cpu-impl}\relax }{subsection.6.2.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.3}Impl\IeC {\'e}mentation s\IeC {\'e}quentielle}{64}{subsection.6.2.3}} +\newlabel{algo-snake-cpu1}{{2}{65}{Implémentation séquentielle\label {snake-cpu-impl}\relax }{algocfline.2}{}} +\@writefile{loa}{\contentsline {algocf}{\numberline {2}{\ignorespaces Principe mis en \oe uvre pour la convergence du snake polygonal}}{65}{algocfline.2}} +\@writefile{loa}{\contentsline {algocf}{\numberline {3}{\ignorespaces D\IeC {\'e}tail de l'impl\IeC {\'e}mentation du snake polygonal}}{65}{algocfline.3}} +\newlabel{algo-snake-cpu2}{{3}{65}{Implémentation séquentielle\label {snake-cpu-impl}\relax }{algocfline.3}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.2}{\ignorespaces \IeC {\'E}volution du contour lors de la segmentation d'une image de 512$\times $512 pixels. La convergence est obtenue \IeC {\`a} l'it\IeC {\'e}ration 14 apr\IeC {\`e}s 44~ms pour un total de 256 n\oe uds.}}{66}{figure.6.2}} +\newlabel{fig-snakecpu-cochon512}{{6.2}{66}{Évolution du contour lors de la segmentation d'une image de 512$\times $512 pixels. La convergence est obtenue à l'itération 14 après 44~ms pour un total de 256 n\oe uds}{figure.6.2}{}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Initialisation : 4 n\oe uds}}}{66}{figure.6.2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {It\IeC {\'e}ration 1 : 8 n\oe uds 3~ms}}}{66}{figure.6.2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {It\IeC {\'e}ration 2 : 16 n\oe uds 1~ms}}}{66}{figure.6.2}} @@ -408,75 +415,76 @@ \@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {It\IeC {\'e}ration 10 : 244 n\oe uds 3~ms}}}{66}{figure.6.2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(g)}{\ignorespaces {It\IeC {\'e}ration 13 : 256 n\oe uds 3~ms}}}{66}{figure.6.2}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(h)}{\ignorespaces {It\IeC {\'e}ration 14 : 256 n\oe uds 3~ms}}}{66}{figure.6.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.3}{\ignorespaces Influence du contour initial sur la segmentation. Le contour final 1 est celui de la figure \ref {fig-snakecpu-cochon512}.}}{66}{figure.6.3}} -\newlabel{fig-snakecpu-compinit}{{6.3}{66}{Influence du contour initial sur la segmentation. Le contour final 1 est celui de la figure \ref {fig-snakecpu-cochon512}}{figure.6.3}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Initialisation 2 }}}{66}{figure.6.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Contour final 2 : 273 n\oe uds 87~ms}}}{66}{figure.6.3}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Contour final 1 : 256 n\oe uds 44~ms}}}{66}{figure.6.3}} -\newlabel{fig-snakecpu-cochon4ka}{{6.4(a)}{67}{Subfigure 6 6.4(a)\relax }{subfigure.6.4.1}{}} -\newlabel{sub@fig-snakecpu-cochon4ka}{{(a)}{67}{Subfigure 6 6.4(a)\relax }{subfigure.6.4.1}{}} -\newlabel{fig-snakecpu-cochon4kb}{{6.4(b)}{67}{Subfigure 6 6.4(b)\relax }{subfigure.6.4.2}{}} -\newlabel{sub@fig-snakecpu-cochon4kb}{{(b)}{67}{Subfigure 6 6.4(b)\relax }{subfigure.6.4.2}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.4}{\ignorespaces Segmentation de l'image de test en 4000$\times $4000 pixels. Le trac\IeC {\'e} du contour a \IeC {\'e}t\IeC {\'e} artificiellement \IeC {\'e}paissi pour le rendre visible \IeC {\`a} l'\IeC {\'e}chelle de l'impression.}}{67}{figure.6.4}} -\newlabel{fig-snakecpu-cochon4k}{{6.4}{67}{Segmentation de l'image de test en 4000$\times $4000 pixels. Le tracé du contour a été artificiellement épaissi pour le rendre visible à l'échelle de l'impression}{figure.6.4}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$d_{max}=16$ et $l_{min}=8$, 1246 n\oe uds en 1.3~s}}}{67}{figure.6.4}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$d_{max}=128$ et $l_{min}=32$, 447 n\oe uds en 0.7~s}}}{67}{figure.6.4}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.5}{\ignorespaces Segmentation de l'image de test en 4000$\times $4000 pixels avec une cible de petite taille. Le contour initial est la transcription de celui utilis\IeC {\'e} \IeC {\`a} la figure \ref {fig-snakecpu-cochon512}. Le trac\IeC {\'e} du contour a \IeC {\'e}t\IeC {\'e} artificiellement \IeC {\'e}paissi pour le rendre visible \IeC {\`a} l'\IeC {\'e}chelle de l'impression.}}{67}{figure.6.5}} -\newlabel{fig-snakecpu-cochon4kc3}{{6.5}{67}{Segmentation de l'image de test en 4000$\times $4000 pixels avec une cible de petite taille. Le contour initial est la transcription de celui utilisé à la figure \ref {fig-snakecpu-cochon512}. Le tracé du contour a été artificiellement épaissi pour le rendre visible à l'échelle de l'impression}{figure.6.5}{}} -\@writefile{lot}{\contentsline {table}{\numberline {6.2}{\ignorespaces Performances (en secondes) de la segmentation par snake polygonal sur CPU en fonction de la taille de l'image \IeC {\`a} traiter. Les temps sont obtenus avec la m\IeC {\^e}me image de test dilat\IeC {\'e}e et bruit\IeC {\'e}e et un contour initial carr\IeC {\'e} dont la distance aux bords est proportionnelle \IeC {\`a} la taille de l'image. Seule l'image en 15~MP a pu \IeC {\^e}tre trait\IeC {\'e}e par une impl\IeC {\'e}mentation utilisant SSE2.}}{68}{table.6.2}} -\newlabel{tab-snakecpu-speed-size}{{6.2}{68}{Performances (en secondes) de la segmentation par snake polygonal sur CPU en fonction de la taille de l'image à traiter. Les temps sont obtenus avec la même image de test dilatée et bruitée et un contour initial carré dont la distance aux bords est proportionnelle à la taille de l'image. Seule l'image en 15~MP a pu être traitée par une implémentation utilisant SSE2}{table.6.2}{}} -\newlabel{fig-snakecpu-chronos1}{{6.3}{68}{Implémentation parallèle GPU du snake polygonal\relax }{section.6.3}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.6}{\ignorespaces \IeC {\'E}volution du co\IeC {\^u}t relatif des trois fonctions les plus consommatrices en temps de calcul en fonction de la taille de l'image \IeC {\`a} traiter.}}{68}{figure.6.6}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.4}Performances}{66}{subsection.6.2.4}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.3}{\ignorespaces Influence du contour initial sur la segmentation. Le contour final 1 est celui de la figure \ref {fig-snakecpu-cochon512}.}}{67}{figure.6.3}} +\newlabel{fig-snakecpu-compinit}{{6.3}{67}{Influence du contour initial sur la segmentation. Le contour final 1 est celui de la figure \ref {fig-snakecpu-cochon512}}{figure.6.3}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Initialisation 2 }}}{67}{figure.6.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Contour final 2 : 273 n\oe uds 87~ms}}}{67}{figure.6.3}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {Contour final 1 : 256 n\oe uds 44~ms}}}{67}{figure.6.3}} +\@writefile{lot}{\contentsline {table}{\numberline {6.2}{\ignorespaces Performances (en secondes) de la segmentation par snake polygonal sur CPU en fonction de la taille de l'image \IeC {\`a} traiter. Les temps sont obtenus avec la m\IeC {\^e}me image de test dilat\IeC {\'e}e et bruit\IeC {\'e}e et un contour initial carr\IeC {\'e} dont la distance aux bords est proportionnelle \IeC {\`a} la taille de l'image. Seule l'image en 15~MP a pu \IeC {\^e}tre trait\IeC {\'e}e par une impl\IeC {\'e}mentation utilisant SSE2.}}{67}{table.6.2}} +\newlabel{tab-snakecpu-speed-size}{{6.2}{67}{Performances (en secondes) de la segmentation par snake polygonal sur CPU en fonction de la taille de l'image à traiter. Les temps sont obtenus avec la même image de test dilatée et bruitée et un contour initial carré dont la distance aux bords est proportionnelle à la taille de l'image. Seule l'image en 15~MP a pu être traitée par une implémentation utilisant SSE2}{table.6.2}{}} +\newlabel{fig-snakecpu-cochon4ka}{{6.4(a)}{68}{Subfigure 6 6.4(a)\relax }{subfigure.6.4.1}{}} +\newlabel{sub@fig-snakecpu-cochon4ka}{{(a)}{68}{Subfigure 6 6.4(a)\relax }{subfigure.6.4.1}{}} +\newlabel{fig-snakecpu-cochon4kb}{{6.4(b)}{68}{Subfigure 6 6.4(b)\relax }{subfigure.6.4.2}{}} +\newlabel{sub@fig-snakecpu-cochon4kb}{{(b)}{68}{Subfigure 6 6.4(b)\relax }{subfigure.6.4.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.4}{\ignorespaces Segmentation de l'image de test en 4000$\times $4000 pixels. Le trac\IeC {\'e} du contour a \IeC {\'e}t\IeC {\'e} artificiellement \IeC {\'e}paissi pour le rendre visible \IeC {\`a} l'\IeC {\'e}chelle de l'impression.}}{68}{figure.6.4}} +\newlabel{fig-snakecpu-cochon4k}{{6.4}{68}{Segmentation de l'image de test en 4000$\times $4000 pixels. Le tracé du contour a été artificiellement épaissi pour le rendre visible à l'échelle de l'impression}{figure.6.4}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {$d_{max}=16$ et $l_{min}=8$, 1246 n\oe uds en 1.3~s}}}{68}{figure.6.4}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {$d_{max}=128$ et $l_{min}=32$, 447 n\oe uds en 0.7~s}}}{68}{figure.6.4}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.5}{\ignorespaces Segmentation de l'image de test en 4000$\times $4000 pixels avec une cible de petite taille. Le contour initial est la transcription de celui utilis\IeC {\'e} \IeC {\`a} la figure \ref {fig-snakecpu-cochon512}. Le trac\IeC {\'e} du contour a \IeC {\'e}t\IeC {\'e} artificiellement \IeC {\'e}paissi pour le rendre visible \IeC {\`a} l'\IeC {\'e}chelle de l'impression.}}{68}{figure.6.5}} +\newlabel{fig-snakecpu-cochon4kc3}{{6.5}{68}{Segmentation de l'image de test en 4000$\times $4000 pixels avec une cible de petite taille. Le contour initial est la transcription de celui utilisé à la figure \ref {fig-snakecpu-cochon512}. Le tracé du contour a été artificiellement épaissi pour le rendre visible à l'échelle de l'impression}{figure.6.5}{}} \@writefile{toc}{\contentsline {section}{\numberline {6.3}Impl\IeC {\'e}mentation parall\IeC {\`e}le GPU du snake polygonal}{68}{section.6.3}} \citation{BlellochTR90} +\newlabel{fig-snakecpu-chronos1}{{6.3}{69}{Implémentation parallèle GPU du snake polygonal\relax }{section.6.3}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.6}{\ignorespaces \IeC {\'E}volution du co\IeC {\^u}t relatif des trois fonctions les plus consommatrices en temps de calcul en fonction de la taille de l'image \IeC {\`a} traiter.}}{69}{figure.6.6}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.3.1}Pr\IeC {\'e}-calculs des images cumul\IeC {\'e}es}{69}{subsection.6.3.1}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.7}{\ignorespaces Calcul des images cumul\IeC {\'e}es $S_x$ et $S_x^2$ en trois \IeC {\'e}tapes successives. a) cumul partiel bloc par bloc et m\IeC {\'e}morisation de la somme de chaque bloc. b) cumul sur le vecteur des sommes partielles. c) ajout des sommes partielles \IeC {\`a} chaque \IeC {\'e}l\IeC {\'e}ment des blocs cumul\IeC {\'e}s.}}{70}{figure.6.7}} -\newlabel{fig-calcul-cumuls}{{6.7}{70}{Calcul des images cumulées $S_x$ et $S_x^2$ en trois étapes successives. a) cumul partiel bloc par bloc et mémorisation de la somme de chaque bloc. b) cumul sur le vecteur des sommes partielles. c) ajout des sommes partielles à chaque élément des blocs cumulés}{figure.6.7}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {D\IeC {\'e}tail des op\IeC {\'e}rations effectu\IeC {\'e}es par le \textit {kernel} \texttt {compute\_block\_prefixes()}. La valeur $bs$ correspond au nombre de pixels de chaque bloc, qui est aussi le nombre de threads ex\IeC {\'e}cut\IeC {\'e} par chaque bloc de la grille de calcul.}}}{70}{figure.6.7}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {D\IeC {\'e}tail des op\IeC {\'e}rations effectu\IeC {\'e}es par le \textit {kernel} \texttt {scan\_blocksums()}.}}}{70}{figure.6.7}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {D\IeC {\'e}tail des op\IeC {\'e}rations effectu\IeC {\'e}es par le \textit {kernel} \texttt {add\_sums2prefixes()}.}}}{70}{figure.6.7}} -\@writefile{lot}{\contentsline {table}{\numberline {6.3}{\ignorespaces Acc\IeC {\'e}l\IeC {\'e}ration constat\IeC {\'e}e, pour le calcul des images cumul\IeC {\'e}es, de l'impl\IeC {\'e}mentation GPU (C2070) par rapport \IeC {\`a} l'impl\IeC {\'e}mentation CPU de r\IeC {\'e}f\IeC {\'e}rence.}}{71}{table.6.3}} -\newlabel{tab-speedup-cumuls}{{6.3}{71}{Accélération constatée, pour le calcul des images cumulées, de l'implémentation GPU (C2070) par rapport à l'implémentation CPU de référence}{table.6.3}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.2}Calcul des contributions des segments}{71}{subsection.6.3.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.8}{\ignorespaces Structuration des donn\IeC {\'e}es en m\IeC {\'e}moire du GPU pour l'\IeC {\'e}valuation en parall\IeC {\`e}le de l'ensemble des \IeC {\'e}volutions possibles du contour.}}{72}{figure.6.8}} -\newlabel{fig-structure-segment}{{6.8}{72}{Structuration des données en mémoire du GPU pour l'évaluation en parallèle de l'ensemble des évolutions possibles du contour}{figure.6.8}{}} -\newlabel{fig-cycle-contribs-segments-a}{{6.9(a)}{73}{Subfigure 6 6.9(a)\relax }{subfigure.6.9.1}{}} -\newlabel{sub@fig-cycle-contribs-segments-a}{{(a)}{73}{Subfigure 6 6.9(a)\relax }{subfigure.6.9.1}{}} -\newlabel{fig-cycle-contribs-segments-b}{{6.9(b)}{73}{Subfigure 6 6.9(b)\relax }{subfigure.6.9.2}{}} -\newlabel{sub@fig-cycle-contribs-segments-b}{{(b)}{73}{Subfigure 6 6.9(b)\relax }{subfigure.6.9.2}{}} -\newlabel{fig-cycle-contribs-segments-c}{{6.9(c)}{73}{Subfigure 6 6.9(c)\relax }{subfigure.6.9.3}{}} -\newlabel{sub@fig-cycle-contribs-segments-c}{{(c)}{73}{Subfigure 6 6.9(c)\relax }{subfigure.6.9.3}{}} -\newlabel{fig-cycle-contribs-segments-d}{{6.9(d)}{73}{Subfigure 6 6.9(d)\relax }{subfigure.6.9.4}{}} -\newlabel{sub@fig-cycle-contribs-segments-d}{{(d)}{73}{Subfigure 6 6.9(d)\relax }{subfigure.6.9.4}{}} -\newlabel{fig-cycle-contribs-segments-e}{{6.9(e)}{73}{Subfigure 6 6.9(e)\relax }{subfigure.6.9.5}{}} -\newlabel{sub@fig-cycle-contribs-segments-e}{{(e)}{73}{Subfigure 6 6.9(e)\relax }{subfigure.6.9.5}{}} -\newlabel{fig-cycle-contribs-segments-f}{{6.9(f)}{73}{Subfigure 6 6.9(f)\relax }{subfigure.6.9.6}{}} -\newlabel{sub@fig-cycle-contribs-segments-f}{{(f)}{73}{Subfigure 6 6.9(f)\relax }{subfigure.6.9.6}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.9}{\ignorespaces Comparaison des cycles de d\IeC {\'e}placement des n\oe uds. Ligne du haut : version s\IeC {\'e}quentielle. Ligne du bas : version parall\IeC {\`e}le. Les segments en rouge sont des segments du contour non \IeC {\'e}valu\IeC {\'e}s, alors que ceux en pointill\IeC {\'e}s sont les paires ayant re\IeC {\c c}u les meilleures \IeC {\'e}valuations parmi les 8 d\IeC {\'e}placements possibles des n\oe uds correspondant.}}{73}{figure.6.9}} -\newlabel{fig-cycle-contribs-segments}{{6.9}{73}{Comparaison des cycles de déplacement des n\oe uds. Ligne du haut : version séquentielle. Ligne du bas : version parallèle. Les segments en rouge sont des segments du contour non évalués, alors que ceux en pointillés sont les paires ayant reçu les meilleures évaluations parmi les 8 déplacements possibles des n\oe uds correspondant}{figure.6.9}{}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Contour de r\IeC {\'e}f\IeC {\'e}rence.}}}{73}{figure.6.9}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {D\IeC {\'e}placement du n\oe ud $N_1$. Le crit\IeC {\`e}re est am\IeC {\'e}lior\IeC {\'e}.}}}{73}{figure.6.9}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {D\IeC {\'e}placement du n\oe ud $N_2$. Le crit\IeC {\`e}re est am\IeC {\'e}lior\IeC {\'e}.}}}{73}{figure.6.9}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {D\IeC {\'e}placement en parall\IeC {\`e}le de tous les n\oe uds. Les segments du contour n'ont pas \IeC {\'e}t\IeC {\'e} valid\IeC {\'e}s. On doit recalculer le crit\IeC {\`e}re apr\IeC {\`e}s les d\IeC {\'e}placements pour savoir s'il a \IeC {\'e}t\IeC {\'e} am\IeC {\'e}lior\IeC {\'e}.}}}{73}{figure.6.9}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {D\IeC {\'e}placement en parall\IeC {\`e}le des n\oe uds impairs. Le crit\IeC {\`e}re est am\IeC {\'e}lior\IeC {\'e}.}}}{73}{figure.6.9}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {D\IeC {\'e}placement en parall\IeC {\`e}le des n\oe uds pairs. Un seul segment n'a pas \IeC {\'e}t\IeC {\'e} \IeC {\'e}valu\IeC {\'e}.}}}{73}{figure.6.9}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.2.1}Cas particulier des segments dont la pente $k$ v\IeC {\'e}rifie $|k|\leq 1$}{74}{subsubsection.6.3.2.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.3}Performances}{74}{subsection.6.3.3}} +\@writefile{lot}{\contentsline {table}{\numberline {6.3}{\ignorespaces Acc\IeC {\'e}l\IeC {\'e}ration constat\IeC {\'e}e, pour le calcul des images cumul\IeC {\'e}es, de l'impl\IeC {\'e}mentation GPU (C2070) par rapport \IeC {\`a} l'impl\IeC {\'e}mentation CPU de r\IeC {\'e}f\IeC {\'e}rence.}}{70}{table.6.3}} +\newlabel{tab-speedup-cumuls}{{6.3}{70}{Accélération constatée, pour le calcul des images cumulées, de l'implémentation GPU (C2070) par rapport à l'implémentation CPU de référence}{table.6.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.2}Calcul des contributions des segments}{70}{subsection.6.3.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.7}{\ignorespaces Calcul des images cumul\IeC {\'e}es $S_I$ et $S_{I^2}$ en trois \IeC {\'e}tapes successives. a) cumul partiel bloc par bloc et m\IeC {\'e}morisation de la somme de chaque bloc. b) cumul sur le vecteur des sommes partielles. c) ajout des sommes partielles \IeC {\`a} chaque \IeC {\'e}l\IeC {\'e}ment des blocs cumul\IeC {\'e}s.}}{71}{figure.6.7}} +\newlabel{fig-calcul-cumuls}{{6.7}{71}{Calcul des images cumulées $S_I$ et $S_{I^2}$ en trois étapes successives. a) cumul partiel bloc par bloc et mémorisation de la somme de chaque bloc. b) cumul sur le vecteur des sommes partielles. c) ajout des sommes partielles à chaque élément des blocs cumulés}{figure.6.7}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {D\IeC {\'e}tail des op\IeC {\'e}rations effectu\IeC {\'e}es par le \textit {kernel} \texttt {compute\_block\_prefixes()}. La valeur $bs$ correspond au nombre de pixels de chaque bloc, qui est aussi le nombre de threads ex\IeC {\'e}cut\IeC {\'e} par chaque bloc de la grille de calcul.}}}{71}{figure.6.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {D\IeC {\'e}tail des op\IeC {\'e}rations effectu\IeC {\'e}es par le \textit {kernel} \texttt {scan\_blocksums()}.}}}{71}{figure.6.7}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {D\IeC {\'e}tail des op\IeC {\'e}rations effectu\IeC {\'e}es par le \textit {kernel} \texttt {add\_sums2prefixes()}.}}}{71}{figure.6.7}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.8}{\ignorespaces Structuration des donn\IeC {\'e}es en m\IeC {\'e}moire du GPU pour l'\IeC {\'e}valuation en parall\IeC {\`e}le de l'ensemble des \IeC {\'e}volutions possibles du contour.}}{73}{figure.6.8}} +\newlabel{fig-structure-segment}{{6.8}{73}{Structuration des données en mémoire du GPU pour l'évaluation en parallèle de l'ensemble des évolutions possibles du contour}{figure.6.8}{}} +\newlabel{fig-cycle-contribs-segments-a}{{6.9(a)}{74}{Subfigure 6 6.9(a)\relax }{subfigure.6.9.1}{}} +\newlabel{sub@fig-cycle-contribs-segments-a}{{(a)}{74}{Subfigure 6 6.9(a)\relax }{subfigure.6.9.1}{}} +\newlabel{fig-cycle-contribs-segments-b}{{6.9(b)}{74}{Subfigure 6 6.9(b)\relax }{subfigure.6.9.2}{}} +\newlabel{sub@fig-cycle-contribs-segments-b}{{(b)}{74}{Subfigure 6 6.9(b)\relax }{subfigure.6.9.2}{}} +\newlabel{fig-cycle-contribs-segments-c}{{6.9(c)}{74}{Subfigure 6 6.9(c)\relax }{subfigure.6.9.3}{}} +\newlabel{sub@fig-cycle-contribs-segments-c}{{(c)}{74}{Subfigure 6 6.9(c)\relax }{subfigure.6.9.3}{}} +\newlabel{fig-cycle-contribs-segments-d}{{6.9(d)}{74}{Subfigure 6 6.9(d)\relax }{subfigure.6.9.4}{}} +\newlabel{sub@fig-cycle-contribs-segments-d}{{(d)}{74}{Subfigure 6 6.9(d)\relax }{subfigure.6.9.4}{}} +\newlabel{fig-cycle-contribs-segments-e}{{6.9(e)}{74}{Subfigure 6 6.9(e)\relax }{subfigure.6.9.5}{}} +\newlabel{sub@fig-cycle-contribs-segments-e}{{(e)}{74}{Subfigure 6 6.9(e)\relax }{subfigure.6.9.5}{}} +\newlabel{fig-cycle-contribs-segments-f}{{6.9(f)}{74}{Subfigure 6 6.9(f)\relax }{subfigure.6.9.6}{}} +\newlabel{sub@fig-cycle-contribs-segments-f}{{(f)}{74}{Subfigure 6 6.9(f)\relax }{subfigure.6.9.6}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.9}{\ignorespaces Comparaison des cycles de d\IeC {\'e}placement des n\oe uds. Ligne du haut : version s\IeC {\'e}quentielle. Ligne du bas : version parall\IeC {\`e}le. Les segments en rouge sont des segments du contour non \IeC {\'e}valu\IeC {\'e}s, alors que ceux en pointill\IeC {\'e}s sont les paires ayant re\IeC {\c c}u les meilleures \IeC {\'e}valuations parmi les 8 d\IeC {\'e}placements possibles des n\oe uds correspondant.}}{74}{figure.6.9}} +\newlabel{fig-cycle-contribs-segments}{{6.9}{74}{Comparaison des cycles de déplacement des n\oe uds. Ligne du haut : version séquentielle. Ligne du bas : version parallèle. Les segments en rouge sont des segments du contour non évalués, alors que ceux en pointillés sont les paires ayant reçu les meilleures évaluations parmi les 8 déplacements possibles des n\oe uds correspondant}{figure.6.9}{}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Contour de r\IeC {\'e}f\IeC {\'e}rence.}}}{74}{figure.6.9}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {D\IeC {\'e}placement du n\oe ud $N_1$. Le crit\IeC {\`e}re est am\IeC {\'e}lior\IeC {\'e}.}}}{74}{figure.6.9}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {D\IeC {\'e}placement du n\oe ud $N_2$. Le crit\IeC {\`e}re est am\IeC {\'e}lior\IeC {\'e}.}}}{74}{figure.6.9}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(d)}{\ignorespaces {D\IeC {\'e}placement en parall\IeC {\`e}le de tous les n\oe uds. Les segments du contour n'ont pas \IeC {\'e}t\IeC {\'e} valid\IeC {\'e}s. On doit recalculer le crit\IeC {\`e}re apr\IeC {\`e}s les d\IeC {\'e}placements pour savoir s'il a \IeC {\'e}t\IeC {\'e} am\IeC {\'e}lior\IeC {\'e}.}}}{74}{figure.6.9}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {D\IeC {\'e}placement en parall\IeC {\`e}le des n\oe uds impairs. Le crit\IeC {\`e}re est am\IeC {\'e}lior\IeC {\'e}.}}}{74}{figure.6.9}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(f)}{\ignorespaces {D\IeC {\'e}placement en parall\IeC {\`e}le des n\oe uds pairs. Un seul segment n'a pas \IeC {\'e}t\IeC {\'e} \IeC {\'e}valu\IeC {\'e}.}}}{74}{figure.6.9}} \@writefile{lof}{\contentsline {figure}{\numberline {6.10}{\ignorespaces D\IeC {\'e}termination des coefficients $C(i,j)$ des pixels du contour.}}{75}{figure.6.10}} \newlabel{fig-segment-k<1}{{6.10}{75}{Détermination des coefficients $C(i,j)$ des pixels du contour}{figure.6.10}{}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Quadrants 1 et 4}}}{75}{figure.6.10}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Quadrants 2 et 3}}}{75}{figure.6.10}} -\@writefile{lot}{\contentsline {table}{\numberline {6.4}{\ignorespaces Comparaison des temps d'ex\IeC {\'e}cution de l'impl\IeC {\'e}mentation GPU (C2070) par rapport \IeC {\`a} l'impl\IeC {\'e}mentation CPU de r\IeC {\'e}f\IeC {\'e}rence, appliqu\IeC {\'e}s \IeC {\`a} une m\IeC {\^e}me image dilat\IeC {\'e}e (fig. \ref {fig-snakecpu-cochon512}) pour en adapter la taille.}}{76}{table.6.4}} -\newlabel{tab-snake-results}{{6.4}{76}{Comparaison des temps d'exécution de l'implémentation GPU (C2070) par rapport à l'implémentation CPU de référence, appliqués à une même image dilatée (fig. \ref {fig-snakecpu-cochon512}) pour en adapter la taille}{table.6.4}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.11}{\ignorespaces Segmentations d'une image de 100~MP en 0,59~s pour 5 it\IeC {\'e}rations. Le contour initial conserve les proportions de celui de la figure \ref {fig-snakecpu-cochon512}. }}{76}{figure.6.11}} -\newlabel{fig-snakegpu-result}{{6.11}{76}{Segmentations d'une image de 100~MP en 0,59~s pour 5 itérations. Le contour initial conserve les proportions de celui de la figure \ref {fig-snakecpu-cochon512}. \relax }{figure.6.11}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.2.1}Cas particulier des segments dont la pente $k$ v\IeC {\'e}rifie $|k|\leq 1$}{75}{subsubsection.6.3.2.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.3}Performances}{76}{subsection.6.3.3}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.3.4}D\IeC {\'e}termination intelligente du contour initial}{76}{subsection.6.3.4}} +\@writefile{lot}{\contentsline {table}{\numberline {6.4}{\ignorespaces Comparaison des temps d'ex\IeC {\'e}cution de l'impl\IeC {\'e}mentation GPU (C2070) par rapport \IeC {\`a} l'impl\IeC {\'e}mentation CPU de r\IeC {\'e}f\IeC {\'e}rence, appliqu\IeC {\'e}s \IeC {\`a} une m\IeC {\^e}me image dilat\IeC {\'e}e (fig. \ref {fig-snakecpu-cochon512}) pour en adapter la taille.}}{77}{table.6.4}} +\newlabel{tab-snake-results}{{6.4}{77}{Comparaison des temps d'exécution de l'implémentation GPU (C2070) par rapport à l'implémentation CPU de référence, appliqués à une même image dilatée (fig. \ref {fig-snakecpu-cochon512}) pour en adapter la taille}{table.6.4}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.11}{\ignorespaces Segmentations d'une image de 100~MP en 0,59~s pour 5 it\IeC {\'e}rations. Le contour initial conserve les proportions de celui de la figure \ref {fig-snakecpu-cochon512}. }}{77}{figure.6.11}} +\newlabel{fig-snakegpu-result}{{6.11}{77}{Segmentations d'une image de 100~MP en 0,59~s pour 5 itérations. Le contour initial conserve les proportions de celui de la figure \ref {fig-snakecpu-cochon512}. \relax }{figure.6.11}{}} \citation{6036776} -\newlabel{fig-smart-init}{{6.3.4}{77}{Détermination intelligente du contour initial\relax }{subfigure.6.12.2}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {6.12}{\ignorespaces D\IeC {\'e}termination intelligente du contour initial en deux phases successives. a) La premi\IeC {\`e}re \IeC {\'e}tape repose sur un \IeC {\'e}chantillonnage horizontal. b) La seconde \IeC {\'e}tape repose sur un \IeC {\'e}chantillonnage vertical.}}{77}{figure.6.12}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {D\IeC {\'e}termination de $j_L$ et $j_H$.}}}{77}{figure.6.12}} -\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {D\IeC {\'e}termination de $i_L$ et $i_H$.}}}{77}{figure.6.12}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.5}Conclusion}{77}{subsection.6.3.5}} +\newlabel{fig-smart-init}{{6.3.4}{78}{Détermination intelligente du contour initial\relax }{subfigure.6.12.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {6.12}{\ignorespaces D\IeC {\'e}termination intelligente du contour initial en deux phases successives. (a) La premi\IeC {\`e}re \IeC {\'e}tape repose sur un \IeC {\'e}chantillonnage horizontal. (b) La seconde \IeC {\'e}tape repose sur un \IeC {\'e}chantillonnage vertical.}}{78}{figure.6.12}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {D\IeC {\'e}termination de $j_L$ et $j_H$.}}}{78}{figure.6.12}} +\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {D\IeC {\'e}termination de $i_L$ et $i_H$.}}}{78}{figure.6.12}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.5}Conclusion}{78}{subsection.6.3.5}} \citation{matheron75} \citation{caselles97} \citation{bertaux2004speckle} @@ -600,8 +608,8 @@ \@writefile{lof}{\contentsline {subfigure}{\numberline{(e)}{\ignorespaces {Directions d\IeC {\'e}termin\IeC {\'e}e par le PI-PD pour le tirage $n^{\circ }2$}}}{93}{figure.7.10}} \@writefile{lof}{\contentsline {figure}{\numberline {7.11}{\ignorespaces Motif de d\IeC {\'e}tection des zones \IeC {\`a} faible pente, pour le cas $\Theta =\Theta _4=45^{\circ }$. L'\IeC {\'e}l\IeC {\'e}vation des pixels permet juste de les distinguer selon 3 classes : l'\IeC {\'e}l\IeC {\'e}vation 1 est associ\IeC {\'e}e aux pixels de la r\IeC {\'e}gion $T$, l'\IeC {\'e}l\IeC {\'e}vation 0.5 est associ\IeC {\'e}e \IeC {\`a} ceux de la r\IeC {\'e}gion $B$ et l'\IeC {\'e}l\IeC {\'e}vation 0 d\IeC {\'e}signe les pixels n'intervenant pas dans la d\IeC {\'e}tection.}}{94}{figure.7.11}} \newlabel{fig-lniv-detecteur}{{7.11}{94}{Motif de détection des zones à faible pente, pour le cas $\Theta =\Theta _4=45^{\circ }$. L'élévation des pixels permet juste de les distinguer selon 3 classes : l'élévation 1 est associée aux pixels de la région $T$, l'élévation 0.5 est associée à ceux de la région $B$ et l'élévation 0 désigne les pixels n'intervenant pas dans la détection}{figure.7.11}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.12}{\ignorespaces Classification des pixels d'une image bruit\IeC {\'e}e, pour une valeur de seuil $T2=2$ du d\IeC {\'e}tecteur. b) Les pixels en noir sont ceux \IeC {\`a} qui le PI-PD sera appliqu\IeC {\'e}. Les pixels en blancs se verront appliquer une moyenne sur tout ou partie du voisinage.}}{94}{figure.7.12}} -\newlabel{fig-lniv-classification}{{7.12}{94}{Classification des pixels d'une image bruitée, pour une valeur de seuil $T2=2$ du détecteur. b) Les pixels en noir sont ceux à qui le PI-PD sera appliqué. Les pixels en blancs se verront appliquer une moyenne sur tout ou partie du voisinage}{figure.7.12}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {7.12}{\ignorespaces Classification des pixels d'une image bruit\IeC {\'e}e, pour une valeur de seuil $T2=2$ du d\IeC {\'e}tecteur. (b) Les pixels en noir sont ceux \IeC {\`a} qui le PI-PD sera appliqu\IeC {\'e}. Les pixels en blancs se verront appliquer une moyenne sur tout ou partie du voisinage.}}{94}{figure.7.12}} +\newlabel{fig-lniv-classification}{{7.12}{94}{Classification des pixels d'une image bruitée, pour une valeur de seuil $T2=2$ du détecteur. (b) Les pixels en noir sont ceux à qui le PI-PD sera appliqué. Les pixels en blancs se verront appliquer une moyenne sur tout ou partie du voisinage}{figure.7.12}{}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Image bruit\IeC {\'e}e}}}{94}{figure.7.12}} \@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Classification des pixels. }}}{94}{figure.7.12}} \@writefile{toc}{\contentsline {section}{\numberline {7.4}R\IeC {\'e}sultats}{94}{section.7.4}} @@ -615,10 +623,10 @@ \@writefile{toc}{\contentsline {section}{\numberline {7.5}Extension aux images couleurs}{96}{section.7.5}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.5.1}Expression du crit\IeC {\`e}re}{96}{subsection.7.5.1}} \newlabel{eqlv0rgb}{{7.12}{96}{Expression du critère\relax }{equation.7.5.12}{}} -\newlabel{eqlv1rgb}{{7.16}{96}{Expression du critère\relax }{equation.7.5.16}{}} \citation{tid2008a} \citation{psnrhvsm} \citation{tid2008a} +\newlabel{eqlv1rgb}{{7.16}{97}{Expression du critère\relax }{equation.7.5.16}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.5.2}R\IeC {\'e}sultats}{97}{subsection.7.5.2}} \newlabel{fig-lniv-tid2008ref}{{7.5.2}{98}{Résultats\relax }{subfigure.7.14.25}{}} \@writefile{lof}{\contentsline {figure}{\numberline {7.14}{\ignorespaces Images non bruit\IeC {\'e}es de la base tid2008.}}{98}{figure.7.14}} @@ -662,8 +670,8 @@ \newlabel{algo-lniv-detecteur}{{7}{100}{Le détecteur de zone à faible pente\relax }{algocfline.7}{}} \@writefile{lot}{\contentsline {table}{\numberline {7.1}{\ignorespaces Temps de calcul et de transfert des impl\IeC {\'e}mentations compar\IeC {\'e}es. }}{100}{table.7.1}} \newlabel{tab-lniv-chronos}{{7.1}{100}{Temps de calcul et de transfert des implémentations comparées. \relax }{table.7.1}{}} -\@writefile{lot}{\contentsline {table}{\numberline {7.2}{\ignorespaces Comparaison image par image de la qualit\IeC {\'e} de d\IeC {\'e}bruitage des filtres PI-LD et PI-PD hybride propos\IeC {\'e} par rapport \IeC {\`a} BM3D pris comme r\IeC {\'e}f\IeC {\'e}rence de qualit\IeC {\'e} et \IeC {\`a} un moyenneur GPU 5$\times $5 pris comme r\IeC {\'e}f\IeC {\'e}rence de rapidit\IeC {\'e}. Les param\IeC {\`e}tres du PI-LD/PI-PD sont $n=5$, $l=25$, $T_{max}=1$ et $T2_{max}=2$. La colonne 'Bruit\IeC {\'e}e' donne les mesures relatives \IeC {\`a} l'image d'entr\IeC {\'e}e corrompue par un bruit gaussien de moyenne nulle et d'\IeC {\'e}cart type $\sigma =25$. PI-LD s'ex\IeC {\'e}cute en 35~ms, PI-PD en 9~ms et BM3D en 4,3~s.}}{101}{table.7.2}} -\newlabel{tab-lniv-results}{{7.2}{101}{Comparaison image par image de la qualité de débruitage des filtres PI-LD et PI-PD hybride proposé par rapport à BM3D pris comme référence de qualité et à un moyenneur GPU 5$\times $5 pris comme référence de rapidité. Les paramètres du PI-LD/PI-PD sont $n=5$, $l=25$, $T_{max}=1$ et $T2_{max}=2$. La colonne 'Bruitée' donne les mesures relatives à l'image d'entrée corrompue par un bruit gaussien de moyenne nulle et d'écart type $\sigma =25$. PI-LD s'exécute en 35~ms, PI-PD en 9~ms et BM3D en 4,3~s}{table.7.2}{}} +\@writefile{lot}{\contentsline {table}{\numberline {7.2}{\ignorespaces Comparaison image par image de la qualit\IeC {\'e} de d\IeC {\'e}bruitage des filtres PI-LD et PI-PD hybride propos\IeC {\'e} par rapport \IeC {\`a} BM3D pris comme r\IeC {\'e}f\IeC {\'e}rence de qualit\IeC {\'e} et \IeC {\`a} un moyenneur GPU 5$\times $5 pris comme r\IeC {\'e}f\IeC {\'e}rence de rapidit\IeC {\'e}. Les param\IeC {\`e}tres du PI-LD/PI-PD sont $n=5$, $l=25$, $T_{max}=1$ et $T2_{max}=2$. La colonne 'Bruit\IeC {\'e}e' donne les mesures relatives \IeC {\`a} l'image d'entr\IeC {\'e}e corrompue par un bruit gaussien de moyenne nulle et d'\IeC {\'e}cart type $\sigma =25$. PI-LD s'ex\IeC {\'e}cute en 35~ms, PI-PD en 7,3~ms et BM3D en 4,3~s.}}{101}{table.7.2}} +\newlabel{tab-lniv-results}{{7.2}{101}{Comparaison image par image de la qualité de débruitage des filtres PI-LD et PI-PD hybride proposé par rapport à BM3D pris comme référence de qualité et à un moyenneur GPU 5$\times $5 pris comme référence de rapidité. Les paramètres du PI-LD/PI-PD sont $n=5$, $l=25$, $T_{max}=1$ et $T2_{max}=2$. La colonne 'Bruitée' donne les mesures relatives à l'image d'entrée corrompue par un bruit gaussien de moyenne nulle et d'écart type $\sigma =25$. PI-LD s'exécute en 35~ms, PI-PD en 7,3~ms et BM3D en 4,3~s}{table.7.2}{}} \@writefile{lot}{\contentsline {table}{\numberline {7.3}{\ignorespaces Comparaison image par image de la qualit\IeC {\'e} de d\IeC {\'e}bruitage du filtre PI-PD RVB propos\IeC {\'e} par rapport \IeC {\`a} BM3D pris comme r\IeC {\'e}f\IeC {\'e}rence de qualit\IeC {\'e}. Les param\IeC {\`e}tres du PI-PD sont $n=4$, $l=48$, $T_{rvb-max}=5$. La colonne 'noisy' donne les mesures relatives \IeC {\`a} l'image d'entr\IeC {\'e}e corrompue par tirage de bruit gaussien sur chaque canal ( moyenne nulle, \IeC {\'e}cart type $\sigma =25$).}}{102}{table.7.3}} \newlabel{tab-lniv-rvb}{{7.3}{102}{Comparaison image par image de la qualité de débruitage du filtre PI-PD RVB proposé par rapport à BM3D pris comme référence de qualité. Les paramètres du PI-PD sont $n=4$, $l=48$, $T_{rvb-max}=5$. La colonne 'noisy' donne les mesures relatives à l'image d'entrée corrompue par tirage de bruit gaussien sur chaque canal ( moyenne nulle, écart type $\sigma =25$)}{table.7.3}{}} \@writefile{toc}{\contentsline {chapter}{\numberline {8}Le filtre m\IeC {\'e}dian sur GPU}{103}{chapter.8}} @@ -763,107 +771,109 @@ \bibcite{arora1998approximation}{7} \bibcite{bauer2009segmentation}{8} \bibcite{bertaux2004speckle}{9} -\bibcite{BlellochTR90}{10} -\bibcite{boykov2004experimental}{11} -\bibcite{bresenham1965algorithm}{12} -\bibcite{1467423}{13} -\bibcite{BuadesCM06}{14} -\bibcite{Caselles99topographicmaps}{15} -\bibcite{caselles97}{16} -\bibcite{5459410}{17} -\bibcite{cates2004gist}{18} -\bibcite{chandran2009computational}{19} -\bibcite{che2008performance}{20} -\bibcite{chen09}{21} -\bibcite{1093941}{22} -\bibcite{cheng1995mean}{23} -\bibcite{cherkassky1997implementing}{24} -\bibcite{ChesnaudRB99}{25} -\bibcite{cohen1993surface}{26} -\bibcite{comaniciu1999mean}{27} -\bibcite{comaniciu2002mean}{28} -\bibcite{cutrona1990synthetic}{29} -\bibcite{Dabov06imagedenoising}{30} -\bibcite{Dabov09bm3dimage}{31} -\bibcite{Daubechies:1992:TLW:130655}{32} -\bibcite{dixit2005gpu}{33} -\bibcite{elad2006image}{34} -\bibcite{felzenszwalb2004efficient}{35} -\bibcite{fluck2006gpu}{36} -\bibcite{foley1994introduction}{37} -\bibcite{ford1955simple}{38} -\bibcite{fukunaga1975estimation}{39} -\bibcite{fulkerson2012really}{40} -\bibcite{GallandBR03}{41} -\bibcite{GermainR01}{42} -\bibcite{nlmeansgpubelge}{43} -\bibcite{snakegvf06}{44} -\bibcite{healey1994radiometric}{45} -\bibcite{hochbaum2013simplifications}{46} -\bibcite{5170921}{47} -\bibcite{humphrey1924psychology}{48} -\bibcite{jeong2009scalable}{49} -\bibcite{5402362}{50} -\bibcite{KassWT88}{51} -\bibcite{keselman1998extraction}{52} -\bibcite{cmla2009Kes}{53} -\bibcite{kohli2007dynamic}{54} -\bibcite{lefohn2003inter}{55} -\bibcite{lefohn2003interactive}{56} -\bibcite{lefohn2005streaming}{57} -\bibcite{li2009mean}{58} -\bibcite{li2011robust}{59} -\bibcite{macqueen1967some}{60} -\bibcite{Mallat:2008:WTS:1525499}{61} -\bibcite{mancuso2001introduction}{62} -\bibcite{martin2001database}{63} -\bibcite{matheron75}{64} -\bibcite{coil}{65} -\bibcite{CUDAPG}{66} -\bibcite{osher1988fronts}{67} -\bibcite{4310076}{68} -\bibcite{medianggems5}{69} -\bibcite{PALHANOXAVIERDEFONTES}{70} -\bibcite{pelleg2000x}{71} -\bibcite{4287006}{72} -\bibcite{6036776}{73} -\bibcite{perrotbookgpu}{74} -\bibcite{perrot2013fine}{75} -\bibcite{perrotlniv}{76} -\bibcite{1521458}{77} -\bibcite{tid2008a}{78} -\bibcite{psnrhvsm}{79} -\bibcite{4587843}{80} -\bibcite{Roberts:2010:WGA:1921479.1921499}{81} -\bibcite{ronfard1994region}{82} -\bibcite{rumpf2001level}{83} -\bibcite{sanchezICASSP12}{84} -\bibcite{6288187}{85} -\bibcite{sethian1996fast}{86} -\bibcite{kmeansgpuopengl}{87} -\bibcite{shi2000normalized}{88} -\bibcite{snakegvfopencl12}{89} -\bibcite{convolutionsoup}{90} -\bibcite{graphcutscuda}{91} -\bibcite{strang1999discrete}{92} -\bibcite{sanchez2013highly}{93} -\bibcite{theuwissen2001ccd}{94} -\bibcite{710815}{95} -\bibcite{tukey77}{96} -\bibcite{vedaldi2008quick}{97} -\bibcite{4563095}{98} -\bibcite{Vineet:2009:FMS:1572769.1572796}{99} -\bibcite{volkov2010better}{100} -\bibcite{wang2001image}{101} -\bibcite{wang2003image}{102} -\bibcite{Wang04imagequality}{103} -\bibcite{wong2010demystifying}{104} -\bibcite{wu1993optimal}{105} -\bibcite{xiao2010efficient}{106} -\bibcite{5206542}{107} -\bibcite{Zahn:1971:GMD:1309266.1309359}{108} -\bibcite{zheng2011performance}{109} -\bibcite{zheng2012fast}{110} +\bibcite{5767240}{10} +\bibcite{BlellochTR90}{11} +\bibcite{boykov2004experimental}{12} +\bibcite{bresenham1965algorithm}{13} +\bibcite{1467423}{14} +\bibcite{BuadesCM06}{15} +\bibcite{Caselles99topographicmaps}{16} +\bibcite{caselles97}{17} +\bibcite{5459410}{18} +\bibcite{cates2004gist}{19} +\bibcite{chandran2009computational}{20} +\bibcite{che2008performance}{21} +\bibcite{chen09}{22} +\bibcite{1093941}{23} +\bibcite{cheng1995mean}{24} +\bibcite{cherkassky1997implementing}{25} +\bibcite{ChesnaudRB99}{26} +\bibcite{cohen1993surface}{27} +\bibcite{comaniciu1999mean}{28} +\bibcite{comaniciu2002mean}{29} +\bibcite{cutrona1990synthetic}{30} +\bibcite{Dabov06imagedenoising}{31} +\bibcite{Dabov09bm3dimage}{32} +\bibcite{Daubechies:1992:TLW:130655}{33} +\bibcite{dixit2005gpu}{34} +\bibcite{elad2006image}{35} +\bibcite{felzenszwalb2004efficient}{36} +\bibcite{fluck2006gpu}{37} +\bibcite{foley1994introduction}{38} +\bibcite{ford1955simple}{39} +\bibcite{fukunaga1975estimation}{40} +\bibcite{fulkerson2012really}{41} +\bibcite{GallandBR03}{42} +\bibcite{galland2005minimal}{43} +\bibcite{GermainR01}{44} +\bibcite{nlmeansgpubelge}{45} +\bibcite{snakegvf06}{46} +\bibcite{healey1994radiometric}{47} +\bibcite{hochbaum2013simplifications}{48} +\bibcite{5170921}{49} +\bibcite{humphrey1924psychology}{50} +\bibcite{jeong2009scalable}{51} +\bibcite{5402362}{52} +\bibcite{KassWT88}{53} +\bibcite{keselman1998extraction}{54} +\bibcite{cmla2009Kes}{55} +\bibcite{kohli2007dynamic}{56} +\bibcite{lefohn2003inter}{57} +\bibcite{lefohn2003interactive}{58} +\bibcite{lefohn2005streaming}{59} +\bibcite{li2009mean}{60} +\bibcite{li2011robust}{61} +\bibcite{macqueen1967some}{62} +\bibcite{Mallat:2008:WTS:1525499}{63} +\bibcite{mancuso2001introduction}{64} +\bibcite{martin2001database}{65} +\bibcite{matheron75}{66} +\bibcite{coil}{67} +\bibcite{CUDAPG}{68} +\bibcite{osher1988fronts}{69} +\bibcite{4310076}{70} +\bibcite{medianggems5}{71} +\bibcite{PALHANOXAVIERDEFONTES}{72} +\bibcite{pelleg2000x}{73} +\bibcite{4287006}{74} +\bibcite{6036776}{75} +\bibcite{perrotbookgpu}{76} +\bibcite{perrot2013fine}{77} +\bibcite{perrotlniv}{78} +\bibcite{1521458}{79} +\bibcite{tid2008a}{80} +\bibcite{psnrhvsm}{81} +\bibcite{4587843}{82} +\bibcite{Roberts:2010:WGA:1921479.1921499}{83} +\bibcite{ronfard1994region}{84} +\bibcite{rumpf2001level}{85} +\bibcite{sanchezICASSP12}{86} +\bibcite{6288187}{87} +\bibcite{sethian1996fast}{88} +\bibcite{kmeansgpuopengl}{89} +\bibcite{shi2000normalized}{90} +\bibcite{snakegvfopencl12}{91} +\bibcite{convolutionsoup}{92} +\bibcite{graphcutscuda}{93} +\bibcite{strang1999discrete}{94} +\bibcite{sanchez2013highly}{95} +\bibcite{theuwissen2001ccd}{96} +\bibcite{710815}{97} +\bibcite{tukey77}{98} +\bibcite{vedaldi2008quick}{99} +\bibcite{4563095}{100} +\bibcite{Vineet:2009:FMS:1572769.1572796}{101} +\bibcite{volkov2010better}{102} +\bibcite{wang2001image}{103} +\bibcite{wang2003image}{104} +\bibcite{Wang04imagequality}{105} +\bibcite{wong2010demystifying}{106} +\bibcite{wu1993optimal}{107} +\bibcite{xiao2010efficient}{108} +\bibcite{5206542}{109} +\bibcite{Zahn:1971:GMD:1309266.1309359}{110} +\bibcite{zheng2011performance}{111} +\bibcite{zheng2012fast}{112} \citation{CUDAPG} \citation{CUDAPG} \citation{zheng2011performance} @@ -873,3 +883,4 @@ \citation{snakegvf06} \citation{martin2001database} \citation{wong2010demystifying} +\citation{GallandBR03}