基本行列 (コンピュータビジョン)

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

テンプレート:Distinguish

基本行列(きほんぎょうれつ、英 : essential matrix𝐄コンピュータビジョンの分野で用いられる 3×3 行列であり、カメラがピンホールカメラモデルを満たすことを仮定したステレオ画像ペア間の対応する2点の関係を表す。

概要

より具体的には、 𝐲𝐲をそれぞれ画像1と2の同次正規化画像座標とし、𝐲𝐲がシーン内の同じ3次元点に対応する場合、以下の式が成り立つ。

(𝐲)𝐄𝐲=0


基本行列を定義する上記の関係は、1981年にH.クリストファー・ロンゲ・ヒギンズによって発表され、この概念がコンピュータービジョンコミュニティに紹介された。 リチャード・ハートレーアンドリュー・ジサーマンの著書では、類似の行列がもっと以前から写真測量法に登場していたと報告されている。 ロンゲ・ヒギンズの論文には、対応する正規化画像座標の組から𝐄推定するためのアルゴリズムと、𝐄が既知である場合に2台のカメラの相対的な位置と向きを決定するためのアルゴリズムが含まれている。そして最終的に、基本行列を用いて画像上の点の3次元座標を決定する方法を示している。

利用

基本行列は、基礎行列𝐅の前身とみなせる。いずれの行列も画像上の点ペア間の制約を確立できるが、基本行列は正規化を行うためにカメラの内部パラメータ(行列𝐊𝐊)を知る必要があるため、キャリブレーションされたカメラ間の関係にのみ使用できる。カメラがキャリブレーション済みである場合には、基本行列はカメラ間の相対的な位置と方向、および対応する画像上の点の3次元位置の両方を決定するために利用できる。基本行列は、基礎行列と次の関係がある。

𝐄=(𝐊)𝐅𝐊.

導出と定義

ここではロンゲ・ヒギンズによる論文に従って導出を行う。

正規化済みの2つのカメラが、それぞれの画像平面に3次元世界を投影しているとする。点Pの3次元座標を各カメラの座標系に対して(x1,x2,x3)(x'1,x'2,x'3)とする。カメラは正規化済みであるからピンホールカメラモデルが適用でき、対応する画像座標は

(y1y2)=1x3(x1x2) と (y'1y'2)=1x'3(x'1x'2)

と表せる。

2つの画像座標の同次表現は、次の式で与えられる。

(y1y21)=1x3(x1x2x3) と (y'1y'21)=1x'3(x'1x'2x'3)

これは、

𝐲=1x3𝐱~ と 𝐲=1x'3𝐱~

のようにコンパクトに書くこともできる。ここで𝐲𝐲は、二次元画像座標の同次表現であり、𝐱~𝐱~は適切な3次元座標だが、2つは異なる座標系である

正規化されたカメラのもう1つの結果は、各座標系を平行移動と回転によって関連付けられることである。これは、3次元座標の組が次のように式で関係付けられることを意味する。

𝐱~=𝐑(𝐱~𝐭)

ここで𝐑3×3 回転行列、𝐭は3次元平行移動ベクトルである。

基本行列は次のように定義される。

𝐄=𝐑[𝐭]×

ここで[𝐭]×𝐭外積の行列表現である。注: ここで、変換[𝐑T|𝐭]は2番目のビューの点を1番目のビューに変換する。

𝐄の定義では、正規化された画像座標の方向のみに関心がある[1](参照 : 三重積)。そのため画像座標を基本方程式(英 : essential equation)に代入する際、平行移動成分は必要がない。この𝐄の定義が対応する2つの画像座標間の制約を表すことを確認するには、次のように𝐄の左右から2つの異なる座標系の点Pの3次元座標かければ良い。

𝐱~'T𝐄𝐱~=(1)𝐱~T𝐑T𝐑[𝐭]×𝐱~=(2)𝐱~T[𝐭]×𝐱~=(3)0
  1. 上で述べた𝐱~𝐱~間の関係と、𝐑𝐭を用いた𝐄の定義を代入。
  2. 𝐑は回転行列であるから、𝐑T𝐑=𝐈
  3. 外積の行列表現の性質。

最後に、いずれのカメラからも見えていることからx3, x'3 > 0 であると想定できる。これは次の式を与える。

0=(𝐱~)T𝐄𝐱~=1x'3(𝐱~)T𝐄1x3𝐱~=(𝐲)T𝐄𝐲

これは、基本行列が対応する画像上の点間で定義する制約である。

性質

すべての 3×3 行列が、何かしらのステレオカメラにとっての基本行列になるわけではない。(基本行列は1つの回転行列と1つの交代行列(いずれも 3×3 行列)の行列積として定義されていることに注意。)。交代行列は等しい2つの特異値と0であるもう1つの特異値を持つ。回転行列の乗算は特異値を変えない。これは、基本行列もまた等しい2つの特異値と0であるもう1つの特異値をもつことを意味する。この性質は、しばしば基本行列の内部制約(英 : internal constraints)と呼ばれる。

基本行列𝐄にゼロ以外のスカラーを掛けても、その結果は𝐄と全く同じ制約を与える基本行列となる。これは𝐄射影空間の元とみなせることを意味する。すなわち、一方が他方のゼロ以外のスカラー倍である場合、2つの行列は等価とみなされる。これは、例えば𝐄が画像データから推定される場合の適切な考え方である。一方、𝐄を次のように定義することも考えられる。

𝐄=[𝐭~]×𝐑

ここで、𝐭~=𝐑𝐭であり、このとき𝐄well-definedな「スケーリング」を持つ。どちらの考え方がより適切かは、その利用場面によって異なる。

制約は、次のようにも表せる。

det𝐄=0

また、

2𝐄𝐄T𝐄tr(𝐄𝐄T)𝐄=0.

ここで、最後の式は行列制約で、各行列要素に1つずつ、9つの制約とみなせる。これらの制約は、5組の対応する点のペアから基本行列を決定するためによく用いられる。

基本行列には、射影要素として表示されるかどうかに応じて、5つまたは6つの自由度がある。回転行列𝐑と平行移動ベクトル𝐭にはそれぞれ 3 つの自由度があり、合計で6つである。一方で基本行列を射影要素とみなす場合は、スカラー倍に関連する1つの自由度を差し引く必要があり、計5つの自由度となる。

推定

対応する画像上の点のセットが与えられると、セット内のすべての点について定義されるエピポーラ制約を満たす基本行列を推定できる。ただし、(実際の状況ではよくあることだが)画像点がノイズの影響を受ける場合、すべての制約を正確に満たす基本行列を見つけることはできない。

各制約に関連する誤差がどのように測定されるかに応じて、対応する画像上の点の特定のセットの制約を最適に満たす基本行列を決定または推定できる。最も簡単なアプローチは、一般に8点アルゴリズムとして知られる最小二乗問題を設定することである。

回転と平行移動の抽出

上記の推定方法などによりステレオカメラペアの基本行列が分かっている場合、この情報を用いて2つのカメラ座標系間の回転行列𝐑と平行移動𝐭(スケーリングを含む)も決定できる。これらの導出において𝐄はwell-definedに決定されたスケーリングを持つというよりは射影要素であるとみなされる。

1つの解を見つける

𝐑𝐭を決定する次の方法は、𝐄特異値分解に基づく(ハートレーとジサーマンの本を参照)。 [2]特異値分解を用いずに𝐑𝐭を決定することもできる(ロンゲ・ヒギンズの論文等)。

𝐄に対して特異値分解を実行すると次が得られる。

𝐄=𝐔Σ𝐕T

ここで𝐔𝐕3×3の直行行列で、Σは次のような3×3の対角行列である。

Σ=(s000s0000)

Σの対角要素は𝐄の特異値であり、基本行列の内部制約に従い等しい2つの値と1つのゼロ値で構成される必要がある。また、次を定義する。

𝐖=(010100001) と 𝐖1=𝐖T=(010100001)

そして、次のアンザッツを設定する。

[𝐭]×=𝐔𝐖Σ𝐔T
𝐑=𝐔𝐖1𝐕T

実際のカメラ画像などのデータを扱う場合、Σは制約を完全には満たさない可能性があるため、代わりに次を用いると役立つ場合がある。

[𝐭]×=𝐔𝐙𝐔T と 𝐙=(010100000)

証明

第一に、𝐑[𝐭]×を表現している式は、以下より、基本行列の定義式を満たす。

[𝐭]×𝐑=𝐔𝐖Σ𝐔T𝐔𝐖1𝐕T=𝐔Σ𝐕T=𝐄

第二に、この[𝐭]×がある𝐭の外積の行列表現であることを示さなければならない。まず、

𝐖Σ=(0s0s00000)

であるから、𝐖Σは交代行列、すなわち (𝐖Σ)T=𝐖Σ である。これは次のように[𝐭]×についても同様に当てはまる。

([𝐭]×)T=𝐔(𝐖Σ)T𝐔T=𝐔𝐖Σ𝐔T=[𝐭]×

外積の行列表現の一般的な性質によれば、[𝐭]×はただ1つのベクトル𝐭の外積演算子でなければならない。

第三に、𝐑が回転行列であることも示す必要がある。𝐑は3つの直交行列の積である。従って𝐑もまた直交し、det(𝐑)=±1である。回転行列であるためには、det(𝐑)=1でなければならないが、ここでは𝐄は射影要素とみなされているため、必要であれば𝐄の符号を反転することで実現できる。

すべての解を見つける

ここまでで、𝐄が与えられた場合に𝐑𝐭の1つの可能な解を求める手段が確立されている。しかし、これは唯一の可能な解ではなく、実用の観点からは有効な解でない可能性さえある。まず、𝐄のスケーリングが定義されていないため、𝐭のスケーリングも定義されていない。次の式が成り立つため、これは𝐄零空間にある必要がある。

𝐄𝐭=𝐑[𝐭]×𝐭=𝟎

しかしこの後の解の分析のためには𝐭の厳密なスケーリングは、その「符号」、つまりどの方向を指しているかほど重要ではない。𝐭^𝐄の零空間で正規化されたベクトルとする。このとき𝐭^𝐭^の両方が𝐄に対して有効な平行移動ベクトルになる。上で述べた𝐑𝐭の導出では、𝐖𝐖1に変更することもできる。この変更は、平行移動ベクトルに対しては符号の変更のみを起こす。これについては可能性として既に説明した。一方で回転に対しては、少なくとも一般的なケースでは、これは異なる変換を生成する。

要約すると、与えられた𝐄には、𝐭に対して可能な2つの正反対な方向があり、この基本行列に準じた2つの異なる回転がある。これにより、2つのカメラ座標系間の回転と平行移動に対して計4つの解のクラスが得られる。その上、選択された平行移動方向の未知のスケーリング s>0 も存在する。

ただし、4つの解のクラスのうち、実際に実現できるのは1つだけである。対応する画像座標のペアが与えられたとき、3つの解のクラスは常に2つのカメラのうち少なくとも1つの後方に3次元点を生成してしまいカメラから見ることができない。4つのクラスのうちの1つだけが、常に両方のカメラの前方に3次元点を生成する。これが正しい解であるはずである。ただしそれでも、平行移動成分に関する未定の正のスケーリングがある。

上記の𝐑𝐭の決定は𝐄が基本行列の内部制約を満たすことを前提としている。これが当てはまらない場合、典型的には例えば𝐄が実際の(ノイズの多い)画像データから推定されている場合には、内部制約をほぼ満たしていると想定する必要がある。ベクトル𝐭^は、最小の特異値に対応する𝐄の右特異ベクトルとして選択される。

対応する画像上の点からの3次元点

対応する正規化された画像座標(y1,y2)(y'1,y'2)が与えられた場合、基本行列が既知であり対応する回転および平行移動が決定されていれば、(x1,x2,x3)を計算する多くの方法が存在する。

関連項目

ツール

外部リンク

参考文献

テンプレート:Reflistテンプレート:Refbegin

テンプレート:Refend