Retour au Blog
Computer Vision 1 avril 2025 9 min de lecture

Segmentation d'images médicales avec U-Net : atteindre Dice 0,7964

Comment j'ai construit un pipeline U-Net pour la segmentation des lésions cutanées sur ISIC 2018.

Architecture : U-Net avec encodeur EfficientNet

import segmentation_models_pytorch as smp

model = smp.Unet(
    encoder_name='efficientnet-b4',
    encoder_weights='imagenet',
    in_channels=3,
    classes=1,
)

Fonction de perte : Combo Loss

La combinaison Dice + BCE a surpassé chacune prise isolément :

loss = 0.5 * bce_loss + 0.5 * (1 - dice_score)

Pile d'augmentation (Albumentations)

  • RandomResizedCrop, HorizontalFlip, VerticalFlip
  • ElasticTransform, GridDistortion
  • CLAHE, RandomBrightness
  • CoarseDropout (Cutout)

Post-traitement

L'augmentation au moment du test (TTA) avec 8 retournements/rotations a ajouté +0,015 Dice.

U-NetMedical ImagingSegmentationPyTorchISIC
O

Ossama Elhakki

Ingénieur IA & Systèmes ML — Maroc