Unet Resnet34 Isic2018 Segmentation
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...
Source du modèle
- Type
- Other
- Taille du fichier
- 93,4 MB
- Modèle de base
- timm/resnet34.a1_in1k
- Version
- vBest unet resnet34
- Mis à jour
- 1 nov. 2026
- Source
- Hugging Face
Description de la source
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
Sources
1 source
Sources
1 sourceVérifié 1 nov.
Artefacts du modèle
1 artefact
Artefacts du modèle
1 artefactExtraits de sources
2 extraits
Extraits de sources
2 extraits--- language: en license: mit tags: - pytorch - segmentation - medical-imaging - skin-lesion - unet - resnet34 - isic2018 - dermatology datasets: - isic-2018 metrics: - dice - iou base_model: - timm/resnet34.a1_in1k pipeline_tag: image-segmentation --- # 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](https://github.com/Jesusrodriguezf90/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 ```python 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) |...
Source context: 0 downloads · 0 likes · Pipeline image-segmentation · Repo Jesusrodriguezf90/unet-resnet34-isic2018-segmentation
