譚光興,岑滿偉,蘇榮鍵
(廣西科技大學(xué)電氣與信息工程學(xué)院,廣西 柳州 545616)
隨著機(jī)器視覺和人工智能的不斷發(fā)展,自動駕駛技術(shù)已成為當(dāng)今汽車發(fā)展的研究熱點(diǎn),其中前方道路的障礙物檢測技術(shù)是自動駕駛汽車所面臨的挑戰(zhàn)。車輛和行人是汽車正常行駛時前方常見的障礙物,實現(xiàn)對車輛和行人的準(zhǔn)確且實時檢測已成為目標(biāo)檢測技術(shù)領(lǐng)域的研究熱點(diǎn)[1]。考慮到設(shè)備平臺資源有限,目標(biāo)檢測系統(tǒng)不宜占用較大內(nèi)存,要求檢測系統(tǒng)輕量、實時且精準(zhǔn)。
如今,基于深度學(xué)習(xí)的目標(biāo)檢測算法不斷發(fā)展,已經(jīng)成為對車輛和行人檢測主流的方法,主要分為two-stage和one-stage兩種目標(biāo)檢測網(wǎng)絡(luò)。two-stage目標(biāo)檢測網(wǎng)絡(luò)主要是基于侯選區(qū)域的檢測算法,Girshick等[2]最早提出R-CNN網(wǎng)絡(luò),先產(chǎn)生侯選區(qū)域,再對侯選區(qū)域進(jìn)行分類和回歸。之后提出Fast-RCNN[3],使用感興趣區(qū)域池化結(jié)構(gòu)對候選區(qū)域進(jìn)行尺度同一化以及引入多任務(wù)損失函數(shù),提升網(wǎng)絡(luò)性能。Girshick等[4]基于區(qū)域侯選網(wǎng)絡(luò)結(jié)構(gòu),再次提出Faster-RCNN網(wǎng)絡(luò)。He等[5]提出Mask-RCNN算法,通過引入Mask分支和RoIAlign結(jié)構(gòu),取得較好地檢測能力。雖然two-stage目標(biāo)檢測網(wǎng)絡(luò)精度高,但檢測速度相對較慢,實時性較差。one-stage目標(biāo)檢測網(wǎng)絡(luò)是基于回歸思想,采用端到端的檢測方法,直接產(chǎn)生目標(biāo)物的位置坐標(biāo)和類別概率。Redmon等[6]提出YOLOv1算法,將整張圖像送入網(wǎng)絡(luò)訓(xùn)練,在輸出層完成對目標(biāo)物的分類和定位,檢測速度得到提升。Liu等[7]提出SSD算法,引入先驗框進(jìn)行回歸,并結(jié)合多尺度特征來提高目標(biāo)物的檢測能力。Redmon等[8]提出YOLOv2算法,使用K-Means聚類出先驗框進(jìn)行檢測。隨后再次提出YOLOv3[9],采用Darknet-53作為主干網(wǎng)絡(luò),采用特征金字塔結(jié)構(gòu),融合多尺度特征進(jìn)行檢測。Bochkovskiy等[10]提出YOLOv4算法,該網(wǎng)絡(luò)匯集目前主流的優(yōu)化技巧以及復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),能夠精準(zhǔn)地檢測目標(biāo)物,在YOLO系列算法中較為先進(jìn)的。但是YOLOv4網(wǎng)絡(luò)參數(shù)量和模型體積龐大,占用較大內(nèi)存,難以在運(yùn)算能力較弱的嵌入式設(shè)備實時地檢測目標(biāo)物。
在設(shè)備計算資源有限的情況下,目標(biāo)檢測網(wǎng)絡(luò)需要綜合考慮檢測精度和檢測速度兩者問題。針對YOLOv4的不足之處,本文對其算法進(jìn)行輕量化,用MobileNetV1輕量化網(wǎng)絡(luò)替換主干網(wǎng)絡(luò),進(jìn)一步將網(wǎng)絡(luò)中的標(biāo)準(zhǔn)卷積替換為深度可分離卷積,減少模型參數(shù)量;為彌補(bǔ)精度損失的降低,構(gòu)建與各預(yù)測層特點(diǎn)相適應(yīng)的特征增強(qiáng)模塊,借助跨深度卷積和空洞卷積結(jié)構(gòu)來改善各預(yù)測層對車輛和行人尺度變化的適應(yīng)能力。改進(jìn)后的MobileNetV1-YOLOv4網(wǎng)絡(luò)模型具有參數(shù)量少、體積小、速度快的優(yōu)點(diǎn),在精度上有一定地提升,提高了對小目標(biāo)的檢測能力。
YOLOv4[10]網(wǎng)絡(luò)結(jié)構(gòu)可以看成四個模塊組成:特征提取模塊、空間金字塔池化模塊、路徑聚合網(wǎng)絡(luò)模塊以及預(yù)測模塊。相比YOLOv3的Darknet53主干網(wǎng)絡(luò),YOLOv4融入交叉階段部分連接(Cross State Partial, CSP)[11],設(shè)計出CSPDarknet53特征提取結(jié)構(gòu),增強(qiáng)網(wǎng)絡(luò)學(xué)習(xí)能力,也降低計算復(fù)雜度。加入空間金字塔池化模塊(Spatial Pyramid Pooling, SPP)[12],融合局部和全局特征,增大網(wǎng)絡(luò)感受野;為改善深層網(wǎng)絡(luò)丟失淺層網(wǎng)絡(luò)信息的問題,引入路徑聚合網(wǎng)絡(luò)(Path Aggregation Network, PANet)[13];預(yù)測模塊結(jié)構(gòu)上沒有變化,依舊采用Yolo Head1、Yolo Head2、Yolo Head3檢測頭對不同尺度進(jìn)行預(yù)測,得出最后的類別、置信度和預(yù)測邊框信息。以輸入尺寸為416×416,目標(biāo)類別數(shù)為20的YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)
在損失函數(shù)方面,YOLOv4使用CIOU作為目標(biāo)邊界框回歸損失函數(shù),避免出現(xiàn)預(yù)測框和真實框沒有重疊部分而無法優(yōu)化IOU損失的問題。CIOU綜合考慮預(yù)測框和真實框的重疊面積、中心點(diǎn)距離以及長寬比,優(yōu)化預(yù)測框回歸精度和速度,損失函數(shù)如式(1)所示
(1)
其中
(2)
(3)
式中的p2(b,bgt)表示為預(yù)測框的中心點(diǎn)b與真實框的中心點(diǎn)bgt的歐氏距離,c表示為包圍真實框和預(yù)測框的最小外接矩形的對角線距離。α是用來協(xié)調(diào)比例參數(shù),υ是用來衡量長寬比一致性的參數(shù),wgt、hgt表示真實框的寬高,w、h表示預(yù)測框的寬高。
MobileNet[14]是考慮專門將網(wǎng)絡(luò)模型使用在嵌入式設(shè)備或者移動設(shè)備上,所提出的一種輕量化的網(wǎng)絡(luò)模型,其核心思想是采用深度可分離卷積結(jié)構(gòu)。相比標(biāo)準(zhǔn)卷積,深度可分離卷積結(jié)構(gòu)主要分為深度卷積(Depthwise Convolution)結(jié)構(gòu)和點(diǎn)卷積(Pointwise Convolution)結(jié)構(gòu)。深度卷積(DW)對輸入特征的每個通道分別用卷積核進(jìn)行卷積,大幅度地減少卷積計算量;點(diǎn)卷積(PW)通過1×1卷積核整合深度卷積后的特征圖信息,使每張的輸出特征圖信息都能包含每張輸入特征圖信息。標(biāo)準(zhǔn)卷積和深度可分離卷積的結(jié)構(gòu)對比如圖2所示。
圖2 標(biāo)準(zhǔn)卷積和深度可分離卷積的結(jié)構(gòu)
圖2中DK和1為卷積核的尺寸大小,M和N分別為網(wǎng)絡(luò)的輸入通道數(shù)和輸出通道數(shù),通過圖2的結(jié)構(gòu)對比,能夠計算出標(biāo)準(zhǔn)卷積的參數(shù)量為DK×DK×M×N,深度可分離卷積的參數(shù)量為DK×DK×1×M+1×1×M×N。由此可知深度可分離卷積和標(biāo)準(zhǔn)卷積的參數(shù)量之比為:
(4)
表1 MobileNetV1網(wǎng)絡(luò)結(jié)構(gòu)
針對YOLOv4網(wǎng)絡(luò)參數(shù)量過多、模型體積龐大,占用較大內(nèi)存的問題,本文提出基于MobileNetV1-YOLOv4的車輛和行人檢測網(wǎng)絡(luò),采用深度可分離卷積思想對模型進(jìn)行輕量化。本文首先采用MobileNetV1來作為YOLOv4的主干網(wǎng)絡(luò),初步模型記為MobileNetV1-YOLOv4a,之后再進(jìn)行深度網(wǎng)絡(luò)輕量化,即將PANet和Yolo Head結(jié)構(gòu)中的3×3標(biāo)準(zhǔn)卷積替換成為深度可分離卷積,模型記為MobileNetV1-YOLOv4。將YOLOv4和兩種輕量化模型進(jìn)行參數(shù)比較,統(tǒng)一輸入尺寸為416×416×3,在本文中檢測對象具體為為Car、Bus、Motorbike、Bicycle、Person,所以類別數(shù)為5,對比結(jié)果如表2所示。
表2 模型參數(shù)對比
由表2可知,YOLOv4模型在參數(shù)量和模型體積方面都十分龐大。通過對比后兩者模型可以發(fā)現(xiàn),僅使用MobileNetV1作為主干網(wǎng)絡(luò),網(wǎng)絡(luò)參數(shù)量和模型體積就減少很多; 而進(jìn)一步深度網(wǎng)絡(luò)輕量化的模型在參數(shù)量和模型體積上大幅度較少,體積為46.88MB,參數(shù)量為12.28Million,相比YOLOv4模型,在參數(shù)量和體積上減少80.80%。因此,在整個YOLOv4網(wǎng)絡(luò)模型中,本文將深層網(wǎng)絡(luò)中的所有標(biāo)準(zhǔn)卷積全部替換成深度可分離卷積,構(gòu)建MobileNetV1-YOLOv4網(wǎng)絡(luò)。
為提高對車輛和行人尺度變化的魯棒性,增大特征圖的感受野,提高網(wǎng)絡(luò)對目標(biāo)的檢測能力,本文對MobileNetV1-YOLOv4進(jìn)行改進(jìn),在預(yù)測層前引入特征增強(qiáng)模塊,取消SPP模塊以及之后的Concat結(jié)構(gòu),減少模型參數(shù)量。借鑒RFB模塊的空洞卷積思想,利用不同大小和數(shù)量的標(biāo)準(zhǔn)卷積以及不同膨脹率的空洞卷積,構(gòu)建多支路、多層卷積并行的特征增強(qiáng)模塊,增強(qiáng)語義信息,幫助預(yù)測層提高對目標(biāo)不同尺度的檢測能力,同時提高對小目標(biāo)的檢測能力。
對于13×13尺度的特征增強(qiáng)模塊1,建立四條輸入通路和一條跨連接通路Shortcut,每條通路使用1×1卷積核將輸入通道數(shù)從1024降維成256;其次每個通道采用不同數(shù)量和大小的卷積核進(jìn)行跨深度卷積;接著分別經(jīng)過膨脹率為1、2、3、5的空洞卷積,使每個通路獲得不同的感受野大小,最后級聯(lián)各支路,通道數(shù)仍為1024,豐富了語義特征信息,提高13×13尺度預(yù)測層對大目標(biāo)的檢測能力。為降低參數(shù)量,提高網(wǎng)絡(luò)檢測速度,將3×3和5×5卷積核拆分成3×1、1×3和1×5、5×1的卷積核。特征增強(qiáng)模塊1結(jié)構(gòu)如圖3所示。
圖3 特征增強(qiáng)模塊1結(jié)構(gòu)
26×26尺度的預(yù)測層是檢測中間尺度的目標(biāo),在特征增強(qiáng)模塊2中,采用了較小膨脹率的空洞卷積,第三、四通路使用3×1、1×3和1×3、3×1不同順序的條形卷積,避免重復(fù)性地提取特征,同時條形卷積結(jié)構(gòu)對車輛和行人檢測更加敏感,其結(jié)構(gòu)如圖4所示。
圖4 特征增強(qiáng)模塊2結(jié)構(gòu)
52×52尺度的預(yù)測層是主要是檢測小目標(biāo)的,該層擁有邊緣、顏色等語義信息??紤]到淺層網(wǎng)絡(luò)增大感受野會降低檢測小目標(biāo)的能力[15],本文設(shè)置膨脹率都為1,通過階梯狀的卷積層來提高淺層語義信息,增強(qiáng)網(wǎng)絡(luò)特征表征力,其結(jié)構(gòu)如圖5所示。
圖5 特征增強(qiáng)模塊3結(jié)構(gòu)
考慮特征增強(qiáng)模塊加入不同的位置是否對檢測精度有影響,做了對比實驗。分別考慮將特征增強(qiáng)模塊加入在PANet網(wǎng)絡(luò)前和網(wǎng)絡(luò)后,對比網(wǎng)絡(luò)的模型體積和檢測精度的高低,結(jié)果如表3所示。
表3 加入不同位置的特征增強(qiáng)模塊實驗對比
由表3可知,針對本文的車輛和行人檢測,將特征增強(qiáng)模塊融入到PANet網(wǎng)絡(luò)后,精確度更高。故本文將三個特征增強(qiáng)模塊分別融入到三個預(yù)測層前,改進(jìn)的網(wǎng)絡(luò)模型結(jié)構(gòu)如圖6所示,其中DW+PW為深度可分離卷積模塊,其余網(wǎng)絡(luò)中卷積核為3×3的標(biāo)準(zhǔn)卷積已經(jīng)全部替換成深度可分離卷積。
圖6 改進(jìn)后的網(wǎng)絡(luò)模型結(jié)構(gòu)
本文研究對象為Car、Bus、Motorbike、Bicycle、Person。實驗所采用的訓(xùn)練數(shù)據(jù)是PASCAL VOC 2007和VOC 2012的train+val數(shù)據(jù)集,考慮Bus、Motorbike、Bicycle對象在VOC數(shù)據(jù)集中樣本較少,從COCO2014數(shù)據(jù)集中選取了部分,然后轉(zhuǎn)換為VOC格式。測試數(shù)據(jù)采用VOC2007test數(shù)據(jù)集,選取符合要求的車輛和行人數(shù)據(jù),共有2734張圖片。訓(xùn)練數(shù)據(jù)集總共8937張,標(biāo)注對象共有24715個。在實驗數(shù)據(jù)加載階段,統(tǒng)一輸入尺寸為416×416,對讀取的圖片進(jìn)行數(shù)據(jù)增強(qiáng)的隨機(jī)預(yù)處理,如圖片翻轉(zhuǎn)、縮放或色域變換等,豐富數(shù)據(jù)。
本實驗在PC機(jī)Win10系統(tǒng)下進(jìn)行操作,深度學(xué)習(xí)框架為Pytoch1.2,編程語言為Python3.7。在CPU為Inter(R) Xeon(R) Gold 6130,內(nèi)存為32G, GPU為NVIDIA RTX 2080Ti的服務(wù)器對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
本次實驗使用精度評價指標(biāo)AP(Average Precision )、mAP(Mean Average Precision)、模型體積以及網(wǎng)絡(luò)推理速度評價指標(biāo)FPS(frame per second)來對網(wǎng)絡(luò)性能進(jìn)行評估。其中AP值代表某一類目標(biāo)的平均分類精確率,mAP是對本文五個類別的AP求均值,稱作為平均精確率均值。為驗證本文算法的檢測能力,與Faster-RCNN、YOLOv4、MobileNetV1-YOLOv4網(wǎng)絡(luò)進(jìn)行對比,其中Faster-RCNN輸入尺寸為1000×600,其余網(wǎng)絡(luò)輸入尺寸為416×416,在NVIDIA GTX1080的GPU上,對比目標(biāo)精度AP、模型體積、檢測速度FPS、平均精準(zhǔn)率均值mAP,結(jié)果如表4和表5所示。
表4 算法對車輛和行人的檢測AP結(jié)果(%)
表5 算法對模型大小、FPS、mAP檢測結(jié)果
由表4和表5可知, MobileNetV1-YOLOv4網(wǎng)絡(luò)相比Faster-RCNN網(wǎng)絡(luò)有著較高的檢測精度,相比YOLOv4網(wǎng)絡(luò),雖然目標(biāo)檢測精度略有降低,但模型大小減少了80.79%,檢測速度提升近1.22倍,表明深度可分離卷積模塊在精度損失較小的情況下,能大幅度降低網(wǎng)絡(luò)參數(shù)量,提升網(wǎng)絡(luò)的目標(biāo)檢測速度。本文在MobileNetV1-YOLOv4算法基礎(chǔ)上進(jìn)一步改進(jìn),在預(yù)測層網(wǎng)絡(luò)前加入三個與不同尺度特點(diǎn)相適應(yīng)的特征增強(qiáng)模塊。在單類別目標(biāo)上的檢測精度均得到提升,mAP為86.32%,相比改進(jìn)前的網(wǎng)絡(luò)mAP提高1.29%,表明特征增強(qiáng)模塊能增強(qiáng)語義信息,有效提高對車輛和行人的檢測能力;模型大小進(jìn)一步減小,僅為45.28MB,相比YOLOv4模型體積減少為81.44%;檢測速度為44FPS,相比YOLOv4網(wǎng)絡(luò)提升91.30%。改進(jìn)后的網(wǎng)絡(luò)在檢測速度和模型體積方面優(yōu)于YOLOv4模型,檢測精度優(yōu)于改進(jìn)前的MobileNetV1-YOLOv4網(wǎng)絡(luò),故本文算法更符合設(shè)備平臺對目標(biāo)檢測精度和速度的綜合要求。
將MobileNetV1-YOLOv4網(wǎng)絡(luò)和本文算法對實際場景中的車輛和行人檢測結(jié)果進(jìn)行對比,如圖7所示。圖7的左邊一列是MobileNetV1-YOLOv4檢測結(jié)果,右邊一列是本文算法的檢測結(jié)果。通過實驗對比發(fā)現(xiàn),MobileNetV1-YOLOv4在道路環(huán)境下漏檢了尺度較小的車輛和行人,而本文算法通過特征增強(qiáng)后能夠檢測出較小目標(biāo),精度得到提升且定位更準(zhǔn)確,體現(xiàn)出本文算法精度高以及對車輛和行人尺度變化有較好的魯棒性。
圖7 MobileNetV1-YOLOv4與本文算法對比
考慮在計算資源有限的設(shè)備平臺上,需要兼顧目標(biāo)檢測精度和檢測速度兩方面,因此本文提出了一種融入特征增強(qiáng)模塊的MobileNetV1-YOLOv4車輛和行人檢測網(wǎng)絡(luò)。將YOLOv4網(wǎng)絡(luò)模型中的主干網(wǎng)絡(luò)替換成MobileNetV1,對路徑聚合網(wǎng)路和預(yù)測層網(wǎng)絡(luò)進(jìn)行輕量化,使得參數(shù)量和模型體積大幅度減少,相比YOLOv4網(wǎng)絡(luò),模型推理速度得到大幅度提升。在MobileNetV1-YOLOv4網(wǎng)絡(luò)的三個預(yù)測層前,分別加入與不同尺度特點(diǎn)相適應(yīng)的特征增強(qiáng)模塊,利用跨深度卷積和空洞卷積結(jié)構(gòu),能夠充分利用多尺度信息,豐富網(wǎng)絡(luò)深度語義信息,構(gòu)造出不同大小的感受野,提高網(wǎng)絡(luò)的檢測性能和適應(yīng)目標(biāo)尺度變化的能力。實驗結(jié)果表明,本文算法相比MobileNetV1-YOLOv4原網(wǎng)絡(luò)在檢測速度損失較少的情況下,檢測精度提高1.29%,提高了對小目標(biāo)的檢測性能,對尺度變化大的目標(biāo)具有較好的魯棒性,滿足實時高效的檢測要求。