1. 程式人生 > >方向梯度直方圖(HOG,Histogram of Gradient)

方向梯度直方圖(HOG,Histogram of Gradient)

1.介紹 HOG(Histogram of Oriented Gradient) 2005 CVPR 會議上,法國國家電腦科學及自動控制研究所的Dalal等人提出的一種解決人體目標檢測的影象描述子,該方法使用 梯度方向直方圖 (Histogram of Oriented Gradients,簡稱HOG)特徵來表達人體,提取人體的外形資訊和運動資訊,形成豐富的特徵集。
2.生成過程 方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇
1)影象歸一化 歸一化影象的主要目的是提高檢測器對光照的魯棒性,因為實際的人體目標可能出現的各種不同的場合,檢測器,必須對光照不太敏感才會有好的效果。
2)利用一階微分計算影象梯度 影象平滑  對於灰度影象,一般為了去除噪點,所以會先利用離散高斯平滑模板進行平滑:高斯函式在不同平滑的尺度下進行對灰度影象進行平滑操作,Dalal等實驗表明在下,人體檢測效果最佳(即不做高斯平滑),使得錯誤率縮小了約一倍。不做平滑操作,可能原因:影象時基於邊緣的,平滑會降低邊緣資訊的對比度,從而減少影象中的訊號資訊。 梯度法求影象梯度
一階微分處理一般對灰度階梯有較強的響應   一階微分:  方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇


對於函式f(x,y),在其座標(x,y)上的梯度是通過如下二維列向量定義的:  這個向量的模值由下式給出:  
方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇

方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇

因為模值的計算開銷比較大,一般可以按如下公式近似求解: 方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇 Dalal等人利用許多一階微分模板進行求梯度近似值,但在實驗中表明模板[-1,0,1]效果最好。 採用模板[-1,0,1]為例計算影象梯度以及方向,通過梯度模板計算水平和垂直方向的梯度分別如下: 方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇
其中,分別表示該畫素點的水平,垂直梯度值。計算該 畫素點的梯度值(梯度強度)以及梯度方向方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇 對於梯度方向的範圍限定,一般採用無符號的範圍,故梯度方向可表示為:   方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇

3)基於梯度幅值的方向權重投影 HOG結構 通常使用的HOG結構大致有三種:矩形HOG(簡稱為R-HOG),圓形HOG和中心環繞HOG。它們的單位都是Block(即塊)。Dalal的試驗證明矩形HOG和圓形HOG的檢測效果基本一致,而環繞形HOG效果相對差一些。 方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇 矩形HOG塊的劃分: 一般一個塊(Block)都由若干單元(Cell)組成,一個單元都有如干個畫素點組成。 方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇
方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇 在每個Cell中有獨立做梯度方向統計,從而以梯度方向為橫軸的的直方圖,前面我們已經提到過,梯度方向可取0度到180度或0度~360度,但dalal實驗表明,對於人體目標檢測0度~180度這種忽略度數正負級的方向範圍能夠取得更好的結果。然後又將這個梯度分佈平均分成 個方向角度(orientation bins),每個方向角度範圍都會對應一個直方柱。 方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇 根據Dalal等人實驗,在人體目標檢測中,在無符號方向角度範圍並將其平均分成9份(bins)能取得最好的效果,當bin的數目繼續增大效果改變不明顯,故一般在人體目標檢測中使用bin數目為9範圍0~180度的度量方式。 Block中各個引數的最終選取: 對於人體物件檢測,塊的大小為3×3個單元格,單元格的大小為6×6個象素時,檢測效果是最好的,錯誤率約為10%左右。塊的大小為2×2個單元格,單元格大小為8×8個象素時,也相差無幾。6-8個象素寬的單元格,2-3個單元格寬的塊,其錯誤率都在最低的一個平面上。塊的尺寸太大時標準化的作用被削弱了從而導致錯誤率上升,而如果塊的尺寸太小時,有用的資訊反而會被過濾掉。 在實際應用中,在Block和Cell劃分之後,對於得到各個像區域中,有時候還會為了進行一次高斯平滑,但是對於人體目標檢測等問題,該步驟往往可以忽略,實際應用效果不大,估計在主要還是去除區域中噪點,因為梯度對於噪點相當敏感。 對梯度方向的投影權重方式的選取:  對於梯度方向的加權投影,一般都採用一個權重投影函式,它可以是畫素點的梯度幅值,梯度幅值的平方根或梯度幅值的平方,甚至可以使梯度幅值的省略形式,它們都能夠一定程度上反應出畫素上一定的邊緣資訊。根據Dalal等人論文的測試結果,採用梯度幅值量級本身得到的檢測效果最佳,使用量級的平方根會輕微降低檢測結果,而使用二值的邊緣權值表示會嚴重降低效果(約為5%個單位10-4FPPW(False Positives Per Window))。 4)HOG特徵向量歸一化 對block塊內的HOG特徵向量進行歸一化。對block塊內特徵向量的歸一化主要是為了使特徵向量空間對光照,陰影和邊緣變化具有魯棒性。還有歸一化是針對每一個block進行的,一般採用的歸一化函式有以下四種: 方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇在人體檢測系統中進行HOG計算時一般使用L2-norm,Dalal的文章也驗證了對於人體檢測系統使用L2-norm的時候效果最好。
5)得出HOG最終的特徵向量 方向梯度直方圖(HOG,Histogram <wbr>of <wbr>Gradient)學習筆記二 <wbr>HOG正篇
3.HOG的應用: 主要用在object detection 領域,特別是行人檢測,智慧交通系統,當然也有文章提到把HOG用在手勢識別,人臉識別等方面。
4.HOG與SIFT區別 HOG和SIFT都屬於描述子,以及由於在具體操作上有很多相似的步驟,所以致使很多人誤認為HOG是SIFT的一種,其實兩者在使用目的和具體處理細節上是有很大的區別的。HOG與SIFT的主要區別如下: ① SIFT是基於關鍵點特徵向量的描述。 ② HOG是將影象均勻的分成相鄰的小塊,然後在所有的小塊內統計梯度直方圖。 ③ SIFT需要對影象尺度空間下對畫素求極值點,而HOG中不需要。 ④ SIFT一般有兩大步驟,第一個步驟是對影象提取特徵點,而HOG不會對影象提取特徵點。
5.HOG的優點: HOG表示的是邊緣(梯度)的結構特徵,因此可以描述區域性的形狀資訊; 位置和方向空間的量化一定程度上可以抑制平移和旋轉帶來的影響; 採取在區域性區域歸一化直方圖,可以部分抵消光照變化帶來的影響。 由於一定程度忽略了光照顏色對影象造成的影響,使得影象所需要的表徵資料的維度降低了。 而且由於它這種分塊分單元的處理方法,也使得影象區域性畫素點之間的關係可以很好得到的表徵。
6.HOG的缺點: 描述子生成過程冗長,導致速度慢,實時性差; 很難處理遮擋問題。 由於梯度的性質,該描述子對噪點相當敏感
此文屬於轉載加整理,參考地址已找不到,請見諒