SURF原理分析


本文轉載自http://blog.csdn.net/luoshixian099/article/details/47807103。

SURF (Speed Up Robust Features)是SIFT改進版也是加速版,提高了檢測特征點的速度,綜合性能要優於SIFT。

1.積分圖像

SURF是對積分圖像進行操作,從而實現了加速,采用盒子濾波器計算每個像素點的Hessian矩陣行列式時,只需要幾次加減法運算,而且運算量與盒子濾波器大小無關,所以能夠快速的構成出SURF的尺度金字塔。

積分圖像中每個像元的值,是原圖像上對應位置的左上角所有元素之和

                                                      

                                                       

如上圖:我們要得到綠色矩形區域內的矩形像素之和S,只需要在積分圖上,運算S=D-B-C+A就可以得到。

2.尺度空間的構造

2.1

對DoH的近似

SIFT采用了對LoG的近似算法DoG,而SURF (Speed Up Robust Features) 采用對DoH近似進行特征點檢測,LoG與DoH是檢測特征點的兩種常用方法。

連續函數f(x,y)的二階微分Hessian矩陣。

                              

我們可以利用Hessian矩陣的行列式值判斷點(x,y)是否是極值點

                              

在離散空間上,為了得到Hessian矩陣的四個元素,SURF采用二階標准高斯核函數的對圖像卷積運算,因為高斯核可以構造出不同尺度下的響應圖像。在尺度σ下,點 X=(x,y) 處,對應的Hessian矩陣。

 

                              

Lxx是標准高斯函數g(x,y,σ)的二階偏導數與圖像在點(x,y)處卷積的結果;

                                

同理,Lyy,Lxy的計算方法。這樣可以計算出圖像上所有點的Hessian行列式值。

為了能加速運算,Bay等人采用盒子濾波器對高斯二階微分模板近似處理。

           Lyy                                   Lxy                                    Dyy                                     Dxy

如圖所示,圖1是y方向的二階高斯微分模板,圖3采用盒子濾波器對其進行近似,數字表示對應顏色區域的權值,灰色區域權值為0,采用盒子濾波器與圖像卷積的結果記為Dxx,Dyy,Dxy。因為盒子濾波器在積分圖像上計算非常快。

由於是對原Hessian矩陣的近似,由相關推導可以證明采用下面的公式,更接近真實值。由於不同的尺度下,對應的值(0.9)不同,這里為了統一,要求計算盒子濾波響應時,對模板盒子進行歸一化處理。

                       

采用上面的公式,圖像上每一個像素點計算出一個Hessian矩陣響應值,作為在尺度σ下的響應圖像。

2.2

構造尺度空間

構造尺度空間是為了在空間域與尺度域上找到極值點,作為初步的特征點。構造尺度空間傳統的方法即構造一個高斯金字塔,原始圖像作為最底層,然后對圖像進行高斯模糊再降采樣(2倍)作為下一層圖像,循環迭代下去。高斯金字塔是對原圖像的尺寸是在不斷變化的,高斯模板尺寸不變。每一層的建立必須等到上一層構造完畢后才能進行處理,依賴性很強,這樣造成速度上很慢。SURF構建尺度金字塔的方法采用原圖像大小不變,變化的是模板大小,即采用變化的模板盒子尺寸對原圖像進行濾波,構造出尺度空間。同時,SURF可以采用並行運算,對金字塔中的每層圖像同時進行處理。通過逐漸增大的盒子尺寸濾波模板與積分圖像卷積產生的Hessian矩陣行列式的響應圖像,構造出金字塔。

如下圖所示,左圖為構建高斯金字塔的方法,右圖為SURF構建的方法。

                                                           

SURF首先采用9×9的盒子濾波器(近似等於σ=1.2時的高斯二階微分,記為尺度s=1.2)得到的響應圖像作為最底層的圖像,然后逐漸增大盒子的尺寸,對原圖像繼續進行濾波處理。與SIFT類似,把響應圖像分成若干組,每組若干層。每組都是采用逐漸增大的濾波器尺寸進行處理。層與層之間的尺度變化量是高斯二階微分模板決定的。對於9×9的濾波器,由於要保證濾波器的結構比例不變同時要求存在濾波器模板中心,每個塊最小增加量是2,由於有三個塊,所以最小增加量是6,即下一個濾波器的大小為15×15,依次增加為21×21,27×27,...;利用這樣的模板序列,就構造出尺度空間。

                               

2.3D非極大值抑制

與SIFT類似,對每層圖像上的每個像素與空間鄰域內和尺度鄰域內的響應值比較(不包括第一層與最后一層圖像),同層上有8個鄰域像元,向量尺度空間共有2×9=18個,共計26個像元的值進行比較,如果是極大值則保留下來,作為候選特征點。

                                         

同時如果特征點的響應值小於Hessia行列式的閾值,也被排除。

3.准確定位特征點

由於是離散空間的極值點,通過擬合方法,准確定位到特征點的位置,每個特征點包含三個信息 H(x,y,σ),即位置與尺度。與SIFT的方法一樣,可以看我寫的SIFT原理的文章。
求導,並令其等於0得:
計算方法:
,
 
求得 ,即在三個方向的偏移量
 
通過以上的方法,即找到了每個特征點的位置,下面介紹SURF特征點的描述子。

4.特征點描述子

4.1

為特征點分配主方向

為了保證旋轉不變性,首先要為特征點分配主方向。以特征點為中心,6s為半徑的圓域,統計所有像素點的Harr小波響應。算法上就是采用下面的模板對圖像卷積運算,作為每個像素點水平與垂直方向Harr小波響應。Harr小波模板的長度為4s。尺度s的計算,是根據當前模板的大小。

,Harr小波模板(黑色1,白色-1)
 

圓域內的每個像素都計算出Harr小波水平響應與垂直響應值,同時乘以對應位置的高斯權重(σ=2.5s).
為了求取主方向,采用一個張角為60度的扇形滑動窗口,計算其區域內的Harr小波水平與垂直方向的響應之和,滑動扇形窗口,得到最大的響應區域對應的方向即為此特征點的主方向。

               
4.2

形成特征矢量

 
沿着主方向,取20s×20s的矩形區域作為其鄰域,分成4×4個子區域,統計每個子區域內像素點的Harr小波模板,沿着主方向與垂直於主方向的響應,Harr小波模板的寬度為2s。統計16個子區域的響應信息,每個子區域采用下面公式的方法進行統計,同時每個像素點的響應要乘以對應位置的高斯權重(σ = 3.3s)。
                       
                         
這樣每個子區域攜帶4個信息,共有16個子區域,共64維。最后為了防止光照與對比度的影響,對特征矢量歸一化處理。
 
 
 
 
 

參考:
SURF: Speeded Up Robust Features :Herbert Bay, Tinne Tuytelaars, and Luc Van Gool
http://blog.csdn.net/crzy_sparrow/article/details/7392345
http://blog.csdn.net/yangtrees/article/details/7482960
http://www.cnblogs.com/tornadomeet/archive/2012/08/17/2644903.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM