Skin Lesion Analysis Toward Melanoma Detection 2018: A Challenge Hosted by the International Skin Imaging Collaboration (ISIC)
Paper • 1902.03368 • Published
Modelo de segmentación binaria de lesiones cutáneas dermoscópicas entrenado sobre el dataset ISIC 2018 Task 1. Primera etapa del pipeline de análisis de lesiones cutáneas — delimita píxel a píxel la región de la lesión para que el clasificador opere sobre ella y no sobre el fondo de piel sana.
Repositorio: skin-lesion-analysis
| Métrica | Valor |
|---|---|
| Dice (val) | 0.8982 |
| IoU / Jaccard (val) | 0.8293 |
Split 80/20 sobre ISIC 2018 Task 1 (2.594 imágenes). Early stopping en época 12, mejor checkpoint en época 7.
from huggingface_hub import hf_hub_download
import torch
import segmentation_models_pytorch as smp
import albumentations as A
from albumentations.pytorch import ToTensorV2
import numpy as np
from PIL import Image
# 1. Descargar el checkpoint
ruta = hf_hub_download(
repo_id="Jesusrodriguezf90/unet-resnet34-isic2018-segmentation",
filename="best_unet_resnet34.pth"
)
# 2. Reconstruir el modelo
model = smp.Unet(
encoder_name="resnet34",
encoder_weights=None,
in_channels=3,
classes=1,
activation=None,
)
model.load_state_dict(torch.load(ruta, map_location="cpu"))
model.eval()
# 3. Preprocesamiento — mismo pipeline que en entrenamiento
transform = A.Compose([
A.Resize(256, 256),
A.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),
ToTensorV2(),
])
# 4. Inferencia
img = np.array(Image.open("imagen_dermoscopica.jpg").convert("RGB"))
tensor = transform(image=img)["image"].unsqueeze(0)
with torch.no_grad():
pred = torch.sigmoid(model(tensor))
mascara = (pred > 0.5).float().squeeze().numpy() # (256, 256) — 1=lesión, 0=fondo
| Componente | Detalle |
|---|---|
| Arquitectura | U-Net |
| Encoder | ResNet34 preentrenado en ImageNet |
| Resolución entrada | 256×256 |
| Salida | Máscara binaria (1 canal) |
| Parámetros | 24.4M |
| Parámetro | Valor |
|---|---|
| Dataset | ISIC 2018 Task 1 (2.594 imágenes + máscaras) |
| Split | 80/20 (seed=42) |
| Loss | Dice + BCE |
| Optimizer | AdamW lr=1e-4, weight_decay=1e-4 |
| Scheduler | ReduceLROnPlateau (factor=0.1, patience=5) |
| Early stopping | Paciencia=5, métrica=Dice val |
| Épocas ejecutadas | 12 (mejor en época 7) |
| Hardware | Kaggle GPU T4 |
ISIC 2018 Task 1 — Skin Lesion Segmentation
International Skin Imaging Collaboration (ISIC)
🔗 https://challenge.isic-archive.com/data/#2018
Codella et al. (2019). Skin Lesion Analysis Toward Melanoma Detection 2018. arXiv:1902.03368
MIT
Base model
timm/resnet34.a1_in1k