HOG算法總結


1.HOG特征提取所針對的圖像的尺寸是固定的。輸入的圖像應首先resize到這個尺寸。

2.尺寸的划分3個等級:window,block,cell  

  window即輸入的需要提取特征的圖片大小。然后將window划分為眾多block,這些block之間有相互重疊的部分。

  每一個block又划分為多個cell,cell之間緊鄰且不重疊。block沿着水平和垂直方向滑動,按照固定的步長進行滑動,

  最后就形成了block相互之間的重疊。

  常見的尺寸:window:64x128;  block:16x16;  cell:8x8; step:8

3.HOG特征:

  HOG特征也是基於梯度的,首先計算出輸入圖像中各個像素點的梯度(大小和方向),然后就需要進行一定的處理以

  保證特征的魯棒性。對每個cell中的所有像素點的梯度進行統計,統計出一個梯度直方圖,(就是不關心具體每個點的

  梯度而是關心在此cell范圍內的點的梯度的分布)。然后將一個block中各個cell得到的梯度直方圖數據(一維向量)串

  接起來,就得到了該block的特征,但是還要對該向量進行歸一化,(緩解局部光照變化的影響,有時還需要剔除噪聲

  點然后進行第二次歸一化)。最后將window中所有的block的特征串聯起來就得到了輸入圖像的HOG特征。

4.HOG特征總數的計算:

  按如下尺寸:window:64x128;  block:16x16;  cell:8x8; step:8;  num_of_bin:9

  block總數:(64/8 - 1)*(128/8 - 1)   {即: (window_width / step -1)*(window_height / step -1)}

  blcok中特征數:9 * (16/8) * (16/8)  {即: num_of_bin * (block_width/cell_width)*(block_height/cell_height)}

  總特征數:block總數 × block中特征數 = (7×15) × (9×2×2) = 3780

 

5.線性插值:

  整個特征都是基於像素點的梯度。在統計梯度直方圖的時候,按照梯度方向找到直方圖中對應的bin,按照梯度的大小

  對相應的bin進行累加。所以整個線性插值的過程就是如何分配每個像素梯度的大小,也就是處理好分配權值的問題。

  權值的分配分為:梯度直方圖中相鄰方向bin之間的插值 和 block空間尺度中鄰接的像素點之間的插值 以及 整個blcok

  中類似於高斯形式的權值分配(突出中間區域的重要性)。

  權值的分配比例都是根據距離比例進行的,

  具體可以參考這篇博客( http://hi.baidu.com/susongzhi/item/3a3c758d7ff5cbdc5e0ec172 )

 

  至此所有的權值分配都計算出來之后,將像素的梯度大小按照這些權值分配到對應的直方圖的bin中就行了。

 

  具體還可以參考這些比較全面的博客(感謝他們的分享):

  http://www.cnblogs.com/tornadomeet/archive/2012/08/15/2640754.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM