3Dポーズ推定

モーションキャプチャシステムにおける姿勢推定

3Dポーズ推定とは、画像または3Dスキャンデータを用いて、ユーザー定義の参照ポーズから物体の変形を予測するプロセスです。コンピュータビジョンロボティクスの分野では、物体のポーズや変形をコンピュータ支援設計モデルの位置合わせ、物体の 識別、把持、操作に利用します。

物体の姿勢を決定するための画像データは、単一画像、ステレオ画像ペア、または画像シーケンス(通常はカメラが既知の速度で移動している)のいずれかです。対象となる物体は、生物や頭部や手といった体の一部など、比較的一般的なものになります。しかしながら、物体の姿勢を決定するために使用される手法は、通常、特定の物体のクラスに特化しており、他の種類の物体にも必ずしも有効であるとは期待できません。

キャリブレーションされていない2Dカメラから

3Dオブジェクトの大まかな3Dモデルと2D画像上の対応点が分かれば、1枚の2D写真から3Dオブジェクトの3D回転と並進を推定することが可能です。これを解決するために1995年に開発された一般的な手法がPOSITです。[ 1 ] POSITでは、3Dモデルの点と2D画像の点から3D姿勢を直接推定し、1枚の画像から良好な推定値が得られるまで誤差を繰り返し修正します。[ 2 ] POSITの実装のほとんどは、非共面点(つまり、平面のオブジェクトや平面では動作しません)でのみ機能します。[ 3 ]

別のアプローチは、姿勢パラメータを考慮して適切な距離尺度を最適化し、既知の物体の写真に3D CADモデルをレジストレーションすることです。 [ 4 ] [ 5 ] 距離尺度は、写真に写っている物体と、与えられた姿勢における 3D CADモデル投影との間の距離尺度を計算します。使用する姿勢表現に応じて、透視投影または直交投影が可能です。このアプローチは、既知の物体(または物体カテゴリ)の3D CADモデルが利用可能なアプリケーションに適しています。

校正された2Dカメラから

物体の2D画像と世界座標系に対して較正されたカメラが与えられれば、物体座標系における3D物体の姿勢を見つけることも可能です。[ 6 ]これは次のように機能します。

2Dから3Dを抽出する

2次元画像から、画像内の角に対応する画像点を抽出します。画像点からの投影光線を2次元点から再構成することで、再構成された光線に入射する3次元点を特定します。

擬似コード

姿勢推定アルゴリズムは、反復最近点アルゴリズムに基づいています。基本的な考え方は、2D画像の特徴と3Dモデル曲線上の点との対応関係を決定することです。

(a) 像点から投影光線を再構成する (b) 各投影光線の3D輪郭上の点への最も近い点を推定する (c) この対応集合を用いて輪郭の姿勢を推定する (d) 行く (b) 

上記のアルゴリズムは、部分的に遮蔽された物体を含む画像を考慮していません。以下のアルゴリズムでは、すべての輪郭が剛体結合されている、つまり1つの輪郭の姿勢が別の輪郭の姿勢を定義すると仮定します。

(a) 像点から投影光線を再構成する (b) 各投影光線Rについて: (c)各3D輪郭について: (c1) 等高線上の点に対する光線Rの最近傍点P1を推定する (c2) (n == 1)の場合、点-線対応の実際のPとしてP1を選択する (c3) そうでなければP1とPを比較する: dist(P1, R)がdist(P, R)より小さい場合 P1を新しいPとして選択する (d) (P, R)を対応集合として用いる。 (e) この対応関係を用いて姿勢を推定する (f) 輪郭を変換し、(b) へ進む 

比較による姿勢の推定

物体の様々な回転や並進のデータベースを用いて入力画像と比較し、姿勢を推定するシステムが存在する。これらのシステムの精度は画像データベースに表現されている状況に限定されるが、目標は姿勢を決定することではなく、認識することである。[ 7 ]

ソフトウェア

  • posest は、3D-2D 対応から 6DoF ポーズを推定するためのGPL C / C++ライブラリです。
  • diffgeom2pose は、方向を持つ点(ベクトル)または曲線上の点(点-接線)の2つの3D-2D対応点から6自由度姿勢を推定する高速Matlabソルバーです。点には特徴方向をSIFTで付与できます。
  • MINUS:3つのビューの(相対)姿勢推定のためのC++パッケージ。3つの対応点とそれらの点を結ぶ直線(特徴点の位置と方向、または接線を持つ曲線点など)の場合、および3つの対応点と1つの直線の対応の場合が含まれます。
  • Nvidia FoundationPose は、6DoF オブジェクトのポーズ推定と追跡のための統合ディープラーニング基盤モデルであり、3D モデルベースと 3D モデルフリーの両方のセットアップをサポートします。

参照

参考文献

  1. ^ハビエル・バランディアラン (2017 年 12 月 28 日)。「POSITチュートリアル」。 OpenCV。
  2. ^ Daniel F. Dementhon; Larry S. Davis (1995). 「25行のコードでモデルベースの物体姿勢を計測」 . International Journal of Computer Vision . 15 ( 1–2 ): 123– 141. doi : 10.1007/BF01450852 . S2CID 14501637. 2010年5月29日閲覧 
  3. ^ Javier Barandiaran. 「OpenCVとOpenGLを使ったPOSITチュートリアル」 . 2010年6月20日時点のオリジナルよりアーカイブ2010年5月29日閲覧。
  4. ^ Srimal Jayawardena、Marcus Hutter、Nathan Brewer (2011). 「単眼3D姿勢推定のための新しい照明不変損失」. 2011 International Conference on Digital Image Computing: Techniques and Applications . pp.  37– 44. CiteSeerX 10.1.1.766.3931 . doi : 10.1109/DICTA.2011.15 . ISBN  978-1-4577-2006-2. S2CID  17296505 .
  5. ^ Srimal Jayawardena、Di Yang、Marcus Hutter (2011). 「3Dモデル支援画像セグメンテーション」. 2011 International Conference on Digital Image Computing: Techniques and Applications . pp.  51– 58. CiteSeerX 10.1.1.751.8774 . doi : 10.1109/DICTA.2011.17 . ISBN  978-1-4577-2006-2. S2CID  1665253 .
  6. ^ Bodo Rosenhahn. 「2D-3Dポーズ推定の基礎」 . CV Online . 2008年6月9日閲覧。
  7. ^ Vassilis Athitsos、Stan Sclarof (2003年4月1日).乱雑な画像からの3Dハンドポーズ推定(PDF) (技術レポート). ボストン大学コンピュータサイエンス技術部.オリジナル(PDF)から2019年7月31日時点のアーカイブ。

参考文献