鄭秋梅,王璐璐,王風(fēng)華
(中國(guó)石油大學(xué)(華東) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 青島 266580)
隨著社會(huì)經(jīng)濟(jì)的發(fā)展與城市化進(jìn)程的加快,城市人口和機(jī)動(dòng)車輛日益增加,城市道路交通的擁擠與阻塞已成為大中城市中普遍存在的問題。交通車輛識(shí)別系統(tǒng)通過快速準(zhǔn)確檢測(cè)交通道路上的機(jī)動(dòng)車輛,對(duì)于維護(hù)道路交通秩序、保障道路交通安全暢通、引導(dǎo)車輛和行人通行等方面具有重要作用[1]。在交通目標(biāo)識(shí)別過程中,小目標(biāo)識(shí)別與跟蹤是研究的關(guān)鍵問題之一。目前,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)已被廣泛應(yīng)用于圖像識(shí)別與目標(biāo)檢測(cè),其避免了手工特征設(shè)計(jì)難度大的問題,且無需預(yù)處理就可從大量樣本中學(xué)習(xí)更多的特征進(jìn)行目標(biāo)檢測(cè)。現(xiàn)有基于CNN的目標(biāo)檢測(cè)方法主要包括基于區(qū)域的檢測(cè)方法(如R-CNN[2]、Fast R-CNN[3]、Faster R-CNN[4]等)和基于回歸的檢測(cè)方法(如YOLO[5]、YOLOv2[6]、YOLOv3[7]、SSD[8]等)。
在基于區(qū)域的檢測(cè)方法中,R-CNN采用固定尺寸的輸入圖像,訓(xùn)練步驟復(fù)雜且速度慢。Fast R-CNN在R-CNN的基礎(chǔ)上,結(jié)合SPP-Net[9]提升了R-CNN的訓(xùn)練和檢測(cè)速度,但由于其采用選擇性搜索算法[10]提取建議框,導(dǎo)致網(wǎng)絡(luò)檢測(cè)速度依舊無法滿足實(shí)時(shí)性要求。Faster R-CNN在Fast R-CNN的基礎(chǔ)上,使用RPN網(wǎng)絡(luò)提取建議框,提升了檢測(cè)精度與速度,但仍不能夠滿足實(shí)時(shí)性要求。
在基于回歸的檢測(cè)方法中,YOLO檢測(cè)速度可達(dá)到45 frame/s,由于其無需生成建議框,因此存在嚴(yán)重的定位誤差,而損失函數(shù)設(shè)計(jì)也存在不合理之處,導(dǎo)致部分靠得較近或尺寸較小的目標(biāo)檢測(cè)精度不高。YOLOv2采用Darknet-19結(jié)構(gòu)作為特征提取網(wǎng)絡(luò),大幅提升了檢測(cè)速度,但由于其結(jié)構(gòu)簡(jiǎn)單,對(duì)于小目標(biāo)的檢測(cè)精度提升仍較有限。SSD算法采用VGG[11]作為特征提取結(jié)構(gòu),利用不同卷積層的特征信息增強(qiáng)提取特征的表征能力,具有較高的檢測(cè)準(zhǔn)確率,但由于SSD提取的特征單一,因此在小目標(biāo)檢測(cè)方面性能仍不佳。YOLOv3在YOLOv2的基礎(chǔ)上,利用ResNet網(wǎng)絡(luò)[12]增加特征提取的網(wǎng)絡(luò)層數(shù),以Darknet-53結(jié)構(gòu)作為特征提取網(wǎng)絡(luò),獲得接近于ResNet101的檢測(cè)效果,ResNet網(wǎng)絡(luò)的殘差塊結(jié)構(gòu)和跳躍連接機(jī)制有效解決了網(wǎng)絡(luò)加深導(dǎo)致的梯度彌散和梯度爆炸問題,同時(shí)特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,FPN)[13]融合多尺度特征信息,提高了檢測(cè)精度,但過深的網(wǎng)絡(luò)結(jié)構(gòu)容易使得淺層特征層中的目標(biāo)位置信息丟失,導(dǎo)致較高的漏檢率,從而不利于小目標(biāo)的檢測(cè),因此相比YOLOv2檢測(cè)速度較慢。
綜上所述,對(duì)于智能交通中小尺度車輛檢測(cè)精度仍有較大的提升空間。在復(fù)雜背景的交通圖像檢測(cè)中,淺層特征具有較高的分辨率及更強(qiáng)的位置信息。深層特征具有較強(qiáng)的語義信息,但位置信息較粗糙。隨著網(wǎng)絡(luò)結(jié)構(gòu)的加深,導(dǎo)致淺層特征信息利用不充分,致使許多小目標(biāo)位置信息丟失。另外,過于復(fù)雜和冗余的網(wǎng)絡(luò)結(jié)構(gòu)以及過多的參數(shù)會(huì)導(dǎo)致訓(xùn)練復(fù)雜、數(shù)據(jù)需求增加以及檢測(cè)速度降低[14]。
在實(shí)時(shí)小目標(biāo)檢測(cè)方法中,YOLOv3結(jié)合Darknet-53結(jié)構(gòu)和融合多尺度FPN結(jié)構(gòu),取得了較好的檢測(cè)性能,但YOLOv3的特征提取網(wǎng)絡(luò)過深,沒有充分利用淺層特征進(jìn)行融合,并且損失函數(shù)設(shè)計(jì)也存在不合理之處,因此降低了檢測(cè)速度。本文提出改進(jìn)的S-YOLOv3方法,使用ResNet網(wǎng)絡(luò)優(yōu)化YOLOv3的特征提取結(jié)構(gòu)Darknet-53,增強(qiáng)低層特征的表征能力。應(yīng)用FPN獲取目標(biāo)的4個(gè)尺度特征,通過充分融合淺層特征和深層特征信息,增強(qiáng)小目標(biāo)物體、相互遮擋物體的檢測(cè)效果。另外,改進(jìn)原損失函數(shù),通過調(diào)整不同大小的目標(biāo)對(duì)損失函數(shù)的影響權(quán)重,降低大目標(biāo)誤差對(duì)小目標(biāo)的影響,從而加速模型收斂,提升小目標(biāo)檢測(cè)精度。
YOLOv3方法按照特征圖的尺度劃分為S×S的網(wǎng)格,每個(gè)網(wǎng)格預(yù)測(cè)B個(gè)邊界框并對(duì)C個(gè)類別的目標(biāo)進(jìn)行檢測(cè),最終輸出每類目標(biāo)的邊界框并分別計(jì)算每個(gè)邊界框的置信度。置信度由每個(gè)網(wǎng)格中所包含的檢測(cè)目標(biāo)概率和輸出邊界框的預(yù)測(cè)框與真實(shí)邊界框的并交比(Intersection over Union,IOU)共同確定。
YOLOv3設(shè)定每個(gè)網(wǎng)格單元預(yù)測(cè)3個(gè)anchor box,每個(gè)anchor box預(yù)測(cè)3個(gè)邊界框,每個(gè)邊界框預(yù)測(cè)4個(gè)值,分別為tx、ty、tw、th,若目標(biāo)中心在單元格中相對(duì)于圖像左上角有偏移(cx,cy),如圖1所示[7],則進(jìn)行修正,具體公式[14]為:
bx=σ(tx)+cx
by=σ(ty)+cy
bw=pwetw
bh=pheth
其中,pw、ph表示網(wǎng)格對(duì)應(yīng)anchor box的寬和高,計(jì)算邊界框的位置,通過設(shè)定合適的置信度分?jǐn)?shù),過濾低分的預(yù)測(cè)框,對(duì)剩下的預(yù)測(cè)框執(zhí)行非極大值抑制[15]處理,得到最終的預(yù)測(cè)結(jié)果。
YOLOv3方法改進(jìn)了YOLOv2的Darknet-19,以更深的Darknet-53結(jié)構(gòu)作為新的特征提取網(wǎng)絡(luò),如表1所示,該特征提取網(wǎng)絡(luò)利用ResNet網(wǎng)絡(luò)的殘差塊結(jié)構(gòu)和跳躍連接機(jī)制,由52個(gè)卷積層和1個(gè)全連接層組成,交替使用1×1和3×3的濾波器進(jìn)行卷積。殘差塊是若干層的集合,并不是直接輸出特征表示,而是輸出特征表示和輸入之間的殘差,使用該殘差塊加上原始輸入可以得到所求的特征表示。該跳躍連接機(jī)制使得每個(gè)殘差塊只需擬合殘差,解決了反向傳播梯度彌散問題,并且降低了每個(gè)殘差塊數(shù)據(jù)擬合的復(fù)雜程度。雖然更深的網(wǎng)絡(luò)層可以提高特征提取能力,但是隨著網(wǎng)絡(luò)的加深,復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)及過多的參數(shù)會(huì)使訓(xùn)練過程更繁瑣,從而增大數(shù)據(jù)需求并減慢檢測(cè)速度,因此YOLOv3采用Darknet-53結(jié)構(gòu)。
表1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)
同時(shí),YOLOv3借鑒了FPN的思想,如圖2所示,采用3個(gè)不同尺度的特征層來預(yù)測(cè)待檢測(cè)目標(biāo),輸出3個(gè)尺度規(guī)格分別為13×13、26×26、52×52的特征圖,在網(wǎng)絡(luò)輸出的后兩個(gè)特征圖上進(jìn)行采樣,與網(wǎng)絡(luò)前期相應(yīng)尺度的特征圖融合成有效信息進(jìn)行預(yù)測(cè)。相比YOLOv2和YOLO,YOLOv3在損失一定速度的基礎(chǔ)上提升了檢測(cè)精度,但仍能較好地滿足實(shí)時(shí)性要求。采用多尺度融合的檢測(cè)方法對(duì)于圖像中不同尺寸的目標(biāo)檢測(cè)具有較好的魯棒性,但僅利用3個(gè)尺度的特征對(duì)淺層信息的利用并不充分,會(huì)導(dǎo)致含細(xì)節(jié)信息的低層特征沒有得到充分利用,許多小目標(biāo)的位置信息丟失,不利于小目標(biāo)的檢測(cè)。
圖2 YOLOv3中的FPN多尺度融合
受ResNet網(wǎng)絡(luò)結(jié)構(gòu)的跳躍連接機(jī)制和殘差塊結(jié)構(gòu)的啟發(fā),本文特征提取網(wǎng)絡(luò)在原始YOLOv3 Darknet-53結(jié)構(gòu)的基礎(chǔ)上進(jìn)行改進(jìn),構(gòu)建Darknet-50結(jié)構(gòu)。過渡層為交替使用的1×1和3×3卷積層,使用1×1的卷積層有助于平滑提取的特征,避免下采樣過程中丟失更多的特征信息。在特征提取的卷積過程中繼續(xù)利用ResNet結(jié)構(gòu)進(jìn)行恒等映射與殘差分支,注重淺層特征信息的提取,同時(shí)去除YOLO檢測(cè)層前的兩組卷積層,簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu)。在保證檢測(cè)滿足實(shí)時(shí)性要求的前提下,提升檢測(cè)精度并降低漏檢率。
本文設(shè)計(jì)的Darknet-50網(wǎng)絡(luò)結(jié)構(gòu)如表2右側(cè)所示,左側(cè)為原始YOLOv3的Darknet-53結(jié)構(gòu)。改進(jìn)后的特征提取網(wǎng)絡(luò)Darknet-50更加注重淺層特征的信息提取,去除了冗余的卷積層,過渡層增加的1×1卷積層可以有效避免下采樣過程中丟失更多的特征信息,進(jìn)一步增強(qiáng)目標(biāo)特征的判別能力。
表2 改進(jìn)前后的YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)對(duì)比
在復(fù)雜背景的圖像檢測(cè)中,小目標(biāo)一般只有幾十甚至幾個(gè)像素,特征提取網(wǎng)絡(luò)從這些少量像素中能提取出的語義信息非常有限。在特征提取過程中,淺層特征具有較高的分辨率及更強(qiáng)的位置信息,深層特征具有較強(qiáng)的語義信息,但位置信息比較粗糙。根據(jù)圖像梯度上升法[16],利用不同層提取出的特征對(duì)原始圖像進(jìn)行重構(gòu),得到的含細(xì)節(jié)信息的低層特征比含語義信息的高層特征更有助于目標(biāo)檢測(cè)。原YOLOv3使用3個(gè)不同尺度的特征圖來預(yù)測(cè)待檢測(cè)目標(biāo),輸出3個(gè)尺度規(guī)格分別為13×13、26×26和52×52的特征圖,在網(wǎng)絡(luò)輸出的后兩個(gè)特征圖上進(jìn)行采樣,與網(wǎng)絡(luò)前期相應(yīng)尺寸的特征圖融合成有效信息進(jìn)行預(yù)測(cè)。但是,僅利用3個(gè)尺度的特征對(duì)淺層信息的利用并不充分,會(huì)導(dǎo)致許多小目標(biāo)的信息丟失。
本文對(duì)YOLOv3中多尺度檢測(cè)模塊進(jìn)行改進(jìn),從原3個(gè)尺度檢測(cè)擴(kuò)展為4個(gè)尺度,構(gòu)成4個(gè)分支結(jié)構(gòu),如圖3所示,輸入尺寸為416×416,每個(gè)分支共享從ResNet網(wǎng)絡(luò)中提取的特征,并對(duì)13×13、26×26、52×52的分支進(jìn)行兩倍上采樣操作,將上采樣后的特征層與淺特征層進(jìn)行級(jí)聯(lián),在4個(gè)尺度的融合特征圖上分別進(jìn)行獨(dú)立檢測(cè)。改進(jìn)后的多尺度融合可以從淺層特征層中學(xué)習(xí)較強(qiáng)的位置特征,融合上采樣后的深層特征進(jìn)行更細(xì)粒度的檢測(cè)。通過融合更多尺度的淺層特征信息,增強(qiáng)特征金字塔的表征能力,提升小目標(biāo)的檢測(cè)精度,降低漏檢率,并通過非極大值抑制算法去除冗余框。其中,YOLOv3沿用了YOLOv2采用的K-means聚類方式初始化anchor box,不同于Faster R-CNN和SSD的人工設(shè)定,可以更加符合本身數(shù)據(jù)的特點(diǎn)。在目標(biāo)檢測(cè)過程中,anchor box數(shù)量和大小直接影響檢測(cè)精度和速度,因此anchor參數(shù)設(shè)定十分重要。通過k-means聚類[17]選取合適的IOU可使模型在召回率和精確度之間取得平衡。根據(jù)IOU和anchor box之間的關(guān)系,本文采用12個(gè)anchor box。
圖3 S-YOLOv3檢測(cè)過程
對(duì)于YOLOv3損失函數(shù),文獻(xiàn)[7]中沒有進(jìn)行具體說明,本文根據(jù)開源Darknet及對(duì)比YOLOv2,得出YOLOv3損失函數(shù)為:
loga(pi(ci))+(1-p′i(c))loga(1-pi(c))]
在YOLOv3原損失函數(shù)中,坐標(biāo)誤差采用平方和損失函數(shù),置信度和分類誤差采用二元交叉熵?fù)p失函數(shù)。交叉熵?fù)p失可以避免誤差較小時(shí)的梯度消失問題,只有當(dāng)預(yù)測(cè)值和實(shí)際值無限接近時(shí),loss才能趨近于0,平方差損失在進(jìn)行梯度下降計(jì)算時(shí)會(huì)出現(xiàn)梯度彌散,導(dǎo)致學(xué)習(xí)速率下降,并且使用交叉熵可以避免梯度消散問題。
理論上損失函數(shù)應(yīng)盡量保證大邊界框的偏差重要性小于小邊界框的偏差重要性,而原損失函數(shù)由于直接預(yù)測(cè)邊界框的寬度和高度差的平方,因此當(dāng)目標(biāo)的寬高比很小時(shí),邊界框的寬度重要性容易被低估,即大的待檢測(cè)對(duì)象會(huì)對(duì)損失函數(shù)產(chǎn)生更大的影響,而小的待檢測(cè)對(duì)象的損失函數(shù)通常會(huì)被忽略,在面對(duì)較小的待檢測(cè)目標(biāo)時(shí),邊界框可能無法捕獲目標(biāo),使得損失函數(shù)的輸出較小,從而對(duì)檢測(cè)精度產(chǎn)生影響。
針對(duì)上述問題,本文損失函數(shù)的改進(jìn)思想為:對(duì)檢測(cè)目標(biāo)的寬度和高度部分進(jìn)行加權(quán),考慮真實(shí)目標(biāo)邊框的尺寸,降低大目標(biāo)誤差對(duì)小目標(biāo)檢測(cè)效果的影響,使得小目標(biāo)和大目標(biāo)對(duì)損失函數(shù)的影響程度相同。改進(jìn)后的損失函數(shù)為:
(1-c′i)loga(1-ci)-
(1-c′i)loga(1-ci)-
(1-p′i(c))loga(1-pi(c))]
改進(jìn)損失函數(shù)的坐標(biāo)誤差不僅使用平方和損失,而且考慮真實(shí)邊框的尺寸,根據(jù)檢測(cè)目標(biāo)的大小調(diào)整其在損失函數(shù)中的權(quán)重,這樣改進(jìn)后的損失函數(shù)在面對(duì)較小的目標(biāo)時(shí),不會(huì)因其誤差過小而被忽略,也不會(huì)因大目標(biāo)物體的誤差過大而掩蓋小目標(biāo)物體的誤差,進(jìn)一步修正了損失函數(shù)的準(zhǔn)確性,加速了模型收斂,從而有效提升小尺寸目標(biāo)檢測(cè)的準(zhǔn)確率。
KITTI[18]由德國(guó)卡爾斯魯厄理工學(xué)院和豐田美國(guó)技術(shù)研究院聯(lián)合創(chuàng)辦。KITTI數(shù)據(jù)集是目前國(guó)際上最大的自動(dòng)駕駛場(chǎng)景下的計(jì)算機(jī)視覺算法評(píng)測(cè)數(shù)據(jù)集,包含市區(qū)、鄉(xiāng)村和高速公路等場(chǎng)景中采集的真實(shí)圖像數(shù)據(jù),每張圖像最多有15輛車和30個(gè)行人,并且有不同程度的遮擋和截?cái)?數(shù)據(jù)分布如圖4所示。
圖4 KITTI數(shù)據(jù)分布
本文將實(shí)驗(yàn)數(shù)據(jù)集按照Pascal VOC[19]數(shù)據(jù)集格式進(jìn)行整理,按比例將數(shù)據(jù)分為訓(xùn)練集和測(cè)試集。KITTI數(shù)據(jù)集中的原始數(shù)據(jù)被分為Road、City、Residential、Person和Campus 5類典型樣本,具體細(xì)分為Car、Van、Person、Truck、Pedestrian、Cyclist、Tram和Misc類別。本文實(shí)驗(yàn)選用4個(gè)類別標(biāo)簽:Car,Van,Truck和Tram,選取該數(shù)據(jù)集中的7 481張圖片作為實(shí)驗(yàn)數(shù)據(jù),如表3所示,其中,4 000張用于驗(yàn)證數(shù)據(jù)集,3 481張用于測(cè)試數(shù)據(jù)集。
表3 實(shí)驗(yàn)數(shù)據(jù)分布
將提取卷積特征的Darknet-50先在ImageNet上進(jìn)行預(yù)訓(xùn)練,縮短訓(xùn)練時(shí)間??s放輸入圖像至416×416,在Darknet-50殘差網(wǎng)絡(luò)中提取特征,使用4個(gè)不同尺度的卷積特征層預(yù)測(cè)車輛位置和坐標(biāo)類型。本文選用分批梯度下降法[20]尋找損失函數(shù)的最小值,通過K-means聚類算法自動(dòng)生成合適的anchor box。在KITTI數(shù)據(jù)集上,S-YOLOv3選用4個(gè)尺度的12個(gè)anchor box,分別為(12,26)、(15,45)、(24,23)、(29,51)、(33,81)、(35,54)、(46,100)、(54,67)、(87,105)、(105,170)、(150,245)、(165,321)。
為增強(qiáng)對(duì)比性,在整個(gè)訓(xùn)練過程中初始值設(shè)置參考YOLOv3,最大迭代為50 000次,初始化學(xué)習(xí)率為0.001,batch_size為64,decay為0.000 5,momentum為0.9。根據(jù)損失下降的趨勢(shì),適當(dāng)調(diào)節(jié)學(xué)習(xí)率和batch_size值,直至訓(xùn)練數(shù)據(jù)集輸出的損失函數(shù)值小于等于閾值或達(dá)到設(shè)置的最大迭代次數(shù)時(shí)停止訓(xùn)練,得到已訓(xùn)練的S-YOLOv3網(wǎng)絡(luò)。
為比較卷積神經(jīng)網(wǎng)絡(luò)在改進(jìn)尺度檢測(cè)模塊前后的效果,本文在YOLOv3網(wǎng)絡(luò)中進(jìn)行多尺度融合檢測(cè)實(shí)驗(yàn),并在KITTI數(shù)據(jù)集中進(jìn)行測(cè)試,結(jié)果顯示尺度檢測(cè)從原來的3個(gè)尺度改為4個(gè)尺度后,查全率從91.47%提高到93.97%,平均精度均值(Mean Average Precision,mPA)如圖5所示??梢钥闯?增加到4個(gè)尺度后的YOLOv3檢測(cè)mPA比3個(gè)尺度的YOLOv3有提升,說明改進(jìn)后的4個(gè)尺度模塊對(duì)提高查全率和查準(zhǔn)率均有較好效果。
圖5 YOLOv3在不同尺度時(shí)的平均精度均值對(duì)比
圖6為3個(gè)尺度和4個(gè)尺度的YOLOv3在KITTI數(shù)據(jù)集上對(duì)圖像的檢測(cè)效果??梢钥闯?4個(gè)尺度的YOLOv3可以檢測(cè)到遠(yuǎn)處更多的較小車輛的位置信息,提高了查全率,較3個(gè)尺度的YOLOv3檢測(cè)效果更好。
圖6 3個(gè)尺度和4個(gè)尺度的YOLOv3檢測(cè)效果對(duì)比
為驗(yàn)證改進(jìn)的損失函數(shù)對(duì)于目標(biāo)檢測(cè)的性能,實(shí)驗(yàn)在保證其他參數(shù)不變的情況下訓(xùn)練原始YOLOv3和改進(jìn)損失函數(shù)的S-YOLOv3檢測(cè)模型,對(duì)比兩個(gè)檢測(cè)模型的迭代次數(shù)與收斂效果,如圖7所示,改進(jìn)損失函數(shù)后的檢測(cè)模型收斂速度更快。
圖7 損失函數(shù)-迭代次數(shù)曲線圖
在KITTI數(shù)據(jù)集上進(jìn)行測(cè)試,如表4所示,YOLOv3在其他結(jié)構(gòu)均不做改動(dòng)的情況下,僅通過修改損失函數(shù)mPA就可得到1%左右的性能提升,且對(duì)小目標(biāo)的檢測(cè)效果提升更顯著。根據(jù)表4結(jié)果顯示,本文改進(jìn)的損失函數(shù)可以調(diào)整檢測(cè)大目標(biāo)和小目標(biāo)的損失影響權(quán)重,縮短收斂時(shí)間,學(xué)習(xí)效果更好,目標(biāo)平均檢測(cè)精度優(yōu)于原損失函數(shù)。
表4 KITTI數(shù)據(jù)集測(cè)試結(jié)果
通過整合以上所有改進(jìn)過程,形成S-YOLOv3網(wǎng)絡(luò)。實(shí)驗(yàn)對(duì)比Fast R-CNN[3]、Faster R-CNN[4]、YOLO[5]、YOLOv2[6]、YOLOv3[7]、SSD[8]、S-YOLOv3等方法在KITTI數(shù)據(jù)集上的檢測(cè)效果,通過檢測(cè)速度和mAP評(píng)價(jià)指標(biāo)評(píng)估本文提出的S-YOLOv3方法的性能,如表5所示。
表5 8種檢測(cè)方法在KITTI數(shù)據(jù)集上的效果對(duì)比
根據(jù)實(shí)驗(yàn)結(jié)果得出,本文S-YOLOv3方法在滿足實(shí)時(shí)性要求的前提下,在KITTI數(shù)據(jù)集4個(gè)標(biāo)簽類檢測(cè)中以52.45 frame/s檢測(cè)速度獲得了93.30%的平均檢測(cè)精度,雖然檢測(cè)速度低于SSD(300×300)方法的58.32 frame/s,但mAP高于SSD約12%,這是因?yàn)楸疚牟捎肦esNet改進(jìn)特征提取網(wǎng)絡(luò)和損失函數(shù)并融合多尺度檢測(cè)算法,通過增強(qiáng)小目標(biāo)特征信息并調(diào)整大目標(biāo)損失對(duì)小目標(biāo)損失的影響,提高小目標(biāo)檢測(cè)精度,在滿足實(shí)時(shí)性要求的同時(shí)提升了平均檢測(cè)精度。
圖8顯示了本文S-YOLOv3與YOLOv3方法在KITTI數(shù)據(jù)集上的檢測(cè)結(jié)果對(duì)比。可以看出,對(duì)于同一圖像中的車輛目標(biāo)檢測(cè),本文S-YOLOv3方法在查準(zhǔn)率和查全率方面均具有較好效果,尤其體現(xiàn)在小目標(biāo)檢測(cè)中。
圖8 S-YOLOv3與YOLOv3方法在KITTI數(shù)據(jù)集 上的檢測(cè)結(jié)果對(duì)比
本文在上述實(shí)驗(yàn)結(jié)果的基礎(chǔ)上,將選用的4類標(biāo)簽數(shù)據(jù)按照尺寸大小分為小目標(biāo)、中等目標(biāo)以及大目標(biāo)[21],分類原則為(0,32]、(32,96]、(96,416)。按照該策略評(píng)估本文檢測(cè)方法對(duì)小目標(biāo)的檢測(cè)效果,實(shí)驗(yàn)以查全率(Recall)和查準(zhǔn)率(Precision)為評(píng)估指標(biāo)。通過比較P-R曲線下面積(Area Under Curve,AUC),驗(yàn)證本文方法的性能。圖9~圖11顯示了在KITTI數(shù)據(jù)集上使用5種檢測(cè)方法對(duì)大小不同的3個(gè)類別目標(biāo)檢測(cè)的P-R曲線。可以看出,本文改進(jìn)的S-YOLOv3方法獲得了最佳性能,雖然在面對(duì)中等目標(biāo)和大目標(biāo)時(shí)與YOLOv3和SSD(300×300)方法相當(dāng),但是在小目標(biāo)檢測(cè)中,AUC值均高于其他方法,驗(yàn)證了本文方法的有效性,且在小目標(biāo)車輛檢測(cè)中性能提升明顯。
圖9 小目標(biāo)類的P-R曲線圖
圖10 中等目標(biāo)類的P-R曲線圖
圖11 大目標(biāo)類的P-R曲線圖
本文針對(duì)YOLOv3方法在小目標(biāo)檢測(cè)中速度較慢的問題,提出改進(jìn)的城市交通車輛檢測(cè)方法S-YOLOv3。利用ResNet網(wǎng)絡(luò)和多尺度卷積特征圖優(yōu)化特征提取網(wǎng)絡(luò)及融合更多尺度的特征層,并改進(jìn)損失函數(shù)調(diào)整大小目標(biāo)對(duì)損失值的影響權(quán)重,同時(shí)利用K-means算法生成anchor box。在KITTI數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文方法通過融合深層語義特征增強(qiáng)特征金字塔的表征能力,從而加速模型收斂,保證實(shí)時(shí)的檢測(cè)速度,并且在車輛檢測(cè)精度方面優(yōu)于現(xiàn)有目標(biāo)檢測(cè)方法。后續(xù)將在不同數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)以加強(qiáng)檢測(cè)模型的泛化能力,同時(shí)將側(cè)重圖像特征及數(shù)據(jù)增強(qiáng)的研究,通過增加不同尺寸輸入圖像的檢測(cè)提高模型魯棒性。