\usepackage{subcaption}
\usepackage{listings}
\usepackage{url}
-\usepackage{upquote}
+\usepackage{upquote}
\usepackage{color}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{fancyhdr}
\lstdefinelanguage{FSharp}%
-{morekeywords={let, new, match, with, rec, open, module, namespace, type, of, member, %
+{morekeywords={let, new, match, with, rec, open, module, namespace, type, of, member, %
and, for, while, true, false, in, do, begin, end, fun, function, return, yield, try, %
mutable, if, then, else, cloud, async, static, use, abstract, interface, inherit, finally },
otherkeywords={ let!, return!, do!, yield!, use!, var, from, select, where, order, byte, bool, int, string },
\lstdefinestyle{fsharp}{
rulecolor = \color{light-gray},
frameround = tttt,
- numbers = left,
- numbersep = 8pt,
- frame = single,
- language = FSharp,
+ numbers = left,
+ numbersep = 8pt,
+ frame = single,
+ language = FSharp,
basicstyle = \ttfamily\footnotesize,
framexleftmargin = 15pt,
framextopmargin = 3pt}
-
+
\lstdefinestyle{tt}{
rulecolor = \color{light-gray},
frameround = tttt,
- numbersep = 8pt,
- frame = single,
+ numbersep = 8pt,
+ frame = single,
basicstyle = \ttfamily\footnotesize,
framexleftmargin = 5pt,
framextopmargin = 3pt}
\newcommand{\mli}[1]{\mathit{#1}} % Multi-letter identifier.
-\renewcommand{\appendixtocname}{Annexes}
+\renewcommand{\appendixtocname}{Annexes}
\urldef{\parasitemiasource}\url{http://private.gburri.org/CHUV/Parasitemia-1.0.7-source.zip}
\urldef{\parasitemiaexe}\url{http://private.gburri.org/CHUV/Parasitemia-1.0.7.zip}
\vspace{1cm}
\noindent
-Lausanne, le
+Lausanne, le
\vspace{1cm}
\includegraphics[width=\linewidth]{figures/medical_globules_rouges.jpg}
\caption{Érythrocyte (globule rouge).}
\label{fig:medical-globules-rouges}
- \end{subfigure}
+ \end{subfigure}
~
\begin{subfigure}[t]{0.3\textwidth}
\includegraphics[width=\linewidth]{figures/medical_globules_blancs.jpg}
\caption{Leucocyte (globule blanc).}
\label{fig:medical-globules-blancs}
\end{subfigure}
- ~
+ ~
\begin{subfigure}[t]{0.3\textwidth}
\includegraphics[width=\linewidth]{figures/medical_plaquettes.jpg}
\caption{Thrombocyte (plaquette).}
\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 érythrocytes. 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}.
+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 érythrocytes. 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}.
\begin{figure}[htbp]
\centering
\includegraphics[width=\linewidth]{figures/medical_plasmodium_1.jpg}
\caption{Trophozoïte immature (anneau).}
\label{fig:medical-plasmodium_1}
- \end{subfigure}
+ \end{subfigure}
~
\begin{subfigure}[t]{0.2\textwidth}
\includegraphics[width=\linewidth]{figures/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]{figures/medical_plasmodium_3.jpg}
\caption{Trophozoïte mature.}
\label{fig:medical-plasmodium_3}
\end{subfigure}
- ~
+ ~
\begin{subfigure}[t]{0.2\textwidth}
\includegraphics[width=\linewidth]{figures/medical_plasmodium_4.jpg}
\caption{Schizonte.}
\includegraphics[width=\linewidth]{figures/RBC-plaquette.jpg}
% \caption{Thrombocyte.}
\label{fig:RBC-artefact-plaquette}
- \end{subfigure}
+ \end{subfigure}
~
\begin{subfigure}[t]{0.2\textwidth}
\includegraphics[width=\linewidth]{figures/RBC-debris-1.jpg}
% \caption{Débris.}
\label{fig:RBC-artefact-debris-1}
\end{subfigure}
- ~
+ ~
\begin{subfigure}[t]{0.2\textwidth}
\includegraphics[width=\linewidth]{figures/RBC-debris-2.jpg}
% \caption{Débris.}
\label{fig:RBC-artefact-debris-2}
\end{subfigure}
- ~
+ ~
\begin{subfigure}[t]{0.2\textwidth}
\includegraphics[width=\linewidth]{figures/RBC-debris-3.jpg}
% \caption{Débris.}
\includegraphics[width=\linewidth]{figures/image-source-RGB.jpg}
\caption{Image originale.}
\label{fig:image-source-RGB}
- \end{subfigure}
+ \end{subfigure}
~
\begin{subfigure}[t]{0.4\textwidth}
\includegraphics[width=\linewidth]{figures/image-source-red.jpg}
\caption{Composante rouge, les parasites sont bien contrastés.}
\label{fig:image-source-red}
- \end{subfigure}
+ \end{subfigure}
~
\begin{subfigure}[t]{0.4\textwidth}
\includegraphics[width=\linewidth]{figures/image-source-green.jpg}
\caption{Composante verte, les érythrocytes sont bien contrastés.}
\label{fig:image-source-green}
- \end{subfigure}
+ \end{subfigure}
~
\begin{subfigure}[t]{0.4\textwidth}
\includegraphics[width=\linewidth]{figures/image-source-blue.jpg}
\caption{Composante bleue, non-utilisée.}
\label{fig:image-source-blue}
- \end{subfigure}
+ \end{subfigure}
~
\caption{Les différentes composantes de l'image.}
\label{fig:image-source}
\includegraphics[width=\linewidth]{figures/granulometrie-ellipse-cercle-closing-area.pdf}
\caption{Cercle dont la surface est égale à celle de l'ellipse.}
\label{fig:granulometrie-ellipse-cercle-closing-area}
- \end{subfigure}
+ \end{subfigure}
~
\begin{subfigure}[t]{0.4\textwidth}
\includegraphics[width=\linewidth]{figures/granulometrie-ellipse-cercle-closing-morpho.pdf}
\caption{Cercle dont \emph{r} est égal au petit rayon \emph{a} de l'ellipse.}
\label{fig:granulometrie-ellipse-cercle-closing-morpho}
- \end{subfigure}
+ \end{subfigure}
\caption{Comparaison du rayon d'un cercle trouvé par une ouverture par aire d'une ellipse (à gauche) avec celui trouvé par une ouverture morphologique (à droite).}
\label{fig:granulometrie-ellipse-cercle-closing-comparaison}
\end{figure}
Il faut remarquer que le spectre granulométrique par aire comporte un deuxième sommet au rayon 44 qui correspond à certains amas de cellules. Il est nécessaire d'éviter de traiter des images comprenant trop de cellules se touchant. En pratique, ce cas ne survient pas car l'image est alors trop peu lisible pour être exploitée.
\begin{figure}[htbp]
- \centering
+ \centering
\begin{subfigure}[t]{0.48\textwidth}
\includegraphics[width=1\linewidth]{figures/Granulometry-pattern-spectrum-area.pdf}
\caption{Spectre granulométrique d'une succession d'ouvertures par aire.}
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 obtenue 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.
+La norme euclidienne en chaque point est obtenue 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}
b_1 &= -m_1 p_{1_x} + p_{1_y} \\
b_2 &= -m_2 p_{2_x} + p_{2_y} \\
d_1(x) &= y = m_1 x + b_1 \\
- d_2(x) &= y = m_2 x + b_2 \\
- p_{0_x} &= -(b_1 - b_2) / (m_1 - m_2) \\
+ d_2(x) &= y = m_2 x + b_2 \\
+ p_{0_x} &= -(b_1 - b_2) / (m_1 - m_2) \\
p_{0_y} &= -(m_2 b_1 - m_1 b_2) / (m_1 - m_2) \label{eq:p0-fin}
\end{flalign}
-La construction d'une ellipse est décrite ci-après. Dans le repère projectif $\{\upsilon_0, \upsilon_1, \upsilon_2, \upsilon_3\}$ lié à la conique, $\upsilon_0 = \begin{pmatrix}1 & p_{0_x} & p_{0_y}\end{pmatrix}, \; \upsilon_1 = \begin{pmatrix}1 & p_{1_x} & p_{1_y}\end{pmatrix}, \; \upsilon_2 = \begin{pmatrix}1 & p_{2_x} & p_{2_y}\end{pmatrix}, \; \upsilon_3 = \begin{pmatrix}1 & p_{3_x} & p_{3_y}\end{pmatrix}$. Si $p_0$ est à l'infini alors $\upsilon_0 = \begin{pmatrix}0 & * & *\end{pmatrix}$. L'équation de la conique est la suivante :
+La construction d'une ellipse est décrite ci-après. Dans le repère projectif $\{\upsilon_0, \upsilon_1, \upsilon_2, \upsilon_3\}$ lié à la conique, $\upsilon_0 = \begin{pmatrix}1 & p_{0_x} & p_{0_y}\end{pmatrix}, \; \upsilon_1 = \begin{pmatrix}1 & p_{1_x} & p_{1_y}\end{pmatrix}, \; \upsilon_2 = \begin{pmatrix}1 & p_{2_x} & p_{2_y}\end{pmatrix}, \; \upsilon_3 = \begin{pmatrix}1 & p_{3_x} & p_{3_y}\end{pmatrix}$. Si $p_0$ est à l'infini alors $\upsilon_0 = \begin{pmatrix}0 & * & *\end{pmatrix}$. L'équation de la conique est la suivante :
{\setlength{\abovedisplayskip}{0pt}
\begin{flalign}
La distance maximum à laquelle doit se trouver un élément appartenant aux cytoplasmes d'un élément appartenant aux noyaux correspond au diamètre d'un parasite. On choisit ici le diamètre et non le rayon car le noyau ne se trouve pas au centre du parasite mais dans sa périphérie. Le diamètre d'une parasite a été mesuré comme environ le rayon d'un érythrocyte. La surface minimum des éléments du cytoplasme est fixée à 2~\% de l'aire moyen des érythrocytes. Pour établir ces deux limites, nous utilisons le rayon moyen obtenu lors de la granulométrie.
-La parasitémie est finalement calculée en pourcentage comme étant le nombre d'érythrocytes infectés divisé par le nombre d'érythrocytes sains, le tout multiplié par 100 :
+La parasitémie est finalement calculée en pourcentage comme étant le nombre d'érythrocytes infectés divisé par le nombre d'érythrocytes total (sains + infectés), le tout multiplié par 100 :
{\setlength{\abovedisplayskip}{0pt}
\begin{flalign}
- \mli{Parasitémie}_{\%} = 100 \; \frac{\#\{\mli{érythrocytes_{sains}}\}}{\#\{\mli{érythrocytes_{infectés}}\}}
+ \mli{Parasitémie}_{\%} = 100 \; \frac{\#\{\mli{érythrocytes_{infecté}}\}}{\#\{\mli{érythrocytes_{sains} + érythrocytes_{infecté}}\}}
\end{flalign}
La figure~\ref{fig:exemple-classification} montre les différentes données utilisées lors de la classification.
\subsubsection{Calculs en parallèle}
-Au sein du module \texttt{ParasitemiaCore.Analysis} se trouve la fonction pour lancer l'analyse d'une image :
+Au sein du module \texttt{ParasitemiaCore.Analysis} se trouve la fonction pour lancer l'analyse d'une image :
\begin{lstlisting}[style=fsharp, numbers = none]
let doAnalysis (img: Image<Bgr, byte>) (name: string) (config: Config) (reportProgress: (int -> bool) option) : Cell list option = [..]
\begin{algorithm}
\DontPrintSemicolon
- \caption{Ouverture par aire sur une image contenant des réels.}
+ \caption{Ouverture par aire sur une image contenant des réels.}
\label{alg:ouverture-par-aire}
-
+
\SetKwInOut{Input}{Entrée}
\SetKwInOut{Output}{Sortie}
-
+
\Input{une image $img$ et une aire $A$}
\Output{l'ouvert de $img$}
$\mli{iles} \leftarrow $ maxima($img$) \;
Passe à l'ile suivante \;
}
\Else{
- $i$.surface $\leftarrow$ $i$.surface $+$ $i'$.surface \;
+ $i$.surface $\leftarrow$ $i$.surface $+$ $i'$.surface \;
$i$.niveau $\leftarrow$ $i'$.niveau \;
Le rivage de $i'$ est ajouté à celui de $i$ et $i'$ est supprimé \;
}
\label{fig:comparaison-2}
\end{figure}
-La méthode de \emph{Ma} a également tendance à compter certains débris comme étant des parasites. Cela se voit sur le tableau~\ref{tab:resultats-parasites} pour l'image n°12 et est illustré par la figure~\ref{fig:comparaison-3}.
+La méthode de \emph{Ma} a également tendance à compter certains débris comme étant des parasites. Cela se voit sur le tableau~\ref{tab:resultats-parasites} pour l'image n°12 et est illustré par la figure~\ref{fig:comparaison-3}.
\begin{figure}[htbp]
\centering
L'apriori de forme, comme la transformée de Hough dans le domaine des cercles utilisé par \emph{Ma et al.}\cite{ma2010}, donne de meilleurs résultats qu'une approche purement morphologique telle que celle décrite par \emph{C. Di Ruberto et al.}\cite{di-ruberto2001}. Les érythrocytes ayant tendance à s'aplatir ou à se tourner, les résultats sont encore meilleurs avec un apriori de forme elliptique tel que montré dans ce papier.
-La méthode de \emph{Ma} utilise beaucoup de paramètres interdépendants liés à la résolution spatiale et à la taille de l'image. Celle-ci est ajustée automatiquement par décimation afin d'avoir une taille connue à l'avance. Cela rend la méthode difficile à utiliser avec des images ayant des résolutions spatiales différentes de celle prévue.
+La méthode de \emph{Ma} utilise beaucoup de paramètres interdépendants liés à la résolution spatiale et à la taille de l'image. Celle-ci est ajustée automatiquement par décimation afin d'avoir une taille connue à l'avance. Cela rend la méthode difficile à utiliser avec des images ayant des résolutions spatiales différentes de celle prévue.
\emph{Ma} et \emph{Di Ruberto} utilisent un seuillage global qui fonctionne, par exemple avec la méthode de Otsu, et qui pose problème lorsqu'une illumination est présente. Ce problème est contourné par \emph{Purwar et al.}\cite{purwar2011} qui applique la méthode décrite par \emph{Tony Chan et Luminita Vese}\cite{Chan-vese2001} pour la segmentation des érythrocytes.