SIFT特征提取

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

圖1.尺度空間與高斯差分

其中:

? ? ????階(Octave)數(shù):O=3

? ? ? ? 每階有效樣本(Sample)數(shù):S=3

? ? ? ? 每階總樣本數(shù):N=S+3

? ? ? ? 高斯空間:每個Octave中的左半部分

? ? ? ? 高斯差分空間:每個Octave中的右半部分

2.關(guān)鍵點(diǎn)檢測

圖2.粗定位(左)與細(xì)定位(右)

2.1:粗定位

? ? ? ? 對每個Octave中的有效高斯差分圖(圖1紅色)中的每個點(diǎn),在位置(x,y)和尺度\sigma 構(gòu)成的三維空間中尋找極值(圖2左)。

2.2:細(xì)定位

? ? ? ? 假設(shè)經(jīng)過粗定位檢測到的點(diǎn)為圖二右側(cè)綠色的點(diǎn),如何將其進(jìn)一步精確化呢?

? ? ? ? 假設(shè)綠色點(diǎn)為p_{0} =[x_{0},y_{0},\sigma _{0}]^T ,紅色點(diǎn)為p =[x,y,\sigma]^T ,\delta p=p-p_{0}

? ? ? ? 變量空間如下圖:

圖3.差分圖(DoG)對應(yīng)的變量空間

????????設(shè)差分函數(shù)為f(x,y,\sigma ),則:

? ? ? ? 一階導(dǎo)數(shù):

? ??????????????\frac{?f}{?a} =\frac{f(x+1,y,\sigma )-f(x-1,y,\sigma )}{2h_{x} }

????????????????\frac{?f}{?y} =\frac{f(x,y+1,\sigma )-f(x,y-1,\sigma )}{2h_{y} }

? ??????????????\frac{?f}{?\sigma } =\frac{f(x,y,\sigma +1)-f(x,y,\sigma -1)}{2h_{\sigma } }

? ??????????????▽f=[\frac{?f}{?x} ,\frac{?f}{?y} ,\frac{?f}{?\sigma } ]

? ? ? ? 二階導(dǎo)數(shù):

? ??????????????\frac{?^2f }{?x^2 } =\frac{f(x+1,y,\sigma)+ f(x-1,y,\sigma )-2f(x,y,\sigma )}{d^2x  }

? ??????????????\frac{?^2f }{?y^2 } =\frac{f(x,y+1,\sigma)+ f(x,y-1,\sigma )-2f(x,y,\sigma )}{d^2y}

? ??????????????\frac{?^2f }{?\sigma ^2 } =\frac{f(x,y,\sigma+1)+ f(x,y,\sigma -1)-2f(x,y,\sigma )}{d^2x}

\frac{?^2f }{?x?y} =\frac{[f(x+1,y+1,\sigma)+ f(x-1,y-1,\sigma )]-[f(x+1,y-1,\sigma )+f(x-1,y+1,\sigma )]}{4d_{x}d_{y}  }

\frac{?^2f }{?x?\sigma } =\frac{[f(x+1,y,\sigma+1)+ f(x-1,y,\sigma -1)]-[f(x+1,y,\sigma-1 )+f(x-1,y,\sigma+1 )]}{4d_{x}d_{\sigma }  }

\frac{?^2f }{?y?\sigma } =\frac{[f(x,y+1,\sigma+1)+ f(x,y-1,\sigma -1)]-[f(x,y+1,\sigma -1)+f(x,y-1,\sigma+1)]}{4d_{y}d_{\sigma }  }

? ??????????????▽^2f= \left[\begin{matrix} \frac{?^2f }{?x^2 }  & \frac{?^2f }{?x?y } &\frac{?^2f }{?x?\sigma  } \\  \frac{?^2f }{?x?y } &  \frac{?^2f }{?y^2 }&\frac{?^2f }{?y?\sigma  }\\  \frac{?^2f }{?x?\sigma  } &  \frac{?^2f }{?y?\sigma  }  &\frac{?^2f }{?\sigma ^2 }\end{matrix}\right]

? ? ? ? 根據(jù)二階泰勒展開式得:

? ??????????????\delta p=▽^2 f(p_{0} )^{-1} ▽f^T(p_{0})

? ??????????????f(p)=f(p_{0} )+\frac{1}{2} ▽f(p_{0})^T (p-p_{0} )

????????????????刪除|f(p)|<0.03的點(diǎn)。

2.3:消除邊緣響應(yīng)

? ? ? ? DoG在邊緣處值較大,需要避免檢測到邊緣,記關(guān)鍵點(diǎn)p處的海森矩陣為H

? ? ? ? (海森矩陣詳細(xì)介紹見:http://www.itdecent.cn/p/4cf554bfc058),保留滿足公式

? ? ? ?\frac{trace(H)^2 }{det(H)} <\frac{(r+1)^2 }{r} ,r=10的關(guān)鍵點(diǎn)。

3.確定關(guān)鍵點(diǎn)方向

在以關(guān)鍵點(diǎn)為中心的8x8窗口內(nèi)統(tǒng)計(jì)方向直方圖,每隔10度算一個方向,總共36個bin,360度。

圖4.確定主方向,注意左圖每個箭頭長度不一樣

計(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)的模長為m,統(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ì)梯度直方圖。

圖5.圖像窗口劃分block并計(jì)算每個block的梯度直方圖

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

圖6.將block對應(yīng)的梯度直方圖按順序串聯(lián)起來,形成特征向量

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容