淺顯易懂SIFT

致敬Lowe

SIFT共分爲四步:
1.尺度空間極值檢測:尺度空間是什麼鬼?極值又是什麼鬼?容我一一道來。尺度空間,說的是,我們要在不同的尺度下來檢測,說的是我們在什麼地方檢測;極值,說的是,我們要檢測的是什麼,檢測的是極值。一句話來說是這樣的:我們要在不同尺度的圖片上分別檢測不同尺度下的極值。所以說,最後我們檢測出來的那些極值,對應的是不同尺度下的極值,而這些不同尺度下的極值,經過篩選,最後對應的,就是一個個關鍵點,而一個個關鍵點,對應的,就是一個個descriptor!這個稍後再聊。

下面來詳細說說這個極值點是怎麼檢測的:
首先,我們想想,我們檢測一個圖片上的特徵點一般是用什麼方式呢?高斯濾波!濾,濾,濾,濾的就是那些不是很重要的部分,得到重要的部分,比如說,輪廓或者紋理。高斯濾波使用什麼公式呢?下面:
圖像的尺度空間被定義爲函數L(x,y,σ),它是由可變尺度高斯函數G(x,y,σ)與輸入圖像I(X,Y)的卷積產生的:
在這裏插入圖片描述
其中*是x和y中的卷積運算.並且:

在這裏插入圖片描述
隨着參數的變化,濾波的程度不一樣,最後形成一組圖片,如下圖:
在這裏插入圖片描述
這個是在某個圖像尺度下的一組濾波圖像(Octave1)。

然後,我們通過對這組圖片相減,得到高斯差分函數,進一步得到更加代表特徵的像素點,如下圖:
在這裏插入圖片描述

然後,我們下采樣,得到一組尺度不同的一組濾波圖像(Octave2)——這個操作就是爲了滿足尺度不同的時候,我們也能有對應不同尺度的關鍵點——即尺度不變的真諦!
在這裏插入圖片描述

再然後呢,我們就對左邊的一組一組不同尺度圖片中的點檢測了!檢測哪些點是極值!看圖:
在這裏插入圖片描述
通過比較一個像素(用X標記)與當前和相鄰尺度(用圓圈標記)的3×3區域中的26個鄰居來檢測高斯差分圖像的最大值和最小值。


2.關鍵點定位:好了,現在我們已經得到了不同尺度下的極值了,然後,我們通過穩定性度量(比如標度採樣之類的),來篩選一下其中滿足條件的那些點,作爲關鍵點;然後,我們光得到這些關鍵點的位置可不行,我們還得加點東西。簡單來說,我們以{位置尺度(即圖片大小),方向}來表示關鍵點
在這裏插入圖片描述
該圖顯示了關鍵點選擇的階段。(a)233x189像素的原始圖像。(b)在高斯差值函數的最大值和最小值處的初始832個關鍵點位置。關鍵點顯示爲表示比例,方向和位置的向量。(c)在對最小對比度應用閾值後,仍然存在729個關鍵點。(d)最終的536個關鍵點仍然在主曲率比率的額外閾值之後。

沒錯,我們就是用黃色的箭頭來表示一個個關鍵點的。這個箭頭是怎麼計算的呢?接着往下看。


3.方向分配:首先說一說爲什麼要給關鍵點分配方向,假設我們現在通過相機拍攝了一個物體的好多照片,我們怎麼才能把這些圖片很好的融合在一起?我們首先要把這個物體的方向給確定,這樣所有的照片拍攝的物體我們就知道它的絕對方向了,這樣我們才能更好地利用圖像的信息。而同時,我們也要考慮,我們拍攝的照片, 很可能是不同的尺度,而且拍攝的物體的大小也不能保證一致,所以我們才需要不同尺度下的參考!這就是爲什麼要加尺度這麼一個屬性的原因。

方向的計算很簡單,但是很好用:
對於每個圖像樣本,L(x,y),在此尺度下,使用像素差異預先計算梯度幅度m(x,y)和方向θ(x,y):
在這裏插入圖片描述
上面的公式計算箭頭長度,下面的公式計算箭頭方向,完美。
方向直方圖中的峯值對應於局部梯度的主導方向。檢測直方圖中的最高峯,然後使用在最高峯的80%內的任何其他局部峯也創建具有該方向的關鍵點。 因此,對於具有相似幅度的多個峯值的位置,將在相同位置和比例但是不同方向上創建多個關鍵點。只有大約15%的點被分配了多個方向,但這些對於匹配的穩定性有很大貢獻。最後,拋物線擬合最接近每個峯的3個直方圖值,以插入峯值位置獲得更好的準確性。


4.關鍵點描述符:下面來說說爲什麼要有這個東西,不是說{位置,尺度,方向}已經都有了嗎?爲什麼還需要這個東西?descriptor是什麼玩意?怎麼就憑空出來個這麼個玩意?Lowe想幹嘛?這裏我又要致敬一下Lowe了,真TM的是天才!這位老爺爺覺得吧,光有這個不行,根本就不夠用,準確率根本不夠高,我得精益求精:

在這裏插入圖片描述
看到上面這個圖了吧?什麼玩意?跟蝌蚪似的?難道是顯微鏡下看到的。。。別想歪了。首先說明一下左邊這個圖是怎麼來的:我們首先取出一個關鍵點,以該關鍵點爲中心畫個圓,然後在圓內取樣,圖片裏取了8*8=64個點;我們計算每個圖像梯度幅度和方向,並以此來表示採樣點。圖像梯度的方向就是箭頭的方向,圖像梯度的幅度就是箭頭的長度。再來說下右邊的圖,我們把左邊的採樣點分爲4個區域,然後我們進行矢量求和。我們把其中最長的那個作爲descriptor的主方向——重點來了——Lowe把所有的箭頭都相對於主方向旋轉了一下,什麼意思?看下圖:
在這裏插入圖片描述
黑色箭頭是主方向。
發現問題了嗎?如何通過上面的方向確定了主方向,無論你怎麼旋轉,我們都能知道該物體的絕對方向了!也就是說,我們拿到了一把可以確定方向的鑰匙!但是恐怖的不在這裏,你們想想咱們的主方向是誰的主方向?是每個關鍵點的主方向!我們得到了每一個關鍵點的主方向,所以,我們可以用這個主方向去匹配每一對圖像的關鍵點了!


over

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章