3 つのエピポーラ点対応、つまり 3 つの({x1, y1, 1}, {x2, y2, 1})
構造があります。実際には、大きなエラーが含まれている(x1, y1, y2)
ため、しかありません。x2
これらの座標はすでに中央に配置され、正規化されています。3D 回転行列 が与えられた場合RotM
、1 点の残差を計算する方法は次のとおりです。
residual(RotM) = y2' - y2
where
rotated = RotM . {x1, y1, 1}
{x2', y2', 1} = rotated / rotated[3]
確かに、これら 3 つの残差を数値的に最適化して を得ることができRotM
ます。これは自由度も 3 であるためです。しかし、回転を分析的に取得したい。
問題は、3 つの(x1, y1, y2)
トリプレットが与えられた場合、回転行列を計算する式は何かということです。オイラー角やクォータニオンでも満足です。
ノート:
- 回転が小さい。正確には、オイラー角のテーラー級数の 3 次項を破棄してもかまいません。
- Wolfram Mathematica はこれを解決することを拒否しています.
- 確か、このような変換を「透視変換」と呼んでいます。