Yoann Abriel
en

Tous les projets

2026

CAMELYON17 - Détection de Métastases

Système d'IA médicale pour la détection de métastases cancéreuses dans des images histopathologiques (H&E). Classification patch-level avec CNN (ResNet, EfficientNet) et agrégation patient-level (pN-staging), avec interprétabilité Grad-CAM.

Douze patches histopathologiques H&E de 224 pixels : tissu normal sur la rangée du haut, métastases sur celle du bas

fig. 01 · Patches H&E de 224 px : tissu normal en haut, tumoral en bas

Ce projet de recherche en IA médicale vise à détecter automatiquement les métastases cancéreuses du sein dans des images histopathologiques (coloration H&E) en utilisant le dataset de référence CAMELYON17. Le système effectue une classification au niveau patch (224x224 pixels) avec des architectures CNN (ResNet, EfficientNet), puis agrège les résultats au niveau patient pour la classification pN-stage (pN0 à pN3). Le projet intègre la gestion du domain shift multi-hôpital (5 sources), le déséquilibre de classes, et l'interprétabilité médicale via Grad-CAM et visualisation d'attention. La priorité est donnée à la sensibilité pour minimiser les faux négatifs (tumeurs manquées).

Domain shift entre 5 hôpitaux

Un patch H&E par centre hospitalier (0 à 4) au-dessus de son histogramme RGB, montrant des colorations très différentes avant normalisation

fig. 02 · Variation des colorations entre les 5 centres, avant normalisation (notebook de préparation)

Les patches viennent de 5 hôpitaux aux protocoles de coloration différents. Les histogrammes RGB par centre montrent l'écart avant normalisation ; la réponse est une normalisation de coloration et des augmentations spécifiques à l'histopathologie.

Déséquilibre de classes

Diagramme en barres à échelle logarithmique et camembert : 688 426 patches normaux, 7 392 tumoraux (1,06 %)

fig. 03 · Distribution des classes du dataset CAMELYON17 (notebook d'exploration)

688 426 patches normaux contre 7 392 tumoraux, soit 1,06 % de la classe positive. Le déséquilibre est traité par une loss focale, une cross-entropy pondérée et un rééchantillonnage des batchs.

Entraînement EfficientNet

Quatre courbes d'entraînement de l'EfficientNet-B2 sur 40 epochs : loss train et validation, AUC de validation (meilleur 0,9604), sensibilité et spécificité, learning rate

fig. 04 · Courbes d'entraînement de l'EfficientNet-B2 multi-centres (notebook d'entraînement)

Plusieurs architectures CNN (ResNet, EfficientNet) sont entraînées avec early stopping et checkpointing. Ici l'EfficientNet-B2 multi-centres : loss, AUC de validation, sensibilité et spécificité par epoch, learning rate en cosine annealing.

Évaluation ROC et PR

Courbe ROC du meilleur modèle (AUC 0,8812) avec le seuil 0,5 marqué, et courbe précision-rappel au-dessus d'une baseline de 0,0044

fig. 05 · Courbes ROC et précision-rappel du meilleur modèle sur le jeu de test (notebook d'inférence)

L'évaluation repose sur des métriques médicales : sensibilité, spécificité, AUC-ROC. La priorité va à la sensibilité pour limiter les faux négatifs, d'où le seuil de décision placé sur la courbe ROC.

Agrégation patient-level

Pour le patient 034 (centre 1, stade réel pN1), ratio de patches prédits positifs pour 5 ganglions face au ratio tumoral réel, et histogramme des probabilités tumorales avec le seuil 0,5

fig. 06 · Agrégation par ganglion pour un patient pN1 (notebook d'inférence)

Les prédictions patch-level sont agrégées par ganglion puis par patient pour la classification pN-stage (pN0 à pN3). Pour chaque patient, le ratio de patches prédits positifs par ganglion est comparé au ratio tumoral réel.

fig. 07

Matrice de confusion patch-level : 90 411 vrais négatifs, 22 500 faux positifs, 83 faux négatifs, 420 vrais positifs

Matrice de confusion patch-level : 83 faux négatifs sur 503 patches tumoraux, sensibilité 83,5 %

fig. 08

Un batch de 32 patches rééquilibré par WeightedRandomSampler, chaque patch étiqueté Normal ou Tumor

Un batch rééquilibré par WeightedRandomSampler : 14 tumeurs sur 32 patches

Défis

  • Gestion du domain shift entre les 5 hôpitaux sources avec protocoles de coloration différents
  • Déséquilibre de classes sévère entre patches normaux et tumoraux
  • Optimisation de la sensibilité pour minimiser les faux négatifs (criticité médicale)
  • Agrégation des prédictions patch-level vers le diagnostic patient-level (pN-staging)

Solutions

  • Normalisation de coloration et augmentations spécifiques à l'histopathologie
  • Loss focale et cross-entropy pondérée pour gérer le déséquilibre de classes
  • Architectures ResNet et EfficientNet avec early stopping et checkpointing
  • Grad-CAM et visualisation d'attention pour l'interprétabilité médicale

Résultats

  • Pipeline complet : exploration → prétraitement → entraînement → évaluation → interprétabilité
  • Analyse du domain shift par source hospitalière
  • Métriques médicales : sensibilité, spécificité, AUC-ROC
  • 6 notebooks Jupyter couvrant le pipeline de bout en bout

Technologies

Python · PyTorch · ResNet · EfficientNet · Grad-CAM · OpenCV · Scikit-learn · Plotly