天天看點

HOG(Histogram of Oriented Gradient)方法簡介

1.介紹 HOG(Histogram of Oriented Gradient)是2005年CVPR會議上,法國國家計算機科學及自動控制研究所的Dalal等人提出的一種解決人體目标檢測的圖像描述子,該方法使用梯度方向直方圖(Histogram of Oriented Gradients,簡稱HOG)特征來表達人體,提取人體的外形資訊和運動資訊,形成豐富的特征集。

2.生成過程

HOG(Histogram of Oriented Gradient)方法簡介

1)圖像歸一化 歸一化圖像的主要目的是提高檢測器對光照的魯棒性,因為實際的人體目标可能出現的各種不同的場合,檢測器,必須對光照不太敏感才會有好的效果。

2)利用一階微分計算圖像梯度 圖像平滑  對于灰階圖像,一般為了去除噪點,是以會先利用離散高斯平滑模闆進行平滑:高斯函數在不同平滑的尺度下進行對灰階圖像進行平滑操作,Dalal等實驗表明在下,人體檢測效果最佳(即不做高斯平滑),使得錯誤率縮小了約一倍。不做平滑操作,可能原因:圖像時基于邊緣的,平滑會降低邊緣資訊的對比度,進而減少圖像中的信号資訊。 梯度法求圖像梯度 一階微分處理一般對灰階階梯有較強的響應   一階微分: 

HOG(Histogram of Oriented Gradient)方法簡介

對于函數f(x,y),在其坐标(x,y)上的梯度是通過如下二維列向量定義的:  這個向量的模值由下式給出:  

HOG(Histogram of Oriented Gradient)方法簡介
HOG(Histogram of Oriented Gradient)方法簡介

因為模值的計算開銷比較大,一般可以按如下公式近似求解:

HOG(Histogram of Oriented Gradient)方法簡介

Dalal等人利用許多一階微分模闆進行求梯度近似值,但在實驗中表明模闆[-1,0,1]效果最好。 采用模闆[-1,0,1]為例計算圖像梯度以及方向,通過梯度模闆計算水準和垂直方向的梯度分别如下:

HOG(Histogram of Oriented Gradient)方法簡介

其中,分别表示該像素點的水準,垂直梯度值。計算該像素點的梯度值(梯度強度)以及梯度方向:

HOG(Histogram of Oriented Gradient)方法簡介

對于梯度方向的範圍限定,一般采用無符号的範圍,故梯度方向可表示為:  

HOG(Histogram of Oriented Gradient)方法簡介

3)基于梯度幅值的方向權重投影 HOG結構 通常使用的HOG結構大緻有三種:矩形HOG(簡稱為R-HOG),圓形HOG和中心環繞HOG。它們的機關都是Block(即塊)。Dalal的試驗證明矩形HOG和圓形HOG的檢測效果基本一緻,而環繞形HOG效果相對差一些。

HOG(Histogram of Oriented Gradient)方法簡介

矩形HOG塊的劃分: 一般一個塊(Block)都由若幹單元(Cell)組成,一個單元都有如幹個像素點組成。

HOG(Histogram of Oriented Gradient)方法簡介
HOG(Histogram of Oriented Gradient)方法簡介

在每個Cell中有獨立做梯度方向統計,進而以梯度方向為橫軸的的直方圖,前面我們已經提到過,梯度方向可取0度到180度或0度~360度,但dalal實驗表明,對于人體目标檢測0度~180度這種忽略度數正負級的方向範圍能夠取得更好的結果。然後又将這個梯度分布平均分成 個方向角度(orientation bins),每個方向角度範圍都會對應一個直方柱。

HOG(Histogram of Oriented Gradient)方法簡介

根據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 of Oriented Gradient)方法簡介

在人體檢測系統中進行HOG計算時一般使用L2-norm,Dalal的文章也驗證了對于人體檢測系統使用L2-norm的時候效果最好。

5)得出HOG最終的特征向量

HOG(Histogram of Oriented Gradient)方法簡介

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的缺點: 描述子生成過程冗長,導緻速度慢,實時性差; 很難處理遮擋問題。 由于梯度的性質,該描述子對噪點相當敏感

繼續閱讀