Log-Polar DFTベースのスケール不変の画像登録


10

Reddy Chatterjiの論文に記載されているように、位相相関を使用して画像のレジストレーションを行おうとしています。私の場合、画像は相対的にスケーリングおよび変換されます。

私が理解しているように、相対スケールを見つけるアルゴリズムは次のとおりです(参照:論文のフローチャート)。

F1 = DFT(I1)
F2 = DFT(I2)
H1 = Highpass(F1)
H2 = Highpass(F2)
L1 = LogPolar(Magnitude(H1))
L2 = LogPolar(Magnitude(H2))
PC = PhaseCorrelate(L1,L2)
PM = norm(PC)
R = IDFT(PhaseCorr/PM)
P = Peak(R)
Scale = LogBase^P[1]

スケールは一見無意味な値を与えます(画像ごとに大きく異なり、決して修正されません)。

しかし、スケールを無視すると、同じ位相相関アプローチが変換にうまく機能します。ですから、対数極変換に問題があるのではないかと思います。これは私が翻訳のために解決した例です-左の画像はオリジナルで、右はトリミングされて翻訳されています-ソリューションは元の画像の上に表示されています:

翻訳だけでも機能します

対数極座標変換のために、私は第一極空間への変換

^ρθ=r+ρcos2πθNθrρ2πθNθ
rNθθ
^logρθ=^ログbρθ
b=2rNρ

以下は、使用した対数極空間の画像の例です(目立った問題がある場合):ρ=θ=256

ログポーラー

最後に、これは画像が位相相関ステップの前に通過する実際の変換を示しています(上はDFTマグニチュードポストハイパスフィルター、下は対数極空間におけるものです)。

DFTの極の対数

私は、LogPolarメソッドとPhaseCorrelateメソッドを持つOpenCVを使用しています。PhaseCorrelateは、私の手動の実装と同様に、翻訳の正しい答えを提供してくれますが、規模では正しくありません。OpenCV LogPolarまたは私自身の使用は正確さに影響を与えないので、何かが欠けているに違いありません。

任意の助けいただければ幸いです。


1
何が悪いのか分かりましたか?
Mr.WorshipMe 2016年

1
@ Mr.WorshipMe残念ながらできません。
ドリューカミンズ2016年

@Drew Cummins、背景からの急激な変化があったため、使用したテスト画像が原因だったと思います。他のテスト画像はどうですか?また、前の図から、2つの大きさの間に明らかな違いがあったため、DFTの前に適切なウィンドウ処理の前処理を実行することをお勧めします。
lxg 2017年

私がその論文を見つけた数日前に、私はアルゴリズムを実装しようとして成功していませんでした。あなたは:)初心者への実装を共有することができれば、私は思っていた
アレクシス・エスパーニャ

回答:


1

本当に堅牢なものを必要とするが、それは計算的にコストがかかる可能性がある場合は、ここで実装したアルゴリズムをチェックすることをお勧めします。「Log-Polar Transformを使用したロバストな画像登録」(pdf)を実装しています。また、並進とスケール不変に加えて、回転不変であるという利点もあります。私のアプリケーション(アート)では、同じ画像の変換されたバージョンだけでなく、似たような画像でも登録することができました。


0

特定の実装の問題が原因だと思います。たとえば、(1)DFTの前にウィンドウ処理の前処理を実行することをお勧めします。(2)Highpass()関数を確認でき、Reddy Chatterjiの論文Eq。(23)-(24)の関数を参照できます。また、スケール値には制限があり、他のスケール値を試すことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.