天天看點

特征描述子之HOG算子

HOG是一個比較理想的描述邊緣、形狀資訊的算子了,它能夠有部分抗光照變化能力,但是不具備旋轉不變性和尺度不變性。

HOG算子在檢測邊緣分明的目标時有較好的效果,比如與SVM結合起來做行人檢測...網上對于HOG算子原理分析的文章比比皆是,本人也是現學現賣,班門弄斧了。

HOG描述子的提取步驟:

特征描述子之HOG算子

①拉低圖像亮度

拉低圖像亮度的作用不僅僅是為了減少陰影和光照的影響,也淡化了次級的邊緣,便于目标外形輪廓的提取。

拉低圖像亮度采用伽馬壓縮方法,即對每個顔色通道分别做開平方運算或者求Log。

②求取各像素點梯度向量

提取梯度向量的工作大家應該都信手拈來了吧,用梯度算子([-1,0,1])分别做水準和垂直方向的卷積,在數學意義上也就是分别求取圖像x,y方向的偏導,将偏導的平方和開平方即可得到改點的梯度幅值,兩個偏導比值的arctan即為該梯度的方向。HOG算子會分别計算三個通道的梯度,選取其中幅值最大的作為該點的梯度向量。

梯度幅值及方向計算公式:

特征描述子之HOG算子

③統計cell

将圖像分割為N*N大小的像素單元(cell),并将梯度方向均分為9個區間(bin)(360/9=40),之後對cell中的梯度向量在各bin的區間内做直方圖統計,即可得到該cell的梯度方向分布,它是一個9維的特征向量,接着将相鄰的2*2個cell組成一個block,将它們的特征向量串聯起來得到一個36維的特征向量,該向量即為HOG特征向量。block在全圖的掃描步長為1個cell,也cell是block間共享的,一個cell并不唯一屬于一個block。

是以,HOG特征向量便是一個block所描述的梯度特征向量。

繼續閱讀