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.
- Licenze
- Codice MIT, pesi SAM License (not OSI-approved). Uso commerciale
Installazione
pip install libreyoloQuesto 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.
git clone https://github.com/facebookresearch/sam-3d-body
pip install roma einops yacs omegaconf braceexpand pytorch-lightning timmfrom 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
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)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
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| mesh | mesh to ONNX: non supportato | mesh to TorchScript: non supportato | mesh to ExecuTorch: non supportato | mesh to TensorRT: non supportato | mesh to OpenVINO: non supportato | mesh to Paddle: non supportato | mesh to MNN: non supportato | mesh to RKNN: non supportato | mesh to ncnn: non supportato | mesh to TFLite: non supportato | mesh to CoreML: non supportato | mesh 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.
| File | Ingresso (px) | Licenza dei pesi |
|---|---|---|
| mesh | ||
| LibreSAM3DBodyd3-mesh.pt | 512 | other |
| LibreSAM3DBodyh-mesh.pt | 512 | other |
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)
- Sorgente upstream
- github.com/facebookresearch/sam-3d-body
- 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.