SAM 3D Body
O SAM 3D Body é o modelo da Meta guiado por prompts para recuperar uma malha 3D de corpo inteiro, incluindo mãos e pés, a partir de uma única imagem e de caixas de pessoas. O LibreYOLO envolve o pacote upstream em vez de portá-lo.
- Tarefas
- mesh
- Tamanhos
- d3, h at 512 px
- Instalação
pip install libreyolo- Nível de suporte
- Somente inferência, desde a v. Somente predição, validação e exportação. Os recursos de treinamento não se aplicam.
- Origem
- SAM 3D Body por Meta Platforms, Inc., SAM License (not OSI-approved). Artigo, código-fonte
- Licenças
- Código MIT, pesos SAM License (not OSI-approved). Uso comercial
Instalação
pip install libreyoloIsso te dá apenas o adaptador do LibreYOLO. O SAM 3D Body em si não vem junto, porque a licença dele não é uma da qual o código do próprio LibreYOLO possa derivar: clone o repositório upstream e instale as dependências dele por conta própria, depois aponte o LibreYOLO para o 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",
)ou defina a variável de ambiente SAM_3D_BODY_PATH em vez de passar
sam_3d_body_path em toda chamada. Quem nunca constrói essa família nunca
dispara o import, e nunca esbarra na SAM License. Essa família não está ligada
à fábrica LibreYOLO() nem ao comando de CLI libreyolo predict;
LibreSAM3DBody é o único ponto de entrada.
Predição
from libreyolo import SAMPLE_IMAGEfrom libreyolo.models.sam3dbody import LibreSAM3DBody # Esta família não está registrada na fábrica LibreYOLO(), então ela# é construída diretamente. model_path=None é o que dispara o# download restrito do Hugging Face; já uma string é tratada como o# caminho de um checkpoint local existente e nunca é baixada sozinha.# A inferência exige um dispositivo CUDA; não há caminho por 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 da câmera, metrosprint(meshes.joints3d.shape) # (N, J, 3)from libreyolo import LibreYOLO, SAMPLE_IMAGEfrom libreyolo.models.sam3dbody import LibreSAM3DBody # Aqui não há atalho por string nomeada: passe um detector LibreYOLO# já construído, um callable comum ou uma instância de PersonDetector.detector = LibreYOLO("LibreRFDETRn.pt")model = LibreSAM3DBody(None, size="d3", device="cuda") result = model(SAMPLE_IMAGE, person_detector=detector)O download do checkpoint é restrito: exige aceitar a licença da Meta na página
do modelo no Hugging Face e autenticar com hf auth login antes que o primeiro
download funcione. A inferência em si precisa de um dispositivo CUDA sem
exceção: o estimador upstream move o batch dele para a GPU sem checar nada,
então uma máquina só com CPU levanta um erro em vez de cair para o fallback.
result.meshes é um payload Meshes, alinhado linha a linha com
result.boxes (uma linha por pessoa detectada): vertices e joints3d são
métricos e já incluem a translação de câmera estimada, joints2d vem em pixels
sobre a imagem original, e as rotações seguem a convenção do MHR, ângulos de
Euler em vez de axis-angle. Veja predição para fontes,
streaming e tratamento de resultados.
Variantes
Dois backbones por trás do mesmo modelo corporal MHR: d3 usa um encoder
DINOv3 ViT-H/16+ e h usa o encoder ViT-H original.
Exportação
| Tarefa | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| mesh | mesh to ONNX: incompatível | mesh to TorchScript: incompatível | mesh to ExecuTorch: incompatível | mesh to TensorRT: incompatível | mesh to OpenVINO: incompatível | mesh to Paddle: incompatível | mesh to MNN: incompatível | mesh to RKNN: incompatível | mesh to ncnn: incompatível | mesh to TFLite: incompatível | mesh to CoreML: incompatível | mesh to Core AI: incompatível |
A exportação de malha corporal não está implementada: o LibreYOLO ainda não definiu um contrato de grafo exportado para a tarefa de malha, incluindo como representar o layout de parâmetros do MHR fora do PyTorch.
Checkpoints
Todos os arquivos de pesos publicados desta família.
| Arquivo | Entrada (px) | Licença dos pesos |
|---|---|---|
| mesh | ||
| LibreSAM3DBodyd3-mesh.pt | 512 | other |
| LibreSAM3DBodyh-mesh.pt | 512 | other |
Todos os arquivos acima existem hoje na organização LibreYOLO e são baixados no primeiro uso.
Licenciamento
Confira a licença no repositório do Hugging Face correspondente aos pesos que você baixar. Cada checkpoint na organização LibreYOLO tem uma licença, e ela nem sempre é a mesma em toda a família. Esse repositório é a fonte oficial. O resumo abaixo descreve o que se aplicava na última verificação desta página.
Esta é uma descrição das licenças envolvidas, não uma orientação jurídica. Se a resposta tiver importância comercial, leia as licenças e procure sua própria assessoria.
- Trabalho original
- SAM 3D Body, Meta Platforms, Inc.
- Licença original
- SAM License (not OSI-approved)
- Código-fonte original
- github.com/facebookresearch/sam-3d-body
- Código do LibreYOLO
- MIT
- Pesos
- SAM License (not OSI-approved), republicado em huggingface.co/LibreYOLO
- Interpretação
- 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.
O modelo corporal que os checkpoints acionam, o MHR (Momentum Human Rig), é uma versão separada da Meta sob Apache-2.0. O LibreYOLO baixa o asset TorchScript dele a partir da própria versão pública do MHR em tempo de execução e o guarda em cache localmente; esse arquivo não é espelhado pelo LibreYOLO e segue os próprios termos Apache-2.0, não a SAM License.
Citação
@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}
}Copiado do bloco de citação dos autores em github.com/facebookresearch/sam-3d-body#citing-sam-3d-body.