Stage Data Scientist : Deep Learning pour l'Imagerie Médicale
Université de Technologie de Sydney (UTS), Australie
Principales Réalisations
- Succès en Régression : J'ai entraîné avec succès un Vision Transformer (ViT) pour prédire la complexité des vaisseaux sanguins avec une précision de 95% (R²=0.95).
- Expertise en Segmentation : J'ai implémenté un modèle U-Net et exploré de manière itérative des techniques avancées (CLAHE, Data Augmentation) pour résoudre un problème complexe de segmentation d'images médicales.
- Maîtrise de l'Environnement de Recherche : J'ai géré le pipeline IA de A à Z, de la préparation des données sur ImageJ à l'entraînement des modèles sur un cluster de calcul haute performance (iHPC).
Ma Mission : Le Pipeline d'un Projet IA
1. Collecte et Préparation des Données
La première étape a été de construire un dataset de 1270 images. À l'aide du logiciel ImageJ, j'ai calculé la "dimension fractale" de chaque masque rétinien, une mesure clé qui quantifie la complexité des vaisseaux sanguins et qui est un indicateur de certaines maladies oculaires. Cela a permis de créer une cible numérique pour le premier modèle.
2. Feature Engineering : Préparer les Images pour le Modèle
Pour que les modèles de deep learning puissent interpréter correctement les images, une étape de pré-traitement et de transformation est essentielle. J'ai mis en place un pipeline de transformations avec PyTorch pour garantir que les données soient dans un format optimal :
- Redimensionnement (Resize) : Les images ont été redimensionnées à 224x224 pixels pour correspondre à la taille d'entrée attendue par les modèles comme ResNet.
- Conversion en Tenseurs (ToTensor) : Les images ont été converties en tenseurs PyTorch, le format de données fondamental pour les calculs sur GPU.
- Duplication des Canaux : Les modèles pré-entraînés attendent des images en couleur (3 canaux RGB). Les masques étant en niveaux de gris (1 canal), j'ai dupliqué ce canal unique trois fois pour assurer la compatibilité.
- Normalisation (Normalize) : Les valeurs des pixels ont été normalisées (moyenne et écart-type de 0.5) pour stabiliser et accélérer la convergence des modèles.
Ces transformations ont été appliquées de manière cohérente aux ensembles d'entraînement et de test pour garantir la validité des résultats.
3. Partie 1 : Prédire la Complexité Vasculaire (Régression)
Le premier défi était de prédire la dimension fractale (une valeur continue) à partir d'un masque binaire.
Méthodologie et Métriques
- Données : Le modèle prenait en entrée un masque binaire et devait prédire en sortie la valeur de sa dimension fractale.
- Séparation des données : Le dataset a été divisé en 80% pour l'entraînement et 20% pour le test, en s'assurant que les images d'un même patient ne soient pas réparties entre les deux ensembles pour éviter les fuites de données.
- Optimiseur : J'ai utilisé l'optimiseur Adam, qui ajuste dynamiquement le taux d'apprentissage.
- Métriques d'évaluation : Pour juger la performance, j'ai suivi la MSE (Mean Squared Error), la MAE (Mean Absolute Error) et le score R² (coefficient de détermination).
Résultats et Modèles
Le premier modèle, un ResNet-18, a rapidement obtenu d'excellents résultats avec un score R² d'environ 0.8 sur l'ensemble de test. Pour aller plus loin, j'ai implémenté un Vision Transformer (ViT), qui a encore amélioré la performance, atteignant un R² de 0.95, confirmant ainsi l'efficacité de l'approche.
4. Partie 2 : Isoler les Vaisseaux Sanguins (Segmentation)
Le second objectif était plus complexe : entraîner un modèle à prédire pour chaque pixel de l'image de rétine s'il appartient à un vaisseau sanguin (pixel blanc) ou à l'arrière-plan (pixel noir).
Méthodologie et Métriques
- Données : Le modèle prenait en entrée une image de rétine et devait prédire en sortie un masque binaire des vaisseaux sanguins.
- Modèle : L'architecture U-Net, une référence pour la segmentation médicale.
- Métriques d'évaluation : Le succès était mesuré par le score IoU (Intersection over Union) et le F1-Score (Dice), qui évaluent la superposition entre le masque prédit et la vérité terrain.
Démarche d'Ingénieur face à un Problème Complexe
Cette tâche a présenté des défis significatifs. La principale difficulté résidait dans la détection des vaisseaux les plus fins. Face à des résultats modestes, j'ai appliqué une démarche itérative de résolution de problèmes en explorant de nombreuses pistes d'amélioration : data augmentation, égalisation d'histogramme (CLAHE), ajustement des hyperparamètres, etc. Ce processus, bien que n'ayant pas atteint la perfection, a été extrêmement formateur sur la manière d'aborder un problème de vision par ordinateur difficile.

Apprentissages et Compétences Développées
Au-delà des résultats techniques, ce stage a été une expérience fondatrice.
Apprentissages Techniques
- Maîtrise du pipeline de deep learning de A à Z : de la collecte de données au feature engineering et à l'évaluation finale.
- Implémentation et fine-tuning de modèles de pointe : CNN (ResNet), Transformers (ViT) et U-Net.
- Gestion des défis concrets de la segmentation d'images médicales et des techniques d'amélioration (data augmentation, pré-traitement).
- Utilisation d'un environnement de calcul haute performance (iHPC) pour accélérer les entraînements.
Apprentissages Personnels et Culturels
- Adaptation et Communication : Travailler et communiquer quotidiennement en anglais dans un environnement de recherche international.
- Autonomie et Rigueur : Gérer mon projet de manière autonome, planifier les tâches et présenter mes résultats chaque semaine.
- Immersion Culturelle : Découvrir et m'adapter à la culture de travail et de vie en Australie, une expérience humaine inestimable.