特征提取——HOG方向梯直方图
1、簡介
HOG(Histogram of Oriented Gridients的簡寫)特征檢測算法,最早是由法國研究員Dalal等在CVPR-2005上提出來的,一種解決人體目標檢測的圖像描述子,是一種用于表征圖像局部梯度方向和梯度強度分布特性的描述符。其主要思想是:在邊緣具體位置未知的情況下,邊緣方向的分布也可以很好的表示行人目標的外形輪廓。
2、檢測步驟
HOG特征檢測算法的幾個步驟:顏色空間歸一化—>梯度計算—>梯度方向直方圖—>重疊塊直方圖歸一化—>HOG特征。
2.1、顏色空間歸一化
由于圖像的采集環境、裝置等因素,采集到的人臉圖像效果可能不是很好,容易出現誤檢或漏檢的情況,所以需要對采集到的人臉進行圖像預處理,主要是處理光線太暗或太強的情況,這里有兩次處理:圖像灰度化、Gamma校正。
①圖像灰度化
對于彩色圖像,將RGB分量轉化成灰度圖像,其轉化公式為:
②Gamma校正
在圖像照度不均勻的情況下,可以通過Gamma校正,將圖像整體亮度提高或降低。在實際中可以采用兩種不同的方式進行Gamma標準化,平方根、對數法。這里我們采用平方根的辦法,公式如下(其中γ=0.5):
2.2、梯度計算
對經過顏色空間歸一化后的圖像,求取其梯度及梯度方向。分別在水平和垂直方向進行計算,梯度算子為:
2.3、梯度方向直方圖
將圖像劃分成若干個cells(單元),8x8=64個像素為一個cell,相鄰的cell之間不重疊。在每個cell內統計梯度方向直方圖,將所有梯度方向劃分為9個bin(即9維特征向量),作為直方圖的橫軸,角度范圍所對應的梯度值累加值作為直方圖縱軸,每個bin的角度范圍如下。
2.4、重疊塊直方圖歸一化
HOG的圖像分割策略,一般來說有overlap和non-overlap兩種。overlap指的是分割出的區塊(patch)互相交疊,有重合的區域。non-overlap指的是區塊不交疊,沒有重合的區域。這兩種策略各有各的好處。先說overlap,這種分割方式可以防止對一些物體的切割,以眼睛為例,如果分割的時候正好把眼睛從中間切割并且分到了兩個patch中,提取完HOG特征之后,這會影響接下來的分類效果,但是如果兩個patch之間overlap,那么至少在一個patch會有完整的眼睛。overlap的缺點是計算量大,因為重疊區域的像素需要重復計算。再說non-overlap,缺點就是上面提到的,有時會將一個連續的物體切割開,得到不太“好”的HOG特征,優點是計算量小,尤其是與Pyramid(金字塔)結合時,這個優點更為明顯。
假設有一幅圖像大小為220x310,將其劃分成若干個8x8的cells,顯然220÷8=27.5、310÷8=38.75不是整數,也就是說劃分之后依然還有多余像素不能構成cell。處理辦法是將圖像縮放成能被8整除的長寬(如216x304),再劃分。216÷8=27,304÷8=38,因此,216x304的圖像可以得到27x38個cells,沒有重疊。
由于圖像中光照情況和背景的變化多樣,梯度值的變化范圍會比較大,因而良好的特征標準化對于檢測率的提高相當重要。標準化的方法多種多樣,大多數的都是將celll放在block中,然后標準化每個block。
以上述縮放后的圖像為例,共得到27x38個cell,也就是將圖像劃分成了27x38個單元;將上下左右相鄰的2x2個cells當做一個block整體,如下所示(為方便觀察,每個顏色框故意錯開了一點),黑色的8x8像素為一個cell,紅、藍、黃、粉紅、綠框都是一個block,即每個框內2x2的cell組成一個block。故27x38個cell可劃分成26x37個block,每個block為16x16像素。相鄰block之間是有重疊的,這樣有效的利用了相鄰像素信息,對檢測結果有很大的幫助。
接下分別對每個block進行標準化,一個block內有4個cell,每個cell含9維特征向量,故每個block就由4x9=36維特征向量來表征。
由于L2-norm簡單且在檢測中效果相對較好,故一般采用它。
經過上述對有重疊部分block的直方圖歸一化之后,將所有block的特征向量都組合起來,則形成26x37x36=34632維特征向量,這就是HOG特征,這個特征向量就可以用來表征整個圖像了。
實際上,在運用的時候,我們通常是選取一幅圖像中的一個窗口來進行特征提取,依然以上述220X310大小圖像為例,經過縮放處理后為216x304,但并不直接提取整個圖像的HOG特征,而是用一個固定大小的窗口在圖像上滑動,滑動的間隔為8個像素,opencv中默認的窗口大小為128x64(高128,寬64),即有(128÷8)x(64÷8)=16x8個cell,也即有15x7個block,這樣一來一幅圖像就可以取到(27-16)x(38-8)=11x30=330個窗口。現在提取每個窗口的HOG特征,則可得到105x36=3780維HOG特征向量。
將這330個3780維的HOG特征當做測試樣本,用支持向量機(SVM)分類器來判別出,這些窗口的HOG特征是否有行人,有行人的用矩形框標記起來。HOG行人特征及所對應的SVM分類器的參數,在opencv中已經訓練好了,我們只需要得到HOG特征,然后調用SVM即可得到判別結果。
參考:
http://blog.csdn.net/hujingshuang/article/details/47337707/
http://blog.sina.com.cn/s/blog_60e6e3d50101bkpn.html
https://www.cnblogs.com/hrlnw/archive/2013/08/06/2826651.html
總結
以上是生活随笔為你收集整理的特征提取——HOG方向梯直方图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大升级!iQOO 12或支持200W有线
- 下一篇: 天上不会掉馅饼!12万的保时捷已下架 购