高斯金字塔是SIFT特征提取的第一步,之后特征空間中極值點的確定,都是基於高斯金字塔,因此SIFT特征學習的第一步是如何建立的高斯金字塔。
八度(octave) 簡單地說八度就是在特定尺寸(長寬)下,經不同高斯核模糊的圖像的集合。八度的集合是高斯金字塔。
為什么要構建高斯金字塔:
整個高斯金字塔,或者說是差分高斯金字塔是我們確定SIFT特征的基礎,讓我們首先想想高斯金字塔到底干了一件什么事情,他到底模仿的是什么?答案很容易確定,高斯金字塔模仿的是圖像的不同的尺度,尺度應該怎樣理解?對於一副圖像,你近距離觀察圖像,與你在一米之外觀察,看到的圖像效果是不同的,前者比較清晰,后者比較模糊,前者比較大,后者比較小,通過前者能看到圖像的一些細節信息,通過后者能看到圖像的一些輪廓的信息,這就是圖像的尺度,圖像的尺度是自然存在的,並不是人為創造的。好了,到這里我們明白了,其實以前對一幅圖像的處理還是比較單調的,因為我們的關注點只落在二維空間,並沒有考慮到“圖像的縱深”這樣一個概念,如果將這些內容考慮進去我們是不是會得到更多以前在二維空間中沒有得到的信息呢?於是高斯金字塔橫空出世了,它就是為了在二維圖像的基礎之上,榨取出圖像中自然存在的另一個維度:尺度。因為高斯核是唯一的線性核,也就是說使用高斯核對圖像模糊不會引入其他噪聲,因此就選用了高斯核來構建圖像的尺度。
下圖兩幅圖像是典型的圖像高斯金字塔,這就是模仿的圖像離你遠去時在你視網膜上的成像,圖像分別以動態方式表示。
高斯金字塔的構建步驟:
根據Lowe的論文,高斯金字塔的構建還是比較簡單的,高斯卷積和是尺度變換的唯一的線性核。
構建出的金字塔如下圖所示:
圖1
也就是用不同的ó來進行高斯卷積,Octave1進行ó1的高斯模糊得到的圖片在進行降采樣;得到Octave2最底層(如上圖...號下的圖片),此圖片進行ó2的高斯模糊得到的圖片在進行降采樣;如此循環;得到高斯金字塔;
圖像的金字塔模型是指,將原始圖像不斷降階采樣,得到一系列大小不一的圖像,由大到小,從下到上構成的塔狀模型。原圖像為金子塔的第一層,每次降采樣所得到的新圖像為金字塔的一層(每層一張圖像),每個金字塔共n 層。為了讓尺度體現其連續性,高斯金字塔在簡單降采樣的基礎上加上了高斯濾波。高斯金字塔上一組圖像的初始圖像(底層圖像)是由前一組圖像的倒數第三張圖像隔點采樣得到的。
具體可見:opencv-圖像上采樣和降采樣
在同一組內,不同層圖像的尺寸是一樣的,后一層圖像的高斯平滑因子σ是前一層圖像平滑因子的k倍;
在不同組內,后一組第一個圖像是前一組倒數第三個圖像的二分之一采樣,圖像大小是前一組的一半;
以上已經從人視覺感知的角度讓大家感性認識了“尺度”,上文也提到使用高斯核來實現尺度的變換,那么具體實現過程中,尺度體現在哪里?是如何量化的呢?高斯核的ó如何確定呢?
在圖1中,S表示每組提取多少層,s表示第幾層,o第幾個八度;
八度(octave) 簡單地說八度就是在特定尺寸(長寬)下,經不同高斯核模糊的圖像的集合。八度的集合是高斯金字塔。
在高斯金字塔中,兩個變量很重要,即第幾個八度(o)和八度中的第幾層(s),這兩個量合起來(o,s)就構成了高斯金字塔的尺度空間。尺度空間也不難理解,首先一個八度中圖像的長和寬是相等的,即變量o控制的是塔中尺寸這個尺度;區分同一個尺寸尺度下的圖像,就需要s了,s控制了一個八度中不同的模糊程度。這樣(o,s)就能夠確定高斯金字塔中的唯一一幅圖像了,這是個三維空間,兩維坐標,一維是圖像。
根據lowe的論文,(o,s)作用於一幅圖像是通過公式
確定的。通過公式也可以看出,尺度空間是連續的,兩個變量控制着δ的值,其中在第一個八度中有 1<(o+s/S)<=2 ,同理在第二個八度中有2<(o+s/S)<=3,以此類推,δ中的關鍵部分(o+s/S)部分是逐漸增大的(具體實現時,有些高斯金字塔中這個值是增大,但不是逐漸均勻增大,只能說是連續的)。
上圖中第一個八度的中圖像的尺度分別是δ,kδ,k^2δ......,第二個八度的尺度分別是2δ,2kδ,2k^2δ........,同理第三個八度的尺度分別是4δ,4kδ,4k^2δ........。這個序列是通過下式來確定的:
所以每增加一級八度,δ都要擴大2倍,在一個八度中,k的上標s來區分不同的高斯核。
至此,高斯金字塔中的尺度空間已經說得差不多了,包括尺度是什么,包括高斯金字塔中尺度的連續性,后文將詳細說明尺度空間的連續性。
高斯差分金字塔
上面可以知道高斯金字塔構建過程中,一般首先將圖像擴大一倍,在擴大的圖像的基礎之上構建高斯金字塔,然后對該尺寸下圖像進行高斯模糊,幾幅模糊之后的圖像集合構成了一個八度,然后對該八度下的最模糊的一幅圖像進行下采樣的過程,長和寬分別縮短一倍,圖像面積變為原來四分之一。這幅圖像就是下一個八度的初始圖像,在初始圖像圖像的基礎上完成屬於這個八度的高斯模糊處理,以此類推完成整個算法所需要的所有八度構建,這樣這個高斯金字塔就構建出來了。
這樣每一組中就有幾幅高斯金字塔的圖片;
構建高斯金字塔是為了后續構建差分高斯金字塔。對同一個八度的兩幅相鄰的圖像做差得到插值圖像,所有八度的這些插值圖像的集合,就構成了差分高斯金字塔。過程如下圖所示,差分高斯金字塔的好處是為后續的特征點的提取提供了方便。
【尺度空間】
圖像的尺度空間解決的問題是如何對圖像在所有尺度下描述的問題。
在高斯金字塔中一共生成O組L層不同尺度的圖像,這兩個量合起來(O,L)就構成了高斯金字塔的尺度空間,也就是說以高斯金字塔的組O作為二維坐標系的一個坐標,不同層L作為另一個坐標,則給定的一組坐標(O,L)就可以唯一確定高斯金字塔中的一幅圖像。
尺度空間的形象表述:
上圖中尺度空間中k前的系數n表示的是第一組圖像尺寸是當前組圖像尺寸的n倍。
【DoG 角點檢測】
DoG (Difference of Gaussian)是灰度圖像增強和角點檢測的方法,其做法較簡單,證明較復雜,具體講解如下:Difference of Gaussian(DOG)是高斯函數的差分。我們已經知道可以通過將圖像與高斯函數進行卷積得到一幅圖像的低通濾波結果,即去噪過程,這里的Gaussian和高斯低通濾波器的高斯一樣,是一個函數,即為正態分布函數。
那么difference of Gaussian 即高斯函數差分是兩幅高斯圖像的差,
一維表示:
二維表示:
具體到圖像處理來講,就是將兩幅圖像在不同參數下的高斯濾波結果相減,得到DoG圖。
參考文章:
圖像金字塔、高斯金字塔、差分金字塔(DOG金字塔)、尺度空間、DoG (Difference of Gaussian)角點檢測
DoG (Difference of Gaussian)角點檢測
Sift中尺度空間、高斯金字塔、差分金字塔(DOG金字塔)、圖像金字塔