局部特征(2)——Harris角点
- 局部特征(1)——入門篇
- 局部特征(2)——Harris角點
- 局部特征(3)——SURF特征總結
- 局部特征(4)——SIFT和SURF的比較
- 局部特征(5)——如何利用彩色信息 Color Descriptors
- 局部特征(6)——局部特征描述匯總
?--------------------------------------------------------------??????
Highlight: 感謝9L同學的推薦,有更優(yōu)秀的文章講解檢測子:http://www.cnblogs.com/ronny/p/4009425.html ?另外本人很久沒再研究檢測子了,本專題不再update。
????? ??在入門篇中偶爾談到了Harris Corner,在這里我們就重點聊一聊Harris Corner。
? ? ? ?Harris Corner是最典型的角點檢測子Corner Detector。角點經常被檢測在邊緣的交界處、被遮擋的邊緣、紋理性很強的部分。滿足這些條件一般都是穩(wěn)定的、重復性比較高的點,所以實際上他們是不是角點并不重要(因為我們的目標就是找一些穩(wěn)定、重復性高的點以作為特征點)。
???????Harris Corner基于二階矩陣:
? ? ? ?
??????? 這個矩陣描述了局部鄰域內梯度的分布情況。矩陣的兩個特征值可以用來描述兩個主要方向上信號的變化,因此特征值可以用來判決是否為特征點。Harris采用的判別方法是:
? ??
? ? ? ?顯而易見,cornerness的值越大,對應的兩個特征值都應該很大,其中λ取0.04,是為了抑制比較明顯的直線。最后對整幅圖像得到的cornerness做一個非極大抑制,得到最后的特征點。Harris角點具有的優(yōu)點是平移不變、旋轉不變,能克服一定光照變化。可以先從一個例子上觀察Harris Corner實現(xiàn)的過程:
????????
? ? ? ? 現(xiàn)在有幾個問題:首先3.1式矩陣是如何推導出現(xiàn)的;另外一個問題是為什么3.4式用來決定是否為角點(即為何3.1式的兩個特征值可以用來描述兩個主要方向上信號的變化強度)。
???????
- 第一個問題的解答 要知道為什么3.1可以作為這個矩陣,我們了解一下具體怎么推出這個式子的,那這又要從Moravec算子說起,步驟如下:
- 將要判斷的點置于一個3*3或5*5的圖像塊的中心,如下圖用紅色的線環(huán)繞的圖像塊。
- 將紅色的框朝8個方向移動一格,得到藍色的框(下圖為向右上角移動)。導致一個缺點:響應是各向異性的(啥意思?)
- 將紅色的框和藍色的框的相同坐標值的點的像素值相減,并求平方和,可以得到8個值。
- 將8個值中的最小的值作為角點像素的變化值。(因為角點應該在x、y方向上變化都比較大;而在邊緣上只可能一個方向大、另一個方向小)
- 求出每一個像素點的角點像素變化值,在局部圖像塊中,該值最大的點為角點。
??????? Harris算子將Moravec算子做了兩個推廣:
???????1)用像素的變化梯度代替像素值相減并引入高斯窗函數(shù)(舉個x方向上變化的例子為證)。
? ? ? ? ? ? 引入高斯窗是為了濾除噪聲的干擾。
?[-1,0,1]:x方向上的偏導,[-1,0,1]T:y方向上的偏導。
?
??????? 2)推廣出了一個公式這樣可以計算任意方向上的像素值變化,而不在是8個固定的方向。
(這里的u、v表示x/y方向的位移)
??????? 因為Vuv(x,y)的最大值才是這個點需要被考慮的值,因此我們重寫以上表達式:
? ? ? ??? ? ? ? ? ?(3.5)
??????? 看到M矩陣的形式了么?這就是Harris算子的那個原始矩陣,我想推到這里,你也就應該了解Harris矩陣為什么是這樣子的了。
?
- 第二個問題:為什么3.4可以用來描述是否為角點。
????
???????那么為什么3.1式的兩個特征值能夠反映數(shù)據(jù)在兩個方向的變化程度?
? ? ???注意(3.5)式的目標函數(shù)(最大化Vuv)。而這個目標函數(shù)與PCA的目標函數(shù)(通過最大化變化推導PCA的投影方程時)完全一致(如果你記不清這個過程,請你看這里,重點看公式2及之后的文字描述。另外我在這里的留言板中也回答了類似的問題)。特征值是十分重要的概念,不僅在這里以及PCA上,在Laplacian Eigenmaps,LDA上也相應地被使用到。
??????
???????那么又為什么3.4式取值較大時能保證α和β的取值都很大呢?
?????????????a)? ?α和β一個大而另一個小時,det小而trace大,‘-’號就能使cornerness小(而‘+’號卻使cornerness依然很大,所以必須是減號而不是加號);
???????????? b)???α和β都很小時,顯然cornerness很小;
???????????? c)???α和β都很大時(比參數(shù)λ更大),此時det會更大于trace從而使cornerness很大。
?????? 可以參考這樣一個圖:描述了不同紋理下α和β的取值情況(其中α和β是矩陣M的兩個特征值):
- 沒有什么紋理的情況下,兩個值都很小(很小的正值)
- 邊緣的點,一個值大,另外一個值小(由于k取了很小的值,所以3.4的結果為一個小負值)
- 角點:兩個值都比較大(比較大的正值)
??????? 這樣,當我們把目標函數(shù)定義為3.4式的時候,得到的結果就會盡力滿足兩個特征值都比較大了。當然,除此之外,還有Harmonic mean等方式實現(xiàn)更理想的組合方式達到檢測出的兩個特征值都盡可能大。
? ? ? ?
?
? ? ? ?最后附上檢測效果圖(右圖進行了旋轉)
? ? 兩個圖可以看出來Harris corner是rotation invariant,但是不是scale invariant。
------------------------------
jiang1st2010
原文地址:http://blog.csdn.net/jiang1st2010/article/details/7628665
總結
以上是生活随笔為你收集整理的局部特征(2)——Harris角点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 局部特征(1)——入门篇
- 下一篇: 局部特征(3)——SURF特征总结