方向梯度直方圖HOG:Histograms of Oriented Gradients 及matlab源碼

本文內容轉載自:http://hi.baidu.com/hillhaw123/item/abeffb87b2edfddad1f8cd1b

 

方向梯度直方圖(Histogram of Oriented Gradient, HOG)特徵是一種在計算機視覺和圖像處理中用來進行物體檢測的特徵描述子。此方法使用了圖像的本身的梯度方向特徵,類似於邊緣方向直方圖方法,SIFT描述子,和上下文形狀方法,但其特徵在於其在一個網格密集的大小統一的方格單元上計算,而且爲了提高精確度使用了重疊的局部對比度歸一化的方法。

其作者Navneet Dalal和Bill Triggs是法國國家計算機技術和控制研究所(INRIA),他們在2005年的CVPR上首先發表了描述方向梯度直方圖的論文。在這篇論文裏,他們着重將他們的算法放在靜態圖像的行人檢測問題上,之後他們也將他們的實驗擴展到了視頻中的人的檢測的和靜態圖像中的車輛和常見動物的檢測。

方向梯度直方圖特徵的核心思想是一幅圖像中的物體的表象和形狀可以被梯度或邊緣的方向密度分佈很好地描述。其實現方法是先將圖像分成小的叫做方格單元連通區域;然後採集方格單元中各像素點的梯度方向或邊緣方向直方圖;最後把這些直方圖組合起來就可以構成特徵描述子。爲了提高精確度,還可以把這些局部直方圖在圖像的更大的區間(block)中進行對比度歸一化,此方法通過先計算各直方圖在這個區間(block)中的密度,然後根據這個密度值對區間中的各個方格單元做歸一化。通過這個歸一化後,能對光照變化和陰影獲得更好的穩定性。

與其他的特徵描述方法相比,HOG有很多優點。首先,由於HOG是在圖像的局部方格單元上操作,所以它對圖像幾何的和光學的形變都能保持很好的不變性,這兩種形變只會出現在更大的空間領域上。其次,在粗的空域抽樣、精細的方向抽樣以及較強的局部光學歸一化等條件下,只要行人大體上能夠保持直立的姿勢,可以容許行人有一些細微的肢體動作,這些細微的動作可以被忽略而不影響檢測效果。因此HOG特徵是特別適合於做圖像中的人體檢測的。

接下來將具體介紹HOG特徵的提取過程,下圖1給出了完整的HOG特徵提取算法和過程。圖1如下:

HOG提取過程中的核心步驟可以簡單歸納如下:

(1) 計算圖像橫座標和縱座標方向的梯度,並據此計算每個像素位置的梯度方向值;

(2) 把圖像按照空間位置均勻劃分小塊,即圖2中的cell,在cell內按照既定的量化標準統計梯度方向的直方圖,得到該cell對應的特徵向量,然後再把圖2中一個block內所有cell的特徵向量串聯起來便得到該block的HOG特徵。

圖2如下:

HOG特徵是由一個矩形block中的多個矩形cell的方向梯度直方圖串聯得到,其實block和cell都可以不是矩形,只不過矩形是較常用的一種,這種HOG特徵可稱之爲矩形HOG,實際上還存在圓形HOG和中心環繞HOG,當然我們考慮的都是矩形的。

矩形HOG使用重複遍歷的矩形cell網格,Block塊是由密集重複遍歷的cell組成的,每一個塊內獨立進行特徵向量歸一化,以減少光照的影響。一般每個block由m×m個cell網格組成,而cell由n×n個像素組成。並且每個cell的梯度方向分成z個方向塊,使用cell中的梯度方向和幅度對z個方向進行加權投影,最後每個cell產生z維的特徵向量。Dalal等用於人體檢測的HOG選取z=9,即將360度分成9個方向塊,繼而用於對方向梯度進行投影,如下圖:

 

每個cell在按上圖劃分進行投影后,便得到一個z維的特徵向量,block塊中的所有cell對應的特徵向量串聯起來便構成了HOG特徵。

舉個例子:對於40*40的圖像,設定每個Block有2*2=4個cell,每個cell的大小爲8*8,那麼就有4*4=16個Block,這樣一來40*40的圖像對應一個HOG特徵,其維度爲 16*4*9=576.

 

 

注:

Matlab源碼下載:http://www.mathworks.com/matlabcentral/fileexchange/28689-hog-descriptor-for-matlab

 

 

發佈了19 篇原創文章 · 獲贊 9 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章