1.構(gòu)建尺度空間

其中:
? ? ????階(Octave)數(shù):
? ? ? ? 每階有效樣本(Sample)數(shù):
? ? ? ? 每階總樣本數(shù):
? ? ? ? 高斯空間:每個Octave中的左半部分
? ? ? ? 高斯差分空間:每個Octave中的右半部分
2.關(guān)鍵點(diǎn)檢測

2.1:粗定位
? ? ? ? 對每個Octave中的有效高斯差分圖(圖1紅色)中的每個點(diǎn),在位置和尺度
構(gòu)成的三維空間中尋找極值(圖2左)。
2.2:細(xì)定位
? ? ? ? 假設(shè)經(jīng)過粗定位檢測到的點(diǎn)為圖二右側(cè)綠色的點(diǎn),如何將其進(jìn)一步精確化呢?
? ? ? ? 假設(shè)綠色點(diǎn)為,紅色點(diǎn)為
,
。
? ? ? ? 變量空間如下圖:

????????設(shè)差分函數(shù)為,則:
? ? ? ? 一階導(dǎo)數(shù):
? ??????????????
????????????????
? ??????????????
? ??????????????
? ? ? ? 二階導(dǎo)數(shù):
? ??????????????
? ??????????????
? ??????????????
? ??????????????
? ? ? ? 根據(jù)二階泰勒展開式得:
? ??????????????
? ??????????????
????????????????刪除的點(diǎn)。
2.3:消除邊緣響應(yīng)
? ? ? ? DoG在邊緣處值較大,需要避免檢測到邊緣,記關(guān)鍵點(diǎn)處的海森矩陣為
? ? ? ? (海森矩陣詳細(xì)介紹見:http://www.itdecent.cn/p/4cf554bfc058),保留滿足公式
? ? ? ?的關(guān)鍵點(diǎn)。
3.確定關(guān)鍵點(diǎn)方向
在以關(guān)鍵點(diǎn)為中心的8x8窗口內(nèi)統(tǒng)計(jì)方向直方圖,每隔10度算一個方向,總共36個bin,360度。

計(jì)算公式如下:
窗口內(nèi)每個點(diǎn)的方向?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Ctheta%20" alt="\theta " mathimg="1">,方向?qū)?yīng)的模長為,統(tǒng)計(jì)窗口內(nèi)所有點(diǎn)得到圖4右側(cè)的圖,選取
bin最大的作為主方向,如果有別的bin大于最大bin的百分之80,則也將那個bin對應(yīng)的方向作
候選主方向。
4.生成描述子
將以關(guān)鍵點(diǎn)為中心的16x16圖像窗口分成4x4=16個block,每個block統(tǒng)計(jì)梯度直方圖。

將每個block對應(yīng)的梯度直方圖串聯(lián)起來,形成128維特征向量,注意圖4的顏色對應(yīng)。

歸一化處理:特征向量模長為1且每個維度不大于0.2。