6

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 でキャプチャされた画像。

問題/問題:

  1. 推定されたヨー角度の符号は、グラウンド トゥルース ヨー角度と一致しません。5 度が 5 度と推定されることもありますが、10 度は -10 度、15 度は 15 度と推定されます。
  2. 実験では、ヨー角度のみが変更されますが、推定されるロール角度とピッチ角度は、180/-180 度に近いゼロ以外の値になります。
  3. 場合によっては、精度が非常に低く、推定角度とグラウンド トゥルース角度の誤差が約 2 ~ 5 度です。
  4. 実際の測定単位での変換を取得するためのスケール係数を見つける方法は?

シミュレートされたデータでも動作は同じです。

私と同じような問題を経験した人はいますか?それらを解決する方法についての手がかりを持ってください。誰からの助けも大歓迎です。

(同様の問題に関する投稿がすでに非常に多くあることは知っていますが、それらすべてを調べても私は救われませんでした。したがって、もう一度投稿してください。)

4

2 に答える 2

2

Hartley と Zisserman の第 9.6 章で、特定の必須行列について、1 つのカメラが正規の位置/向きで保持されている場合、2 番目のカメラ行列には 4 つの解決策があると指摘しています。u3]、[UWV'| -u3]、[UW'V' | u3]、および [UW'V' | -u3]。

1 番目と 3 番目 (および 2 番目と 4 番目) のソリューションの違いは、「ツイスト ペア」と呼ばれる 2 つのカメラを結ぶ線を中心に向きが 180 度回転することです。

この本によると、4 つのオプションから平行移動と方向の正しい組み合わせを選択するには、シーン内のポイントをテストし、そのポイントが両方のカメラの前にあることを確認する必要があります。

于 2014-04-07T19:38:22.137 に答える
0

問題 1 と 2 については、ウィキペディアまたは Wolfram Mathworld などの優れた数学サイトで「オイラー角」を探してください。オイラー角のさまざまな可能性を見つけることができます。文献を読むと、結果の符号が変化する理由を理解できると思います。

問題 3 については、主に個々のカメラのキャリブレーションの精度に関係しているはずです。

問題 4 については、わかりません。テープを使用してカメラからポイントを測定し、それを平行移動ノルムと比較して倍率を取得します。

精度が悪い場合に考えられる理由:

1) カメラのキャリブレーションで妥当な精度と正確な精度を得ることには違いがあります。このスレッドを参照してください。2) 三脚を動かす精度。位置の変更中に、表面に垂直な軸を中心に三脚が回転しないようにするにはどうすればよいですか。

シミュレーションのコンセプトがわかりませんでした。ただし、以下のテストをお勧めします。

カメラやオブジェクトを動かさずに画像を撮影します。相対的なカメラ ポーズを計算する場合、回転は単位行列で、平行移動は null ベクトルである必要があります。数値の不正確さとノイズが原因で、角度の分単位で回転偏差が表示される場合があります。

于 2012-11-14T11:12:08.740 に答える