よく位相限定相関(POC)をキーワードでブログにいらっしゃる方がいるのと、
自分のためにまとめておきます。


理論
位相限定相関法についての求め方を書いてあります。

また、4ではOpenCVで実装されているものの紹介。
5では従来の手法では検出できない回転に対して検出するための前処理であるLog-Polar変換を書いております。

  1. 位相画像
  2. 位相限定相関法(POC)
  3. 位相限定相関(POC)でサブピクセル精度を求める方法
  4. 位相限定相関(POC)がOpenCVで実装されている
  5. Log-Polar変換を画像に適用



OpenCvSharp
OpenCvSharpで実装してみたものです。。。があまり自信はありません。
  1. 位相画像をC#とOpenCVSharpで実装
  2. 位相限定相関法(POC)をOpenCVSharpで



画像補間について
回転がされている場合でも検出できるようにLog-Polar変換の時に必要であったため記載したものです。
ですが、有名な補間手法なので画像の回転・拡大・縮小に使えます。

  1. 画像を回転させる際の画素を補間するコード
  2. 回転した画像をLanczos補間する
  3. 回転した画像をバイキュービック補間する
  4. 回転した画像をバイリニア補間する
  5. 画像を回転させる



何か進展があればまた追記していきます。


前回、前々回とバイリニア、バイキュービック補間を行っていましたが、
今回はLanczos(読めない)で行います。


参考にさせていただいたサイトは以下になります。理論的なところはこちらの方が詳しいです。
画像の拡大「Lanczos法」


結果

Lancoz2

Lancoz2.png


Lancoz3

Lancoz3.png


バイキュービック

Bicubic.png


どうやらうまくいっているようです。
前回のバイリニアに続き、バイキュービックを適用した結果です。

参考にさせていただいたサイトは以下です。m(_ _)mアリガタヤ
画素の補間(Nearest neighbor,Bilinear,Bicubic)



すごく簡単に言ってしまうと、
バイリニアは周囲4点から画素の値を推測していたのを、
バイキュービックは周囲16点から画素の値を推測しています。

結果

ニアレストネイバー

near.png


バイリニア

bilinear.png


バイキュービック

Bicubic.png


バイリニアでは、若干ぼけていた画像がバイキュービックでははっきり見えるようになっています。
しかし、計算する周囲の画素の数が増加したため、やはり処理が重くなっています。


どうやって高速化するかは自分のプログラム上の課題ですね(汗



以前行った、
位相限定相関(POC)で求めたピーク値を探し出せば、移動量が求められるのですが、

画像は整数の値しかとらない格子なので、サブピクセルのレベルで移動していた場合詳細は求められません。

スズメレンダラー・クマ将棋の開発日記さんの記事ではSinc関数に当てはめて求める方法が記載してあります。

ちなみに、Sinc関数とは以下のような関数です


調べてみたところ、最急降下法などで関数のフィッティングを行い厳密な値を求めていきます。



・・・ですが、

私のような凡人にはちょいと難しかったので、もっと簡単な方法を探してました。
x方向だけで考えると移動量dは、




と表すことができます。ここで、
・R(0)はピーク値(位相限定相関画像の値)
・R(-1)はピーク値の一つ前の座標の相関値
・R(1)はピーク値の一つ先の座標の相関値

です。

このパラボラフィッティングを使えば、Sinc関数よりは精度は落ちますが楽にサブピクセル精度で移動量を算出できます。


また、等角直線フィッティングもあるそうですが、
1次関数でのフィッティングであるため、パラボラフィッティングの2次関数の方が精度はよいと考えられます。


FC2カウンター
プロフィール

詠み人知らず

Author:詠み人知らず
プログラム好きな名もなき凡人がお送りしています。(得意とは言っていない
最近の興味はPython、C#、Matlab(Octave)、画像処理、AR(拡張現実)、統計などなど・・・

気分で思いついたことを書くため話題に一貫性がないかもしれません。

カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
最新記事
タグクラウドとサーチ

カテゴリ
最新コメント
最新トラックバック
月別アーカイブ