OpenCV を使用して相対的なカメラ ポーズを推定しようとしています。私の場合、カメラは調整されています(カメラの固有パラメータを知っています)。
2 つの位置でキャプチャされた画像が与えられた場合、2 つのカメラ間の相対的な回転と平行移動を調べる必要があります。典型的な平行移動は約 5 ~ 15 メートルで、カメラ間のヨー角回転は 0 ~ 20 度の範囲です。
これを達成するために、以下のステップが採用される。
- を。SIFT/SURFを使って対応する点を探す
- b. 基本的なマトリックスの同定
- c.
E = K'FK
特異点制約の Eによるエッセンシャル マトリックスの推定と修正 - d. 回転を取得する分解必須行列、
R = UWVt
またはR = UW'Vt
(U と Vt は E の SVD を取得) - e. 回転行列から実際の回転角を取得する
実験 1: 実際のデータ
実際のデータ実験のために、三脚にカメラを取り付けて画像を撮影しました。位置 1 でキャプチャされた画像、次に位置合わせされた別の位置に移動し、ヨー角を 5 度単位で変更し、位置 2 でキャプチャされた画像。
問題/問題:
- 推定されたヨー角度の符号は、グラウンド トゥルース ヨー角度と一致しません。5 度が 5 度と推定されることもありますが、10 度は -10 度、15 度は 15 度と推定されます。
- 実験では、ヨー角度のみが変更されますが、推定されるロール角度とピッチ角度は、180/-180 度に近いゼロ以外の値になります。
- 場合によっては、精度が非常に低く、推定角度とグラウンド トゥルース角度の誤差が約 2 ~ 5 度です。
- 実際の測定単位での変換を取得するためのスケール係数を見つける方法は?
シミュレートされたデータでも動作は同じです。
私と同じような問題を経験した人はいますか?それらを解決する方法についての手がかりを持ってください。誰からの助けも大歓迎です。
(同様の問題に関する投稿がすでに非常に多くあることは知っていますが、それらすべてを調べても私は救われませんでした。したがって、もう一度投稿してください。)