前回は、Bundlerで使われている特徴点マッチングと、特徴点空間上の距離を使った誤対応の除去について説明しました。
この記事では、特徴点空間上の距離を使った誤対応除去の次に行う、エピポーラ幾何を使った誤対応の除去について説明します。
エピポーラ幾何を使った誤対応の除去
説明といっても、ここではRANSACを使って基礎行列(Fundamental Matrix)を推定するという、一般的な手法を行っているだけです。
すなわち、エピポーラ線から大きく外れる特徴点ペアは外れ値として削除してやろうよ、っていう考え方ですね。
ちなみにBundlerでは、ランダムに8点選んで8-point algorithmで基礎行列を導出しています。
基礎行列のエピポーラ拘束式といえばこれですね。
$$\boldsymbol{x}_2^T\boldsymbol{F}\boldsymbol{x}_1=0$$
間違った特徴点ペアは、0から大きく外れるため誤対応とみなすことができます。
問題は、正しい特徴点ペアもノイズの影響でぴったりと0にはならないため、閾値をどこに引くかです。
Bundlerでは、画像の縦のサイズと横のサイズの大きな方に、0.006を掛けた値を閾値としています。
例えば、1024ピクセル×768ピクセルの画像だったら、1024×0.006=6.144ピクセルが閾値になります。
この閾値よりもエピポーラ線から離れている特徴点ペアは、誤対応として除去してやります。
次回は、特徴点追跡による誤対応の除去について説明します。
Bundlerについての解説記事一覧はこちら
Bundlerのアルゴリズムを追ってみる 特徴点マッチング編 その1
コメント