1. 程式人生 > >利用Hog特徵和SVM分類器進行行人檢測

利用Hog特徵和SVM分類器進行行人檢測

https://blog.csdn.net/qianqing13579/article/details/46509037


梯度直方圖特徵(HOG) 是一種對影象區域性重疊區域的密集型描述符它通過計算區域性區域的梯度方向直方圖來構成特徵。Hog特徵結合SVM分類器已經被廣泛應用於影象識別中,尤其在行人檢測中獲得了極大的成功。需要提醒的是,HOG+SVM進行行人檢測的方法是法國研究人員Dalal2005CVPR上提出的,而如今雖然有很多行人檢測演算法不斷提出,但基本都是以HOG+SVM的思路為主。

        HOG特徵是一種區域性區域描述符

,它通過計算區域性區域上的梯度方向直方圖來構成人體特徵,能夠很好地描述人體的邊緣。它對光照變化和小量的偏移不敏感。

影象中畫素點(x,y)的梯度為

    Dalal提出的Hog特徵提取的過程:把樣本影象分割為若干個畫素的單元(cell),把梯度方向平均劃分為9個區間(bin),在每個單元裡面對所有畫素的梯度方向在各個方向區間進行直方圖統計,得到一個9維的特徵向量,每相鄰的4個單元構成一個塊(block),把一個塊內的特徵向量聯起來得到36維的特徵向量,用塊對樣本影象進行掃描,掃描步長為一個單元。最後將所有塊的特徵串聯起來,就得到了人體的特徵。例如,對於

64*128的影象而言,每2*2的單元(16*16的畫素)構成一個塊,每個塊內有4*9=36個特徵,以8個畫素為步長,那麼,水平方向將有7個掃描視窗,垂直方向將有15個掃描視窗。也就是說,64*128的圖片,總共有36*7*15=3780個特徵。

在行人檢測過程中,除了上面提到的HOG特徵提取過程,還包括彩圖轉灰度,亮度校正等步驟。總結一下,在行人檢測中,HOG特徵計算的步驟:

(1)將輸入的彩圖轉換為灰度圖;

(2)採用Gamma校正法對輸入影象進行顏色空間的標準化(歸一化);   目的是調節影象的對比度,降低影象區域性的陰影和光照變化所造成的影響,同時可以抑制噪音的干擾;

(3)計算梯度;主要是為了捕獲輪廓資訊,同時進一步弱化光照的干擾。

(4)將梯度投影到單元的梯度方向;目的是為區域性影象區域提供一個編碼,

(5)將所有單元格在塊上進行歸一化;歸一化能夠更進一步對光照、陰影和邊緣進行壓縮,通常,每個單元格由多個不同的塊共享,但它的歸一化是基於不同塊的,所以計算結果也不一樣。因此,一個單元格的特徵會以不同的結果多次出現在最後的向量中。我們將歸一化之後的塊描述符就稱之為HOG描述符。

(6)收集得到檢測空間所有塊的HOG特徵;該步驟就是將檢測視窗中所有重疊的塊進行HOG特徵的收集,並將它們結合成最終的特徵向量供分類使用。


支援向量機SVM是從線性可分情況下的最優分類面提出的。所謂最優分類,就是要求分類線不但能夠將兩類無錯誤的分開,而且兩類之間的分類間隔最大,前者是保證經驗風險最小(為0),而通過後面的討論我們看到,使分類間隔最大實際上就是使得推廣性中的置信範圍最小。推廣到高維空間,最優分類線就成為最優分類面。

    支援向量機是利用分類間隔的思想進行訓練的,它依賴於對資料的預處理,即,在更高維的空間表達原始模式。通過適當的到一個足夠高維的非線性對映,分別屬於兩類的原始資料就能夠被一個超平面來分隔。如下圖所示:

        

 

空心點和實心點分別代表兩個不同的類,H為將兩類沒有錯誤的區分開的分類面,同時,它也是一個最優的分類面。原因正如前面所述,當以H為分類面時,分類間隔最大,誤差最小。而這裡的之間的距離margin就是兩類之間的分類間隔。支援向量機將資料從原始空間對映到高維空間的目的就是找到一個最優的分類面從而使得分類間隔margin最大。而那些定義最優分類超平面的訓練樣本,也就是上圖中過的空心點和實心點,就是支援向量機理論中所說的支援向量。顯然,所謂支援向量其實就是最難被分類的那些向量,然而,從另一個角度來看,它們同時也是對求解分類任務最有價值的模式。

    支援向量機的基本思想可以概括為:首先通過非線性變換將輸入空間變換到一個高維空間,然後在這個新空間中求取最優線性分類面,而這種非線性變換是通過定義適當的內積函式來實現的。支援向量機求得的分類函式形式上類似於一個神經網路,其輸出是若干中間層節點的線性組合,而每一箇中間層節點對應於輸入樣本與一個支援向量的內積,因此也被叫做支援向量網路。如下圖所示:

 

 

由於最終的判別函式中實際只包含於支援向量的內積和求和,因此判別分類的計算複雜度取決於支援向量的個數。

不難發現,支援向量機作為統計學習理論中的經典代表使用了與傳統方法完全不同的思路,即不是像傳統方法那樣首先試圖將原輸入空間降維(即特徵選擇和特徵變換),而是設法將輸入空間升維,以求在高維空間中問題變得線性可分或接近線性可分。因為升維知識改變了內積運算,並沒有使得演算法的複雜性隨著維數的增加而增加,而且在高維空間中的推廣能力並不受到維數的影響。       

    另外,需要說明的是,支援向量機採用不同的內積函式,將導致不同的支援向量機演算法

目前得到研究的內積函式主要有以下三類:

(1)採用多項式形式的內積函式;

(2)採用核函式形式的內積函式;

    (3)採用S形函式作為內積函式;