Skip to main content

FoundationPose

FoundationPose は、NVIDIA による 6D object pose estimation / tracking の foundation model です。RGB-D image から object の 6D pose を推定し、model-based と model-free の両方の設定を扱うことを目指します。

何が foundation なのか

従来の 6D pose estimator は、特定 object category や特定 dataset に強く依存しがちでした。FoundationPose は、

  • CAD model がある場合 (model-based)
  • CAD model がない場合 (model-free, reference image から)
  • Novel object
  • Pose estimation と tracking

を一つの framework で扱います。

基本 pipeline

Object mask は SAM などの segmentation model と組み合わせることもできます。Pose hypothesis を生成し、render-and-compare 的に scoring / refinement することで高精度化します。

Model-based と model-free

設定入力説明
Model-basedCAD model + RGB-DCAD model を image / depth に合わせて pose を推定します。
Model-freeReference image / observation + RGB-DCAD model なしで novel object の pose を推定します。

Model-free setting は、未知 object が多い robotics で特に重要です。

Robotics での意味

Robot が物体を把持したり操作したりするには、object の pose が必要です。FoundationPose のような model が robust に動くと、

  • 新しい物体を登録なしで扱う
  • Pose tracking で manipulation 中の object を追跡する
  • AR / digital twin と連携する

といった応用が可能になります。

Limitations

  • Accurate mask に依存する場合があります。
  • Transparent / reflective object は難しいです。
  • Depth sensor の noise が pose に影響します。
  • Severe occlusion では hypothesis が不安定になります。

数式で見る pose refinement

FoundationPose のような 6D pose system では、初期 pose を仮定し、rendering と観測画像の差から pose を refine します。現在の pose を T\mathbf{T}、更新量を Δξse(3)\Delta\boldsymbol{\xi}\in\mathfrak{se}(3) とすると、Lie algebra 上の更新は次のように書けます。

Texp(Δξ)T\mathbf{T}\leftarrow \exp(\Delta\boldsymbol{\xi})\mathbf{T}

この式の気持ちは、「rotation と translation を別々に雑に足すのではなく、SE(3) 上の小さな剛体変換として pose を更新する」というものです。

Rendering-based refinement では、render 画像特徴 ϕ(R(T,M))\phi(R(\mathbf{T},\mathcal{M})) と観測画像特徴 ϕ(I)\phi(I) を近づけます。

Lrefine=ϕ(R(T,M))ϕ(I)1\mathcal{L}_{refine}=\left\|\phi(R(\mathbf{T},\mathcal{M}))-\phi(I)\right\|_1

ここで、M\mathcal{M} は object model です。特徴空間で比較することで、照明や texture の違いに対して raw RGB より頑健になることがあります。

関連ページ

主なソース