秦帥昆 羅素云
(上海工程技術(shù)大學(xué)機(jī)械與汽車工程學(xué)院 上海 201620)
隨著我國智能交通系統(tǒng)的快速發(fā)展,車輛管控也變得越來越重要。在車輛檢測中,車輛遮擋問題仍然具有很大的挑戰(zhàn)。目前的車輛檢測方法通常通過訓(xùn)練完整車輛輪廓來檢測無遮擋或輕微遮擋的車輛,但對嚴(yán)重遮擋的車輛檢測性能很差。Lee B G等[1]通過對遮擋面積做出估計進(jìn)而判斷遮擋的方法。該方法雖準(zhǔn)確判斷出遮擋位置,但計算較復(fù)雜。張桂梅等[2]通過用Kona 模板與場景匹配的方法檢測T 型節(jié)點(diǎn),利用該節(jié)點(diǎn)計算出遮擋位置。Ikemura S 等[3]通過TOF 相機(jī)獲取目標(biāo)深度相似特征判斷目標(biāo)遮擋位置,但受設(shè)備限制。在實(shí)際交通場景下,以上傳統(tǒng)的滑窗檢測方法很難滿足實(shí)時性的需求,為了解決這個問題,需采用高效的特征提取方法進(jìn)行特征計算[4],或引入降低每個檢測窗口分類計算耗時的策略[5]。一些研究者提出通過只選擇那些更有可能包含目標(biāo)的窗口,并通過這種方式獲得顯著的性能加速,以減少檢測窗口的數(shù)量。
由于被嚴(yán)重遮擋的車身的大部分輪廓是不可見的,很可能會被其檢測窗口內(nèi)的背景區(qū)域誤導(dǎo),從而容易發(fā)生漏檢。試圖學(xué)習(xí)一組特定的局部遮擋的檢測器,然后將它們適當(dāng)?shù)募稍谝黄?,用于檢測非遮擋車輛和部分遮擋車輛[6~7]。該方法基于以下假設(shè):當(dāng)檢測器無法檢測部分遮擋車輛時,未遮擋部分的檢測器對車輛的檢測值仍然較高。對于此方法,每部分檢測器的設(shè)置至關(guān)重要。通常,部件檢測器是單獨(dú)學(xué)習(xí)的。但單獨(dú)部件檢測器單獨(dú)學(xué)習(xí)時有兩個缺點(diǎn):1)忽略了部件之間的相關(guān)性,進(jìn)而影響學(xué)習(xí)部件檢測器的可靠性。2)應(yīng)用所學(xué)部件檢測器的計算耗時隨檢測器數(shù)量的增加呈線性增加。W.Ouyang 等[8]利用了單個卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了部件檢測器的學(xué)習(xí)和集成。但是,這種方法只使用了類標(biāo)記,并且是以弱監(jiān)督的方式隱式地學(xué)習(xí)部件檢測器。
在此,初步學(xué)習(xí)一種概率混合分布,該分布根據(jù)目標(biāo)的位置和尺度對觀測場景進(jìn)行建模??紤]到在一組訓(xùn)練圖像上運(yùn)行的檢測器的輸出,場景模型以非監(jiān)督的方式學(xué)習(xí)。在運(yùn)行時,學(xué)習(xí)的混合分布用于采樣最相關(guān)的檢測窗口。然后聯(lián)合一種共享決策樹部件檢測器的多標(biāo)記學(xué)習(xí)方法,利用部件之間的相關(guān)性,降低應(yīng)用這些部件檢測器的計算時間。
本文選用一種基于場景中車輛位置和比例的GMM 的場景相關(guān)的方法。GMM 是在無監(jiān)督的情況下從一組檢測中學(xué)習(xí)的,在非最大抑制之前,由檢測器在場景的少量幀中提取?;旌夏P偷拿總€組成部分都是一個概率分布,表示在圖像區(qū)域內(nèi)以特定尺度觀察一輛車的期望。在GMM 擬合過程中,根據(jù)在支持區(qū)域(Region of Support,ROS)[9]內(nèi)進(jìn)行重要性加權(quán)實(shí)施檢測。在運(yùn)行過程中,最有可能包含車輛的窗口將從混合模型部件中取樣,并由分類器進(jìn)行評估。
建立概率模型yi,場景中的任何目標(biāo)檢測由GMM定義θ如下:
式中θ由其混合部件和它們的混合概率共同定義(兩者都需估計),如下:
每個部件GMM 值都有均值μk(其質(zhì)心位置)和協(xié)方差Ck(圖像中部件的空間范圍),即:
式中:
S是占在其ROS中其他檢測器yi的相關(guān)程度,和GMM 部件θ?k的檢測范圍與其它檢測器yi檢測范圍的契合概率,即:
式中:
si,k依賴w(yi),yi的相對權(quán)重按其ROS 域內(nèi)的所有檢測器權(quán)重歸一化。
式中,Z是尺度方差的歸一化因子,l(.)是一個返回尺度的函數(shù),并且
是對部件尺度的方差,總和覆蓋了所有檢測器的集合,這些檢測器的局部最大ROS 值為,M為集合的基數(shù)。
給出初始狀態(tài)θinit,在每次迭代中一個新的配置θ通過一個目標(biāo)函數(shù)來估計和評價
因子包括覆蓋度(即多少部件覆蓋了場景,組件擴(kuò)展有多少提升)和重疊度(即部件之間的重疊度,重疊的部件將被補(bǔ)償),定義如下:
這個過程重復(fù)進(jìn)行,直到GMM 的組件數(shù)量等于一個固定的數(shù)量Kmin。
支持區(qū)域ROS(yi)定義為是與給定檢測yi有交集的檢測集,高于或等于預(yù)定義閾值τvoc。一般τvoc設(shè)置為0.65[6]。之前,對于每個ROS,使用Hard ROS 加權(quán)集作為ROS(yi),即該區(qū)域的檢測數(shù)量。這種權(quán)值集是從訓(xùn)練集的檢測中學(xué)習(xí)而來,用于在同一場景中生成窗口建議。為每個檢測yi分配一個權(quán)重w(yi),表示它在ROS 中相對于其它檢測的相關(guān)性。這種Soft ROS加權(quán)計算如下:
式中,π(yi)代表檢測窗口yi的相關(guān)正確性,定義為gi-τT除以ROS中的最大值。gi是分類器分?jǐn)?shù),τT為級聯(lián)分類器在yi尺度下的抑制閾值。
ρ(yi)代表yi的相關(guān)性定義如下:
?yi?是在ROS 中分類器的等級,φ∈[0,1)用于置中sigmoid函數(shù):
具有?yi?>φ·|ROS(yi)|的檢測具有較低的權(quán)重,從而抑制了非信息檢測窗口的貢獻(xiàn)值。實(shí)驗(yàn)中,φ設(shè)置為0.5。
針對部件檢測器學(xué)習(xí)問題,采用一種基于部件級監(jiān)督的部件檢測器多標(biāo)記學(xué)習(xí)方法。通過boost進(jìn)行學(xué)習(xí)并結(jié)合構(gòu)造一組決策樹[11],所有部件檢測器共享這些決策樹。為了利用部件之間的相關(guān)性,學(xué)習(xí)這些決策樹并將它們組合起來,以捕獲所有部件的總體分布,同時使用紋理特征進(jìn)一步提高性能。
將車輛的整個輪廓建模為一個矩形模板,區(qū)分不同的視角,模板分為H*W 網(wǎng)格。模板中的任何矩形子區(qū)域看做一個部件。這里設(shè)置H=3 和W=4。根據(jù)車輛通常被遮擋的先驗(yàn)知識設(shè)計了一個部件池,如圖1 所示。要表示車輛上的一部分,直接的方法就是截取特征圖上部分對應(yīng)的區(qū)域。部件周圍區(qū)域的特征可以作為其上下文信息,這樣,所有的部分都有類似的表示形式。
圖1 部件池
設(shè)X為由圖像區(qū)域組成的實(shí)際空間。對于每個部分pk∈P,要學(xué)習(xí)一個檢測器dk:X→R這樣一個圖像區(qū)域x∈X,當(dāng)圖像區(qū)域包含pk時,dk(x)>0,否則dk(x)≤0。所以,需要學(xué)習(xí)K 個部件檢測器。直接的方法是單獨(dú)學(xué)習(xí)K部件檢測器,但這樣它便忽略了各部分之間的相關(guān)性,所以提出多標(biāo)記學(xué)習(xí)方法共同學(xué)習(xí)K部件檢測器。
具體來說,學(xué)習(xí)函數(shù)F:X→2P預(yù)測出現(xiàn)在一個給定的圖像區(qū)域X的一組部件。設(shè)D={(xi,li,為一組訓(xùn)練實(shí)例,這里xi∈X是圖像區(qū)域,li∈{-1,1}表示圖像區(qū)域是否包含車輛分別是兩個邊界框,分別指定車輛的可見部分和全部區(qū)域。要學(xué)習(xí)F,需要為每個實(shí)例xi構(gòu)造一個標(biāo)記向量Yi=(yik)∈{-1,1}K,1 ≤k≤K,yik代表圖像區(qū)域xi是否包含部件pk。對1 ≤k≤K引入一個損失向量Ci=(cik)∈RK標(biāo)記賦值,其中cik定義了由于對pk的xi的錯誤預(yù)測而產(chǎn)生的損失。li=-1 時,設(shè)置yik=-1,cik=1;li=1 時,設(shè)置yik=1,cik由共同決定。首先標(biāo)準(zhǔn)化整體輪廓邊界框,如文獻(xiàn)[12]所述:的高度和中心固定,調(diào)整寬度使寬高比為0.41。用表示標(biāo)準(zhǔn)化的全身圖。然后,丟棄標(biāo)準(zhǔn)化全身之外的可見部分內(nèi)的任何圖像內(nèi)容,以獲得一個新的可見部分。設(shè)為xi上pk部分的圖像域。計算和的交集(IOU)由Iik表示,以及被覆蓋的比例由Oik表示。最后,cik確定如下:
第一種情況下,部件pk的大部分是可見的,因此設(shè)置了很大的cik來防止部件檢測器的錯誤預(yù)測。第二種情況下,部件和可見部分的IOU 大于0.5,認(rèn)為部件區(qū)域在實(shí)際中是可見的,錯誤分類取決于IOU。第三種情況下,部件嚴(yán)重遮擋,設(shè)置cik=0,忽略對第k個部件的訓(xùn)練。
圖2 說明了如何標(biāo)記車輛示例。DF={(xi,Yi,Ci)|1 ≤i≤N}形成學(xué)成的訓(xùn)練集F。用一個雙參數(shù)函數(shù)H表示F:X×P→R,當(dāng)H(x,pk)>0 時,pk∈F(x),否則pk?F(x)。通過最小化下面的損失函數(shù)來學(xué)習(xí)H:
圖2 車輛標(biāo)記
式中,N是訓(xùn)練實(shí)例的數(shù)量,如果H(xi,pk)>0 ,sign(H(xi,pk))=1;否則sign(H(xi,pk))=-1。
在特定的場景中,車輛可能會被其他物體遮擋。由于不知道哪些部位會被遮擋,因此,一種簡單而有效的方法就是應(yīng)用一組部件檢測器。對于圖像中的候選區(qū)域x,K 個部件檢測器會給出K 個檢 測 值,s=(s1,…,sK) ,這 里sK=H(x,pk,(1 ≤k≤K)。需要正確地集成這些檢測分?jǐn)?shù),給出一個最終的分?jǐn)?shù),以表明候選區(qū)域包含車輛的概率。
學(xué)習(xí)一個權(quán)向量v=(v1,…vK)將K 個檢測器分值線性組合:
b是一個偏分常量。取D={(si,yi)|1 ≤i≤N}為訓(xùn)練集,si表示第i 個訓(xùn)練例的K 個檢測值,yi∈{-1,1}。通過邏輯回歸學(xué)習(xí)v,具體來說,是通過求解以下優(yōu)化問題來學(xué)習(xí)v:
式中,N為訓(xùn)練集的數(shù)量,φ(v)為正則化項(xiàng)。采用兩種類型的正則化式,即‖ ‖v1。當(dāng)使用L1 范數(shù)‖ ‖v1時,選擇配備合適λ的部件檢測器的子集。
用于訓(xùn)練的圖像為2514 張以及200 張檢測圖片。實(shí)驗(yàn)在Intel Core i5-3210M,2.5GHz 電腦上實(shí)現(xiàn)。通過四種車輛檢測器:HOG、DPM、Haar和ACF進(jìn)行比較。
從表1中可以看出,在檢測器HOG[13]、DPM[14]、Haar[15]和ACF[16]上,使用遮擋處理的部件檢測器在車輛數(shù)據(jù)集上的檢測誤差率比未使用遮擋處理檢測器的誤差率分別提高了0.22、0.09、0.02 和0.04,同時檢測速度也有提升。相對于未加入遮擋處理,說明了多標(biāo)記學(xué)習(xí)方法和在遮擋處理中與其他部件檢測器聯(lián)合學(xué)習(xí)的檢測有效性。圖3 是部分遮擋車輛的檢測效果圖。
表1 檢測器與滑動窗口方法性能比較
圖3 在測試數(shù)據(jù)集上的檢測結(jié)果
在本文中,提出了一種在場景下高斯混合模型和多標(biāo)記學(xué)習(xí)方法聯(lián)合學(xué)習(xí)的部件檢測器。通過高斯混合模型對車輛檢測區(qū)域進(jìn)行粗略提取,并且提高算法的檢測速度。AdaBoost 加速器用來學(xué)習(xí)一組決策樹,所有部件檢測器共享這些決策樹,由此降低了應(yīng)用這些部件檢測器的計算時間。所學(xué)習(xí)的決策樹捕獲所有區(qū)域的總體分布。為進(jìn)一步提高性能,還提出了一種上下文檢測重建模型。實(shí)驗(yàn)結(jié)果表明:適當(dāng)集成這些部件檢測器,可以提高對遮擋車輛的檢測性能。部件檢測器的訓(xùn)練和集成分兩個步驟進(jìn)行。但在檢測過程中,依然會出現(xiàn)對失去關(guān)鍵特征的車輛檢測和部分區(qū)域錯檢,未來我們會對此問題進(jìn)行更深入的討論。