vlfeat dense sift理解

一、Dense SIFT Sampling

DSIFT在尋找顯著點時不是嘗試使用一個分類器判斷是否是顯著點,而是爲了簡化,所有顯著點是均勻分佈(equally dense across )在圖像的各個區域的。在採樣時有個涉及不同尺度下采樣步長(pixel stride)是否應該相同的問題。窗口移動同樣的步長,在更大的尺度下,窗口要大些,這會使得相鄰窗口的重疊區域面積比率變大,從而使得采樣的冗餘較小尺度下的冗餘要大。當前流行的多尺度採樣方法傾向的就是這種策略。DSIFT也是使用這種策略,因爲要簡單得多。

二、Dense SIFT計算過程

1)讀入一副灰度圖像(彩色圖像要轉成灰度圖像),DSIFT算法首先要將圖像等分成一個個小的像素塊(frames)。
2)然後每個像素塊再分成更小的塊,比如4*4=16塊,代表中心keypoint,在vlfeat中對應numBinX和numBinY。計算每個塊在8個方向上的梯度直方圖,在vlfeat中對應numBinT。這16個塊每個塊的大小有binSize指定。同時根據窗口移動步長StepX和StepY移動窗口。
這裏寫圖片描述
3)計算出每個小塊中心像素的梯度後,可以採用兩種方法計算出descriptor,一種是各個位置等權重方式,一種是高斯核函數方式。兩種方式都可以使用卷積來實現。
4)根據卷積窗口參數,與卷積梯度,得到descriptor。

計算的值主要是如下兩種卷積窗口:
這裏寫圖片描述

三、DSIFT的相關參數計算

1)frame個數(D)的計算。frame的水平寬度爲binSizeXnumBinX ,垂直高度爲binSizeYnumBinY ,計算方式如下:
這裏寫圖片描述
2)每個8*8大小的塊對應的descriptor就是一個4*4*8維數的向量,整個圖像如果分成D個塊的話,那麼DSIFT特徵的維數就是D*4*4*8。一副圖像特徵的維數爲:DnumBinTnumBinXnumBinY

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