一 寫在前面
有一個(gè)月沒更博客了,捂臉 o( ̄= ̄)d
端午回家休息了幾天,6月要加油~
回到正文,HOG是很經(jīng)典的一種圖像特征提取方法,尤其是在行人識(shí)別領(lǐng)域被應(yīng)用的很多。雖然文章是2005年發(fā)表在CVPR上的,但近十年來(lái)還沒有被淹沒的文章真的是很值得閱讀的研究成果了。
- 文章出處:CVPR2005
- 文章鏈接:https://lear.inrialpes.fr/people/triggs/pubs/Dalal-cvpr05.pdf
二 基本介紹
- 行人檢測(cè)任務(wù)由于背景復(fù)雜等特點(diǎn),本身是一個(gè)很難的任務(wù);
- 所以我們需要魯棒的特惠總能表示方法;
- 文章提出的HOG性能比之前的wavelets,SIFT等效果都要好很多;
- 文章提出的HOG方法在MIT的杏仁數(shù)據(jù)集上能達(dá)到很好的效果,因此文章還貢獻(xiàn)了一個(gè)由1800個(gè)行人圖像的數(shù)據(jù)集。
三 HOG特征提取方法
key idea:
局部物體的形狀和外觀可以通過局部梯度或者邊緣的密度分布所表示。
主要步驟:

上圖為論文中提供的圖,個(gè)人覺得我在參考資料中列出的那篇博客中給出的圖可能更好理解一些。

- 首先是對(duì)輸入圖進(jìn)行灰度處理和gamma矯正;
- 計(jì)算圖像中每個(gè)像素的梯度大小和梯度方向;
- 為每個(gè)cell中的梯度構(gòu)建梯度直方圖;
- 以block(比cell大)為單位獲取特征;
- 獲取整個(gè)圖像的梯度直方圖得到HOG特征;
- 最后通過一個(gè)線性SVM判斷是否為行人;
具體細(xì)節(jié):
關(guān)于每一個(gè)過程的詳細(xì)解釋還是在這篇博客中已經(jīng)寫得很清楚了,這里就不再搬運(yùn)了。
四 行人檢測(cè)
文章中數(shù)據(jù)集的圖像大小均為:64*128, block大小為16x16, block stride為8x8,cell size為8x8,bins=9(直方圖等級(jí)數(shù));
- 塊個(gè)數(shù)為:
((64-16)/8+1) * ((128-16)/8 +1) = 105 - 每個(gè)塊內(nèi)cell個(gè)數(shù);
(16*16)/(8*8)=4 - 每張圖特征維度:
105*4*9=3780
獲取到每張圖的特征維度后,再用線性SVM訓(xùn)練分類器即可。
下圖為作者而給出的示例圖:

- 圖a: 訓(xùn)練樣本的平均梯度圖;
- 圖b:以這個(gè)像素為中心的這個(gè)block塊中最大的正SVM值;
- 圖c:以這個(gè)像素為中心的這個(gè)block塊中最大的負(fù)SVM值;
- 圖d:測(cè)試圖像
- 圖e:圖d對(duì)應(yīng)的R-HOG特征
- 圖 f:將圖e中的R-HOG特征乘上圖b中的權(quán)值后得到的R-HOG圖像;展現(xiàn)了構(gòu)成人體的主要輪廓;
- 圖g:將圖e中的R-HOG特征乘上圖c中的權(quán)值后得到的R-HOG圖像;展現(xiàn)了人體輪廓內(nèi)部的梯度對(duì)于行人識(shí)別來(lái)說(shuō)大多是negative的線索。
五 參考資料
- https://blog.csdn.net/zouxy09/article/details/7929348
- https://blog.csdn.net/songzitea/article/details/17025149
這兩篇博客寫的都很好,推薦閱讀一波。