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

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

 共平面性制約 

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

 

であるから、次が得られる。

 .

をに置き換えることで、次が得られる。

 

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

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

 

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

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

 

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

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

  と  と 

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

 

あるいは

 

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

  と 

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

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

 

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

 

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

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

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

 

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

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

 

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

 

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

 

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

 

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

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

 

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

 

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

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

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

 

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

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

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

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

 
 

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

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

 

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

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

 

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

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

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