ce6a0b681572936fb5fb7089028647efaa055681
[master-thesis.git] / rapport / main.tex
1 \documentclass[a4paper,10pt,twoside,titlepage]{article}
2
3 \usepackage[top=2.5cm, bottom=3cm, inner=5cm, outer=3cm]{geometry}
4
5 \usepackage[francais]{babel}
6 \usepackage[utf8]{inputenc}
7 \usepackage[T1]{fontenc}
8 \usepackage{lmodern}
9
10 \usepackage{amssymb, amsmath, amsthm}
11 \usepackage[title,titletoc,toc]{appendix}
12
13 \usepackage{framed}
14 \usepackage{graphicx}
15 \usepackage{caption}
16 \usepackage{subcaption}
17 \usepackage{listings}
18 \usepackage{url}
19 \usepackage{upquote}
20 \usepackage{color}
21 \usepackage[usenames,dvipsnames]{xcolor}
22 \usepackage{fancyhdr}
23 \usepackage{courier}
24 \usepackage{pifont}
25 \usepackage{csquotes}
26 \usepackage{changepage}
27
28 \strictpagecheck
29
30 \lstset{basicstyle=\footnotesize\ttfamily,breaklines=true}
31 \lstset{framextopmargin=50pt,frame=bottomline}
32 \definecolor{matlabCommentColor}{RGB}{0, 100, 0} % Green
33 \definecolor{matlabStringColor}{RGB}{204, 34, 34} % Red
34 \lstset{language=Matlab,%
35 breaklines=true,%
36 morekeywords={matlab2tikz},
37 keywordstyle=\color{blue},%
38 morekeywords=[2]{1}, keywordstyle=[2]{\color{black}},
39 identifierstyle=\color{black},%
40 stringstyle=\color{matlabStringColor},
41 commentstyle=\color{matlabCommentColor},
42 showstringspaces=false,%without this there will be a symbol in the places where there is a space
43 numbers=left,%
44 numberstyle={\tiny \color{black}},% size of the numbers
45 numbersep=9pt, % this defines how far the numbers are from the text
46 emph=[1]{for,end,break},emphstyle=[1]\color{red}, %some words to emphasis
47 %emph=[2]{word1,word2}, emphstyle=[2]{style},
48 }
49
50 \newcommand{\mli}[1]{\mathit{#1}} % Multi-letter identifier.
51
52 \renewcommand{\appendixtocname}{Annexes}
53
54 \pagestyle{fancy}
55 \fancyfoot[CE,CO]{}
56 \fancyfoot[LE,RO]{\thepage}
57
58 \begin{document}
59
60 \nocite{*} % Pour inclure toute la bibliographie (et pas seulement celle citée).
61
62 \begin{titlepage}
63 \begin{center}
64 \huge
65 \vspace*{1cm}
66 \textbf{Parasitémie automatisée de la malaria à partir d'images microscopiques}
67 \vspace{1cm}
68
69 \Large
70 Master of Science HES-SO in Engineering \\
71 \large
72 Technologie de l'information et de la communication
73
74
75 \vspace{1cm}
76
77 \includegraphics[width=3cm]{logos/hes-so_logo.jpg}
78
79 \vspace{0.5cm}
80
81 \includegraphics[width=4cm]{logos/mse_logo.jpg}
82
83
84 \vspace{8cm}
85
86 \large
87 Février 2016 - Révision n°1
88
89 \vspace{2cm}
90 \normalsize
91 Auteur : Grégory \textsc{Burri}\\
92 Prof. responsables : Michel \textsc{Kocher}, \textsc{Olivier Hüsser}
93
94 \vspace{2cm}
95 Master of Science HES-SO in Engineering\\
96 Av. de Provence 6\\
97 CH-1007 Lausanne\\
98
99 \end{center}
100 \end{titlepage}
101
102 %%%%%%%%%%%%%%%%%%
103 % Page vide (derrière le titre).
104 \newpage
105 \thispagestyle{empty}
106 \null
107
108 %%%%%%%%%%%%%%%%%%
109 % Page contenant les signatures.
110 \newpage
111 \thispagestyle{empty}
112 \noindent
113 Accepté par la HES-SO//Master (Suisse, Lausanne) sur proposition de M. Kocher.
114
115 \vspace{0.5cm}
116 \noindent
117 Prof. Michel Kocher, conseiller du projet d'approfondissement\\
118 Dr. Philippe Thévenaz, expert principal
119
120 \vspace{1cm}
121
122 \noindent
123 Lausanne, le
124
125 \vspace{1cm}
126
127 \noindent
128 \setlength{\tabcolsep}{30pt}
129 \begin{tabular}{ l l }
130 Prof. Michel Kocher. & Prof.\\
131 Conseiller & Responsable de la filière
132 \end{tabular}
133
134 \newpage
135
136 %%%%%%%%%%%%%%%%%%
137 % Page contenant le résumé et les mots-clefs.
138
139 \thispagestyle{empty}
140 \begin{center}
141 \textbf{Résumé}
142 \end{center}
143 Cet article a pour but la description et la mise en oeuvre d'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 microscopiques d'un frottis sanguin.
144
145 \vspace{5cm}
146
147
148 \begin{center}
149 \textbf{Mots-clefs}
150 \end{center}
151 \og{}malaria\fg{}, \og{}paludisme\fg{}, \og{}parasitémie\fg{}, \og{}taux d'infection\fg{}, \og{}logiciel\fg{}
152 \newpage
153
154
155 \thispagestyle{empty}
156 \tableofcontents
157 \newpage
158
159 %%%%%%%%%%%%%%%%%%
160 \checkoddpage
161 \ifoddpage
162 \else
163 \thispagestyle{empty}
164 \cleardoublepage % Devrait être \newpage, mais ça ne marche pas...
165 \fi
166
167 \section{Introduction}
168
169 % TODO: Future dans l'intro?
170
171 Le but 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. Cette méthode 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.
172
173 Cette réalisation est faite en partenariat avec le Dr. Guy Prod'hom de l'institut de microbiologie du \emph{CHUV} à Lausanne. % Ajouter du blabla
174
175 % Problème du comptage manuel
176
177 % \subsection{Images sources}
178
179 % Mentionner certains problèmes comme les débris ou les plaquettes
180
181 Les images à disposition correspondent à des photographies de sang infecté agrandies 50 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}).
182
183 \begin{figure}[htbp]
184 \centering
185 \begin{subfigure}[t]{0.3\textwidth}
186 \includegraphics[width=\linewidth]{img/medical_globules_rouges.jpg}
187 \caption{Globules rouges (\emph{érythrocyte})}
188 \label{fig:medical-globules-rouges}
189 \end{subfigure}
190 ~
191 \begin{subfigure}[t]{0.3\textwidth}
192 \includegraphics[width=\linewidth]{img/medical_globules_blancs.jpg}
193 \caption{Globules blancs (\emph{leucocyte})}
194 \label{fig:medical-globules-blancs}
195 \end{subfigure}
196 ~
197 \begin{subfigure}[t]{0.3\textwidth}
198 \includegraphics[width=\linewidth]{img/medical_plaquettes.jpg}
199 \caption{Plaquette (\emph{thrombocyte})}
200 \label{fig:medical-plaquettes}
201 \end{subfigure}
202 \caption{Les éléments principaux composant le sang}
203 \label{fig:medical-elements-sang}
204 \end{figure}
205
206 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}.
207
208 \begin{figure}[htbp]
209 \centering
210 \begin{subfigure}[t]{0.2\textwidth}
211 \includegraphics[width=\linewidth]{img/medical_plasmodium_1.jpg}
212 \caption{Trophozoïte immature (anneau)}
213 \label{fig:medical-plasmodium_1}
214 \end{subfigure}
215 ~
216 \begin{subfigure}[t]{0.2\textwidth}
217 \includegraphics[width=\linewidth]{img/medical_plasmodium_2.jpg}
218 \caption{Maturation du trophozoïte}
219 \label{fig:medical-plasmodium_2}
220 \end{subfigure}
221 ~
222 \begin{subfigure}[t]{0.2\textwidth}
223 \includegraphics[width=\linewidth]{img/medical_plasmodium_3.jpg}
224 \caption{Trophozoïte mature}
225 \label{fig:medical-plasmodium_3}
226 \end{subfigure}
227 ~
228 \begin{subfigure}[t]{0.2\textwidth}
229 \includegraphics[width=\linewidth]{img/medical_plasmodium_4.jpg}
230 \caption{Schizonte}
231 \label{fig:medical-plasmodium_4}
232 \end{subfigure}
233 \caption{Les différents stades de l'infection d'un globule rouge}
234 \label{fig:medical-plasmodium}
235 \end{figure}
236
237 %\subsection{Parasitémie de la malaria}
238
239 L'objectif 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}. 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.
240
241 La parasitémie est établit en pourcentage comme étant le rapport entre nombre d'érythrocytes infecté et le nombre total d'érythrocyte. Le group d'experts \emph{UK NEQAS} (\emph{United Kingdom National External Quality Assessment Service}) recommande de considéré un minimum de 1000 erythrocytes. 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~\%.
242
243 \begin{figure}[htbp]
244 \centering
245 \includegraphics[width=0.5\linewidth]{img/RBC_noyau_cytoplasme.pdf}
246 \caption{Détail des deux parties constituantes d'un trophozoïte immature}
247 \label{fig:noyau-cytoplasme}
248 \end{figure}
249
250 Certains artefacts comme des débris ou des plaquettes peuvent venir se superposer aux érythrocyte et être confondus avec des parasites. Ces cas peuvent être relativement fréquents et altérer significativement la parasitémie si comptés comme étant des cas positifs d'infection. La figure~\ref{fig:RBC-artefact} montre quelques exemple de faux positifs potentiels.
251
252 \begin{figure}[htbp]
253 \centering
254 \begin{subfigure}[t]{0.2\textwidth}
255 \includegraphics[width=\linewidth]{img/RBC-plaquette.jpg}
256 \caption{Thrombocyte}
257 \label{fig:RBC-artefact-plaquette}
258 \end{subfigure}
259 ~
260 \begin{subfigure}[t]{0.2\textwidth}
261 \includegraphics[width=\linewidth]{img/RBC-debris-1.jpg}
262 \caption{Débris}
263 \label{fig:RBC-artefact-debris-1}
264 \end{subfigure}
265 ~
266 \begin{subfigure}[t]{0.2\textwidth}
267 \includegraphics[width=\linewidth]{img/RBC-debris-2.jpg}
268 \caption{Débris}
269 \label{fig:RBC-artefact-debris-2}
270 \end{subfigure}
271 ~
272 \begin{subfigure}[t]{0.2\textwidth}
273 \includegraphics[width=\linewidth]{img/RBC-debris-3.jpg}
274 \caption{Débris}
275 \label{fig:RBC-artefact-debris-3}
276 \end{subfigure}
277 \caption{Artefacts se supperposant à des érytrocytes}
278 \label{fig:RBC-artefact}
279 \end{figure}
280
281
282
283 \section{Aperçu du processus}
284
285 La figure~\ref{fig:processusComplet} montre le processus complet du traitement d'une image de frottis sanguin. Celui ci peut-être divisé en trois groupe de traitement à savoir la ségmentation des érytrocytes, la ségmentation des parasites et finalement la classification des cellules.
286
287 \begin{figure}[htbp]
288 \centering
289 \includegraphics[width=0.9\linewidth]{img/schema_processus_2.pdf}
290 \caption{Le processus complet.}
291 \label{fig:processusComplet}
292 \end{figure}
293
294 Dans le premier groupe, l'on va chercher à construire des ellipses qui correspondent le mieux aux bords des érythrocytes. Pour ce faire une estimation du rayon moyen est réalisée par granulométrie à l'aide d'une succession de fermeture par aire. La construction des ellipses utilise les pixels des bords des érythrocytes ainsi que son gradient, la méthode \emph{RANSAC} permet de créer un grand nombre d'ellipses candidates auquel un score est attribué. Finalement les ellipses sont élaguée en supprimant celles chevauchées par d'autres ellipses sont le score est supérieur.
295
296 Dans le deuxième groupe, les zones colorées et sombre vont être extraites en comparant les valeurs d'intensité de l'image avec la moyenne d'intensité des éléments de l'avant-plan. Ces zones sombres correspondent aux leucocytes, aux plaquettes et à certains débris. Une fermeture morphologique, dont la taille de l'élément structurant est calculé en fonction du rayon moyen, va permettre de mettre en évidence le cytoplasme des parasites. Les noyaux sont, quant à eux, mis en évidence à l'aide d'une fermeture par aire.
297
298 Le troisième groupe correspond à la mise en commun des informations du premier et du deuxième groupe afin de définir les érythrocytes et de les classer. La parasitémie est alors établit en calculant le rapport entre la population d'érythrocytes infecté et celle saine.
299
300
301 \section{Détail de la méthode}
302
303 % filtrage préliminaire (taille d'un érythrocyte: 7.5 \micro~m)
304
305 Les filtres gaussiens appliquées initialement vont permettre de supprimer une partie du bruit haute-fréquence. L'écart type de chaque filtre est choisi en fonction de la taille des objets. La taille d'un érythrocyte est d'environ 7.5~\textmu{m} et la taille d'un parasite d'environ 2.5~\textmu{m}. Des écarts types de 0.22~\textmu{m} et 0.15~\textmu{m} sont choisis pour pour la segmentation des érythrocytes respectivement la segmentation des parasites.
306
307 Il est également important de supprimer avant le traitement la partie d'intensité plus élevée se trouvant au centre des érythrocytes (visible sur la figure~\ref{fig:medical-globules-rouges}) sans quoi les fermetures (par aire ou morphologiques) faites pendant la granulométrie s'appliqueraient qu'à une partie de la cellule. De plus, cette particularité gêne également lors de la recherche des bords.
308
309 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.
310
311 \subsection{Identification des érythrocytes}
312 \label{identification-erythrocytes}
313
314 Le but de cette étape est d'identifier les érythrocytes. Le profil de ceux-ci est un disque biconcave et apparait de manière plus ou moins déformée sur les photographies. Ces déformations les font prendre une forme plus ou moins elliptique dont le rapport entre le grand axe et le petit axe n'excède pas 1.6 ($\pm 23~\%$ d'un rayon moyen).
315
316 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}.
317
318 \begin{figure}[htbp]
319 \centering
320 \includegraphics[width=0.5\linewidth]{img/ellipse-parametres.pdf}
321 \caption{Paramètre d'une ellipse, $\alpha \in [0, \pi[$ est l'angle d'inclinaison du grand axe $a$, $a \geqslant b$ > 0}
322 \label{fig:ellipse-parametres}
323 \end{figure}
324
325
326 \subsubsection{Granulométrie}
327 \label{granulometrie}
328
329 L'objectif est de déterminer le rayon moyen des érythrocytes. Pour ce faire nous allons appliquer une série de fermetures par aire et calculer les différences des sommes des intensités de chaque pixel. Chaque aire est calculée comme étant celui d'un cercle de rayon donné. Les rayons des aires vont être compris autour d'un rayon estimé à partir de la résolution donnée initialement. Les bornes inférieure et supérieure correspondent au rayon estimé minoré de 50~\% respectivement au rayon estimé majoré de 50~\%.
330
331 La fermeture suppose ici que les érythrocytes on un niveau d'intensité plus bas que le fond, ce qui est le cas pour la composante verte dans toutes les images étudiées.
332
333 Deux autres approches on également été essayées, à savoir la fermeture morphologique par un élément structurant en forme de disque et par un élément structurant de forme octogonale. Un des problèmes de ces deux approches est qu'elles ont tendance à sous-estimer légèrement le rayon moyen dans le cas d'éléments elliptiques. La figure~\ref{fig:granulometrie-ellipse-cercle-closing-comparaison} montre à gauche le résultat d'une granulometrie par aire (le cercle et l'ellipse ont la même aire) et à droite le résultat d'une granulometrie morphologique. Le rayon $r$ est plus proche de la moyenne entre les deux rayons de l'ellipse $a$ et $b$ que le rayon $r'$. Il est à noter que dans cet exemple $a = 2b$ et que donc $r = \sqrt{2}b = 1.41b$ ce qui n'est pas très éloigné de la moyenne $(a+b)/2 = (2+1)/2 = 1.5$.
334
335 \begin{figure}[htbp]
336 \centering
337 \begin{subfigure}[t]{0.4\textwidth}
338 \includegraphics[width=\linewidth]{img/granulometrie-ellipse-cercle-closing-area.pdf}
339 \caption{Cercle dont la surface est égale à celle de l'ellipse}
340 \label{fig:granulometrie-ellipse-cercle-closing-area}
341 \end{subfigure}
342 ~
343 \begin{subfigure}[t]{0.4\textwidth}
344 \includegraphics[width=\linewidth]{img/granulometrie-ellipse-cercle-closing-morpho.pdf}
345 \caption{Cercle dont \emph{r} est égale au petit rayon \emph{a} de l'ellipse}
346 \label{fig:granulometrie-ellipse-cercle-closing-morpho}
347 \end{subfigure}
348 \caption{Comparaison du rayon d'un cercle trouvé par fermeture par aire d'une ellipse (à gauche) et celui trouvé par une fermeture morphologique (à droite)}
349 \label{fig:granulometrie-ellipse-cercle-closing-comparaison}
350 \end{figure}
351
352 Un autre problème de la granulométrie à l'aide de fermetures morphologique utilisant un disque comme élément structurant est sa complexité algorithmique quadratique en fonction du rayon du disque comme le montre la figure~\ref{fig:spectre-granulométrique-morpho-cercle}. La figure~\ref{fig:spectre-granulométrique-morpho-cercle} montre un exemple de progression du temps de calcul en fonction du rayon. Une solution à ce problème est l'utilisation d'une approximation du cercle, l'octogone, dont la dilaté ou l'érodé par un autre octogone crée un nouvel octogone. L'associativité de l'erosion ou de la dilatation, montré par l'équation~\ref{eq:dilatation-associatif}, permet la décomposition d'une dilatation ($e_{1} \oplus e_{2}$) en plusieurs dilatations successives ($\oplus~e_{1}$ puis $\oplus~e_{2}$). Cela permet de réduire la complexité algorithmique et ainsi de gagner du temps.
353
354 % TODO: Définition de la somme de Minkowski?
355
356 {\setlength{\abovedisplayskip}{0pt}
357 \begin{flalign} \label{eq:dilatation-associatif}
358 f' = f \oplus (e_{1} \oplus e_{2}) = (f \oplus e_{1}) \oplus e_{2} &
359 \end{flalign}
360
361 L'implémentation 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.
362
363 Concernant les mesures du temps de calcul avec des images réelles, l'on constate que la fermeture par aire est beaucoup plus rapide : 8.4~s (figure~\ref{fig:temps-aire}) que la fermeture morphologique : 54~s (figures~\ref{fig:spectre-granulométrique-morpho-cercle} et~\ref{fig:spectre-granulométrique-morpho-octogone}). La première fermeture par aire, pour le premier rayon, prend un peu moins de 5~s puis les suivantes environ 100~ms. Cela s'explique par la recherche initiale des minima puis par l'agrandissement ceux-ci jusqu'à l'aire correspondant au premier rayon. Le détail de cet algorithme se trouve à la section~\ref{} % TODO: référence.
364
365 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.
366
367 \begin{figure}[htbp]
368 \centering
369 \begin{subfigure}[t]{0.48\textwidth}
370 \includegraphics[width=1\linewidth]{img/Granulometry-pattern-spectrum-area.pdf}
371 \caption{Spectre granulométrique d'une succession de fermetures par aire}
372 \label{fig:spectre-granulométrique-aire}
373 \end{subfigure}
374 ~
375 \begin{subfigure}[t]{0.48\textwidth}
376 \includegraphics[width=1\linewidth]{img/Granulometry-time-area.pdf}
377 \caption{Temps en milliseconde pour chaque fermeture. Temps total : 8.4~s}
378 \label{fig:temps-aire}
379 \end{subfigure}
380 \caption{Spectre granulométrique et temps en milliseconde pour chacune des fermetures par aire. Réalisé sur une image 2592 \texttimes 1944 contenant environ 700 érythrocytes}
381 \label{fig:Granulometry-area}
382 \end{figure}
383
384 \begin{figure}[htbp]
385 \centering
386 \begin{subfigure}[t]{0.48\textwidth}
387 \includegraphics[width=1\linewidth]{img/Granulometry-pattern-spectrum-morpho-circle.pdf}
388 \caption{Spectre granulométrique d'une succession de fermetures morphologiques avec un disque}
389 \label{fig:spectre-granulométrique-morpho-cercle}
390 \end{subfigure}
391 ~
392 \begin{subfigure}[t]{0.48\textwidth}
393 \includegraphics[width=1\linewidth]{img/Granulometry-time-morpho-circle.pdf}
394 \caption{Temps en milliseconde pour chaque fermeture. Temps total : 54~s}
395 \label{fig:temps-morpho-cercle}
396 \end{subfigure}
397 \caption{Spectre granulométrique et temps en milliseconde pour chacune des fermetures morphologique avec un disque comme élément structurant. Réalisé sur une image 2592 \texttimes 1944 contenant environ 700 érythrocytes}
398 \label{fig:Granulometry-morpho-circle}
399 \end{figure}
400
401 \begin{figure}[htbp]
402 \centering
403 \begin{subfigure}[t]{0.48\textwidth}
404 \includegraphics[width=1\linewidth]{img/Granulometry-pattern-spectrum-morpho-octagon.pdf}
405 \caption{Spectre granulométrique d'une succession de fermetures morphologiques avec un octogone}
406 \label{fig:spectre-granulométrique-morpho-octogone}
407 \end{subfigure}
408 ~
409 \begin{subfigure}[t]{0.48\textwidth}
410 \includegraphics[width=1\linewidth]{img/Granulometry-time-morpho-octagon.pdf}
411 \caption{Temps en milliseconde pour chaque fermeture. Temps total : 54~s}
412 \label{fig:temps-morpho-octogone}
413 \end{subfigure}
414 \caption{Spectre granulométrique et temps en milliseconde pour chacune des fermetures morphologique avec un octogone comme élément structurant. Réalisé sur une image 2592 \texttimes 1944 contenant environ 700 érythrocytes}
415 \label{fig:Granulometry-morpho-octagon}
416 \end{figure}
417
418 À 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)$.
419
420
421 \subsubsection{Recherche des bords des érythrocytes et calcul du gradient associé}
422
423 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.
424
425 Le gradient est définit comme étant deux composantes $g_x$ et $g_y$ en chaque point correspondant aux dérivés partielles en $x$ et en $y$ d'une image $f$ comme montré par l'équation~\ref{eq:composantes-gradient}.
426
427 {\setlength{\abovedisplayskip}{0pt}
428 \begin{flalign} \label{eq:composantes-gradient}
429 \nabla f = \begin{pmatrix}g_x \\ g_y \end{pmatrix} = \begin{pmatrix}\partial f / \partial x \\ \partial f / \partial y \end{pmatrix}
430 \end{flalign}
431
432 Le filtre de Sobel permet d'obtenir une bonne approximation de ces deux composantes en appliquant deux convolutions avec les deux noyaux montrés à l'équation~\ref{eq:sobel-noyaux}. Une application sur une image réelle est montrée par la figure~\ref{fig:gradient}.
433
434 {\setlength{\abovedisplayskip}{0pt}
435 \begin{flalign} \label{eq:sobel-noyaux}
436 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}
437 \end{flalign}
438
439 La norme euclidienne en chaque point est obtenu par l'équation~\ref{eq:gradient-norme}. La méthode de Otsu est ensuite appliquée afin de calculer un seuil qui sera utilisé pour la définition des bords par hystérèse.
440
441 {\setlength{\abovedisplayskip}{0pt}
442 \begin{flalign} \label{eq:gradient-norme}
443 M(x, y) = \| \nabla f \| = \sqrt{g_x^2 + g_y^2}
444 \end{flalign}
445
446 \begin{figure}[htbp]
447 \centering
448 \begin{subfigure}[t]{0.4\textwidth}
449 \includegraphics[width=1\linewidth]{img/gradient-exemple.jpg}
450 \end{subfigure}
451 ~
452 \begin{subfigure}[t]{0.4\textwidth}
453 \includegraphics[width=1\linewidth,interpolate=false]{img/gradient-exemple.pdf}
454 \end{subfigure}
455 \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}
456 \label{fig:gradient}
457 \end{figure}
458
459 Afin de ne garder que les crêtes, un algorithme de suppression des non-maxima est appliqué. Celui ci est illustré par le figure~\ref{fig:non-maximum-suppression-schema} et va, pour chaque élément de la norme, le comparer à ses voisins en définissant l'orientation de l'arête du bord comme étant la tangente perpendiculaire au gradient. Pour chaque coté de l'arête, une interpolation est calculée entre les deux éléments les plus proche de la droite ayant la même direction que le gradient et passant par l'élément traité. Par exemple, par rapport à la figure~\ref{fig:non-maximum-suppression-schema}, la valeur des voisins du haut est calculée comme étant $\tau = n_1 \cdot (1 - v_x/v_y) + n_2 \cdot v_x/v_y$ et celle des voisins du bas comme étant $\upsilon = n_4 \cdot (1 - v_x/v_y) + n_3 \cdot v_x/v_y$ où $v_x$ et $v_y$ sont les composantes du gradient au point traité $e$. Si la norme de $e$ est strictement plus grande que les valeurs $\tau$ et $\upsilon$ alors celui-ci sera définit comme étant un maxima. La figure~\ref{fig:nms} montre la valeur de la norme ainsi que les maximas mis en évidence.
460
461 \begin{figure}[htbp]
462 \centering
463 \begin{subfigure}[t]{0.35\textwidth}
464 \includegraphics[width=1\linewidth,interpolate=false]{img/non-maximum-suppression-schema.pdf}
465 \caption{Les voisins ($n_1$, $n_2$, $n_3$, $n_4$) de $e$ qui vont être utilisés pour déterminé si $e$ est un maxima}
466 \label{fig:non-maximum-suppression-schema}
467 \end{subfigure}
468 ~
469 \begin{subfigure}[t]{0.35\textwidth}
470 \includegraphics[width=1\linewidth,interpolate=false]{img/nms.png}
471 \caption{Le résultat de l'application de la suppression des non-maxima. Les maximas sont mis en évidence en blanc et la norme du gradient est montré avec des niveaux d'intensité de gris}
472 \label{fig:nms}
473 \end{subfigure}
474 \caption{Suppression des non-maxima}
475 \label{fig:non-maximum-suppression}
476 \end{figure}
477
478 Le résultat obtenu par l'étape précédente, la suppression des non-maxima, va prendre en compte tous les bords et ceci indépendamment de la norme du gradient (inclinaison de la pente). Il est nécessaire maintenant de ne garder que les bords les plus pertinent, pour ce faire une recherche par hystérèse est appliquée en ne gardant, dans un premier temps, que les éléments dont la norme est supérieure au seuil obtenu précédemment par la méthode de Otsu majoré d'un pourcentage (par exemple 10~\%). Puis, dans un second temps, nous y ajoutons récursivement tous les éléments 8-connexes dont la norme est supérieure au seuil.
479
480 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.
481
482 %\subsubsection{Recherche des bords des érythrocytes}
483
484 \subsubsection{Construction d'ellipses}
485
486 L'étape précédente nous fournit une matrice de vecteurs définissant le gradient. Les éléments dont le vecteur est non-nul constituent les bords des érythrocytes.
487
488 Une méthode proche de la méthode RANSAC~\ref{} (\emph{RANdom SAmple Consensus}) est appliquée qui consiste à faire glisser une fenêtre à travers la matrice et à tirer aléatoirement, un certain nombre de fois, trois points éloignés les uns des autres. À l'aide du gradient de deux des trois point il est éventuellement possible de construire une ellipse unique. Les ellipses ainsi construites sont alors ajoutées à l'ensemble des ellipses. Une fois la matrice entièrement traversée par la fenêtre, un score est attribué à chacune des ellipses en fonction de sa proximité aux autres ellipses. Finalement, les ellipses dont le score est trop faible, ou qui se trouve trop proche d'une ellipse ayant un score plus élevé sont supprimées.
489
490 La taille de la fenêtre glissante est un carré dont la longueur des cotés correspond au rayon maximum (voir section~\ref{granulometrie}). La fenêtre va balayer toute la matrice de gauche à droite et de haut en bas. Un incrément d'un quart de sa dimension a été choisi. Pour chaque position un certain nombre de tirage de triplet de points non-égaux parmi les vecteurs non-nuls est effectué, ce nombre est égal à un coefficient multipliant le nombre courant d'élément du bord. Celui ci à été ajusté comme valant 1.
491
492 \begin{figure}[htbp]
493 \centering
494 \includegraphics[width=0.6\linewidth]{img/construction-ellipse.pdf}
495 \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.}
496 \label{fig:construction-ellipse}
497 \end{figure}
498
499 À partir de chaque triplet de point et des deux vecteurs du gradient au deux premiers points une ellipse va tenter d'être construite comme montrer par la figure~\ref{fig:construction-ellipse}. Tout d'abord il faut s'assurer que les deux vecteurs $v_1$ et $v_2$ pointent bien dans
500
501 \begin{figure}[htbp]
502 \centering
503 \begin{subfigure}[t]{0.4\textwidth}
504 \includegraphics[width=1\linewidth]{figures/ellipses/example-1-green-filtered.jpg}
505 \caption{}
506 \label{}
507 \end{subfigure}
508 ~
509 \begin{subfigure}[t]{0.4\textwidth}
510 \includegraphics[width=1\linewidth]{figures/ellipses/example-2-edges.png}
511 \caption{}
512 \label{}
513 \end{subfigure}
514 ~
515 \begin{subfigure}[t]{0.4\textwidth}
516 \includegraphics[width=1\linewidth]{figures/ellipses/example-3-all-ellipses.jpg}
517 \caption{}
518 \label{}
519 \end{subfigure}
520 ~
521 \begin{subfigure}[t]{0.4\textwidth}
522 \includegraphics[width=1\linewidth]{figures/ellipses/example-4-ellipses.jpg}
523 \caption{}
524 \label{}
525 \end{subfigure}
526 \caption{}
527 \label{}
528 \end{figure}
529
530
531
532 % RANSAC + scoring + pruning
533
534 \subsubsection{Élagage des ellipses}
535
536 % suppression uniquement
537
538
539 \subsection{Segmentation des parasites}
540
541 \subsubsection{Extraction des zones colorées sombres}
542
543 \subsubsection{Segmentation des cytoplasmes}
544
545 \subsubsection{Segmentation des noyaux}
546
547 \subsection{Classification des cellules}
548
549 \subsubsection{Suppression des cellules non-conformes}
550
551 \subsubsection{Attribution d'une classe}
552
553
554 \section{Implémentation}
555
556 % Float32
557
558
559
560 \section{Résultats}
561
562 % Comparaison avec MA et le PA.
563
564
565
566 \section{Conclusion}
567
568 \bibliographystyle{plain}
569 \bibliography{main}
570
571
572 \end{document}