SAM 3D Body
SAM 3D Body es el modelo de Meta guiado por prompts para recuperar una malla 3D de cuerpo completo, manos y pies incluidos, a partir de una sola imagen y de cajas de personas. LibreYOLO envuelve el paquete upstream en lugar de portarlo.
- Tareas
- body mesh
- Tamaños
- d3, h at 512 px
- Instalación
pip install libreyolo- Nivel de compatibilidad
- Solo inferencia, desde v1.5.0. Solo permite predecir, validar y exportar. Las funciones de entrenamiento no se aplican.
- Proyecto original
- SAM 3D Body de Meta Platforms, Inc., SAM License (not OSI-approved). Artículo, fuente
- Licencias
- Código MIT, pesos SAM License (not OSI-approved). Uso comercial
Instalación
pip install libreyoloEso te da solo el adaptador de LibreYOLO. SAM 3D Body en sí no viene incluido, porque su licencia no es una de la que pueda derivarse el código propio de LibreYOLO: clona el repositorio upstream e instala sus dependencias por tu cuenta, y luego apunta LibreYOLO al clon.
git clone https://github.com/facebookresearch/sam-3d-bodypip 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",)o define la variable de entorno SAM_3D_BODY_PATH en lugar de pasar
sam_3d_body_path en cada llamada. Quien nunca construya esta familia no
dispara nunca el import, y nunca se topa con la SAM License. Esta familia no
está conectada a la factoría LibreYOLO() ni al comando de CLI
libreyolo predict; LibreSAM3DBody es el único punto de entrada.
Predicción
from libreyolo import SAMPLE_IMAGEfrom libreyolo.models.sam3dbody import LibreSAM3DBody # Esta familia no está registrada en la factoría LibreYOLO(), así# que se construye directamente. model_path=None es lo que dispara# la descarga restringida de Hugging Face; una cadena, en cambio, se# trata como la ruta de un checkpoint local ya existente y nunca se# descarga automáticamente.# La inferencia requiere un dispositivo CUDA; no hay camino 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 de la cámara, metrosprint(meshes.joints3d.shape) # (N, J, 3)from libreyolo import LibreYOLO, SAMPLE_IMAGEfrom libreyolo.models.sam3dbody import LibreSAM3DBody # Aquí no hay atajo por cadena con nombre: pasa un detector# LibreYOLO ya construido, un callable normal o una instancia de# PersonDetector.detector = LibreYOLO("LibreRFDETRn.pt")model = LibreSAM3DBody(None, size="d3", device="cuda") result = model(SAMPLE_IMAGE, person_detector=detector)La descarga del checkpoint está restringida: exige aceptar la licencia de Meta
en la página del modelo en Hugging Face y autenticarse con hf auth login para
que la primera descarga funcione. La inferencia en sí necesita un dispositivo
CUDA sin excepciones: el estimador upstream mueve su batch a la GPU sin
comprobar nada, así que una máquina solo con CPU lanza un error en vez de hacer
fallback. result.meshes es un payload Meshes, alineado fila a fila con
result.boxes (una fila por persona detectada): vertices y joints3d son
métricos y ya incluyen la traslación de cámara estimada, joints2d va en
píxeles sobre la imagen original, y las rotaciones siguen la convención de MHR,
ángulos de Euler en lugar de axis-angle. Consulta
predicción para las fuentes, el streaming y el manejo de
resultados.
La descarga automática requiere libreyolo[hf] y acceso al modelo restringido. Los checkpoints locales deben ser el directorio de snapshot revisado, o su model.ckpt sin modificar junto con los archivos model_config.yaml y LICENSE correspondientes. Los hashes fijados y los inventarios de snapshots aceptados rechazan archivos renombrados, modificados, enlazados o adicionales. Los archivos de MHR también están fijados. Mantén el snapshot local sin cambios mientras el constructor upstream lo lee.
Variantes
Dos backbones detrás del mismo modelo corporal MHR: d3 usa un encoder DINOv3
ViT-H/16+ y h usa el encoder ViT-H original.
Exportación
| Tarea | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Body mesh | Body mesh to ONNX: no compatible | Body mesh to TorchScript: no compatible | Body mesh to ExecuTorch: no compatible | Body mesh to TensorRT: no compatible | Body mesh to OpenVINO: no compatible | Body mesh to Paddle: no compatible | Body mesh to MNN: no compatible | Body mesh to RKNN: no compatible | Body mesh to ncnn: no compatible | Body mesh to TFLite: no compatible | Body mesh to CoreML: no compatible | Body mesh to Core AI: no compatible |
La exportación de mallas corporales no está implementada: LibreYOLO todavía no ha definido un contrato de grafo exportado para la tarea de malla, incluido cómo representar la disposición de parámetros de MHR fuera de PyTorch.
Licencia
Comprueba la licencia en el repositorio de Hugging Face de los pesos concretos que descargues. Cada checkpoint de la organización de LibreYOLO incluye una, y no siempre es la misma en toda una familia. Ese repositorio es la fuente autorizada; el resumen siguiente describe qué se aplicaba cuando se verificó esta página por última vez.
Esta es una descripción de las licencias implicadas, no asesoramiento legal. Si la respuesta es importante a nivel comercial, lee las licencias y busca tu propio asesoramiento.
- Trabajo original
- SAM 3D Body, Meta Platforms, Inc.
- Licencia del proyecto original
- SAM License (not OSI-approved)
- Fuente del proyecto original
- github.com/facebookresearch/sam-3d-body
- Código de LibreYOLO
- MIT
- Pesos
- SAM License (not OSI-approved), republicados en huggingface.co/LibreYOLO
- Interpretación
- 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.
El modelo corporal que accionan los checkpoints, MHR (Momentum Human Rig), es una publicación aparte de Meta bajo Apache-2.0. LibreYOLO descarga su asset de TorchScript desde la propia release pública de MHR en tiempo de ejecución y lo cachea en local; ese archivo no lo replica LibreYOLO y se rige por sus propios términos Apache-2.0, no por la SAM License.
Cita
@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 del bloque de cita de los autores en github.com/facebookresearch/sam-3d-body#citing-sam-3d-body.