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.

Patches H&E de 224 px : tissu normal en haut, tumoral en bas

Le projet

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

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

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

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

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

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.

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

PythonPyTorchResNetEfficientNetGrad-CAMOpenCVScikit-learnPlotly
Projet suivant

Apache Airflow

Images du projet

1 / 8