Update report.
[master-thesis.git] / rapport / main.tex
index f0dc797..ce6a0b6 100644 (file)
@@ -247,7 +247,7 @@ La parasitémie est établit en pourcentage comme étant le rapport entre nombre
        \label{fig:noyau-cytoplasme}
 \end{figure}
 
-Certains artefacts comme des débris ou des plaquettes peuvent venir se supperposer aux érythrocyte et être confondus avec des parasites. Ces cas peuvent être relativement fréquents et altérer significativement la parasitémie si comptés comme étant des cas positifs d'infection. La figure~\ref{fig:RBC-artefact} montre quelques exemple de faux positifs potentiels.
+Certains artefacts comme des débris ou des plaquettes peuvent venir se superposer aux érythrocyte et être confondus avec des parasites. Ces cas peuvent être relativement fréquents et altérer significativement la parasitémie si comptés comme étant des cas positifs d'infection. La figure~\ref{fig:RBC-artefact} montre quelques exemple de faux positifs potentiels.
 
 \begin{figure}[htbp]
        \centering
@@ -286,25 +286,30 @@ La figure~\ref{fig:processusComplet} montre le processus complet du traitement d
 
 \begin{figure}[htbp]
        \centering
-       \includegraphics[width=0.8\linewidth]{img/schema_processus_2.pdf}
+       \includegraphics[width=0.9\linewidth]{img/schema_processus_2.pdf}
        \caption{Le processus complet.}
        \label{fig:processusComplet}
 \end{figure}
 
-Dans le premier groupe, l'on va chercher à construire des ellipses qui correspondent le mieux aux bords des érythrocytes. Pour ce faire une estimation du rayon moyen est réalisée par granulométrie à l'aide d'une succession de fermeture par aire. La construction des ellipses utilise les pixels des bords des erytrocytes ainsi que son gradient, la méthode \emph{RANSAC} permet de créer un grand nombre d'ellipses candidates auquel un score est attribué. Finalement les ellipses sont élaguée en supprimant celles chevauchées par d'autres ellipses sont le score est supérieur.
+Dans le premier groupe, l'on va chercher à construire des ellipses qui correspondent le mieux aux bords des érythrocytes. Pour ce faire une estimation du rayon moyen est réalisée par granulométrie à l'aide d'une succession de fermeture par aire. La construction des ellipses utilise les pixels des bords des érythrocytes ainsi que son gradient, la méthode \emph{RANSAC} permet de créer un grand nombre d'ellipses candidates auquel un score est attribué. Finalement les ellipses sont élaguée en supprimant celles chevauchées par d'autres ellipses sont le score est supérieur.
 
-Dans le deuxième groupe, les zones colorées et sombre vont être extraites en comparant les valeurs d'intensité de l'image avec la moyenne d'intensité des éléments de l'avant-plan. Ces zones sombres correspondent aux leucocytes, aux plaquettes et à certains débris. Une fermeture morphoplogique, dont la taille de l'élément structurant est calculé en fonction du rayon moyen, va permettre de mettre en évidence le cytoplasme des parasites. Les noyaux sont, quant à eux, mis en évidence à l'aide d'une fermeture par aire.
+Dans le deuxième groupe, les zones colorées et sombre vont être extraites en comparant les valeurs d'intensité de l'image avec la moyenne d'intensité des éléments de l'avant-plan. Ces zones sombres correspondent aux leucocytes, aux plaquettes et à certains débris. Une fermeture morphologique, dont la taille de l'élément structurant est calculé en fonction du rayon moyen, va permettre de mettre en évidence le cytoplasme des parasites. Les noyaux sont, quant à eux, mis en évidence à l'aide d'une fermeture par aire.
 
-Le troisième groupe correspond à la mise en commun des informations du premier et du deuxième groupe afin de définir les erytrocytes et de les classer. La parasitémie est alors établit en calculant le rapport entre la population d'érythrocytes infecté et celle saine.
+Le troisième groupe correspond à la mise en commun des informations du premier et du deuxième groupe afin de définir les érythrocytes et de les classer. La parasitémie est alors établit en calculant le rapport entre la population d'érythrocytes infecté et celle saine.
 
 
 \section{Détail de la méthode}
 
 % filtrage préliminaire (taille d'un érythrocyte: 7.5 \micro~m)
 
-Les filtres gaussiens appliquées initialement vont permettre de supprimer une partie du bruit haute-fréquence. L'écart type de chaque filtre est choisi en fonction de la taille des objets. La taille d'un érytrocyte est d'environ 7.5~\textmu{m} et la taille d'un parasite d'environ 2.5~\textmu{m}. Des écarts types de 0.2~\textmu{m} et 0.15~\textmu{m} sont choisis pour pour la ségmentation des érytrocytes respectivement la ségmentation des parasites.
+Les filtres gaussiens appliquées initialement vont permettre de supprimer une partie du bruit haute-fréquence. L'écart type de chaque filtre est choisi en fonction de la taille des objets. La taille d'un érythrocyte est d'environ 7.5~\textmu{m} et la taille d'un parasite d'environ 2.5~\textmu{m}. Des écarts types de 0.22~\textmu{m} et 0.15~\textmu{m} sont choisis pour pour la segmentation des érythrocytes respectivement la segmentation des parasites.
 
-\subsection{Identification des érytrocytes}
+Il est également important de supprimer avant le traitement la partie d'intensité plus élevée se trouvant au centre des érythrocytes (visible sur la figure~\ref{fig:medical-globules-rouges}) sans quoi les fermetures (par aire ou morphologiques) faites pendant la granulométrie s'appliqueraient qu'à une partie de la cellule. De plus, cette particularité gêne également lors de la recherche des bords.
+
+Cela est fait en réalisant une ouverture par aire en estimant sa surface à partir du rayon calculé à partir de la résolution de l'image. Si, après la granulométrie, cette ouverture n'est pas suffisante (le rayon trouvé est supérieur à celui estimé via la résolution) alors une deuxième ouverture par aire est réalisée.
+
+\subsection{Identification des érythrocytes}
+\label{identification-erythrocytes}
 
 Le but de cette étape est d'identifier les érythrocytes. Le profil de ceux-ci est un disque biconcave et apparait de manière plus ou moins déformée sur les photographies. Ces déformations les font prendre une forme plus ou moins elliptique dont le rapport entre le grand axe et le petit axe n'excède pas 1.6 ($\pm 23~\%$ d'un rayon moyen).
 
@@ -319,10 +324,11 @@ Le résultat de cette recherche sera une liste d'ellipses pouvant se recouvrir p
 
 
 \subsubsection{Granulométrie}
+\label{granulometrie}
 
-L'objectif est de déterminer le rayon moyen des érytrocytes. Pour ce faire nous allons appliquer une série de fermetures par aire et calculer les différences des sommes des intensités de chaque pixel. Chaque aire est calculée comme étant celui d'un cercle de rayon donné. Les rayons des aires vont être compris autour d'un rayon estimé à partir de la résolution donnée initialement. Les bornes inférieure et supérieure correspondent au rayon estimé minoré de 50~\% respectivement au rayon estimé majoré de 50~\%.
+L'objectif est de déterminer le rayon moyen des érythrocytes. Pour ce faire nous allons appliquer une série de fermetures par aire et calculer les différences des sommes des intensités de chaque pixel. Chaque aire est calculée comme étant celui d'un cercle de rayon donné. Les rayons des aires vont être compris autour d'un rayon estimé à partir de la résolution donnée initialement. Les bornes inférieure et supérieure correspondent au rayon estimé minoré de 50~\% respectivement au rayon estimé majoré de 50~\%.
 
-La fermeture suppose ici que les erythrocytes on un niveau d'intensité plus bas que le fond, ce qui est le cas pour la composante verte dans toutes les images étudiées.
+La fermeture suppose ici que les érythrocytes on un niveau d'intensité plus bas que le fond, ce qui est le cas pour la composante verte dans toutes les images étudiées.
 
 Deux autres approches on également été essayées, à savoir la fermeture morphologique par un élément structurant en forme de disque et par un élément structurant de forme octogonale. Un des problèmes de ces deux approches est qu'elles ont tendance à sous-estimer légèrement le rayon moyen dans le cas d'éléments elliptiques. La figure~\ref{fig:granulometrie-ellipse-cercle-closing-comparaison} montre à gauche le résultat d'une granulometrie par aire (le cercle et l'ellipse ont la même aire) et à droite le résultat d'une granulometrie morphologique. Le rayon $r$ est plus proche de la moyenne entre les deux rayons de l'ellipse $a$ et $b$ que le rayon $r'$. Il est à noter que dans cet exemple $a = 2b$ et que donc $r = \sqrt{2}b = 1.41b$ ce qui n'est pas très éloigné de la moyenne $(a+b)/2 = (2+1)/2 = 1.5$.
 
@@ -345,6 +351,8 @@ Deux autres approches on également été essayées, à savoir la fermeture morp
 
 Un autre problème de la granulométrie à l'aide de fermetures morphologique utilisant un disque comme élément structurant est sa complexité algorithmique quadratique en fonction du rayon du disque comme le montre la figure~\ref{fig:spectre-granulométrique-morpho-cercle}. La figure~\ref{fig:spectre-granulométrique-morpho-cercle} montre un exemple de progression du temps de calcul en fonction du rayon. Une solution à ce problème est l'utilisation d'une approximation du cercle, l'octogone, dont la dilaté ou l'érodé par un autre octogone crée un nouvel octogone. L'associativité de l'erosion ou de la dilatation, montré par l'équation~\ref{eq:dilatation-associatif}, permet la décomposition d'une dilatation ($e_{1} \oplus e_{2}$) en plusieurs dilatations successives ($\oplus~e_{1}$ puis $\oplus~e_{2}$). Cela permet de réduire la complexité algorithmique et ainsi de gagner du temps.
 
+% TODO: Définition de la somme de Minkowski?
+
 {\setlength{\abovedisplayskip}{0pt}
 \begin{flalign} \label{eq:dilatation-associatif}
        f' = f \oplus (e_{1} \oplus e_{2}) = (f \oplus e_{1}) \oplus e_{2} &
@@ -407,14 +415,126 @@ Il faut remarquer que le spectre granulométrique par aire comporte un deuxième
        \label{fig:Granulometry-morpho-octagon}
 \end{figure}
 
-\subsubsection{Calcul du gradient}
+À partir du rayon moyen trouvé par granulométrie et des caractéristique des érythrocytes énoncées à la section~\ref{identification-erythrocytes}, les rayons minimum et maximum sont définis comme étant $rayon_{moyen} (1 + 0.23)$ et $rayon_{moyen} (1 - 0.23)$.
+
+
+\subsubsection{Recherche des bords des érythrocytes et calcul du gradient associé}
+
+La construction d'ellipses nécessite la connaissance au préalable des bords des érythrocytes ainsi que du gradient associé. Cela est réalisé à l'aide d'une procédure s'apparentant au filtre de Canny.
+
+Le gradient est définit comme étant deux composantes $g_x$ et $g_y$ en chaque point correspondant aux dérivés partielles en $x$ et en $y$ d'une image $f$ comme montré par l'équation~\ref{eq:composantes-gradient}.
+
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign} \label{eq:composantes-gradient}
+       \nabla f = \begin{pmatrix}g_x \\ g_y \end{pmatrix} = \begin{pmatrix}\partial f / \partial x \\ \partial f / \partial y \end{pmatrix}
+\end{flalign}
+
+Le filtre de Sobel permet d'obtenir une bonne approximation de ces deux composantes en appliquant deux convolutions avec les deux noyaux montrés à l'équation~\ref{eq:sobel-noyaux}. Une application sur une image réelle est montrée par la figure~\ref{fig:gradient}.
+
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign} \label{eq:sobel-noyaux}
+       K_x = \begin{pmatrix}-1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{pmatrix}, \quad K_y = K_x^\top = \begin{pmatrix}-1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \end{pmatrix}
+\end{flalign}
+
+La norme euclidienne en chaque point est obtenu par l'équation~\ref{eq:gradient-norme}. La méthode de Otsu est ensuite appliquée afin de calculer un seuil qui sera utilisé pour la définition des bords par hystérèse. 
+
+{\setlength{\abovedisplayskip}{0pt}
+\begin{flalign} \label{eq:gradient-norme}
+       M(x, y) = \| \nabla f \| = \sqrt{g_x^2 + g_y^2}
+\end{flalign}
+
+\begin{figure}[htbp]
+       \centering
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=1\linewidth]{img/gradient-exemple.jpg}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=1\linewidth,interpolate=false]{img/gradient-exemple.pdf}
+       \end{subfigure}
+       \caption{Une cellule dont le gradient de la partie jaune est montré à droite sous la forme d'un champ de vecteurs. Les bords sont également représentés}
+       \label{fig:gradient}
+\end{figure}
+
+Afin de ne garder que les crêtes, un algorithme de suppression des non-maxima est appliqué. Celui ci est illustré par le figure~\ref{fig:non-maximum-suppression-schema} et va, pour chaque élément de la norme, le comparer à ses voisins en définissant l'orientation de l'arête du bord comme étant la tangente perpendiculaire au gradient. Pour chaque coté de l'arête, une interpolation est calculée entre les deux éléments les plus proche de la droite ayant la même direction que le gradient et passant par l'élément traité. Par exemple, par rapport à la figure~\ref{fig:non-maximum-suppression-schema}, la valeur des voisins du haut est calculée comme étant $\tau = n_1 \cdot (1 - v_x/v_y) + n_2 \cdot v_x/v_y$ et celle des voisins du bas comme étant $\upsilon = n_4 \cdot (1 - v_x/v_y) + n_3 \cdot v_x/v_y$ où $v_x$ et $v_y$ sont les composantes du gradient au point traité $e$. Si la norme de $e$ est strictement plus grande que les valeurs $\tau$ et $\upsilon$ alors celui-ci sera définit comme étant un maxima. La figure~\ref{fig:nms} montre la valeur de la norme ainsi que les maximas mis en évidence.
+
+\begin{figure}[htbp]
+       \centering
+       \begin{subfigure}[t]{0.35\textwidth}
+               \includegraphics[width=1\linewidth,interpolate=false]{img/non-maximum-suppression-schema.pdf}
+               \caption{Les voisins ($n_1$, $n_2$, $n_3$, $n_4$) de $e$ qui vont être utilisés pour déterminé si $e$ est un maxima}
+               \label{fig:non-maximum-suppression-schema}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.35\textwidth}
+               \includegraphics[width=1\linewidth,interpolate=false]{img/nms.png}
+               \caption{Le résultat de l'application de la suppression des non-maxima. Les maximas sont mis en évidence en blanc et la norme du gradient est montré avec des niveaux d'intensité de gris}
+               \label{fig:nms}
+       \end{subfigure}
+       \caption{Suppression des non-maxima}
+       \label{fig:non-maximum-suppression}
+\end{figure}
+
+Le résultat obtenu par l'étape précédente, la suppression des non-maxima, va prendre en compte tous les bords et ceci indépendamment de la norme du gradient (inclinaison de la pente). Il est nécessaire maintenant de ne garder que les bords les plus pertinent, pour ce faire une recherche par hystérèse est appliquée en ne gardant, dans un premier temps, que les éléments dont la norme est supérieure au seuil obtenu précédemment par la méthode de Otsu majoré d'un pourcentage (par exemple 10~\%). Puis, dans un second temps, nous y ajoutons récursivement tous les éléments 8-connexes dont la norme est supérieure au seuil.
+
+Finalement, les zones 8-connexes dont la surface est supérieure à un facteur du rayon moyen sont supprimées afin d'éliminer les bords de faible longueur qui ne correspondent, en général, pas aux bords des érythrocytes.
+
+%\subsubsection{Recherche des bords des érythrocytes}
+
+\subsubsection{Construction d'ellipses}
+
+L'étape précédente nous fournit une matrice de vecteurs définissant le gradient. Les éléments dont le vecteur est non-nul constituent les bords des érythrocytes. 
+
+Une méthode proche de la méthode RANSAC~\ref{} (\emph{RANdom SAmple Consensus}) est appliquée qui consiste à faire glisser une fenêtre à travers la matrice et à tirer aléatoirement, un certain nombre de fois, trois points éloignés les uns des autres. À l'aide du gradient de deux des trois point il est éventuellement possible de construire une ellipse unique. Les ellipses ainsi construites sont alors ajoutées à l'ensemble des ellipses. Une fois la matrice entièrement traversée par la fenêtre, un score est attribué à chacune des ellipses en fonction de sa proximité aux autres ellipses. Finalement, les ellipses dont le score est trop faible, ou qui se trouve trop proche d'une ellipse ayant un score plus élevé sont supprimées.
+
+La taille de la fenêtre glissante est un carré dont la longueur des cotés correspond au rayon maximum (voir section~\ref{granulometrie}). La fenêtre va balayer toute la matrice de gauche à droite et de haut en bas. Un incrément d'un quart de sa dimension a été choisi. Pour chaque position un certain nombre de tirage de triplet de points non-égaux parmi les vecteurs non-nuls est effectué, ce nombre est égal à un coefficient multipliant le nombre courant d'élément du bord. Celui ci à été ajusté comme valant 1.
+
+\begin{figure}[htbp]
+       \centering
+       \includegraphics[width=0.6\linewidth]{img/construction-ellipse.pdf}
+       \caption{Le triplet de point $p_1$, $p_2$ et $p_3$ ainsi que les deux vecteurs du gradient $v_1$ et $v_2$ permettent possiblement la construction d'une ellipse.}
+       \label{fig:construction-ellipse}
+\end{figure}
+
+À partir de chaque triplet de point et des deux vecteurs du gradient au deux premiers points une ellipse va tenter d'être construite comme montrer par la figure~\ref{fig:construction-ellipse}. Tout d'abord il faut s'assurer que les deux vecteurs $v_1$ et $v_2$ pointent bien dans 
+
+\begin{figure}[htbp]
+       \centering
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=1\linewidth]{figures/ellipses/example-1-green-filtered.jpg}
+               \caption{}
+               \label{}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=1\linewidth]{figures/ellipses/example-2-edges.png}
+               \caption{}
+               \label{}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=1\linewidth]{figures/ellipses/example-3-all-ellipses.jpg}
+               \caption{}
+               \label{}
+       \end{subfigure}
+       ~
+       \begin{subfigure}[t]{0.4\textwidth}
+               \includegraphics[width=1\linewidth]{figures/ellipses/example-4-ellipses.jpg}
+               \caption{}
+               \label{}
+       \end{subfigure}
+       \caption{}
+       \label{}
+\end{figure}
 
-\subsubsection{Recherche des bords des érythrocytes}
 
-\subsubsection{Recherche d'ellipses}
 
 % RANSAC + scoring + pruning
 
+\subsubsection{Élagage des ellipses}
+
+% suppression uniquement
+
 
 \subsection{Segmentation des parasites}
 
@@ -433,6 +553,7 @@ Il faut remarquer que le spectre granulométrique par aire comporte un deuxième
 
 \section{Implémentation}
 
+% Float32