陳 帥,張 勇,牛常勇
(鄭州大學(xué) 信息工程學(xué)院,河南 鄭州450004)
目前比較常用的車體檢測方法主要分為兩類:第一類是基于機(jī)器學(xué)習(xí)特征提取,如神經(jīng)網(wǎng)絡(luò)、Adaboost等;第二類是基于人工設(shè)計特征提取,如顏色特征、對稱性、邊緣特征[1]等。人工設(shè)計特征方法實現(xiàn)比較簡單而且易于理解,但是傳統(tǒng)的人工設(shè)計特征方法的在復(fù)雜的自然場景下容易受到背景噪聲的干擾。針對于這個問題,使用基于部分模型的檢測方法,用檢測部分特征代替檢測整體特征,而常用的基于部分模型的檢測方法,由于沒有合理劃分部分模型,導(dǎo)致漏檢率和錯誤率較高。本文提出了一種部分模型劃分算法,合理劃分部分模型,克服了在復(fù)雜自然場景下誤檢率和漏檢率高的問題,相比于比較成熟的PBT方法[2],召回率也有較明顯的提高。
特征表示分為兩個部分,分別為像素級的特征表示和特征聚合。
1.1.1 像素級特征表示
定義Φ(x,y)和 Ω(x,y)分別為在在圖像 (x,y)點(diǎn)梯度的方向和大小。對于彩色圖像,Φ和Ω是每個像素在紅、綠、藍(lán)3個色彩通道中,最大梯度的方向和大小。
每個像素的梯度投影到p個方向上,在 (x,y)點(diǎn)的p維的特征向量
1.1.2 特征聚合
假設(shè)F是一張w×h圖片的像素級特征圖。如果直接用F計算,需要計算w×h個元素,需要花費(fèi)大量的時間。而特征聚合就是為了解決這個問題,設(shè)k是一個正整數(shù),將k×k個像素的值通過求和 (或平均值)的方法聚合成一個點(diǎn) (也成為C的一個單元),得到一個新的特征圖C,C的長和寬分別為w/k和h/k,用C計算時,其計算量縮小了k2倍,在本文中取k=8。
使用的模型是由一個表示整體的低分辨率模板和多個較小的高分辨率模板組成的可重構(gòu)模型[3-8]。這些模板都是 HoG (histogram of gradients)[9]直方圖表示的。我們使用的模型有點(diǎn)類似PBT模型,但是與PBT模型使用固定數(shù)量、固定大小的正方形的部分模板不同,本文模型中的部分模板的大小和數(shù)量都不是固定,而且形狀也不是單一正方形。這種改進(jìn)使正特征的聚合度大大增加,同時也減小了負(fù)特征的干擾。除此之外,針對車體檢測的場景,檢測算法和PBT模型算法也有很大不同,在檢測算法中加入了目標(biāo)融合算法,避免了同一目標(biāo)被多次檢測出的情況。
我們使用的模型T可以表示成一個root-level模板F0和n個part-level模板Tj的組合,即
式中:F0——root層模板,也是root層濾波器;Tj表示第j個part-level模板,Tj=(Fj,Pj),其中Pj=(xj,yj)表示第j個part-level模板在root-level模板中的位置,F(xiàn)j是一個3維向量,表示第j個濾波器
(1)dj= (dxj,dx2j,dyj,dy2j)表示第j個濾波器的位移的大小和方向;
(2)ωj是第j層濾波器的參數(shù)向量,它包括HoG直方圖的權(quán)重,偏移量的大小和位移dj的負(fù)權(quán)重;
(3)Sj表示第j層濾波器的位置和大小,在本文中,Sj是一個長方形,它的邊長最小可以取3個HoG單元 (即24像素),最大的可以取濾波器F0長寬和的1/4。這就導(dǎo)致Sj有很多種不同取值,如何確定Sj的大小,將在文章的下一個章節(jié)中介紹。
D= {(xi,yi),…,(xn,yn)}表示訓(xùn)練數(shù)據(jù)集,其中xi代表第i張圖片的特征圖,yi∈ {-1,1},yi=-1表示第i張圖片是負(fù)樣本,而yi=1表示第i張圖片是正樣本。學(xué)習(xí)算法的目標(biāo)是等到一個線性的分類器可以分類正樣本和負(fù)樣本。
分類器可以表示為
對于式 (1)不確定的是參數(shù)向量ωi和隱藏值zi,所以不能直接計算出ωi,在本文中,我們使用Latent-SVM算法[10-13]計算參數(shù)向量 ωi的最優(yōu)解。
根據(jù)SVM算法,問題 (1)可以轉(zhuǎn)化為
使上式取得最小值的ω就是ω的最優(yōu)解。
構(gòu)造拉格拉日算子來解決問題 (2)得到下式
常數(shù)C 表示f(x(i))之間的相關(guān)性,u=∑y(i)f(x(i)),loss(u)是衰減函數(shù),在傳統(tǒng)的SVM算法中,使用的衰減函數(shù)loss(u)=max(0,1-y(i)f(x(i))),但是因為這個衰減函數(shù)有求最大值的操作,所以它不是一個連續(xù)可導(dǎo)的函數(shù)如圖1所示,在本文中使用neg-sigmoid函數(shù)來代替原有的衰減函數(shù),其中
圖1 衰減函數(shù)
使用neg-sigmoid函數(shù)作為衰減函數(shù)有兩個好處:
(1)如圖1所示,當(dāng)u接近0時neg-Sigmoid函數(shù)可以近似為線性函數(shù),即
在本文中,u的取值在 [0,1]內(nèi)且比較接近0,可以認(rèn)為絕大部分u符合上式,此時衰減函數(shù)為線性函數(shù) (其中
(2)如圖1所示,NSig(neg-Sigmoid)始終在0-1衰減即 (max(0,1-y(i)f(x(i))))的上方,所以對最小化 LD沒有影響。
因此式 (3)可以寫為
設(shè)Zp是zi的取值范圍且Z(xi)= {zi},Zp∈D,定義LD(ω,Zp)=LD(Zp)(ω),其中D(Zp)∈D,結(jié)合式 (4)可以得到
由此可見,LD(ω,Zp)是LD(ω)的上界,所以求LD(ω)的最小值可以轉(zhuǎn)化成最小化LD(ω,Zp)。
求LD(ω,Zp)的最小值得方法如下:
(1)在zi∈Zp的條件下求使得f(x)取最大值的zi,即
此時LD(Zp)(ω)是只與ω有關(guān)的凸函數(shù)。
(2)令▽LD=0,可以得到
al是第l次迭代的學(xué)習(xí)率系數(shù) (在線性SVM算法中,學(xué)習(xí)率al=1/l[14]),將算出的ω帶入LD中。
重復(fù)步驟 (1),(2)直到ω收斂,此時得到的ω就是最優(yōu)的參數(shù)向量。
2.2.1 部分模型的劃分算法
我們通過部分模型劃分算法得到一個最優(yōu)的部分模型結(jié)構(gòu)。該算法有兩個步驟:
(1)對于不同閾值,得到不同的部分模型。設(shè)thresh是root層模型的閾值,thresh的取值范圍為 [min(F0),max(F0)]。
具體算法如下:
1)將F0中大于thresh的元素置1,小于thresh的元素置0;
2)設(shè)F=F0,找到一個盡可能大的矩形S1,在F中,S1∈ [3*3,sizeof(F)/2]且S1內(nèi)部的元素都不為0,記錄S1位置和大小,并將F內(nèi)S1位置的元素置0,重復(fù)此步驟,直到F中沒有滿足要求的S1;
3)設(shè)F=F0,找到一個盡可能大的矩形S2,在F中,S2內(nèi)部的元素都不為1且S2∈ [3*3,sizeof(F)/2],記錄S2的位置和大小,并將F內(nèi)S2位置的元素置1,重復(fù)此步驟,知道F中沒有滿足要求的S2;
4)輸出S=S1∪S2。
(2)Sj表示第j個閾值對應(yīng)的部分模型結(jié)構(gòu),設(shè)Ej=∑ F0(si)2,si∈Sj是第j個閾值對用的部分模型結(jié)構(gòu)中的一個part模板。最優(yōu)模板問題可以等價成Ej最大化的問題,當(dāng)Ej是所有E中的最大值是,Sj就是最優(yōu)的部分模型結(jié)構(gòu)。
2.2.2 目標(biāo)融合算法
在PBT模型算法中,由于在檢測目標(biāo)是會對輸入圖像進(jìn)行多次的縮放,會導(dǎo)致同一個目標(biāo)在不同縮放層級同時被檢測出來的現(xiàn)象。針對于車體檢測的特點(diǎn),即兩輛車不可能重疊。本文提出了一種目標(biāo)融合算法:處理有重疊的檢測結(jié)果,根據(jù)重疊部分的響應(yīng)值重新檢測,將多余的結(jié)果過濾掉,只保留最優(yōu)的結(jié)果。避免了同一輛車被檢測到多次所導(dǎo)造成的誤檢。
本實驗選用的數(shù)據(jù)集訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,其中測試數(shù)據(jù)集由15000張分辨率為1616×1232的照片組成。均來自于鄭州某路口的監(jiān)控。數(shù)據(jù)集包含有8000張白天的照片數(shù)據(jù)和7000張夜晚照片。其中包括了各種車型 (包括轎車,面包車,越野車,公交車,卡車等)。訓(xùn)練數(shù)據(jù)集包括正樣本和負(fù)樣本兩種,其中正樣本為400張分辨率為1616×1232的照片組成,包含200張白天照片和200張夜晚照片,負(fù)樣本是從VOCdevkit數(shù)據(jù)集中選取的一部分圖片數(shù)據(jù)。
分別用PBT的方法和本文的方法在訓(xùn)練數(shù)據(jù)集上訓(xùn)練,得到的模型如圖2所示。
圖2 模型((a)和(b)是白天數(shù)據(jù)訓(xùn)練得到的模型,(c)和(d)是夜晚數(shù)據(jù)訓(xùn)練得到的模型)
在測試數(shù)據(jù)集中分別用PBT方法的模型和本文方法的模型檢測和分類,檢測的召回率見表1,分類的正確率見表2。
檢測結(jié)果和分類的結(jié)果如圖3,圖4所示。我們的方法無論是在檢測還是分類上都優(yōu)于PBT的方法,是因為在我們提出的部分模型劃分算法是按照目標(biāo)特征的分布來劃分部分模型的,把屬于同一特征的部分盡可能的劃分在同一個部分模型中,同時也將不屬于該部分的特征可以更好的把目標(biāo)的特征提取出來。
表1 檢測的正確率
表2 分類的正確率
圖3 車體檢測結(jié)果 (白色框為夜晚目標(biāo),黑色框為白天目標(biāo))
圖4 分類的結(jié)果 (其中白色框體表示結(jié)果是卡車和公交車,黑色框體表示結(jié)果是轎車)
提出了的一種自然場景下基于部分模型的車體檢測方法。實驗分別在白天和夜晚兩個數(shù)據(jù)集中比較該方法和PBT的方法,實驗結(jié)果表明本文提出的方法在車體檢測上有很高的準(zhǔn)確率,表明了本文的方法更適合用于車體檢測中。此外本文中使用的方法不僅能應(yīng)用于車體檢測中,還可以應(yīng)用到人體檢測、移動物體檢測中去。計劃引入車牌檢測和識別,用并行計算的方法實現(xiàn)算法,以達(dá)到實時檢測的目標(biāo)。
[1]Leibe B,Leonardis A,Schiele B.Robust object detection with interleaved categorization and segmentation [J].International Journal of Computer Vision,2008,7 (1):259-289.
[2]Felzenszwalb P,Girshick R,McAllester D,et al.Object detection with discriminatively trained part based models [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2010,32 (9):1627-1645.
[3]Amit Y,Trouve A.POP:Patchwork of parts models for object recognition [J].International Journal of Computer Vision,2007,75 (2):267-282.
[4]Felzenszwalb P,McAllester D,Ramanan D.A discriminatively trained,multiscale,deformable part model [C]//IEEE Conference on Computer Vision and Pattern Recognition,2008:1-8.
[5]Lv Yang,Yao Benjamin,Wang Yongtian,et al.Reconfigurable templates for robust vehicle detection and classification [C]//Workshop on Application of Computer Vision,2012:321-328.
[6]Wu Yingnian,Si Zhangzhang,Gong Haifeng,et al.Learning active basis model for object detection and recognition [J].International Journal of Computer Vision,2010,90 (2):198-235.
[7]McIntosh C,Hamarneh G.Medial-based deformable models in nonconvex shape-spaces for medical image segmentation [J].IEEE Trans on Medical Imaging,2012,31 (1):33-50.
[8]Zhu S,Mumford D.A stochastic grammar of images [J].Foundations and Trends in Computer Graphics and Vision,2007,2 (4):259-362.
[9]Chan Yiming,F(xiàn)u Lichen,Hsiao Pei-Yung,et al.Pedestrian detection using histograms of Oriented Gradients of granule feature[C]//Intelligent Vehicles Symposium,2013:1410-1415.
[10]John Yu Chun-Nam,Thorsten Joachims.Learning structural SVMs with latent variables [C]//International Conference on Machine Learning,2009:1169-1176.
[11]Sun Chao,Zhang Tianzhu,Bao Bing-Kun,et al.Latent support vector machine for sign language recognition with Kinect [C]//20th IEEE International Conference on Image Processing,2013:4190-4194.
[12]Lo Sio-Long,Tsoi Ah-Chung.Human action recognition:A dense trajectory and similarity constrained latent support vector machine approach [C]//2nd IAPR Asian Conference on Pattern Recognition,2013:230-235.
[13]Vahdat A,Cannons K,Mori G,et al.Compositional models for video event detection:A multiple kernel learning latent variable approach [C]//IEEE International Conference on Computer Vision,2013:1185-1192.
[14]Shalev-Shwartz S,Singer Y,Srebro N.Pegasos:Primal estimated sub-gradient solver for SVM [J].Mathematical Programming,2011,127 (1):3-30.