私は一連の 3 次元の点と、これらの点の投影を含むいくつかの画像を持っています。また、カメラの焦点距離と、投影された画像の主点 (以前に行ったカメラのキャリブレーションの結果) もあります。
これらのパラメータが与えられた場合、3 次元の点と画像投影の間の自動対応を見つける方法はありますか? OpenCV のドキュメントをいくつか調べましたが、今まで適切なものが見つかりませんでした。投影の自動ラベル付け、したがって投影と 3 次元点との対応を行う方法を探しています。
私は一連の 3 次元の点と、これらの点の投影を含むいくつかの画像を持っています。また、カメラの焦点距離と、投影された画像の主点 (以前に行ったカメラのキャリブレーションの結果) もあります。
これらのパラメータが与えられた場合、3 次元の点と画像投影の間の自動対応を見つける方法はありますか? OpenCV のドキュメントをいくつか調べましたが、今まで適切なものが見つかりませんでした。投影の自動ラベル付け、したがって投影と 3 次元点との対応を行う方法を探しています。
質問はあまり明確ではありませんが、カメラの固有のキャリブレーションはあるが、シーンに対する位置と姿勢 (キャリブレーションの「外部」部分) はないと言うつもりだと思います。
画像が 1 つしかない場合、この問題には一般的な 3D 点群に対する固有の解決策はありません。ただし、3D 点をカメラに投影する光線に沿ってどこにでも移動しても、画像は変化しないことに注意してください。
1 つまたは複数の画像がある場合、点の 3D クラウドに関するすべてを知っており (たとえば、点は既知の形状とサイズのオブジェクトに属し、その上の既知の位置にあります)、それらをそれらの画像に一致させます。は、標準的な「カメラの切除」問題です。3D ポイントを画像に投影するカメラの外部パラメータを解くだけです。
複数の画像があり、カメラが移動している間シーンが静的であることがわかっていて、各カメラ位置で「十分な」3D ポイントを画像に一致させることができる場合は、カメラのポーズを最大スケールまで解くことができます。キャリブレーションされたカメラのソルバーに関する David Nister および/または Henrik Stewenius の論文から始めて、「バンドル調整」を調べることをお勧めします。
この (膨大な) テーマについて本当に学びたいのであれば、Zisserman と Hartley の本はどれよりも優れています。コードについては、 libmv、vxl、およびceresバンドル アジャスターを調べてください。