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 は、SAM-3D-Body モデル用の高性能で独立した C++ 推論エンジンを提供します。標準的な 2D イメージや動画から 3D 人体ポーズ、形状、カメラパラメータを抽出可能で、Python ランタイムを必要としないため、プロダクションソフトウェアやリアルタイムアプリケーションへの統合に適しています。

動作方法

パイプラインは、Raw BGR イメージを複数のステージに渡して処理します:

  1. 検出:YOLO が人物のバウンディングボックスを検出。
  2. 特徴抽出:DINOv3-ViT-H バックボーンが各クッピングから空間特徴マップを生成。
  3. ポーズトークン化:6層のトランスフォーマーデコーダーが特徴マップを 1024 次元のポーズトークンに圧縮し、カメラの焦点距離とレイ方向に基づいて条件付け。
  4. パラメータデコード:ggml を介して実行される小さな FFN ヘッドがトークンを 519 パラメータ(グローバルオリエンテーション、関節角度、形状ベータ、手のポーズ、顔の表情)と 3 カメラパラメータにデコード。
  5. メッシュ生成:これらのパラメータがネイティブ C の Linear Blend Skinning (LBS) プロセスを駆動し、完全な 3D 人体メッシュ(18,439 頂点)と 70 キーポイントを生成。

対象ユーザー

  • 3D 人体ポーズ推定に Python 依存をゼロにしたい 開発者
  • Blender やその他の DCC ツールで使用可能な標準 BVH ファイルにマルチペルソンモーションをエクスポートしたい モーションキャプチャアーティスト
  • スケルトン、スキンウェイト、パーソナライズされたメッシュを含む MPEG ARF (.arfz) コンテナを生成したい アバター作成者
  • 単眼動画から高速な C++ ベースの 3D ボディパラメータ回帰を必要とする ロボット工学/CV エンジニア

特徴

  • Python ランタイムゼロ:ONNX Runtime と ggml を使用した完全に独立した C++ 実装。
  • マルチペルソン追跡:2D バウンディングボックスの IoU トラックャーを内蔵し、動画フレーム間で安定したアイデンティティを維持。
  • 業界標準エクスポート:BVH モーションキャプチャファイルと MPEG ARF アバター コンテナをサポート。
  • 柔軟なハードウェア対応:CUDA GPU に最適化されているが、CPU 動作用の FP32/FP16 フォールバックモデルも提供。
  • 包括的な出力:3D メッシュ頂点、70 個のボディ/手のキーポイント、カメラの並進情報を提供。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト