AmmarkoV/SAM3DBody-cpp
Real-time 3D full-body reconstruction from a single camera, Multiperson BVH output, Pure C++ runtime, ONNX + ggml, 70-joint skeleton with hands.
解決的問題
SAM3DBody-cpp 提供了一個高效率、獨立的 C++ 推論引擎,適用於 SAM-3D-Body 模型。它能從標準的 2D 圖像或影片中提取 3D 人體姿態、形狀與相機參數,無需 Python 執行環境,因此非常適合整合至生產軟體或即時應用中。
工作原理
該流程將原始 BGR 圖像透過多個階段處理:
- 檢測:YOLO 檢測人物邊界框。
- 特徵提取:DINOv3-ViT-H 主幹網絡從每個裁切區域生成空間特徵圖。
- 姿態標記化:6 層 Transformer 解碼器將特徵圖壓縮為 1024 維的姿態標記,並根據相機焦距與射線方向進行條件化。
- 參數解碼:透過 ggml 執行的小型 FFN 頭部將標記解碼為 519 個姿態參數(全局朝向、關節角度、形狀貝塔、手部姿態與面部表情)與 3 個相機參數。
- 網格生成:這些參數驅動原生 C 實作的線性混合蒙皮(LBS)流程,產生完整的 3D 人體網格(18,439 個頂點)與 70 個關鍵點。
適用對象
- 需要零 Python 依賴進行 3D 人體姿態估計的 開發者。
- 希望將多人動作導出為標準 BVH 檔案,以便在 Blender 或其他 DCC 工具中使用的 動作捕捉藝術家。
- 希望生成包含骨架、皮膚權重與個人化網格的 MPEG ARF (.arfz) 容器的 虛擬形象創作者。
- 需要從單目影片中快速進行 C++ 基礎 3D 身體參數回歸的 機器人/CV 工程師。
核心亮點
- 零 Python 執行時:完全獨立的 C++ 實作,使用 ONNX Runtime 與 ggml。
- 多人物追蹤:內建 2D 边界框 IoU 追蹤器,可在影片幀間維持穩定身分。
- 產業標準匯出:支援 BVH 動作捕捉檔案與 MPEG ARF 虛擬形象容器。
- 彈性硬體支援:針對 CUDA GPU 優化,同時提供 CPU 專用的 FP32/FP16 回退模型。
- 全面輸出:提供完整的 3D 網格頂點、70 個身體/手部關鍵點與相機平移資訊。
相關
- 專案
- 專案
- 專案
- 專案
- 專案