Absolute Orientation Absolute Orientationの問題 二つの座標系の間における剛体(rigid body)変換を復元す る問題である。 例えば: 2台のステレオカメラから得られた3次元情報の間の関係を 推定する問題。 その関係が知れば、すべての3次元情報をひとつの座標系 で記述することができる。 pc ( xc , yc , zc ) は、点Pがカメラ座標系での座標 p a ( xa , ya , za ) は、点Pがワールド座標系での座標 ある点群がそれぞれの座標系での座標は既知とした場合、カメ ラ座標系とワールド座標系の間の回転行列と平行移動ベクトル を推定する問題。 つまり、 p c ,1 , p a ,1 , p c , 2 , p a , 2 ,..., p c ,n , p a ,n が既知の場合、 p a ,i Rpc ,i p c を満たす R と p c を求める 問題。ここで、 rxx R ryx rzx rxy ryy rzy rxz ryz rzz px p c p y p z p a ,i Rpc ,i p c を展開すると、下記の方程式になる。 xa ,i rxx xc ,i rxy yc ,i rxz zc ,i p x ya ,i ryx xc ,i ryy yc ,i ryz zc ,i p y z a ,i rzx xc ,i rzy yc ,i rzz zc ,i p z 座標変換のパラメータは、12個で、回転行列の要素は9 個、並行移動ベクトルは3個である。 1対の対応点 p c ,i ,p a ,i から、上記のように、3個の方程 式が得られる。 したがって、最低、4対の対応点が必要。 たくさんの対応点があれば、最小2乗法を使えば、解の精 度を向上することができる。 しかし、Rは回転行列であることを無視して、つまり、 RRT I という拘束条件を無視して、連立方程式として 解を計算すれば、得られた答えは、有効な(意味のある) 回転行列でない可能性がある。 この問題を解決ために 1.線形方程式の解として得られた回転行列を、無理や り RRT I に従うように修正する。 たとえば、 rxy v2 yx ryy zx rzy v3 v'1 r r v1 rxx r r rxz T T yz とすると、 T zz v v v1 v' v' v'2 3 1 v'3 1 2 | v1 | | v 3 v1 | | v'1v'2 | しかし、この方法で得られた結果は最良の近似である保障 はありません。 2.回転行列の要素を求める代わりに、たとえば、pan, tilt, rollの角度を推定する。 しかし、こうすると、方程式は非常に複雑な三角関数の 方程式となってしまう。 3.RRT I を考慮して、方程式を解く方法 p a ,i Rpc ,i p c (3.1) 3.1 点群の重心を求める 1 n p a p a ,i n i 1 (3.2) 1 n p c p c ,i (3.3) n i 1 すると、平行移動ベクトルは、下記の式で表現できる。 pc p a Rpc (3.4) 3.2 各点から、重心の座標を引く p ' a ,i p a ,i p a (3.5) p 'c , i p c , i p c (3.6) p a , i p ' a , i p a (3.7) p c,i p'c ,i p c (3.8) すると、 式(3.7),(3.8)を式(3.1)に代入すると、 p'a ,i p a Rp'c,i Rp c p c (3.9) p'a ,i p a Rp'c,i Rp c p c (3.9) 式(3.4) を式(3.9)に代入すると、 (3.10) p'a ,i Rp'c ,i p'a,i q Rp'c,i (3.10)が成り立つとき、q = 0 最大になる。 このとき、 p'a ,i Rp'c ,i 4次元形式で表すと、 p'a,i Rp'c,i r'a,i qrc,iq* qr 'c,i qr 'a,i (3.9) したがって、回転行列を推定するために、下記の関数F(q) を最大にするqを求めれば良い。 F (q) qr 'c ,i qr 'a ,i N c ,i q N a ,i q n n i 1 i 1 n qT NTc ,i N a ,i q i 1 n T T q N c ,i N a ,i q i 1 qT Nq T xc ,i y c ,i N c ,i 0 x c ,i yc ,i z c ,i 0 z c ,i y c ,i z c ,i 0 xc ,i xa , i y a ,i N a ,i 0 x a ,i y a ,i z a ,i 0 z a ,i z a ,i 0 y a ,i xa , i ここで、 z c ,i yc ,i xc ,i 0 z a ,i y a ,i xa , i 0 そして、 S xx S yy S zz S S yz zy N S zx S xz S xy S yx S yz S zy S xx S yy S zz S zx S xz S xy S yx S xy S yx S xx S yy S zz S zx S xz S yz S zy S xy S yx S zx S xz S yz S zy S xx S yy S zz n n n i 1 i 1 i 1 n n n i 1 i 1 i 1 n n n i 1 i 1 i 1 S xx xc ,i xa ,i S xy xc ,i ya ,i S xz xc ,i za ,i S yx yc ,i xa ,i S yy yc ,i ya ,i S yz yc ,i z a ,i S zx zc ,i xa ,i S zy zc ,i ya ,i S zz zc ,i za ,i 関数F(q)はqに関する2次形式であり、そしてqの長さが1で ある。 「2次形式の微分と極値」 で説明したように、 F(q)の最大値 N の最大固有値であり、 F(q)を最大にするqは N の最大固有値に対応する固有ベク トルである。 従って、 q = N の最大固有値と対応している固有ベクトル
© Copyright 2024 ExpyDoc