HOG演算法 行人檢測

2021-07-22 09:09:32 字數 1803 閱讀 7550

hog(

histogram of oriented gridients)是2023年提出描述行人特徵的演算法,在當年取得了突破性的進展,處理在行人檢測領域,在其他識別方面hog也取得了不錯的效果。hog通過計算和統計影象區域性區域的梯度方向直方圖來形成描述特徵

在一張影象中,人與外界存在乙個邊緣,通過梯度的方向和大小就可以對邊緣進行描述,進而對待檢測物體進行特徵描述

2.hog演算法步驟

(1)首先將影象轉換為灰度影象

(2)為了克服光照不均等情況,對影象進行r變換,調節影象的對比度

(3)計算影象的梯度

x和y方向的梯度公式是:

最常用的方法是:首先用

[-1,0,1]

梯度運算元對原影象做卷積運算,得到

x方向(水平方向,以向右為正方向)的梯度分量

gradscalx

,然後用

[1,0,-1]t

梯度運算元對原影象做卷積運算,得到

y方向(豎直方向,以向上為正方向)的梯度分量

gradscaly

。作者也比較了其他的模板,但是效果不好,最後作者認為,越是簡單的模板,效果越好。

計算梯度幅值和大小

(4)作者對檢測影象進行了3層的劃分,首先規定了cell(8pix*8pix),  block(2cell*2cell)    一張128*64影象的影象一共可以形成105個block(這部分稍後再講),hog對的劃分順序為:畫素--->cell---->block----->影象,首先來看一下乙個cell是如何對梯度特徵進行直方圖描述的

在第三步中我們已經完成了對梯度幅值和方向的計算,現在需要設計乙個收集器(bin)來對幅值和方向進行統計,

這個統計範圍是以cell為單位的,我們將360度的梯度方向劃分為9個方向,bin就是來統計cell中這9個梯度方向出現的不同頻次。比如畫素在0—20度範圍內,在對應的bin單元+1(這一步類似我們選舉班委成員投票一樣,出現一次在黑板上該名字下面的正子就多寫一筆)。梯度的幅值相當於加權,就是用來說明畫素的這個方向所佔的權重,幅值越大則改畫素的梯度方向所佔的權重越大(這就像選舉班委成員投票中,老師一票頂兩票一樣),也就是說幅值越大,話語權就越大。統計完乙個cell內的梯度幅值和方向後既完成了乙個bin的收集。

(5)hog中乙個block有四個(2*2)cell組成,乙個cell有9維的bin,那麼,乙個block=4*9=36維特徵。對著36維特徵進行歸一化操作。

(6)一張影象有多少個block呢,假設影象大小128*64,步長為8,block是在影象上以一定的步長滑動來進行提取的,block大小是16*16畫素=2*2cell,

那麼以步長為8畫素進行滑動可以產生

((64-16)/8+1)*((128-16)/8+1) = 7*15 =105個block。

(7)一張影象有多少維呢?105個block,乙個block有4個cell,乙個cell有9維特徵,總特徵維度=105*4*9=3780維。

行人檢測 HOG運算元

梯度直方圖特徵 hog 是一種對影象區域性重疊區域的密集型描述符 它通過計算區域性區域的梯度方向直方圖來構成特徵。hog特徵結合 svm分類器已經被廣泛應用於影象識別中,尤其在行人檢測中獲得了極大的成功。需要提醒的是,hog svm 進行行人檢測的方法是法國研究人員 dalal 在2005 的cvp...

基於Hog特徵的行人檢測

1 先建立相應的txt檔案 f pedestrian image 00000101 0.png f pedestrian image 00000105 0.png f pedestrian image 00000108 0.png f pedestrian image 00000110 0.png ...

OpenCV 基於HOG特徵的行人檢測

opencv中提供了hog的行人檢測 pedestrain detection 類。cv hogdescriptor類的建構函式的各引數的定義 cpp view plain copy cv wrap hogdescriptor winsize 64,128 detect window blocksi...