EfficientNetV2-M Two-Stage — Estimador de Grasa Corporal

Descripción del modelo

Modelo basado en EfficientNetV2-M (pretrained en ImageNet) entrenado mediante un proceso de fine-tuning en dos etapas para estimar el porcentaje de grasa corporal total (WBFP) a partir de una fotografía frontal del torso.

Metodología

  • Conjunto de test reservado: 20% de MasterMIARFID/peoplebf_dexa (semilla 42), 23 muestras
  • Etapa 1: Optuna (25 trials, 10-Fold CV) sobre MasterMIARFID/silver_label_male_torso_dataset → entrenamiento con todo el dataset
  • Etapa 2: Optuna (25 trials, 10-Fold CV) sobre train DEXA (91 muestras) partiendo del modelo Etapa 1 → entrenamiento con todo train DEXA

Resultados en Test (23 muestras)

Etapa SEE MAE Pearson
Etapa 1 (solo auto-etiquetado) 6.808 5.167 0.629
Etapa 2 (+ fine-tuning DEXA) 3.850 2.983 0.872

Mejores hiperparámetros (Optuna)

Etapa 1 (auto-etiquetado)

Parámetro Valor
Learning Rate 0.000206
Weight Decay 0.009216
Dropout 0.197

Etapa 2 (DEXA fine-tuning)

Parámetro Valor
Learning Rate 0.000105
Weight Decay 0.000018
Dropout 0.418

Cómo cargar y usar el modelo

import torch
import torch.nn as nn
import torchvision.models as models
import torchvision.transforms as T
from PIL import Image

def create_efficientnet_regressor(dropout=0.418):
    model = models.efficientnet_v2_m(weights=None)
    in_features = model.classifier[1].in_features
    model.classifier = nn.Sequential(
        nn.Dropout(p=dropout),
        nn.Linear(in_features, 256),
        nn.ReLU(),
        nn.Dropout(p=dropout / 2),
        nn.Linear(256, 1)
    )
    return model

transform = T.Compose([
    T.Resize((224, 224)),
    T.ToTensor(),
    T.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])

model = create_efficientnet_regressor()
model.load_state_dict(torch.load('efficientnet_twostage_bodyfat_regressor.pth', weights_only=True))
model.eval()

img = Image.open('foto_torso_frente.jpg').convert('RGB')
x = transform(img).unsqueeze(0)

with torch.no_grad():
    wbfp = model(x).item()

print(f'WBFP estimado: {wbfp:.2f} %')
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