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