RANSAC推定ホモグラフィのフィルタリング


10

私はRANSACアルゴリズムを使用して、カメラ間で変換された画像のペアの間のホモグラフィ推定を行います。これらの画像の間には、平行移動はありません(純粋な回転とスケール/ズームの変更)。ケースの半分でうまく機能します。正しい出力は次のようになります。

ここに画像の説明を入力してください

赤い線はフィルターされた対応であり、四辺形はホモグラフィが遠近法を歪める方法を示しています。

ただし、次のような多くの悪いケースが発生することがあります。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

私はすでにRANSACループで簡単なテストを行っています。単純な四角形(単位正方形)を作成し、サンプル変換で変換します。次に、変換が凸性を維持したかどうかを調べます。

しかし、それでも凹面の四辺形の束が出てきます。

ホモグラフィが正しく動作し、正しくないソリューションを除外する場合に、ホモグラフィを適切にテストする方法について何か考えがありますか?

3つの変換された点が同一線上にないことをテストするコードを見つけました。しかし、三角筋やその他の「無効な」四辺形を除外しないので、これは十分ではないようです...

回答:



4

ホモグラフィに問題がないかどうかの確認に問題があります。

正しいホモグラフィをチェックするアルゴリズムは誰かに興味があるかもしれないので、ここに書き留めます。

ABDC

A:(w/2,h/2,1.0)B:(w/2,h/2,1.0)C:(w/2,h/2,1.0)D:(w/2,h/2,1.0)

w,h

ABDCC=HC

uv

d1:A+(DA)s=A+usd2:B+(CB)t=B+vt

d1=d2

t=1d[(ByAy)ux(BxAx)uy]

s=1d[(AxBx)vy(AyBy)vx]

s,t(0,1)

s,t(λ,1.0λ)λ=0.01

上記のアルゴリズムで修正された古い問題:

私はここで問題を発見しました-特定のホモグラフィを持っているので、テストは小さな四辺形には合格しますが、大きな四辺形には合格しません。これが、いくつかの「病気の」ホモグラフィが通過した理由です。

緑の四角はソース画像を表し、オレンジは変形した画像です。ご覧のとおり、左手は凸型ですが、ソースが大きくなるにつれて変形し始めます。

ここに画像の説明を入力してください

最後に、さらに大きなソースは非四角形を生成します:

ここに画像の説明を入力してください

(x,y,w)xyw

それに応じてアルゴリズムを修正しました。


1

x_i \sim Hx_i^'\sum_{j=1\dots n}\|x_j - Hx_j^'\|H^'x^' = H^'x\sum_{j=1\dots n}\|x_j - Hx_j^'\| + \|x_j^' - H^'x\|

HartleyとZisserman-4.2のコンピュータビジョンのマルチビュージオメトリ、特に4.2.3と方程式(4.8)を参照してください。


表示された四辺形はそこに置かれるだけです。フィット感がとても良いので対応は間違いないです。Hartley&Zissermanによって提案された正規化されたDLTアルゴリズムを使用してから、繰り返しの洗練とガイド付きマッチングを使用しました。
Libor

しかし、ホモグラフィのフィットにすることはできませんそのポイントの二つのグループがある最初の写真のように良い:おそらく、上にもありません(同一平面上におそらくある)アパートの建物のものや木のもの(自分のグループ内の同じ平面)。基本行列を使用するつもりはなかったと思いますか?
buq2

線は対応する点を結び、それらをすべてチェックしました-画像が整列すると、すべてが一致します。一致しない画像のペアを除外すると、素晴らしいパノラマになります。
Libor

画像は回転カメラを使用して作成されているため、平面が変化しているように見えるかもしれませんが、カメラは光学中心を中心に回転するため、ホモグラフィが推定されていると確信しています。それから焦点距離と回転行列を計算することもできます。しかし、問題はどこか別のところにあります。私のソフトウェアの奇妙な点は見つけなければなりません...
Libor

ああ、あなたはカメラ間の翻訳がないという情報を含まなかった。その後、あなたは正しいとホモグラフィは画像間の変換を説明します。
buq2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.