1 \documentclass[a4paper,
10pt,twoside,titlepage
]{article
}
3 \usepackage[top=
2.5cm, bottom=
3cm, inner=
5cm, outer=
3cm
]{geometry
}
5 \usepackage[francais
]{babel
}
6 \usepackage[utf8
]{inputenc}
7 \usepackage[T1]{fontenc}
10 \usepackage{amssymb, amsmath, amsthm
}
11 \usepackage[title,titletoc,toc
]{appendix
}
13 \usepackage[french,onelanguage,vlined,linesnumbered
]{algorithm2e
}
18 \usepackage{subcaption
}
23 \usepackage[usenames,dvipsnames
]{xcolor
}
28 \usepackage{changepage
}
32 \lstset{basicstyle=
\footnotesize\ttfamily,breaklines=true
}
33 \lstset{framextopmargin=
50pt,frame=bottomline
}
34 \definecolor{matlabCommentColor
}{RGB
}{0,
100,
0} % Green
35 \definecolor{matlabStringColor
}{RGB
}{204,
34,
34} % Red
38 \lstdefinelanguage{FSharp
}%
39 {morekeywords=
{let, new, match, with, rec, open, module, namespace, type, of, member,
%
40 and, for, while, true, false, in, do, begin, end, fun, function, return, yield, try,
%
41 mutable, if, then, else, cloud, async, static, use, abstract, interface, inherit, finally
},
42 otherkeywords=
{ let!, return!, do!, yield!, use!, var, from, select, where, order, byte, bool, int, string
},
43 keywordstyle=
\color{blue
}\bfseries,
47 xleftmargin=
\parindent,
48 aboveskip=
\bigskipamount,
50 morecomment=
[l
][\color{OliveGreen
}]{///
},
51 morecomment=
[l
][\color{OliveGreen
}]{//
},
52 morecomment=
[s
][\color{OliveGreen
}]{{(*}{*)}},
54 showstringspaces=false,
56 stringstyle=
\color{red
},
59 \definecolor{light-gray
}{gray
}{0.7}
61 \lstdefinestyle{fsharp
}{
62 rulecolor =
\color{light-gray
},
68 basicstyle =
\ttfamily\footnotesize,
69 framexleftmargin =
15pt,
70 framextopmargin =
3pt
}
73 rulecolor =
\color{light-gray
},
77 basicstyle =
\ttfamily\footnotesize,
78 framexleftmargin =
5pt,
79 framextopmargin =
3pt
}
81 \newcommand{\mli}[1]{\mathit{#1}} % Multi-letter identifier.
83 \renewcommand{\appendixtocname}{Annexes
}
85 \urldef{\parasitemiasource}\url{http://private.gburri.org/CHUV/Parasitemia-
1.0.6-source.zip
}
86 \urldef{\parasitemiaexe}\url{http://private.gburri.org/CHUV/Parasitemia-
1.0.6.zip
}
87 \urldef{\parasitemiasetup}\url{http://private.gburri.org/CHUV/Parasitemia-
1.0.0.6-Setup.exe
}
88 \urldef{\imagesmesures}\url{http://private.gburri.org/CHUV/Images-mesures.zip
}
92 \fancyfoot[LE,RO
]{\thepage}
96 \nocite{*
} % Pour inclure toute la bibliographie (et pas seulement celle citée).
102 \textbf{Parasitémie automatisée de la malaria à partir d'images microscopiques
}
106 Master of Science HES-SO in Engineering \\
108 Technologies industrielles (TIN)
% Technologie de l'information et de la communication (TIC)
113 \includegraphics[width=
3cm
]{logos/hes-so_logo.jpg
}
117 \includegraphics[width=
4cm
]{logos/mse_logo.jpg
}
123 Février
2016 - Révision n°
1
127 Auteur : Grégory
\textsc{Burri
}\\
128 Sous la direction de Prof. Michel
\textsc{Kocher
} de l'
\emph{HEIG-VD
} et Prof.
\textsc{Olivier Hüsser
} de l'
\emph{HE-Arc
}
131 Master of Science HES-SO in Engineering\\
139 % Page vide (derrière le titre).
141 \thispagestyle{empty
}
145 % Page contenant les signatures.
147 \thispagestyle{empty
}
149 Accepté par la HES-SO//Master (Suisse, Lausanne) sur proposition de M. Kocher.
153 Prof. Michel Kocher et Prof. Olivier Hüsser, conseillers de travail de master\\
154 Dr. Philippe Thévenaz, expert principal
164 \setlength{\tabcolsep}{20pt
}
165 \begin{tabular
}{ l l l
}
166 Prof. Michel Kocher. & Prof Olivier Hüsser & Prof.\\
167 Conseiller & Conseiller & Responsable de la filière
173 % Page contenant le résumé et les mots-clefs.
175 \thispagestyle{empty
}
179 Ce papier présente une méthode automatique permettant l'établissement de la parasitémie d'un patient infecté par la malaria. Cette méthode se base sur une ou plusieurs images numériques microscopiques d'un frottis sanguin dont une coloration
\emph{Giemsa
} a été appliquée. Une implémentation est proposée sous la forme d'un logiciel graphique pouvant être facilement déployé sur n'importe quel ordinateur tournant sous Windows~
7 ou une version supérieure.
187 \og{}malaria
\fg{},
\og{}paludisme
\fg{},
\og{}parasitémie
\fg{},
\og{}taux d'infection
\fg{},
\og{}traitement d'images
\fg{},
\og{}logiciel
\fg{}
191 \thispagestyle{empty
}
199 \thispagestyle{empty
}
200 \cleardoublepage % Devrait être \newpage, mais ça ne marche pas...
203 \section{Introduction
}
205 % TODO: Future dans l'intro?
207 L'objectif de ce projet est d'établir une méthode complète et non-supervisée afin de dénombrer les érythrocytes et de les classer en deux catégories de cellules, à savoir les saines et les infectées. Celle-ci est ensuite implémentée sous la forme d'un logiciel qui puisse être facilement utilisé par une personne ayant peu de connaissances en informatique. La méthode développée est finalement comparée à deux autres :
\emph{Ma et al.
}\cite{ma2010
} et
\emph{C. Di Ruberto et al.
}\cite{di-ruberto2001
}. D'autres approches telles que
\emph{Purwar et al.
}\cite{purwar2011
} et
\emph{Shoelson
}\cite{shoelson2015
} sont également discutées à la section~
\ref{discussions
}.
209 Cette réalisation est faite en partenariat avec le Dr. Guy Prod'hom de l'institut de microbiologie du
\emph{CHUV
} à Lausanne. La méthode actuellement utilisée au
\emph{CHUV
} pour ce type d'infection est le comptage manuel à partir de l'analyse au microscope d'un frottis sanguin. Cette méthode est longue dans le cas d'un dénombrement exhaustif des cellules ou, si une approximation de la densité des érythrocytes est faite, donne des résultats inexacts. De plus, elle nécessite un personnel hautement qualifié.
211 Les images à disposition correspondent à des photographies de sang infecté agrandies
50 fois. Chaque image comprend entre
500 et
700 érythrocytes. 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 érythrocytes (figure~
\ref{fig:medical-globules-rouges
}), les leucocytes (figure~
\ref{fig:medical-globules-blancs
}), les thrombocytes (figure~
\ref{fig:medical-plaquettes
}) et les différents stades de
\emph{Plasmodium
} (figure~
\ref{fig:medical-plasmodium
}).
215 \begin{subfigure
}[t
]{0.3\textwidth}
216 \includegraphics[width=
\linewidth]{figures/medical_globules_rouges.jpg
}
217 \caption{Érythrocyte (globule rouge).
}
218 \label{fig:medical-globules-rouges
}
221 \begin{subfigure
}[t
]{0.3\textwidth}
222 \includegraphics[width=
\linewidth]{figures/medical_globules_blancs.jpg
}
223 \caption{Leucocyte (globule blanc).
}
224 \label{fig:medical-globules-blancs
}
227 \begin{subfigure
}[t
]{0.3\textwidth}
228 \includegraphics[width=
\linewidth]{figures/medical_plaquettes.jpg
}
229 \caption{Thrombocyte (plaquette).
}
230 \label{fig:medical-plaquettes
}
232 \caption{Les éléments principaux composant le sang.
}
233 \label{fig:medical-elements-sang
}
236 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
}.
240 \begin{subfigure
}[t
]{0.2\textwidth}
241 \includegraphics[width=
\linewidth]{figures/medical_plasmodium_1.jpg
}
242 \caption{Trophozoïte immature (anneau).
}
243 \label{fig:medical-plasmodium_1
}
246 \begin{subfigure
}[t
]{0.2\textwidth}
247 \includegraphics[width=
\linewidth]{figures/medical_plasmodium_2.jpg
}
248 \caption{Maturation du trophozoïte.
}
249 \label{fig:medical-plasmodium_2
}
252 \begin{subfigure
}[t
]{0.2\textwidth}
253 \includegraphics[width=
\linewidth]{figures/medical_plasmodium_3.jpg
}
254 \caption{Trophozoïte mature.
}
255 \label{fig:medical-plasmodium_3
}
258 \begin{subfigure
}[t
]{0.2\textwidth}
259 \includegraphics[width=
\linewidth]{figures/medical_plasmodium_4.jpg
}
261 \label{fig:medical-plasmodium_4
}
263 \caption{Les différents stades de l'infection d'un érythrocyte.
}
264 \label{fig:medical-plasmodium
}
267 %\subsection{Parasitémie de la malaria}
269 L'objectif est de dénombrer les érythrocytes 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
}. Ce stade est appelé
\emph{ring stage
} car les parasites ont une forme d'anneau. Cet anneau, montré en détail par la figure~
\ref{fig:noyau-cytoplasme
}, comprend un noyau ainsi qu'un cytoplasme l'entourant.
271 La parasitémie est établie en pourcentage comme étant le rapport entre nombre d'érythrocytes infectés et le nombre total d'érythrocytes. Le groupe d'experts
\emph{UK NEQAS
} (
\emph{United Kingdom National External Quality Assessment Service
}) recommande de considérer un minimum de
1000 érythrocytes. Le
\emph{CDC
} (
\emph{Centers for Disease Control and Prevention
}) recommande quant à lui au moins
500 érythrocytes si la parasitémie est supérieure à
10~\% et au moins
2000 érythrocytes si la parasitémie est inférieure à
0.1~\%.
275 \includegraphics[width=
0.5\linewidth]{figures/RBC_noyau_cytoplasme.pdf
}
276 \caption{Détail des deux parties constituantes d'un trophozoïte immature.
}
277 \label{fig:noyau-cytoplasme
}
280 Certains artefacts comme des débris ou des plaquettes peuvent venir se superposer aux érythrocytes et être confondus avec des parasites. Ces cas peuvent être relativement fréquents et altérer significativement la parasitémie s'ils sont comptés comme étant des cas positifs d'infection. La figure~
\ref{fig:RBC-artefact
} montre quelques exemples de faux positifs potentiels.
284 \begin{subfigure
}[t
]{0.2\textwidth}
285 \includegraphics[width=
\linewidth]{figures/RBC-plaquette.jpg
}
286 % \caption{Thrombocyte.}
287 \label{fig:RBC-artefact-plaquette
}
290 \begin{subfigure
}[t
]{0.2\textwidth}
291 \includegraphics[width=
\linewidth]{figures/RBC-debris-
1.jpg
}
293 \label{fig:RBC-artefact-debris-
1}
296 \begin{subfigure
}[t
]{0.2\textwidth}
297 \includegraphics[width=
\linewidth]{figures/RBC-debris-
2.jpg
}
299 \label{fig:RBC-artefact-debris-
2}
302 \begin{subfigure
}[t
]{0.2\textwidth}
303 \includegraphics[width=
\linewidth]{figures/RBC-debris-
3.jpg
}
305 \label{fig:RBC-artefact-debris-
3}
307 \caption{Exemple d'artefacts se superposant à des érythrocytes.
}
308 \label{fig:RBC-artefact
}
313 \section{Aperçu du processus
}
315 La figure~
\ref{fig:processusComplet
} montre le processus complet du traitement d'une image de frottis sanguin. Celui-ci peut-être divisé en trois groupes de traitement : la segmentation des érythrocytes, la segmentation des parasites et finalement la classification des cellules.
319 \includegraphics[width=
0.9\linewidth]{figures/schema_processus_2.pdf
}
320 \caption{Le processus complet.
}
321 \label{fig:processusComplet
}
324 Dans le premier groupe, l'on va chercher à construire des ellipses qui correspondent le mieux aux bords des érythrocytes. Cela est réalisé à partir de la composante verte (voir figure~
\ref{fig:image-source-green
}) pour laquelle les érythrocytes ont un meilleur contraste avec le fond que les autres composantes. Pour ce faire une estimation du rayon moyen est réalisée par granulométrie à l'aide d'une succession d'ouvertures 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 auxquelles un score est attribué. Finalement les ellipses sont élaguées en supprimant celles chevauchées par d'autres ellipses dont le score est supérieur.
326 Dans le deuxième groupe, les zones
colorées et sombres 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ée 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. La composante rouge de l'image est ici utilisée car présentant les parasites avec un meilleur contrast que les autres composantes (voir figure~
\ref{fig:image-source-red
}).
328 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 établie en calculant le rapport entre la population d'érythrocytes infectés et la population saine.
332 \begin{subfigure
}[t
]{0.4\textwidth}
333 \includegraphics[width=
\linewidth]{figures/image-source-RGB.jpg
}
334 \caption{Image originale.
}
335 \label{fig:image-source-RGB
}
338 \begin{subfigure
}[t
]{0.4\textwidth}
339 \includegraphics[width=
\linewidth]{figures/image-source-red.jpg
}
340 \caption{Composante rouge, les parasites sont bien contrastés.
}
341 \label{fig:image-source-red
}
344 \begin{subfigure
}[t
]{0.4\textwidth}
345 \includegraphics[width=
\linewidth]{figures/image-source-green.jpg
}
346 \caption{Composante verte, les érythrocytes sont bien contrastés.
}
347 \label{fig:image-source-green
}
350 \begin{subfigure
}[t
]{0.4\textwidth}
351 \includegraphics[width=
\linewidth]{figures/image-source-blue.jpg
}
352 \caption{Composante bleue.
}
353 \label{fig:image-source-blue
}
356 \caption{Les différentes composantes de l'image.
}
357 \label{fig:image-source
}
361 \section{Détail de la méthode
}
363 Les filtres gaussiens appliqués 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 la segmentation des érythrocytes respectivement la segmentation des parasites.
365 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 ouverture (par aire ou morphologiques) faites pendant la granulométrie ne s'appliqueraient qu'à une partie de la cellule. De plus, cette particularité gêne également lors de la recherche des bords.
367 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.
369 Une fois que le rayon a été estimé par granulométrie sur la composante verte, une ouverture par aire est également appliquée à l'image qui sera utilisée pour la détection des parasites et qui est issue de la composante rouge.
372 \subsection{Identification des érythrocytes
}
373 \label{identification-erythrocytes
}
375 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, comme on peut le voir à la figure~
\ref{fig:image-source-RGB
}. Ces déformations leur 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).
377 Le résultat de cette recherche sera une liste d'ellipses pouvant se recouvrir partiellement. Les ellipses sont décrites par les paramètres montrés par la figure~
\ref{fig:ellipse-parametres
}.
381 \includegraphics[width=
0.5\linewidth]{figures/ellipse-parametres.pdf
}
382 \caption{Paramètre d'une ellipse, $
\alpha \in [0,
\pi[$ est l'angle d'inclinaison du grand axe $a$, $a
\geqslant b$ >
0.
}
383 \label{fig:ellipse-parametres
}
387 \subsubsection{Granulométrie
}
388 \label{granulometrie
}
390 L'objectif est de déterminer le rayon moyen des érythrocytes. Pour ce faire nous allons appliquer une série d'ouvertures par aire et calculer les différences des sommes des intensités de chaque pixel entre chaque ouverture. Chaque aire est calculée comme étant celle 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érieures et supérieures correspondent au rayon estimé minoré de
50~\% respectivement au rayon estimé majoré de
50~\%.
392 L'ouverture nécessite ici que les érythrocytes aient un niveau d'intensité plus élevé que le fond. Pour que cela soit le cas, nous travaillons sur le négatif de la composante verte. L'intensité des érythrocytes est toujours plus faible que celle du fond, et cela pour toutes les images qui ont été étudiées.
394 Deux autres approches ont également été essayées : l'ouverture 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 granulométrie par aire (le cercle et l'ellipse ont la même aire) et à droite le résultat d'une granulométrie 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$.
398 \begin{subfigure
}[t
]{0.4\textwidth}
399 \includegraphics[width=
\linewidth]{figures/granulometrie-ellipse-cercle-closing-area.pdf
}
400 \caption{Cercle dont la surface est égale à celle de l'ellipse.
}
401 \label{fig:granulometrie-ellipse-cercle-closing-area
}
404 \begin{subfigure
}[t
]{0.4\textwidth}
405 \includegraphics[width=
\linewidth]{figures/granulometrie-ellipse-cercle-closing-morpho.pdf
}
406 \caption{Cercle dont
\emph{r
} est égal au petit rayon
\emph{a
} de l'ellipse.
}
407 \label{fig:granulometrie-ellipse-cercle-closing-morpho
}
409 \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).
}
410 \label{fig:granulometrie-ellipse-cercle-closing-comparaison
}
413 Un autre problème de la granulométrie à l'aide d'ouvertures morphologiques utilisant un disque comme élément structurant est sa complexité algorithmique quadratique en fonction du rayon du disque. La figure~
\ref{fig:temps-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, qui peut être décomposé en quatre sous-éléments. L'associativité de l'érosion ou de la dilatation, montrée par l'équation~
\ref{eq:dilatation-associatif
}, permet la décomposition d'une dilatation ($e_
{1} \oplus e_
{2}$ où l'opérateur $
\oplus$ est l'addition de Minkowski) 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.
415 {\setlength{\abovedisplayskip}{0pt
}
416 \begin{flalign
} \label{eq:dilatation-associatif
}
417 f' = f
\oplus (e_
{1} \oplus e_
{2}) = (f
\oplus e_
{1})
\oplus e_
{2} &
420 Le détail de la décomposition d'un élément structurant de forme octogonale en quatre segments est montré ci-après. L'angle des segments en diagonal est de
45°.
422 {\setlength{\abovedisplayskip}{0pt
}
424 \includegraphics{figures/morpho/ligne-horizontale.pdf
} \oplus \includegraphics{figures/morpho/ligne-diagonal-
1.pdf
} &=
\includegraphics{figures/morpho/losange.pdf
} \\
425 \includegraphics{figures/morpho/losange.pdf
} \oplus \includegraphics{figures/morpho/ligne-diagonal-
2.pdf
} &=
\includegraphics{figures/morpho/hexagone.pdf
} \\
426 \includegraphics{figures/morpho/hexagone.pdf
} \oplus \includegraphics{figures/morpho/ligne-verticale.pdf
} &=
\includegraphics{figures/morpho/octagon.pdf
}
429 La bibliothèque de traitement d'images utilisée ici,
\emph{OpenCV
}, ne réalise pas, à priori, cette optimisation lorsque l'élément structurant peut être décomposé. De ce fait, le temps de calcul, montré par la figure~
\ref{fig:spectre-granulométrique-morpho-octogone
}, ne se différencie pas de l'utilisation d'un disque. De plus, l'octogone produit un spectre granulométrique (figure~
\ref{fig:spectre-granulométrique-morpho-octogone
}) moins harmonieux que pour les deux autres granulométries.
431 Concernant les mesures du temps de calcul avec des images réelles, l'on constate que l'ouverture par aire est beaucoup plus rapide (
8.4~s, figure~
\ref{fig:temps-aire
}) que l'ouverture morphologique (
54~s, figures~
\ref{fig:spectre-granulométrique-morpho-cercle
} et~
\ref{fig:spectre-granulométrique-morpho-octogone
}). La première ouverture par aire, pour le premier rayon, prend un peu moins de
5~s, puis environ
100~ms pour les suivantes. Cela s'explique par la recherche initiale des minima puis par l'agrandissement de ceux-ci jusqu'à l'aire correspondant au premier rayon. Le détail de cet algorithme se trouve à la section~
\ref{algo-ouverture-aire
}.
433 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.
437 \begin{subfigure
}[t
]{0.48\textwidth}
438 \includegraphics[width=
1\linewidth]{figures/Granulometry-pattern-spectrum-area.pdf
}
439 \caption{Spectre granulométrique d'une succession d'ouvertures par aire.
}
440 \label{fig:spectre-granulométrique-aire
}
443 \begin{subfigure
}[t
]{0.48\textwidth}
444 \includegraphics[width=
1\linewidth]{figures/Granulometry-time-area.pdf
}
445 \caption{Temps en milliseconde pour chaque ouverture. Temps total :
8.4~s.
}
446 \label{fig:temps-aire
}
448 \caption{Spectre granulométrique et temps en milliseconde pour chacune des ouvertures par aire. L'image utilisée est montrée à la figure~
\ref{fig:exemple-granulometrie
}.
}
449 \label{fig:Granulometry-area
}
454 \begin{subfigure
}[t
]{0.48\textwidth}
455 \includegraphics[width=
1\linewidth]{figures/Granulometry-pattern-spectrum-morpho-circle.pdf
}
456 \caption{Spectre granulométrique d'une succession d'ouvertures morphologiques avec un disque.
}
457 \label{fig:spectre-granulométrique-morpho-cercle
}
460 \begin{subfigure
}[t
]{0.48\textwidth}
461 \includegraphics[width=
1\linewidth]{figures/Granulometry-time-morpho-circle.pdf
}
462 \caption{Temps en milliseconde pour chaque ouverture. Temps total :
54~s.
}
463 \label{fig:temps-morpho-cercle
}
465 \caption{Spectre granulométrique et temps en milliseconde pour chacune des ouvertures morphologiques avec un disque comme élément structurant. L'image utilisée est montrée à la figure~
\ref{fig:exemple-granulometrie
}.
}
466 \label{fig:Granulometry-morpho-circle
}
471 \begin{subfigure
}[t
]{0.48\textwidth}
472 \includegraphics[width=
1\linewidth]{figures/Granulometry-pattern-spectrum-morpho-octagon.pdf
}
473 \caption{Spectre granulométrique d'une succession d'ouvertures morphologiques avec un octogone.
}
474 \label{fig:spectre-granulométrique-morpho-octogone
}
477 \begin{subfigure
}[t
]{0.48\textwidth}
478 \includegraphics[width=
1\linewidth]{figures/Granulometry-time-morpho-octagon.pdf
}
479 \caption{Temps en milliseconde pour chaque ouverture. Temps total :
54~s.
}
480 \label{fig:temps-morpho-octogone
}
482 \caption{Spectre granulométrique et temps en milliseconde pour chacune des ouvertures morphologiques avec un octogone comme élément structurant. L'image utilisée est montrée à la figure~
\ref{fig:exemple-granulometrie
}.
}
483 \label{fig:Granulometry-morpho-octagon
}
488 \includegraphics[width=
0.8\linewidth]{figures/exemple-granulometrie.jpg
}
489 \caption{Image de résolution
2592~
\texttimes~
1944 contenant environ
700 érythrocytes, qui a été utilisée pour le calcul de la granulométrie montré aux figures
\ref{fig:Granulometry-area
},
\ref{fig:Granulometry-morpho-circle
} et
\ref{fig:Granulometry-morpho-octagon
}.
}
490 \label{fig:exemple-granulometrie
}
493 À 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)$.
496 \subsubsection{Recherche des bords des érythrocytes et calcul du gradient associé
}
498 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.
500 Le gradient est défini comme étant deux composantes $g_x$ et $g_y$ en chaque point correspondant aux dérivés partielles par rapport à $x$ et par rapport à $y$ d'une image $f$ comme montré par l'équation~
\ref{eq:composantes-gradient
}.
502 {\setlength{\abovedisplayskip}{0pt
}
503 \begin{flalign
} \label{eq:composantes-gradient
}
504 \nabla f =
\begin{pmatrix
}g_x \\ g_y
\end{pmatrix
} =
\begin{pmatrix
}\partial f /
\partial x \\
\partial f /
\partial y
\end{pmatrix
}
507 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 à la figure~
\ref{fig:gradient
}.
509 {\setlength{\abovedisplayskip}{0pt
}
510 \begin{flalign
} \label{eq:sobel-noyaux
}
511 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
}
514 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.
516 {\setlength{\abovedisplayskip}{0pt
}
517 \begin{flalign
} \label{eq:gradient-norme
}
518 M(x, y) = \|
\nabla f \| =
\sqrt{g_x^
2 + g_y^
2}
523 \begin{subfigure
}[t
]{0.4\textwidth}
524 \includegraphics[width=
1\linewidth]{figures/gradient-exemple.jpg
}
527 \begin{subfigure
}[t
]{0.4\textwidth}
528 \includegraphics[width=
1\linewidth,interpolate=false
]{figures/gradient-exemple.pdf
}
530 \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.
}
534 Afin de ne garder que les crêtes, un algorithme de suppression des non-maxima est appliqué. Celui-ci est illustré par la 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 droite perpendiculaire au gradient. Pour chaque côté de l'arête, une interpolation est calculée entre les deux éléments les plus proches de la droite ayant la même direction que la valeur du gradient de l'élément traité et passant par celui-ci. Par exemple, par rapport à la figure~
\ref{fig:non-maximum-suppression-schema
}, la valeur des voisins du haut est calculée comme étant $
\psi = n_1
\cdot (
1 - v_x/v_y) + n_2
\cdot v_x/v_y$ et celle des voisins du bas comme étant $
\omega = 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 $
\psi$ et $
\omega$, alors celui-ci sera défini comme étant un maximum. La figure~
\ref{fig:nms
} montre la valeur de la norme ainsi que les maxima mis en évidence.
538 \begin{subfigure
}[t
]{0.35\textwidth}
539 \includegraphics[width=
1\linewidth,interpolate=false
]{figures/non-maximum-suppression-schema.pdf
}
540 \caption{Les voisins ($n_1$, $n_2$, $n_3$, $n_4$) de $e$ qui vont être utilisés pour déterminer si $e$ est un maximum.
}
541 \label{fig:non-maximum-suppression-schema
}
544 \begin{subfigure
}[t
]{0.35\textwidth}
545 \includegraphics[width=
1\linewidth,interpolate=false
]{figures/nms.png
}
546 \caption{Le résultat de l'application de la suppression des non-maxima. Les maxima sont mis en évidence en blanc et la norme du gradient est montrée avec des niveaux d'intensité de gris.
}
549 \caption{Suppression des non-maxima.
}
550 \label{fig:non-maximum-suppression
}
553 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 retenir que les bords les plus pertinents. 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.
555 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.
557 Le résultat de cette étape est la matrice de vecteurs définissant le gradient dont les éléments ne faisant pas partie du bord sont mis à zéro (vecteur nul).
559 %\subsubsection{Recherche des bords des érythrocytes}
561 \subsubsection{Construction d'ellipses
}
563 Une méthode proche de la méthode RANSAC (
\emph{RANdom SAmple Consensus
}) est appliquée à la matrice résultant de l'étape précédente. Cela 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 points, 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 trouvent trop proche d'une ellipse ayant un score plus élevé, sont supprimées.
565 La taille de la fenêtre glissante est un carré dont la longueur des côtés correspond à deux fois le 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 sa dimension a été choisi. Pour chaque position un certain nombre de tirages de triplet de points valides parmi les vecteurs non-nuls est effectué. Ce nombre est égal à un coefficient multipliant le nombre courant d'éléments du bord. Celui-ci à été ajusté comme valant
6~\%. Un triplet valide correspond à trois points éloignés les uns des autres d'au moins une fraction du rayon moyen (par exemple la moitié) et avec lesquels il est possible de construire une ellipse dont les deux rayons se trouvent entre le rayon minimum et le rayon maximum.
569 \begin{subfigure
}[t
]{0.3\textwidth}
570 \includegraphics[width=
1\linewidth]{figures/ellipses/cellule-bords-deformes.jpg
}
573 \begin{subfigure
}[t
]{0.3\textwidth}
574 \includegraphics[width=
1\linewidth]{figures/ellipses/cellule-bords-deformes-bords.png
}
576 \caption{Une cellule présentant un contour déformé fournit moins de triplets avec lesquels il est possible de construire une ellipse. La résultat de la recherche d'ellipses pour cette cellule est montrée au centre de la figure~
\ref{fig:exemple-ellipses-
4}.
}
577 \label{fig:cellule-bords-deformes
}
580 La densité de points valides dans la fenêtre à un endroit donné dépend de la qualité des bords. Ainsi, une cellule dont l'aspect s'éloigne d'une ellipse (comme montré à la figure~
\ref{fig:cellule-bords-deformes
}) produira moins de triplets valides. De ce fait il est nécessaire de fixer une limite du nombre de tirages dans le cas ou les
6~\% de triplets valides sont difficiles voire impossibles à atteindre. Cette limite est fixée à
400~\% du nombre de vecteurs non-nuls.
584 \includegraphics[width=
0.5\linewidth]{figures/construction-ellipse.pdf
}
585 \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. $m_1$ et $m_2$ sont les droites, tangentes à l'ellipse, perpendiculaires à $v_1$ respectivement $v_2$ et passant par les points associés.
}
586 \label{fig:construction-ellipse
}
589 À partir de chaque triplet de points et des deux vecteurs du gradient des 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 le bon sens, c'est-à-dire vers le centre de l'ellipse. Pour cela il faut vérifier que les sens de rotation de $p_1$ et $p_2$ donnés par $v_1$ et $v_2$ par rapport au pivot $p_0$ soient différents et que l'angle formé entre les deux droites $d_1$ et $d_2$ soit strictement inférieur à $
\pi$. La figure~
\ref{fig:construction-ellipse-vecteurs-valides
} illustre ces différents cas.
593 \begin{subfigure
}[t
]{0.3\textwidth}
594 \includegraphics[width=
1\linewidth]{figures/ellipses/construction-ellipse-vecteurs-valides-
3.pdf
}
595 \caption{Triplet invalide : sens contraire des vecteurs par rapport à $p_0$.
}
596 \label{fig:construction-ellipse-vecteurs-valides-
3}
599 \begin{subfigure
}[t
]{0.3\textwidth}
600 \includegraphics[width=
1\linewidth]{figures/ellipses/construction-ellipse-vecteurs-valides-
2.pdf
}
601 \caption{Triplet invalide : $
\alpha \geqslant \pi$.
}
602 \label{fig:construction-ellipse-vecteurs-valides-
2}
605 \begin{subfigure
}[t
]{0.3\textwidth}
606 \includegraphics[width=
1\linewidth]{figures/ellipses/construction-ellipse-vecteurs-valides-
1.pdf
}
607 \caption{Triplet valide : $
\alpha <
\pi$.
}
608 \label{fig:construction-ellipse-vecteurs-valides-
1}
610 \caption{Cas de triplets valides et invalides.
}
611 \label{fig:construction-ellipse-vecteurs-valides
}
614 Tout d'abord le point $p_0$ est calculé comme montré par les équations~
\ref{eq:p0-debut
} à~
\ref{eq:p0-fin
}. Si $m_1 = m_2$, alors $p_0$ est défini comme étant le point à l'infini. Si les conditions de la figure~
\ref{fig:construction-ellipse-vecteurs-valides-
1} sont respectées, alors une conique est construite à partir des quatre points $p_0$, $p_1$, $p_2$ et $p_3$. Si cette conique est une ellipse valide, alors elle est ajoutée à l'ensemble des ellipses.
616 {\setlength{\abovedisplayskip}{0pt
}
619 m_1 &= -v_
{1_x
} / v_
{1_y
} \\
620 m_2 &= -v_
{2_x
} / v_
{2_y
} \\
621 b_1 &= -m_1 p_
{1_x
} + p_
{1_y
} \\
622 b_2 &= -m_2 p_
{2_x
} + p_
{2_y
} \\
623 d_1(x) &= y = m_1 x + b_1 \\
624 d_2(x) &= y = m_2 x + b_2 \\
625 p_
{0_x
} &= -(b_1 - b_2) / (m_1 - m_2) \\
626 p_
{0_y
} &= -(m_2 * b_1 - m_1 * b_2) / (m_1 - m_2)
\label{eq:p0-fin
}
629 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 :
631 {\setlength{\abovedisplayskip}{0pt
}
634 S &=
\begin{pmatrix
}1 &
0 &
0 \\
0 &
0 & -
1/
2 \\
0 & -
1/
2 &
0\end{pmatrix
}
637 Changement de repère projectif par la matrice de passage $P$ ($
3 \times 3$) :
639 {\setlength{\abovedisplayskip}{0pt
}
642 det(
\upsilon_3,
\upsilon_1,
\upsilon_2) \,
\upsilon_0 \\
643 det(
\upsilon_0,
\upsilon_3,
\upsilon_2) \,
\upsilon_1 \\
644 det(
\upsilon_0,
\upsilon_1,
\upsilon_3) \,
\upsilon_2
648 Matrice de la conique dans le repère projectif de référence :
650 {\setlength{\abovedisplayskip}{0pt
}
652 \begin{pmatrix
} A & B & D \\ B & C & E \\ D & E & F
\end{pmatrix
} &= P
\cdot S^
{-
1} \cdot P^
\top
655 Le centre est défini comme suit :
657 {\setlength{\abovedisplayskip}{0pt
}
659 (
\alpha, \;
\beta) = (B/A, \; D/A)
662 Les tailles des deux rayons sont données par $
1/
\sqrt{\lambda}$ et $
1/
\sqrt{\mu}$ où $
\lambda$ et $
\mu$ sont les valeurs propres de la matrice $Q$. Les vecteurs propres de $Q$ donnent les directions des deux axes de l'ellipse. La matrice $Q$ est calculée comme suit :
664 {\setlength{\abovedisplayskip}{0pt
}
666 Ã &= E^
2 - C F + (B F - E D)
\alpha + (C D - B E)
\beta \\
667 Q &= Ã^
{-
1} \begin{pmatrix
}A F - D^
2 & B D - A E \\
668 B D - A E & A C - B^
2\end{pmatrix
}
672 \subsubsection{Calcul du score des ellipses
}
674 Un score va être attribué à chaque ellipse en fonction de sa proximité aux autres ellipses. Pour chaque ellipse on calcul un score montré par l'équation~
\ref{eq:ellipse-score
}. En pratique, un arbre k-d~
\cite[p.~
99-
105]{computational-geometry2008
} est utilisé pour localiser les voisins proches afin d'éviter une complexité algorithmique en $O(n^
2)$.
676 {\setlength{\abovedisplayskip}{0pt
}
678 \label{eq:ellipse-score
}
679 s(e) &=
\sum_{\substack{e'
\in E \\ e'
\neq e
}} \left(
\frac{2 \; aire_
{intersection
}(e, e')
}{aire(e) + aire(e')
} \right)^n
682 Où $E$ est l'ensemble des ellipses, $aire(e) = a \, b \,
\pi$. La fonction $aire_
{intersection
}(e, e')$ donne la surface de l'intersection entre deux ellipses $e$ et $e'$. Ce calcul n'est pas trivial, une approximation numérique est donnée par
\emph{Hughes et Mohcine
}~
\cite{hughes2011
}. Chaque terme de l'addition est un nombre compris entre
0 et
1. L'exposant $n$ est un nombre plus grand ou égal à
1, plus celui ci est grand, moins les voisins éloignes vont avoir de l'influence. En pratique, une bonne convergence a été observée avec $n$ valant
20. Un exemple pratique est montré à la figure~
\ref{fig:ellipses-chevauchement
}.
686 \includegraphics[width=
0.35\linewidth]{figures/ellipses/ellipses-chevauchement.pdf
}
687 \caption{Exemple de calcul de score pour trois ellipses. Les scores indiqués ne sont pas des calculs exacts mais permettent de se faire une idée du fonctionnement de l'algorithme. On peut voir que toutes les ellipses se touchent et donc contribuent aux scores des autres. $e_2$ possède le plus de surface en commun avec les autres ellipses : elle a donc le score le plus élevé.
}
688 \label{fig:ellipses-chevauchement
}
691 \subsubsection{Élagage des ellipses
}
696 \begin{subfigure
}[t
]{0.45\textwidth}
697 \includegraphics[width=
1\linewidth]{figures/ellipses/exemple-
1-green-filtered.jpg
}
698 \caption{Image initiale pour la recherche d'ellipses. Composante verte floutée dont le centre clair des érythrocytes a été ouvert.
}
699 \label{fig:exemple-ellipses-
1}
702 \begin{subfigure
}[t
]{0.45\textwidth}
703 \includegraphics[width=
1\linewidth]{figures/ellipses/exemple-
2-edges.png
}
704 \caption{Bords des cellules : éléments pour lesquels le gradient est non-nul.
}
705 \label{fig:exemple-ellipses-
2}
708 \begin{subfigure
}[t
]{0.45\textwidth}
709 \includegraphics[width=
1\linewidth]{figures/ellipses/exemple-
3-all-ellipses.jpg
}
710 \caption{L'ensemble des ellipses accumulées dessinées sur l'image initiale.
}
711 \label{fig:exemple-ellipses-
3}
714 \begin{subfigure
}[t
]{0.45\textwidth}
715 \includegraphics[width=
1\linewidth]{figures/ellipses/exemple-
4-ellipses.jpg
}
716 \caption{Le résultat final après élagage. Il est a noter que toutes les ellipses ne correspondent pas forcément à des érythrocytes.
}
717 \label{fig:exemple-ellipses-
4}
719 \caption{Aperçu du processus de recherche d'érythrocytes par ajustement d'ellipses. Le gradient n'est pas représenté.
}
720 \label{fig:exemple-ellipses
}
724 L'ensemble des ellipses peut ressembler à ce qui est montré à la figure~
\ref{fig:exemple-ellipses-
3}. La dernière étape dans l'identification des érythrocytes consiste à ne garder que les ellipses qui ont un score pertinent. Un seuil est fixé en fonction du rayon moyen : $
0.07 \; rayon_
{moyen
}$, toutes les ellipses ayant un score plus bas que ce nombre sont éliminées. Ce seuil dépend du rayon car le nombre d'ellipses construites pour une cellule donnée dépend de son périmètre qui, lui-même, dépend linéairement du rayon moyen.
726 Les ellipses dont le centre est trop proche d'ellipses ayant un score plus élevé sont supprimées. Cette distance minimum est choisie comme étant un tiers du petit rayon de l'ellipse ayant le score le plus élevé.
728 Les étapes de la recherche d'ellipses sont illustrées par la figure~
\ref{fig:exemple-ellipses
}.
731 \subsection{Segmentation des parasites
}
733 Cette étape va permettre d'identifier trois types d'éléments : les zones
colorées sombres (figure~
\ref{fig:exemple-dark-stain
}), les noyaux des parasites et leur cytoplasme (incluant le noyau) comme montré à la figure~
\ref{fig:noyau-cytoplasme
}. Les zones
colorées sombres correspondent aux leucocytes, thrombocytes, throphozoïtes, gametocytes, schizontes, etc.
736 \subsubsection{Extraction des zones
colorées sombres
}
738 L'histogramme de l'image filtrée est calculé puis séparé en deux classes à l'aide de la méthode de Otsu. Les deux moyennes, $m_1$ et $m_2$, de ces deux classes correspondent au fond respectivement aux érythrocytes, pour autant que les éléments sombres ne soient pas sur-représentés. Sont considérés comme zones
colorées sombres les éléments qui ont un niveau d'intensité plus faible que $s$, où $s = m_2 -
\Delta$ et $
\Delta = f \; (m_1 - m_2)$. Ceci est montré à la figure~
\ref{fig:profile-zones-colorees-sombres
}. $f$ est un facteur permettant de régler la sensibilité de détection des zones sombres et a été choisi comme valant
1. La figure~
\ref{fig:exemple-dark-stain
} montre un exemple de segmentation d'un leucocyte.
740 Il est important, pour que les deux classes résultant de la méthode de Otsu correspondent bien aux érythrocytes et au fond, que les éléments sombres ne soient pas sur-représentés. Il a été observé que cela n'est jamais le cas dans les images $
50\times$ ou $
100\times$ étudiées. Par contre, si cette méthode est appliquée à une petite portion d'une image contenant beaucoup d'éléments sombres, par exemple des leucocytes, alors les zones sombres ne pourront pas être segmentées correctement.
745 \includegraphics[width=
0.45\linewidth]{figures/parasite/profile-zones-colorees-sombres.pdf
}
746 \caption{Profil d'intensité du fond ($m_1$) et de l'avant-plan : érythrocytes ($m_2$) et éléments sombres ($m_2 -
\Delta$).
}
747 \label{fig:profile-zones-colorees-sombres
}
752 \begin{subfigure
}[t
]{0.3\textwidth}
753 \includegraphics[width=
1\linewidth]{figures/parasite/exemple-dark-stain-
0.jpg
}
754 \caption{Image originale.
}
758 \begin{subfigure
}[t
]{0.3\textwidth}
759 \includegraphics[width=
1\linewidth]{figures/parasite/exemple-dark-stain-
1.jpg
}
760 \caption{Composante rouge filtrée : filtre gaussien + ouverture par aire.
}
764 \begin{subfigure
}[t
]{0.3\textwidth}
765 \includegraphics[width=
1\linewidth]{figures/parasite/exemple-dark-stain-
2.png
}
766 \caption{Segmentation des zones
colorées sombres.
}
769 \caption{Exemple de la segmentation d'une zone
colorée sombre, ici un leucocyte.
}
770 \label{fig:exemple-dark-stain
}
774 \subsubsection{Segmentation des cytoplasmes
}
776 Le cytoplasme est le contenu du parasite entourant le noyau, qui se trouve à l'intérieur de sa membrane. La figure~
\ref{fig:noyau-cytoplasme
} montre ces éléments. La segmentation du cytoplasme va constituer à appliquer une fermeture morphologique avec un disque comme élément structurant. Ce dernier aura un diamètre correspondant à l'épaisseur du cytoplasme. Cette épaisseur a été mesurée comme valant un cinquième du rayon moyen des érythrocytes.
778 L'image est ensuite multipliée par l'inverse d'un facteur de sensibilité et soustraite au résultat de la fermeture. L'image ainsi obtenue est seuillée à zéro. Un exemple est montré à la figure~
\ref{fig:exemple-segmentation-cytoplasme
}. L'équation correspondante est la suivante :
780 {\setlength{\abovedisplayskip}{0pt
}
782 \label{eq:segmentation-cytoplasmes
}
783 Cytoplasmes =
\phi_{SE
}(f) - (
1 / sensibilité_
{cytoplasme
}) \; f
\geqslant 0
786 Où $f$ est l'image, $
\phi_{SE
}$ la fermeture morphologique par un élément structurant $SE$ et $sensibilité_
{cytoplasme
}$ une valeur comprise entre
0 et
1. Cette valeur a été ajustée à
0.96.
791 \begin{subfigure
}[t
]{0.25\textwidth}
792 \includegraphics[width=
1\linewidth]{figures/parasite/exemple-original.jpg
}
793 \caption{Image originale.
}
797 \begin{subfigure
}[t
]{0.25\textwidth}
798 \includegraphics[width=
1\linewidth]{figures/parasite/exemple-red.jpg
}
799 \caption{Composante rouge.
}
803 \begin{subfigure
}[t
]{0.25\textwidth}
804 \includegraphics[width=
1\linewidth]{figures/parasite/exemple-red-filtered.jpg
}
805 \caption{Composante rouge filtrée : filtre gaussien puis ouverture par aire.
}
809 \begin{subfigure
}[t
]{0.25\textwidth}
810 \includegraphics[width=
1\linewidth]{figures/parasite/exemple-noyaux.png
}
811 \caption{Noyaux du parasite.
}
812 \label{fig:exemple-segmentation-noyau
}
815 \begin{subfigure
}[t
]{0.25\textwidth}
816 \includegraphics[width=
1\linewidth]{figures/parasite/exemple-cytoplasme.png
}
817 \caption{Cytoplasme du parasite.
}
818 \label{fig:exemple-segmentation-cytoplasme
}
820 \caption{Exemple de segmentation d'un parasite.
}
821 \label{fig:exemple-segmentation-parasite
}
824 \subsubsection{Segmentation des noyaux
}
826 La segmentation des noyaux est réalisée grâce à une fermeture par aire. La surface d'un parasite correspond à environ
1~\% de la surface d'un érythrocyte, celle-ci étant calculée à partir du rayon moyen : $noyau_
{surface
} =
0.01 *
\pi * rayon_
{moyen
}^
2$.
828 De la même manière que pour la segmentation des cytoplasmes, l'image est multipliée par l'inverse d'un facteur de sensibilité et soustraite au résultat de la fermeture par aire. L'image est ensuite seuillée à zéro. Un exemple est montré à la figure~
\ref{fig:exemple-segmentation-noyau
}. L'équation correspondante est la suivante :
830 {\setlength{\abovedisplayskip}{0pt
}
832 \label{eq:segmentation-cytoplasmes
}
833 Noyaux =
\phi_{\lambda}(f) - (
1 / sensibilité_
{noyau
}) \; f
\geqslant 0
836 Où $f$ est l'image, $
\phi_{\lambda}$ la fermeture par aire de surface $
\lambda$ et $sensibilité_
{noyau
}$ une valeur comprise entre
0 et
1. Cette valeur a été ajustée à
0.92.
839 \subsection{Classification des cellules
}
841 À partir des résultats des deux précédentes étapes, c'est-à-dire les ellipses représentant les érythrocytes ainsi que les marqueurs des parasites et des éléments
colorés sombres, cette dernière étape va classifier chaque ellipse en trois classes :
\emph{érythrocyte sain
},
\emph{érythrocyte infecté
} et
\emph{objet particulier
}. Certaines ellipses peuvent être amenées à être supprimées si elle ne correspondent pas à certains critères.
843 \subsubsection{Attribution des pixels aux ellipses
}
845 Dans un premier temps, les ellipses qui touchent les bords sont supprimées. Les pixels au sein des ellipses sont attribués à une seule cellule. Si plusieurs cellules se chevauchent, alors une ligne de partage est tracée entre les deux points d'intersection, (comme montré par la figure~
\ref{fig:exemple-attribution-pixel
}).
847 Les ellipses ayant une aire en dessous d'un seuil calculé comme étant $
0.4 \;
\pi \; rayon_
{moyen
}^
2$ sont supprimées. Les pixels appartenant aux ellipses supprimées sont attribués aux ellipses existantes dans le cas de chevauchements.
851 \begin{subfigure
}[t
]{0.3\textwidth}
852 \includegraphics[width=
1\linewidth]{figures/classification/exemple-attribution-pixel-
1.jpg
}
853 \caption{Image originale.
}
857 \begin{subfigure
}[t
]{0.3\textwidth}
858 \includegraphics[width=
1\linewidth]{figures/classification/exemple-attribution-pixel-
2.jpg
}
859 \caption{Ellipses se chevauchant.
}
863 \begin{subfigure
}[t
]{0.3\textwidth}
864 \includegraphics[width=
1\linewidth]{figures/classification/exemple-attribution-pixel-
3.jpg
}
865 \caption{Attribution des pixels à chacune des cellules.
}
868 \caption{Attribution des pixels aux cellules.
}
869 \label{fig:exemple-attribution-pixel
}
874 \subsubsection{Attribution d'une classe
}
876 Une cellules dépassant un certain pourcentage d'éléments appartenant aux éléments
colorés sombres ne peut pas être un érythrocyte et est donc classé comme
\emph{objet particulier
}. Cette classe n'entra pas en compte dans l'établissement du taux d'infection. Le taux maximum d'éléments
colorés sombres a été fixé à
10~\%.
878 Comme le montre la figure~
\ref{fig:exemple-element-particulier
}, les objets particuliers sont traités spécialement en ce qui concerne les chevauchements avec les érythrocytes : ceux-ci les recouvrent complètement. L'objectif de cette particularité est d'éviter qu'une partie d'un leucocyte, d'un schizonte ou d'un autre type d'objet particulier ne soit pris pour un parasite par un érythrocyte adjacent.
882 \begin{subfigure
}[t
]{0.3\textwidth}
883 \includegraphics[width=
1\linewidth]{figures/classification/exemple-element-particulier-
1.jpg
}
884 \caption{Image originale.
}
888 \begin{subfigure
}[t
]{0.3\textwidth}
889 \includegraphics[width=
1\linewidth]{figures/classification/exemple-element-particulier-
2.jpg
}
890 \caption{Objet particulier (marqué d'une croix noire) recouvrant un érythrocyte.
}
893 \caption{Spécificité des éléments particuliers vis-à-vis des érythrocytes.
}
894 \label{fig:exemple-element-particulier
}
897 Si le taux maximum d'éléments
colorés sombres n'est pas atteint, alors la cellule est un érythrocyte et l'on va tester la condition suivante : l'érythrocyte possède au moins un élément appartenant aux noyaux et un certain nombre d'éléments appartenant aux cytoplasmes et se trouvant à une distance maximum donnée d'un élément noyau. Si cette condition est remplie alors la classe
\emph{érythrocyte infecté
} lui est attribuée. Dans le cas contraire la classe
\emph{érythrocyte sain
} est attribuée.
899 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.
901 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 :
903 {\setlength{\abovedisplayskip}{0pt
}
905 Parasitémie_
{\%
} =
100 \;
\frac{\#\
{érythrocytes_
{sains
}\
}}{\#\
{érythrocytes_
{infectés
}\
}}
908 La figure~
\ref{fig:exemple-classification
} montre les différentes données utilisées lors de la classification.
912 \begin{subfigure
}[t
]{0.48\textwidth}
913 \includegraphics[width=
1\linewidth]{figures/classification/exemple-
1-original.jpg
}
914 \caption{Image originale.
}
918 \begin{subfigure
}[t
]{0.48\textwidth}
919 \includegraphics[width=
1\linewidth]{figures/classification/exemple-
2-ellipses.jpg
}
924 \begin{subfigure
}[t
]{0.48\textwidth}
925 \includegraphics[width=
1\linewidth]{figures/classification/exemple-
3-dark-stain.png
}
926 \caption{Zones
colorées sombres.
}
930 \begin{subfigure
}[t
]{0.48\textwidth}
931 \includegraphics[width=
1\linewidth]{figures/classification/exemple-
4-cytoplasmes.png
}
932 \caption{Cytoplasmes.
}
936 \begin{subfigure
}[t
]{0.48\textwidth}
937 \includegraphics[width=
1\linewidth]{figures/classification/exemple-
5-noyaux.png
}
942 \begin{subfigure
}[t
]{0.48\textwidth}
943 \includegraphics[width=
1\linewidth]{figures/classification/exemple-
6-classification.jpg
}
944 \caption{Résultat final.
}
947 \caption{Exemple de classification. Le résultat final montre les érythrocytes sains marqués d'une croix bleue, les érythrocytes infectés marqués d'une croix rouge et les objets particuliers marqués d'une croix noire. On peut voir, en bas à droite, un leucocyte marqué comme objet particulier.
}
948 \label{fig:exemple-classification
}
953 \section{Implémentation
}
955 La mise en œuvre de la méthode décrite dans les sections précédentes se fait via la réalisation d'un logiciel doté d'une interface graphique, adaptée aux besoins des utilisateurs et définie conjointement avec Dr. Guy Prod'hom du
\emph{CHUV
} de Lausanne. L'application doit pouvoir être installée sur des ordinateurs dotés de Windows~
7 et de
4~Go de
\emph{RAM
}.
957 Pour ce faire la plate-forme
\emph{.NET
} a été choisie pour ses bonnes performances et sa disponibilité sur les machines cibles. De plus,
\emph{Emgu CV
} est un
\emph{wrapper
} \emph{.NET
} pour la bibliothèque
\emph{Open CV
} qui est utilisée pour la manipulation des images.
959 Le langage de programmation est
\emph{F\#
}, un langage fonctionnel et orienté objet dérivé d'
\emph{Objective Caml
} et dérivant lui-même du langage
\emph{ML
} . Il a été choisi pour sa facilité d'écriture et son haut niveau d'expressivité.
961 Le code est séparé en deux
\emph{assemblies
} :
964 \item \emph{ParasitemiaCore
} : Bibliothèque contenant la partie calcul.
965 \item \emph{ParasitemiaUI
} : Exécutable proposant une utilisation via une interface graphique ou via la ligne de commande.
968 Pour des raisons de précision numérique, le type
\emph{Single
} (réel sur
32 bits tel que défini par l'
\emph{IEEE
754}) est utilisé pour la représentation de toutes les images intermédiaires à la place d'entier sur
8 ou sur
16 bits. Le processus pouvant prendre une quantité non-négligable de mémoire, le type
\emph{Double
} (réel sur
64 bits) a été écarté car doublant pratiquement la quantité de mémoire requise.
970 Le code source ainsi que l'exécutable et un installeur sont disponibles aux adresses suivantes :
973 \item {\parasitemiasource}
974 \item {\parasitemiaexe}
975 \item {\parasitemiasetup}
978 \subsection{Détails de codage
}
980 \subsubsection{Calculs en parallèle
}
982 Au sein du module
\texttt{ParasitemiaCore.Analysis
} se trouve la fonction pour lancer l'analyse d'une image :
984 \begin{lstlisting
}[style=fsharp, numbers = none
]
985 let doAnalysis (img: Image<Bgr, byte>) (name: string) (config: Config) (reportProgress: (int -> bool) option) : Cell list option =
[..
]
988 Où
\texttt{img
} est l'image à analyser,
\texttt{name
} est un nom donné à l'analyse et utilisé dans le
\emph{log
},
\texttt{config
} la configuration et
\texttt{reportProgress
} une fonction optionnelle qui permettra d'être renseigné de l'avancement de l'analyse à chaque appel en donnant le pourcentage (entre
0 et
100) et qui renverra
\texttt{false
} pour interrompre l'analyse. La fonction
\texttt{doAnalysis
} renvoie
\texttt{None
} si elle a été interrompue, ou une liste de cellules dans le cas contraire.
990 Une autre version de cette fonction existe dans le même module et permet de traiter en parallèle plusieurs images. Cette fonction est bloquante tant que le traitement de toutes les images n'est pas terminé ou que celle-ci n'a pas été interrompue via le même mécanisme décrit pour
\texttt{doAnalysis
} ci-dessus.
992 \begin{lstlisting
}[style=fsharp, numbers = none
]
993 let doMultipleAnalysis (imgs: (string * Config * Image<Bgr, byte>) list) (reportProgress: (int -> bool) option) : (string * Cell list) list option =
[..
]
996 Une liste d'images est fournie avec un nom associé à chacune d'entre elle ainsi qu'une configuration. L'ordre des résultats retournés n'étant pas forcément le même que celui de la liste d'images, il est nécessaire d'utiliser le nom donné pour associer les résultats aux images données. Comme pour
\texttt{doAnalyse
}, la fonction renvoie
\texttt{None
} si elle a été interrompue.
998 Le nombre de
\emph{threads
} exécutés en parallèle dépend du nombre de cœurs de la machine.
1001 \subsubsection{Ouvertures et fermetures par aire sur des réels
}
1002 \label{algo-ouverture-aire
}
1004 \emph{Open CV
} ne fournissant pas cette opération, que ce soit sur des entiers ou sur des réels, elle a été implémentée en
\emph{F\#
}. L'ouverture est détaillée par l'algorithme~
\ref{alg:ouverture-par-aire
}. Celui-ci est inspiré de l'article~
\cite{vincent1992
}. La fermeture est similaire mais en inversant l'opérateur d'ordre et en partant des minima à la place des maxima. Nous parlons ici de hauteur et de niveau : un élément plus haut qu'un autre ou de niveau supérieur est dit comme ayant une intensité plus grande.
1006 Les iles sont des ensembles d'éléments
4-connexes. Une ile possède un niveau, et son nombre d'éléments est appelé sa surface. À chaque ile est associé un rivage qui est l'ensemble des éléments
4-connexes à l'ile qui ne font pas parti des éléments de celle-ci. Il doit être possible d'obtenir l'élément le plus élevé appartenant au rivage. Pour ce faire un tas max est utilisé~
\cite[p.~
140-
155]{algo2010
}. Ce dernier permet l'ajout et la suppression de l'élément maximum avec temps d'exécution d'ordre $O(log \; n)$.
1008 Un maxima correspond à un ensemble d'éléments de valeur égale dont les voisins
4-connexes qui ne font pas partis du maxima en question ont une valeur strictement plus grande à celui-ci.
1012 \caption{Ouverture par aire sur une image contenant des réels.
}
1013 \label{alg:ouverture-par-aire
}
1015 \SetKwInOut{Input
}{Entrée
}
1016 \SetKwInOut{Output
}{Sortie
}
1018 \Input{une image $img$ et une aire $A$
}
1019 \Output{l'ouvert de $img$
}
1020 $
\mli{iles
} \leftarrow $ maxima($img$) \;
1021 Initialisation du rivage de chaque ile \;
1023 $r
\leftarrow i$.rivage.pop
\_max \;
1024 \uIf{$r$ appartient à une ile $i'$
}{
1025 \uIf{$i$.surface + $i'$.surface $
\geqslant$ $A$ ou $i$.niveau $<$ $i'$.niveau
}{
1026 Passe à l'ile suivante \;
1029 $i$.surface $
\leftarrow$ $i$.surface $+$ $i'$.surface \;
1030 $i$.niveau $
\leftarrow$ $i'$.niveau \;
1031 Le rivage de $i'$ est ajouté à celui de $i$ et $i'$ est supprimé \;
1034 \uElseIf{$r$.niveau $>$ $i$.niveau
}{
1035 Passe à l'ile suivante \;
1038 $r$ est intégré à $i$ et ses voisins
4-connexe qui ne font ni partie de $i$ ni partie de $i$.rivage sont intégrés à $i$.rivage
1041 \Return{une copie de $img$ dont les éléments appartenant aux iles sont mis à leur niveau respectif
}
1047 \subsubsection{Arbre k-d
}
1049 \subsection{Interface en ligne de commande
}
1051 L'application peut être lancé via la ligne de commande et permet de traiter soit une seule image soit plusieurs simultanément si un dossier est donné. Les paramètres sont les suivants :
1053 \begin{lstlisting
}[style=tt
]
1054 ParasitemiaUI.exe (--folder <folder>|--file <file>) --output <folder>
[--debug
]
1057 Où
\texttt{---folder <folder>
} est un dossier contenant les images à analyser,
\texttt{---file <file>
} est une image unique à analyser,
\texttt{---output <folder>
} est un dossier dans lequel seront écrits les résultats et le
\emph{log
} et
\texttt{---debug
} un flag permettant d'activer le mode debug dans lequel les images intermédiaires sont écrites dans le dossier de sortie.
1060 \subsection{Interface graphique
}
1062 Les différents éléments de l'interface graphique, contrôles et fenêtres, sont décrit dans le langage
\emph{XAML
} et utilisés au sein de
\emph{WPF
} (
\emph{Windows Presentation Foundation
}). Au démarrage de l'application, ces fichiers sont chargés via le
\emph{type provider
} fourni par la bibliothèque
\emph{FsXaml.Wpf
}, puis les événements sont attachés aux contrôles. Il n'a pas été jugé utile d'utiliser un motif de conception spécifique tel que
\emph{MVVM
} (
\emph{Model-view-viewmodel
}) pour ce type d'interface.
1064 La figure~
\ref{fig:screenshot-GUI
} montre la fenêtre principale à partir de laquelle les principales opérations peuvent être réalisées, comme par exemple charger ou sauvegarder un
document, lancer une analyse d'une ou plusieurs images, naviguer au sein de l'image et changer l'état (sain/infecté) des érythrocytes. La parasitémie est affichée dans la partie supérieure, et un message d'avertissement s'affiche si le nombre de cellules analysées est trop faible.
1066 \begin{figure
}[htbp
]
1068 \begin{subfigure
}[t
]{0.9\textwidth}
1069 \includegraphics[width=
1\linewidth]{figures/implementation/screenshot-main.jpg
}
1070 \caption{La fenêtre principale. La parasitémie globale est affichée tout en haut. Les images sources sont affichées à gauche. L'image courante est montrée au centre ainsi que ses informations associées en dessous.
}
1074 \begin{subfigure
}[t
]{0.55\textwidth}
1075 \includegraphics[width=
1\linewidth]{figures/implementation/screenshot-start-analysis.jpg
}
1076 \caption{La fenêtre permettant de lancer une analyse. La résolution (en pixel par pouce) de chaque image doit être entrée préalablement. Des valeurs prédéfinies ainsi qu'un calculateur aident l'utilisateur à trouver la bonne valeur. Ces valeurs sont stockées dans un fichier
\emph{JSON
} permettant à l'utilisateur de les modifier.
}
1080 \begin{subfigure
}[t
]{0.35\textwidth}
1081 \includegraphics[width=
1\linewidth]{figures/implementation/screenshot-ppi-calculator.jpg
}
1082 \caption{Calcul la résolution de l'image en fonction de la taille du capteur, de sa résolution et du niveau de zoom. De la même manière que les valeurs de résolutions prédéfinies, la liste des différentes tailles de capteurs est stockée dans un fichier
\emph{JSON
}.
}
1085 \caption{L'interface graphique de l'application
\emph{Parasitemia
}.
}
1086 \label{fig:screenshot-GUI
}
1089 \subsubsection{Persistance des documents
}
1091 Le mode interactif avec interface graphique permet de gérer des documents sous la forme de fichier contenant les images sources ainsi que les résultats de leur analyse. L'extension utilisée est
\texttt{PIAZ
} pour
\emph{ParasitemIA Zipped file
}.
1093 Chaque image source est enregistrée au format sans perte
\emph{TIFF
} en utilisant le modèle de couleur
\emph{RGB
} et
8 bits par canal. Les noms des images correspondent à leur numéro affiché dans la fenêtre principale, par exemple
\texttt{1.tiff
}. À chaque image est associé un fichier texte au format
\emph{JSON
} reprenant le nom du fichier de l'image avec le suffixe
\texttt{.json
} ajouté, par exemple
\texttt{1.tiff.json
}. Ce fichier
\emph{JSON
} contient le nom de l'image, les paramètres et le liste des érythrocytes détectés issue de la dernière analyse. Pour chaque érythrocyte les informations suivantes sont mémorisées :
1096 \item Un flag pour savoir si la cellule est infectée
1097 \item Un flag informant si le flag précédent à été défini par l'utilisateur
1098 \item Un numéro unique
1099 \item Le centre de la cellule et ses dimensions (largeur, hauteur)
1100 \item La surface du ou des noyaux
1103 \subsection{Dépendances
}
1105 Hormis
\emph{Emgu CV
}, toutes les dépendances sont fournies par le système de gestion de
\emph{package
} \emph{NuGet
} intégré à l'environnement de développement
\emph{Visual Studio
}. Les dépendances sont listées ci-dessous :
1108 \item \emph{FSharp.Collections.ParallelSeq
} : Permet d'appliquer en parallèle des fonctions sur des séquences.
1109 \item \emph{MathNet.Numerics
} : Différentes fonctions mathématiques, notamment concernant l'algèbre linéaire.
1110 \item \emph{FsXaml.Wpf
} : Quelques outils facilitant l'utilisation de
\emph{WPF
} et
\emph{XAML
} avec
\emph{F\#
}.
1111 \item \emph{Netwonsoft.Json
} : Permet la sérialisation et la désérialisation de données au format
\emph{JSON
}.
1117 Treize images~
\footnote{{\imagesmesures}} on été sélectionnées, six d'entre elles ayant été prises avec un zoom
50 fois et sept avec un zoom
100. Un panel représentatif des différentes particularités a été choisi, notamment avec une illumination et une teinte pouvant varier entre les images, des débris se superposant aux cellules, des amas d'érythrocytes, des leucocytes, des trophozoïtes, des schizontes et des gamètes.
1119 Trois méthodes sont appliquées sur ces images, à savoir
\emph{Ma et al.
}\cite{ma2010
} dont l'implémentation est fournie sous la forme d'une script
\emph{Python
},
\emph{C. Di Ruberto et al.
}\cite{di-ruberto2001
} qui a été implémentée sous
\emph{MATLAB
} par
\cite{burri2015
} et la méthode décrite ici.
1121 Concernant Ma, les paramètres suivants ont été modifiés afin d'adapter la méthode à la résolution de nos images :
1124 \item \texttt{Hough
\_min\_radius} et
\texttt{Hough
\_max\_radius} sont définis à
20/
45 pour les images
50 fois et à
40/
90 pour les images
100 fois.
1125 \item \texttt{Min
\_cell\_radius} et
\texttt{Max
\_cell\_radius} sont définis à
25/
40 pour les images
50 fois et à
50/
80 pour les images
100 fois. Ces valeurs correspondent aux valeurs limites citées à la section~
\ref{identification-erythrocytes
}.
1126 \item Les écarts types des gaussiennes,
\texttt{Enhance
\_a} et
\texttt{Enhance
\_c}, sont ajustés proportionnellement à la résolution des images. Les valeurs
2/
40 sont utilisées pour les images
50 fois et
4/
80 pour les images
100 fois.
1127 \item \texttt{Cell
\_suppression\_radius} est diminué de
1.25 à
0.8 afin d'éviter que trop de cellules proches s'excluent mutuellement.
1130 Les résultats sont montrés par les trois tableaux (
\ref{tab:resultats-erythrocytes
},
\ref{tab:resultats-parasites
} et
\ref{tab:resultats-parasitemie
}) ci-après. Le premier concerne la segmentation des érythrocytes, le deuxième la recherche des parasites et le troisième la parasitémie. Les résultats de ce dernier sont à considérer avec précaution car elles ne reflètent pas forcément l'exactitude de la méthode dans la mesure où des faux positifs peuvent contrebalancer des faux négatifs. La colonne
\emph{Total réf.
} correspond à un nombre de référence établi par un comptage manuel. Les traitements n'ayant pas abouti sont marqué avec un tiret.
1133 \setlength{\tabcolsep}{3pt
}
1135 \begin{tabular
}{ r || r || r | r || r | r || r | r |
}
1136 & &
\multicolumn{2}{ c||
}{Ce papier
} &
\multicolumn{2}{ c||
}{\emph{Ma
}} &
\multicolumn{2}{ c|
}{\emph{Di Ruberto
}} \\
\cline{2-
8}
1137 N° & Total réf. & \# manqué & \# en trop & \# manqué & \# en trop & \# manqué & \# en trop \\
\cline{1-
8}
1138 1 &
184 &
1 &
0 &
30 &
1 &
3 &
7 \\
1139 2 &
186 &
3 &
0 &
18 &
1 &
15 &
5 \\
1140 3 &
188 &
6 &
0 &
17 &
2 &
5 &
19 \\
1141 4 &
154 &
0 &
0 &
3 &
0 &
12 &
1 \\
1142 5 &
150 &
2 &
0 &
7 &
3 & - & - \\
1143 6 &
139 &
0 &
0 &
5 &
0 &
3 &
1 \\
1144 7 &
135 &
1 &
0 &
3 &
4 &
1 &
7 \\
1145 8 &
612 &
1 &
0 &
11 &
1 &
33 &
49 \\
1146 9 &
741 &
1 &
0 &
43 &
2 &
128 &
79 \\
1147 10 &
557 &
0 &
4 &
18 &
0 & - & - \\
1148 11 &
686 &
0 &
1 &
45 &
1 & - & - \\
1149 12 &
510 &
0 &
0 &
15 &
0 & - & - \\
1150 13 &
424 &
0 &
0 &
9 &
1 & - & -
1152 \caption{Résultats des mesures concernant la segmentation des érythrocytes.
}
1153 \label{tab:resultats-erythrocytes
}
1158 \setlength{\tabcolsep}{3pt
}
1160 \begin{tabular
}{ r || r || r | r || r | r || r | r |
}
1161 & &
\multicolumn{2}{ c||
}{Ce papier
} &
\multicolumn{2}{ c||
}{\emph{Ma
}} &
\multicolumn{2}{ c|
}{\emph{Di Ruberto
}} \\
\cline{2-
8}
1162 N° & Total réf. & \# manqué & \# en trop & \# manqué & \# en trop & \# manqué & \# en trop \\
\cline{1-
8}
1163 1 &
0 &
0 &
0 &
0 &
1 &
0 &
1 \\
1164 2 &
0 &
0 &
0 &
0 &
0 &
0 &
1 \\
1165 3 &
0 &
0 &
0 &
0 &
3 &
0 &
5 \\
1166 4 &
0 &
0 &
0 &
0 &
0 &
0 &
30 \\
1167 5 &
28 &
1 &
2 &
9 &
3 & - & - \\
1168 6 &
28 &
6 &
0 &
9 &
0 &
4 &
2 \\
1169 7 &
20 &
0 &
1 &
6 &
4 &
0 &
10 \\
1170 8 &
100 &
2 &
0 &
2 &
3 &
86 &
9 \\
1171 9 &
11 &
4 &
0 &
4 &
1 &
9 &
5 \\
1172 10 &
14 &
4 &
0 &
4 &
1 & - & - \\
1173 11 &
1 &
0 &
0 &
1 &
2 & - & - \\
1174 12 &
2 &
0 &
1 &
0 &
11 & - & - \\
1175 13 &
1 &
1 &
0 &
0 &
3 & - & -
1177 \caption{Résultats des mesures concernant la détection des parasites.
}
1178 \label{tab:resultats-parasites
}
1183 \setlength{\tabcolsep}{3pt
}
1185 \begin{tabular
}{ r || r | r | r | r |
}
1186 N° & Référence & Ce papier &
\emph{Ma
} &
\emph{Di Ruberto
} \\
\cline{1-
5}
1187 1 &
0.0~\% &
0.0~\% &
0.6~\% &
0.5~\% \\
1188 2 &
0.0~\% &
0.0~\% &
0.0~\% &
0.6~\% \\
1189 3 &
0.0~\% &
0.0~\% &
1.7~\% &
2.5~\% \\
1190 4 &
0.0~\% &
0.0~\% &
0.0~\% &
21.0~\% \\
1191 5 &
18.7~\% &
19.6~\% &
15.1~\% & - \\
1192 6 &
20.1~\% &
15.8~\% &
14.2~\% &
19.0~\% \\
1193 7 &
14.8~\% &
15.7~\% &
13.2~\% &
21.3~\% \\
1194 8 &
16.3~\% &
16.0~\% &
16.8~\% &
3.7~\% \\
1195 9 &
1.5~\% &
0.9~\% &
1.1~\% &
1.0~\% \\
1196 10 &
2.5~\% &
1.8~\% &
2.0~\% & - \\
1197 11 &
0.1~\% &
0.1~\% &
0.3~\% & - \\
1198 12 &
0.4~\% &
0.6~\% &
2.6~\% & - \\
1199 13 &
0.2~\% &
0.0~\% &
1.0~\% & -
1201 \caption{Résultats des mesures concernant la détection des parasites.
}
1202 \label{tab:resultats-parasitemie
}
1206 Dans le cas de
\emph{Ma
}, les amas de cellules ainsi que les cellules allongées posent problème, comme montré par les figures~
\ref{fig:comparaison-
1} et~
\ref{fig:comparaison-
2}. Les amas de deux cellules sont souvent considérés comme une seule cellule malgré le fait que le paramètre
\texttt{Cell
\_suppression\_radius} ait été réduit afin d'éviter ce problème. De plus, cela fait qu'une partie des cellules de l'amas n'est pas pris en compte lors de la détection des parasites. À contrario, les cellules allongées peuvent provoquer une sur-segmentation : cela crée souvent deux petits érythrocytes qui seront écartés par la suite car ils sont trop petits. Ils sont montrés avec une croix noire à la figure~
\ref{fig:comparaison-
2-ma
}.
1210 \begin{figure
}[htbp
]
1212 \begin{subfigure
}[t
]{0.23\textwidth}
1213 \includegraphics[width=
1\linewidth]{figures/comparaison-
1-original.jpg
}
1214 \caption{Extrait de l'image n°
2.
}
1215 \label{fig:comparaison-
1-original
}
1218 \begin{subfigure
}[t
]{0.23\textwidth}
1219 \includegraphics[width=
1\linewidth]{figures/comparaison-
1-master.jpg
}
1220 \caption{Méthode présentée dans ce papier, résultat attendu.
}
1221 \label{fig:comparaison-
1-master
}
1224 \begin{subfigure
}[t
]{0.23\textwidth}
1225 \includegraphics[width=
1\linewidth]{figures/comparaison-
1-ma.jpg
}
1226 \caption{\emph{Ma
}, un seul érythrocyte est trouvé.
}
1227 \label{fig:comparaison-
1-ma
}
1230 \begin{subfigure
}[t
]{0.23\textwidth}
1231 \includegraphics[width=
1\linewidth]{figures/comparaison-
1-diruberto.jpg
}
1232 \caption{\emph{Di Ruberto
}, sur-segmentation.
}
1233 \label{fig:comparaison-
1-diruberto
}
1235 \caption{Segmentation d'un amas de deux cellules.
}
1236 \label{fig:comparaison-
1}
1239 \begin{figure
}[htbp
]
1241 \begin{subfigure
}[t
]{0.18\textwidth}
1242 \includegraphics[width=
1\linewidth]{figures/comparaison-
2-original.jpg
}
1243 \caption{Extrait de l'image n°
2.
}
1244 \label{fig:comparaison-
2-original
}
1247 \begin{subfigure
}[t
]{0.18\textwidth}
1248 \includegraphics[width=
1\linewidth]{figures/comparaison-
2-master.jpg
}
1249 \caption{Méthode présentée dans ce papier, résultat attendu.
}
1250 \label{fig:comparaison-
2-master
}
1253 \begin{subfigure
}[t
]{0.18\textwidth}
1254 \includegraphics[width=
1\linewidth]{figures/comparaison-
2-ma.jpg
}
1255 \caption{\emph{Ma
}, la transformée de Hough dans le domaine des cercles crée deux foyers pour les ellipses.
}
1256 \label{fig:comparaison-
2-ma
}
1259 \begin{subfigure
}[t
]{0.18\textwidth}
1260 \includegraphics[width=
1\linewidth]{figures/comparaison-
2-diruberto.jpg
}
1261 \caption{\emph{Di Ruberto
}.
}
1262 \label{fig:comparaison-
2-diruberto
}
1264 \caption{Segmentation d'une cellule ellipsoïde.
}
1265 \label{fig:comparaison-
2}
1268 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}.
1270 \begin{figure
}[htbp
]
1272 \begin{subfigure
}[t
]{0.2\textwidth}
1273 \includegraphics[width=
1\linewidth]{figures/comparaison-
3-debris-original.jpg
}
1274 \caption{Extrait de l'image n°
12, un débris qui ne doit pas être confondu avec un parasite.
}
1275 \label{fig:comparaison-
1-original
}
1278 \begin{subfigure
}[t
]{0.2\textwidth}
1279 \includegraphics[width=
1\linewidth]{figures/comparaison-
3-debris-master.jpg
}
1280 \caption{Méthode présentée dans ce papier, résultat attendu.
}
1281 \label{fig:comparaison-
1-master
}
1284 \begin{subfigure
}[t
]{0.2\textwidth}
1285 \includegraphics[width=
1\linewidth]{figures/comparaison-
3-debris-ma.jpg
}
1286 \caption{\emph{Ma
} (faux-positif).
}
1287 \label{fig:comparaison-
1-ma
}
1289 \caption{Faux-positif lors de la détection des parasites avec la méthode de
\emph{Ma
}.
}
1290 \label{fig:comparaison-
3}
1293 La méthode de
\emph{Di Ruberto
} est, quant à elle, très sensible aux variations de la composante teinte de l'image de base. Par exemple, le traitement de l'image n°
4 donne un très grand nombre de faux parasites détectés. L'image n°
5 n'a pas aboutit car la teinte des parasites est très proche de celle des érythrocytes. Dans certain cas il est également nécessaire d'inverser la composante saturation car la méthode nécessite que les parasites soient plus saturées que les cellules et que ces dernières soient plus saturée que le fond.
1295 Ces deux méthodes, et dans une moindre mesure la méthode présentée ici, sont sensibles à l'illumination de l'image. Les images n°
8,
9 et
10 sont particulièrement touchées par ce phénomène. Cela se voit sur le tableau~
\ref{tab:resultats-parasites
} où le nombre d'érythrocytes manqués est élevé à la fois pour
\emph{Ma
} et
\emph{Di Ruberto
}. Ce problème est illustré par la figure~
\ref{fig:comparaison-
4}.
1297 \begin{figure
}[htbp
]
1299 \begin{subfigure
}[t
]{0.4\textwidth}
1300 \includegraphics[width=
1\linewidth]{figures/comparaison-
4-illumination-original.jpg
}
1301 \caption{Image originale, coin supérieur droit de l'image n°
8.
}
1302 \label{fig:comparaison-
4-original
}
1305 \begin{subfigure
}[t
]{0.4\textwidth}
1306 \includegraphics[width=
1\linewidth]{figures/comparaison-
4-illumination-master.png
}
1307 \caption{Méthode présentée dans ce papier, l'illumination affecte la détection des objets
colorés sombres.
}
1308 \label{fig:comparaison-
4-master
}
1311 \begin{subfigure
}[t
]{0.4\textwidth}
1312 \includegraphics[width=
1\linewidth]{figures/comparaison-
4-illumination-ma.png
}
1313 \caption{\emph{Ma
}, l'avant-plan et le fond sont séparés à l'aide de la méthode k-médianes où chaque élément de l'image est un vecteur (rouge, vert, bleu) et la distance entre deux éléments est calculée de manière euclidienne.
}
1314 \label{fig:comparaison-
4-ma
}
1317 \begin{subfigure
}[t
]{0.4\textwidth}
1318 \includegraphics[width=
1\linewidth]{figures/comparaison-
4-illumination-di-ruberto.png
}
1319 \caption{\emph{Di Ruberto
}, application de la méthode de Otsu à la composante verte au début de la segmentation des érythrocytes.
}
1320 \label{fig:comparaison-
4-di-ruberto
}
1322 \caption{Problème de l'illumination.
}
1323 \label{fig:comparaison-
4}
1327 \subsection{Discussion
}
1330 L'a priori de forme, comme la transformée de Hough dans le domaine des cercles utilisée par
\emph{Ma
}\cite{ma2010
}, donne de meilleures résultats qu'une approche purement morphologique telle que celle décrite par
\emph{Di Ruberto
}\cite{di-ruberto2001
}. Les érythrocytes ayant tendance à s'aplatir ou à se tourner, les résultats sont encore meilleures avec un a priori de forme elliptique tel que montré ici.
1336 * pas de granulometry
1337 * beaucoup de paramètres interdépendants et hard-codé, le fait de changer la résolution oblige à changer au moins quatre paramètres. Cela est très sommairement résolu en appliquant un filtre décimateur pour contraindre l'image en entrée à une résolution prédéfinie.
1340 \section{Conclusion
}
1345 \bibliographystyle{plain
}