霍愛清,李 易
(西安石油大學(xué)電子工程學(xué)院,陜西 西安 710065)
地面箭頭標(biāo)識線[1]檢測是無人駕駛汽車[2]安全輔助系統(tǒng)中的關(guān)鍵技術(shù)之一。傳統(tǒng)的檢測方法通過車載傳感器和數(shù)學(xué)知識進(jìn)行建模,檢測速度與檢測精度均不理想。文獻(xiàn)[3]提出的支持向量機(jī)與圖匹配相結(jié)合的檢測方法不適用于其它地面箭頭標(biāo)識線,僅對直行箭頭標(biāo)識線具有良好的檢測效果。文獻(xiàn)[4]介紹了一種基于“十”字形模型匹配的檢測方法,檢測精度僅為78.74%。隨著科技的進(jìn)步,國內(nèi)外研究人員提出了一系列基于深度學(xué)習(xí)[5 - 7]的地面箭頭標(biāo)識線檢測方法。文獻(xiàn)[8]提出了一種基于主成分分析網(wǎng)絡(luò)的箭頭標(biāo)識線檢測方法,其需要提前將圖像中的各類標(biāo)識線通過二值化梯度特征方法進(jìn)行定位,因此該檢測方法較為復(fù)雜。Lee等人[9]利用VPGNet(Vanishing Point Guide Network)實現(xiàn)各類箭頭標(biāo)識線的檢測,通過端到端的卷積神經(jīng)網(wǎng)絡(luò)對大量圖像進(jìn)行訓(xùn)練,從而獲得地面箭頭標(biāo)識線的準(zhǔn)確位置,但其檢測速度僅有20 fps。文獻(xiàn)[10]提出的MobileNet v1網(wǎng)絡(luò)將卷積操作分為深度卷積操作和逐點(diǎn)卷積操作,因此大幅度減少了網(wǎng)絡(luò)的參數(shù)量。Zhao等人[11]于2019年提出了一種單階段目標(biāo)檢測算法M2Det,該算法構(gòu)造了一種更有效的特征金字塔網(wǎng)絡(luò)MLFPN(Multi Level Feature Pyramid Network)用來檢測不同大小的物體,但該算法參數(shù)量較大。
本文在M2Det算法的基礎(chǔ)上進(jìn)行改進(jìn),以實現(xiàn)地面箭頭標(biāo)識線的端到端檢測,在減少參數(shù)量的同時提高檢測準(zhǔn)確率。具體內(nèi)容包括:
(1)利用輕量級網(wǎng)絡(luò)MobileNet v1替代原始M2Det算法中的VGG特征提取網(wǎng)絡(luò),以減少參數(shù)量,提高檢測速度;
(2)采用Mish激活函數(shù)替代深度卷積與分離卷積中的ReLU激活函數(shù),以提高主干特征提取網(wǎng)絡(luò)的泛化能力與訓(xùn)練的穩(wěn)定性;
(3)針對網(wǎng)絡(luò)參數(shù)量減少導(dǎo)致檢測精度受損的現(xiàn)象,將BasicRFB(Basic Receptive Field Block)模塊添加在MobileNet v1網(wǎng)絡(luò)中,用以提高檢測準(zhǔn)確率;
(4)采用Mosaic數(shù)據(jù)增強(qiáng)方法對實驗數(shù)據(jù)進(jìn)行擴(kuò)充,解決數(shù)據(jù)集不足問題。
改進(jìn)M2Det算法主要包括以下3個部分:首先,利用主干特征提取網(wǎng)絡(luò)(Backbone Network)對輸入的原始圖像進(jìn)行粗略的特征提??;然后,將其輸入MLFPN模塊構(gòu)建更有效的特征金字塔,生成置信度高低不均的邊界框和類別分?jǐn)?shù);最后,通過非極大抑制NMS(Non-Maximum Suppression)預(yù)測網(wǎng)絡(luò)對置信度較低的邊界框進(jìn)行剔除,從而獲得與目標(biāo)物體最為接近的預(yù)測結(jié)果。改進(jìn)M2Det算法框架如圖1所示。
Figure 1 Overall framework of improved M2det algorithm圖1 改進(jìn)M2det算法整體框架
下面闡述對主干特征提取網(wǎng)絡(luò)和MLFPN模塊的具體改進(jìn)。
VGG(Visual Geometry Group)[12]網(wǎng)絡(luò)是M2Det算法的主干特征提取網(wǎng)絡(luò),由于其比較耗費(fèi)計算資源,且占用較多內(nèi)存空間,一般的輕量級網(wǎng)絡(luò)雖然提高了檢測速度,但檢測精度也隨之受影響。因此,本文為得到更適合檢測各類地面箭頭標(biāo)識線的主干特征提取網(wǎng)絡(luò),提高各類小目標(biāo)物體在豐富背景下的檢測精度與檢測速度,選用MobileNet v1輕量級網(wǎng)絡(luò)替換VGG網(wǎng)絡(luò);并添加BasicRFB[13]模塊,以增大感受野的方式提高檢測精度,避免發(fā)生因網(wǎng)絡(luò)參數(shù)量減小而出現(xiàn)精度受損的現(xiàn)象;另外,為提高主干特征網(wǎng)絡(luò)的泛化能力與訓(xùn)練效果,用Mish[14]激活函數(shù)替代深度卷積與逐點(diǎn)卷積中的ReLU(Rectified Linear Units)激活函數(shù)。主干特征提取網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
由圖2中的虛線框可知,MobileNet v1網(wǎng)絡(luò)由一個標(biāo)準(zhǔn)卷積塊(Conv2d)和一連串深度可分離卷積(Depthwise Conv)[10]組成。首先將輸入圖像統(tǒng)一調(diào)整成320×320×3大小,經(jīng)過一系列卷積操作得到Conv1~Conv5 5個特征層,對Conv4進(jìn)行上采樣操作后與Conv3堆疊,隨后添加BasicRFB模塊,與Conv5添加BasicRFB模塊后的特征層合并輸入到FFM1模塊中,進(jìn)行初步的特征融合。
Figure 2 Structure of backbone feature extraction network 圖2 主干特征提取網(wǎng)絡(luò)結(jié)構(gòu)
2.2.1 MobileNet v1網(wǎng)絡(luò)
MobileNet v1網(wǎng)絡(luò)的基本單元是深度可分離卷積,可細(xì)化成3×3深度卷積與1×1逐點(diǎn)卷積。先使用深度卷積對每一個輸入通道單獨(dú)進(jìn)行處理,再通過1×1逐點(diǎn)卷積對深度卷積的輸出進(jìn)行組合,以此來減少計算量。另外,深度卷積與逐點(diǎn)卷積中均包含歸一化單元BN(Batch Normalization)和非線性激活函數(shù)ReLU。改進(jìn)M2Det算法用Mish激活函數(shù)代替ReLU激活函數(shù),Mish激活函數(shù)無邊界,可以避免出現(xiàn)因為封頂而產(chǎn)生的梯度飽和問題;同時,Mish激活函數(shù)非單調(diào),有助于穩(wěn)定網(wǎng)絡(luò)梯度流,具有較好的泛化能力。改進(jìn)深度可分離卷積結(jié)構(gòu)如圖3所示。綜上所述,改進(jìn)的MobileNet v1網(wǎng)絡(luò)可以提高地面箭頭標(biāo)識線的檢測準(zhǔn)確性與檢測實時性。
Figure 3 Structure of improved depth separable convolution 圖3 改進(jìn)深度可分離卷積結(jié)構(gòu)
標(biāo)準(zhǔn)卷積計算量如式(1)所示:
(1)
其中,DK表示卷積核的大小,M表示輸入通道數(shù),N表示卷積核個數(shù),DF表示輸入特征的寬。
MobileNet v1網(wǎng)絡(luò)計算量如式(2)所示:
(2)
2.2.2 BasicRFB模塊
BasicRFB模塊與Inception[15]網(wǎng)絡(luò)結(jié)構(gòu)相似,是一個借鑒了空洞卷積[16]思想的多分支卷積模塊。以40×40×512這一特征層為例的BasicRFB結(jié)構(gòu)如圖4所示。具體而言,首先,在每個分支中引入瓶頸(bottleneck)結(jié)構(gòu),用1×1和3×3的卷積層來減少特征圖中的通道數(shù),加深網(wǎng)絡(luò)深度;同時參考ResNet[17]網(wǎng)絡(luò)中的直連(Short Cut)結(jié)構(gòu),避免出現(xiàn)因為網(wǎng)絡(luò)深度的增加導(dǎo)致梯度發(fā)散的現(xiàn)象,從而影響檢測效果。此外,BasicRFB模塊中還利用1×7和7×1的卷積層替換7×7卷積層來減少網(wǎng)絡(luò)的參數(shù)量,提高模型的訓(xùn)練速度。空洞卷積是在傳統(tǒng)卷積中引入空洞,允許卷積核與擴(kuò)張率為r的像素點(diǎn)進(jìn)行乘積運(yùn)算,在參數(shù)量不變的情況下,生成更高分辨率的特征圖,便于檢測各類地面箭頭標(biāo)識線,本文中的r分別為1,3,5,7。
Figure 4 Structure of BasicRFB 圖4 BasicRFB結(jié)構(gòu)
M2Det算法提出的MLFPN網(wǎng)絡(luò)繼承了SSD(Single Shot multibox Detector)[18]型和FPN(Feature Pyramid Network)[19]型特征提取網(wǎng)絡(luò)的優(yōu)點(diǎn),細(xì)化了目標(biāo)物體的尺寸。MLFPN由特征融合模塊FFM(Feature Fusion Module)、細(xì)化的U型模塊TUM(Thinned U-shape Module)和尺度特征融合模塊SFAM(Scaled-wise Feature Aggregation Module)3個部分組成,其結(jié)構(gòu)如圖5所示。首先,F(xiàn)FM1將主干網(wǎng)絡(luò)提取的特征聚合成語義信息更為豐富的基礎(chǔ)特征(Base Feature),隨后經(jīng)過交替連接的TUM和FFM2實現(xiàn)特征的深度提取,生成多層次多尺度特征。其中,前面的TUM1生成淺層(Shallow)特征,中間的TUM2和TUM3生成中層(Medium)特征,后面的TUM4生成深層(Deep)特征。最后,SFAM將TUM中獲得的多層特征按照不同維度進(jìn)行堆疊,并施加自適應(yīng)注意力機(jī)制,形成多級特征金字塔,最大程度地強(qiáng)化網(wǎng)絡(luò)的特征提取能力。
Figure 5 Structure of MLFPN module 圖5 MLFPN模塊結(jié)構(gòu)
在MLFPN模塊中,由于每一個TUM參數(shù)量較大,為保證訓(xùn)練精度的同時還能提高訓(xùn)練速度,本文將默認(rèn)配置中的8個TUM修改成4個TUM。由圖5可知,除TUM1之外,其它TUM均可從前一個TUM和基礎(chǔ)特征中同時進(jìn)行學(xué)習(xí)。下面對特征融合模塊、細(xì)化U型模塊和尺度特征融合模塊進(jìn)行具體介紹。
2.3.1 FFM模塊
FFM是MLFPN網(wǎng)絡(luò)中的特征融合模塊,包含F(xiàn)FM1與FFM2 2個子模塊。其中,F(xiàn)FM1結(jié)構(gòu)如圖6所示,其主要目的是將主干網(wǎng)絡(luò)提取到的不同深度與尺寸的特征進(jìn)行融合,得到一個統(tǒng)一尺寸的基礎(chǔ)特征層。由圖6可知,1×1卷積用來壓縮特征通道數(shù),由于淺層特征的長與寬較小,需進(jìn)行上采樣操作,使其可以與深層特征進(jìn)行融合。FFM2結(jié)構(gòu)如圖7所示,其主要目的是將前一個TUM模塊輸出的最大特征層與基礎(chǔ)特征層進(jìn)行融合,輸入下一個TUM模塊,不斷進(jìn)行特征的深度提取。
Figure 6 Structure of FFM1 圖6 FFM1結(jié)構(gòu)
Figure 7 Structure of FFM2 圖7 FFM2結(jié)構(gòu)
Figure 8 Structure of TUM 圖8 TUM結(jié)構(gòu)
2.3.2 TUM模塊
TUM是一個細(xì)化的U型模塊,其編碼器是一系列步長為2、卷積核大小為3×3的卷積層,解碼器將這些卷積層的輸出作為接下來求和操作的輸入。另外,在解碼器分支的每一個上采樣和求和操作后,均添加了一個1×1卷積層來增強(qiáng)網(wǎng)絡(luò)的學(xué)習(xí)能力。TUM結(jié)構(gòu)如圖8所示,圖中⊕代表上采樣和求和操作,每一個TUM均生成6種尺度的特征,堆疊起來的TUM便可生成多層次的多尺度特征,為SFAM模塊提供輸入。
2.3.3 SFAM模塊
SFAM的作用是將TUM產(chǎn)生的6種不同尺度的特征進(jìn)行聚合,得到多級特征金字塔。其主要結(jié)構(gòu)分為2個部分:第1部分是將TUM產(chǎn)生的淺層特征、中層特征和深層特征按照通道維度進(jìn)行堆疊,如圖9中①所示;第2部分以自適應(yīng)方式聚合特征,利用2個全連接層給有效特征層的通道添加注意力機(jī)制[20],以此來更好地聚合特征,提高神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果,如圖9中②所示。
Figure 9 Structure of SFAM 圖9 SFAM結(jié)構(gòu)
本文算法選用4個TUM進(jìn)行訓(xùn)練,SFAM結(jié)構(gòu)如圖9所示。第2部分中不同特征層施加注意力機(jī)制的方式與10×10×512特征層一致。
實驗硬件環(huán)境為Intel i5-8500 CPU@3 GHz× 6處理器,在Ubuntu16.04操作系統(tǒng)下以python作為開發(fā)語言,搭建Keras深度學(xué)習(xí)框架進(jìn)行訓(xùn)練與測試。為縮短訓(xùn)練時間,使用NVIDIA GeForce GTX 1060 6 GB顯卡、CUDA9.0和CUDNN7.05調(diào)用GUP,提高計算速度。
實驗中的數(shù)據(jù)集來源于行車記錄儀拍攝的市區(qū)道路視頻,本文對包含各類地面箭頭標(biāo)識線的圖像進(jìn)行人工標(biāo)注,共包括2 504幅圖像。其中標(biāo)注類別分為直走(straight-line)、左轉(zhuǎn)(left-turn)、右轉(zhuǎn)(right-turn)、直走左轉(zhuǎn)(straight-left-line)和直走右轉(zhuǎn)(straight-right-line)5類。
數(shù)據(jù)集標(biāo)簽制作流程如下:第1步,將所有圖像整理成PASCAL VOC2007數(shù)據(jù)集格式,并依照9∶1比例將其隨機(jī)分為訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù),其中,測試數(shù)據(jù)中的251幅圖像僅在驗證中使用。第2步,使用Labelimg工具對訓(xùn)練數(shù)據(jù)進(jìn)行人工標(biāo)注,得到XML格式的文件。第3步,將XML格式文件中的目標(biāo)框位置信息通過Python語言進(jìn)行處理,得到所需的txt格式的標(biāo)簽。
另外,本文還使用Mosaic數(shù)據(jù)增強(qiáng)方式對訓(xùn)練數(shù)據(jù)進(jìn)行擴(kuò)充,以此來豐富檢測物體的背景,避免過擬合現(xiàn)象的發(fā)生。Mosaic數(shù)據(jù)增強(qiáng)是一種改進(jìn)版的CutMix[21]數(shù)據(jù)增強(qiáng)方法,其增強(qiáng)結(jié)果如圖10所示。
Figure 10 Mosaic data enhancement圖10 Mosaic數(shù)據(jù)增強(qiáng)
實驗中設(shè)置批處理大小為4,使用階層性下降方式的學(xué)習(xí)率,初始學(xué)習(xí)率設(shè)置為0.001,共訓(xùn)練100個周期。本文主要進(jìn)行了不同檢測算法的對比實驗、可視化實驗和模塊消融實驗,下面對具體的實驗結(jié)果進(jìn)行分析。
3.3.1 不同檢測算法對比實驗
M2Det算法是單階段目標(biāo)檢測算法SSD的改進(jìn)版,針對原始M2Det算法參數(shù)量大、檢測精度不高等問題,本文對M2Det算法的主干特征提取網(wǎng)絡(luò)和MLFPN網(wǎng)絡(luò)進(jìn)行改進(jìn),并引用Mosaic數(shù)據(jù)增強(qiáng)方法對訓(xùn)練數(shù)據(jù)進(jìn)行擴(kuò)充。本文所提算法與其它檢測算法在mAP值、參數(shù)量和FPS值上的實驗結(jié)果如表1所示。
Table 1 Comparative experiment of different algorithms
實驗結(jié)果表明,SSD算法的參數(shù)量較小,但mAP值僅為77.54%;MobileNet v1_SSD算法將SSD算法中的基礎(chǔ)網(wǎng)絡(luò)替換成MobileNet v1輕量級網(wǎng)絡(luò),提高了FPS值,減少了參數(shù)量,但mAP值也隨之降低;RFBNet算法在SSD算法中添加了RFB模塊,提高了mAP值但增加了參數(shù)量;YOLOv3算法也是一種典型的單階段目標(biāo)檢測算法,F(xiàn)PS值因其參數(shù)量較大而較低;相較于其它算法,M2Det算法的檢測精度僅次于YOLOv3算法;改進(jìn)M2Det算法因其特有的MLFPN網(wǎng)絡(luò)有助于檢測不同尺寸目標(biāo)這一優(yōu)點(diǎn),獲得了最高的檢測精度,較少的參數(shù)量,F(xiàn)PS值也達(dá)到了23 fps。
3.3.2 可視化對比實驗
在測試數(shù)據(jù)中,改進(jìn)M2Det算法和M2Det算法的可視化實驗結(jié)果如圖11所示。其中,測試數(shù)據(jù)包括地面箭頭標(biāo)識線被磨損、被遮蓋等情況。
Figure 11 Comparison of visualization results圖11 可視化結(jié)果對比
由圖11可知,與M2Det算法相比,改進(jìn)M2Det算法可以檢測出更多被遮蓋的、被磨損的地面箭頭標(biāo)識線,與此同時還提高了分類置信度,再次驗證了本文所提算法的有效性。
3.3.3 模塊消融實驗
本文利用模塊消融實驗分析對比每個改進(jìn)點(diǎn)在本文所提算法中的作用。模塊a表示未改進(jìn)的M2Det算法,模塊b表示添加了MobileNet v1輕量級網(wǎng)絡(luò),其它以此類推,實驗結(jié)果如表2所示。
Table 2 Module ablation experiment
由表2可知,未改進(jìn)M2Det算法的檢測精度為84.83%;模塊b引入了輕量級網(wǎng)絡(luò)MobileNet v1,降低了mAP值;在模塊b的基礎(chǔ)上,將深度可分離卷積中的激活函數(shù)進(jìn)行替換,mAP值提升至85.70%;繼續(xù)添加BasicRFB模塊,提高主干網(wǎng)絡(luò)的特征提取能力,使得mAP值提升了2.01個百分點(diǎn);最后,使用Mosaic數(shù)據(jù)增強(qiáng)方式提高了算法的魯棒性,進(jìn)一步將mAP提升至88.72%。
本文在M2Det算法的基礎(chǔ)上提出了一種改進(jìn)M2Det算法,該算法利用MobileNet v1網(wǎng)絡(luò)替換M2Det算法中的主干網(wǎng)絡(luò)VGG,引入Mish激活函數(shù)替換深度卷積與分離卷積中的ReLU激活函數(shù),同時在主干網(wǎng)絡(luò)中使用BasicRFB模塊實現(xiàn)特征的加強(qiáng)提取。另外,通過Mosaic數(shù)據(jù)增強(qiáng)方式豐富訓(xùn)練圖像的背景,擴(kuò)充訓(xùn)練數(shù)據(jù),實現(xiàn)地面箭頭標(biāo)識線的檢測。實驗結(jié)果表明,本文所提算法完成了地面箭頭標(biāo)識線的有效檢測,與未改進(jìn)的M2Det算法相比,檢測精度提升了3.9個百分點(diǎn),檢測速度也大幅度提高,可視化實驗進(jìn)一步驗證了改進(jìn)M2Det算法對小目標(biāo)物體檢測的有效性。