\message{ !name(chapter4.tex)}
\message{ !name(chapter4.tex) !offset(-2) }

\section{Présentation de l'algorithme séquentiel}

Bertaux \textit{et al.} ont proposé un algorithme de réduction du \textit{speckle} dans les images éclairées en lumière cohérente en introduisant un terme d'attache aux données lié aux lignes de niveaux du modèle d'image non bruitée \cite{}.
La contrainte demeure locale vis à vis du pixel dont on cherche à estimer la valeur de niveau de gris, avec cependant un voisinage de forme et de taille (en nombre de pixels) variables en fonction des propriétés de l'image bruitée dans la zone concernée.
Ce voisinage, dont la forme, l'étendue et le niveau de gris sont déterminés par maximum de vraisemblance est appelé une \textit{isoline} et est une estimation locale de la ligne de niveau à laquelle appartient le pixel concerné.
Cette technique a montré qu'elle permettait de réduire très significativement le niveau de bruit tout en préservant les contours des objets. Elle s'est en revanche averée gourmande en ressources, ce qui a initialement conduit les auteurs a réduire la résolution de calcul des \textit{isolines} par application d'un maillage sur l'image corrompue. 
Malgré cela, les temps de calcul demeurent prohibitfs, avec une image de 2 millions de pixels traitée en 1 minute par un PIII-1GHz.
Comme nous l'avons déjà évoqué, l'amélioration des performances des microprocesseurs permet aujourd'hui de réduire assez considérablement ce temps de calcul, mais la résoltion des images à traiter à elle aussi crû dans des proportions comparables laissant les termes du compromis qualité/performances inchangés.

\subsection{Formulation}
 Les \textit{isolines} sont des lignes brisées composées d'un ou plusieurs segments et construites par allongements successifs. Le niveau de gris affecté en sortie au pixel considéré est la valeur moyenne des niveaux de gris des pixels appartenant à l'\textit{isoline}.
Les segments sont de longueur $n$ fixe mais paramétrable et selectionnés parmi 32 motifs prédéterminés et mémorisés dans une table de référence notée $P_{n-1}$ dont un extrait est reproduit à la figure \ref{fig-lniv-p5q1} avec les motifs des segments correspondants. Tous les motifs sont composés du même nombre $n-1$ de pixels.
Pour chaque pixel de l'image d'entrée, le premier segment est choisi comme celui présentant la meilleure vraisemblance parmi les 32 possibles. Le choix d'intégrer ou non d'autres segments à l'\textit{isoline} et la sélection des segments à intégrer sont efféctués par évaluation d'un critère de vraisemblance généralisée dont l'obtention est détaillée dans la suite. 

\begin{figure}[h]
\subfigure[Les 8 premières lignes de la table $P_5$ dont les éléments sont les positions relatives des pixels de chaque motif par rapport au pixel central.]{\includegraphics[height=4cm]{Chapters/chapter4/img/P5Q1.jpg}}\quad
\subfigure[Motifs des 8 premier segments candidats pour. Les pixels noirs representent le pixel traité (ou pixel central), qui n'appartient pas au motif. Les pixels gris sont ceux qui constituent le motif.]{
$
P_5 =
\begin{bmatrix}
(0,1)&(0,2)&(0,3)&(0,4)&(0,5)\\
(0,1)&(0,2)&(-1,3)&(-1,4)&(-1,5)\\
(0,1)&(-1,2)&(-1,3)&(-2,4)&(-2,5)\\
(-1,1)&(-1,2)&(-2,3)&(-3,4)&(-3,5)\\
(-1,1)&(-2,2)&(-3,3)&(-4,4)&(-5,5)\\
(-1,1)&(-2,1)&(-3,2)&(-4,3)&(-5,3)\\
(-1,0)&(-2,1)&(-3,1)&(-4,2)&(-5,2)\\
(-1,0)&(-2,0)&(-3,1)&(-4,1)&(-5,1)\\
\ldots&\ldots&\ldots&\ldots&\ldots\\
\end{bmatrix}
$
}
\caption{\label{fig-lniv-p5q1}Détail des motifs et de leur représentation interne, pour la taille $d=5$. }
\end{figure}

\subsubsection{Isolines à un seul segment}

Pour chacun des pixels $(i,j)$ de l'image corrompue, on calcule la vraisemblance associée à chaque segment candidat de la table $P_{n-1}$ dans la région carrée $\omega$ centrée en $(i,j)$ et de coté $2n-1$. La région $\omega$ est l'union des deux sous-régions $S^n$ et $\overline{S^n}$ telles que $S^n$ décrit le segment candidat à évaluer comme un ensemble de $n$ pixels de coordonnées $(i_q,j_q)$ où $q\in [0..n[$.
La figure \ref{fig-lniv-regions} montre cette répartition pour $d=5$ et l'un des motifs ($p_{5,3}$).

\begin{figure}[h]
\center
\includegraphics[height=3cm]{Chapters/chapter4/img/illustration_mv.jpg}
\caption{\label{fig-lniv-regions}. Exemple de la répartition des pixels dans la région $\omega$ pour le calcul de la vraisemblance, pour $n=6$.}
\end{figure}

La densité de probabilité des valeurs des niveaux de gris des pixels de  $S^d$ est supposée gaussienne de paramètres $\mu_{S^n}$ (moyenne) et $\sigma$ (écart type) inconnus. Les moyennes des niveaux de gris de chaque pixel sur $S^n$ sont inconnues et supposées indépendantes.

Soit $Z$ l'ensemble des niveaux de gris des pixels de $\omega$ et $\{\mu_{ij}\}_{\overline{S^n}}$ l'ensemble des valeurs moyennes des pixels de $\overline{S^n}$. On peut écrire la probabilité 
\[
P[Z|S^n, \mu_{S^n}, \{\mu_{ij}\}_{S^n}, \sigma]
\]    

qui se développe comme suit, en distinguant les contributions de $S^n$ et $\overline{S^n}$
\begin{eqnarray}
\displaystyle \prod_{(i,j)\in S^n}{P\left[z(i,j) | \mu_{S^n}, \sigma \right]} \displaystyle\prod_{(i,j)\in \overline{S^n}}{P\left[z(i,j) | \left\{\mu_{ij}\right\}_{\overline{S^n}}, \sigma \right]}
\label{LL2}
\end{eqnarray}

Nous cherchons alors à déterminer l'ensemble $S^n$ qui maximise la valeur de l'expression \eqref{LL2} ci dessus.
Or, sur $S^n$, les niveaux de gris $z(i,j)$ peuvent aussi être pris comme les estimations $\widehat{\mu_{ij}}$ des moyennes $\mu_{ij}$. 
Le sesond terme de l'expression \eqref{LL2} devient donc 

\begin{eqnarray}
\displaystyle\prod_{(i,j)\in \overline{S^n}}{P\left[z(i,j) | \left\{\widehat{\mu_{ij}}\right\}_{\overline{S^n}}, \sigma \right]=1}
\end{eqnarray}
Il reste alors le premier terme de \eqref{LL2}, soit l'expression de la vraisemblance généralisée donnée par :
\begin{eqnarray}
\displaystyle \prod_{(i,j)\in S^n}{P\left[z(i,j) | \mu_{S^n}, \sigma \right]}
\label{GL}
\end{eqnarray}
Que l'on peut développer, en remplaçant la probabilité par son expression. Il vient : 
\begin{eqnarray}
\displaystyle \prod_{(i,j)\in S^n}\frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{\left(z(i,j)-\mu_{S^n}\right)^2}{2\sigma^2}}
\label{GL2}
\end{eqnarray}

En prenant le logarithme et en developpant, on obtient alors l'expression suivante, dite \textit{log-vraisemblance}
\begin{eqnarray}
\displaystyle -\frac{n}{2}log\left(2\pi\right) - \frac{n}{2}log\left(\sigma^2\right) - \frac{n}{2}
\label{LL1}
\end{eqnarray}
où le vecteur des paramètres $(\mu_{S^n}, \sigma)$ est lui même obtenu par estimation au sens du maximum de vraisemblance.
$$
\left(
\begin{array}{l}
\widehat{\mu_{S^n}} = \displaystyle\frac{1}{n} \sum_{(i,j)\in S^n} z(i,j) \\
\widehat{\sigma^2} = \displaystyle\frac{1}{n} \sum_{(i,j)\in S^n} \left(z(i,j) - \widehat{\mu_{S^n}}\right)^2 \\
\end{array}
\right.
$$

Le motif retenu pour le segment est celui qui maximise l'expression de \eqref{LL1}.

\subsubsection{Isolines composées de plusieurs segments - critère d'allongement}

L'objectif poursuivi en cherchant à étendre la portée des isolines est d'améliorer la force du filtrage en intégrant plus de valeurs de niveaux de gris dans le calcul de la moyenne qui deviendra la valeur de sortie filtrée.
Pour cela nous permettons à chaque \textit{isoline}, comportant initialement un seul segment, d'être prolongée par d'autres segments, chaque allongement faisant l'objet d'une validation selon un critère de vraisemblance généralisée.
L'évaluation de l'ensemble des \textit{isolines} pouvant être construite sur ce modèle présente un coût prohibitif en temps de calcul et l'idée en a donc été abandonnée.
À la place, nous effectuons une sélection à chaque étape d'allongement : on évalue l'ensemble des 32 allongements possibles et si au moins un des motifs est accepté, on retient l'\textit{isoline} ayant la meilleure vraisemblance. Ce processus est répeté tant qu'au moins un motif représente un allongement valide.

\begin{figure}[h]
\center
\includegraphics[height=4cm]{Chapters/chapter4/img/exemple_extension_1.jpg}
\caption{\label{fig-lniv-allongement}Allongement du segment $S^n$. Deux candidats $S^{p'}$ et $S^{p''}$ sont évalués au travers du critère GLRT de l'équation \eqref{GLRT} que seul $S^{p''}$ s'avère satisfaire. a) Représentation dans le plan de l'image. b) Évolution des niveaux de gris en fonction de la position des pixels dans les lignes brisées ainsi formées.}
\end{figure}

Soit $S^n$ une \textit{isoline} précédemment validée et $S^p$ un segment connecté à $S^n$ de telle sorte qu'il représente un potentiel allongement de $S^n$. Une situation de cette nature est représentée à  la figure \ref{fig-lniv-allongement} avec un premier segment valide et deux candidats $S^{p'}$ et $S^{p''}$.
À gauche de la figure est reproduite une petite zone d'image réelle, suffisamment grossie pour permettre de bien individualiser les pixels et  à laquelle ont été superposés les trois segments en question. Les deux relevés de la partie droite montrent quant à eux l'évolution des valeurs des niveaux de gris des pixels des deux \textit{isolines} possibles que sont $S^nS^{p'}$ et $S^nS^{p''}$. On a également identifié les différents sous-ensembles de pixels $S^n$, $S^{p'}$ et $S^{p''}$ ainsi que les valeurs moyennes de chacun. 
À la lecture de ces deux représentations, on peut aisément imaginer que $S^{p'}$ ne soit pas retenu comme extension valide de $S^n$, au contraire de $S^{p''}$.

Pour formaliser ce que notre intuition semble nous dicter dans l'exemple précedent, nous comparons les log-vraisemblances des deux situations suivantes :
\begin{enumerate}
\item Le segment $S^p$ {\bf est} une extension valide pour $S^n$. Ils forment donc une \textit{isoline} $S^nS^p$.\\
Dans ce cas et par hypothèse, la valeur moyenne des niveaux de gris est définie sur $S^nS^p$ et d'après \eqref{LL2}, la log-vraisemblance est donnée par
\begin{eqnarray}
\displaystyle -\frac{(n+p)}{2}\left(log\left(2\pi\right)+1\right) - \frac{(n+p)}{2}log\left(\widehat{\sigma_1}^2\right)
\label{LLNP}
\end{eqnarray}
où $\widehat{\sigma_1}$ est l'estimation de l'écart type sur $S^nS^p$.


\item Le segment $S^p$ {\bf n'est pas} une extension valide pour $S^n$. 
\end{enumerate}

 





\message{ !name(chapter4.tex) !offset(-135) }
