2つの画像の対応点からから3次元上の点を求める
理論
ある3次元上の点をカメラ内部パラメータ行列とカメラ外部パラメータ行列を用いて画像上に投影した点をとすると、以下の関係が成り立ちます[1]。
または、
はスケール調整の定数です。カメラ内部行列の,はそれぞれピクセル単位の焦点距離、,は画像中心を表します。カメラの固有パラメータという感じです。カメラ外部行列はカメラ姿勢を表し、3次元物体の座標をカメラ座標に変換する役割を持ちます。
同じカメラで別の視点からを投影した画像が2枚(画像1、画像2)あり、それぞれのカメラ内部・外部行列を合わせたものを, 、画像上の投影点を, とすると、それぞれに対して(1)を適応して、
と表せます。
これを変形すると、
と書けます。これを解くことでが求まります。特異値分解で解くことが出来ます。
試してみた
3次元上の物体をカメラ行列, を使ってそれぞれ画像1,画像2に変換し、その画像を3次元上に復元する例を作成しました。
カメラ行列のパラメータはそれぞれ変えることが出来ます。
Fig1. 1段目左:元の3次元上の物体、右:復元した3次元物体
(2段目:元の物体のカメラ座標上の点。ここでは説明していない)
3段目左:画像1、右:画像2
元の3次元物体と復元結果が一致しています。