U-Net/ResNet34 — Segmentación de Lesiones Cutáneas ISIC 2018

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étricas

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.


Uso

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

Arquitectura

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

Entrenamiento

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

Limitaciones

  • Válido únicamente para imágenes dermoscópicas estándar capturadas con dermatoscopio — no aplicable a fotografías clínicas convencionales ni fotos de smartphone
  • La escala física de la lesión en milímetros no se usa como feature
  • Entrenado con 2.594 imágenes — rendimiento puede degradarse en distribuciones muy distintas a ISIC 2018

Dataset

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


Licencia

MIT

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Jesusrodriguezf90/unet-resnet34-isic2018-segmentation

Finetuned
(1)
this model

Space using Jesusrodriguezf90/unet-resnet34-isic2018-segmentation 1

Paper for Jesusrodriguezf90/unet-resnet34-isic2018-segmentation