SAM 3D Body

SAM 3D Body to sterowany promptami model Meta do odtwarzania siatki 3D całego ciała, w tym dłoni i stóp, z jednego obrazu i ramek osób. LibreYOLO opakowuje pakiet źródłowy zamiast go przenosić.

Zadania
body mesh
Rozmiary
d3, h at 512 px
Instalacja
pip install libreyolo
Poziom obsługi
Tylko inferencja, od wersji v1.5.0. Tylko predykcja, walidacja i eksport. Funkcje trenowania nie mają zastosowania.
Projekt źródłowy
SAM 3D Body, autorzy: Meta Platforms, Inc., licencja: SAM License (not OSI-approved). Publikacja, kod źródłowy
Licencje
Kod: MIT, wagi: SAM License (not OSI-approved). Użycie komercyjne

Instalacja

bash
pip install libreyolo

Instaluje to tylko adapter LibreYOLO. Sam SAM 3D Body nie jest dołączony, ponieważ jego licencja nie zezwala na tworzenie na jej podstawie własnego kodu LibreYOLO. Należy sklonować repozytorium źródłowe, samodzielnie zainstalować jego zależności, a następnie wskazać klon LibreYOLO.

bash
git clone https://github.com/facebookresearch/sam-3d-bodypip 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",)

Można też ustawić zmienną środowiskową SAM_3D_BODY_PATH zamiast przekazywać sam_3d_body_path przy każdym wywołaniu. Użytkownik, który nigdy nie tworzy tej rodziny, nigdy nie uruchamia importu ani nie styka się z SAM License. Ta rodzina nie jest podłączona do fabryki LibreYOLO() ani polecenia CLI libreyolo predict. LibreSAM3DBody jest jedynym punktem wejścia.

Predykcja

Python
from libreyolo import SAMPLE_IMAGEfrom libreyolo.models.sam3dbody import LibreSAM3DBody # Ta rodzina nie jest zarejestrowana w fabryce LibreYOLO(), dlatego# tworzy się ją bezpośrednio. model_path=None uruchamia kontrolowane# pobieranie z Hugging Face. Ciąg jest natomiast traktowany jako# istniejąca ścieżka lokalnego checkpointu i nigdy nie jest pobierany automatycznie.# Inferencja wymaga urządzenia CUDA. Nie ma ścieżki 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), układ kamery, metryprint(meshes.joints3d.shape)    # (N, J, 3)
Z detektorem osób
from libreyolo import LibreYOLO, SAMPLE_IMAGEfrom libreyolo.models.sam3dbody import LibreSAM3DBody # Nie ma skrótu w postaci nazwanego ciągu. Przekaż utworzony detektor# LibreYOLO, zwykły obiekt wywoływalny albo instancję PersonDetector.detector = LibreYOLO("LibreRFDETRn.pt")model = LibreSAM3DBody(None, size="d3", device="cuda") result = model(SAMPLE_IMAGE, person_detector=detector)

Dostęp do pobierania checkpointu jest kontrolowany. Wymaga zaakceptowania licencji Meta na stronie modelu Hugging Face i uwierzytelnienia przez hf auth login przed pierwszym pobraniem. Sama inferencja zawsze wymaga urządzenia CUDA. Estymator źródłowy przenosi batch na GPU bez sprawdzania, dlatego komputer bez GPU zgłasza błąd zamiast przełączać się na CPU. result.meshes jest elementem Meshes, wyrównanym wierszami z result.boxes (jeden wiersz na wykrytą osobę). vertices i joints3d mają wartości metryczne i zawierają już oszacowane przesunięcie kamery, joints2d podaje piksele oryginalnego obrazu, a obroty używają konwencji MHR, czyli kątów Eulera zamiast reprezentacji oś-kąt. Więcej informacji o źródłach, streamingu i obsłudze wyników zawiera strona predykcji.

Automatyczne pobieranie wymaga libreyolo[hf] i dostępu do modelu z ograniczonym dostępem. Lokalny checkpoint musi być sprawdzonym katalogiem snapshotu lub jego niezmienionym plikiem model.ckpt obok pasujących model_config.yaml i LICENSE. Ustalone hashe i zaakceptowane listy zasobów snapshotu odrzucają pliki przemianowane, zmienione, dowiązane lub dodatkowe. Zasoby MHR również mają ustalone wersje. Lokalny snapshot musi pozostać niezmieniony, gdy odczytuje go konstruktor projektu źródłowego.

Warianty

Dwa backbone współdzielą ten sam model ciała MHR. d3 używa enkodera DINOv3 ViT-H/16+, a h oryginalnego enkodera ViT-H.

Eksport

ZadanieONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
Body meshBody mesh to ONNX: brak obsługiBody mesh to TorchScript: brak obsługiBody mesh to ExecuTorch: brak obsługiBody mesh to TensorRT: brak obsługiBody mesh to OpenVINO: brak obsługiBody mesh to Paddle: brak obsługiBody mesh to MNN: brak obsługiBody mesh to RKNN: brak obsługiBody mesh to ncnn: brak obsługiBody mesh to TFLite: brak obsługiBody mesh to CoreML: brak obsługiBody mesh to Core AI: brak obsługi

Eksport siatki ciała nie jest zaimplementowany. LibreYOLO nie zdefiniowało jeszcze kontraktu wyeksportowanego grafu dla zadania siatki, w tym sposobu reprezentowania układu parametrów MHR poza PyTorch.

Licencja

Sprawdź licencję w repozytorium konkretnych pobieranych wag na Hugging Face. Każdy checkpoint w organizacji LibreYOLO ma licencję, która nie zawsze jest taka sama w całej rodzinie. To repozytorium jest źródłem rozstrzygającym, a poniższe podsumowanie opisuje stan z chwili ostatniej weryfikacji tej strony.

To opis obowiązujących licencji, a nie porada prawna. Jeśli odpowiedź ma znaczenie komercyjne, przeczytaj licencje i zasięgnij własnej porady prawnej.

Oryginalna praca
SAM 3D Body, Meta Platforms, Inc.
Licencja projektu źródłowego
SAM License (not OSI-approved)
Kod LibreYOLO
MIT
Wagi
SAM License (not OSI-approved), ponownie opublikowane w huggingface.co/LibreYOLO
Interpretacja
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.

Model ciała sterowany przez checkpointy, MHR (Momentum Human Rig), jest osobnym wydaniem Meta na licencji Apache-2.0. LibreYOLO podczas działania pobiera jego artefakt TorchScript z własnego publicznego wydania MHR i zapisuje go lokalnie w pamięci podręcznej. LibreYOLO nie tworzy kopii lustrzanej tego pliku. Podlega on własnym warunkom Apache-2.0, a nie SAM License.

Cytowanie

@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}
}

Skopiowano z bloku cytowania autorów w github.com/facebookresearch/sam-3d-body#citing-sam-3d-body.

Zweryfikowano z LibreYOLO v1.6.0. Tabele obsługi, checkpointy i wyniki benchmarków na tej stronie są generowane na podstawie wydanej biblioteki i opublikowanych wag, a nie wpisywane ręcznie.