8点アルゴリズム

提供: testwiki
ナビゲーションに移動 検索に移動

8点アルゴリズムは、コンピュータービジョンの分野で使用されるアルゴリズムで、対応する画像上の点のセットから、ステレオカメラペアに対応する基本行列または基礎行列を推定する。これは、1981 年にクリストファー・ロンゲ・ヒギンズによって基本行列の推定のために導入された。理論的には、このアルゴリズムは基礎行列にも使用できるが、実際上は1997年にリチャード・ハートレーによって記述され正規化された8点アルゴリズムがこのケースにより適している。

このアルゴリズムの名前は、対応する8つ(またはそれ以上)の画像上の点のセットから基本行列または基礎行列を推定するということに由来している。ただし、このアルゴリズムの変形は、8点未満の場合でも使用できる。

共平面性制約

エピポーラ幾何の例。投影点O LおよびO Rのそれぞれの中心を持つ 2 つのカメラは点Pを観測する。各画像平面へのの投影は、pおよびpで示される。点ELERはエピポールである。

2台のカメラのエピポーラ幾何と空間内の点を代数方程式で表すことができる。点Pがどこにあったとしても、ベクトルOLPORPOROLは同一平面上にあることがわかる。「左目」の画像内の点Pの座標をXL、「右目」の画像内の点Pの座標をXR、2画像間の回転と平行移動をR,Tとする。2つの画像座標系でそれぞれ表されたPの座標の間の関係はXR=R(XLT)と表せる。記号ウェッジ積とすると、TXLから生成されるベクトルはTXLの両方に直交するから、次の式が常に成り立つ。

XLTTXLTTTXL=(XLT)TTXL=0

I=RTRであるから、次が得られる。

(XLT)TRTRTXL=0 .

(XLT)TRTXRTに置き換えることで、次が得られる。

XRTRTXL=XRTRSXL=XRTEXL=0

Tは行列とみなすことができる。ロンゲ・ヒギンズは記号Sを用いてそれを示した。積RT=RSはしばしば基本行列と呼ばれEで表される。

ベクトルOLpL,ORpRはベクトルOLP,ORPと平行であるから、これらのベクトルを置き換えても共平面性の制約は保持される。左右の画像平面へPを投影した座標をy,yとすると、共平面性制約は次のように記述できる。

y'T𝐄y=0

基本的なアルゴリズム

ここでは、基本行列𝐄を推定する場合の基本的な8点アルゴリズムについて説明する。これは3つのステップで構成されている。まず、同次線形方程式を定式化する。ここで、解は𝐄に直接関連しており、正しい解がない可能性があることを考慮して方程式を解く。最後に、得られた行列の内部制約を利用する。1番目のステップはロンゲ・ヒギンズの論文で説明されているもので、2番目と3番目のステップは推定理論の標準的なアプローチである。

基本行列𝐄によって定義される制約は次のように表せる。

(𝐲)T𝐄𝐲=0

𝐲,𝐲は対応する画像上の点の正規化画像座標である。 アルゴリズムが解くべき問題は、対応する画像上の点の集合から基本行列𝐄を決定することである。実際には、画像点の画像座標はノイズの影響を受け、解も過剰決定される可能性がある。つまり、すべての点について上記の制約を正確に満たす𝐄を見つけることができない場合がある。この問題は、アルゴリズムの2番目のステップで対処される。

ステップ 1:同次線形方程式の定式化

次のように、

𝐲=(y1y21) と 𝐲=(y'1y'21) と 𝐄=(e11e12e13e21e22e23e31e32e33)

と書くと、制約は次のように書き換えることもできる。

y'1y1e11+y'1y2e12+y'1e13+y'2y1e21+y'2y2e22+y'2e23+y1e31+y2e32+e33=0

あるいは

𝐞𝐲~=0

ここで、それぞれ以下を表している。

𝐲~=(y'1y1y'1y2y'1y'2y1y'2y2y'2y1y21) と 𝐞=(e11e12e13e21e22e23e31e32e33)

つまり、これら2つのベクトルは直交している必要がある、ということである。𝐞は基本行列を9次元ベクトルの形式で表したものであり、同様に𝐲~3×3行列𝐲𝐲Tを9次元ベクトルの形式で表したものになっている。

対応する画像上の点の各ペアは、ベクトル𝐲~を生成する。3次元点𝐏kの集合が与えられたとき、これらをベクトル𝐲~kの集合とみなすと、これらの全てがベクトル𝐞に対して次の式を満たさなければならない。

𝐞𝐲~k=0

十分な数(少なくとも8つ)の線形独立なベクトル𝐲~kが与えられると、簡単な方法で𝐞を決定することができる。行列𝐘の列としてすべてのベクトル𝐲~kを集めると、次のようになる必要がある。

𝐞T𝐘=𝟎

これは𝐞同次線形方程式の解であることを意味する。

ステップ 2: 方程式を解く

この方程式を解くための標準的なアプローチは、 𝐞をゼロに等しい特異値に対応する𝐘右特異ベクトルとして求める方法である。𝐘を構成するために少なくとも8つの線形独立ベクトル𝐲~kが使用される場合、この特異ベクトルは(スカラー乗算を無視すれば)一意であり、𝐞𝐄を決定できる。

𝐘を構成するために8より多くの対応点が使用される場合、ゼロに等しい特異値を持たない可能性がある。このケースは、画像座標がさまざまな種類のノイズの影響を受ける場合に実際に発生する。この状況に対処するための一般的なアプローチは、これを最小二乗問題として記述することである。すなわち、𝐞=1のもとで以下を最小にする𝐞を求める。

𝐞T𝐘

解は𝐘最小特異値に対応する左特異ベクトルとして𝐞を選択することで得られる。この𝐞3×3行列に並べ替えると、このステップの結果(ここでは𝐄estと呼ぶ)が得られる。

ステップ 3: 内部制約の適用

ノイズの多い画像座標を扱っている場合は、結果の行列が基本行列の内部制約(その特異値のうち2つは互いに等しく非ゼロであり、もう1つはゼロでなければならない)を満たさない可能性もある。利用場面によって、内部制約からの偏差が小さい場合も大きい場合も、問題になる場合と問題にならない場合がある。推定された行列が内部制約を満たすことが重要な場合、これは以下を最小化するランク2の行列𝐄を見つけることによって達成できる。

𝐄𝐄est

ここで𝐄estはステップ2で得られた行列で、フロベニウス行列ノルムが使用される。この問題を解くために、まず次のように𝐄est特異値分解する。

𝐄est=𝐔𝐒𝐕T

ここで𝐔,𝐕は直交行列であり、 𝐒𝐄estの特異値を含む対角行列である。理想的には𝐒の対角要素の1つはゼロであるが、少なくとも互いに等しいことが期待されている他の2つと比較して小さい必要がある。いずれにせよ、次を設定する。

𝐒=(s1000s20000),

ここでs1,s2はそれぞれ𝐒の最大および2番目に大きい特異値である。 結局、𝐄は次のように与えられる。

𝐄=𝐔𝐒𝐕T

行列𝐄がこのアルゴリズムによって得られた基本行列の推定結果である。

正規化されたアルゴリズム

基本的な8点アルゴリズムは、原理的に基礎行列𝐅の推定にも使用できる。定義される𝐅の制約は次のようになる。

(𝐲)T𝐅𝐲=0

ここで𝐲,𝐲対応した画像座標の同次表現である(正規化していなくともよい)。これは、以下のように基本行列と同様の方法で行列𝐘を形成し、方程式を解くことができることを意味する。

𝐟T𝐘=𝟎

ここで𝐟𝐅のベクトル表現である。上記の手順に従うことで、8つの対応点の集合から𝐅を決定することができる。ただし実際には結果として得られる基本行列はエピポーラ制約を決定するのに役立たない場合がある。

問題点

問題は、結果として得られる𝐘がしばしば悪条件(英 : ill-conditioned)となることである。理論上、𝐘はゼロに等しい特異値を1つ持つ必要があり、残りは非ゼロである。ただし実際には、非ゼロの特異値の一部は、大きな特異値に比べて小さくなる可能性がある。 𝐘を構成するために8よりも多い対応点が使用され、座標がほぼ正確である場合、ほぼゼロとして識別できるwell-definedな特異値が存在しない可能性がある。その結果、同次連立一次方程式の解は、実用に耐えうるほどの正確さが得られない可能性がある。

原因

ハートレーは、1997年の記事でこの推定問題に対処した。彼の問題の分析は、問題がその空間3内の同次画像座標の分布の悪さによって引き起こされることを示している。二次元画像座標(y1,y2)の典型的な同次表現は次のようになる。

𝐲=(y1y21)

ここでy1,y2はいずれも一般的なデジタルカメラでは、0から1000~2000の範囲にある。これは、𝐲の最初の2つの座標が3番目の座標よりもはるかに広い範囲にわたって変化することを意味する。さらに、𝐘を構築するために使用される画像上の点が画像の比較的小さな領域、例えば(700,700)±(100,100)にある場合、ベクトル𝐲はすべての点に対してだいたい同じような方向を指す。結果として、𝐘には1つの大きな特異値があり、残りは小さい値になってしまう。

解決策

この問題の解決策としてハートレーは次の原則に従って2画像のそれぞれの座標系を独立して新しい座標系に変換することを提案した。

  • 新しい座標系の原点は、画像の図心(重心)を中心とする(原点を持つ)必要がある。これは、元の原点を新しい原点に平行移動することで実現できる。
  • 平行移動後、原点から点までの距離の平均が2に等しくなるように、座標を均一にスケーリングする。

この原則により通常2つの画像のそれぞれに対して個別に座標変換が行われる。その結果、新しい同次画像座標𝐲¯,𝐲¯は次の式で与えられる。

𝐲¯=𝐓𝐲
𝐲¯=𝐓𝐲

ここで𝐓,𝐓は、元の画像座標から新しい正規化された画像座標への変換(平行移動とスケーリング)である。この正規化は、単一の画像で使用される画像点のみに依存するもので、一般に正規化されたカメラによって生成される正規化画像座標とは異なるものである。

基礎行列に基づくエピポーラ制約は、次のように書き換えられる。

0=(𝐲¯)T((𝐓)T)1𝐅𝐓1𝐲¯=(𝐲¯)T𝐅¯𝐲¯

ここで𝐅¯=((𝐓)T)1𝐅𝐓1である。これは、正規化された同次画像座標𝐲¯,𝐲¯を使用して、上記の基本的な8点アルゴリズムを使用して変換された基本行列𝐅¯を推定できることを意味する。

正規化変換の目的は、一般に正規化された画像座標から構築された行列𝐘¯が、𝐘よりも優れた条件数を持つようにすることである。これは、解𝐟¯が同次方程式𝐘¯𝐟¯の解として、𝐘に対する𝐟に比べてより well-defined であることを意味する。𝐟¯が決定し𝐅¯が再形成されると次の式に従って非正規化を行い𝐅を得ることができる。

𝐅=(𝐓)T𝐅¯𝐓

一般に、基礎行列のこの推定値は、正規化されていない座標からの推定値よりも優れている。

8未満の点を用いる場合

各点ペアは𝐄の要素に対して1つの拘束方程式に与える。𝐄には5つの自由度があるため、𝐄の決定には5つの点ペアだけで十分なはずである。これは理論的な観点からは可能だが、実際に実装するのは簡単ではなく、さまざまな非線形方程式を解く必要がある。

カヴェ・ファシアンらは、回転クォータニオンを直接計算することにより、基本行列の計算を回避する5、6、および7点のアルゴリズムを提案した。 [1] [2]

関連項目

脚注

参考文献