史健婷,李 旭,2,劉文斌,安祥澤,2
(1黑龍江科技大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,哈爾濱 150022;2黑龍江科技大學(xué) 研究生學(xué)院,哈爾濱 150022)
目標(biāo)檢測(cè)是計(jì)算機(jī)視覺和數(shù)字圖像處理的一個(gè)熱門方向,廣泛應(yīng)用于視頻監(jiān)控、自動(dòng)駕駛、航空航天等諸多領(lǐng)域。近年來目標(biāo)檢測(cè)成為研究和應(yīng)用的主攻領(lǐng)域,再加上深度學(xué)習(xí)的廣泛運(yùn)用,目標(biāo)檢測(cè)得到了更加快速的發(fā)展。
目前主流的目標(biāo)檢測(cè)算法大概可以分為兩大類:
(1)One-Stage目標(biāo)檢測(cè)算法,這類算法不需要候選區(qū)域階段,直接對(duì)物體進(jìn)行檢測(cè)和識(shí)別。YOLO系列就是一階段的代表性算法,速度較快,但精確度較差;
(2)Two-Stage目標(biāo)檢測(cè)算法,這類算法主要分為兩個(gè)階段,第一階段是產(chǎn)生候選區(qū)域,也就是目標(biāo)的大概位置;第二階段對(duì)所產(chǎn)生的候選區(qū)域進(jìn)行類別和位置信息的預(yù)測(cè)識(shí)別。R-CNN是兩階段的代表性算法,雖速度較慢,但有較高的精度。兩類算法各有優(yōu)勢(shì),隨著研究的不斷深入,兩類算法都在做著改進(jìn),并能在速度和準(zhǔn)確度上取得很好的表現(xiàn)。
隨著網(wǎng)絡(luò)的深度不斷加深,為了獲得更多的目標(biāo)信息,勢(shì)必要擴(kuò)大網(wǎng)絡(luò)的通道數(shù),這樣就會(huì)帶來大量的參數(shù)運(yùn)算。本文將 EfficientNet網(wǎng)絡(luò)和YOLOv4中的檢測(cè)網(wǎng)絡(luò)相結(jié)合,以達(dá)到參數(shù)量的大量減少,檢測(cè)速度盡可能提高的目標(biāo)檢測(cè)算法。
YOLOv4是YOLOv3的改進(jìn)版,在其基礎(chǔ)上融合了許多創(chuàng)新性的小技巧。YOLOv4可以分為4部分,其中包括:輸入端、BackBone主干網(wǎng)絡(luò)、Neck、Prediction。
輸入端的創(chuàng)新,主要是訓(xùn)練時(shí)對(duì)輸入端的改進(jìn),包括Mosaic數(shù)據(jù)增強(qiáng)等;BackBone主干網(wǎng)絡(luò)是將各種創(chuàng)新結(jié)合起來,其中包括:CSPDarknet53、Mish激活函數(shù)、Dropblock等;Neck部分是在BackBone和最后的輸出層之間插入一些層,如YOLOv4中的SPP模塊、FPN+PAN結(jié)構(gòu);Prediction部分主要改進(jìn)訓(xùn)練時(shí)的損失函數(shù)_。YOLOv4的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 YOLOv4 network structure diagram
若以輸入的圖像尺寸為416×416為例,其處理過程如下:
圖像進(jìn)行Mosaic數(shù)據(jù)增強(qiáng)后,主干提取網(wǎng)絡(luò)CSPDarknet53進(jìn)行特征提取,將提取到的特征進(jìn)行SPP 3次不同尺度的最大池化,并通過PANet進(jìn)行特征融合;將不同尺度的特征圖進(jìn)行融合,獲得3種尺度的特征圖(52×52、26×26、13×13);最后分別對(duì)這3種不同尺度的特征圖進(jìn)行分類回歸預(yù)測(cè)結(jié)果。
EfficientNet算法具有的特點(diǎn):利用殘差結(jié)構(gòu)來提高網(wǎng)絡(luò)的深度,通過更深層次的神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)更多特征信息的提?。桓淖兠恳粚犹崛〉奶卣鲗訑?shù),實(shí)現(xiàn)更多層的特征提取,來提升寬度;通過增大輸入圖片的分辨率,使網(wǎng)絡(luò)學(xué)習(xí)到更加豐富的內(nèi)容,達(dá)到提高精確度的目的。
EfficientNet使用一組固定的縮放系數(shù)統(tǒng)一縮放網(wǎng)絡(luò)深度、寬度和分辨率,網(wǎng)絡(luò)可以平衡縮放,進(jìn)入網(wǎng)絡(luò)中圖像的分辨率、網(wǎng)絡(luò)寬度和網(wǎng)絡(luò)深度,減少了模型參數(shù)量,增強(qiáng)了特征提取能力,使網(wǎng)絡(luò)的速度和精度達(dá)到最佳。EfficientNet有多個(gè)MBConv模塊。其總體的設(shè)計(jì)思路是Inverted residuals結(jié)構(gòu)和殘差結(jié)構(gòu),首先進(jìn)行1?1卷積操作進(jìn)行升維,在3?3或5?5的深度可分離卷積后,增加了一個(gè)通道的注意力機(jī)制,最后利用1?1卷積進(jìn)行降維后,增加一個(gè)大的殘差邊,進(jìn)行特征層的相加操作。MBConv模塊如圖2所示。
YOLOv4在損失函數(shù)方面,將作為回歸。為了使目標(biāo)框回歸更加穩(wěn)定,收斂的更快,考慮了多重因素。其中包括:目標(biāo)框與錨框之間的距離,重疊率、尺度以及懲罰項(xiàng),提高定位的精度,防止出現(xiàn)與(真實(shí)框和預(yù)測(cè)框的交集和并集之比)在訓(xùn)練過程中相同的發(fā)散問題。如式(1):
式中:、b分別表示錨框和目標(biāo)框的中心點(diǎn);為計(jì)算兩個(gè)中心點(diǎn)的歐式距離;為權(quán)重系數(shù);為長寬比相似性;、分別表示預(yù)測(cè)框的寬度和高度;w、h分別表示真實(shí)框的寬度和高度。
圖2 MBConv模塊結(jié)構(gòu)Fig.2 MBConv module structure diagram
YOLOv4中CSPDarknet53主干特征提取網(wǎng)絡(luò)的提取能力和檢測(cè)精度非常強(qiáng),在各個(gè)領(lǐng)域都有非常優(yōu)秀的表現(xiàn)。但主干巨大的參數(shù)量對(duì)計(jì)算設(shè)備的性能有著較高的要求,使其對(duì)車輛的實(shí)時(shí)監(jiān)測(cè)和算法的移植有較高的難度。YOLOv4-tiny雖然具有較低的參數(shù)量,較快的檢測(cè)速度,但是特征提取能力和泛化能力較差,在復(fù)雜的場(chǎng)景變化中檢測(cè)能力較差,對(duì)物體識(shí)別效果不太理想。
依據(jù)上述分析結(jié)果,為了解決既提高速度又具備較強(qiáng)檢測(cè)能力的問題,將特征提取的主干換成EfficientNet輕量級(jí)網(wǎng)絡(luò),因其具有較少的參數(shù)量和較高的特征提取能力,可以大大減少運(yùn)算時(shí)間提高實(shí)時(shí)監(jiān)測(cè)能力,并且該算法可以移植到較低算力的設(shè)備上。YOLOv4-Efficient網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
EfficientNet系列網(wǎng)絡(luò)有8種不同類型的模型,可以應(yīng)對(duì)不同的場(chǎng)景。如:應(yīng)對(duì)自動(dòng)駕駛中對(duì)車輛的檢測(cè)時(shí),考慮到速度和精度,可選擇EfficientNet-B2模型,將EfficientNet-B2最后的池化層和全連接層去掉之后,代替YOLOv4原始的CSPDarknet53特征提取網(wǎng)絡(luò)。EfficientNet-B2網(wǎng)絡(luò)結(jié)構(gòu)見表1。
圖3 YOLOv4-Efficient網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 YOLOv4-Efficient network structure
表1 EfficientNet-B2網(wǎng)絡(luò)結(jié)構(gòu)Tab.1 EfficientNet-B2 network structure
本文對(duì)PANet特征融合的改進(jìn)主要涉及兩個(gè)方面:一是引入深度可分離卷積,二是在進(jìn)行特征融合上采樣時(shí),加入了SENet注意力模塊。
由于PANet中使用了大量的卷積,會(huì)導(dǎo)致巨大的參數(shù)量,所以在PANet中引入了深度可分離卷積,使PANet特征金字塔部分的參數(shù)量大幅度減少,提高整個(gè)模型的檢測(cè)速度。
深度可分離卷積分為逐通道卷積和逐點(diǎn)卷積。在逐通道卷積中,一個(gè)卷積核負(fù)責(zé)一個(gè)通道,一個(gè)通道只被一個(gè)卷積核卷積。如圖4所示。
圖4 逐通道卷積結(jié)構(gòu)Fig.4 Channel by channel convolution structure
逐點(diǎn)卷積運(yùn)算和常規(guī)卷積運(yùn)算類似,其卷積核尺寸為1×1×M(上一層的通道數(shù))。這里的卷積運(yùn)算會(huì)將逐通道卷積產(chǎn)生特征圖,在深度方向上進(jìn)行加權(quán)組合,生成新的特征圖。有幾個(gè)卷積核就輸出幾個(gè)特征圖。
為了使不同的特征層進(jìn)行融合時(shí)保證其關(guān)鍵信息得到加強(qiáng),所以在PANet特征融合進(jìn)行上采樣時(shí)加入SENet(Squeeze-and-Excitation Network,即“壓縮和激勵(lì)”SE塊)。SE塊通過控制scale的大小,將一些重要特征進(jìn)行增強(qiáng),而對(duì)一些不重要的特征進(jìn)行抑制,從而讓提取到的特征有更強(qiáng)的指向性。SE模塊的結(jié)構(gòu)如圖5所示。
圖5 SE模塊結(jié)構(gòu)圖Fig.5 SE module structure diagram
圖中:sq()代表Squeeze過程;ex()代表Excitation過程;sc()是將Excitation得到的結(jié)果作為權(quán)重,乘到輸入特征上。
本次實(shí)驗(yàn)環(huán)境配置中,軟件環(huán)境為:python3.6編程語言、CUDA版本為11.2、深度學(xué)習(xí)框架pytorch1.2;硬件環(huán)境配置:GPU為RTX1050,CPU為i7-7700HQ。通過標(biāo)注和處理1521張來自BDD100K自動(dòng)駕駛的圖片,構(gòu)成本次實(shí)驗(yàn)的數(shù)據(jù)集。
實(shí)驗(yàn)中,將改進(jìn)的YOLOv4-Efficient模型與YOLOv4模型、YOLOv4-tiny進(jìn)行對(duì)比。在輸入圖片分辨率為416?416的情況下,通過精度()、參數(shù)量()、召回率()和平均準(zhǔn)確率()等性能指標(biāo)進(jìn)行評(píng)價(jià)。計(jì)算公式如式(5)(6):
式中:為圖像中車的區(qū)域,預(yù)測(cè)為車的正確情況;為圖像中為車的區(qū)域,預(yù)測(cè)為不是車錯(cuò)誤情況;為實(shí)際不是車的區(qū)域,但是預(yù)測(cè)此區(qū)域是車的情況。
將YOLOv4-Efficient與YOLOv4,YOLOv4-tiny模型進(jìn)行對(duì)比測(cè)試,測(cè)試結(jié)果見表2。
表2 模型檢測(cè)性能對(duì)比Tab.2 Performance comparison of models
通過表中數(shù)據(jù)可以看出,本文算法整體性要優(yōu)于YOLOv4和YOLOv4-tiny。在平均準(zhǔn)確率()和召回率()對(duì)比中,明顯高于YOLOv4-tiny;在參數(shù)量和精度方面要優(yōu)于YOLOv4;在平均準(zhǔn)確率和召回率方面略低于YOLOv4。進(jìn)行綜合對(duì)比后,在減少近4倍的參數(shù)量后,仍然有較好的檢測(cè)性能。pr曲線和精度曲線如圖6~7所示。
圖6 pr曲線Fig.6 Pr curve
圖7 精度曲線Fig.7 Precision curve
利用YOLOv4-Efficient測(cè)試結(jié)果如圖8所示。
圖8 測(cè)試結(jié)果Fig.8 Test result
本文在YOLOv4的基礎(chǔ)上提出了一種輕量級(jí)的車輛檢測(cè)算法YOLOv4-Efficient,將YOLOv4的主干提取網(wǎng)絡(luò)改為EfficientNet-B2后,在保證檢測(cè)精度的情況下,減少了模型的參數(shù)量,提高了檢測(cè)速度。相比YOLOv4的參數(shù)量,改進(jìn)后的模型參數(shù)量少了近4倍。經(jīng)過實(shí)驗(yàn)對(duì)比,在YOLOv4-Efficient對(duì)車輛的檢測(cè)中,參數(shù)量和精度方面要優(yōu)于YOLOv4,其精度達(dá)到了94.29%,參數(shù)量也僅僅有60.52 M,改進(jìn)后的模型更適合于移動(dòng)端的設(shè)備。后期工作中,在提高模型數(shù)據(jù)量來增強(qiáng)魯棒性的同時(shí),還要進(jìn)一步研究在不同復(fù)雜環(huán)境和天氣下對(duì)目標(biāo)的檢測(cè)。