2

同じオブジェクトの深度カメラでキャプチャされた 2 つの画像があります。オブジェクト上で同じポイントをいくつか (たとえば 5 つ) マークし、カメラ位置に対する座標を取得できます。それらの座標に基づいて、最初の画像を 0,0,0 と仮定して、2 番目の画像のカメラ位置を見つけることは可能ですか?

例:

画像 1
カメラの位置: 0,0,0
カメラの角度 (ピッチ、ロール、方向): 0,0,0

ポイント 1: 21.3、33.2、44.1
ポイント 2:
28.3、39.2、41.5 ポイント 3: 23.4、31.1、53.4

画像 2
カメラ位置: ?
カメラアングル: ?

ポイント 1: 23.4、31.2、44.7
...

ポイント間およびポイントとカメラ間の距離に基づいて計算できると思います。Pythonなどの単純なスクリプトで、3Dライブラリなしで実行できますか?

どうもありがとう。

4

1 に答える 1

0

カメラのことを何も知らない人なら、2枚の写真では無理だと思います。絶対的なスケーリングのあいまいさに加えて (例: シーン内のすべてを 10 分の 1 に縮小した場合、カメラの画像は同じになります...)、一致するペアの数を超えない深度スケーリングのあいまいさが明らかにあります。修理。このあいまいさは、3D 点のセット間にいくつかの絶対距離値を指定するか、必要な追加の長さスケールを提供する他の方法で解決できます。この件に関する論文を見つけましたが、それが解決する問題がまさにあなたが探している問題であるかどうかは明らかではありません.

最初にカメラの幾何学的な結像特性を測定してキャリブレーションを行うと、2 枚の写真の相対的なカメラ位置をより簡単に計算できます (追加情報がなくても、絶対スケーリングの問題は依然として存在します!)。私の記憶が正しければ、少なくとも 3 つのポイントが必要ですが、4 の場合は計算がはるかに簡単になります。もう 1 つは複数の画像のジオメトリです

OpenCVには、この種のことを行うためのライブラリがあります。ただし、探していることを正確に実行する機能はありません。使用方法を理解するには、その背後にある数学をある程度理解する必要があるため、このテーマに関する本を読む必要があります.

于 2012-09-26T17:40:42.897 に答える