MLエンジニアへの道 #61 - エピポーラ幾何

Last Edited: 6/12/2025

このブログ記事では、コンピュータビジョンにおけるエピポーラ幾何について紹介します。

ML

前回の記事では、単視点計測について取り上げ、物体の向きを推定する際の有効性と、スケールや位置を推定する際の限界について明らかにしました。 前回の記事で、それらの限界は人間にも当てはまると簡単に述べましたが、これは部分的にのみ正しいものです。これらの限界は、 カメラによって既に撮影された画像を見る場合には当てはまりますが、両眼を使ってより多くの情報を取得し、3D世界を解釈する場合には当てはまりません。 本記事では、2つの眼またはカメラを持つことが3D世界をより深く理解するのにどのように役立つかを数学的に分析します。

エピポーラ幾何

エピポーラ幾何は、2台のカメラ(ステレオビジョン)、3Dにおける点、およびそれらの点の画像平面への投影の間の関係を記述します。 これにより、追加の視点がなぜ追加の情報を明らかにするのかを理解することができます。 下図は、同じ3D点PPを観測する2台のカメラを含むエピポーラ幾何の一般的な設定を示しており、点PPはそれぞれpppp'に投影されています。

Epipolar Geometry Setup

O1O_1O2O_2はカメラ中心の位置であり、それらの間の線は距離BBのベースラインです。2つのカメラ中心とPPを含む平面をエピポーラ平面と呼びます。 エピポーラ平面と2つの画像平面の交線をエピポーラ線と呼びます。定義により、エピポーラ線はPPの投影とエピポールeeおよびee'を含みます。 エピポールは、ベースラインと画像平面の交点です。この設定において、私たちは主に対応する投影pppp'の間の関係を利用することで、 位置PPを推定し、カメラパラメータを求める(深度推定と3D再構成のため)ことに関心があります。

基本行列と基礎行列

この設定において、O1O_1O2O_2に対応するカメラ投影行列MMMM'をさらに定義することができます。 これらは、世界座標系を最初のカメラに設定し、2番目のカメラが回転RRと並進TTによってオフセットされていると仮定すると、 M=K[I   0]M=K[I~~~0]M=K[RT   RTT]M'=K'[R^T~~~-R^T T]として表現できます。対応する投影間の関係を明らかにするために、 K=K=IK=K'=Iである正準カメラを仮定することで設定を一時的に簡略化できます。ここで、pp'を第1カメラ系でRp+TRp'+Tとして表現でき、 pp'TTの両方がエピポーラ平面に存在するため、外積T×(Rp+T)=T×RpT \times (Rp'+T) = T \times Rp'を取ることで、 エピポーラ平面に垂直なベクトルが得られます。

a×b=[0azayaz0axayax0][bxbybz]=[a×]b a \times b = \begin{bmatrix} 0 & -a_z & a_y \\ a_z & 0 & -a_x \\ -a_y & a_x & 0 \\ \end{bmatrix} \begin{bmatrix} b_x \\ b_y \\ b_z \\ \end{bmatrix} = [a_{\times}]b

ppもまたエピポーラ平面に存在するため、エピポーラ制約pT[T×Rp]=0p^T[T \times Rp']=0を得ることができます。 線形代数から、行列乗算を使用した外積の上記の代替表現を使用して、pTKT[T×]RK1p=pTEp=0p^TK^{-T}[T_{\times}]RK'^{-1}p'=p^TEp'=0に到達できます。 ここで、EEは5自由度(回転と並進)とランク2(3D平面を2D線に写像する特異行列)を持つ基本行列であり、エピポーラ線の計算に有用です。 例えば、=ETp\ell'=E^Tpを使用してO2O_2のエピポーラ線を取得し、=Ep\ell=Ep'を使用してO1O_1のエピポーラ線を取得できます。 また、エピポールはEe=Ee=0Ee=Ee'=0でエピポーラ点またはゼロベクトルに写像されます。

次に、pc=K1pp_c=K^{-1}ppc=K1pp_c'=K'^{-1}p'を定義することでカメラ行列KKを戻すことができ、pcT[T×]Rpc=0p_c^T[T_{\times}]Rp'_c=0となります。 ここから、pppp'を代入し直してpTKT[T×]RK1p=pTFp=0p^TK^{-T}[T_{\times}]RK'^{-1}p'=p^TFp'=0に到達し、 基礎行列F=KT[T×]RK1F=K^{-T}[T_{\times}]RK'^{-1}を得ることができます。これは7自由度(カメラ行列に対して2)とランク2(3D平面を2D線に写像する特異行列)を持つ基本行列の一般版です。 基本行列と同様に、基礎行列も=Fp\ell=Fp'=FTp\ell'=F^Tpを使用してO1O_1O2O_2のエピポーラ線を取得するために使用でき、 PPを知ることなく制約のみによって異なる視点からの投影pp'を推定するのに有用です(ビューモーフィングと3D再構成)。

8点アルゴリズム

FFはある程度有用ですが、単純にそれを得ることができると仮定することはできません。 しかし、8点アルゴリズムを使用して、同じシーンの2つの画像からFFを推定することが可能です。 対応する点のペアpppp'を8組特定し、特異値分解(SVD)を使用してF^\hat{F}を推定する連立方程式を定式化できます。 これは満ランクを持つ可能性があります。特異でランク2を持つFFを得るために、制約det(F)=0\text{det}(F) = 0(特異行列の行列式は0)の下で、 同じくSVDを使用してF^\hat{F}のランク2近似を実行できます。

8点アルゴリズムは理論的にはうまく機能するように見えますが、実際には大きな誤差を生じる傾向があります。 特に、大きなピクセル範囲を持つ現代のカメラを使用する場合や、選択された点が比較的近接している場合に、値が大きく類似したpip_ipip_i'が生じます。 この問題に対処するために、正規化8点アルゴリズムをよく使用します。ここで点pppp'は行列TTTT'(平行移動とスケーリング)によって正規化され、 FqF_qqqは正規化されたppを表す)を推定するために使用されます。これを非正規化することでFFの質の良い推定値を得ることができます(F=TTFqTF = T'^T F_q T)。

平行画像

一般的なケースの基本行列と基礎行列は既に有用ですが、2つの画像平面が平行である場合、行列から回転RRを除去し、 制約をv=vv = v'に簡約化できるためより単純で有用になります。(ここでp=(u,v,1)Tp = (u, v, 1)^Tp=(u,v,1)Tp' = (u', v', 1)^Tです。) 平行画像によってもたらされる単純さは、エピポーラ幾何学の様々な問題に有用であるため、事前に平行画像を取得するか、 平行化と呼ばれるプロセスを通じて画像を平行になるように補正することを好みます。

平行化は、画像平面を平行にレンダリングできる対応する射影変換HHを見つける問題です。これらの変換を適用して平行画像を得ることができ、 これは様々な問題に有用です。残念ながら、平行化の詳細はこの記事の範囲外ですが、対応する点pppp'のサンプルを含む最適化問題として定式化し、 任意の適切な方法を使用して解くことができます。

三角測量

対応点間の関係に加えて、この設定は単眼視覚だけでは不可能だった点PPの位置や深度を推定することを可能にします。 具体的には、PPpppp'の延長線の交点として定式化し、カメラパラメータが既知の場合にMPMP^*ppの間の距離、 およびMPM'P^*pp'の間の距離の合計を最小化するPP^*を見つけることでPPの位置を推定できます。 対応するpppp'からPPの位置を推定するこの過程を三角測量と呼びます。

Triangulation

三角測量は非平行なpppp'に対してはある程度困難ですが、平行画像ではv=vv=v'であることが分かっており、uuuu'を比較するだけで位置を決定できるため、 平行画像に対してははるかに容易です。具体的には、視差(uuuu'の間の距離)がBfz\frac{Bf}{z}と相関することが分かります。 ここでBBはベースライン、ffは焦点距離、zzは深度です。これは、物体が遠くにあるほど、またベースラインが長いほど、 観測される視差が小さくなることを意味します。これらの概念を用いると、私たち(そして多くの捕食動物)が前向きで比較的平行に配置された2つの目を持つのは、 これらはステレオ視覚を保証し、三角測量による相対的な深度推定を可能にし、視差を使って比較的容易にそれを行うことができるためであると説明できます。 (一方、被食動物の目は潜在的な危険を発見するためのパノラマ視野を優先します。)

対応問題

ここで注目すべきは、これまで議論してきたすべての処理、FFを推定する8点アルゴリズム、平行画像を作成する平行化、 深度推定のための三角測量、が対応する投影pppp'を知ることに依存しているということです。しかし、 コンピュータにとって、時には私たちにとってさえも、これらの対応を決定することはそれほど自明ではありません。 例えば、近傍画素の集合を比較して対応点を見つけるアルゴリズムを考案できます。 しかし、それは必然的に均質な領域や反復パターンを含む画像、異なる明度や露出を示す画像で困難に直面してしまいます。 この問題に対処するため、高レベルで局所的と大域的比較の両方を実行するアルゴリズムを実装する必要があります。

Correspondence Issues

このような困難に加えて、対応問題には上図で視覚化されているような短縮や遮蔽などの本質的な限界があります。 これらの限界はBz\frac{B}{z}比が大きくなるときにより顕著になりまが、小さなBz\frac{B}{z}は小さな測定誤差に対して深度推定における大きな誤差を意味し、 また平行カメラに対して極めて小さな視差を意味します。このBz\frac{B}{z}に関するトレードオフはベースライントレードオフと呼ばれます。 これは、固定された比較的小さなベースライン長を持つ人間が、ステレオ視覚があっても特に遠方の物体の深度を推定するために物体サイズの知識を使用する必要があり、 時に馴染みのない形状やサイズの遠方物体の深度推定が困難である理由を説明しています。

結論

この記事では、第二の視点を導入することでエピポーラ幾何を扱い、変数間の多くの関係を定義し、 対応点からビュー・モーフィングや深度推定を実行して3D世界をよりよく理解することが可能になることを導きました。 しかし、これらすべてが対応点を最初に取得することによってのみ可能であり、それはある程度複雑で限定的である可能性があることも発見し、 これらの概念を私たちの視覚の働きと関連付けることができました。次の記事では、これらの困難と限界を克服しうる方法について議論します。

リソース