\documentclass[a4paper,10pt,twoside,titlepage]{article}

\usepackage[top=2.5cm, bottom=3cm, inner=5cm, outer=3cm]{geometry}

\usepackage[francais]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage{amssymb, amsmath, amsthm}
\usepackage[title,titletoc,toc]{appendix}

\usepackage{framed}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{listings}
\usepackage{url}
\usepackage{upquote} 
\usepackage{color}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{epstopdf}
\usepackage{fancyhdr}
\usepackage{courier}
\usepackage{pifont}
\usepackage{csquotes}
\usepackage{changepage}

\strictpagecheck

\lstset{basicstyle=\footnotesize\ttfamily,breaklines=true}
\lstset{framextopmargin=50pt,frame=bottomline}
\definecolor{matlabCommentColor}{RGB}{0, 100, 0} % Green
\definecolor{matlabStringColor}{RGB}{204, 34, 34} % Red
\lstset{language=Matlab,%
    breaklines=true,%
    morekeywords={matlab2tikz},
    keywordstyle=\color{blue},%
    morekeywords=[2]{1}, keywordstyle=[2]{\color{black}},
    identifierstyle=\color{black},%
    stringstyle=\color{matlabStringColor},
    commentstyle=\color{matlabCommentColor},
    showstringspaces=false,%without this there will be a symbol in the places where there is a space
    numbers=left,%
    numberstyle={\tiny \color{black}},% size of the numbers
    numbersep=9pt, % this defines how far the numbers are from the text
    emph=[1]{for,end,break},emphstyle=[1]\color{red}, %some words to emphasis
    %emph=[2]{word1,word2}, emphstyle=[2]{style},    
}

\newcommand{\mli}[1]{\mathit{#1}} % Multi-letter identifier.

\renewcommand{\appendixtocname}{Annexes} 

\pagestyle{fancy}
\fancyfoot[CE,CO]{}
\fancyfoot[LE,RO]{\thepage}

\begin{document}

\nocite{*} % Pour inclure toute la bibliographie (et pas seulement celle citée).

\begin{titlepage}
\begin{center}
\huge
\vspace*{1cm}
\textbf{Parasitémie automatisée de la malaria à partir d'images microscopiques}
\vspace{1cm}

\Large
Master of Science HES-SO in Engineering \\
\large
Technologie de l'information et de la communication


\vspace{1cm}

\includegraphics[width=3cm]{logos/hes-so_logo.jpg}

\vspace{0.5cm}

\includegraphics[width=4cm]{logos/mse_logo.jpg}


\vspace{8cm}

\large
Février 2016 - Révision n°1

\vspace{2cm}
\normalsize
Auteur : Grégory \textsc{Burri}\\
Prof. responsables : Michel \textsc{Kocher}, \textsc{Olivier Hüsser}

\vspace{2cm}
Master of Science HES-SO in  Engineering\\
Av. de Provence 6\\
CH-1007 Lausanne\\

\end{center}
\end{titlepage}

%%%%%%%%%%%%%%%%%%
% Page vide (derrière le titre).
\newpage
\thispagestyle{empty}
\null

%%%%%%%%%%%%%%%%%%
% Page contenant les signatures.
\newpage
\thispagestyle{empty}
\noindent
Accepté par la HES-SO//Master (Suisse, Lausanne) sur proposition de M. Kocher.

\vspace{0.5cm}
\noindent
Prof. Michel Kocher, conseiller du projet d'approfondissement\\
Dr. Philippe Thévenaz, expert principal

\vspace{1cm}

\noindent
Lausanne, le 

\vspace{1cm}

\noindent
\setlength{\tabcolsep}{30pt}
\begin{tabular}{ l l }
  Prof. Michel Kocher. & Prof.\\
  Conseiller & Responsable de la filière
\end{tabular}

\newpage

%%%%%%%%%%%%%%%%%%
% Page contenant le résumé et les mots-clefs.

\thispagestyle{empty}
\begin{center}
\textbf{Résumé}
\end{center}
Cet article a pour but la description et la mise en oeuvre d'une méthode automatique permettant l'établissement de la parasitémie de la malaria d'un patient à partir d'une ou plusieurs images microscopiques d'un frottis sanguin.

\vspace{5cm}


\begin{center}
\textbf{Mots-clefs}
\end{center}
\og{}malaria\fg{}, \og{}paludisme\fg{}, \og{}parasitémie\fg{}, \og{}taux d'infection\fg{}, \og{}logiciel\fg{}
\newpage


\thispagestyle{empty}
\tableofcontents
\newpage

%%%%%%%%%%%%%%%%%%
\checkoddpage
\ifoddpage
\else
	\thispagestyle{empty}
	\cleardoublepage % Devrait être \newpage, mais ça ne marche pas...
\fi

\section{Introduction}

% TODO: Future dans l'intro?

Le but de ce projet est d'établir une méthode complète et non-supervisée afin de dénombrer les erythrocytes et de les classer en deux catégories de cellules à savoir les saines et les infectées. Celle ci sera ensuite implémentée sous la forme d'un logiciel qui puisse être facilement utilisé par une personne avec un minimum de connaissance en informatique.

Cette réalisation est faite en partenariat avec le laboratoire de parasitologie du CHUV 

Images 100x
Images 50x

CHUV

\subection{Parasitémie de la malaria}

% Parlé du cycle de développement, à quel stade de développement on compte les rbc infecté, etc..


\subsection{Images}

Les images initiales correspondent à des photographies de sang infecté agrandies 100 fois. Une \emph{coloration de May-Grünwald Giemsa} est utilisée afin de faire ressortir les parasites avec une teinte particulière. Les éléments principaux composant les images sont : les globules rouges (figure~\ref{fig:medical-globules-rouges}), les globules blancs (figure~\ref{fig:medical-globules-blancs}), les plaquettes (figure~\ref{fig:medical-plaquettes}) et les différentes formes du parasite (figure~\ref{fig:medical-plasmodium}).

\begin{figure}[htbp]
	\centering
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/medical_globules_rouges.jpg}
		\caption{Globules rouges (\emph{érythrocyte})}
		\label{fig:medical-globules-rouges}
	\end{subfigure} 
	~
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/medical_globules_blancs.jpg}
		\caption{Globules blancs (\emph{leucocyte})}
		\label{fig:medical-globules-blancs}
	\end{subfigure}
	~	
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/medical_plaquettes.jpg}
		\caption{Plaquette (\emph{thrombocyte})}
		\label{fig:medical-plaquettes}
	\end{subfigure}
	\caption{Les éléments principaux composant le sang}
	\label{fig:medical-elements-sang}
\end{figure}

Dans le cycle de vie du parasite \emph{Plasmodium}, responsable de la malaria, celui-ci passe par une étape d'alimentation active (trophozoïte) où il va se loger à l'intérieur des globules rouges. Puis il va subir la schizogonie (reproduction asexuée) et va se développer en schizonte. Ces étapes sont montrées par la figure~\ref{fig:medical-plasmodium}. 

Notre but est de dénombrer les globules rouges sains ainsi que ceux infectés par des trophozoïtes immatures en début de croissance, comme montré par la figure~\ref{fig:medical-plasmodium_1}.

\begin{figure}[htbp]
	\centering
	\begin{subfigure}[t]{0.2\textwidth}
		\includegraphics[width=\linewidth]{img/medical_plasmodium_1.jpg}
		\caption{Trophozoïte immature (anneau)}
		\label{fig:medical-plasmodium_1}
	\end{subfigure} 
	~
	\begin{subfigure}[t]{0.2\textwidth}
		\includegraphics[width=\linewidth]{img/medical_plasmodium_2.jpg}
		\caption{Maturation du trophozoïte}
		\label{fig:medical-plasmodium_2}
	\end{subfigure}
	~	
	\begin{subfigure}[t]{0.2\textwidth}
		\includegraphics[width=\linewidth]{img/medical_plasmodium_3.jpg}
		\caption{Trophozoïte mature}
		\label{fig:medical-plasmodium_3}
	\end{subfigure}
	~	
	\begin{subfigure}[t]{0.2\textwidth}
		\includegraphics[width=\linewidth]{img/medical_plasmodium_4.jpg}
		\caption{Schizonte}
		\label{fig:medical-plasmodium_4}
	\end{subfigure}
	\caption{Les différents stades de l'infection d'un globule rouge}
	\label{fig:medical-plasmodium}
\end{figure}


\section{Outils utilisés}

Cette section aborde brièvement la description des différents outils morphologiques ainsi que les logiciels qui ont permis de mettre en pratique le processus.


\subsection{Outils morphologiques}

Une grande partie du processus décrit dans ce document s'appuie sur la morphologie mathématique\footnote{Georges Matheron et Jean Serra - 1964}\cite{Talbot-Morphologie}\cite{Manzanera-Morphologie}, ici appliquée au traitement d'images.

Nous passons en revue un certain nombre d'opérateurs qui sont utilisés dans le processus. Pour chacun d'entre eux, nous donnons une brève explication, une définition formelle et la fonction correspondante utilisée dans \emph{MATLAB}.


\subsubsection{Définitions de base}

Nous définissions tout d'abord l'image $E$ comme étant un sous-ensemble à deux dimensions de $\mathbb{Z}$ puis $B$ comme un sous-ensemble de $E$ que nous nommons \emph{élément structurant}. $B_x$ correspond à $B$ translaté de $x$ dont $x$ appartient à $E$. $\breve{B}$ est l'élément symétrique de $B$, si l'élément $B$ est symétrique,  alors $\breve{B} = B$.

{\setlength{\abovedisplayskip}{0pt}
\begin{flalign*}
	E &= \mathbb{Z}^2 & \\
	B_x &= \{ b + x \mid b \in B \} & \\
	\breve{B} &= \{ -b \mid b \in B \} &
\end{flalign*}

\subsubsection{Dilatation et érosion}

La dilatation est définie comme la somme de \emph{Minkowski} et nommée $\delta$. L'érosion est nommée $\epsilon$.

{\setlength{\abovedisplayskip}{0pt}
\begin{flalign*}
	\delta_B(X) &= X \oplus B = \{ x \mid \breve{B}_x \cap{X} \neq \emptyset \} &\\
	\epsilon_B(X) &= X \ominus B = \{x \mid B_x \subset X \} &
\end{flalign*}

Les deux fonctions \emph{MATLAB} associées sont \texttt{mmdil} et \texttt{mmero}.


\subsubsection{Ouverture et fermeture}

L'ouverture et la fermeture sont définies à partir de dilatation et d'érosion et sont nommées $\gamma$, respectivement $\phi$.

{\setlength{\abovedisplayskip}{0pt}
\begin{flalign*}
	\gamma_B(X) &= X \circ B = \delta_B (\epsilon_B (X)) &\\
	\phi_B(X) &= X \bullet B = \epsilon_B (\delta_B (X)) &
\end{flalign*}

Les deux fonctions \emph{MATLAB} associées sont \texttt{mmopen} et \texttt{mmclose}.


\subsubsection{Ouverture et fermeture par aire}

L'ouverture et la fermeture par aire sont nommées $\gamma_{\lambda{}B}$ et $\phi_{\lambda{}B}$. Ces opérateurs permettent de raboter les bosses, respectivement de combler les trous ayant une aire égale ou inférieure à $\lambda$ et dont chaque élément est connexe à au moins un autre par l'élément structurant $B$.

La figure~\ref{fig:fermeture-par-aire} illustre cela en montrant une vue en deux dimensions de deux fermetures ayant pour valeur $\lambda_1$ et $\lambda_2$.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.5\linewidth]{img/schema_fermeture_par_aire.eps}
	\caption{Vue en deux dimensions de deux fermetures par aire ayant des valeurs de $\lambda$ différentes}
	\label{fig:fermeture-par-aire}
\end{figure}

Les deux fonctions \emph{MATLAB} associées sont \texttt{mmareaopen} et \texttt{mmareaclose}.


\subsubsection{Reconstruction par dilatation}

Une reconstruction par dilatation est réalisée sur une image $G$ à partir d'un marqueur $F$ et d'un élément structurant $B$. Elle consiste à l'application successive de dilatations sur $F$ à l'aide de $B$ en ne gardant que les éléments appartenant à $G$ jusqu'à idempotence.

{\setlength{\abovedisplayskip}{0pt}
\begin{flalign*}
	F_0 &= F &\\
	F_{n+1} &= (F_n \oplus B) \cap G &
\end{flalign*}

La fonction \emph{MATLAB} associée est \texttt{mminfrec}.


\subsubsection{Ligne de partage des eaux}

La ligne de partage des eaux (\emph{watersheds} en anglais) consiste à considérer une image comme une surface en trois dimensions où les valeurs d'intensité correspondent à des hauteurs puis à remplir progressivement les creux avec de l'eau jusqu'à que toute l'image soit entièrement remplie. Lorsque deux bassins se rejoignent pendant la montée des eaux, une digue est construite. L'ensemble des digues représente alors le résultat final.

Dans notre cas, nous utilisons des marqueurs pour définir à partir de quels creux l'eau est injectée.

La fonction \emph{MATLAB} associée est \texttt{mmcwatershed}.


\subsubsection{Maximaux régionaux}

Les maximaux régionaux d'une image sont définis comme suit. La première ligne correspond à la définition de la connectivité des éléments de $M$. $B$ est un élément structurant.

{\setlength{\abovedisplayskip}{0pt}
\begin{flalign*}
	\begin{cases}
		\forall p \in M & \text{si } f(p) = t, \quad \exists p' \in M, \quad p' \neq p, \quad p' \in (p \oplus B) \\
		\forall p \in (M \oplus B) \setminus M & \text{si } f(p) < t 
	\end{cases}&&
\end{flalign*}
 
La fonction \emph{MATLAB} associée est \texttt{mmregmax}. La figure \ref{fig:regmax_sample} montre un exemple d'application de cette fonction à l'aide d'un élément structurant carré de taille 5.

\begin{figure}[htbp]
	\centering
	\begin{subfigure}[b]{0.38\textwidth}
		\includegraphics[width=\linewidth]{img/regmax_sample.eps}
		\caption{Image à laquelle est appliquée la fonction \texttt{mmregmax}. Les pixels noires valent zéro}
		\label{fig:regmax_sample_original}
	\end{subfigure} 
	~
	\begin{subfigure}[b]{0.15\textwidth}
		\includegraphics[width=\linewidth]{img/regmax_sample_se.eps}
		\caption{L'élément structurant : un carré de taille 5 symétrique}
		\label{fig:regmax_sample_se}
	\end{subfigure}
	~	
	\begin{subfigure}[b]{0.38\textwidth}
		\includegraphics[width=\linewidth]{img/regmax_sample_result.eps}
		\caption{Le résultat de l'application de \texttt{mmregmax}. Les pixels noires valent zéro}
		\label{fig:regmax_sample_result}
	\end{subfigure}
	\caption{Exemple d'application de la fonction \texttt{mmregmax}. Les deux pixels de valeur 5 forment une zone connexe : celle-ci est écartée car la dilaté du pixel de valeur 8 par l'élément structurant contient un des pixels de valeur 5}
	\label{fig:regmax_sample}
\end{figure}

\subsection{Outils logiciels}

L'implémentation est réalisée à l'aide de \emph{MATLAB 2015a}. Les différentes fonctions morphologiques (préfixées par \texttt{mm}) proviennent de la bibliothèque nommée \emph{SDC Morphology Toolbox for MATLAB}\footnote{\url{http://mmorph.com/}}.


\section{Approche générale}

Le processus complet est illustré par la figure \ref{fig:processusComplet}. Les différents chiffres correspondent aux étapes décrites ci-après. Il y a deux phases principales : le traitement des éléments colorés (étapes 1 à 3) et la segmentation des globules rouges (étapes 4 et 5).

La première étape (\ding{192}) consiste à détecter les éléments qui ont été colorés comprenant les parasites, les globules blancs et les plaquettes. Les parasites peuvent se trouver à l'extérieur de cellules, par exemple groupés sous la forme de schizontes.

Les deuxième et troisième étapes (\ding{193} et \ding{194}) consistent à chercher et à extraire les globules blancs, respectivement les schizontes.

La quatrième étape (\ding{195}) va segmenter les globules rouges.

La cinquième étape (\ding{196}) consiste à reconstruire les globules rouges parasités à partir des parasites marqués de la première étape (\ding{192}) et de la segmentation de la quatrième étape (\ding{195}) .

La sixième et dernière étape va compter le nombre de globules rouges total et de globules rouges infectés afin de calculer le rapport entre ces deux valeurs.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=1\linewidth]{img/schema_processus.eps}
	\caption{Le processus complet.}
	\label{fig:processusComplet}
\end{figure}


\section{Détail du processus}

Le processus est actuellement réalisé sur des images réduites de 40~\% à l'aide d'une interpolation bicubique par rapport à la taille originale afin d'augmenter la vitesse de l'ensemble du processus. La taille des images traitées après réduction est de 1167 x 1556. Voir la figure \ref{fig:imgRGB}. 

La qualité du résultat final n'est pas très affectée par la diminution de la taille des images : sur l'ensemble des douze images présentées à la section~\ref{resultats}, nous obtenons un taux d'erreur moyen de 17.9~\% pour les images originales contre 18.2~\% pour les images réduites. Le taux mesuré de référence est de 16.9 \%. Le temps moyen est de 485~s pour les images originales contre 78~s pour les images réduites.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\linewidth]{img/imgRGB.png}
	\caption{Image originale en entrée ($\mli{imgRGB}$)}
	\label{fig:imgRGB}
\end{figure}

Tout au long de cette description nous lions certains résultats d'opération à des noms de variables issues du code \emph{MATLAB} (fourni en annexe). Ceci afin de pouvoir facilement retrouver le détail de ces opérations dans le code et de faciliter le suivi de l'enchaînement des opérations.

\subsection{Détection des parasites}
\label{detection-parasites}

Cette opération a pour but de marquer les éléments colorés qui correspondent aux parasites, schizontes et globules blancs. Nous utilisons ici les composantes \emph{teinte} et \emph{saturation} de l'image.

\subsubsection{Filtrage préliminaire}

Il est nécessaire, pour la suite du traitement, d'avoir les intensités les plus élevées pour les éléments colorés pour les deux composantes \emph{teinte} et \emph{valeur}. Pour se faire nous allons utiliser le négatif des deux composantes. De plus la composante \emph{teinte} est translatée de $100 / 255$ (141°) afin que les différents éléments de l'image, à savoir le fond, les cellules et les parties colorées, ne soient pas proches des valeurs extrêmes, voir l'histogramme montré par la figure \ref{fig:histogram_imgH}. $\mli{imgRGB} \rightarrow (\mli{imgH}, \mli{imgS})$.

Les histogrammes des deux images $\mli{imgH}$ et $\mli{imgS}$ sont montrés par les figures \ref{fig:histogram_imgH} et \ref{fig:histogram_imgS}. L'histogramme de la teinte montre un premier sommet vers 80 correspondant au fond et un deuxième sommet vers 88 correspondant aux cellules, Les éléments colorés se trouvent aux environs de 120. L'histogramme de la saturation montre un premier sommet vers 128 correspondant aux cellules et un deuxième sommet vers 150 correspondant au fond : les éléments colorés se trouvent aux environs de 200.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\linewidth]{img/histogram_imgH.eps}
	\caption{Histogramme de la teinte ($\mli{imgH}$)}
	\label{fig:histogram_imgH}
\end{figure}

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\linewidth]{img/histogram_imgS.eps}
	\caption{Histogramme de la saturation ($\mli{imgS}$)}
	\label{fig:histogram_imgS}
\end{figure}

Afin de gommer le bruit et de rendre le fond plus homogène, un filtre médian 5 x 5 puis une fermeture par aire de 1000 sont appliqués à $\mli{imgH}$ et $\mli{imgS}$. $\mli{imgH} \rightarrow \mli{imgFiltered\{1\}}, \mli{imgS} \rightarrow \mli{imgFiltered\{2\}}$. Les figures \ref{fig:imgHFiltered} et \ref{fig:imgSFiltered} montrent les composantes \emph{teinte} et \emph{saturation} après filtrage.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\linewidth]{img/imgHFiltered.jpg}
	\caption{Composante \emph{teinte} après filtrage ($\mli{imgFiltered\{1\}}$) représentée en fausse couleur}
	\label{fig:imgHFiltered}
\end{figure}

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\linewidth]{img/imgSFiltered.jpg}
	\caption{Composante \emph{saturation} après filtrage ($\mli{imgFiltered\{2\}}$) représentée en fausse couleur}
	\label{fig:imgSFiltered}
\end{figure}


\subsubsection{Granulométrie}

L'objectif ici est de déterminer le rayon moyen des globules rouges (souvent abrégé \emph{RBC} pour \emph{red blood cell}). Pour ce faire, nous réalisons une succession de fermetures à l'aide d'un élément structurant de forme octogonale sur la composante \emph{saturation} ($\mli{imgFiltered\{2\}}$). Il est à noter que les globules rouges ont une intensité moindre que le fond (voir la figure~\ref{fig:imgSFiltered}) : c'est pour cela que nous utilisons une fermeture et non une ouverture.  Nous évitons ici un élément structurant ayant la forme d'un disque pour des raisons de performance, une fermeture avec ce dernier demandant d'effectuer beaucoup plus de calculs. Une ouverture par aire de 1000 est appliquée au préalable sur la composante \emph{saturation} afin de niveler l'intensité des cellules.

\begin{sloppypar} % Pour éviter que certaines formules inline débordent dans la marge.
Nous partons d'un rayon initial de 1 pour arriver à un rayon maximal de $\mli{width}(\mli{imgRGB}) / 35$. Le rayon maximal est défini en fonction de la largeur de l'image, ce qui permet de ne pas être dépendant de sa résolution. À chaque itération une fermeture est effectuée suivi du calcul du volume relatif de l'image : $\mli{volume}(\mli{imgClosed}) \rightarrow A, 1 - A / \mli{volImg} \rightarrow N$ où $\mli{volImg}$ est le volume de $\mli{imgFiltered\{2\}}$. La différence de volume (spectre granulométrique) est calculée pour chaque itération $i$ comme suit : $\lvert N_{i + 1} - N_i \rvert$.
\end{sloppypar}

Nous définissons le rayon moyen des globules rouges ($\mli{RBCRadius}$) comme étant le rayon de l'élément structurant correspondant à la valeur maximale parmi le spectre granulométrique. Le rayon moyen du noyau des parasites est impossible à extraire des différences de volume : nous le calculons comme étant un cinquième de la taille des globules rouges : $\mli{RBCRadius} / 5 \rightarrow \mli{nucleiRadius}$. La figure \ref{fig:patternSpectrum} montre le graphique d'un spectre granulométrique. Dans ce cas $\mli{RBCRadius}$ est égal à 35 et $\mli{nucleiRadius}$ à 7.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\linewidth]{img/pattern_spectrum_granulometry.eps}
	\caption{Spectre granulométrique}
	\label{fig:patternSpectrum}
\end{figure}

\subsubsection{Segmentation des éléments colorés}

Afin d'identifier les éléments colorés, une recherche des maximaux régionaux est réalisée sur les deux composantes \emph{teinte} et \emph{saturation} à l'aide d'un élément structurant octogonal de rayon $\mli{RBCRadius}$. Les deux résultats sont ensuite dilatés de $\mli{nucleiRadius}$ puis combinés avec une intersection.

{\setlength{\abovedisplayskip}{0pt}
\begin{flalign*}
   \mli{M\{1\}} &= \mli{regmax}(\mli{imgFiltered\{1\}}, \mli{RBCRadius}) &\\
   \mli{M\{2\}} &= \mli{regmax}(\mli{imgFiltered\{2\}}, \mli{RBCRadius}) &\\
   \mli{MHS} &= (\mli{M\{1\}} \oplus \mli{nucleiRadius}) \cap (\mli{M\{2\}} \oplus \mli{nucleiRadius}) &
\end{flalign*}

Nous allons ensuite seuiller les deux composantes puis combiner les résultats avec une intersection. Le seuil de chaque image, $\mli{{\mu}H}$ et ${\mu}S$, est déterminé comme étant la moyenne des valeurs de l'image désignée par le masque $\mli{MHS}$.

{\setlength{\abovedisplayskip}{0pt}
\begin{flalign*}
	\mli{MHS}_{vol} &= \displaystyle\sum_{p \in \mli{MHS}}p &\\
	\mli{{\mu}H} &= \frac{\displaystyle\sum_{p \in \mli{MHS}} H(p)}{\mli{MHS}_{vol}} & où~H &= \mli{imgFiltered\{1\}} &\\
	\mli{{\mu}S} &= \frac{\displaystyle\sum_{p \in \mli{MHS}} S(p)}{\mli{MHS}_{vol}} & où~S &= \mli{imgFiltered\{2\}} &
\end{flalign*}

La teinte et la saturation sont seuillées à l'aide des valeurs $\mli{{\mu}H}$, respectivement $\mli{{\mu}S}$. Nous obtenons alors les images $\mli{TH}$ et $\mli{TS}$ que nous combinons comme suit pour obtenir $\mli{THS}$. L'ouverture par aire permet d'éliminer les toutes petites traces qui représentent dans la majorité des cas du bruit. La figure \ref{fig:THS} montre $\mli{THS}$ en blanc imprimé sur l'image d'entrée.

{\setlength{\abovedisplayskip}{0pt}
\begin{flalign*}
	\mli{THS} &= \gamma_{10}(\mli{TH} \cap \mli{TS}) &
\end{flalign*}

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\linewidth]{img/THS.jpg}
	\caption{Les éléments colorés mis en évidence ($\mli{THS}$)}
	\label{fig:THS}
\end{figure}


\subsection{Détection des globules blancs}

Cette opération utilise l'image de marquage des éléments colorés ($\mli{THS}$) ainsi que la taille des globules rouges ($\mli{RBCRadius}$). Les globules blancs sont tout d'abord marqués à l'aide d'une érosion utilisant un élément structurant octogonal dont la taille correspond à 50 \% de celle des globules rouges ($0.5 \cdot \mli{RBCRadius}$). Puis une reconstruction par dilatation des éléments colorés en utilisant le marqueur précédent permet de ne garder que les globules blancs.

Finalement nous lissons le résultat en réalisant une fermeture suivie d'une ouverture afin de fermer les petits trous qui pourraient rester. Le résultat est appelé $\mli{WBC}$ et est montré par la figure \ref{fig:WBC}.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\linewidth]{img/WBC.jpg}
	\caption{Le gradient des globules blancs imprimé sur l'image originale ($\mli{WBC}$)}
	\label{fig:WBC}
\end{figure}


\subsection{Détection des schizontes}

Pour détecter les schizontes, nous utilisons l'image de marquage des éléments colorés ($\mli{THS}$) ainsi que la taille des globules rouges ($\mli{RBCRadius}$). Nous allons ici plus loin que l'article et créons un graphe non-orienté dont les arcs représentent une \emph{distance de Hausdorff} égale ou plus petite à 1.3 fois le rayon des globules rouges entre deux sous-ensembles. Nous cherchons alors les sous-ensembles connexes de plus de $n$ éléments et les marquons comme étant des schizontes. Dans notre cas $n$ est égal à 6. Il est important de ne pas utiliser un nombre trop bas car des cellules poly-infectées pourraient être considérées comme des schizontes : la figure \ref{fig:poly-et-schizonte} illustre cela.

\begin{figure}[htbp]
	\centering
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/poly-infected_cell.jpg}
		\caption{Globule rouge poly-infecté, quatre sous-ensembles}
		\label{fig:regmax_sample_original}
	\end{subfigure} 
	~
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/schizonte.jpg}
		\caption{Un schizonte, sept sous-ensembles}
		\label{fig:schizonte}
	\end{subfigure}
	\caption{Comparaison entre le nombre de sous-ensembles d'une cellule poly-infectée et d'un schizonte}
	\label{fig:poly-et-schizonte}
\end{figure}

Pour savoir si deux sous-ensembles, $A$ et $B$, sont à une \emph{distance de Hausdorff} égale ou plus petite que $k$, il faut que $B \subseteq A \oplus \mli{SE_k}$ et que $A \subseteq B \oplus \mli{SE_k}$ où $\mli{SE_k}$ est un élément structurant ayant la forme d'un disque de diamètre $k$.

\subsection{Segmentation des globules rouges}
\label{segmentation-globules-rouges}

Le but ici est de séparer les globules rouges : nous utilisons l'image initiale ($\mli{imgRGB}$), le rayon des globules rouges ($\mli{RBCRadius}$), les globules blancs ($\mli{WBC}$) et les schizontes ($\mli{schizonts}$). Pour ce faire nous utilisons dans un premier temps une segmentation par ligne de partage des eaux à l'aide d'une transformée en distance. Nous séparons ensuite les segments en deux groupes, un groupe dont chaque élément représente une unique cellule et un autre groupe dont chaque élément représente un composé de cellules. Les cellules des éléments composés sont ensuite séparées : le résultat est uni aux cellules uniques et les éléments touchant les bords sont enlevés afin d'obtenir le résultat final.

Durant le processus, nous avons besoin de définir le rayon minimum d'un globule rouge ainsi que son aire. Le rayon minimum est défini comme étant 75~\% du rayon nominal, comme montré ci-dessous.

{\setlength{\abovedisplayskip}{0pt}
\begin{flalign*}
	\mli{RBCRadiusMin} &= \lfloor 0.75 \cdot \mli{RBCRadius} \rfloor &\\
	\mli{RBCRadiusMinArea} &= \pi \cdot \mli{RBCRadiusMin}^2 &
\end{flalign*}


\subsubsection{Filtrage préliminaire}

Nous utilisons ici la composante verte de l'image à laquelle nous appliquons une ouverture par aire avec une zone de taille $\mli{RBCRadiusMinArea}$. Les globules blancs ($\mli{WBC}$) ainsi que les schizontes ($\mli{schizonts}$) sont \og{}soustraits\fg{} de l'image : le résultat est nommé $\mli{grayFlat}$ comme montré par la figure~\ref{fig:segmentation-grayflat}.

{\setlength{\abovedisplayskip}{0pt}
\begin{flalign*}
	\mli{grayFlat} &= \gamma_{\mli{RBCRadiusMinArea}}(\mli{green}(\mli{imgRGB})) \setminus \mli{WBC} \setminus \mli{schizonts} &
\end{flalign*}

La figure~\ref{fig:segmentation-histogramme-grayflat} montre l'histogramme de $\mli{grayFlat}$. Un \emph{seuillage d'Otsu} lui est appliqué suivi d'une ouverture par un disque de rayon $\mli{RBCRadiusMin}$ afin d'adoucir les contours et d'enlever tous les éléments plus petits qu'un globule rouge.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\linewidth]{img/segmentation_input_grayflat.jpg}
	\caption{Composante verte dont l'intensité des cellules a été homogénéisée à l'aide d'une ouverture par aire. Les globules blancs et les schizontes ont été peints en blanc ($\mli{grayFlat}$)}
	\label{fig:segmentation-grayflat}
\end{figure}

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\linewidth]{img/histogram_segmentation_grayFlat.eps}
	\caption{Histogramme de la composante verte de $\mli{imgRGB}$ après l'application d'une ouverture par aire et de la \og{}suppression\fg{} des globules blancs et des schizontes}
	\label{fig:segmentation-histogramme-grayflat}
\end{figure}


\subsubsection{Calcul des distances et ligne de partage des eaux}

Après le seuillage des globules rouges, certaines régions comprennent deux ou plusieurs globules rouges qu'il faut séparer. Pour ce faire nous appliquons une transformée en distance (\texttt{mmdist}) qui permet de donner une distance à chaque pixel blanc. Cette distance correspond à la plus courte distance euclidienne entre le pixel blanc et un pixel noir. Nous cherchons ensuite les maximaux régionaux de l'image en distance en utilisant un élément structurant octogonal dont le rayon est la moitié de $\mli{RBCRadius}$. Une dilatée d'un disque de rayon $\mli{RBCRadius} / 7$ est alors appliquée aux maximaux pour fusionner d'éventuelles zones très proches. L'algorithme de recherche de la ligne de partage des eaux est appliqué au négatif des distances en utilisant les maximaux dilatés comme marqueurs. Finalement l'intersection entre le négatif de la ligne de partage des eaux et de $\mli{thresholdOpened}$ correspond au résultat. La figure~\ref{fig:segmentation-watershed} montre les étapes de ce processus.

\begin{figure}[htbp]
	\centering
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/segmentation_watershed_1.jpg}
		\caption{Image binaire initiale ($\mli{thresholdOpened}$)}
		\label{fig:segmentation-watershed-1}
	\end{subfigure} 
	~
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/segmentation_watershed_2.jpg}
		\caption{Superposition de trois images : les distances, les maximaux et sa dilaté}
		\label{fig:segmentation-watershed-3}
	\end{subfigure}
	~	
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/segmentation_watershed_3.jpg}
		\caption{Image après découpe de l'image initiale avec le résultat de la ligne de partage des eaux}
		\label{fig:segmentation-watershed-3}
	\end{subfigure}
	\caption{Wastershed par transformé en distance}
	\label{fig:segmentation-watershed}
\end{figure}


\subsubsection{Identification et traitement des cellules composées}

Afin d'identifier les zones composées de plusieurs cellules nous calculons le rapport grand-axe / petit-axe pour chacune des zones : si le rapport d'une zone est plus grand ou égal à 1.3, alors la zone est définie comme étant composée.

La figure~\ref{fig:segmentation-composites} montre le processus de séparation d'une zone composée de plusieurs cellules : ce processus est décrit ci-après.

Une ouverture à l'aide d'un disque de rayon $\mli{RBCRadiusMin}$ est appliquée à $\mli{gray}$ en utilisant les zones composées comme masque. Le résultat est montré par la figure \ref{fig:segmentation-composites-3}. Un gradient morphologique suivi d'une binarisation sont réalisés pour obtenir l'image de la figure \ref{fig:segmentation-composites-4}. Les trous d'une aire plus petite ou égale à la moitié de $\mli{RBCRadiusMinArea}$ sont remplis avec une ouverture par aire puis un amincissement est appliqué. Nous remplissons ensuite les trous de l'amincissement et mettons à zéro les pixels marqués par celui-ci. Nous érodons le résultat afin d'éviter que les cellules composées ne touchent les cellules uniques lors de l'union qui aura lieu après. Finalement une ouverture par aire de valeur $\mli{RBCRadiusMinArea} / 5$ est effectuée pour enlever d'éventuels artefacts, comme montré par la figure~\ref{fig:soustraction-thinning}.

% L'exemple provient de 1401063467-0007-schizonte.png (x: 900, y: 50).
\begin{figure}[htbp]
	\centering
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/segmentation_composites_1.jpg}
		\caption{Composante verte ($\mli{gray}$)}
		\label{fig:segmentation-composites-1}
	\end{subfigure} 
	
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/segmentation_composites_2.jpg}
		\caption{Image binaire des éléments composés, obtenue à partir de $\mli{grayFlat}$}
		\label{fig:segmentation-composites-2}
	\end{subfigure}
	~	
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/segmentation_composites_3.jpg}
		\caption{Ouverture de \emph{(a)} en utilisant \emph{(b)} comme masque}
		\label{fig:segmentation-composites-3}
	\end{subfigure}	
	~
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/segmentation_composites_4.jpg}
		\caption{Gradient morphologique}
		\label{fig:segmentation-composites-4}
	\end{subfigure} 
	
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/segmentation_composites_5.jpg}
		\caption{Remplissage des trous}
		\label{fig:segmentation-composites-5}
	\end{subfigure}
	~	
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/segmentation_composites_6.jpg}
		\caption{Amincissement}
		\label{fig:segmentation-composites-6}
	\end{subfigure}
	~
	\begin{subfigure}[t]{0.3\textwidth}
		\includegraphics[width=\linewidth]{img/segmentation_composites_7.jpg}
		\caption{Fermeture par aire puis mise à zéro des pixels marqués par \emph{(f)}}
		\label{fig:segmentation-composites-7}
	\end{subfigure}
	\caption{Processus de séparation des cellules composées}
	\label{fig:segmentation-composites}
\end{figure}

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\linewidth]{img/splitting_composites.jpg}
	\caption{Résultat de l'amincissement soustrait de son remplissage. De petits artefacts, ici marqués en jaune, restent présents. S'ils ne sont pas enlevés, ceux-ci seront comptés comme des cellules à part entière lors de la labellisation finale}
	\label{fig:soustraction-thinning}
\end{figure}


\subsubsection{Résultat final}

Les deux résultats précédents, c'est-à-dire les cellules uniques et les zones composées de plusieurs cellules sont unies. Les zones touchant les bords sont supprimées afin d'obtenir le résultat final. Son gradient imprimé sur l'image initiale est montré par la figure~\ref{fig:segmentation_finale}. Le résultat est nommé $\mli{redCells}$.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\linewidth]{img/segmentation_finale.jpg}
	\caption{Le gradient du résultat de la segmentation des globules rouges imprimé sur l'image initiale ($\mli{redCells}$)}
	\label{fig:segmentation_finale}
\end{figure}

\subsection{Identification des globules rouges infectés}

À partir du résultat de la segmentation des globules rouges obtenu à la section~\ref{segmentation-globules-rouges} et des éléments colorés obtenus à la section~\ref{detection-parasites} nous pouvons reconstruire les cellules infectées par une succession de dilatations des éléments colorés puis de masquages par les globules rouges. Ceci est réalisé à l'aide de la fonction \texttt{mminfrec}. Le résultat est nommé $\mli{infectedRedCells}$.

La figure~\ref{fig:globules_rouges_infectes} montre les globules rouges infectés.

\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.8\linewidth]{img/globules_rouges_infectes.jpg}
	\caption{Le gradient des globules rouges imprimé sur l'image originale ($\mli{infectedRedCells}$)}
	\label{fig:globules_rouges_infectes}
\end{figure}



\subsection{Calcul du taux d'infection}

Les deux images $\mli{redCells}$ et $\mli{infectedRedCells}$ sont labellisées afin d'obtenir le nombre total de globules rouges ($\mli{nbRedCells}$) et le nombre de globules rouges infectés ($\mli{nbInfectedRedCells}$). Le pourcentage d'infection est le rapport de ces deux valeurs : $100 \cdot \mli{nbInfectedRedCells} / \mli{nbRedCells}$.


\section{Résultats}
\label{resultats}

\subsection{Qualité des images en entrée}

La première étape, décrite à la section~\ref{detection-parasites} et qui consiste à marquer les éléments colorés, est très sensible à la qualité de l'image initiale. Suivant les réglages du microscope et du logiciel de capture associé, les éléments colorés peuvent ressortir avec une plus grande ou une plus faible saturation par rapport au fond et aux globules rouges. De plus la teinte des éléments colorés peut être similaire à la celle du fond : la figure~\ref{fig:problemes-teinte} montre une image dont la teinte est inexploitable.

\begin{figure}[htbp]
	\centering
	\begin{subfigure}[t]{0.4\textwidth}
		\includegraphics[width=\linewidth]{img/problemes_teinte_input.jpg}
		\caption{Image en entrée}
		\label{fig:problemes-teinte-input}
	\end{subfigure} 
	~
	\begin{subfigure}[t]{0.4\textwidth}
		\includegraphics[width=\linewidth]{img/problemes_teinte_composante.jpg}
		\caption{Composante teinte}
		\label{fig:problemes-teinte-composante}
	\end{subfigure}
	
	\begin{subfigure}[t]{0.6\textwidth}
		\includegraphics[width=\linewidth]{img/histogram_probleme_teinte.eps}
		\caption{Histogramme de la composante \emph{teinte} de l'image complète. Les éléments colorés se situent entre l'intensité 190 et 200 (mis en évidence en rouge) et se confondent avec le fond}
		\label{fig:problemes-teinte-histogramme}
	\end{subfigure}
	\caption{}
	\label{fig:problemes-teinte}
\end{figure}


\subsection{Méthode}

Les résultats se basent sur l'analyse d'un ensemble d'images provenant d'un même patient : le taux d'infection devrait donc être homogène entre les différentes images. Pour mesurer la qualité de nos détections, un dénombrement réalisé à la main est effectué, puis celui-ci est comparé à nos détections automatisées. La différence entre le résultat issu de la détection et la réalité est alors calculée et nommée \emph{erreur}.

Finalement, nous calculons les moyennes et les écarts types des erreurs, et des deux taux, celui de référence et celui détecté.

\subsection{Échantillon n°1412151257}

Les tableaux \ref{tab:resultats60} et \ref{tab:resultats100} montrent les résultats du processus appliqué à des images réduites de 40~\%, respectivement à des images originales.

\begin{table}[htbp]
\setlength{\tabcolsep}{3pt}
\centering
\begin{tabular}{ r || r | r | r || r | r | r || r || r }
	 & \multicolumn{3}{ c| }{Mesuré} & \multicolumn{3}{ c| }{Détecté} & & \\ \cline{2-8}
	N° & Total & Infectés & Taux & Total & Infectés & Taux & Erreur & t~[s] \\ \cline{1-9}
	0013 & 150 & 22 & 14.7~\% & 153 & 23 & 15.0~\% &  2.5~\% & 68 \\
	0014 & 132 & 18 & 13.6~\% & 131 & 18 & 13.7~\% &  0.8~\% & 65 \\
	0036 & 133 & 20 & 15.0~\% & 135 & 21 & 15.6~\% &  3.4~\% & 70 \\
	0038 & 116 & 19 & 16.4~\% & 117 & 19 & 16.2~\% & -0.9~\% & 68 \\
	0039 & 136 & 26 & 19.1~\% & 137 & 27 & 19.7~\% &  3.1~\% & 79 \\
	0040 & 128 & 19 & 14.8~\% & 128 & 18 & 14.1~\% & -5.3~\% & 78 \\
	0041 & 120 & 26 & 21.7~\% & 121 & 27 & 22.3~\% &  3.0~\% & 89 \\
	0042 & 135 & 26 & 19.3~\% & 144 & 30 & 20.8~\% &  8.2~\% & 82 \\
	0043 & 128 & 20 & 15.6~\% & 132 & 27 & 20.5~\% & 30.9~\% & 80 \\
	0044 & 133 & 25 & 18.8~\% & 135 & 25 & 18.5~\% & -1.5~\% & 86 \\
	0045 & 136 & 22 & 16.2~\% & 136 & 28 & 20.6~\% & 27.3~\% & 84 \\
	0046 & 127 & 29 & 22.8~\% & 128 & 27 & 21.1~\% & -7.6~\% & 85
\end{tabular}
\caption{Résultats sur les images réduites de 40~\%}
\label{tab:resultats60}
\end{table}


\begin{table}[htbp]
\setlength{\tabcolsep}{3pt}
\centering
\begin{tabular}{ r || r | r | r || r | r | r || r || r }
	 & \multicolumn{3}{ c| }{Mesuré} & \multicolumn{3}{ c| }{Détecté} & & \\ \cline{2-8}
	N° & Total & Infectés & Taux & Total & Infectés & Taux & Erreur & t~[s] \\ \cline{1-9}
	0013 & 150 & 22 & 14.7~\% & 153 & 22 & 14.4~\% & -2.0~\% & 429 \\
	0014 & 132 & 18 & 13.6~\% & 136 & 19 & 14.0~\% &  2.5~\% & 462 \\
	0036 & 133 & 20 & 15.0~\% & 135 & 21 & 15.6~\% &  3.4~\% & 431 \\
	0038 & 116 & 19 & 16.4~\% & 118 & 19 & 16.1~\% & -1.7~\% & 447 \\
	0039 & 136 & 26 & 19.1~\% & 136 & 27 & 19.9~\% &  3.8~\% & 463 \\
	0040 & 128 & 19 & 14.8~\% & 131 & 18 & 13.7~\% & -7.4~\% & 458 \\
	0041 & 120 & 26 & 21.7~\% & 122 & 27 & 22.1~\% &  2.1~\% & 526 \\
	0042 & 135 & 26 & 19.3~\% & 142 & 27 & 19.0~\% & -1.3~\% & 483 \\
	0043 & 128 & 20 & 15.6~\% & 128 & 25 & 19.5~\% & 25.0~\% & 515 \\
	0044 & 133 & 25 & 18.8~\% & 137 & 25 & 18.2~\% & -2.9~\% & 505 \\
	0045 & 136 & 22 & 16.2~\% & 144 & 30 & 20.8~\% & 28.8~\% & 538 \\
	0046 & 127 & 29 & 22.8~\% & 126 & 27 & 21.4~\% & -6.2~\% & 557
\end{tabular}
\caption{Résultats sur les images originales (non-réduites)}
\label{tab:resultats100}
\end{table}

Le taux moyen d'infection réel est de 17.3~\% et le taux détecté avec des images réduites de 40~\% est de 18.2~\%. Ces données sont présentées dans le tableau~\ref{tab:resultats}.

\begin{table}[htbp]
\setlength{\tabcolsep}{3pt}
\centering
\begin{tabular}{ l | r | r | r }
	& Réel & 40~\% & 100~\% \\ \cline{2-4}
	Taux de cellules infectées moyen détecté & 17.3~\% & 18.2~\% & 17.9~\% \\
%	Écart type sur le taux de cellules infectées moyen détecté & 2.9~\% & 3.1~\% & 3.0~\% \\ 
	\cline{1-4}
	Erreur moyenne & & 5.3~\% & 3.7~\% \\
%	Écart type sur l'erreur & & 11.9~\% & 11.4~\% \\ 
	\cline{1-4}
	Temps moyen & & 78~s & 485~s
\end{tabular}
\caption{Résultats résumant les tables \ref{tab:resultats60} et \ref{tab:resultats100}. La colonne 40~\% correspond aux images réduites. La colonne 100~\% correspond aux images originales}
\label{tab:resultats}
\end{table}


\section{Conclusion}

Par la mise en pratique de la méthode décrite dans \emph{Analysis of infected blood cell images using morphological operators}\cite{DiRuberto-Analysis-infected-blood-morphological} nous avons pu démontrer sa pertinence et son efficacité. Quelques modifications ont dû être apportées telles que les critères de détection des schizontes ou encore l'utilisation d'une transformée en distance pour la définition des marqueurs de l'algorithme de la ligne de partage des eaux lors de la segmentation des globules rouges.

De plus, une des difficultés majeures a été d'obtenir une image initiale ayant des composantes \emph{teinte} et \emph{saturation} satisfaisantes. Cette première étape de détection des éléments colorés reste très dépendante de la qualité et des caractéristiques de l'image d'entrée.

Néanmoins, une fois de bons réglages effectués sur le système de capture d'image du microscope, les résultats du processus, en terme de taux d'infection, correspondent à ce qui est attendu. Sur le cas analysé (n°1412151257), à partir de douze captures, nous obtenons une différence de taux de 5.3~\% pour les images réduites et de 3.7~\% pour les images non-réduites.


\bibliographystyle{plain}
\bibliography{main}


\end{document}
