3D ポーズ推定は、画像または3D スキャンが与えられた場合に、ユーザー定義の参照ポーズからオブジェクトの変換を予測するプロセスです。これは、オブジェクトのポーズまたは変換をコンピューター支援設計モデルの配置、オブジェクトの識別、把握、または操作 に使用できるコンピューター ビジョンまたはロボット工学で発生します。
物体の姿勢を決定する画像データは、単一の画像、ステレオ画像ペア、または通常カメラが既知の速度で移動している画像シーケンスのいずれかです。考慮される物体は、生物や体の一部 (頭や手など) など、かなり一般的なものになります。ただし、物体の姿勢を決定するために使用される方法は、通常、物体のクラスに固有のものであり、他の種類の物体には一般的にうまく機能するとは期待できません。
未校正の2Dカメラから
3Dオブジェクトの 3D 回転と移動を 1 枚の 2D 写真から推定することは可能です。ただし、オブジェクトの大まかな 3D モデルがわかっていて、 2D 画像内の対応するポイントがわかっている必要があります。これを解決するために 1995 年に開発された一般的な手法は POSIT です。[1] POSIT では、 3D ポーズが 3D モデルのポイントと 2D 画像のポイントから直接推定され、1 枚の画像から適切な推定値が見つかるまでエラーが繰り返し修正されます。[2] POSIT の実装のほとんどは、非共面ポイントでのみ機能します (つまり、平らなオブジェクトや平面では機能しません)。[3]
もう1つのアプローチは、ポーズパラメータに関して適切な距離測定を最適化することにより、既知のオブジェクトの写真に3D CADモデルを登録することです。 [4] [5] 距離測定は、写真内のオブジェクトと特定のポーズでの 3D CADモデル投影との間で計算されます。使用されるポーズ表現に応じて、透視投影または直交投影が可能です。このアプローチは、既知のオブジェクト(またはオブジェクトカテゴリ)の3D CADモデルが利用できるアプリケーションに適しています。
校正された2Dカメラから
物体の2D画像と世界座標系に対して調整されたカメラが与えられれば、物体座標系における3D物体の姿勢を見つけることも可能です。[6]これは次のように機能します。
2Dから3Dを抽出する
2D 画像から始めて、画像内のコーナーに対応する画像ポイントを抽出します。画像ポイントからの投影光線は 2D ポイントから再構成され、再構成された光線に入射する 3D ポイントを決定できます。
擬似コード
姿勢推定を決定するアルゴリズムは、反復最近点アルゴリズムに基づいています。主な考え方は、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 対応のみから 6DoF ポーズを推定する高速 Matlab ソルバーです。点には、特徴方向でSIFT属性を設定できます。
- MINUS: 3 つのビューの (相対的な) ポーズ推定用の C++ パッケージ。3 つの対応する点とそれらの点における線 (特徴の位置と方向、または接線を持つ曲線点など) のケース、および 3 つの対応する点と 1 つの線が対応するケースが含まれます。
参照
参考文献
- ^ ハビエル・バランディアラン (2017 年 12 月 28 日)。 「POSITチュートリアル」。 OpenCV。
- ^ 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日閲覧。
- ^ Javier Barandiaran. 「POSITチュートリアル(OpenCVとOpenGLを使用)」。2010年6月20日時点のオリジナルよりアーカイブ。2010年5月29日閲覧。
- ^ Srimal Jayawardena、Marcus Hutter、Nathan Brewer (2011)。「単眼 3D 姿勢推定のための新しい照明不変損失」。2011国際デジタル画像コンピューティング会議: 技術とアプリケーション。pp . 37–44。CiteSeerX 10.1.1.766.3931。doi :10.1109/DICTA.2011.15。ISBN 978-1-4577-2006-2. S2CID 17296505。
- ^ Srimal Jayawardena、Di Yang 、 Marcus Hutter (2011)。「3D モデル支援画像セグメンテーション」。2011国際デジタル画像コンピューティング会議: 技術とアプリケーション。pp . 51–58。CiteSeerX 10.1.1.751.8774。doi :10.1109/DICTA.2011.17。ISBN 978-1-4577-2006-2.S2CID 1665253 。
- ^ Bodo Rosenhahn. 「2D-3D ポーズ推定の基礎」. CV Online . 2008 年 6 月 9 日閲覧。
- ^ Vassilis Athitsos、Stan Sclarof (2003 年 4 月 1 日)。乱雑な画像からの 3D ハンド ポーズの推定(PDF) (技術レポート)。ボストン大学コンピューター サイエンス技術部。2019 年 7 月 31 日のオリジナル(PDF)からアーカイブ。
文献
- Rosenhahn、B.「2D-3D ポーズ推定の基礎」
- Rosenhahn、B.「等角幾何学における 3D 自由形状輪郭の姿勢推定」
- Athitsos、V.「乱雑な画像から 3D の手のポーズを推定する」
外部リンク
- 3D姿勢の推定
