1. 程式人生 > >【計算機視覺】SIFT中LoG和DoG比較

【計算機視覺】SIFT中LoG和DoG比較

在實際計算時,三種方法計算的金字塔組數noctaves,尺度空間座標σ,以及每組金字塔內的層數S是一樣的。同時,假設影象為640*480的標準影象。

金字塔層數:


其中o_min = 0,對於解析度為640*480的影象N=5。

每組金字塔內影象數:
S=3,即在做極值檢測時使用金子塔內中間3張影象。
對於LoG每組金字塔內有S+2張影象(S=-1,0,1,2,3),需要做S+1次高斯模糊操作(後一張影象由前一張做高斯模糊得到);而DoG每組金字塔有S+3張高斯影象,得到S+2張DoG影象。
尺度空間係數:


其中,S表示每組金字塔內影象層數,n為當前高斯層數,取0-4。DoG需要5個尺度係數得到6張GSS影象,而LoG只需要前4個尺度係數得到5張影象。

LoG

高斯核使用正太分佈(高斯函式)計算模糊模版,N維空間正太分佈方程為:

 於是,二維高斯模板上的距離中心點為(x,y)的元素對應高斯計算公式為:
 規範化的高斯拉普拉斯影象為
 最終構造LoG金字塔有5層,每層有S+2=5張影象,每層金字塔內每張影象尺度是前一張的k倍,即構成的連續尺度序列:


其中o為當前金字塔層數,n為在當前金字塔層中影象張數。
由於卷積計算性質:


在計算時,通過對前一張影象做尺度係數為的卷積操作,可以減少卷積計算次數。故在金字塔每層內的S+2張影象,需要S+1次卷積操作,每次LoG核的尺度係數為:

 圖1. LoG金字塔示意圖。 左側為影象尺度空間係數,紅色矩形框為實際參與比較的空間係數,右側為在上一張影象做LoG卷積操作的尺度係數

DoG

由於LoG與Gauss核具有如下關係:


即,

 因此,LoG運算元可以用高斯差分運算元DoG(Difference of Guassians)表示。
 於是通過高斯金字塔每層內相鄰兩張影象相減可以得到DoG金字塔。對於最後需要S張影象尋找極值點,需要S+2張DoG影象,S+3張高斯影象。具體關係如圖2.所示。


圖 2. 由高斯金字塔得到DoG金字塔及其對應的尺度空間係數示意圖。

LoG & DoG

一個直觀的比較結果,使用分別計算LoG和DoG,得到:


可以看到,LoG比DoG明顯需要更多的加法運算和乘法運算。雖然DoG需要在每層金字塔多做一次高斯操作(即為了得到S+2張DoG圖需要S+3張高斯模糊圖),但通過減法取代LoG核的計算過程,顯著減少了運算次數,大大節省了運算時間。