Skip to main content

Unified Python interface for Meta SAM 3D Body and SAM 3D Objects

Project description

sam3d

sam3d 提供 SAM 3D Body 和 SAM 3D Objects 的统一 Python 接口,目标是下载好模型后可直接调用。

1. 准备模型文件

SAM 3D Body

示例路径约定:

  • sam-3d-body/checkpoints/sam-3d-body-dinov3/model.ckpt
  • sam-3d-body/checkpoints/sam-3d-body-dinov3/assets/mhr_model.pt

SAM 3D Objects

示例路径约定:

  • sam-3d-objects/checkpoints/hf/pipeline.yaml

你也可以传入自定义绝对路径(SAM3DConfig)。

2. 安装

cd /Users/sun/Projects/embody/sam3d
pip install -e .

3. 使用

import numpy as np
from sam3d import SAM3D

sam3d = SAM3D.from_defaults(
    workspace_dir="/Users/sun/Projects/embody/sam3d",
    device="cuda",
)

# 4.1 人体重建
body_result = sam3d.predict(
    task="body",
    image="/path/to/person.jpg",
)
print(len(body_result["instances"]))

# 4.2 物体重建
mask = np.zeros((1024, 1024), dtype=bool)  # 你的物体 mask
obj_result = sam3d.predict(
    task="objects",
    image="/path/to/object.png",
    mask=mask,
    seed=42,
)
obj_result["gaussian_splat"].save_ply("object.ply")

4. 接口设计说明

  • 统一入口:SAM3D.predict(task=...)
  • 任务拆分:predict_body(...)predict_objects(...)
  • 懒加载:首次调用对应任务时才初始化模型,减少启动负担
  • 与官方实现兼容:底层直接复用 Meta 仓库里的推理入口

5. 第三方源码

当前包已 vendoring 下列源码(仅包含统一接口所需部分):

  • sam_3d_body(来自 facebookresearch/sam-3d-body
  • sam3d_objects(来自 facebookresearch/sam-3d-objects

6. HTTP API 服务模式

安装服务依赖:

pip install "sam3d[service]"

启动服务:

sam3d-http --workspace-dir ~/.spwm/models --device cuda --host 0.0.0.0 --port 8000

接口:

  • GET /health
  • GET /info
  • POST /predict/body
  • POST /predict/objects

7. 模型下载脚本(HF / ModelScope)

安装下载依赖:

pip install "sam3d[download]"

默认(body/objects 从 ModelScope,moge 从 HuggingFace):

sam3d-download --workspace-dir ~/.spwm/models

可分别指定来源:

sam3d-download \
  --workspace-dir ~/.spwm/models \
  --body-source modelscope \
  --objects-source modelscope \
  --moge-source huggingface

可覆盖模型 ID(例如全部走 HuggingFace):

sam3d-download \
  --workspace-dir ~/.spwm/models \
  --body-source huggingface \
  --objects-source huggingface \
  --body-model-id <hf-body-model-id> \
  --objects-model-id <hf-objects-model-id>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sam3d-0.1.1.tar.gz (236.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sam3d-0.1.1-py3-none-any.whl (309.4 kB view details)

Uploaded Python 3

File details

Details for the file sam3d-0.1.1.tar.gz.

File metadata

  • Download URL: sam3d-0.1.1.tar.gz
  • Upload date:
  • Size: 236.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.16

File hashes

Hashes for sam3d-0.1.1.tar.gz
Algorithm Hash digest
SHA256 da90b71f4ce9164e398f457ce6a0647dbdf6cb111aea3363b8541036f76b4e57
MD5 146123f1804c819249fded0f9bb46f5c
BLAKE2b-256 488d8cd5cbb0c09ddf2a4e9f731684fb1204c15edeca8764f5920a9a0ac77131

See more details on using hashes here.

File details

Details for the file sam3d-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: sam3d-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 309.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.16

File hashes

Hashes for sam3d-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4737e17ba1e4a7e0f8395bd0d6c6ea32e53a0910529e33fdac23b74e493a1b5f
MD5 bf8f72f86ffc54095460ffcc255582ea
BLAKE2b-256 388f08ebdddcaa41296d63251a9ac7757134d37873e4d3da6c98acf3542d9e89

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page