李勇澤,陳磊
(中國民航大學中歐航空工程師學院,天津 300300)
計算機視覺的目標檢測算法在近十年有了突飛猛進的發(fā)展,算法研究的重心從傳統(tǒng)的特征提取加分類器的模式,逐漸轉(zhuǎn)移到了特征提取與神經(jīng)網(wǎng)絡相結(jié)合的模式。然而,相比于神經(jīng)網(wǎng)絡,傳統(tǒng)算法所需的計算資源較少,因此,對于計算資源寶貴的嵌入式系統(tǒng)來說,傳統(tǒng)的目標檢測算法往往更加實用。在眾多的目標檢測算法中,方向梯度直方圖(Histogram of Orienta?tion Gradient,HOG)加支持向量機(Support Vector Ma?chine,SVM)分類器由于具有較好的檢測性能而倍受關注。
在訓練HOG-SVM算法時需要用到大量經(jīng)過標記的正、負樣本,而且一般都采用人工標記的方式獲取。這項工作需要耗費大量的人力,例如著名的PASCAL視覺目標分類數(shù)據(jù)集(The PASCAL Visual Object Class?es,PASCAL VOC)[1]在收集和標記PASCAL VOC 2008上花費了700小時。因此,研究訓練樣本數(shù)量對于目標檢測算法的影響,可以在一定程度上減少研究人員在收集和標注樣本上的花費,并且對目標檢測算法性能的比較上也具有一定的參考價值。
方向梯度直方圖(HOG)特征最早是由N.Nadal和B.Triggs在2005年提出[2],最早用于行人的檢測,后來推廣到對其他物體的檢測。相比于邊緣方向直方圖(Edge Orientation Histograms)、尺度不變特征變換匹配算法(Scale Invariant Feature Transform,SIFT)以及形狀上下文(Shape Contexts),HOG是在網(wǎng)格密集、大小統(tǒng)一的細胞單元上進行計算,為了提高性能,采用了重疊的局部對比度歸一化處理[3]。
HOG特征提取的基本流程如圖1所示:
圖1 HOG特征提取流程
本文使用PASCAL VOC 2012數(shù)據(jù)集[5]中的四個類別來訓練和測試算法,這四個類別分別是dog,cat,car,bird。提取HOG特征的步驟如下:
(1)將樣本集中的圖像裁剪并根據(jù)樣本類別縮放至固定大??;
(2)對圖像進行Gamma歸一化處理;
(3)計算圖像中每個像素點的梯度方向和梯度值。水平邊緣算子:[-1,0,1];垂直邊緣算子:[- 1,0,1]T,圖像中像素點(x,y)的梯度為[4]:
式(1)中,Gx(x ,y),Gy(x ,y),H(x ,y)分別表示輸入圖像中像素點(x ,y)處的水平方向梯度、垂直方向梯度和像素灰度值。像素點(x ,y)處的梯度幅值和梯度方向分別為:
HOG特征計算圖像梯度的方式有多種,使用不同的梯度算子對算法性能有一定影響。實驗表明,使用上式所示的簡單的梯度算子,得到的算法性能最好。
(4)將樣本圖像分成小的固定大小的單元格(cell),每個cell的大小為8×8像素。將cell中的梯度方向360度分成9個方向塊,用一個9維的直方圖來表示,對cell內(nèi)的每個像素,根據(jù)其梯度方向在直方圖中進行加權投票,用梯度幅值來表示權值的大小。
(5)將一定排列的 cell組成塊(block),并以block為單位統(tǒng)計梯度向量,歸一化梯度直方圖。Block從圖像左上角開始,以一個cell為步長移動,直至遍歷整個圖像。歸一化block中的特征向量即可得到block上的HOG特征。Block和block之間有重疊,因此能保證同一個cell的不同的歸一化結(jié)果(cell在不同的Block中被歸一化)能對最后的HOG向量都有貢獻,從而使得算法具有一定的平移不變性。歸一化能夠進一步地對光照、陰影和邊緣進行壓縮,使特征向量空間對光照,陰影和邊緣變化具有魯棒性。采用L2-范數(shù)方式歸一化可以極大地提高HOG的性能,如公式(5)所示:
(6)合并所有block中的梯度向量,形成最終的HOG特征。本文所用到的樣本檢測窗口大小和特征維度數(shù)量如表1所示:
表1 檢測窗口大小與HOG特征維度數(shù)量
常用于評價目標檢測算法性能的指標包括準確率(Accuracy)、精確率(Precision)、召回率(Recall)和 F1-Measure[6]。通常關注的類為正類,其他類為負類,算法在測試數(shù)據(jù)集上的預測或正確或不正確,4種情況出現(xiàn)的總數(shù)分別記作:
TP:將正類預測為正類數(shù);
FN:將正類預測為負類數(shù);
FP:將負類預測為正類數(shù);
TN:將負類預測為負類數(shù)。
準確率的定義為:
精確率的定義為:
召回率的定義為:
F1-Measure是精確率和召回率的調(diào)和均值,其定義為:
精確率和召回率都高時,F(xiàn)1的值也會高。
本文的實驗環(huán)境為:CPU為Intel Core i5-6200U處理器(主頻為2.30GHz),內(nèi)存為8GB,操作系統(tǒng)為Win?dows 10,使用的編程平臺為MATLAB 2016。
采集PASCAL VOC 2012數(shù)據(jù)集時,采用人工標注的方式標記出圖片中的目標,通過腳本程序讀取標注信息并裁剪出目標,然后縮放至表1所示大小,從而生成正樣本集,再從不包含目標的圖片中隨機截取表1所示大小的圖片,形成負樣本集。然后分別從正、負樣本集里隨機抽取樣本,生成訓練樣本集和測試樣本集,其中,每個測試集中包含1000個正樣本和數(shù)量相等的負樣本,訓練集中的正、負樣本數(shù)量相等,每個訓練集中的正樣本數(shù)量如表2所示:
本文設置四個類別,每個類別設置10個數(shù)量以指數(shù)增長的訓練樣本集,以此作為一組實驗。為了減少實驗中的偶然性誤差,重復進行了9組獨立實驗,以9組實驗結(jié)果的平均值作為最終的實驗結(jié)果。
根據(jù)式(6)和式(7)計算得到準確率和召回率隨訓練樣本數(shù)變化曲線如圖2所示:
表2 各訓練集正樣本數(shù)量
圖2 樣本數(shù)量-精確率與樣本數(shù)量-召回率曲線
上圖2的橫坐標為訓練所用的正樣本數(shù)量,注意橫坐標不是均勻增加的,而是取了以2為底的對數(shù)??v坐標分別為準確率和召回率??梢钥闯觯繕祟愋蛯OG-SVM算法的檢測性能有一定的影響。在樣本數(shù)量相同時,HOG-SVM算法對car這類目標的檢測效果最好,最高能達到75%的準確率和57%的召回率。對bird的檢測效果最差,在訓練樣本達到一定數(shù)量之后,也能達到60%以上的準確率和50%以上的召回率。對于同一類目標,在樣本數(shù)量較小時,檢測的準確率隨樣本數(shù)量的增加而增加。在樣本數(shù)量超過80時,檢測準確率和召回率都趨于穩(wěn)定,幾乎不再增加。
與2010年的PASCAL VOC競賽[7]的結(jié)果相比,在召回率相同的情況下,當訓練樣本數(shù)量達到80時,HOG-SVM算法對于這四類樣本的檢測準確率也能達到中等水平。
為了更深入地分析,本文計算出了不同組實驗結(jié)果的F1值及其方差,如圖3所示??梢园l(fā)現(xiàn),F(xiàn)1出現(xiàn)與準確率和召回率同樣的趨勢,即當樣本數(shù)量達到80之后,F(xiàn)1隨訓練樣本數(shù)量增加的速度變慢且趨于穩(wěn)定。F1的方差也隨訓練樣本數(shù)量增加而減小,且在訓練樣本數(shù)量達到80之后下降到一個極小的值并趨于穩(wěn)定。說明在訓練樣本數(shù)量達到80之后,各組實驗的差異性變得極小且HOG-SVM算法的檢測性能趨于穩(wěn)定。
圖3 樣本數(shù)量-F1值方差與樣本數(shù)量-F1曲線
針對目標檢測算法獲取訓練樣本成本較高的問題,本文對HOG-SVM目標檢測算法檢測性能與訓練樣本數(shù)量的關系進行研究。通過一系列實驗發(fā)現(xiàn),對于同一類別的目標,隨著訓練樣本數(shù)量的增加,算法分類準確率和召回率都有一定的增加,當訓練樣本數(shù)量達到80時,分類準確率趨于平緩且達到可用水平。