Vous êtes sur la page 1sur 28

1

Remerciement

On tenait à prendre quelques instants pour vous remercier, Monsieur AIT

KBIR M’hamed, de tout cœur pour votre excellent encadrement durant votre

module de vision artificielle. Votre enseignement a été d'une grande aide pour

nous. Votre façon d'expliquer les concepts complexes et de nous guider dans la

résolution des problèmes a été remarquable.

Encore une fois, nous vous remercions de nous avoir donné l'opportunité

de choisir et de proposer notre sujet de projet, et de l'avoir validé. Nous

espérons être capables de réussir ce travail et de fournir un bon résultat.

2
Table de matières

I.Introduction..................................................................................................................................................... 4
II.Objectifs de projet : .......................................................................................................................................4
III.Description du dataset : ............................................................................................................................... 5
IV.Outils utilisés : .............................................................................................................................................. 8
V.Création de modèle : ...................................................................................................................................... 9
1.Chargement de données : ............................................................................................................................. 9
2.Répartition de données : ............................................................................................................................. 10
3.Prétraitement des images :.......................................................................................................................... 11
4.Construction du modèle U-Net :................................................................................................................. 16
VI.Exemples des Predictions du modèle ……………………….……………………………………….……21
VII.Deploiment du modèle…………………………………………………………………………………...….22
VIII.Conclusion : ............................................................................................................................................. 26
IX.Bibliographie : ............................................................................................................................................ 27

3
I. Introduction
Les tumeurs cérébrales demeurent un défi majeur dans le domaine médical et neurologique,
caractérisées par une croissance anormale de cellules dans le cerveau, la moelle épinière ou
les structures crâniennes. Qu'elles soient bénignes ou malignes, leur détection précoce et une
évaluation précise s'avèrent cruciales pour la prise en charge efficace des patients. Les
symptômes, variant en fonction de la taille et de l'emplacement de la tumeur, incluent des
maux de tête, des nausées, des troubles visuels, des perturbations de l'équilibre et des
altérations de la parole.
Le diagnostic repose souvent sur des examens tels que l'IRM, la TDM et la ponction lombaire,
permettant d'orienter le choix des traitements, parmi lesquels la chirurgie, la radiothérapie et
la chimiothérapie. Cependant, malgré ces avancées, les tumeurs cérébrales demeurent un
défi redoutable, et leur taux de survie, selon l'OMS, est estimé à environ 30 % à 5 ans.
Un facteur crucial dans le pronostic est le retard de diagnostic, influençant grandement les
chances de survie. Une étude révélatrice publiée dans le journal "Cancer" souligne que le taux
de survie à 5 ans varie de manière significative en fonction du moment du diagnostic, passant
de 43 % pour une détection précoce (dans les 3 mois suivant l'apparition des symptômes) à
25 % pour des diagnostics tardifs (plus de 6 mois après le début des symptômes).
Cependant, même avec les progrès notables dans le domaine de l'imagerie médicale, la
détection précoce des tumeurs cérébrales reste entravée par des défis techniques,
notamment le bruit dans les images d'IRM. Ces obstacles influent de manière substantielle sur
la précision de la détection précoce, constituant un appel à l'innovation dans le domaine de
l'analyse et du traitement des images IRM. Ce projet se positionne au cœur de cette
nécessité, visant à surmonter ces obstacles pour améliorer significativement les perspectives
de traitement et les résultats pour les patients atteints de tumeurs cérébrales.

II. Objectifs de projet :

Dans le cadre de ce projet, notre objectif principal est de mettre en œuvre un programme de
Deep learning dédié à la segmentation des images IRM du cerveau, suivi de la détection
précise des tumeurs cérébrales. Les grandes lignes de nos objectifs sont les suivantes :
1. Segmentation des Images IRM :
• Mettre au point un modèle de deep learning capable de segmenter les structures
cérébrales sur les images IRM en créant des masques pour les tumeurs. La
segmentation précise constitue la première étape cruciale pour la détection
ultérieure des tumeurs.
2. Détection Précise des Tumeurs Cérébrales :

4
• Intégrer des mécanismes de détection des tumeurs dans le modèle, permettant
l'identification des anomalies présentes dans les régions segmentées.
3. Optimisation du Modèle :
• Optimiser le modèle de deep learning en ajustant ses paramètres afin d'améliorer sa
performance globale. Cette étape vise à garantir la précision et la fiabilité du modèle.
4. Validation et Évaluation Comparative :
• Valider rigoureusement le modèle en utilisant divers ensembles de données. Ensuite,
procéder à une évaluation comparative avec les méthodes de détection actuellement
en usage pour démontrer l'efficacité de notre approche.
5. Tester le modèle manuellement avec des nouveaux images IRM :
• La mise en œuvre d’une application (programme de teste) basique pour tester notre
modèle en faisant la prédiction sur les nouvelles images IRM.

Remarque :
Le choix du modèle UNET pour notre projet de segmentation d'images médicales s'est avéré
judicieux en raison de ses nombreux avantages. UNET est spécifiquement conçu pour les
tâches de segmentation, avec une architecture qui permet de capturer à la fois les
caractéristiques contextuelles et spatiales des images. Sa structure en forme d'U, avec une
combinaison de couches d'encodeur et de décodeur, favorise une représentation détaillée
des régions d'intérêt. De plus, UNET est capable de gérer efficacement les images médicales
avec des structures complexes, telles que les tumeurs cérébrales, en fournissant une
segmentation précise même dans les zones difficiles à discerner. Cette adaptabilité et cette
performance en font un choix optimal pour notre application, où la précision de la
segmentation est cruciale pour le diagnostic médical.

III. Description du dataset :

Le Dataset utilisé dans le cadre de notre projet n'a pas été constitué en interne, mais a été

5
obtenu à partir d'une source externe, spécifiquement sur Internet. Cette base de données
exhaustive regroupe un grand nombre d'images IRM de cerveaux, caractérisées par leur
qualité élevée. Un aspect essentiel de ce Dataset est son inclusion de masques associés aux
tumeurs.
Voici une description claire trouvée avec le dataset :
‘’ Ce dataset contient des images IRM cérébrales accompagnées de masques manuels de
segmentation des anomalies FLAIR. Les images ont été obtenues à partir de The Cancer Imaging
Archive (TCIA). Elles correspondent à 110 patients inclus dans la collection de gliomes de bas grade de
The Cancer Genome Atlas (TCGA) avec au moins une séquence d'inversion de récupération atténuée
par le fluide (FLAIR) et des données de regroupement génomique disponibles. Les clusters
génomiques des tumeurs et les données des patients sont fournies dans le fichier data.csv.

Toutes les images sont fournies au format .tif avec 3 canaux par image. Pour 101 cas, 3
séquences sont disponibles, à savoir pré-contraste, FLAIR, post-contraste (dans cet ordre de
canaux). Pour 9 cas, la séquence post-contraste est manquante et pour 6 cas, la séquence
pré-contraste est manquante. Les séquences manquantes sont remplacées par la séquence
FLAIR pour que toutes les images aient 3 canaux. Les masques sont des images binaires à 1
canal. Ils segmentent les anomalies FLAIR présentes dans la séquence FLAIR (disponible pour
tous les cas).
Le dataset est organisé en 110 dossiers nommés d'après l'ID du cas qui contient des
informations sur l'institution source. Chaque dossier contient des images IRM avec la
convention de dénomination suivante :
TCGA_<code-de-l'institution>_<id-du-patient>_<numéro-de-tranche>.tif
Les masques correspondants ont un suffixe _mask. ‘’

6
Exemple TGCA_CS :

Exemple TGCA_DU :

Exemple TGCA_FG :

Exemple TGCA_HT :

7
IV. Outils utilisés :
1. Bibliothèques Python :
• matplotlib.pyplot: Utilisée pour la visualisation des graphiques.
• numpy: Utilisée pour les opérations numériques.
• glob: Utilisée pour rechercher des chemins de fichiers correspondant à un motif
spécifique.
• cv2 (OpenCV): Utilisée pour le traitement d'images.
• pandas: Utilisée pour manipuler et analyser des données.
2. Deep Learning Framework :
• torch (PyTorch): Utilisé pour la construction et l'entraînement de modèles de
deep learning.
3. Modules PyTorch spécifiques :
• torchvision.transforms: Utilisé pour appliquer des transformations aux images.
• torch.nn: Utilisé pour définir des modules de réseaux de neurones.
4. Algorithmes / Concepts de Deep Learning :
• U-Net : Architecture de réseau de neurones convolutionnels CNN souvent
utilisée pour la segmentation d'images médicales.
• Optimiseur Adam : Algorithme d'optimisation adaptatif utilisé pour mettre à jour
les poids du modèle pendant l'entraînement.
• Fonction de perte CrossEntropy : Utilisée pour évaluer la divergence entre les
prédictions du modèle et les masques réels.

8
5. Techniques de Prétraitement d'Images :
• Normalisation des images : Utilisée pour normaliser les valeurs des pixels des
images.
• Data Augmentation : Utilisée pour augmenter la taille du dataset en appliquant
des transformations telles que la rotation et le retournement.

V. Création de modèle :

1. Chargement de données :

9
2. Répartition de données :

Résultat :

10
3. Prétraitement des images :

➢ Calcul de la moyenne et l’écart type :


Ce morceau de code calcule la moyenne et l'écart type des intensités des pixels pour
l'ensemble du jeu de données d'images. Il utilise des boucles pour parcourir chaque image,
lire les intensités des pixels avec OpenCV, les convertir en tenseurs PyTorch, et effectue les
calculs nécessaires pour obtenir la moyenne et l'écart type. Enfin, les résultats sont affichés.

11
Résultat :

➢ Transformation des Images et Masques :


Cette partie du code effectue le chargement des images et des masques à partir de chemins
d'accès spécifiques. Les images sont redimensionnées à une taille de 96x96 pixels. En fonction
du type d'action (images ou masques), les transformations appropriées sont appliquées, telles
que la conversion en tenseur PyTorch, le changement de type de données, et la
normalisation. Les images ainsi prétraitées sont ensuite ajoutées à la liste respective
(image_data pour les images et mask_data pour les masques).

12
➢ Division du jeu de données en ensembles d'entraînement, de validation et de
test :
Ce code divise le jeu de données en ensembles d'entraînement, de validation et de test en
fonction d'un pourcentage prédéfini. Il affiche également la taille de chaque ensemble pour
vérification.

Résultat :

-> 2227 images et 2227 masques (chaque image a un masque)

->Le jeu de données est divisé en 3 parties : 1336 images d’entraînement, 445 images de

13
validation et 446 images de test.

L’ensembles d'entraînement (trimage_data, trmask_data) :


# Ces ensembles sont utilisés pour entraîner le modèle. Le modèle apprend sur ces données
pour ajuster ses paramètres afin de minimiser la fonction de perte.

L’ensembles de validation (vimage_data, vmask_data) :


# Ces ensembles sont utilisés pour évaluer les performances du modèle pendant
l'entraînement. Après chaque époque, le modèle est évalué sur ces données pour estimer sa
performance sans influencer ses paramètres.

L’ensemble de test (testimage_data, testmask_data) :


# Ces ensembles sont utilisés pour évaluer les performances finales du modèle, une fois
l'entraînement terminé. Le modèle n'a pas vu ces données pendant l'entraînement, ce qui
permet de vérifier s'il peut généraliser correctement à de nouvelles données.

➢ Augmentation de données :

• Cette fonction implémente des transformations d'augmentation de données sur les


images du jeu de données.
• Trois types d'augmentation sont appliqués : une rotation de 90 degrés, un retournement
vertical, et un retournement horizontal.
• La variable count est utilisée pour déterminer quelle augmentation appliquer à chaque
itération.
• Chaque augmentation modifie l'image d'origine, et la nouvelle image est ajoutée au jeu de
données.

Remarque :
Les transformations d'augmentation, telles que la rotation et le retournement, sont
appliquées de manière aléatoire à chaque image du jeu de données. Cela crée une diversité
dans les exemples présentés au modèle pendant l'entraînement. Par exemple, le modèle peut

14
voir la même tumeur sous différents angles en raison de la rotation, ou il peut apprendre à
reconnaître une tumeur indépendamment de son orientation grâce au retournement vertical
ou horizontal.

Voici le résultat d’augmentation :

➢ Création des DataLoaders :


Utiliser la bibliothèque PyTorch pour créer des DataLoaders à partir des ensembles d'images
et de masques d'entraînement, de validation et de test. Les données sont regroupées en
tuples, puis zippées avant d'être transformées en listes. Ces listes sont ensuite utilisées pour
créer des DataLoaders qui faciliteront l'itération sur les données pendant l'entraînement du
modèle.

➢ Visualisation des images des DataLoaders :

15
4. Construction du modèle U-Net :
Définition d’une architecture U-Net pour la segmentation d'images médicales. La classe
ConvBlock représente un bloc de convolution individuel utilisé dans la partie bottleneck du
réseau. Les classes StackEncoder et StackDecoder définissent les parties encodeur et
décodeur du réseau, respectivement. Enfin, la classe UNET combine ces parties pour créer le
modèle complet U-Net.
Le modèle prend en compte les dimensions d'entrée spécifiées dans input_shape.
La fonction forward effectue la propagation avant à travers le réseau.

16
➢ Génération de données aléatoires pour tester le modèle U-Net :

Ce code génère des données d'entrée aléatoires pour tester le modèle U-Net. Il crée une
instance du modèle avec la même forme que les données d'entrée et passe ensuite les
données d'entrée à travers le modèle. Enfin, il affiche les formes des données d'entrée et de
sortie pour vérifier les dimensions :

➢ Configuration de l'optimiseur et de la fonction de perte :

Dans ce code, un optimiseur Adam est configuré pour optimiser les paramètres du modèle.
L'optimiseur utilise un taux d'apprentissage de 0.0001. De plus, la fonction de perte
CrossEntropyLoss est définie comme critère pour évaluer la différence entre les prédictions
du modèle et les véritables étiquettes (labels) lors de l'entraînement.

➢ Entraînement du modèle U-Net :

Ce code réalise l'entraînement du modèle U-Net pour la segmentation d'images IRM du


cerveau. Il effectue des boucles sur les époques, calculant les pertes d'entraînement et de
validation à chaque itération. Les modèles avec une perte de validation minimale sont

17
sauvegardés :

Le code enregistre le modèle (brainmrisegmentation.pth) lorsque la perte de validation


atteint une nouvelle valeur minimale. Cela permet de sauvegarder le meilleur modèle obtenu
pendant l'entraînement. L'enregistrement du modèle est une bonne pratique pour éviter de
perdre les poids appris, et le modèle sauvegardé pourrait être utilisé ultérieurement sans
avoir besoin de recommencer l'entraînement depuis le début.

Résultat :

18
➢ Évaluation du modèle :

➢ Chargement de modèle sauvegardé :

19
➢ Tester le modèle sur le jeu de données de test :

Résultat :

✓ Le résultat du test indique que le modèle a correctement prédit 3 865 589 pixels sur
un total de 4 128 768 pixels, ce qui correspond à une précision de 93,63%. Cela
suggère que le modèle a bien performé sur le jeu de données de test, avec une
grande majorité des pixels correctement prédits. La précision est un indicateur de la
capacité du modèle à effectuer des prédictions précises par rapport aux véritables
valeurs de pixels dans les masques du jeu de données de test. Un résultat élevé, tel
que celui-ci, est généralement positif et indique une performance robuste du
modèle.

20
VI. Exemples des Prédictions du modèle :
On prend un exemple de visualisation :
L’image originale :

Le masque :

La prédiction :

21
Autre façon de visualisation de résultat :

VII. Déploiement de modèle :


On a déployé notre modèle entrainé et sauvegardé « entrained_model_torch.pth » dans une
application Flask :

22
Frontend :

Tester le modèle déployé :

1.1 Importation d’image IRM :

23
1.2 Prédiction :

Autres cas :

24
25
VIII. Conclusion :
En résumé, notre projet de segmentation d'images médicales pour la détection
de tumeurs cérébrales à partir d'IRM représente une étape encourageante dans
l'application de l'intelligence artificielle à des problématiques médicales
complexes. Les résultats obtenus témoignent de l'efficacité du modèle UNET
dans la segmentation des zones tumorales. Toutefois, il est important de noter
que des défis subsistent, notamment en ce qui concerne l'optimisation continue
du modèle pour garantir une performance robuste sur divers ensembles de
données.

26
IX. Bibliographie :
- https://soar.suny.edu/bitstream/handle/20.500.12648/1610/Kalakuntla_Shash
ank%20Pro ject%20Final%20Document.pdf?sequence=1&isAllowed=y

- http://dspace.univ-medea.dz/bitstream/123456789/8041/1/M122189.pdf

- https://di.univ-
blida.dz/jspui/bitstream/123456789/11334/1/M%C3%A9moire_R%C3%A9ctifi
%C3%A9_B outiara_Khermaza_%281%29.pdf

- https://www.siemens-healthineers.com/fr-ma/medical-
imaging#:~:text=L'imagerie%20m%C3%A9dicale%20occupe%20une,%C3%A9t
roite%20de
%20la%20r%C3%A9ponse%20th%C3%A9rapeutique.

- https://www.fondation-arc.org/cancer/cancer-cerveau/symptomes-
diagnostic-
cancer#:~:text=L'examen%20dure%20une%20vingtaine,le%20scanner%20en%
20premi%C 3%A8re%20intention.

- https://www.cea.fr/comprendre/Pages/sante-sciences-du-vivant/essentiel-
sur-imagerie- medicale.aspx

- https://www.kaggle.com/datasets/navoneel/brain-mri-images-for-brain-
tumor-detection

- https://www.kaggle.com/datasets/ahmedhamada0/brain-tumor-detection

27
28

Vous aimerez peut-être aussi