金 旺,易國洪,2,洪漢玉,陳思媛
1.武漢工程大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,武漢430205
2.武漢工程大學(xué) 智能機(jī)器人湖北省重點(diǎn)實(shí)驗(yàn)室,武漢430205
3.武漢工程大學(xué) 圖像處理與智能控制實(shí)驗(yàn)室,武漢430205
隨著汽車的越發(fā)普及,城市交通事故愈發(fā)頻繁,自動(dòng)駕駛技術(shù)能夠有效地避免交通事故發(fā)生。車輛檢測是自動(dòng)駕駛中的一項(xiàng)關(guān)鍵技術(shù),快速準(zhǔn)確的車輛檢測在減少交通事故上起著重要作用。
由于深度學(xué)習(xí)的快速發(fā)展,特別是卷積神經(jīng)網(wǎng)絡(luò)的出現(xiàn),越來越多的深度學(xué)習(xí)模型應(yīng)用于目標(biāo)檢測任務(wù)。根據(jù)檢測框的不同,目標(biāo)檢測算法可分為兩類,分別為基于候選區(qū)域生成的檢測算法和基于回歸的檢測算法?;诤蜻x區(qū)域生成的算法主要有R-CNN[1]、SPPNet[2]、Fast R-CNN[3]、Faster R-CNN[4]、R-FCN[5]。RCNN首次將深度學(xué)習(xí)應(yīng)用于目標(biāo)檢測任務(wù),利用選擇性搜索方法生成候選框,將每個(gè)候選框中提取的特征輸入到SVM中進(jìn)行分類。R-CNN相較于傳統(tǒng)檢測方法性能有很大的提升,但是R-CNN要求輸入圖像的尺寸固定,且候選框的生成需要大量計(jì)算導(dǎo)致檢測速度慢。SPP-Net引入了金字塔池化層,解決了圖像輸入尺寸固定的問題,但是SPP-Net難以進(jìn)行網(wǎng)絡(luò)參數(shù)微調(diào),限制了檢測精度的提升。Fast R-CNN使用感興趣區(qū)域池化層替代金字塔池化層,同時(shí)使用多任務(wù)損失的端到端訓(xùn)練,解決了SPP-Net整體訓(xùn)練困難的問題。但是Fast RCNN仍然使用選擇性搜索方法生成候選框,使得檢測速度仍然很慢。Faster R-CNN提出了區(qū)域生成網(wǎng)絡(luò)用于候選框的生成,極大地提高了候選框生成速度。但是Faster R-CNN仍然未能達(dá)到實(shí)時(shí)檢測的要求。R-FCN提出位置敏感池化層,相較于Faster R-CNN檢測速度更快,但是R-FCN同樣未能實(shí)現(xiàn)實(shí)時(shí)檢測。基于候選區(qū)域生成的算法雖然在檢測精度上有著良好的表現(xiàn),但在檢測實(shí)時(shí)性上仍面臨巨大的挑戰(zhàn)。
基于回歸的算法主要有YOLO[6]、SSD[7]、YOLOv2[8]、YOLOv3[9]?;诨貧w的方法直接通過回歸得到目標(biāo)的位置和分?jǐn)?shù)。這種方法不需要生成候選區(qū)域,極大地減小了計(jì)算量,從而提高了檢測的速度。YOLO最先使用回歸的方法進(jìn)行目標(biāo)檢測,該方法在GPU上檢測速度達(dá)到45 f/s,真正意義上實(shí)現(xiàn)了實(shí)時(shí)檢測。但是YOLO存在定位誤差,且對于重疊物體以及小物體檢測效果差。SSD通過預(yù)設(shè)先驗(yàn)框以及采用多尺度特征進(jìn)行檢測,提高了對于尺度變化較大的物體的檢測能力。但是SSD的多尺度特征均來自于最后的全連接層,沒有考慮卷積層之間的聯(lián)系。YOLOv2通過使用預(yù)設(shè)先驗(yàn)框、批量標(biāo)準(zhǔn)化以及多尺度訓(xùn)練等系列優(yōu)化手段,來提高算法的檢測精度。但是YOLOv2在檢測精度上相較于SSD并未得到提高。YOLOv3改變了基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu),使用殘差網(wǎng)絡(luò)提取特征,構(gòu)建特征金字塔網(wǎng)絡(luò)實(shí)現(xiàn)多尺度預(yù)測,在檢測精度上得到極大的提高。但是YOLOv3對于遮擋物體檢測性能不佳,對于尺寸變化較大的目標(biāo)存在漏檢的問題。同時(shí),YOLOv3網(wǎng)絡(luò)模型參數(shù)規(guī)模較大,計(jì)算成本高。
目前已有很多基于深度學(xué)習(xí)的車輛檢測算法,史凱靜等人[10]通過改進(jìn)FAST R-CNN算法來檢測道路前方的車輛;阮航等人[11]提出了一種基于加權(quán)特征映射的卷積神經(jīng)網(wǎng)絡(luò)模型;王得成等人[12]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)并融合了彩色與深度圖像的車輛檢測算法;通過改進(jìn)YOLOv3來實(shí)現(xiàn)車輛的檢測[13-15]。但是這些車輛檢測算法存在以下問題:(1)尺度敏感。對于尺度變化較大的車輛容易出現(xiàn)誤檢漏檢問題。(2)重疊車輛檢測效果差。(3)模型結(jié)構(gòu)復(fù)雜,訓(xùn)練較為困難,檢測速度過度依賴于計(jì)算資源。
針對上述問題,本文以深度殘差網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò),在主網(wǎng)絡(luò)后增加卷積層與主網(wǎng)絡(luò)卷積層共同構(gòu)建多尺度特征金字塔,以解決尺度敏感的問題;使用軟化非極大抑制線性衰減置信得分,解決車輛遮擋的問題;對批標(biāo)準(zhǔn)化層中的γ系數(shù)施加正則化,裁剪特征通道,縮減參數(shù)規(guī)模,精簡網(wǎng)絡(luò)結(jié)構(gòu),使網(wǎng)絡(luò)模型更易訓(xùn)練。實(shí)驗(yàn)結(jié)果表明,本文所提的方法有效降低了模型的參數(shù)量,顯著提高了對于復(fù)雜場景中尺度變化較大車輛以及遮擋車輛的檢測效果。
本文提出的車輛檢測網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。該方法以車輛圖像作為輸入,同時(shí)輸出車輛的位置和置信得分。首先,使用深度殘差網(wǎng)絡(luò)提取車輛特征;然后將高層特征圖上采樣與淺層特征圖共同構(gòu)建特征金字塔網(wǎng)絡(luò),用于多尺度預(yù)測;最后將車輛預(yù)測框使用軟化非極大抑制線性衰減置信得分,得到最后的車輛檢測結(jié)果。同時(shí),在訓(xùn)練過程中,對每個(gè)特征圖進(jìn)行正則化約束,對網(wǎng)絡(luò)進(jìn)行裁剪,從而精簡網(wǎng)絡(luò)結(jié)構(gòu),縮減參數(shù)規(guī)模。與現(xiàn)有車輛檢測方法相比,本文方法更易訓(xùn)練,針對尺度變化較大目標(biāo)以及遮擋目標(biāo)具有較好的檢測效果。
圖1 車輛檢測網(wǎng)絡(luò)結(jié)構(gòu)圖
殘差學(xué)習(xí)[16]能夠很好地解決深度神經(jīng)網(wǎng)絡(luò)隨網(wǎng)絡(luò)層數(shù)加深而導(dǎo)致網(wǎng)絡(luò)退化的問題,深度殘差網(wǎng)絡(luò)能夠提取更為豐富的特征。受殘差學(xué)習(xí)的啟發(fā),本文使用殘差模塊作為特征提取網(wǎng)絡(luò)的基本模塊。殘差網(wǎng)絡(luò)由一系列殘差模塊組成,每個(gè)殘差模塊可分為映射部分和殘差部分。殘差塊表示方式如式(1)所示,xi表示第i個(gè)殘差塊的輸入,f(?)表示中間卷積輸出,xi+1表示第i個(gè)殘差塊的輸出。
殘差塊結(jié)構(gòu)如圖2所示,殘差塊包含三個(gè)卷積層,卷積層間使用relu激活函數(shù),第一個(gè)1×1卷積操作用于通道降維,第二個(gè)1×1卷積操作用于維數(shù)恢復(fù)。這種做法能夠有效地減少計(jì)算量和參數(shù)量。
圖2 殘差塊結(jié)構(gòu)圖
深度殘差網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。將分辨率為512×512的圖像輸入到深度殘差網(wǎng)絡(luò)中,首先使用32個(gè)尺寸為3×3的卷積核對圖像進(jìn)行過濾,得到圖像初始特征圖。然后使用步長為2的卷積對特征圖進(jìn)行降采樣,接著將降采樣后的特征圖分別經(jīng)過1、2、8、8、4、4、4的殘差塊,分別得到尺寸為128×128、64×64、32×32、16×16、8×8、4×4的特征圖。這樣,淺層特征圖感受野小可用于小物體的檢測,高層特征圖感受野大可用于大物體的檢測。
表1 深度殘差網(wǎng)絡(luò)結(jié)構(gòu)
特征金字塔網(wǎng)絡(luò)[17]通過將高層語義信息與淺層位置信息融合得到多個(gè)尺度不同的特征圖用于目標(biāo)檢測,能夠很好地解決車輛尺度變化較大導(dǎo)致檢測效果較差的問題。在深度殘差網(wǎng)絡(luò)中,得到了6種尺寸的特征圖。將尺寸為4×4的特征圖分別進(jìn)行2倍、4倍、8倍、16倍上采樣得到8×8、16×16、32×32、64×64尺寸特征圖,然后將上采樣得到的特征圖與深度殘差網(wǎng)絡(luò)中對應(yīng)尺寸的特征圖進(jìn)行融合,得到5種尺度的信息融合特征圖,并形成5個(gè)檢測分支,用于檢測不同尺寸的車輛。
傳統(tǒng)的非極大抑制方法直接將重合度大于某一閾值的預(yù)測框的置信得分置為0,而在真實(shí)場景下獲得的車輛圖片往往存在車輛重疊的情況,這樣使用普通的非極大抑制就會(huì)造成車輛的漏檢。本文使用軟化非極大抑制方法[18],利用高斯加權(quán)平滑函數(shù),通過線性衰減置信得分來降低重疊車輛的漏檢率。現(xiàn)有的目標(biāo)檢測算法大多使用預(yù)測框與真實(shí)框的交并(Intersection over Union,IoU)來反映預(yù)測框與真實(shí)框的重合度。然而當(dāng)預(yù)測框與真實(shí)框沒有相交時(shí),對應(yīng)的IoU為0,根本無法反映預(yù)測框與真實(shí)框的重合度。為了解決這一問題,本文使用DIoU[19]代替IoU,設(shè)定預(yù)測框?yàn)锳及真實(shí)框?yàn)锽,A和B的最小凸集為C(包含A和B的最小包圍框),IoU和DIoU的計(jì)算方法如式(2)和式(3)所示:
式(3)中,bgp和bgt分別表示預(yù)測框和真實(shí)框的中心點(diǎn),ρ(?)表示兩中心點(diǎn)之間的歐式距離,c表示最小凸集C的對角線距離。這樣,得到了軟化非極大抑制的計(jì)算方法如式(4)所示:
式(4)中,si表示第i個(gè)檢測框的得分,bm表示得分最高的檢測框中心點(diǎn),bi表示第i個(gè)檢測框的中心點(diǎn),σ為常數(shù)。
目標(biāo)檢測算法往往利用深度神經(jīng)網(wǎng)絡(luò)來提高算法的檢測精度。而深度神經(jīng)網(wǎng)絡(luò)通常模型結(jié)構(gòu)復(fù)雜,參數(shù)量大,難以訓(xùn)練,且網(wǎng)絡(luò)在訓(xùn)練過程中需要龐大的計(jì)算資源。對網(wǎng)絡(luò)進(jìn)行裁剪能有效地減少計(jì)算資源,精簡網(wǎng)絡(luò)結(jié)構(gòu),縮減參數(shù)規(guī)模。以數(shù)據(jù)驅(qū)動(dòng)的通道裁剪相較于層級裁剪更為靈活,可以獲得更好的裁剪質(zhì)量。
在卷積神經(jīng)網(wǎng)絡(luò)中,通常在卷積層后使用批標(biāo)準(zhǔn)化進(jìn)行特征縮放。批標(biāo)準(zhǔn)化可表示為式(5)的形式,γ和β為可學(xué)習(xí)參數(shù),一個(gè)特征通道對應(yīng)一組(γ,β)。當(dāng)γ較小時(shí),該通道特征對最終檢測結(jié)果影響較小。通過將較小γ所在特征通道進(jìn)行裁剪,從而實(shí)現(xiàn)模型的通道級裁剪[20]。
對特征通道的裁剪,通常的做法是直接設(shè)置裁剪閾值,當(dāng)裁剪因子小于裁剪閾值時(shí),將該裁剪因子對應(yīng)的特征通道刪除,但是這種方法存在兩個(gè)問題:裁剪閾值需要多次嘗試才能得到較好的裁剪模型,而每次嘗試需要重新訓(xùn)練,耗費(fèi)大量時(shí)間;直接設(shè)置裁剪閾值可能導(dǎo)致網(wǎng)絡(luò)中某一層的特征通道全部被裁剪。在本文中,使用裁剪率替代裁剪閾值,將所有裁剪因子的值進(jìn)行排序,選取裁剪率對應(yīng)的裁剪因子作為裁剪閾值。為了避免網(wǎng)絡(luò)某層的特征通道全部被裁剪,將每層網(wǎng)絡(luò)中最大的裁剪因子進(jìn)行排序,選取其中最小的裁剪因子作為裁剪閾值的限定值。當(dāng)裁剪閾值小于限定值時(shí),將該裁剪閾值作為最終的裁剪閾值,當(dāng)裁剪閾值大于限定值時(shí),使用限定值作為最終的裁剪閾值。通過將小于裁剪閾值的裁剪因子所在的特征通道刪除,從而實(shí)現(xiàn)模型的精簡。
本文網(wǎng)絡(luò)基本參數(shù)設(shè)置如下:最大迭代次數(shù)為50 000次,學(xué)習(xí)率(learning rate)初始值為1E?3,并依次衰減為1E?4、1E?5,對應(yīng)迭代次數(shù)分別為25 000、15 000、10 000。設(shè)置動(dòng)量(momentum)為0.9,權(quán)重衰減(decay)為5E?4,批量大?。╞atch size)為8,優(yōu)化器選用隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)。本文網(wǎng)絡(luò)的損失由分類置信度損失和位置損失以及正則化約束函數(shù)構(gòu)成。正則化約束函數(shù)是為了使裁剪因子γ產(chǎn)生稀疏解,通常使用L1正則化約束函數(shù),但是L1正則化函數(shù)不是連續(xù)可導(dǎo)的,直接使用L1正則化函數(shù)可能導(dǎo)致網(wǎng)絡(luò)在訓(xùn)練過程中無法收斂。為了解決這一問題,將L1正則化函數(shù)進(jìn)行平滑操作,對應(yīng)公式如式(6)所示,λ為0到1之間的常量。
最終定義網(wǎng)絡(luò)的損失函數(shù)如式(7):
在式(7)中,L1為置信度損失函數(shù),L2為位置損失函數(shù),lconf和lloc分別為兩者的平衡參數(shù),ypc和ytc分別為預(yù)測類別和真實(shí)類別,bgp和bgt分別為預(yù)測位置和真實(shí)位置。置信度損失使用交叉熵?fù)p失函數(shù),位置損失使用均方損失函數(shù),Ω(?)為正則化約束函數(shù)。
本次實(shí)驗(yàn)基于Darknet53和pytorch1.0框架,在Intel Core i7-8750H和NVIDIA GTX 1080 8 GB GPU的機(jī)器上運(yùn)行。
PASCAL VOC數(shù)據(jù)集來自于PASCAL VOC挑戰(zhàn)賽,主要用于評估模型在目標(biāo)分類、目標(biāo)檢測、目標(biāo)分割任務(wù)的性能。PASCAL VOC挑戰(zhàn)賽從2005年持續(xù)到到2012年,目前使用最多的數(shù)據(jù)集是VOC2007和VOC2012。VOC數(shù)據(jù)集分為4個(gè)大類、20個(gè)小類。本文結(jié)合VOC2007和VOC2012,對兩個(gè)數(shù)據(jù)集中的標(biāo)簽信息進(jìn)行處理,僅保留車輛標(biāo)簽信息及對應(yīng)的圖像,最后得到2 595張包含車輛信息的數(shù)據(jù)集VOC0712。并將車輛數(shù)據(jù)集分為兩個(gè)部分:包含2 465張圖片的訓(xùn)練驗(yàn)證數(shù)據(jù)集;包含130張圖片的測試數(shù)據(jù)集。
Apollo數(shù)據(jù)集是由百度提供的自動(dòng)駕駛數(shù)據(jù)集,是目前環(huán)境最復(fù)雜、標(biāo)注最精準(zhǔn)、數(shù)據(jù)量最大的數(shù)據(jù)集。本文選取3D車輛實(shí)例數(shù)據(jù)集,其中包括4 283張圖片的訓(xùn)練數(shù)據(jù)集和1 040張圖片的測試數(shù)據(jù)集。
本文實(shí)驗(yàn)使用精度(Average Precision,AP)、速度(Frames Per Second,F(xiàn)PS)、參數(shù)量(Parameters)、計(jì)算力(FLOPS)、模型體積作為性能評價(jià)指標(biāo)。
精度是指模型的P-R曲線的線下面積,本文使用逐點(diǎn)積分的方法來計(jì)算模型的檢測精度。計(jì)算公式如式(8)所示。其中,r表示召回率,p表示準(zhǔn)確率,n為召回率和準(zhǔn)確率的數(shù)量,min(?)表示取小。
速度是指模型每秒檢測圖像的幀數(shù)。參數(shù)量是指模型訓(xùn)練參數(shù)的數(shù)量,參數(shù)量計(jì)算公式如式(9)所示。其中,Kw和Kh表示卷積核尺寸,Ci和Oi分別表示輸入通道數(shù)和輸出通道數(shù),N表示卷積層數(shù)。
模型體積是指訓(xùn)練得到的模型大小。計(jì)算力是指模型消耗的計(jì)算資源,其計(jì)算公式如式(10)所示。其中,Hi和Wi表示輸出特征圖尺寸。
在該數(shù)據(jù)集上,將本文提出的方法與Fast R-CNN、Faster R-CNN、SSD512、YOLOv3進(jìn)行比較。表2顯示了各種方法在該數(shù)據(jù)集上的性能,主要使用檢測精度、檢測速度作為模型的評價(jià)指標(biāo)。
表2 不同模型在PASCAL VOC數(shù)據(jù)集上的結(jié)果
由表2可以看出,本文所提方法在VOC0712上的檢測平均精度達(dá)到87.6%,優(yōu)于其他檢測方法。檢測速度為每秒42幀圖像,實(shí)現(xiàn)了車輛的實(shí)時(shí)檢測。
基于區(qū)域生成的方法Fast R-CNN和Faster RCNN在檢測精度和檢測速度上遠(yuǎn)低于本文所提方法。在檢測精度上,相較于Fast R-CNN,本文提出的方法提升了24.8個(gè)百分點(diǎn);相較于Faster R-CNN,本文提出的方法提升了16.4個(gè)百分點(diǎn)。在檢測速度上,F(xiàn)ast RCNN和Faster R-CNN沒有達(dá)到實(shí)時(shí)檢測的要求,而本文所提方法每秒檢測42幀圖像,能夠?qū)崿F(xiàn)實(shí)時(shí)檢測。特別地,F(xiàn)ast R-CNN和Faster R-CNN的網(wǎng)絡(luò)層數(shù)少,但是模型的體積較大,尤其是Faster R-CNN,其模型體積大約是本文模型的2倍,這是因?yàn)楸疚脑黾恿苏齽t化約束,對模型進(jìn)行了裁剪,使得模型體積得到極大的降低。
基于回歸的算法中,YOLOv3算法性能高于SSD512,檢測效果更好。本文提出的方法相較于YOLOv3和SSD512,精度分別提高了3.7個(gè)百分點(diǎn)和9.8個(gè)百分點(diǎn)。但是本文所提方法檢測速度不及YOLOv3,這是因?yàn)楸疚木W(wǎng)絡(luò)擁有更多的卷積層和尺度,這導(dǎo)致模型的參數(shù)量極大增加。雖然本文對模型結(jié)構(gòu)進(jìn)行了精簡,但是本文模型參數(shù)量仍然是YOLOv3的1.5倍,這使得模型的檢測速度有了一定的下降。
值得注意的是,本文對Fast R-CNN、Faster R-CNN、YOLOv3、SSD512等方法進(jìn)行了重復(fù)實(shí)驗(yàn),發(fā)現(xiàn)相較于原始實(shí)驗(yàn)結(jié)果,本文的重復(fù)實(shí)驗(yàn)結(jié)果在精度上有所降低。其原因可能是本文實(shí)驗(yàn)在單塊8 GB顯卡和8 GB內(nèi)存上進(jìn)行,考慮到內(nèi)存和顯存限制,本文適當(dāng)縮小了網(wǎng)絡(luò)的初始參數(shù),如本文將YOLOv3的批量大小由64改為16,這種做法在一定程度上降低模型的收斂精度。
圖3 顯示了Fast R-CNN、Faster R-CNN、YOLOv3、SSD512以及本文方法在VOC0712上的PR曲線。
通過比較P-R曲線下的面積,可以得出本文所提出的方法獲得了最佳的檢測精度,這說明了本文模型在VOC0712上的漏檢和誤檢率更低,具有更好的檢測效果。
圖3 不同模型的P-R曲線
由于YOLOv3在現(xiàn)有的檢測算法中實(shí)現(xiàn)了最優(yōu)的性能,在Apollo數(shù)據(jù)集中,重點(diǎn)將本文模型與YOLOv3模型進(jìn)行了比較。表3顯示了本文模型與YOLOv3模型在該數(shù)據(jù)集上性能,使用模型參數(shù)量、模型體積、模型的計(jì)算力以及在數(shù)據(jù)集上的檢測精度作為模型評價(jià)指標(biāo)。
表3 不同模型在Apollo上的性能
從表3中可以看出,本文方法和YOLOv3相比具有更少的網(wǎng)絡(luò)參數(shù),更小的模型體積。本文方法需要的計(jì)算資源更少,檢測精度更高。
圖4 顯示了本文方法和YOLOv3方法在Apollo數(shù)據(jù)集上的檢測效果。第一列是原始圖像,第二列為YOLOv3檢測結(jié)果,最后一列是本文模型檢測結(jié)果。從圖中可以看出,本文模型相較于YOLOv3模型,對于尺度變換較大車輛以及遮擋的車輛具有更好的魯棒性。
圖4 不同模型在Apollo數(shù)據(jù)集上的檢測效果
在實(shí)際環(huán)境中采集的車輛圖片通常存在較大的尺度變換,YOLOv3使用了52×52、26×26和13×13三種尺度進(jìn)行目標(biāo)檢測。但是YOLOv3在尺度變換大的Apollo數(shù)據(jù)集中存在漏檢和誤檢的問題。本文分析其原因可能有兩個(gè):網(wǎng)絡(luò)層數(shù)少,提取的細(xì)粒度特征不足;13×13的尺度感受野有限,無法檢測尺度較大的目標(biāo)。
為了探究尺度對檢測精度的影響,本文在YOLOv3的基礎(chǔ)上,增加網(wǎng)絡(luò)的尺度。同時(shí),由于YOLOv3是全卷積網(wǎng)絡(luò),為了更方便進(jìn)行卷積操作和消除圖像輸入尺寸對實(shí)驗(yàn)結(jié)果的影響,本文使用統(tǒng)一的輸入圖像尺寸512×512。由于網(wǎng)絡(luò)復(fù)雜度會(huì)隨著網(wǎng)絡(luò)層數(shù)的加深而加大,考慮到設(shè)備顯存容量的限制,本文對YOLOv3進(jìn)行增加一個(gè)尺度和兩個(gè)尺度的操作,最終得到4個(gè)尺度的網(wǎng)絡(luò)模型和5個(gè)尺度的網(wǎng)絡(luò)模型。將三種模型在Apollo數(shù)據(jù)集上進(jìn)行測試。結(jié)果如表4所示。
表4 多尺度預(yù)測結(jié)果
從表4中可以看出,隨著尺度的增加,檢測精度也得到提升。增加一個(gè)尺度和兩個(gè)尺度的模型相較于3個(gè)尺度模型檢測精度分別提高了0.016和0.033。但是隨著尺度的增加,模型的檢測速度隨之降低,這是因?yàn)槌叨仍黾訉?dǎo)致模型結(jié)構(gòu)更加復(fù)雜,模型的參數(shù)量和計(jì)算量都大幅提高,這導(dǎo)致了模型的檢測速度降低。
為了精簡網(wǎng)絡(luò)結(jié)構(gòu)、縮減參數(shù)規(guī)模,本文對網(wǎng)絡(luò)進(jìn)行了通道級裁剪。為了分析裁剪閾值對實(shí)驗(yàn)結(jié)果的影響,本文選用不同的裁剪閾值進(jìn)行實(shí)驗(yàn),結(jié)果如表5所示。
表5 不同裁剪率實(shí)驗(yàn)結(jié)果
從表5可以看出,在不執(zhí)行網(wǎng)絡(luò)裁剪的情況下,特征通道數(shù)為13 376,當(dāng)裁剪率為90%時(shí),檢測速度提升了3.6倍,但是經(jīng)過微調(diào)后模型檢測精度降低了0.112;當(dāng)裁剪率為85%時(shí),微調(diào)模型的檢測速度提升了2.6倍,但是檢測精度降低了0.059;當(dāng)裁剪率設(shè)定為80%時(shí),經(jīng)過微調(diào)后模型的檢測精度與未裁剪模型相比不僅沒有降低,反而提高了0.002,且檢測速度提高了2倍;當(dāng)裁剪閾值為70%時(shí),微調(diào)模型檢測精度基本保持不變,但檢測速度相較于80%裁剪率模型有所降低。綜上,當(dāng)設(shè)定裁剪率為80%,裁剪閾值為0.007 1時(shí),裁剪模型的綜合性能表現(xiàn)最優(yōu)。圖5顯示了模型裁剪因子的權(quán)重分布。
圖5 裁剪因子權(quán)重分布
為了分析網(wǎng)絡(luò)裁剪對不同模型造成的影響,將本文的深度殘差網(wǎng)絡(luò)模型模型和YOLOv3模型與對應(yīng)的裁剪模型在Apollo數(shù)據(jù)集上進(jìn)行對比實(shí)驗(yàn),裁剪率為0.8。實(shí)驗(yàn)結(jié)果如表6所示。
表6 不同模型裁剪結(jié)果
從表6可以看出,裁剪后的YOLOv3模型相比原始YOLOv3模型參數(shù)量由6.15×107縮減至1.09×107,降低了82.3%;模型體積由246 MB縮減至43 MB,降低了82.5%;計(jì)算力由32.8×109縮減至9.6×109,降低了70.7%;檢測速度由45 f/s提升至67 f/s,提高了48.9%;裁剪網(wǎng)絡(luò)經(jīng)過微調(diào)后,精度不僅沒有降低,反而有微弱的提升,由77.5%提升至77.6%。本文模型裁剪后參數(shù)量減小了80.1%,模型體積僅為未裁剪模型的1/5,計(jì)算量降低了57.0%,而檢測速度得到了大幅提升,達(dá)到42 f/s,滿足了實(shí)時(shí)檢測的要求。
為了提高在實(shí)際場景中車輛檢測的精度和魯棒性,本文構(gòu)建了深度殘差網(wǎng)絡(luò)提取車輛的細(xì)粒度特征。針對車輛尺度變換較大的問題,本文構(gòu)建了包含五種尺度的特征金字塔網(wǎng)絡(luò),為了解決車輛的遮擋問題,本文使用軟化非極大抑制線性衰減置信得分,提升了模型的檢測精度。同時(shí),本文通過數(shù)據(jù)增強(qiáng)等方式增強(qiáng)模型的魯棒性。為了降低多尺度模型對計(jì)算資源的損耗,本文對批標(biāo)準(zhǔn)化層的γ系數(shù)進(jìn)行正則化約束,從而對模型進(jìn)行通道級的裁剪,有效地降低了模型的參數(shù)規(guī)模,節(jié)省了計(jì)算資源,提高了模型的檢測速度,最終實(shí)現(xiàn)車輛的實(shí)時(shí)檢測。在PASCAL VOC和Apollo數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果證明本文提出的方法在檢測精度上優(yōu)于現(xiàn)有的檢測方法,且在檢測速度上取得了不錯(cuò)的表現(xiàn)。在后續(xù)的工作中,將繼續(xù)研究車輛的精細(xì)分類以及車輛行駛過程中的障礙物檢測等任務(wù)。