SIFT算法:DoG尺度空間生產


SIFT算法:DoG尺度空間生產 
SIFT算法:KeyPoint找尋、定位與優化
SIFT算法:確定特征點方向 
SIFT算法:特征描述子

 


目錄:

1、高斯尺度空間(GSS - Gauss Scale Space)

2、高斯差分(DOG - Difference of Gauss)

  2.1 生產DoG

  2.2 為什么用DoG來檢測特征點

3、GSS尺度選擇

  3.1 GSS中尺度值的產生

  3.2 高斯核性質及其在SIFT中的應用


 

1 GSS(Gauss Scale-space)

  It has been shown by Koenderink (1984) and Lindeberg (1994) that under a variety of reasonable assumptions the only possible scale-space kernel is the Gaussian function. Therefore, the scale space of an image is defined as a function, L(x, y, σ), that is produced from the convolution of a variable-scale Gaussian, G(x, y, σ), with an input image, I(x, y):

  唯一能產生尺度空間的核為高斯核函數,所以我們將圖像的尺度空間表示成一個函數L(x,y,σ),它是由一個變尺度的高斯函數G(x,y,σ)與圖像I(x,y)卷積產生的。即

L(x, y, σ) = G(x, y, σ) ∗ I(x, y)

其中*代表卷積操作,G(x, y, σ) 為二維高斯核函數,表示為:

2 DoG(Difference of Gauss)  

2.1 DoG生成

  SIFT算法建議,在某一尺度上對特征點的檢測,可以通過對兩個相鄰高斯尺度空間的圖像相減,得到一個DoG (Difference of Gaussians)的響應值圖像D(x,y,σ)。然后,仿照LoG方法,通過對響應值圖像D(x,y,σ)進行非最大值抑制(局部極大搜索,正最大和負最大),在位置空間和尺度空間中定位特征點。其中

D(x, y, σ) = (G(x, y, kσ) − G(x, y, σ)) ∗ I(x, y) = L(x, y, kσ) − L(x, y, σ)

式中,k為相鄰尺度空間倍數的常數。

2.2 為什么用DoG來檢測特征點

  In addition, the difference-of-Gaussian function provides a close approximation to the scale-normalized Laplacian of Gaussian, σ22G, as studied by Lindeberg (1994). Lindeberg showed that the normalization of the Laplacian with the factor σ2 is required for true scale invariance. In detailed experimental comparisons, Mikolajczyk (2002) found that the maxima and minima of σ22G produce the most stable image features compared to a range of other possible image functions, such as the gradient, Hessian, or Harris corner function.

  Lindeberg證明用σ2標准化的高斯拉普拉斯(∇2G, LOG, Laplacian of Gauss)有着真正的尺度無關的特性,而Mikolajczyk發現,相比於其他一系列函數(比如梯度,Hessian,Harris角點函數等),用σ2標准化的高斯拉普拉斯(σ22G)有着更穩定的圖像特征,因此σ22G函數是我們理想的尋找特征點的函數。而在此,我們利用DoG來近似σ22G。

  通過熱傳導方程也可以幫助我們理解DoG與σ22G之間的近似關系。由熱傳導方程可知(通常用t=σ2):

對上式進行有限差分運算得:

因此

DoG = G(x, y, kσ) − G(x, y, σ) ≈ (k − 1)σ22G

而常數項(k - 1)並不會影響極值的位置。所以DoG是σ22G的近似。

 

  對於使用DoG來近似σ22G,有如下優點:

  1. σ22G需要使用兩個方向的高斯二階微分卷積核,而DoG直接使用高斯卷積核,省去了對卷積核的生成的運算量。

  2. DoG保留了各個高斯尺度空間的圖像,這樣,在生成某一空間尺度的特征時,可以直接尺度空間圖像,而無需重新再次生成該尺度的圖像。

3 GSS尺度選擇

3.1 GSS中尺度值的產生

   由上一節知DoG近似於(k − 1)σ22G,對於常數k,即為相鄰高斯尺度空間的兩幅圖像的尺度倍數,Lowe在文中提到,The approximation error will go to zero as k goes to 1, but in practice we have found that the approximation has almost no impact on the stability of extrema detection or localization for even significant differences in scale, such as k = √2. 文中提到k值大小對於極值的檢測沒有什么影響。那么k究竟取多大呢?  

  We choose to divide each octave of scale space (i.e., doubling of σ) into an integer number, s, of intervals, so k = 21/s. We must produce s + 3 images in the stack of blurred images for each octave, so that final extrema detection covers a complete octave. Adjacent image scales are subtracted to produce the difference-of-Gaussian images shown on the right. Once a complete octave has been processed, we resample the Gaussian image that has twice the initial value of σ (it will be 2 images from the top of the stack) by taking every second pixel in each row and column. The accuracy of sampling relative to σ is no different than for the start of the previous octave, while computation is greatly reduced.

 

問題1 為什么用前一個octave中的倒數第三幅圖像生成下一octave中的第一幅圖像?

  我們通過上圖來解釋這段話,由 “must produce s + 3 images in the stack of blurred images for each octave” 可知每層octave產生了5幅圖像,所以s = 2。 同一octave相鄰圖像之間尺度為k倍的關系, k = 21/s = 21/2,仔細閱讀上一段下划線部分,當完成一層octave的處理后,對2倍σ的高斯圖像(即用尺度大小為2σ的高斯函數模糊的圖像)進行二分重采樣,得到下一個octave的第一幅圖像。而這個用尺度大小為2σ的高斯函數模糊的圖像總是處於該octave的倒數第三幅(由上往下數,第三幅。原文:it will be 2 images from the top of the stack,程序員都是從0開始數的咯),因為總共一層octave為s+3幅圖像,第n層即為knσ0(其中 n = 0,1,...,s,s+1,s+2.  k = 21/s),當n等於s時,knσ0 = 2σ0,第s層即為倒數第三層。

問題2 每層octave為什么生成s+3幅圖像?

  在極值比較的過程中,每一組圖像的首末兩層是無法進行極值比較的,為了滿足尺度變化的連續性,生成高斯金字塔每組有s+3層圖像。DOG金字塔每組有s+2層圖像。見上圖,為s = 3的情況,由上一問題可知,GSS中倒數第三幅尺度與下一octave第一幅的尺度相同,由圖中紅色矩形中的尺度對應為DoG中極值檢測的圖像,將其各層紅色矩形框中的尺度依次排列,即可發現其為以k = 21/s(即k = 21/3)為等比的連續尺度。所以極值檢測是在一個連續變化的尺度空間中進行的。如下圖:

3.2 高斯核性質及其在SIFT中的應用

  對於二維高斯卷積,有如下性質:

  1. 距離高斯核中心3σ距離外的系數很小,相對於3σ內的系數值可以忽略不計,所以只用(6σ + 1)*(6σ + 1)的面積計算卷積即可。
  2. 線性可分,二維高斯核卷積(計算次數O(n2*M*N))效果等於水平和豎直方向的兩個一維高斯核(計算次數O(n*M*N) + O(n*M*N)))累積處理的效果。n*n為濾波器大小,M*N圖像大小
  3. 對一幅圖像進行多次連續高斯模糊的效果與一次更大的高斯模糊可以產生同樣的效果,大的高斯模糊的半徑是所用多個高斯模糊半徑平方和的平方根。例如,使用半徑分別為 6 和 8 的兩次高斯模糊變換得到的效果等同於一次半徑為 10 (勾股定理)的高斯模糊效果。根據這個關系,使用多個連續較小的高斯模糊處理不會比單個高斯較大處理時間要少。

  其中,性質3有助我們更快速的生成GSS。雖然兩個小半徑處理時間並不會比單個高斯較大半徑處理的時間少,但相對於原圖像,我們已經有一個小半徑模糊過的圖像,即可用另一小半徑在現成的圖像上進行模糊得到較大半徑的模糊效果。例如尺度為σ0的圖像已經存在,我們要得到尺度為kσ0的圖像,即可只使用尺度為[(kσ0)2-(σ0)2]1/2的核在尺度為σ0的圖像上進行模糊,即可得到尺度為kσ0模糊的圖像,同理可得到高斯尺度空間各層的圖像,使得高斯尺度空間生產得更快。

 


 

參考資料:

  1. David G. Lowe Distinctive Image Features from Scale-Invariant Keypoints 
  2. 王永明 王貴錦 《圖像局部不變性特征與描述》
  3. 高斯模糊 http://zh.wikipedia.org/wiki/%E9%AB%98%E6%96%AF%E6%A8%A1%E7%B3%8A


免責聲明!

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



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