SOARISTO工房 Logo
2015年2月 Archive
 Previous |  1  |  2 

 前々回では、画像をフーリエ変換し、その周波数スペクトルから位相情報を抽出し、逆フーリエ変換することにより、位相画像(輪郭画像のようなもの)を生成しました。

 2つの画像があり、この2つの画像の間が「どれぐらいずれているか」(画像のシフト量)を推定しようとする際、この位相画像を用いて推定する方法があります。

 「位相限定相関法」(POC; Phase Only Correlation Method)です。

 その名のとおり、2つの画像の位相に注目して相関を取り、2つの画像の間の「類似度」を測る方法です。

 位相限定相関法の概念については、以下のサイトに分かりやすくまとめられています。

 位相限定相関法の処理手順は、以下のようになります。

OpenCV, Phase Only Correlation

 2つの画像をフーリエ変換し、その周波数スペクトルから位相情報を抽出します。抽出された2つの位相情報から、その畳み込み(合成積)を取り、振幅で正規化します。これを逆フーリエ変換することにより、位相限定相関画像を得ます。

 画像Aをfa、画像Bをfbとすると、それぞれの画像の離散フーリエ変換(Discrete Fourier Transform)は、以下の式で表されます。

Phase Only Correlation Formula

 得られた空間周波数スペクトル(複素平面)同士の畳み込み(合成積)を取り、その振幅の絶対値で除することにより正規化します。
(掛け合わせるもう片方の複素平面は、複素共役とします)

Phase Only Correlation Formula

 この合成積の複素平面を逆離散フーリエ変換することにより、位相限定相関画像rabを得ます。

Phase Only Correlation Formula

 この位相限定相関画像におけるピークを示す位置が、そのまま2つの画像のシフト量を表しています。

 さっそく、OpenCVで位相限定相関法を試すことにしますが、その前に、評価用の画像として、以下の2つの画像を用意しました。

OpenCV, Phase Only Correlation, Porsche 911 Carrera S

 評価用の画像の原画像(1920×1080)です。

 ソフトの開発に平行して、ハードの準備です。

Buffalo Web Camera BSW20KM11BK, Stereo Image Processing, OpenCV

 BuffaloのWebカメラ、「BSW20KM11BK」です。(定価:7,236円、購入価格:3,015円×2台)

#「会議に最適」とありますが、もちろん会議には使いません。0xF9C7

 2012年7月の発売で、有効画素数は200万画素。いまとなってはスマホより劣りますが、特徴はなんといってもその画角。水平画角が120°もあります。

 これだけの画角があれば、2台を連接させることにより、人間の視野角(約180°~200°)を優に超えるワイドビュー(広角映像)を得ることができます。0xF8F2

Buffalo Web Camera BSW20KM11BK, Stereo Image Processing, OpenCV

 ということで、試しにモニタ上にセットし、さっそく映像をチェック。
(少し外向きにセット)

 んが、しかし・・・。0xF9FC

 レンズも、安っしーWebカメラに使われているプラスチックレンズではなく、ガラスレンズが使われているので、ひそかに期待していたのですが、惨憺たる結果に。

 ガラスレンズは良かったのですが、フォーカスがマニュアルのため、注視する対象物に合わせていちいち調整しなければならず(レンズの外周部分を持って左右に回す)、結果として“アマアマ”な画質になってしまいます。

 仕方がないので、ちゃんとしたWebカメラを買うことにしました。

#まさに、「安物買いの銭失い」とは、このことぞ。0xF9D3

 前回の続きです。OpenCVの関数を使って、位相画像を生成してみます。 

 画像をfとすると、fの離散フーリエ変換(Discrete Fourier Transform)は、以下の式で表されます。

Discrete Fourier Transform Formula

 得られた空間周波数スペクトル(複素平面)を、その振幅の絶対値で除することにより正規化します。

Discrete Fourier Transform Formula

 この複素平面を逆離散フーリエ変換することにより、位相画像rを得ます。

Discrete Fourier Transform Formula

 複素平面における正規化により、振幅信号(情報)が1になり、位相信号(情報)が残ることになります。

 さっそく検証してみます。

OpenCV Phase Only Correlation lena

 まずは評価用の画像。

#画像処理の世界では最も有名(?)な女性、Lenaさんです。0xF9CB

OpenCV Phase Only Correlation lena

 空間周波数スペクトルの画像。
(ハン窓を掛けてから離散フーリエ変換(cvDFT())し、四象限を入れ替え(cvShiftDFT())てあります)

2015/02/01

 昨日作ったレンズ歪みの補正ツールを使って、


(カーソルを画像の上に)

 パノラマっぽい画像を作ってみました。

Shinagawa Canal Side

 こちらが補正前。

 昨日の東京湾です。

 Previous |  1  |  2