張澤軒,陳虎,吳志紅,王敏
(1.四川大學(xué)視覺(jué)合成圖形圖像技術(shù)國(guó)家重點(diǎn)學(xué)科實(shí)驗(yàn)室,成都 610065;2.公安部交通管理科學(xué)研究所道路交通安全公安部重點(diǎn)實(shí)驗(yàn)室,無(wú)錫 214100)
道路實(shí)景中的車輛與行人檢測(cè)是人工智能與計(jì)算機(jī)視覺(jué)領(lǐng)域重要的應(yīng)用方向,掌握道路實(shí)景中的車輛與行人的位置信息對(duì)于道路實(shí)景中的進(jìn)一步的信息挖掘有著指導(dǎo)性的作用,例如,在得到車輛與行人的位置信息之后,可以通過(guò)高速攝像機(jī)的幀率得到車輛與行人的速度信息,也可以得到兩者的運(yùn)動(dòng)方向趨勢(shì)信息,也可進(jìn)行車輛與行人的特征比對(duì)確定目標(biāo),對(duì)感興趣的目標(biāo)進(jìn)行放大觀測(cè)或者運(yùn)動(dòng)跟蹤等。
以往的研究者對(duì)于道路實(shí)景車輛與行人檢測(cè)也提出過(guò)很多方法,例如:基于投影的曲線模型匹配方法[1],時(shí)間間隔圖像差分方法或背景差分方法[2],背景差分結(jié)合邊緣信息方法[3],基于復(fù)合特征的檢測(cè)方法[4],基于光流場(chǎng)計(jì)算的方法[5],基于AdaBoost算法與特征匹配的方法[6]等等各種基于計(jì)算機(jī)視覺(jué)的方法,非計(jì)算機(jī)視覺(jué)領(lǐng)域的方法還包括主動(dòng)傳感器感知的方法,例如雷達(dá)、超聲傳感器、激光傳感器等[5]。
總體上傳統(tǒng)計(jì)算機(jī)視覺(jué)方法分為如下三類:基于知識(shí)的方法,基于立體視覺(jué)的方法,基于運(yùn)動(dòng)的方法[5]。本文所采用的基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)方法解決了傳統(tǒng)方法在提取特征和特征的泛化上的難題,采用雙卷積加內(nèi)部競(jìng)爭(zhēng)的網(wǎng)絡(luò)模型來(lái)提高檢測(cè)性能,同時(shí)在網(wǎng)絡(luò)模型輸入之前對(duì)檢測(cè)圖片的尺寸進(jìn)行歸一化處理,這樣使得無(wú)論原始圖片的尺寸如何都能夠通過(guò)多個(gè)卷積層得到一個(gè)穩(wěn)定的特征提取時(shí)間,采用預(yù)先劃分預(yù)測(cè)區(qū)域的方式使得模型的預(yù)測(cè)效率對(duì)圖像中的目標(biāo)數(shù)量不敏感。我們采用公開庫(kù)和人工收集的道路實(shí)景圖像集進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)方法對(duì)道路實(shí)景車輛與行人檢測(cè)是可行的,并且能夠得到令人滿意的效果。
要了解卷積神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí),就需要了解人工神經(jīng)網(wǎng)絡(luò),這兩個(gè)概念都是由人工神經(jīng)網(wǎng)絡(luò)發(fā)展而來(lái)。卷積神經(jīng)網(wǎng)絡(luò)的每一層使用一個(gè)或多個(gè)卷積核來(lái)學(xué)習(xí)參數(shù),在整張圖片上共享卷積核的參數(shù),這樣能夠大大減少深度模型的參數(shù)數(shù)量,從而使計(jì)算量控制在能夠接受的范圍內(nèi)。這些卷積核能夠由淺入深地逐漸學(xué)習(xí)到越來(lái)越高層越來(lái)越抽象的圖像特征,更為抽象的特征意味著更好的適應(yīng)性,因此對(duì)于目標(biāo)檢測(cè)有著很好的效果[7]。深度學(xué)習(xí)本質(zhì)上是指訓(xùn)練包含多個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)模型來(lái)進(jìn)行應(yīng)用,在圖像檢測(cè)方面就是多層卷積神經(jīng)網(wǎng)絡(luò)模型,模型的深度越深,意味著最終能夠?qū)W習(xí)到的特征越高級(jí)越抽象,如上所述,這能夠顯著增強(qiáng)模型的適應(yīng)性,使得檢測(cè)效果大幅提升。
文獻(xiàn)[8]詳細(xì)地介紹了深度學(xué)習(xí)的原理,深度學(xué)期的潛力,以及深度學(xué)習(xí)在圖像理解方面的卓越效果,證明了使用深度學(xué)習(xí)方法來(lái)進(jìn)行單目視覺(jué)圖像的車輛及行人檢測(cè)是能夠勝任實(shí)際需求的。
用于目標(biāo)檢測(cè)的卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)通常是這樣的:卷積層與池化層的交替安置,每個(gè)卷積層擁有一至多個(gè)卷積核用于提取多樣化的特征,在網(wǎng)絡(luò)的最后加入全連接層來(lái)負(fù)責(zé)進(jìn)行類別和位置的預(yù)測(cè)[9]。
本文設(shè)計(jì)實(shí)現(xiàn)了基于整圖候選和單回歸的一體化卷積神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測(cè)模型;該方法融合了雙卷積[11]加內(nèi)部競(jìng)爭(zhēng)機(jī)制的網(wǎng)絡(luò)結(jié)構(gòu),多尺度的三步數(shù)據(jù)訓(xùn)練方法,具有算法簡(jiǎn)單,速度快,精度高,魯棒性強(qiáng)的特點(diǎn),可同時(shí)實(shí)現(xiàn)目標(biāo)檢測(cè)分類識(shí)別。
圖1 整體結(jié)構(gòu)
該網(wǎng)絡(luò)結(jié)構(gòu)具有兩個(gè)特點(diǎn):
(1)傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為單個(gè)卷積層后跟池化層(或激活層);本論文研究以兩個(gè)3×3卷積層(或一個(gè)1×1卷積層和一個(gè)3×3卷積層構(gòu)成的卷積層組)構(gòu)成的卷積層組替代一個(gè)5×5卷積層,如圖2所示;形成兩個(gè)卷積層直接鏈接級(jí)聯(lián)后跟池化層(或激活層)的網(wǎng)絡(luò)結(jié)構(gòu)。
圖2 雙卷積+內(nèi)部競(jìng)爭(zhēng)機(jī)制示意圖
圖3 雙卷積與單卷積對(duì)比示意圖
雙卷積層能夠a.減少總體參數(shù)量;b.在減少計(jì)算量的同時(shí)增加了網(wǎng)絡(luò)深度;c.增加了殘差值計(jì)算,偏置數(shù)增加;d.數(shù)據(jù)利用率增高;有利于提升卷積神經(jīng)網(wǎng)絡(luò)的效率。
(2)卷積神經(jīng)網(wǎng)絡(luò)采用激活函數(shù)來(lái)實(shí)現(xiàn)非線性,主要有Tanh,Sigmoid,Relu函數(shù)等;本文工作創(chuàng)新性地采用內(nèi)部競(jìng)爭(zhēng)機(jī)制來(lái)實(shí)現(xiàn)非線性,將Feature Maps分割為兩組相互進(jìn)行點(diǎn)對(duì)點(diǎn)地競(jìng)爭(zhēng),在雙方的競(jìng)爭(zhēng)中篩選每個(gè)點(diǎn)的最大響應(yīng),最后形成新的Feature Maps,如圖4所示;通過(guò)競(jìng)爭(zhēng)我們得到的是神經(jīng)元響應(yīng)最大的結(jié)果,因此使得神經(jīng)網(wǎng)絡(luò)對(duì)檢測(cè)任務(wù)更加敏感。
通過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取特征向量之后,本文采用YOLO中的方法直接回歸出目標(biāo)候選框的中心坐標(biāo)和寬高,有無(wú)目標(biāo)置信度,以及分類置信度。網(wǎng)絡(luò)將輸入圖像分為13×13個(gè)小方格,每個(gè)小方格負(fù)責(zé)預(yù)測(cè)中心點(diǎn)落在其范圍內(nèi)的目標(biāo)框,使用anchor boxes[12]來(lái)提升預(yù)測(cè)目標(biāo)框的位置精度。
圖4 內(nèi)部競(jìng)爭(zhēng)機(jī)制示意圖
評(píng)估實(shí)驗(yàn)的參數(shù)一方面包括訓(xùn)練時(shí)的參數(shù)輸出,包括LOSS函數(shù),平均IOU,平均召回率,測(cè)試準(zhǔn)確率,另一方面包括模型檢測(cè)的準(zhǔn)確率,平均IOU,檢測(cè)時(shí)間。
LOSS函數(shù)的定義如下[10]:
S表示將歸一化后的輸入圖像分為S×S個(gè)小方格,每個(gè)小方格負(fù)責(zé)預(yù)測(cè)B個(gè)框。
前兩項(xiàng)是對(duì)目標(biāo)檢測(cè)框的位置誤差計(jì)算,x,y,ω,h分別代表預(yù)測(cè)框的中心點(diǎn)橫坐標(biāo),縱坐標(biāo),預(yù)測(cè)框的寬度,預(yù)測(cè)框的高度;第三項(xiàng)為預(yù)測(cè)有目標(biāo)的confidence預(yù)測(cè)誤差;第四項(xiàng)為預(yù)測(cè)無(wú)目標(biāo)的confidence預(yù)測(cè)誤差;第五項(xiàng)為類別預(yù)測(cè)誤差。
對(duì)訓(xùn)練完成的網(wǎng)絡(luò)模型進(jìn)行測(cè)試,我們使用mAP和平均FPS來(lái)衡量模型的性能。
mAP,即mean Average Precision,字面意思可看出是對(duì)precision取了兩次平均,在多類別目標(biāo)檢測(cè)中,recall與precision的值可以看作是一一對(duì)應(yīng)的,那么由這兩個(gè)變量可以繪制出一個(gè)曲線,也就是說(shuō)precision可以看作是關(guān)于recall的函數(shù),將這個(gè)函數(shù)的曲線繪制出來(lái),求取recall在[0,1]時(shí)的定積分,實(shí)際上就是將所有precision值對(duì)recall取平均,求得的定積分被成為AP,即Average Precision。
在多類別目標(biāo)檢測(cè)中,對(duì)每個(gè)需要檢測(cè)的類別求出AP,并取平均值,得到的就是mAP,即mean Average Precision。具體計(jì)算公式:
上述公式中,r代表recall,p(r)代表precision關(guān)于recall的函數(shù),c代表檢測(cè)目標(biāo)類別數(shù)。
一部分使用從各個(gè)公開庫(kù)中篩選出的行人與車輛圖片集共21356張圖片,另一部分使用自主人工采集的真實(shí)道路實(shí)景圖片集共10534張圖片。這些公開庫(kù)中的行人車輛圖片尺寸不一,角度各異,分辨率各有不同,圖像質(zhì)量也距離明顯,這使得訓(xùn)練出的模型能夠很好地應(yīng)對(duì)不同角度不同場(chǎng)景不同拍攝條件的各種行人車輛圖片,能夠?qū)W習(xí)到魯棒的底層特征。
數(shù)據(jù)擴(kuò)展與訓(xùn)練相結(jié)合的三步訓(xùn)練方法,每步采用不同的訓(xùn)練數(shù)據(jù)與訓(xùn)練,不僅解決了訓(xùn)練數(shù)據(jù)規(guī)模不夠問(wèn)題,還實(shí)現(xiàn)檢測(cè)精度由粗到細(xì)的漸進(jìn)過(guò)程,最終實(shí)現(xiàn)精確的人車檢測(cè)和較強(qiáng)的魯棒性,如圖5所示。
圖5 三步數(shù)據(jù)擴(kuò)展與訓(xùn)練方法
(1)將數(shù)據(jù)通過(guò)較大尺度的旋轉(zhuǎn),縮放,變形等操作進(jìn)行數(shù)據(jù)擴(kuò)展;數(shù)據(jù)量擴(kuò)展較大;采用固定學(xué)習(xí)率的方法進(jìn)行訓(xùn)練學(xué)習(xí),實(shí)現(xiàn)粗檢測(cè)以及增強(qiáng)魯棒性。
(2)將數(shù)據(jù)通過(guò)較小尺度的旋轉(zhuǎn),縮放,變形等操作進(jìn)行數(shù)據(jù)擴(kuò)展;數(shù)據(jù)量擴(kuò)展一般;采用學(xué)習(xí)率分步下降的方法對(duì)第(1)步學(xué)習(xí)的模型進(jìn)行微調(diào),使之檢測(cè)更精確。
(3)將數(shù)據(jù)進(jìn)行輕微的預(yù)處理后,采用inv的訓(xùn)練策略對(duì)第(2)步的模型進(jìn)行微調(diào),得到最終的檢測(cè)模型。
訓(xùn)練流程:
①對(duì)訓(xùn)練圖片進(jìn)行統(tǒng)一歸一化至448×448;
②進(jìn)行第一輪訓(xùn)練,以目標(biāo)框的中心點(diǎn)為圓心對(duì)訓(xùn)練圖片進(jìn)行逆時(shí)針50度至順時(shí)針50度之間的旋轉(zhuǎn),每次增加5度,對(duì)旋轉(zhuǎn)后的目標(biāo)框求外接正矩形作為真實(shí)目標(biāo)框;對(duì)圖片在縮小0.3倍至擴(kuò)大0.3倍之間進(jìn)行尺度變換,每次變換比率增加0.05;對(duì)圖片進(jìn)行鏡像變換;對(duì)圖片進(jìn)行三通道同步的像素值調(diào)整,調(diào)整范圍在-50至+50之間,每次增加10,如果像素值大于255或小于0則將該像素點(diǎn)的值置為255或0;對(duì)圖像進(jìn)行高斯模糊;對(duì)圖像疊加多種噪聲;經(jīng)過(guò)上述變換所產(chǎn)生的圖片加上原有的31890張圖片共有130萬(wàn)以上的數(shù)量。將上述產(chǎn)生的圖片以恒定0.001的學(xué)習(xí)率進(jìn)行訓(xùn)練來(lái)完成第一階段的模型。第一階段學(xué)習(xí)率:
lr=base_lr
③調(diào)整第一階段的各個(gè)變動(dòng)范圍,旋轉(zhuǎn)范圍改為逆時(shí)針20度至順時(shí)針20度,每次增加3度;尺度變換比例調(diào)整到-0.2到0.19之間,每次增加0.03;像素值調(diào)整的范圍改為-30至+30之間,每次增加5;其余操作的程度也同樣降低一些。第二階段訓(xùn)練采用變化的學(xué)習(xí)率,初始學(xué)習(xí)率設(shè)置為0.001,gamma=0.1,每經(jīng)過(guò)20000次迭代將學(xué)習(xí)率乘0.1。使用上述變換所得圖片和原圖一同進(jìn)行訓(xùn)練,得到第二階段模型。第二階段學(xué)習(xí)率:
lr=base_lr×gamma∧(floor(iter/step))
④旋轉(zhuǎn)調(diào)整到正負(fù)5度間,每次增加0.1度,尺度變換比例調(diào)整到-0.05到+0.05之間,每次增加0.01,像素值調(diào)整范圍改為-10到+10之間,每次增加2,其余操作的強(qiáng)度進(jìn)一步降低。第三階段訓(xùn)練初始學(xué)習(xí)率仍舊為 0.001,gamma=0.00001,power=0.75。第三階段學(xué)習(xí)率:
lr=base_lr×(1+gamma×iter)^(-power)
表1 測(cè)試結(jié)果
該檢測(cè)與識(shí)別模型在訓(xùn)練測(cè)試圖片數(shù)據(jù)集上的mAP能夠達(dá)到 70.6%,在 CPU為 i7 6970K,GPU為GTX1080,內(nèi)存為8G的PC上的檢測(cè)速度為23ms/幀,約43.5幀/s,達(dá)到實(shí)時(shí)。以上結(jié)果表明本論文提出的方法在道路實(shí)景車輛與行人的檢測(cè)中能夠得到非常好的效果,在以后的工作中應(yīng)逐漸提升其對(duì)各種不同場(chǎng)景的適應(yīng)性,使之能夠得到更廣泛的應(yīng)用。
本文中應(yīng)用深度學(xué)習(xí)的方法,采用雙卷積加內(nèi)部競(jìng)爭(zhēng)的機(jī)制對(duì)道路實(shí)景中的車輛和行人進(jìn)行檢測(cè),得到了令人滿意的結(jié)果,實(shí)驗(yàn)仍然有不足的地方需要改進(jìn),今后可以收集制作更大更豐富的數(shù)據(jù)集,優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),將本文中的方法更好地推向應(yīng)用,推向?qū)嶋H。
參考文獻(xiàn):
[1]胡銦,楊靜宇.基于模型的車輛檢測(cè)與跟蹤[J].中國(guó)圖象圖形學(xué)報(bào),2008,13(3):450-455.
[2]丁偉強(qiáng),董育寧.基于計(jì)算機(jī)視頻圖像的車輛檢測(cè)[J].電視技術(shù),2004(10):81-83.
[3]郁梅,王圣男,蔣剛毅.復(fù)雜交通場(chǎng)景中的車輛檢測(cè)與跟蹤新方法[J].光電工程,2005,32(2):67-70.
[4]齊美彬,潘燕,張銀霞.基于車底陰影的前方運(yùn)動(dòng)車輛檢測(cè)[J].電子測(cè)量與儀器學(xué)報(bào),2012,26(1):54-59.
[5]李玉萍.基于視覺(jué)的車輛檢測(cè)技術(shù)現(xiàn)狀[J].國(guó)外電子測(cè)量技術(shù),2007,26(10):21-23.
[6]郭烈,王榮本,張明恒,等.基于Adaboost算法的行人檢測(cè)方法[J].計(jì)算機(jī)工程,2008,34(3):202-204.
[7]Guo K,Zhang M,Sun C,et al.3D Fingertip Tracking Algorithm Based on Computer Vision[J].Journal of Computer Research&Development,2010,47(6):1013-1019.
[8]Lecun Y,Bengio Y,Hinton G.Deep Learning[J].Nature,2015,521(7553):436-444.
[9]Redmon J,Divvala S,Girshick R,et al.You Only Look Once:Unified,Real-Time Object Detection[J],2015:779-788.
[10]Redmon J,Farhadi A.YOLO9000:Better,Faster,Stronger[J].2016.
[11]Zhang K,Zhang Z,Li Z,et al.Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks[J].IEEE Signal Processing Letters,2016,23(10):1499-1503.
[12]Ren S,He K,Girshick R,et al.Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks.[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2015,39(6):1137-1149.
[13]Girshick R.Fast R-CNN[J].Computer Science,2015.
[14]Li H,Lin Z,Shen X,et al.A Convolutional Neural Network Cascade for Face Detection[C].Computer Vision and Pattern Recognition.IEEE,2015:5325-5334.
[15]Viola P,Jones M J.Robust Real-time Face Detection[J].International Journal of Computer Vision,2004,57(2):137-154.