問題の解を見つけるには、最初にこの問題を数学的に表現し、既存の数学ツールを使用して方程式の解を見つけることができます。しかし、興味深い問題は、通常、さまざまな数学的な方法で表現することができ、それぞれがわずかに異なる解を導く可能性があります。次に、さまざまな方法を分析して、どれが最も安定/正確/効率的な/などのソリューションを提供するのかを理解する作業を行います。
PnP問題の場合、3Dポーズとその投影画像平面との間の関連性を考慮して、カメラポーズを見つける必要があります。
この問題を数学的に表現する最初の方法は、線形最小自乗問題としてキャストすることです。この手法はDLTアプローチとして知られており、線形最小二乗法は特異値分解を使用して堅牢に発見できる閉形式解を有するので興味深い。しかし、この手法では、実際にカメラが6自由度(3D回転の場合は3、3D変換の場合は3)のときに、カメラの姿勢Pは12自由度であると仮定しています。このアプローチの結果から6DOFカメラ姿勢を得るためには、近似が必要であり(DLTの線形コスト関数ではカバーされない)、不正確な解をもたらす。
PnP問題を数学的に表現する第2の方法は、幾何学誤差をコスト関数として使用し、幾何学誤差を最小にするカメラポーズを見つけることです。幾何学的誤差は非線形であるため、この手法では、Levenberg Marquardtアルゴリズムなどの反復ソルバーを使用して解を推定します。このようなアルゴリズムは、カメラ姿勢の6自由度を考慮に入れて、正確な解を導く。しかし、それらは反復アプローチであるため、実際にはDLTアプローチを使用して得られることが多い解の初期推定値を提供する必要があります。
あなたの質問のタイトルに答えてください:確かに、DLTアルゴリズムは最適なカメラ外来を与えますが、DLTアルゴリズムによって解決される線形コスト関数の意味でのみ最適です。長年に渡って、科学者はより複雑なコスト関数を発見し、より正確な解を導くだけでなく、解くのがより困難になりました。
私は、繰り返し実行される外来推定にある種の非線形改良の余分なステップを追加するのが一般的だと思います。ここをクリックしてください:http://www.epixea.com/research/multi-view-coding-thesisse9.html – Dan
あなたのリンクのために@Dan thx、私はCvLevMarqのソルバーがopencvでしたのと同じように、よくあることを知っています。つまり、DLTはコスト関数の**閉形式最小化**のようなものですが、なぜそれはまだ劣っていますか(ローカル最小値)? – zhangxaochen