SURF网格化特征点提取算法流程(一)
SURF網(wǎng)格化特征點提取算法流程(一)
相關:
SURF網(wǎng)格化特征點提取的算法流程(二)
SURF網(wǎng)格化特征點提取的算法流程(三)
SURF網(wǎng)格化算法主要包括下面三個階段:
第一部分:特征點檢測
1、積分圖像的生成
2、構建Hessian(黑塞矩陣),生成所有的興趣點,用于特征的提取
3、尺度金字塔構造
第二部分:特征點描述
1、特征點方向的分配
2、基于 Haar 小波的特征點描述子
第三部分:SURF網(wǎng)格化的特征點提取
1、SURF網(wǎng)格化特征點提取的算法思路
2、SURF網(wǎng)格化處理前后的對比實驗
第一部分:特征點檢測
1、積分圖像的生成
??積分圖像,就是當前的每個像素的灰度都是它與坐標原點(0,0)形成的對角線的矩形內(nèi)的所有像素的灰度值之和。如下圖 所示:
??圖中藍色像素的積分圖像的灰度值就是黃色框內(nèi)的所有像素的灰度值之和。其他像素同樣的計算方法。
??有了積分圖像的概念,在計算某個矩形框內(nèi)的像素灰度值之和時,就可以很簡單的得出了。如下圖所示:
???利用積分圖像可以計算原圖像中任意矩形內(nèi)像素灰度值之和。
??如上圖中灰色矩形框內(nèi)的灰度值之和就是A-B-C+D,就是很簡單的一個矩形面積計算公式,A代表AO對角線矩形的面積,以此類推。 更重要的是,無論矩陣面積多大,所需要的運算量都是相同的。因此當算法中需要大量重復的計算不同矩陣區(qū)域內(nèi)的灰度值之和時,應用積分圖像就可以大大地提高效率。
??SURF 算法正是很好的利用了這個性質(zhì),以近乎恒定的時間完成了不同尺寸大小的盒狀濾波器( box filter )的快速卷積運算。這樣,對于接下來計算像素的Hessian矩陣時,將會非常的方便,只需要知道該矩形塊的4個頂點像素的積分圖像的值,便可以求出該矩形塊的灰度值之和。
2、構建Hessian(黑塞矩陣),生成所有的興趣點,用于特征的提取
??我們求出了原圖的Hessian矩陣,然后計算行列式的近似值就得出了我們需要尋找特征點的變換圖像。
??目前檢測特征點最好的方法是基于Harris 矩陣的方法和基于Hessian 矩陣的方法, Harris 矩陣能夠檢測出角點類特征點,Hessian 矩陣能夠檢測出斑點類特征點。
??SURF 算法應用的是Hessian 矩陣,這是因為該矩陣在運算速度和特征點檢測的準確率上都具有一定的優(yōu)勢。
??Hessian 矩陣檢測特征點的方法是計算圖像所有像素的Hessian 矩陣的行列式,極值點處就是圖像特征點所在的位置。由于在特征點檢測的過程中采取了一系列加速運算量的方法,此 SURF算法中的特征點檢測方法也稱為因Fast‐Hessian 方法。
??SURF構造的金字塔圖像與SIFT有很大不同,就是因為這些不同才加快了其檢測的速度。SIFT采用的是DOG圖像,而SURF采用的是Hessian矩陣行列式近似值圖像。
??為了將模板與圖像的卷積轉(zhuǎn)化成盒子濾波(Box Filter)運算,我們需要對高斯二階微分模板進行簡化,使得簡化后的模板只是由幾個矩形區(qū)域組成,矩形區(qū)域內(nèi)填充同一值,如下圖4-14所示,在簡化模板中白色區(qū)域為1,黑色區(qū)域為-1(Lxy的簡化)或者-2(Lxx和Lyy的簡化),灰色區(qū)域的值為0.
??當我們用sigma = 1.2的高斯二階微分濾波,模板尺寸為9X9的大小,并用它作為最小的尺度空間值對圖像進行濾波和斑點檢測,用Dxx、Dyy和Dxy表示模板與圖像進行卷積后的結果。Hession矩陣的行列式可做如下簡化:
??理論上說,對于不同sigma值和對應的模板尺寸,Y值是不相同的,但為了簡化,可以認為它是一個常數(shù)。同樣也可以認為C為常數(shù),由于常數(shù)C不影響極大值的求取,所以最終簡化式如下,這也是SURF論文里面Hession響應值計算公式的來源:
??當Hessian矩陣的判別式取得局部極大值時,判定當前點是比周圍鄰域內(nèi)其他點更亮或更暗的點,由此來定位關鍵點的位置。為了找出圖像中的特征點,需要對原圖進行變換,在SIFT算法中,是在DOG圖像中進行,那么,在SURF算法中,該變換圖就是原圖每個像素的Hessian矩陣行列式的近似值構成的。
??使用近似的Hessian矩陣行列式來表示圖像中某一點x處的斑點響應值,遍歷圖像中所有的像素點,便形成了在某一尺度下斑點檢測的響應圖像。為了提高運算速度,SURF使用了盒式濾波器來近似替代高斯濾波器,所以在Dxy上乘了一個加權系數(shù)0.9,目的是為了平衡因使用盒式濾波器近似所帶來的誤差。使用不同的模板尺寸,便形成了多尺度斑點響應的金字塔圖像,利用這一金字塔圖像,就可以進行斑點響應極值點的搜索。
3、尺度金字塔構造
???在SURF中,采用不斷增大盒子濾波器模板尺寸與積分圖像求取Hession矩陣行列式的響應圖像,然后在響應圖像上采用3D非最大值抑制,求取各種不同尺度的斑點,以下是兩種不同的金字塔,SURF的金字塔屬于第二種:
??SURF中采用9X9尺寸的濾波器作為起始濾波器,之后的濾波器尺寸可由以下公式計算得出:
??octave、interval在公式中都是從1開始,也就是當?shù)?組第0層時,在公式中octave=1, interval=1.采用這種方式來定義濾波器尺寸的理由如下:
???與SIFT算法類似,我們需要將尺度空間空間劃分成若干組(Octave)。一個組代表了逐步放大的濾波模板對同一輸入圖像進行濾波的一系列響應圖。每個組又由若干固定的層組成。由于積分圖像離散化的原因,兩個層之間的最小尺度變化量是由高斯二階微分濾波器在微分方向上對正負斑點響應長度l0決定的,它是盒子濾波模板尺寸的1/3。對于9×9的盒子濾波模板,l0為3。下一個層的響應長度至少應該在l0的基礎上增加2個像元,以保證一邊一個像元,即:l0=5,這樣,模板的尺寸就為15×15,如圖4-16所示。以此類推,我們可以得到一個尺寸逐漸增大模板序列,它們的尺寸分別為:9×9,15×15,21×21,27×27,黑色、白色區(qū)域的長度增加偶數(shù)個像元,以保證一個中心像元的存在。
??濾波器響應長度、濾波器尺寸、組索引O、層索引S、尺度sigma之間的關系如下:
??采用類似的方法來處理其他幾組的模板序列。其方法是將濾波器尺寸增加量翻倍(6,12,24,38)。這樣,可以得到第二組的濾波器尺寸,它們分別為15,27,39,51。第三組的濾波器尺寸為27,51,75,99。如果原始圖像的尺寸仍然大于對應的濾波器尺寸,尺度空間的分析還可以進行第四組,其對應的模板尺寸分別為51,99,147,195。下圖顯示了第一組至第三組的濾波器尺寸變化。組之間有相互重疊的目的是為了覆蓋所有可能的尺度。
??在通常尺度分析情況下,隨著尺度的增大,被檢測到的斑點數(shù)量迅速衰減。所以一般進行3-4組就可以了,與此同時,為了減少運算量,提高計算的速度,可以考慮在濾波時,將采樣間隔設為2。
??為了在圖像及不同尺寸中定位興趣點,我們用了3×3×3鄰域非最大值抑制:
??所有小于預設極值的取值都被丟棄,增加極值使檢測到的特征點數(shù)量減少,最終只有幾個特征最強點會被檢測出來。檢測過程中使用與該尺度層圖像解析度相對應大小的濾波器進行檢測,以3×3的濾波器為例,該尺度層圖像中9個像素點之一圖2檢測特征點與自身尺度層中其余8個點和在其之上及之下的兩個尺度層9個點進行比較,共26個點,圖中標記‘x’的像素點的特征值若大于周圍像素則可確定該點為該區(qū)域的特征點。
??局部極大值精確定位:采用3維線性插值法得到亞像素級的特征點,同時也去掉那些值小于一定閾值的點。
參考資料:
https://blog.csdn.net/CXP2205455256/article/details/41311013
https://blog.csdn.net/dcrmg/article/details/52601010
https://blog.csdn.net/streamchuanxi/article/details/50924549
https://blog.csdn.net/luoshixian099/article/details/47905681
《圖像局部不變性特征與描述》
總結
以上是生活随笔為你收集整理的SURF网格化特征点提取算法流程(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Object类型转为Map 强制转换
- 下一篇: 无法确定本地文件类型_如何从文件内容确定