----------------------------------------------------------------- 尺度不變性 -------------------------------------------------
使得拍攝的物體在任何尺度下都能檢測到一致(同一對)關鍵點.
每個特征點都對應一個尺度因子,一般情況下,不同特征點(同一對)的尺度因子之間的比率應該等於圖像尺度的比率
-------------------------------------------------------------- 衡量尺度不變性的方法 -------------------------------------------
必須先要明確這樣一個問題:在一幅圖像中,只有在一定的尺度范圍內,一個物體才有意義。舉一個例子,樹枝這個概念,只有在幾厘米到幾米的距離去觀察它,才能感知到它的確是樹枝;如果在微米級或者千米級去觀察,就不能感知到樹枝這個概念了,這樣的話可以感知到的是細胞或者是森林的概念。因而,如果想要描述現實世界的結構,或者將三維物體映射到二維的圖像上去,多尺度表示將會至關重要。這里需要強調一點,事物是實實在在的存在的,但是通過圖像這個媒介,觀察者可以感知到的概念是不同的,這點很有意思,將實物進行抽象化的轉化是圖像處理方面很有趣的地方。
1.圖像金字塔
圖像金字塔是比較老的方法,最開始多用於圖像分割,以一些列金字塔形狀排列,對同一張圖像進行分辨率逐漸降低的操作,它的一個很大的好處是,自下而上每一層的像素數都不斷減少,這會大大減少計算量;而缺點是自下而上金字塔的量化變得越來越粗糙,而且速度很快。加上其他的操作常用的金字塔有高斯金字塔和拉普拉斯金字塔,實際中是包含降采樣和平滑操作的。
2. 高斯金字塔
因為高斯核是唯一的線性核,也就是說使用高斯核對圖像模糊不會引入其他噪聲。高斯金字塔是向下采樣的,即每次都是降低分辨率(實際上是每次都對圖像尺寸減半)。實際中先使用高斯核對圖像進行卷積操作(平滑處理),然后刪除所有偶數行和偶數列來降低分辨率(這樣就變為了原來1/4),因為高斯濾波器是一種低通濾波器(使用低通濾波器的好處還能去除高頻噪聲),據說高斯核是唯一可以產生多尺度空間的核,那利用小波變換產生的多尺度是咋回事?暫且先擱置下這塊。但金字塔中使用了不同尺度的高斯函數進行平滑,所以高斯金字塔仍然可以跨越很大的頻率范圍.下面是用到的可變高斯函數和與圖像做卷積處理的方式
其中(x,y)是空間坐標,σ是尺度坐標,它的大小決定了圖像的平滑程度,不同尺度圖像對應不同的σ(σ取值在0.5最清晰-1.6最模糊,論文中取的是1.6),大的σ對應低分辨率圖像,小的σ對應高分辨率圖像,實時上這跟低分辨率圖像因為鋸齒更多所以需要更高的平滑程度是相對應的,原則上就是需要任何制度下都是沒啥鋸齒的圖像了。
注:這里將高斯函數進行下詳細分析,高斯函數分為一維高斯函數和二維高斯函數,公式如下
二維高斯模糊具有圓對稱性,具有線性可分的性質,即一幅圖像進行多次連續高斯模糊的效果和一次更大的高斯模糊效果是相同的,大的高斯模糊的半徑是所用多個高斯模糊半徑平方和的平方根。例如,使用半徑分別為 6 和 8 的兩次高斯模糊變換得到的效果等同於一次半徑為 10 的高斯模糊效果,另外高斯函數的可分離性是指使用二維矩陣變換得到的效果也可以通過在水平方向進行一維高斯矩陣變換加上豎直方向的一維高斯矩陣變換得到。
3. 高斯差分尺度空間(金字塔)(DOG)
3.1 高斯拉普拉斯算子
首先要說下LOG(laplaci an of gaussian)特征,也成為LOG算子。LOG是目前來說尺度變換最好的,很精確(具體為什么是最好的還沒有深刻的認識)。 他是將高斯算子和拉普拉斯算子(梯度的散度)結合的一個算子,Laplace算子在圖像中作為邊緣檢測算子,具有旋轉不變性,一個二維圖像函數的拉普拉斯變換是各向同性的二階導數,通過對圖像求圖像的二階導數的零交叉點來實現邊緣檢測,是對圖像進行微分操作來實現邊緣檢測,因此對噪聲和離散點比較敏感。公式定義為:
由於拉普拉斯是一種微分算子,它的應用可增強圖像中灰度突變的區域,減弱灰度的緩慢變化區域。因此,銳化處理可選擇拉普拉斯算子對原圖像進行處理,產生描述灰度突變的圖像,再將拉普拉斯圖像與原始圖像疊加而產生銳化圖像,這種簡單的銳化方法既可以產生拉普拉斯銳化處理的效果,同時又能保留背景信息。更為詳細的有關拉普拉斯算子的資料可以參照網址 https://blog.csdn.net/li_wen01/article/details/72864291 。因為Laplace算子的性質使得對噪聲和離散點也具有增強的效果(對這些比較敏感),所以需要事先通過高斯濾波進行降噪處理,這便是LOG算子。
利用高斯核要繼續建立高斯拉普拉斯金字塔,高斯金字塔一般選取4 階(階或組用Octave表示)每一階有5 層(層用Interval表示)的結構。首先對兩幅圖像進行歸一化處理以使得兩幅圖像的的平均灰度值相等,之后將圖像的分辨率擴大到原來的兩倍再對其進行尺度因子為σ的高斯模糊,令處理得到的圖像作為高斯金字塔第一階的第一層,這里取圖像的2 倍是為了得到更多的特征點。
同一階相鄰兩層的尺度因子比例是k,則第一階的第二層的尺度因子是kσ(這里k如何取值還沒有弄清楚),以此類推得到第一階的各層的尺度因子。第2 階的第一層是由第1 階的中間層即第3 層進行子抽樣得到的(因為與拉普拉斯金字塔不同,高斯金字塔是一種下采樣的金字塔,所以采樣的方法是下層圖像先用高斯核進行卷積運算,之后從圖像中刪掉偶數行和偶數列就得到上層待運算的圖像),其尺度因子也是k2σ,同樣第3 階的第一層是由第2 階的中間層子采樣得到的,這樣循環操作得到高斯金字塔。高斯金字塔包含了一些列的低通濾波器,每兩層之間的截止頻率是以因子2 為間隔的,所以高斯金字塔可以涵蓋很大的頻率范圍。
這樣(o(Octave),s(Interval))就能夠確定高斯金字塔中的唯一一幅圖像了,這是個三維空間,兩維坐標,一維是圖像。根據lowe的論文,(o,s)作用於一幅圖像是通過公式,其中s表示第幾層,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來區分不同的高斯核。
3.2 用DOG近似替代LOG
LOG計算比較費勁(為什么這么說還不是很清楚),所以用DOG來近似替代,DOG和LOG只差了一個常數,所以保持了最大值和最小值的不變。
為了有效的在尺度空間檢測到穩定的關鍵點(這點至今也不是很理解穩定的關鍵點具體是什么),提出了高斯差分尺度空間(DOG scale-space),利用不同尺度的高斯差分核與圖像卷積生成,處理方式如下
示意圖如下