SAM 3D Body

SAM 3D Body è il modello di Meta guidato da prompt per recuperare una mesh 3D di corpo intero, mani e piedi inclusi, a partire da una singola immagine e da box di persone. LibreYOLO fa da wrapper al pacchetto upstream invece di portarlo.

Task
mesh
Dimensioni
d3, h at 512 px
Installa
pip install libreyolo
Livello di supporto
Solo inferenza, dalla v. Solo predizione, validazione ed esportazione. Le funzionalità di addestramento non si applicano.
Origine
SAM 3D Body di Meta Platforms, Inc., SAM License (not OSI-approved). Articolo, sorgente
Licenze
Codice MIT, pesi SAM License (not OSI-approved). Uso commerciale

Installazione

bash
pip install libreyolo

Questo ti dà solo l'adattatore di LibreYOLO. SAM 3D Body in sé non è incluso, perché la sua licenza non è una da cui il codice di LibreYOLO possa derivare: clona il repository upstream e installa le sue dipendenze per conto tuo, poi fai puntare LibreYOLO al clone.

bash
git clone https://github.com/facebookresearch/sam-3d-body
pip install roma einops yacs omegaconf braceexpand pytorch-lightning timm
python
from libreyolo.models.sam3dbody import LibreSAM3DBody

model = LibreSAM3DBody(
    None,
    size="d3",
    sam_3d_body_path="/path/to/sam-3d-body",
    device="cuda",
)

oppure imposta la variabile d'ambiente SAM_3D_BODY_PATH invece di passare sam_3d_body_path a ogni chiamata. Chi non costruisce mai questa famiglia non innesca mai l'import, e non incontra mai la SAM License. Questa famiglia non è collegata alla factory LibreYOLO() né al comando CLI libreyolo predict; LibreSAM3DBody è l'unico entry point.

Predizione

Python
from libreyolo import SAMPLE_IMAGEfrom libreyolo.models.sam3dbody import LibreSAM3DBody # Questa famiglia non è registrata nella factory LibreYOLO(),# quindi la si costruisce direttamente. model_path=None è ciò che# innesca il download vincolato da Hugging Face; una stringa è# invece trattata come il percorso di un checkpoint locale già# esistente e non viene mai scaricata automaticamente.# L'inferenza richiede un dispositivo CUDA; non c'è un percorso CPU.model = LibreSAM3DBody(None, size="d3", device="cuda")result = model(SAMPLE_IMAGE, person_boxes=[[34, 12, 220, 400]]) meshes = result.meshesprint(meshes.vertices.shape)    # (N, V, 3), sistema della camera, metriprint(meshes.joints3d.shape)    # (N, J, 3)
Con un detector di persone
from libreyolo import LibreYOLO, SAMPLE_IMAGEfrom libreyolo.models.sam3dbody import LibreSAM3DBody # Qui non c'è una scorciatoia con stringa nominata: passa un# detector LibreYOLO già costruito, un semplice callable oppure# un'istanza di PersonDetector.detector = LibreYOLO("LibreRFDETRn.pt")model = LibreSAM3DBody(None, size="d3", device="cuda") result = model(SAMPLE_IMAGE, person_detector=detector)

Il download del checkpoint è vincolato: richiede di accettare la licenza di Meta sulla pagina del modello su Hugging Face e di autenticarsi con hf auth login perché il primo download vada a buon fine. L'inferenza stessa ha bisogno di un dispositivo CUDA senza eccezioni: l'estimatore upstream sposta il suo batch sulla GPU senza controllare, quindi una macchina con la sola CPU solleva un errore invece di ricadere su un fallback. result.meshes è un payload Meshes, allineato riga per riga con result.boxes (una riga per persona rilevata): vertices e joints3d sono metrici e includono già la traslazione stimata della camera, joints2d è in pixel sull'immagine originale, e le rotazioni seguono la convenzione di MHR, angoli di Eulero invece che axis-angle. Vedi predizione per le sorgenti, lo streaming e la gestione dei risultati.

Varianti

Due backbone dietro lo stesso modello corporeo MHR: d3 usa un encoder DINOv3 ViT-H/16+, mentre h usa l'encoder ViT-H originale.

Esportazione

TaskONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
meshmesh to ONNX: non supportatomesh to TorchScript: non supportatomesh to ExecuTorch: non supportatomesh to TensorRT: non supportatomesh to OpenVINO: non supportatomesh to Paddle: non supportatomesh to MNN: non supportatomesh to RKNN: non supportatomesh to ncnn: non supportatomesh to TFLite: non supportatomesh to CoreML: non supportatomesh to Core AI: non supportato

L'esportazione della mesh corporea non è implementata: LibreYOLO non ha ancora definito un contratto di grafo esportato per il task della mesh, compreso come rappresentare il layout dei parametri di MHR fuori da PyTorch.

Checkpoint

Tutti i file di pesi pubblicati per questa famiglia.

FileIngresso (px)Licenza dei pesi
mesh
LibreSAM3DBodyd3-mesh.pt512other
LibreSAM3DBodyh-mesh.pt512other

Oggi tutti i file elencati sopra sono presenti nell<link>organizzazione LibreYOLO</link> e vengono scaricati al primo utilizzo.

Licenze

Controlla la licenza nel repository Hugging Face degli specifici pesi che scarichi. Ogni checkpoint nell<link>organizzazione LibreYOLO</link> ne include una e non è sempre la stessa per tutta la famiglia. Quel repository è la fonte autorevole; il riepilogo seguente descrive le condizioni applicabili al momento dellultima verifica di questa pagina.

Questa è una descrizione delle licenze coinvolte, non una consulenza legale. Se la risposta è importante a fini commerciali, leggi personalmente le licenze e chiedi una consulenza indipendente.

Lavoro originale
SAM 3D Body, Meta Platforms, Inc.
Licenza upstream
SAM License (not OSI-approved)
Codice LibreYOLO
MIT
Pesi
SAM License (not OSI-approved), ripubblicati su huggingface.co/LibreYOLO
Interpretazione
The SAM License is not one OSI recognizes as open source. Meta can amend its terms unilaterally, disclaims all warranty and liability, forbids reverse engineering the SAM Materials, and forbids any use touching military or warfare purposes, nuclear applications, espionage, weapons, or other export-controlled ends. It does not forbid commercial use outright, but a litigation clause ends your license the moment you sue Meta over the SAM Materials, so read it yourself before shipping a product on it. LibreYOLO wraps Meta's package rather than porting its code: none of it is vendored, it is an optional dependency the user installs themselves, and a user who never touches the mesh task never encounters these terms. The checkpoints are mirrored byte-identically behind the same Hugging Face access gate Meta uses, so accepting the license happens on Meta's own model page. LibreYOLO's own adapter code is MIT. The body model the checkpoints drive, MHR (Momentum Human Rig), is Meta's separate Apache-2.0 release and is fetched at runtime from its own public repository rather than mirrored.

Il modello corporeo che i checkpoint pilotano, MHR (Momentum Human Rig), è una release Meta separata sotto Apache-2.0. LibreYOLO scarica il suo asset TorchScript dalla release pubblica di MHR stesso a runtime e lo mette in cache in locale; quel file non è replicato da LibreYOLO e porta con sé i propri termini Apache-2.0, non la SAM License.

Citazione

@article{yang2026sam3dbody,
  title={SAM 3D Body: Robust Full-Body Human Mesh Recovery},
  author={Yang, Xitong and Kukreja, Devansh and Pinkus, Don and Sagar, Anushka and Fan, Taosha and Park, Jinhyung and Shin, Soyong and Cao, Jinkun and Liu, Jiawei and Ugrinovic, Nicolas and Feiszli, Matt and Malik, Jitendra and Dollar, Piotr and Kitani, Kris},
  journal={arXiv preprint arXiv:2602.15989},
  year={2026}
}

Copiato dal blocco di citazione degli autori disponibile su github.com/facebookresearch/sam-3d-body#citing-sam-3d-body.

Verificato con LibreYOLO v1.5.0. Le tabelle di supporto, i checkpoint e i dati dei benchmark in questa pagina vengono generati dalla libreria rilasciata e dai pesi pubblicati, non scritti a mano.