Softdev

ハリスのコーナー検出について調べた。

PTAMつながりでこれを調べたけども、PTAMではこの方式は使っていない。PTAMでは、FAST Corner Detectionを使っている。これは、libCVD内のcvd_src/faster_corner_9.cxxとかで実装されている。

で、これがまぁびっくりするほどなんのこっちゃわからんので、基本から。。

ハリスのコーナー検出の詳しい説明は、Wikipediaかな。

要するに、微分値が一方向に大きいところが辺、多くの方向に大きいところが頂点ってことみたい。

で、

harrisCorner

としたとき、行列の2個の固有値が大きいときに、そこにコーナーがある。

R=det M - k (tr M)^2

detは行列式、trは対角成分の和を表す。kは経験的に決定する必要があり、0.04から0.15の範囲が適しているらしい。

で、なんのこっちゃぜんぜんわからんのでテストプログラムを書く。

参考にしたのは、University of SouthamptonElectronics and Computer ScienceComputer Vision Demonstration WebsiteCorner Detection。ここには、Javaのサンプルコードが置かれている。

Javaで見てもしょうがないので、C#でちょいちょいと。。。

image

てなアプリです。速度を追求すると言うよりも1枚1枚の経過をひとつづつ確認したかったので、こんな画面。

left
まず、オリジナルの画像。USBカメラで撮影。Microsoft LifeCam VX-6000を普段使っているのだが、どうも、このカメラは、ノイズが多い模様。640x480。

intermidiate0

面倒なので、サンプル通り、Grayscaleに落とす。横着して、(2*r + 4*g + b)/7でGrayscaleに落とす。

intermidiate1

そのままだと、ざらざらしているので、3x3のメディアンフィルタを通す。 

intermidiate2intermidiate3

で、x方向微分と、y方向微分。

x方向微分は、image001 、y方向微分はimage002のPrewitt filterを使う。

x方向微分の画像は、Min/Maxの値は-602/442。y方向微分の画像は、Min/Maxの値は-513/438。それぞれの値を、0から255にマップして表示している。一応全部Floatで計算。

intermidiate4

x方向微分、y方向微分をそれぞれ掛け合わせたのがこれ。  Min/Max値は-105040/99078。

intermidiate5intermidiate6

次にx方向微分の2乗、y方向微分の2乗。 Min/Maxはそれぞれ、0/362404、0/263169。

ここで、それぞれにガウシアンフィルタ(Gaussian filter)で平滑化する。3x3でかけてみた。

intermidiate7
intermidiate8intermidiate9

それぞれ、xy、xの2乗、yの2乗のガウシアンフィルタの結果。。

Min/Maxはそれぞれ、-74094.31/66832、0/224518.4、0/158617.4

で、最後に、R=det M - k (tr M)^2。

det Mは行列式なので、a*d - b*cということで、(xの2乗) x (yの2乗) - (xy x xy)

k (tr M) ^ 2は対角成分の和ということで、k × ( xの2乗 × yの2乗)。

intermidiate10
intermidiate11intermidiate12
k をそれぞれ、0.04、0.10、0.15で試してみた。

Min/Maxはそれぞれ、-2.007325E+09/1.741576E+09、-5.143325E+09/6.3295E+08、-7.77278E+09/3.366804E+08。

0.04の絵だと、襟のあたりに明るい点がでている。これが、コーナーになる。

せっかくなので、Grayscaleのイメージの上に10000000.0 (=1.0E+7)よりも大きい値のところに赤でマークを重畳。

result04result10result15  

で、この赤い点がコーナーとなるわけだが。。。。

トラックバック(2)

トラックバックURL: http://www.cagylogic.com/cgi-bin/MovableType/mt-tb.cgi/1447

2009年が終わりました。毎年恒例ですが2009年におけるcagylogicのア... 続きを読む

2009年1月1日から1月31日のアクセス数Top10です。 ... 続きを読む

コメントする

ウェブページ

カテゴリ

2010年8月

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 31        

このブログ記事について

このページは、が2009年3月 3日 00:01に書いたブログ記事です。

ひとつ前のブログ記事は「アクセス数の多いBlog記事(2009年2月分)」です。

次のブログ記事は「Mac mini」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。