L'étendue des techniques applicables aux images numériques est aujourd'hui si vaste qu'il serait illusoire de chercher à les décrire ici. Ce chapitre présente plus spécifiquement les algorithmes utilisés en présence d'images (fortement) bruitées. Le bruit rend potentiellement délicate l'extraction des informations utiles contenues dans les images pertubées ou en complique l'interpretation, qu'elle soit automatique ou confiée à la vision humaine. L'intuition nous incite donc à chercher des méthodes efficaces de prétraitement pour réduire la puissance du bruit afin de permettre aux traitements de plus haut niveau comme la segmentation, d'opérer ensuite dans de meilleures conditions. Toutefois, il faut également considérer que les opérations préalables de réduction de bruit apportent des modifications statistiques aux images et influent donc potentiellement sur les caractéristiques que l'on cherche à mettre en évidence grâce au traitement principal. En ce sens, il peut-être préférable de chercher à employer des algorithmes de haut niveau travaillant directement sur les images bruitées pour minimiser les effets des altérations apportées par les filtres débruiteurs et conserver toute l'information contenue dans les images perturbées. Les images auxquelles nous nous intéressons sont généralement les images numériques allant des images naturelles telles que définies par Caselles \cite{} aux images d'amplitude isues de l'imagerie radar à ouverture synthétique (ROS ou en anglais SAR) \cite{}, de l'imagerie médicale à ultrasons (echographie) ou encore biologique dans le cas de la microscopie électronique. Ces dispositifs d'acquisition sont naturellement, et par essence, générateurs de bruits divers, inhérents aux thechnologies mises en \oe uvre au sein de ces systèmes et qui viennent dégrader l'image idéale de la scène que l'on cherche à représenter ou analyser. On sait aujourd'hui caractériser de manière assez précise ces bruits et la section \ref{sec_bruits} en détaille les origines physiques ainsi que les propriétés statistiques qui en découlent. On peut dores et déjà avancer que la connaissance de l'origine d'une image et donc des propriétés des bruits associés qui en corrompent les informations, est un atout permettant de concevoir des techniques de filtrage adaptées à chaque situation. Toutefois, la recherche d'un filtre universel, bien qu'encore illusoire, n'est pas abandonnée, tant les besoins sont nombreux, divers et souvent complexes. \section{Modèle d'image bruitée} On considère qu'une image observée est un ensemble de $N$ observations sur un domaine $\Omega$ à deux dimensions ($\Omega \subset \mathbb{Z}^2$). À chaque élément de $\Omega$, aussi appelé \textit{pixel}, est associé un indice unique $k \in [\![1;N]\!]$, une position $x_k=(i,j)_k \in\Omega$ et une valeur observée $v_k=v(i,j)_k$. La valeur observée peut, selon les cas, être de dimension $1$ pour les images représentées en niveaux de gris ou de dimension 3 pour les images couleur représentées au format RVB. Les dimensions supérieures, pour la représentation des images hyperspectrales n'est pas abordé. L'image observée peut ainsi être considérée comme un vecteur à $N$ éléments $\bar{v}= (v_k)_{k\in [\![1;N]\!]}$. Les divers traitements appliqués aux images observées ont souvent pour but d'accéder aux informations contenues dans une image sous-jacente, débarrassée de toute perturbation, dont nous faisons l'hypothèse qu'elle partage le même support $\Omega$ et que nous notons $\bar{u}$. Le lien entre $\bar{u}$ et $\bar{v}$ peut être exprimé généralement par la relation $\bar{v}=\bar{u}+\sigma\epsilon$, où $\epsilon \in \mathbb{R}^N$ représente le modèle de perturbation appliquée à $\bar{u}$ et $\sigma$ représente la puissance de cette perturbation qui a mené à l'observation de $\bar{v}$. Dans le cas général, $\epsilon$ dépend de $\bar{u}$ et est caractérisé par la densité de probabilité (PDF pour probability density function) $p(v|u)$. \section{Modèles de bruit} \subsection{Le bruit gaussien} Le bruit gaussien est historiquement le plus étudié et celui auquel sont dédiées le plus de techniques de débruitage. La génération des images numériques au travers les capteurs CMOS et CCD \ref{} est le siège de nombreuses perturbations dues à la technologie de fabrication et à la nature du rayonnement dont ils mesurent l'intensité en différents zones de leur surface, appelées \textit{photosites}. On distingue en particulier les bruits suivants selon leur origine physique : \begin{itemize} \item la non uniformité de réponse des photosites. \item le bruit de photon \item le bruit de courant d'obscurité \item le bruit de lecture \item le bruit de non uniformité d'amplification des gains des photosites. \end{itemize} Des descriptions détaillées des mécanismes concourant à la génération de ces bruits sont fournies dans \ref{phelippeau p80} Dans un certain intervalle usuel d'intensité lumineuse, il est toutefois admis que l'ensemble des ces perturbations peut être représenté par un seul bruit blanc gaussien, de type \textit{additif} (AWGN), dont la densité de probabilité suit une loi normale de moyenne nulle et de variance $\sigma^2$. On a alors l'expression suivante, où $\sigma >0$ \[p(v|u)=\frac{1}{\sqrt{2}\pi\sigma}\mathrm{e}^{-\frac{(v-u)^2}{2\sigma^2}}\] \subsection{Le speckle} En imagerie radar, sonar ou médicale, les surfaces que l'on veut observer sont ``éclairées'' par des sources cohérentes. Les propriétés locales de ces surfaces sont le siège de réflexions multiples qui interfèrent entre elles pour générer un bruit de tavelures, ou speckle, dont l'intensité dépend de l'information contenue dans le signal observé. Le speckle est ainsi un bruit de type \textit{multiplicatif} qui confère aux observations une très grande variance qui peut-être réduite en moyennant plusieurs observations, ou vues, de la même scène. Si $L$ est le nombre de vues, le speckle est traditionnellement modélisé par la PDF suivante : \[p(v \mid u)=\frac{L^2v^{(L-1)}\mathrm{e}^{-L\frac{v}{u}}}{\Gamma (L)u^L} \] L'espérance vaut $\mathrm{E}\left[v\right]=u$ et la variance $\sigma^2=\frac{u^2}{L}$ est effectivement inversement proportionnelle à $L$, mais pour le cas mono vue où $L=1$, la variance vaut $u^2$, soit un écart type du signal $v$ égal à sa moyenne. \subsection{Le bruit ``sel et poivre''} Le bruit \textit{sel et poivre}, ou bruit \textit{impulsionnel} trouve son origine dans les pixels défectueux des capteurs ou dans les erreurs de transmission. Il tire son nom de l'aspect visuel de la dégradation qu'il produit : des pixels noirs et blancs répartis dans l'image. Le bruit impulsionnel se caractérise par la probabilité $P$ d'un pixel d'être corrompu. La PDF peut alors être exprimée par parties comme suit, pour le cas d'images en 256 niveaux de gris (8 bits) : \[p(v \mid u)= \begin{cases} \frac{P}{2}+(1-P) & \text{si $v=0$ et $u=0$}\\ \frac{P}{2}+(1-P) & \text{si $v=255$ et $u=255$}\\ \frac{P}{2} & \text{si $v=0$ et $u \neq 0$}\\ \frac{P}{2} & \text{si $v=255$ et $u \neq 255$}\\ (1-P) & \text{si $v=u$ et $u \notin \{0, 255\}$}\\ 0 & sinon \end{cases} \] \subsection{Le bruit de Poisson} Aussi appelé \textit{bruit de grenaille} (shot noise), ce type de bruit est inhérent aux dispositifs de détection des photons. Il devient prépondérant dans des conditions de faible éclairement, lorsque la variabilité naturelle du nombre de photons reçus par un photosite par intervalle d'intégration influe sur les propriétés statistiques du signal. Le bruit de grenaille est de type multiplicatif et suit une loi de Poisson. La PDF peut s'écrire comme suit : \[ p(v \mid u)=\mathrm{e}\frac{u^v}{v!}\] \section{Les techniques de réduction de bruit} La très grande majorité des algorithmes de réduction de bruit fait l'hypothèse que la perturbation est de type gaussien, même si le développement des systèmes d'imagerie radar et médicale a poussé les chercheurs vers l'étude des bruits multiplicatifs du type \textit{speckle} ou \textit{Poisson}. Un très grand nombre de travaux proposant des méthodes de réduction de ces bruits ont été menés, ainsi que beaucoup d'états de l'art et d'études comparatives de ces diverses techniques, que nous n'avons pas la prétention d'égaler. Les techniques et implémentations que nous aborderons dans le chapitre suivant sont celles qui ont un lien direct avec les travaux que nous avons menés. Nous présenterons donc les principales classes d'algorithmes de réduction de bruit et les implémentations GPU qui leur ont été consacrées. % Ce chapitre est consacré à la description des paramètres et caractéristiques des images que nous avons traitées dans nos travaux de recherche. Les notations générales y sont introduites telles qu'elles seront employées dans les chapitres suivants. Il ne s'agit pas d'un traité exhaustif sur le traitement des images, mais d'une présentation ciblée destinée à pouvoir situer nos travaux et les relier aux fondements théoriques sur lesquels ils reposent. \section{Les techniques de segmentation} La segmentation représente également un enjeu important dans le domaine du traitement d'image et à ce titre a fait l'objet d'abondants travaux et publications touchant les nombreux cas d'analyse dans lesquels une segmentation est utilisée. On peut citer la reconnaissance de formes, la détections et/ou la poursuite de cibles, la cartographie, le diagnostique médical, l'interaction Homme-machine, la discrimination d'arrière plan, etc. On pourrait donner de la segmentation une définition spécifique par type d'usage, mais dans un souci d'unification, on propose la formulation générique suivante : ``La segmentation consiste à distinguer les zones homogènes au sein d'une image''. Dans cette définition, le caractère \textit{homogène} s'entend au sens d'un critère pré établi, adapté aux contraintes particulières de traitement comme le type de bruit corrompant les images, ou bien la dimension du signal observé $\bar{v}$ selon que l'image est en couleur ou non. Un tel critère peut ainsi être un simple seuil de niveau de gris ou bien nécessiter de coûteux calculs statistiques dont certains seront détaillés dans les chapitres suivants. Devant la diversité des cas à traiter et des objectifs à atteindre, on sait aujourd'hui qu'à l'instar du filtre unique, la méthode universelle de segmentation n'existe pas et qu'une bonne segmentation est celle qui conduit effectivement à l'extraction des structures pertinentes d'une image selon l'interprétation qui doit en être faite. Les éléments constitutifs de la segmentation sont soit des régions, soit des contours. Les deux notions sont complémentaires étant donné que les contours délimitent des régions, mais les techniques de calcul basés sur l'un ou l'autre de ces éléments relèvent d'abords différents. Les algorithmes de segmentation orientés régions s'appuient pour beaucoup sur des techniques de regroupement, ou \textit{clustering}, pour l'identification et le peuplement des régions. Ce lien trouve son origine dans la psychologie du \textit{gestalt} \ref{biblio_web} où l'on considère que la perception conceptuelle s'élabore au travers de regroupements visuel d'éléments. La plupart des approches proposées jusqu'à très récemment consistent à minimiser une fonction d'énergie qui n'a pas de solution formelle et que l'on résout donc à l'aide de techniques numériques, souvent itératives. \subsection{Analyse d'histogramme} Les techniques les plus simples à mettre en \oe uvre en segmentation sont les techniques de seuillage, basées sur une analyse de l'histogramme des niveaux de gris (ou de couleurs) et cherchant à en distinguer les différentes classes comme autant d'occurrences représentant des \textit{régions} homogènes. Différents critères peuvent être appliqués pour cette analyse, visant par exemple à maximiser la variance \ref{otsu79} ou encore à maximiser le contraste pour déterminer les valeurs pertinentes des seuils. Malgré la multitude de variantes proposées, ces méthodes demeurent toutefois peu robustes et présentent l'inconvénient majeur de ne pas garantir la connexité des régions déterminées. On les réserve à des applications très spécifiques où, par exemple, on dispose d'une image de référence dont l'histogramme peut être comparé à celui des images à traiter. C'est le cas de certaines application de contrôle industriel où la simplicité algorithmique permet de surcroît des implémentations très rapides, voire câblées. Ces techniques sont aujourd'hui considérées comme rudimentaires mais les calculs d'histogrammes et les analyses associées interviennent dans beaucoup d'algorithmes récents parmi les plus évolués et performants. La figure \ref{fig-histo-cochon} illustre le traitement typique de l'histogramme de l'image d'entrée \ref{fig-histo-cochon-a} dans le but de distinguer les deux régions du fond et du cochon (la cible). La première étape consiste à dresser l'histogramme des niveaux de gris sur tout le domaine de l'image \ref{fig-histo-cochon-b}. Il faut ensuite identifier le seuil de séparation des deux régions supposées, ici, homogènes au sens des valeurs de niveau de gris. Une estimation visuelle peut-être faite, mais on voit immédiatement que même dans une situation aussi claire, le choix du seuil n'est pas évident. Pour un traitement automatique, on peut par exemple proposer la technique itérative présentée par l'Algorithme \ref{algo-histo-cochon} qui conduit à la segmentation de la figure \ref{fig-histo-cochon-c}. L'image \ref{fig-histo-cochon-d} est l'image initiale, corrompue par un bruit gaussien de moyenne nulle et d'écart type 25 . Les résultats de la segmentation (\ref{fig-histo-cochon-c} et \ref{fig-histo-cochon-f}) de cette image sont clairement insuffisants le segment de la cible comporte des discontinuités et dans le cas de l'image bruitée, des pixels orphelins épars demeurent en quantité. Cette technique nécessiterait une étape supplémentaire pour disposer d'une segmentation pertinente. \begin{figure} \centering \subfigure[Image initiale comportant deux zones : le fond et le cochon (la cible)]{\label{fig-histo-cochon-a} \includegraphics[height=3cm]{/home/zulu/Documents/THESE/codes/cochon256.png}}\quad \subfigure[Histogramme des niveaux de gris]{\label{fig-histo-cochon-b} \includegraphics[height=3cm]{/home/zulu/Documents/THESE/codes/seg_histogramme/histo-cochon256.png}}\quad \subfigure[Image binaire représentant la segmentation. Seuil estimé à 101 après 4 itérations.]{\label{fig-histo-cochon-c} \includegraphics[width=3cm]{/home/zulu/Documents/THESE/codes/seg_histogramme/cochon256-seghisto-101-255.png}}\\ \subfigure[Image initiale bruitée]{\label{fig-histo-cochon-d} \includegraphics[height=3cm]{/home/zulu/Documents/THESE/codes/cochon256-sig25.png}}\quad \subfigure[Histogramme des niveaux de gris]{\label{fig-histo-cochon-e} \includegraphics[height=3cm]{/home/zulu/Documents/THESE/codes/seg_histogramme/histo-cochon256-sig25.png}}\quad \subfigure[Image binaire représentant la segmentation. Seuil estimé à 99 après 5 itérations.]{\label{fig-histo-cochon-f} \includegraphics[height=3cm]{/home/zulu/Documents/THESE/codes/seg_histogramme/cochon256-sig25-seghisto-99-255.png}} \caption{Segmentation 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.} \label{fig-histo-cochon} \end{figure} \begin{algorithm} \SetNlSty{textbf}{}{:} \SetKwComment{Videcomment}{}{} \caption{Calcul du seuil de séparation des segments de l'histogramme.} \label{algo-histo-cochon} $\overline{h} \leftarrow $ histogramme sur l'image \; $S_{init} \leftarrow 128$ \; $S_k \leftarrow S_{init}$ \; $\epsilon \leftarrow 1$ \; \Repeat{$\|S_k - \frac{1}{2}(\mu_{inf} + \mu_{sup})\| < \epsilon $}{ $\mu_{inf}=\displaystyle \frac{\displaystyle\sum_{i