問題タブ [projective-geometry]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opencv - カメラの動きを考慮して、2 つの画像から 3D 点を再構築します。
同じカメラから撮影した 2 つの画像から 3D ポイントの実世界の座標を再構築しようとしています。カメラは調整されていませんが、動き (平行移動と回転) はわかっています。要するに:
要件:
- キャリブレーションなし
画像点の対応以外の追加の制約:
- 既知のカメラの移動と回転
- すべてのビューで同じカメラを使用
像点対応のみからは、射影変換までしか情景を再構成できないことを理解しています。より多くの制約を使用すると、アフィンまたは類似性の再構築が行われる場合があります。私の場合、類似性の再構築が必要です。
上記の制約を考えると、類似性の再構成は可能ですか? 可能であれば、どのようにすればよいですか?
私はいくつかの角度から問題を攻撃しようとしました。私は数学に堪能ではないので、できる限り opencv を使用するようにしています。
findFundamentalMat()
2 つの画像から、うまくいけば 2 つのカメラ マトリックスを抽出しtriangulatePoints()
ます。ご想像のとおり、基本行列からカメラ行列を取得できず、途中で行き詰まりました。教科書「Multiple View Geometry in Computer Vision」(Hartley と Zisserman 著) は、基本行列とエピポールの 1 つを使ってカメラ行列を表現する式 (p.256、結果 9.14) を提供します。ただし、カメラの固有パラメーター (要件: キャリブレーションなし) を知らなければ、エピポールを取得する方法がわかりません。
また、問題をステレオ システムとして扱い、opencv の
stereo***
機能を使用しようとしています。しかし、それらはすべて、キャリブレーションに人間の介入が必要なようで、これは私の要件に違反しています。
ですから、今日ここで質問します。重要なのは、これらの追加の制約が与えられた場合でも、類似性の再構築が可能かどうかです。私はそこにある豊富な知識を理解するほど賢くなく、自分で解決策を考え出すことができません. どんな助けでも大歓迎です。