+où \hspace{3cm}$\widehat{\sigma_1^2} = \displaystyle\frac{1}{n+p} \sum_{(i,j)\in S^nS^p} \left(v(i,j) - \widehat{\mu_{S^nS^p}}\right)^2 $.
+
+\item Le segment $S^p$ {\bf n'est pas} une extension valide pour $S^n$. Les deux parties ont des valeurs moyennes distinctes ($\mu_{S^n}$, $\mu_{S^p}$) et la log-vraisemblance est alors la somme des log-vraisemblances des deux portions.
+\begin{eqnarray}
+\displaystyle -\frac{(n+p)}{2}\left(log\left(2\pi\right)+1\right) - \frac{n}{2}log\left(\widehat{\sigma_2}^2\right) - \frac{p}{2}log\left(\widehat{\sigma_2}^2\right)
+\label{LLNP2}
+\end{eqnarray}
+où \hspace{3cm}$\widehat{\sigma_2^2} = \displaystyle\frac{1}{n+p} \left( \sum_{(i,j)\in S^n} \left(v(i,j) - \widehat{\mu_{S^n}}\right)^2 + \sum_{(i,j)\in S^p} \left(v(i,j) - \widehat{\mu_{S^p}}\right)^2\right) $.
+\end{enumerate}
+
+La différence entre \eqref{LLNP} et \eqref{LLNP2} nous donne l'expression du critère GLRT (\textit{Generalized Likelihood Ratio Test})
+\begin{eqnarray}
+T(S^n, S^p, T_{max}) = T_{max}- (n+p)\left[log\left(\widehat{\sigma_1}^2\right) - log\left(\widehat{\sigma_2}^2\right) \right]
+\label{GLRT}
+\end{eqnarray}
+où $T_{max}$ est un seuil arbitrairement fixé de sorte à produire des résultats visuels et chiffrés satisfaisant.
+Un allongement de $S^n$ par $S^p$ est validé si $T(S^n, S^p, T_{max}) > 0$.
+
+\section{Modélisation des isolines pour l'implémentation parallèle sur GPU}
+Les isolines sont construites segment après segment. Cela permet de suivre des formes courbes. La validité d'un segment et son éventuelle sélection sont soumises au critère décrit dans le paragraphe précédent.
+Il nous est également apparu pertinent de limiter le nombre de segments candidats, ce qui permet d'apporter une réponse aux points suivants :
+\begin{enumerate}
+\item la sélection du premier segment est cruciale mais il n'est pas prouvé que la meilleure isoline soit celle qui a pour premier segment celui qui a été effectivement sélectionné en premier. Une telle erreur sur la direction primaire peut s'avérer très pénalisante pour la qualité du traitement. C'est pourquoi nous conduisons en parallèle les allongements des 32 isolines, chacune ayant l'un des motifs permis comme premier segment (voir figure \ref{fig-lniv-p5q1}).
+\item évaluer systématiquement les 32 motifs pour chaque extension peut alors rendre l'algorithme très coûteux. En effet, si $q$ est le nombre de segments maximum autorisés pour une isoline, le nombre d'évaluations à effectuer se monte à $32^q$ par pixel. Cela représente par exemple un total de $\mathbf{3,5.10^{13}}$ évaluations pour des isolines de $q=5$ segments dans une image de 1024$\times$1024 pixels.
+\item permettre à tout allongement de se faire dans chacune des 32 directions risque de générer des isolines oscillant entre les deux extrémités de l'un de ses segments, ou bien s'enroulant sur elles-même au delà du simple rebouclage.
+\item une ligne de niveau ne peut pas se couper, donc une isoline ne peut pas être composée de segments qui se croisent.
+\end{enumerate}
+
+Les contraintes des points 3 et 4 ci-dessus nous ont conduit à limiter la déviation angulaire pouvant résulter de toute procédure d'allongement. Nous notons $\Delta d_{max}$ l'écart maximal toléré entre les indices des motifs de deux segments successifs.
+Le choix d'une valeur de $\Delta d_{max}$ adaptée dépend de la taille des segments ainsi que du nombre maximal de segments que peut comporter une isoline.
+L'autre conséquence de cette limitation est la diminution du nombre total d'évaluations nécessaires. Si $\Delta d_{max} = 2$, le nombre d'évaluations effectuées dans l'exemple du point 2 passe ainsi à $1024^2\times 32\times 5^{q-1} = \mathbf{2,0.10^{10}}$ soit 1500 fois moins (avec $q=5$).
+
+\subsection{Isolines évaluées semi-globalement}
+La première implémentation proposée et notée PI-LD (\textit{Poly Isolines with Limited Deviation}), consiste donc à conduire l'allongement des 32 isolines candidates à leur terme, puis de sélectionner la plus vraisemblable parmi celles qui partagent la plus grande longueur. L'exemple de la figure \ref{fig-lniv-pild} illustre ce processus pour la sélection du deuxième segment d'une isoline avec $a=5$ et $\Delta d_{max}=2$.
+
+\begin{figure}[h]
+ \centering
+\subfigure[Isoline comprenant deux segments $s_1$ et $s_2$.]{\label{pild:debut} \includegraphics{Chapters/chapter4/img/PI-LD_detail_3.jpg}}\quad
+\subfigure[Premier segment évalué, associé au motif $p_{5,0}$.]{\label{pild:sub1} \includegraphics{Chapters/chapter4/img/PI-LD_detail_sub1.jpg}}\quad
+\subfigure[Deuxième segment évalué, associé au motif $p_{5,1}$.]{\label{pild:sub2} \includegraphics{Chapters/chapter4/img/PI-LD_detail_sub2.jpg}}\\
+\subfigure[Troisième segment évalué, associé au motif $p_{5,2}$.]{\label{pild:sub3} \includegraphics{Chapters/chapter4/img/PI-LD_detail_sub3.jpg}}\quad
+\subfigure[Quatrième segment évalué, associé au motif $p_{5,3}$.]{\label{pild:sub4} \includegraphics{Chapters/chapter4/img/PI-LD_detail_sub4.jpg}}\quad
+\subfigure[Cinquième segment évalué, associé au motif $p_{5,4}$.]{\label{pild:sub5} \includegraphics{Chapters/chapter4/img/PI-LD_detail_sub5.jpg}}
+\caption{Processus de sélection lors de l'allongement d'une isoline comportant initialement deux segments $s_1$ et $s_2$. Dans cet exemple $d=5$ et $\Delta d_{max}=2$. Chaque segment évalué est soumis au critère GLRT. Si au moins un des segments présente un test GLRT positif, alors l'allongement est réalisé avec le segment qui forme l'isoline la plus vraisemblable.}
+\label{fig-lniv-pild}
+\end{figure}
+
+La rapidité de cette implémentation est très supérieure à celle des algorithmes \textit{état de l'art} comme BM3D (\cite{Dabov06imagedenoising}), la qualité du débruitage étant tout de même moindre. Le tableau \ref{tab-lniv-results} rassemble les performances comparées de nos implémentations et de celle du BM3D en y ajoutant comme référence de vitesse d'exécution un simple filtre moyenneur. Les mesures ont été réalisées sur l'ensemble des images de la base de test de S. Lansel (université de Berkeley), devenue entre temps indisponible au téléchargement, mais qui représente toujours une base de référence pour comparer des implémentations d'algorithmes de débruitage. Les images en sont reproduites à la figure \ref{fig-lniv-imgslansel}.
+
+\begin{figure}[ht]
+ \centering
+ \subfigure[airplane]{\includegraphics[width=2.5cm]{Chapters/chapter4/img/lansel/airplane.png}}
+ \subfigure[boat]{\includegraphics[width=2.5cm]{Chapters/chapter4/img/lansel/boat.png}}\quad
+ \subfigure[barbara]{\includegraphics[width=2.5cm]{Chapters/chapter4/img/lansel/barbara.png}}\quad
+ \subfigure[couple]{\includegraphics[width=2.5cm]{Chapters/chapter4/img/lansel/couple.png}}\quad
+ \subfigure[elaine]{\includegraphics[width=2.5cm]{Chapters/chapter4/img/lansel/elaine.png}}\\
+ \subfigure[fingerprint]{\includegraphics[width=2.5cm]{Chapters/chapter4/img/lansel/fingerprint.png}}\quad
+ \subfigure[goldhill]{\includegraphics[width=2.5cm]{Chapters/chapter4/img/lansel/goldhill.png}}\quad
+ \subfigure[lena]{\includegraphics[width=2.5cm]{Chapters/chapter4/img/lansel/lena.png}}\quad
+ \subfigure[man]{\includegraphics[width=2.5cm]{Chapters/chapter4/img/lansel/man.png}}\quad
+ \subfigure[mandrill]{\includegraphics[width=2.5cm]{Chapters/chapter4/img/lansel/mandrill.png}}\\
+ \subfigure[peppers]{\includegraphics[width=2.5cm]{Chapters/chapter4/img/lansel/peppers.png}}\quad
+ \subfigure[stream]{\includegraphics[width=2.5cm]{Chapters/chapter4/img/lansel/stream.png}}\quad
+ \subfigure[zelda]{\includegraphics[width=2.5cm]{Chapters/chapter4/img/lansel/zelda.png}}\quad
+\label{fig-lniv-imgslansel}
+ \caption{Images non bruitées de la base d'images en niveaux de gris de S. Lansel.}
+\end{figure}
+
+
+L'adaptation de ce modèle au fonctionnement du GPU n'est pas non plus optimale du fait de la nécessité de réaliser, à chaque étape d'allongement, deux différents types de validation : un test GLRT et une minimisation de log-vraisemblance. Cela induit de nombreuses branches d'exécution divergentes dans le kernel principal, qui sont sérialisées par le GPU et causent une perte de performance considérable.
+
+Une analyse plus poussée des isolines construites nous montre qu'il y a une proportion relativement faible d'isolines optimales dont le premier segment s'écarte notablement de celui qui présente la plus grande vraisemblance en l'absence d'allongement.
+L'exemple représentatif de la figure \ref{fig-lniv-histo-singe} montre l'histogramme des différences constatée pour l'image du singe. Les autres images de l'ensemble de test fournissent des histogrammes très semblables qui sont reproduits en petit format à la figure \ref{fig-lniv-histo-autres}. On y observe que pour environ 60\% des pixels de l'image, il y a correspondance des directions et que pour 80\% des pixels, l'écart angulaire reste inférieur à 2 (en indices des motifs).
+
+\begin{figure}[h]
+ \centering
+\includegraphics[height=4.5cm]{Chapters/chapter4/img/histodir.png}
+\caption{Histogramme des écarts angulaires entre la direction primaire de l'isoline optimale et celle de l'isoline sélectionnée, pour l'image du singe (Mandrill).
+Pour la très grande majorité des pixels, l'écart est nul.}
+\label{fig-lniv-histo-singe}
+\end{figure}
+
+ \begin{figure}[h]
+ \centering
+\subfigure[Airplane]{\includegraphics[width=2cm]{Chapters/chapter4/img/hist_seg1_airplane_25_l3.png}}
+\subfigure[Barbara]{\includegraphics[width=2cm]{Chapters/chapter4/img/hist_seg1_barbara_25_l3.png}}
+\subfigure[Boat]{\includegraphics[width=2cm]{Chapters/chapter4/img/hist_seg1_boat_25_l3.png}}
+\subfigure[Couple]{\includegraphics[width=2cm]{Chapters/chapter4/img/hist_seg1_couple_25_l3.png}}
+\subfigure[Elaine]{\includegraphics[width=2cm]{Chapters/chapter4/img/hist_seg1_elaine_25_l3.png}}
+\subfigure[Finger]{\includegraphics[width=2cm]{Chapters/chapter4/img/hist_seg1_finger_25_l3.png}}\\
+\subfigure[Goldhill]{\includegraphics[width=2cm]{Chapters/chapter4/img/hist_seg1_goldhill_25_l3.png}}
+\subfigure[Lena]{\includegraphics[width=2cm]{Chapters/chapter4/img/hist_seg1_lena_25_l3.png}}
+\subfigure[Man]{\includegraphics[width=2cm]{Chapters/chapter4/img/hist_seg1_man_25_l3.png}}
+\subfigure[Peppers]{\includegraphics[width=2cm]{Chapters/chapter4/img/hist_seg1_peppers_25_l3.png}}
+\subfigure[Stream]{\includegraphics[width=2cm]{Chapters/chapter4/img/hist_seg1_stream_25_l3.png}}
+\subfigure[Zelda]{\includegraphics[width=2cm]{Chapters/chapter4/img/hist_seg1_zelda_25_l3.png}}
+\caption{Histogrammes des écarts angulaires entre la direction primaire de l'isoline optimale et celle de l'isoline sélectionnée, pour les images de l'ensemble de test de S. Lansel. La répartition des erreurs est semblable dans toutes ces images, mais également dans toute image naturelle.}
+\label{fig-lniv-histo-autres}
+\end{figure}
+
+On observe également que les pixels pour lesquels la sélection du premier segment n'est pas robuste sont situés dans les zones de l'image ne contenant pas de forts gradients de niveaux de gris, ce qui est cohérent avec l'impossibilité d'identifier une direction privilégiée dans ces régions.
+
+\subsection{Isolines à segments pré-évalués - modèle PI-PD\label{subsection-pipd-intro}}
+Les observations précédentes nous indiquent que, dans les zones où la sélection du premier segment est robuste, il n'est pas nécessaire de conduire l'étape de sélection consécutive à chaque allongement. Sous cette hypothèse, étendre une isoline se terminant au point final $(i, j)$ revient à sélectionner le premier segment de l'isoline débutant en $(i, j)$.
+
+Cette technique réduit considérablement la quantité d'évaluations à effectuer, la faisant passer de $32^q$ à seulement {\bf 160} évaluations par pixel (pour $q=5$), soit un total de $\mathbf{1,7.10^8}$ pour une image de 124$\times$1024 avec $a=5$.
+
+Ce nouveau modèle, nommé PI-PD (\textit{Poly Isolines with Precomputed Directions}), permet donc de séparer complètement la phase de sélection du segment initial par maximum de vraisemblance des phases d'allongements successifs soumis au seul test GLRT.
+Pour implémenter efficacement cet algorithme sur GPU, il faut alors répartir les calculs en deux kernels principaux :
+\begin{enumerate}
+\item \texttt{kernel\_precomp()} réalise la sélection du premier segment en chaque pixel $(i,j)$. La direction $d_1(i,j)$ ainsi déterminée est mémorisée dans une matrice $I_{\Theta}$. Pour effectuer les calculs relatifs au GLRT, il faut aussi connaître, pour chaque segment $s_1$, la valeur des sommes partielles
+ \begin{eqnarray}
+ C_x\left(Z\left(S_1\right)\right)= \sum_{(i,j)\in s_1} v(i,j)
+ \label{cx}
+ \end{eqnarray}
+ et
+ \begin{eqnarray}
+ C_{x^2}\left(Z\left(S_1\right)\right)= \sum_{(i,j)\in s_1} v(i,j)^2
+ \label{cx2}
+ \end{eqnarray}
+
+Elles sont calculées et mémorisées dans une seconde matrice notée $I_{\Sigma}$. Remarquons que les traitements réalisés par ce kernel correspondent exactement au modèle d'isoline à un seul segment présenté au début. Les détails de son implémentation sont donnés dans l'algorithme \ref{algo-lniv-precomp}, les initialisations étant données dans l'algorithme \ref{algo-lniv-init}.
+\item \texttt{kernel\_PIPD()} évalue les allongements successifs, qui ne nécessitent plus de sélection par maximum de vraisemblance, mais uniquement la validation par GLRT. Les données nécessaires à l'évaluation du critère GLRT sont regroupées, outre dans l'image d'entrée, dans les matrices $P_d$, $I_{\Theta}$ et $I_{\Sigma}$ et ne sont donc plus à calculer à ce stade. Cela permet d'envisager des performances en hausse par rapport à la solution PI-LD. L'algorithme \ref{algo-lniv-pipd} fournit les détails de l'implémentation de ce kernel.
+\end{enumerate}
+
+Les schémas de la figure \ref{fig-lniv-pipd} illustrent les étapes décrites ci-dessus de l'allongement d'une isoline par la méthode PI-PD. \begin{figure}[h]
+ \centering
+\subfigure[Isoline avec 2 segments $s_1$ et $s_2$ déjà validés.]{\includegraphics[width=2.3cm]{Chapters/chapter4/img/PI-PD_detail_sub1.jpg}}\quad
+\subfigure[La direction de $s_3$ est l'élément $(i_2,j_2)$ de $I_{\Theta}$.]{\includegraphics[width=5cm]{Chapters/chapter4/img/PI-PD_detail_sub2.jpg}}\\
+\subfigure[Le motif de $s_3$ est lu dans $p_5$ et appliqué en $(i_2,j_2)$. $C_x$ et $C_{x^2}$ sont données par $I_{\Sigma}(i_2,j_2)$ et le test GLRT est effectué.]{\includegraphics[width=4cm]{Chapters/chapter4/img/PI-PD_detail_sub3.jpg}}\quad
+\subfigure[Si l'allongement est validé, $s_3$ est définitivement intégré.]{\includegraphics[width=2.7cm]{Chapters/chapter4/img/PI-PD_detail_sub4.jpg}}
+\caption{Exemple d'application du procédé d'allongement à une isoline comprenant initialement 2 segments. la longueur des segments est $a=5$. Le procédé se répète jusqu'à ce que le test GLRT échoue.}
+\label{fig-lniv-pipd}
+\end{figure}
+
+\begin{algorithm}[htb]
+\caption{Initialisations du modèle PI-PD, en mémoire du GPU.}
+\label{algo-lniv-init}
+$l \leftarrow$ taille segments\;
+$D \leftarrow$ nombre de motifs/directions\;
+$I_n \leftarrow$ image d'entrée bruitée\;
+$I_{n tex} \leftarrow I_n $\tcc*[r]{copie en texture}
+$P_l \leftarrow$ kernel\_genPaths \tcc*[r]{génération de la matrice $P_l$}
+$P_{l tex} \leftarrow P_l $\tcc*[r]{copie en texture}
+$T_{max} \leftarrow$ seuil GLRT pour les allongements\;
+$T2_{max} \leftarrow$ seuil GLRT pour la détection de bords\;
+\end{algorithm}
+
+\begin{algorithm}
+ \SetKwComment{Videcomment}{}{}
+\caption{\texttt{kernel\_precomp()} : génération des matrices $I_{\Theta}$ et $I_{\Sigma}$.}
+\label{algo-lniv-precomp}
+\ForEach(\tcc*[f]{\textbf{en parallèle}}){pixel $(i,j)$}{
+ $C_{x-best} \leftarrow \displaystyle\sum_{(y,x)\in p_{l,0}(i,j)} I_{n tex}(i+y,j+x)$ \;
+ $C_{x2-best} \leftarrow \displaystyle\sum_{(y,x)\in p_{l,0}(i,j)} I_{n tex}^2(i+y,j+x)$ \;
+ $\sigma_{best} \leftarrow$ écart type sur $p_{l,0}(i,j)$ \;
+ %\Videcomment{}
+ \tcc{pour chaque motif de segment}
+ \ForEach{$d \in [1..D-1]$}{
+ $C_x \leftarrow \displaystyle\sum_{(y,x)\in p_{l,d}(i,j)} I_{n tex}(i+y,j+x)$\;
+ $C_{x2} \leftarrow \displaystyle\sum_{(y,x)\in p_{l,d}(i,j)} I_{n tex}^2(i+y,j+x)$\;
+ $\sigma \leftarrow$ écart type sur $p_{l,d}(i,j)$\;
+ \If(\tcc*[f]{sélection par MV}){$\sigma_d < \sigma_{best}$}{
+ $C_{x-best} \leftarrow C_x$ \;
+ $C_{x2-best} \leftarrow C_{x2}$ \;
+ $\Theta_{best} \leftarrow d$ \;
+ }
+ }
+ $I_{\Sigma}(i,j) \leftarrow \left[ C_{x-best}, C_{x2-best}\right]$ \tcc*[r]{mémorisation}
+ $I_{\Theta}(i,j) \leftarrow \Theta_{best}$ \tcc*[r]{dans $I_{\Theta}$ et $I_{\Sigma}$}
+}
+\end{algorithm}
+
+\begin{algorithm}[ht]
+%\SetNlSty{textbf}{}{:}
+\caption{\texttt{kernel\_PIPD()} : gestion du processus d'allongement.}
+\label{algo-lniv-pipd}
+\ForEach(\tcc*[f]{\textbf{en parallèle}}){pixel $(i,j)$}{
+ $(C_x^1, C_{x2}^1) \leftarrow z(i,j)$ \tcc*[r]{pixel de départ}
+ $(i_1, j_1) \leftarrow (i, j)$ \tcc*[r]{premier segment}
+ $(C_x^1, C_{x2}^1) \leftarrow I_{\Sigma}(i_1,j_1)$ \tcc*[r]{lecture depuis $I_{\Sigma}$}
+ $d_1 \leftarrow I_{\Theta}(i,j)$ \tcc*[r]{lecture depuis $I_{\Theta}$}
+ $l_1 \leftarrow l$ \tcc*[r]{longueur de l'isoline}
+ $\sigma_1 \leftarrow (C_{x2}^1/l_1 - C_x^1)/l_1$\;
+ $(i_2, j_2) \leftarrow fin~du~premier~segment$\;
+ $(C_{x}^2, C_{x2}^2) \leftarrow I_{\Sigma}(i_2,j_2) $ \tcc*[r]{2$^{nd}$ segment}
+ $d_2 \leftarrow I_{\Theta}(i_2,j_2)$\;
+ $\sigma_2 \leftarrow (C_{x2}^2/l - C_x^2)/l$ \;
+ %
+ \While{$GLRT(\sigma_1, \sigma_2, l_1, l) < T_{max}$}{
+ $l_1 \leftarrow l_1 + l$ \tcc*[r]{allongement}
+ $(C_x^1, C_{x2}^1) \leftarrow (C_x^1, C_{x2}^1)+(C_x^2, C_{x2}^2)$\;
+ $\sigma_1 \leftarrow (C_{x2}^1/l_1 - C_x^1)/l_1$ \tcc*[r]{mise à jour}
+ $(i_1,j_1) \leftarrow (i_2, j_2)$ \tcc*[r]{décalage}
+ $d_1 \leftarrow d_2$\;
+ $(i_2, j_2) \leftarrow fin~du~segment~suivant$\;
+ \tcc*[f]{segment suivant}
+ $(C_{x}^2, C_{x2}^2) \leftarrow I_{\Sigma}(i_2,j_2) $\;
+ $d_2 \leftarrow I_{\Theta}(i_2,j_2)$\;
+ $\sigma_2 \leftarrow (C_{s2}^2/l - C_s^2)/l$ \;
+ }
+ }
+ $\widehat{I}(i, j) \leftarrow C_x^1/l_1$ \tcc*[r]{niveau de gris en sortie}
+\end{algorithm}
+
+Le processus d'allongement du modèle PI-PD est également soumis aux restrictions sur les oscillations et retours en arrière des segments, déjà énoncées pour le modèle PI-LD. Par ailleurs, nous lui avons ajouté la possibilité de gérer des segments plus épais, composés de 2 ou 3 segments parallèles aux motifs décrits par la matrice $P_d$. Pour l'épaisseur 2, on utilise chaque segment motif et le segment parallèle situé immédiatement avant (au sens trigonométrique), pour l'épaisseur 3, on ajoute le segment parallèle situé immédiatement après le motif. Cela a pour effet d'intégrer plus de pixels dans les calculs statistiques et d'augmenter en conséquence les gains sur le PSNR, en particulier pour traiter des images de grandes dimensions qui ne contiendraient pas de \textit{trop petits} détails que l'épaisseur des isolines risquerait de flouter.
+Cette possibilité rend notre solution encore plus versatile que la référence BM3D dont les temps de calcul s'avèrent prohibitifs sur des images de grandes dimensions, avec par exemple plus de 5 minutes pour 4096$\times$4096 pixels (Xeon quad core E31245\@3.3GHz, 8Go RAM).
+
+Toutefois, il demeure que l'isoline construite n'est pas nécessairement la plus vraisemblable pour tous les pixels de l'image, les optimisations étant faites sous l'hypothèse de robustesse énoncée au paragraphe \ref{subsection-pipd-intro}.
+
+\subsection{Modèle PI-PD hybride}
+
+Le manque de robustesse de la sélection des segments dans certaines zones provient du petit nombre de pixels impliqués dans les calculs statistiques. Ces régions sont celles où la pente de la surface définie par les niveaux de gris des pixels, pris comme élévations, est faible vis à vis du bruit qui perturbe l'image. Par souci de concision, nous nommons ces régions LSR (\textit{Low Slope Regions}, régions à faible pente).
+
+Pour illustrer ce comportement du modèle PI-PD, on peut sélectionner une région de petite taille (11$\times$11 pixels) au sein d'une image de test. La zone d'étude, repérée à la figure \ref{fig-lniv-lsr1}, est choisie pour ses propriétés particulières : deux \textit{plateaux} séparés par une transition nette, que l'on observe sur la représentation en trois dimensions de la figure \ref{fig-lniv-lsr-tirages-a}.
+\begin{figure}[h]
+ \centering
+\subfigure[Image de référence non bruitée.]{\includegraphics[height=4cm]{Chapters/chapter4/img/airplane.png}}\quad
+\subfigure[La région de 11$\times$11 pixels étudiée.]{\includegraphics[height=4cm]{Chapters/chapter4/img/zoom_windows_A.png}}
+\caption{Situation de la région servant à illustrer le comportant du modèle PI-PD dans les zones à faible pente (LSR).}
+\label{fig-lniv-lsr1}
+\end{figure}
+
+Les figures \ref{fig-lniv-lsr-tirages-b} et \ref{fig-lniv-lsr-tirages-c} montrent la même zone de l'image après qu'elle ait été corrompue par deux tirages d'un bruit gaussien de mêmes paramètres $\mu$ et $\sigma$. Les deux diagrammes \ref{fig-lniv-lsr-tirages-d} et \ref{fig-lniv-lsr-tirages-e} représentent quant à eux les directions primaires des isolines, modulo $\pi$, débutant en chaque pixel de la fenêtre. On observe que la détermination de la direction est robuste dans la bande de transition entre les LSR, alors que pour les LSR elles-mêmes, on constate une grande variabilité.
+
+\begin{figure}[h]
+ \centering
+\subfigure[Image de référence.]{\label{fig-lniv-lsr-tirages-a} \includegraphics{Chapters/chapter4/img/zoom_edge_ref2.jpg}}\quad
+\subfigure[Image corrompue par le tirage de bruit $n^{\circ}1$]{\label{fig-lniv-lsr-tirages-b} \includegraphics{Chapters/chapter4/img/zoom_edge_bruit.jpg}}\quad
+\subfigure[Image corrompue par le tirage de bruit $n^{\circ}2$]{\label{fig-lniv-lsr-tirages-c} \includegraphics{Chapters/chapter4/img/zoom_edge2_bruit.jpg}}\\
+\subfigure[Directions déterminées par le PI-PD pour le tirage $n^{\circ}1$]{\label{fig-lniv-lsr-tirages-d} \includegraphics{Chapters/chapter4/img/zoom_edge1_2D_superpose3.jpg}}\quad
+\subfigure[Directions déterminée par le PI-PD pour le tirage $n^{\circ}2$]{\label{fig-lniv-lsr-tirages-e} \includegraphics{Chapters/chapter4/img/zoom_edge2_2D_superpose2.jpg}}
+\caption{Comportement du modèle PI-PD dans les zones de faible et à forte pente. On constate un manque de robustesse dans les zones à faible pente : les directions ne sont pas reproduites d'un tirage à l'autre, contrairement à celles de la zone de transition.}
+\label{fig-lniv-lsr-tirages}
+\end{figure}
+
+Ainsi, dans les LSR, l'application du modèle PI-PD ne revêt donc que peu de sens, mais la quête de performance nous interdit d'y appliquer par exemple le modèle PI-LD décrit précédemment. Le meilleur estimateur dans une zone LSR étant la valeur moyenne, nous proposons donc, à la place :
+\begin{enumerate}
+\item d'identifier les zones à faible pente en concevant un kernel détecteur (\texttt{kernel\_LSR\_detector()}).
+\item d'appliquer un simple filtre moyenneur dans les zones désignées LSR par le détecteur et le PI-PD partout ailleurs.
+\item de n'appliquer le moyenneur que sur les pixels appartenant à la zone LSR lorsque la fenêtre du détecteur se trouve à cheval sur deux zones de types différents.
+\end{enumerate}
+
+\subsubsection{Le détecteur de zone à faible pente}
+
+Le principe retenu pour réaliser le détecteur de LSR est proche de celui mis en oeuvre pour valider les allongements des isolines : il s'agit de séparer la fenêtre d'observation autour du pixel considéré en deux régions, puis d'effectuer un test GLRT pour déterminer s'il est vraisemblable ou non que ces deux régions forment un seul et même plan. Pour garantir la prise en compte d'éventuelles transitions dans toutes les directions, il faut effectuer le test avec des séparations de fenêtre dont les directions couvrent toute la plage angulaire, de $0$ à $\pi$.
+
+L'utilisation d'un test GLRT semblable à celui de l'équation \eqref{GLRT} sous-entend que les ensembles considérés n'ont aucun pixel en commun. Afin d'éviter de devoir déterminer de nouveaux ensembles de pixels pertinents, nous avons utilisé les motifs de la matrice $P_d$, n'ayant pas d'intersection entre eux et de directions $\Theta_{4i} = 4i\frac{\pi}{4}$. Ces motifs remplissent les critères pour établir l'expression d'un critère GLRT.
+La ligne de séparation entre les deux régions de la fenêtre est donc composée par les motifs de directions $\Theta_{4i}$ et $\Theta_{4(i+4)}$. Ces deux régions sont respectivement nommées arbitrairement $T$ et $B$, $T$ étant représentée comme la région \textit{haute} et $B$ comme la région \textit{basse} sur le schéma explicatif de la figure \ref{fig-lniv-detecteur} où $\Theta_{4i}=\frac{\pi}{4}$ et où les pixels affectés d'une élévation nulle sont les pixels non impliqués dans le calcul du critère GLRT. En outre, les pixels de la limite sont supposés appartenir à la région $T$, ce qui implique qu'elle comprend au total les pixels correspondant à cinq motifs plus le pixel central, tandis que $B$ n'en comprend que l'équivalent de 3 motifs.
+
+\begin{figure}[ht]
+ \centering
+ \includegraphics[width =7cm]{Chapters/chapter4/img/pattern_detecteur-f.png}
+ \caption{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íntervnant pas dans la détection.}
+ \label{fig-lniv-detecteur}
+\end{figure}
+
+Les équations \eqref{LLNP}, \eqref{LLNP2} et \eqref{GLRT} nous permettent d'obtenir l'expression suivante pour le critère GLRT $T2$
+\begin{eqnarray}
+T2 = T2_{max}- (8l+1)\left[log\left(\widehat{\sigma_3}^2\right) - log\left(\widehat{\sigma_4}^2\right) \right]
+\label{GLRT2}
+\end{eqnarray}
+
+où $\widehat{\sigma_3}$ est l'estimation de l'écart type dans le cas où les deux demi régions en formeraient une seule et $\widehat{\sigma_4}$, l'estimation de l'écart type pour le cas où une transition serait détectée entre les deux. Leurs expressions sont donc :
+$$
+\begin{array}{l}
+\widehat{\sigma_3}^2 = \displaystyle\frac{1}{8l+1}\sum_{(i,j)\in T\cup B}\left( v(i,j) - \widehat{\mu_{T\cup B}} \right)^2 \\
+et\\
+\widehat{\sigma_4}^2 = \displaystyle\frac{1}{8l+1}\left(\sum_{(i,j)\in T}\left(v(i,j) - \widehat{\mu_{T}} \right)^2 + \sum_{(i,j)\in B}\left(v(i,j)- \widehat{\mu_{B}} \right)^2\right)
+\end{array}
+$$
+
+Le seuil de décision est noté $T2_{max}$ et d'après l'expression du critère \eqref{GLRT2}, une valeur négative du critère signifie la détection d'une transition. Ainsi, lorsque les valeurs du critère $T2$ sont connues pour toutes les 8 directions $\Theta_{4i} (i\in [0..7])$, la valeur du niveau de gris de sortie pour le pixel central est déterminée selon la stratégie suivante :
+\begin{itemize}
+\item si plus d'une valeur du critère est négative, alors on applique la valeur issue du modèle PI-PD.
+\item si une seule valeur du critère est négative, le pixel central est vraisemblablement situé sur une transition nette et on applique la valeur moyenne de la région $T$ à laquelle il appartient. Cela permet de garantir des transitions visuellement plus douces entre les zones où le PI-PD est appliqué et les zones moyennées.
+\item si aucune valeur du critère n'est négative, alors la région autour du pixel central est vraisemblablement une LSR. En conséquence, on applique la valeur moyenne de la zone.
+\end{itemize}
+
+La figure \ref{fig-lniv-classification} présente le résultat de la classification des pixels d'une image bruitée, pour $T2_{max}=2$. On y remarque en particulier que les pixels noirs, pour lesquels s'appliquera le PI-PD, sont situés sur des transitions bien définies.
+
+\begin{figure}[h]
+ \centering
+\subfigure[Image bruitée]{\includegraphics{Chapters/chapter4/img/airplane_noisy_small.jpg}}\qquad
+\subfigure[Classification des pixels. ]{\includegraphics{Chapters/chapter4/img/img_bords_T2_small.jpg}}
+\caption{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.}
+\label{fig-lniv-classification}
+\end{figure}
+
+
+Les détails d'implémentation du détecteur sont donnés par l'algorithme \ref{algo-lniv-detecteur}. Pour en optimiser les performances, les sommes individuelles $sum_{\Theta}$ sont pré-calculées aux lignes 7 à 10 pour les 8 motifs concernés. L'évaluation des 8 configurations angulaires est effectuée ensuite de la ligne 11 à la ligne 25.
+
+\begin{algorithm}[ht]
+\caption{Détecteur de zones à faible pente (LSR) \texttt{kernel\_LSR\_detector()}}
+\label{algo-lniv-detecteur}
+\ForEach(\tcc*[f]{\textbf{en parallèle}}){pixel $(i,j)$}{
+ $\Theta \leftarrow 0$\tcc*[r]{Indice de la direction}
+ $edgeCount \leftarrow 0$\;
+ $sumEdge \leftarrow 0$\;
+ $nT \leftarrow 5l+1$\;
+ $nB \leftarrow 3l$\;
+ \While{($\Theta < 32$) }{
+ $sum_{\Theta} \leftarrow \left(\displaystyle\sum_{(y,x)\in P_{l,\alpha}(i,j)} I_{n tex}(i+y,j+x), \displaystyle\sum_{(y,x)\in P_{l,\alpha}(i,j)} I^2_{n tex}(i+y,j+x)\right)$ \;
+ $\Theta \leftarrow \Theta + 4$\;
+ }
+ \While{($\Theta < 32$) }{
+ $sumT \leftarrow (I_{ntex}(i,j), I_{ntex}^2(i,j))$\;
+ $sumB \leftarrow (0,0)$ \;
+ \For{($\alpha=\Theta$ to $\alpha=\Theta+16$ par pas de $4$)}{
+ $sumT \leftarrow sumT + sum_{\Theta}$\;
+ }
+ \For{($\alpha=\Theta+20$ to $\alpha=\Theta+28$ par pas de $4$)}{
+ $sumB \leftarrow sumB + sum_{\Theta}$ \;
+ }
+ \If{($GLRT(sumT, nT, sumB, nB) > T2_{max}$)}{
+ $edgeCount \leftarrow edgeCount + 1$\;
+ $sumEdge \leftarrow sumT.x$\;
+ }
+ $\Theta \leftarrow \Theta + 4$\;
+ }
+ \tcc{niveau de gris de l'isoline}
+ \If{($edgeCount == 0$)}{
+ $\widehat{I}(i,j) \leftarrow \dfrac{(sumT.x + sumB.x)}{nT+nB}$ \tcc*[r]{LSR}
+ }
+ \If{($edgeCount == 1$)}{
+ $\widehat{I}(i,j) \leftarrow \dfrac{(sumEdge)}{nT}$
+ }
+ \If{($edgeCount > 1$)}{
+ $\widehat{I}(i,j) \leftarrow \widehat{I_{PIPD}}(i,j)$\tcc*[r]{PI-PD}
+ }
+ }
+\end{algorithm}
+
+
+\section{Résultats}