魏博碩 馬自強(qiáng)
摘要:車輛和行人檢測技術(shù)是目標(biāo)識別領(lǐng)域的研究熱點。本論文研究了一種基于深度學(xué)習(xí)的交通目標(biāo)檢測算法,該算法基于 YOLO v3 框架,經(jīng)過Darknet-53網(wǎng)絡(luò)進(jìn)行特征提取和分類,獲得邊界框,從而完成車輛和行人多類交通目標(biāo)的檢測。實驗顯示,本算法能有效檢測不同交通場景下不同類別車輛和行人,性能較好。
關(guān)鍵詞:深度學(xué)習(xí);YOLO v3;車輛檢測;行人檢測;
1緒論
目標(biāo)識別是自動駕駛最為重要的一個環(huán)節(jié)。經(jīng)過對交通事故發(fā)生的原因進(jìn)行分析,發(fā)現(xiàn)大多數(shù)是由于駕駛?cè)藛T不清楚前方路況信息導(dǎo)致。因此,迫切需要一種可以對道路目標(biāo)區(qū)分車輛和行人的算法,將檢測到的分類信息傳遞給相關(guān)人員和部門,以確保交通安全。因此,車輛識別和行人識別技術(shù)已成為了各大互聯(lián)網(wǎng)科技公司和汽車公司的研究熱點[1]。
近年來計算機(jī)視覺領(lǐng)域發(fā)展迅猛,基于深度學(xué)習(xí)的目標(biāo)檢測技術(shù)層出不窮。主要分為兩大類,一是以Fast R-CNN和Faster R-CNN為代表的基于區(qū)域生成的兩階段檢測算法;二是以YOLO系列和SSD為代表的基于回歸的單階段檢測算法。兩階段的檢測算法通常具有較高的檢測精度,但檢測速度較慢,而單階段檢測算法則是提高了檢測速度,同時檢測的精確度也不斷地提升[2]。本文選擇YOLO v3模型作為交通智能識別的主要技術(shù)。
YOLO v3模型是由1*1卷積再進(jìn)行3*3卷積組合而成的骨干特征提取網(wǎng)絡(luò)[3],由于總計有五十三個卷積層,又稱為Darknet-53。YOLO v3中,只有卷積層,通過調(diào)整卷積核的步長stride來控制輸出特征圖的大小尺寸。因此輸入圖片大小尺寸幾乎沒有限制。該模型借鑒了特征金字塔結(jié)構(gòu)圖整體設(shè)計概念的想法,大尺寸的特征圖檢測小尺寸的物體,而小尺寸的特征圖用于檢測大尺寸的物體。YOLO v3輸出三個特征圖,大目標(biāo)特征圖降采樣三十二倍,中目標(biāo)特征圖降采樣十六倍,小目標(biāo)降采樣八倍。輸入圖像先經(jīng)過沒有全連接層的Darknet-53網(wǎng)絡(luò),再將YOLOblock生成的長度和寬度沒有變化的特征圖經(jīng)1*1卷積、3*3卷積層之后生成的特征圖再經(jīng)過1*1卷積加上采樣,拼接Darnet-53網(wǎng)絡(luò)的中間層輸出結(jié)果,產(chǎn)生特征圖二。同樣的循環(huán)之后產(chǎn)生特征圖三。YOLO v3采用多個獨立的邏輯回歸函數(shù)輸出類別得到分類,用交叉熵計算類別損失,這就實現(xiàn)了多標(biāo)簽分類。
2 基于YOLO v3模型的多目標(biāo)檢測
2.1 系統(tǒng)整體框架
本文以YOLO v3算法為框架,輸入圖像的大小為416*416,經(jīng)過Darknet-53網(wǎng)絡(luò)進(jìn)行特征提取和分類,產(chǎn)生候選框,接著在圖片或者視頻中畫出邊界框,最后統(tǒng)計檢測的總車輛數(shù)和總?cè)藬?shù)。整體框架如圖1所示。
2.2網(wǎng)絡(luò)特征提取
YOLO v3提取多特征層進(jìn)行目標(biāo)檢測,一共提取三個特征層,先通過1*1的卷積層進(jìn)行降維,再通過3*3的卷積核來進(jìn)行三種不同尺寸的提取特征,三種特征層的shape分別為(52,52,256)、(26,26,512)、(13,13,1024),每個特征層都要預(yù)測出坐標(biāo)、高寬、類別置信度,這三個特征層后面用于與上采樣后的其他特征層堆疊拼接來進(jìn)行特征融合。提取的車輛特征包括車頭、車的側(cè)身、輪胎等,行人的特征包括頭部、手部、腿部等特征。
2.3目標(biāo)分類和邊界框繪制
特征融合后的數(shù)據(jù)作為輸入數(shù)據(jù),對邊界框進(jìn)行多標(biāo)簽預(yù)測使用sigmoid分類器進(jìn)行分類來得到各個類別的概率,訓(xùn)練時使用交叉熵?fù)p失同時結(jié)合Adam來進(jìn)行優(yōu)化。
邊界框確認(rèn)算法借鑒了Faster R-CNN中的錨框思想并對其進(jìn)行了改進(jìn),改進(jìn)后的錨框?qū)捄透呤菍⒂?xùn)練數(shù)據(jù)集中的錨框進(jìn)行kmeans聚類來得到的,不需要經(jīng)過手工來獲得[5]。如圖2中所示,展示了YOLO v3目標(biāo)邊界框預(yù)測過程。圖中虛線的矩形框是預(yù)先設(shè)定邊界框,實線矩形框是通過Darknet-53網(wǎng)絡(luò)預(yù)測的偏移量計算得到的預(yù)測邊界框。其中預(yù)先設(shè)定的邊界框在特征圖上的中心坐標(biāo)是(cx,cy),預(yù)先設(shè)定的邊界框在特征圖上的寬和高是(pw,ph),網(wǎng)絡(luò)預(yù)測的邊界框中心偏移量是(tx,ty),寬高縮放比是(tw,th),最終預(yù)測的目標(biāo)邊界框是(bx,by,bw,bh),sigmoid函數(shù)目的是將預(yù)測偏移量縮放在0至1之間,使得預(yù)設(shè)錨框的中心坐標(biāo)固定在一個格子之中,能夠加快網(wǎng)絡(luò)收斂。
將Darknet-53網(wǎng)絡(luò)預(yù)測到的x、y和置信度使用sigmoid函數(shù)激活分別偏移量和類別概率,接著講偏移量加到中心坐標(biāo)中,將(x,y,w,h)轉(zhuǎn)換成圖像中左上角坐標(biāo)和右下角坐標(biāo),過濾類別概率低于0.5的邊界框,利用NMS算法得到最終的定位框,最終得到每個方框(ind,x1,y1,x2,y2,s,s_cls,index_cls)并畫出。定位框算法如下:
1、將(x,y)和置信度使用sigmoid函數(shù)激活
2、將偏移量添加到中心坐標(biāo)中
3、將類別分?jǐn)?shù)使用sigmoid函數(shù)激活
4、將(中心x,中心y,高度,寬度)轉(zhuǎn)換成(左上角x,左上角y,右下角x,右下角y)
5、過濾掉置信度低于0.5的框
6、提取得分最高的分類以及該類的索引
7、非極大抑制
8、畫出定位框
3 YOLO v3模型的實現(xiàn)
3.1 實驗數(shù)據(jù)及參數(shù)設(shè)置
本文選用已經(jīng)標(biāo)注好的VOC2012數(shù)據(jù)集,包括訓(xùn)練集5717 張圖像、驗證集5823張圖像、訓(xùn)練驗證集11540張圖像。圖像尺寸大小為416*416。參數(shù)設(shè)置包括學(xué)習(xí)率初始值設(shè)為0.001,權(quán)重衰減值0設(shè)為.001,動量參數(shù)設(shè)定為0.9。
3.2實驗結(jié)果
交通場景下的數(shù)據(jù)測試主要考慮到不同的光照強(qiáng)度、不同車輛之間的遮擋、人與人之間的遮擋等問題。本文采用的測試交通場景具有廣泛性,涵蓋了單向道路、雙向道路不同的路段,來確保多目標(biāo)進(jìn)行檢測的準(zhǔn)確率。
實驗結(jié)果如圖3所示,在圖片或視頻中框出行人和車輛,車輛檢測的類型包括car、bus、motorbike三種類型,并顯示出該場景下總車輛數(shù)和總?cè)藬?shù)。經(jīng)多次試驗表明,場景中包含摩托車時,無法識別出摩托車上的人,但是可以很好的識別出其他兩種類型的車輛和行人。
本實驗精確度達(dá)到了84.25%,精確度變化曲線如圖4所示。精確度計算如公式(1),其中:是被正確預(yù)測為正樣本的數(shù)量,也就將圖片中的圖像識別成車的數(shù)量;是負(fù)樣本被預(yù)測為正樣本的樣本數(shù)量,也就是誤判的數(shù)量。
4 結(jié)束語
本文通過改進(jìn)YOLO v3的損失函數(shù)和優(yōu)化訓(xùn)練過程中的參數(shù), 使用K-means算法聚類初始目標(biāo)邊界框以及開源數(shù)據(jù)集進(jìn)行訓(xùn)練, 實驗結(jié)果表明,改進(jìn)后的算法在檢測準(zhǔn)確率以及檢測速度各方面上有了提升。
參考文獻(xiàn):
[1]楊恩澤. 基于深度學(xué)習(xí)的交通車輛檢測與識別算法研究[D].北京交通大學(xué),2019.
[2]卞山峰. 基于YOLO模型的車輛實時檢測算法研究[D].河南工業(yè)大學(xué),2020.
[3]洪松,高定國.基于YOLO v3的車輛和行人檢測方法[J].電腦知識與技術(shù),2020,16(08):192-193.
中南林業(yè)科技大學(xué)涉外學(xué)院 湖南 長沙