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