邱天衡,王 玲,王 鵬,白燕娥
長(zhǎng)春理工大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,長(zhǎng)春 130022
目標(biāo)檢測(cè)是計(jì)算機(jī)視覺經(jīng)久不衰的研究方向,被廣泛應(yīng)用在航空航天、交通、醫(yī)療、工業(yè)、農(nóng)業(yè)、自動(dòng)駕駛等眾多領(lǐng)域,顯著地改善著人們的日常生活。
隨著大數(shù)據(jù)時(shí)代的到來以及GPU 算力的不斷增強(qiáng),深度學(xué)習(xí)在計(jì)算機(jī)視覺各領(lǐng)域中逐漸展露其優(yōu)勢(shì),尤其是目標(biāo)檢測(cè)任務(wù)。目標(biāo)檢測(cè)主要分為靜態(tài)圖像目標(biāo)檢測(cè)和動(dòng)態(tài)視頻目標(biāo)檢測(cè)。文獻(xiàn)[1]給出了近年來各種圖像目標(biāo)檢測(cè)算法及其改進(jìn)方法,視頻目標(biāo)檢測(cè)主要以圖像目標(biāo)檢測(cè)為基礎(chǔ),連接循環(huán)神經(jīng)網(wǎng)絡(luò)提取復(fù)雜的時(shí)序信息,文獻(xiàn)[2]給出了近年來的視頻目標(biāo)檢測(cè)方法的研究與發(fā)展。從2014 年開始,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)網(wǎng)絡(luò)井噴式爆發(fā),先是二階段網(wǎng)絡(luò),如R-CNN、Fast-RCNN[3]、Mask-RCNN[4]等,自2016 年文獻(xiàn)[5]提出you only look once(YOLOv1)以來,更輕更快的單階段目標(biāo)檢測(cè)網(wǎng)絡(luò)開始進(jìn)入學(xué)者們的視野,開啟了單階段目標(biāo)檢測(cè)網(wǎng)絡(luò)的新紀(jì)元。文獻(xiàn)[6-9]均是對(duì)單階段目標(biāo)檢測(cè)模型改進(jìn)的研究,為各研究領(lǐng)域提供了更快、更好的目標(biāo)檢測(cè)方法,也為單階段目標(biāo)檢測(cè)算法的實(shí)際應(yīng)用提供了重要理論保障。2020 年,YOLOv5 問世,以最高140FPS 的檢測(cè)速度震驚世人,使其成為實(shí)時(shí)條件和移動(dòng)部署環(huán)境上的理想候選者。
為了更好地提取檢測(cè)目標(biāo)的特征,許多優(yōu)秀的卷積神經(jīng)網(wǎng)絡(luò)被應(yīng)用于Backbone中,如VGG[10]、ResNet[11]等,但這些網(wǎng)絡(luò)訓(xùn)練和預(yù)測(cè)的代價(jià)太大,用于YOLO網(wǎng)絡(luò)的特征提取會(huì)使其失去實(shí)時(shí)性,無法滿足工業(yè)應(yīng)用的要求。隨著移動(dòng)端部署的需求不斷增強(qiáng)和模型應(yīng)用場(chǎng)景的多樣化發(fā)展,許多輕量化深度神經(jīng)網(wǎng)絡(luò)應(yīng)運(yùn)而生。MobileNet[12]的基本單元是深度可分離卷積,把標(biāo)準(zhǔn)卷積拆分為深度卷積和點(diǎn)卷積,用較少的計(jì)算量獲得了幾乎無損的精度。ShuffleNet[13]在此基礎(chǔ)上,利用組卷積和通道混洗來進(jìn)一步減少模型參數(shù)量。最近,華為諾亞方舟實(shí)驗(yàn)室在CVPR 2020上提出了一種新型的端側(cè)神經(jīng)網(wǎng)絡(luò)GhostNet[14],利用一些廉價(jià)的操作進(jìn)行變換,在同等參數(shù)量的情況下,精度遠(yuǎn)高于之前的輕量化網(wǎng)絡(luò)。
文獻(xiàn)[15-18]針對(duì)特定領(lǐng)域,對(duì)YOLOv5進(jìn)行了輕量化改進(jìn),但幾種模型均沒有對(duì)一般數(shù)據(jù)集,如COCO、PASCAL VOC 等進(jìn)行性能驗(yàn)證。同時(shí),在實(shí)際工業(yè)應(yīng)用中,發(fā)現(xiàn)YOLOv5s對(duì)邊界框的回歸不夠精準(zhǔn),使用更深的YOLOv5m、YOLOv5l 等又會(huì)受到硬件的制約,均難以滿足對(duì)實(shí)時(shí)性和目標(biāo)框回歸準(zhǔn)確率要求都很高的場(chǎng)景。為了解決這個(gè)問題,本研究基于YOLOv5提出一種針對(duì)一般數(shù)據(jù)集的輕量化和具有更高精度的目標(biāo)檢測(cè)模型:
(1)提出跨層加權(quán)級(jí)聯(lián)的路徑聚合網(wǎng)絡(luò)(WCALPAN)。首先,為了防止淺層目標(biāo)特征丟失,在PANet[19]結(jié)構(gòu)中加入跨層級(jí)聯(lián)的加權(quán)融合結(jié)構(gòu),將細(xì)節(jié)信息傳遞到深層網(wǎng)絡(luò);其次,為了獲得更加豐富的語(yǔ)義信息,加深金字塔的深度,并對(duì)應(yīng)增加Head部分的檢測(cè)層,在四種尺度下進(jìn)行檢測(cè),使錨框的鋪設(shè)間隔更加合理;最后,為了削減上采樣過程帶來的特征損失,改進(jìn)了上采樣方法。
(2)提出改進(jìn)CBAM 并行注意力模塊(P-CBAM)。首先對(duì)特征圖同時(shí)提取空間和通道注意力特征,然后進(jìn)行加權(quán)融合。并行模式的CBAM注意力結(jié)構(gòu)作為一個(gè)即插即用的模塊,可以插入到Backbone 中的每個(gè)卷積模塊后,用來提高網(wǎng)絡(luò)的收斂速度、精確度和對(duì)目標(biāo)邊界的回歸能力。
(3)輕量化網(wǎng)絡(luò)。以GhostConv 作為基本卷積模塊,通過廉價(jià)的線性變換生成更多的特征圖,使用GhostBottleneck替換掉原有的殘差塊,對(duì)整個(gè)檢測(cè)網(wǎng)絡(luò)進(jìn)行輕量化處理,以更少的參數(shù)量、更快的速度獲得更好的檢測(cè)效果。
YOLO 算法基于整個(gè)圖片進(jìn)行預(yù)測(cè),一次性給出所有的檢測(cè)結(jié)果。經(jīng)過不斷更新迭代,現(xiàn)已推出了YOLOv5,按照模型大小遞增可分為s、m、l、x,各模型僅在網(wǎng)絡(luò)的深度和寬度上有所不同,均由輸入端、Backbone、Neck、Head四部分構(gòu)成。輸入端使用Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)初始錨框計(jì)算、圖片縮放等對(duì)圖像進(jìn)行預(yù)處理;Backbone采用了Focus下采樣、改進(jìn)CSP結(jié)構(gòu)、SPP池化金字塔結(jié)構(gòu)提取圖片的特征信息;Neck主要采用FPN+PAN的特征金字塔結(jié)構(gòu),實(shí)現(xiàn)了不同尺寸目標(biāo)特征信息的傳遞,解決了多尺度問題;Head采用三種損失函數(shù)分別計(jì)算分類、定位和置信度損失,并通過NMS提高網(wǎng)絡(luò)預(yù)測(cè)的準(zhǔn)確度。
Conv 模塊為復(fù)合卷積模塊,是許多重要模塊的基本組成部分,結(jié)構(gòu)如圖1所示。
圖1 Conv結(jié)構(gòu)Fig.1 Conv structure
該模塊封裝了卷積層、BN 層以及激活函數(shù)層。卷積層通過autopad函數(shù)實(shí)現(xiàn)自適應(yīng)padding的效果。
Focus模塊結(jié)構(gòu)如圖2所示。首先將輸入圖片按照2倍下采樣切分為四部分,然后在通道維度拼接得到12維的特征圖,再經(jīng)過3×3的復(fù)合卷積模塊進(jìn)一步提取特征信息,生成32維的特征圖。Focus下采樣不但信息丟失少,而且通過reshape減少了卷積所帶來的FLOPs,提升了網(wǎng)絡(luò)的速度。
圖2 Focus結(jié)構(gòu)Fig.2 Focus structure
Bottleneck為基本殘差塊,被堆疊嵌入到C3模塊中進(jìn)行特征學(xué)習(xí),結(jié)構(gòu)如圖3所示。
圖3 Bottleneck結(jié)構(gòu)Fig.3 Bottleneck structure
利用兩個(gè)Conv 模塊將通道數(shù)先減小再擴(kuò)大對(duì)齊,以此提取特征信息,并使用ShortCut控制是否進(jìn)行殘差連接。
C3 模塊是改進(jìn)后的BottleneckCSP 模塊,結(jié)構(gòu)如圖4所示。
圖4 C3結(jié)構(gòu)Fig.4 C3 structure
在C3模塊中,輸入特征圖會(huì)通過兩個(gè)分支,第一個(gè)分支先經(jīng)過一個(gè)Conv模塊,之后通過堆疊的Bottleneck模塊對(duì)特征進(jìn)行學(xué)習(xí);另一分支作為殘差連接,僅通過一個(gè)Conv 模塊。兩分支最終按通道進(jìn)行拼接后,再通過一個(gè)Conv模塊進(jìn)行輸出。
SPP 模塊是空間金字塔池化模塊,可以擴(kuò)大感受野,結(jié)構(gòu)如圖5所示。
圖5 SPP結(jié)構(gòu)Fig.5 SPP structure
先將輸入特征圖經(jīng)過一個(gè)Conv 模塊減半通道數(shù),然后分別做三種不同卷積核的最大池化下采樣,再將三種池化結(jié)果與輸入特征圖按通道進(jìn)行拼接,合并后的通道數(shù)為原來的兩倍,以較小的代價(jià)最大限度地提升了感受野。
基于上述介紹,YOLOv5的基本架構(gòu)如圖6所示。
圖6 YOLOv5架構(gòu)圖Fig.6 YOLOv5 architecture diagram
本研究基于YOLOv5提出了改進(jìn)網(wǎng)絡(luò)YOLO-G,使用WCAL-PAN和P-CBAM來提高網(wǎng)絡(luò)的回歸精度和收斂速度,并引入Ghost 相關(guān)模塊降低網(wǎng)絡(luò)的復(fù)雜度。模型的網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。其中,“from”表示該層模塊對(duì)應(yīng)的輸入層,?1表示上一層?!癆dd”表示W(wǎng)CAL-PAN中跨層加權(quán)相加模塊,“Ghost”表示該層引入了Ghost模塊?!癝imple”標(biāo)記的模塊表示不添加P-CBAM機(jī)制。
表1 YOLO-G算法架構(gòu)Table 1 Architecture of YOLO-G algorithm
深度學(xué)習(xí)的淺層網(wǎng)絡(luò)關(guān)注細(xì)節(jié)信息,如邊緣特征,在獲取簡(jiǎn)單特征的基礎(chǔ)上,可以幫助網(wǎng)絡(luò)更準(zhǔn)確的回歸目標(biāo)邊界;深層網(wǎng)絡(luò)側(cè)重提取高級(jí)語(yǔ)義信息,可以提取到更加復(fù)雜的特征,能夠幫助網(wǎng)絡(luò)準(zhǔn)確地檢測(cè)出目標(biāo)。FPN結(jié)構(gòu)據(jù)此使用淺層特征區(qū)分簡(jiǎn)單的目標(biāo),深層特征區(qū)分復(fù)雜的目標(biāo),旨在獲得魯棒性更強(qiáng)的檢測(cè)結(jié)果。YOLOv5的FPN結(jié)構(gòu)是基于PAN的,創(chuàng)建了自下而上的路徑增強(qiáng),加速了底層信息的流動(dòng),能夠很好地融合各層次的語(yǔ)義信息。為了進(jìn)一步增強(qiáng)模型對(duì)淺層語(yǔ)義的關(guān)注度,充分融合FPN 各層所提取出的語(yǔ)義信息,增強(qiáng)網(wǎng)絡(luò)對(duì)目標(biāo)邊界的回歸能力,本研究對(duì)YOLOv5的FPN進(jìn)行改進(jìn),稱為weighted connections across layers-path aggregation network(WCAL-PAN),具體改進(jìn)點(diǎn)如下:
(1)在同一尺寸的輸入、輸出節(jié)點(diǎn)間加入跨層加權(quán)連接[20]。跨層級(jí)聯(lián)結(jié)構(gòu)能夠有效地將淺層的細(xì)節(jié)、邊緣、輪廓等信息融入到深層的網(wǎng)絡(luò)中,可以在幾乎不增加計(jì)算量的同時(shí),融合到目標(biāo)的淺層細(xì)節(jié)信息,使網(wǎng)絡(luò)對(duì)目標(biāo)邊界的回歸更加精準(zhǔn),有效提升預(yù)測(cè)框與真實(shí)框的交并比。同時(shí),考慮到使用跨層級(jí)聯(lián)時(shí)淺層特征的融入會(huì)對(duì)深層語(yǔ)義信息造成一定的影響,所以采用可學(xué)習(xí)的方式進(jìn)行融合。以下給出本研究所使用的兩種融合方式:
在特征融合過程中,由于頂層和底層的節(jié)點(diǎn)信息流動(dòng)速度較快,經(jīng)歷的卷積數(shù)目較少,所以對(duì)細(xì)節(jié)信息的損失不多,為了減小模型的復(fù)雜度,所以直接采用concat操作按通道進(jìn)行特征融合,過程如圖7所示。
圖7 一般特征融合示意圖Fig.7 Diagram of general feature fusion
對(duì)于其他層的節(jié)點(diǎn),相鄰路徑上采用concat操作進(jìn)行特征融合,不相鄰路徑上采用可學(xué)習(xí)權(quán)重的加權(quán)add操作進(jìn)行特征融合,add操作既可以減少計(jì)算量,也可以減少無效淺層信息的融合。計(jì)算見公式(1):
式中xi表示每個(gè)要進(jìn)行融合的特征圖;μi是該特征圖的權(quán)重系數(shù),可通過學(xué)習(xí)進(jìn)行更新,初始的權(quán)重系數(shù)設(shè)定為1,表示兩層特征圖對(duì)等融合;?是一個(gè)很小的數(shù)字(≤10?3),可有效防止數(shù)值不穩(wěn)定的情況。將權(quán)重標(biāo)準(zhǔn)化到0~1 之間,提高訓(xùn)練的速度的同時(shí),可以防止訓(xùn)練不穩(wěn)定的情況發(fā)生。依據(jù)公式(1),對(duì)于某一中間層的特征融合方式如圖8所示。
圖8 跨層級(jí)聯(lián)示意圖Fig.8 Linking diagram of across hierarchies
在圖7和圖8中,給定某層輸入特征圖F1∈Rw×h×c1,自頂向下路徑對(duì)應(yīng)層的特征圖F2∈Rw×h×c2,自底向上路徑對(duì)應(yīng)層的特征圖F3∈Rw×h×c3,“*”表示concat 操作,“+”表示add 操作,weight1、weight2分別是兩條路徑上特征圖融合的權(quán)重值。
從兩圖中可以看出,頂層和底層輸出節(jié)點(diǎn)的特征融合采用的是concat操作;而中間層節(jié)點(diǎn)的特征融合的過程中首先經(jīng)歷了concat操作,之后與經(jīng)過通道對(duì)齊后的輸入層進(jìn)行加權(quán)add 操作。最終在輸出節(jié)點(diǎn)得到的特征圖是含有細(xì)節(jié)、邊緣和高級(jí)語(yǔ)義信息的復(fù)合特征圖。為了便于理解,以中間層P4 為例,各路徑上輸出的計(jì)算如公式(2)、(3)所示:
(2)向上加深特征金字塔深度。FPN 高層感受野大,包含的語(yǔ)義信息更高級(jí),可以增加網(wǎng)絡(luò)的學(xué)習(xí)能力,進(jìn)一步提高檢測(cè)精度。YOLOv5的FPN為3層,基于改進(jìn)(1),本研究將其加深為4層,可以充分利用所提跨層級(jí)聯(lián)結(jié)構(gòu)。除此之外,為了匹配FPN 的深度,本研究增加Detect 部分的檢測(cè)層,分別命名為tiny、small、medium、large,依次對(duì)P3、P4、P5、P6 輸出的特征圖進(jìn)行目標(biāo)檢測(cè),增加檢測(cè)層之后錨框的鋪設(shè)間隔變得更加合理,訓(xùn)練的穩(wěn)定性以及模型的收斂速度和精度都會(huì)得到有效提升。
基于改進(jìn)點(diǎn)(1)、(2),本文采用的FPN 結(jié)構(gòu)簡(jiǎn)化版如圖9所示。
圖9 本文所用FPN結(jié)構(gòu)Fig.9 FPN structure used in this paper
圖9 中橙色虛線即為跨層級(jí)聯(lián),從圖中可以看出,跨層加權(quán)融合僅僅用于兩個(gè)中間層P4、P5,對(duì)于頂層P6 和底層P3,由于信息流動(dòng)造成的損失不多,考慮到模型的運(yùn)行效率,本研究直接將兩部分特征圖按通道進(jìn)行拼接。為了客觀給出加深金字塔對(duì)網(wǎng)絡(luò)造成的影響,表2 給出了加深金字塔前后YOLOv5s 的效果對(duì)比,其中WCAL-PAN_1表示加深金字塔后的PAN模塊。
表2 加深金字塔前后YOLOv5s的效果對(duì)比Table 2 Effect comparison of YOLOv5s before and after deepening pyramid
可見,加深金字塔后,雖然模型精度mAP@0.5 和mAP@0.5:0.95 獲得了大幅提升,但參數(shù)量的大幅增加使得加載網(wǎng)絡(luò)需要更多的顯存,加大了模型訓(xùn)練對(duì)硬件的要求,同時(shí)也影響了模型運(yùn)行的速度。為了解決這樣的問題,本研究引入了Ghost 系列模塊對(duì)網(wǎng)絡(luò)進(jìn)行輕量化處理,在一定程度上彌補(bǔ)加深金字塔后網(wǎng)絡(luò)復(fù)雜度上升所帶來的負(fù)面影響。
(3)改進(jìn)YOLOv5上采樣方法。YOLOv5采用最鄰近插值法進(jìn)行上采樣,該方法選用單個(gè)參考點(diǎn)像素值進(jìn)行估計(jì),雖然速度快、開銷小,但上采樣過程中會(huì)造成很嚴(yán)重的特征損失,降低小目標(biāo)的檢測(cè)精度。雙線性插值法利用4 個(gè)點(diǎn)估計(jì)插值,得到的特征圖更加細(xì)膩,細(xì)節(jié)的損失更少,于是本研究將上采樣方法改為雙線性插值法,二者復(fù)雜度僅僅是常數(shù)級(jí)的差距,相對(duì)于精確度的提升,帶來的計(jì)算開銷是可以接受的。
表3 為使用PAN 結(jié)構(gòu)和兩種WCAL-PAN 結(jié)構(gòu)的YOLOv5s 的實(shí)驗(yàn)精度對(duì)比,WCAL-PAN 表示完全使用本研究所提出的FPN 結(jié)構(gòu)。從表中可以看出,使用WCAL-PAN比PAN的mAP@0.5指標(biāo)提升了4.9個(gè)百分點(diǎn),高交并比要求下的mAP@0.5:0.95 指標(biāo)提高了8.0個(gè)百分點(diǎn),比加深金字塔的WCAL-PAN_1 在mAP@0.5:0.95指標(biāo)上提升了1.6個(gè)百分點(diǎn),證明了跨層級(jí)聯(lián)結(jié)構(gòu)能進(jìn)一步提高網(wǎng)絡(luò)對(duì)邊界的回歸精度??偟膩碚f,WCAL-PAN結(jié)構(gòu)使得網(wǎng)絡(luò)各層次語(yǔ)義信息融合得更加合理充分,WCAL-PAN 的引入使網(wǎng)絡(luò)精度有了大幅上升,尤其是高交并比要求下的精度進(jìn)一步提高,證明網(wǎng)絡(luò)從WCAL-PAN 結(jié)構(gòu)中融合到了更加有效的特征信息,可以更好地回歸目標(biāo)的邊界框,契合高交并比下的工業(yè)目標(biāo)檢測(cè)任務(wù)。
表3 WCAL-PAN和PAN在YOLOv5s下的效果對(duì)比Table 3 Effect comparison of WCAL-PAN and PAN in YOLO%v5s
注意力機(jī)制通過給不同部分的特征圖賦予權(quán)重或硬性選擇部分特征圖,抑制無用信息,以達(dá)到選擇更優(yōu)特征的目的。文獻(xiàn)[21]結(jié)合通道和空間的信息,提出了一種混合域卷積注意力模塊(convolutional block attention module,CBAM),該模塊首先逐通道提取全局特征,生成通道注意力特征圖,并以此作為空間注意力的輸入,最終生成混合域特征圖,可以有效提高模型的收斂速度和檢測(cè)精度。事實(shí)上,在深度卷積神經(jīng)網(wǎng)絡(luò)中,有些層更加關(guān)注通道特征,而引入空間特征則會(huì)讓網(wǎng)絡(luò)變得敏感,甚至?xí)a(chǎn)生許多非像素信息;有的層更加關(guān)注空間特征,而引入通道特征容易對(duì)網(wǎng)絡(luò)造成過擬合的情況。但CBAM空間和通道注意力串行的信息交流方式忽略了上述特點(diǎn),本研究基于此進(jìn)行改進(jìn)。對(duì)于不同的特征圖數(shù)據(jù),由于無法預(yù)知特征圖對(duì)通道和空間的關(guān)注程度,首先賦予通道注意力模塊和空間注意力模塊相同的優(yōu)先級(jí),然后以可學(xué)習(xí)的加權(quán)融合方式提取混合域特征信息,以此進(jìn)行特征圖空間和通道的信息交流,充分利用通道和空間維度的注意力信息,稱為parallelconvolutional block attention module(P-CBAM),結(jié)構(gòu)如圖10所示。
圖10 P-CBAM結(jié)構(gòu)Fig.10 P-CBAM structure
對(duì)于輸入特征圖F∈RW×H×C,通道注意力模塊和空間注意力模塊輸出的計(jì)算如公式(4)、(5)所示:
式中,F(xiàn)C和FS分別為通道和空間注意力特征圖,?表示元素乘法,在該過程中,MC和MS被沿著通道和空間維度進(jìn)行廣播。Fout是對(duì)兩種類型的特征圖進(jìn)行加權(quán)融合的結(jié)果。本研究通過ShortCut控制殘差連接,使用簡(jiǎn)便的歸一化除法保證訓(xùn)練的穩(wěn)定性。P-CBAM從對(duì)等的角度獲取一維通道和二維空間的注意力信息,能夠更加有針對(duì)性地提取圖片特征,提升圖像識(shí)別效果,以下從定性定量?jī)蓚€(gè)角度證明P-CBAM的有效性。
表4為YOLOv5s與加入各種注意力機(jī)制后在VOC2007測(cè)試集下的精度對(duì)比,從表中可以看出加入注意力機(jī)制普遍能夠提升網(wǎng)絡(luò)的精度。原始算法在加入CBAM后造成了精度下降,而加入P-CBAM后,在mAP@0.5指標(biāo)上比最優(yōu)的ECA機(jī)制僅差0.2個(gè)百分點(diǎn),相比原始算法提高0.6 個(gè)百分點(diǎn);在mAP@0.5:0.95 指標(biāo)上,P-CBAM在4種注意力機(jī)制中獲得了最優(yōu)的效果,相比原始算法提高1.8 個(gè)百分點(diǎn),更適用于高交并比下的目標(biāo)檢測(cè)任務(wù),證明賦予空間和通道注意力機(jī)制相同的優(yōu)先級(jí)并以加權(quán)的方式提取注意力信息是對(duì)CBAM模塊有效的改進(jìn)方法。
表4 各種注意力機(jī)制與P-CBAM在YOLOv5s下的對(duì)比Table 4 Comparison of various attentional mechanisms and P-CBAM in YOLOv5s%
如圖11為特征圖經(jīng)過各種注意力機(jī)制處理后的加權(quán)熱力圖。從圖中可以看出,和其他3種主流注意力機(jī)制相比,加入P-CBAM 后,網(wǎng)絡(luò)對(duì)檢測(cè)目標(biāo)區(qū)域的覆蓋度和關(guān)注程度都獲得了提升,證明P-CBAM能夠幫助深度卷積網(wǎng)絡(luò)提取到更加關(guān)鍵的特征信息。
圖11 各種注意力機(jī)制與P-CBAM熱力對(duì)比Fig.11 Thermal contrast of various attentional mechanisms and P-CBAM
此外,為了驗(yàn)證P-CBAM注意力機(jī)制在不同類型目標(biāo)檢測(cè)問題上的普適性,表5給出了加入P-CBAM前后YOLOv5s在VOC數(shù)據(jù)集、SKU-110K數(shù)據(jù)集、Argoverse數(shù)據(jù)集、VisDrone2019 數(shù)據(jù)集上的檢測(cè)效果,實(shí)驗(yàn)結(jié)果格式為mAP@0.5/mAP@0.5:0.95。4 種數(shù)據(jù)集涵蓋了各種目標(biāo)分布類型,除了比較容易檢測(cè)的大目標(biāo)外,還包括了一些目標(biāo)檢測(cè)領(lǐng)域的重難點(diǎn)問題,如小目標(biāo)、模糊目標(biāo)、密集目標(biāo)、形態(tài)多樣目標(biāo)等。
表5 P-CBAM在多個(gè)數(shù)據(jù)集下的檢測(cè)效果Table 5 Detection effects of P-CBAM in multiple data%sets
從表中可以看出,加入P-CBAM 注意力機(jī)制后的YOLOv5s相比原始算法在所有數(shù)據(jù)集上的精度都獲得了一定提升,證明P-CBAM模塊對(duì)于各種目標(biāo)檢測(cè)任務(wù)的普適性。
GhostNet的基本思想是根據(jù)特征圖之間的聯(lián)系,把一般卷積拆分為兩步,圖12給出一般卷積和Ghost卷積的對(duì)比示意圖。
圖12 一般卷積與Ghost卷積對(duì)比圖Fig.12 Contrast diagram of general and Ghost convolution
Ghost 模塊包含一個(gè)少量卷積、一個(gè)總體恒等映射和m×(s?1)個(gè)線性運(yùn)算。首先通過一般卷積生成少量特征圖,然后將第一步得到的特征圖進(jìn)行廉價(jià)線性操作生成Ghost特征圖,最后將兩組特征圖按通道拼接,生成足夠多的特征圖以匹配給定的輸出通道數(shù)。
對(duì)于輸入X∈RW×H×C,一般卷積的輸出Y∈RW′×H′×n可以表示為Y=X?f+b,其中f∈Rk×k×C×n表示卷積核大小為k×k的C×n個(gè)卷積運(yùn)算,b表示偏置項(xiàng)。一般卷積的FLOPs可表示為W′?H′?n?k?k?C。Ghost卷積采用分步策略,計(jì)算如公式(9)、(10)所示:
其中少量卷積結(jié)果Y′∈RW′×H′×m表示對(duì)輸入X經(jīng)過一般卷積f′∈Rk×k×C×m后生成的m個(gè)特征圖(m?n);之后將m個(gè)特征圖逐個(gè)進(jìn)行線性操作,每個(gè)特征圖均生成s個(gè)特征圖,共生成n=m×s個(gè)特征圖。Φi,j表示對(duì)第一步卷積中生成的第i個(gè)特征圖Y′i進(jìn)行第j個(gè)線性操作,Φi,s表示一個(gè)直接的特征恒等映射。為了保證CPU 或GPU 的高效性和實(shí)用性,設(shè)每個(gè)線性操作的卷積核大小均為d×d,則一般卷積和Ghost卷積的速度比可用公式(11)進(jìn)行計(jì)算:
由化簡(jiǎn)結(jié)果可得一般卷積的計(jì)算量大致為Ghost卷積的s倍,同理可計(jì)算出參數(shù)量也近似為s倍。Ghost 卷積是一個(gè)更輕、更快的模塊,本研究以此為基礎(chǔ),使用Ghost 卷積替換了YOLOv5 中的部分一般卷積,替換后的Conv、Bottleneck 和C3 這3 種主要模塊結(jié)構(gòu)如圖13所示。
圖13 Ghost系列模塊Fig.13 Ghost series modules
圖13 中,K表示卷積核大小,act 表示是否有非線性激活函數(shù)層,act=False 表示未含有非線性激活函數(shù),DWConv 為逐通道卷積。輕量化后的模型在保證準(zhǔn)確率降低最少的條件下,大大減少了參數(shù)量和計(jì)算量,提升了網(wǎng)絡(luò)的運(yùn)行速度,表6 為輸入尺寸為640×640 的圖像在全部使用Ghost系列模塊替換后的網(wǎng)絡(luò)與YOLOv5s模型的對(duì)比結(jié)果。
表6 YOLOv5s和YOLO-G的結(jié)果對(duì)比Table 6 Results comparison of YOLOv5s and YOLO-G
由表6可以看出,替換后網(wǎng)絡(luò)計(jì)算量減少了52.7%,參數(shù)量減少了51.9%,模型大小減少了52%,目標(biāo)檢測(cè)推理速度提升了18%。實(shí)驗(yàn)結(jié)果證明了使用Ghost模塊對(duì)網(wǎng)絡(luò)進(jìn)行輕量化的有效性,而參數(shù)量和計(jì)算量的大幅降低能夠有效減小模型訓(xùn)練和預(yù)測(cè)對(duì)硬件的要求,使模型更適配于實(shí)際的工業(yè)應(yīng)用。Ghost結(jié)構(gòu)使得網(wǎng)絡(luò)的復(fù)雜度得以降低,能夠彌補(bǔ)P-CBAM 和WCAL-PAN 引入后所帶來的計(jì)算量和參數(shù)量的上升。
具體實(shí)驗(yàn)環(huán)境如表7所示。
表7 實(shí)驗(yàn)環(huán)境Table 7 Experimental environment
所有YOLO 模型初始學(xué)習(xí)率為0.01,動(dòng)量參數(shù)為0.92,最終學(xué)習(xí)率為0.2,BatchSize為64,并采用epoch為3,動(dòng)量參數(shù)為0.8 的warm-up 方法預(yù)熱學(xué)習(xí)率。在warm-up 階段,采用一維線性插值更新學(xué)習(xí)率,預(yù)熱結(jié)束后采用余弦退火對(duì)學(xué)習(xí)率進(jìn)行更新。
本研究使用PASCAL VOC 2007 和2012 數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),該數(shù)據(jù)集包含4個(gè)大類和20個(gè)小類。訓(xùn)練集選用VOC 2007 和2012 數(shù)據(jù)集中的train+val 部分,共16 551 張圖片;測(cè)試集選用VOC 2007 數(shù)據(jù)集中的test部分,共4 952張圖片。
首先對(duì)數(shù)據(jù)集標(biāo)簽格式進(jìn)行轉(zhuǎn)化,將PASCAL VOC格式轉(zhuǎn)化為YOLO的文本格式,生成id、x、y、w、h,并進(jìn)行歸一化,然后把轉(zhuǎn)換結(jié)果按訓(xùn)練集和驗(yàn)證集的方式進(jìn)行存儲(chǔ)。
其次,對(duì)640×640大小的圖片,采用k-means算法重新對(duì)數(shù)據(jù)集中的目標(biāo)框進(jìn)行聚類,并對(duì)聚類產(chǎn)生的所有anchors使用genetic algorithm算法進(jìn)行2 000輪變異,保留得到最佳召回率最大的結(jié)果,得到的最終anchors 如表8所示。
表8 聚類后的anchors大小Table 8 Anchors size after clustering
本研究使用隨機(jī)增減亮度、對(duì)比度、飽和度、色調(diào),以及隨機(jī)縮放、裁減、翻轉(zhuǎn)、擦除等基本方法和Mosaic方法進(jìn)行數(shù)據(jù)增強(qiáng)。Mosaic 數(shù)據(jù)增強(qiáng)選取4 張經(jīng)過進(jìn)行上述基本方法操作后的圖片進(jìn)行隨機(jī)編排和拼接,一方面變相地增大了BatchSize,降低顯存占用率,另一方面擴(kuò)充了原始數(shù)據(jù)集,防止過擬合的發(fā)生,提高了模型的整體魯棒性,數(shù)據(jù)增強(qiáng)后效果如圖14所示。
圖14 數(shù)據(jù)增強(qiáng)后的效果圖Fig.14 Rendering after enhanced data
本研究使用mAP@0.5、mAP@0.5:0.95、參數(shù)量、計(jì)算量(GFLOPs)、模型大小、FPS作為目標(biāo)檢測(cè)模型的衡量標(biāo)準(zhǔn)。其中,mAP@0.5代表在IOU閾值為0.5時(shí)的平均AP;mAP@0.5:0.95代表在IOU閾值為從0.5到0.95,步長(zhǎng)為0.05時(shí)各個(gè)mAP的平均值。
參數(shù)量和計(jì)算量指標(biāo)分別從時(shí)間和空間上衡量模型的復(fù)雜度,mAP@0.5主要用于體現(xiàn)模型的識(shí)別能力,mAP@0.5:0.95 由于要求的IOU 閾值更高,主要用于體現(xiàn)定位效果以及邊界回歸能力,前5個(gè)評(píng)價(jià)指標(biāo)的值均與檢測(cè)效果呈正相關(guān),F(xiàn)PS 表示每秒檢測(cè)圖像的數(shù)目,值越大檢測(cè)速度越快。
mAP 計(jì)算中的AP 即P-R 曲線下方面積,具體計(jì)算基于公式(12)~(14):
式中,TP代表IOU大于等于設(shè)定閾值的檢測(cè)框數(shù)目,F(xiàn)P代表代表IOU 小于設(shè)定閾值的檢測(cè)框數(shù)目,F(xiàn)N 代表漏檢的目標(biāo)數(shù)目。
為了驗(yàn)證所提算法YOLO-G 的有效性,本研究將其與一些輕量化檢測(cè)模型和主流的單階段、二階段目標(biāo)檢測(cè)模型進(jìn)行了比較,實(shí)驗(yàn)結(jié)果如表9 所示??梢?,YOLO-G相比大部分網(wǎng)絡(luò)不僅復(fù)雜度更小,而且精度上也有著顯著優(yōu)勢(shì),尤其是mAP@0.5:0.95 指標(biāo),幾乎是所有對(duì)比模型中最優(yōu)的;相比于相同Baseline的輕量化的網(wǎng)絡(luò)YOLOv5-mobileNet、YOLOv5-ShuffleNet,雖然模型復(fù)雜度稍大,但是檢測(cè)精度方面有著明顯的優(yōu)勢(shì);改進(jìn)后的網(wǎng)絡(luò)在GPU下的FPS達(dá)到51.3,由于WCAL-PAN模塊、P-CBAM模塊的加入,以及輕量化depth-wise卷積的大量引入,使得YOLO-G 的檢測(cè)速度未達(dá)到最優(yōu),但也可以滿足實(shí)時(shí)檢測(cè)任務(wù)的需求。而網(wǎng)絡(luò)參數(shù)量和計(jì)算量的進(jìn)一步優(yōu)化,使得模型時(shí)間、空間復(fù)雜度大大減少,讓模型訓(xùn)練和檢測(cè)時(shí)對(duì)硬件的要求更低,可以被廣泛應(yīng)用于一些低成本的工業(yè)檢測(cè)問題。在13組對(duì)比實(shí)驗(yàn)中,YOLO-G 在模型復(fù)雜度升序中位列第3,在mAP@0.5 指標(biāo)降序排列中位列第3,與top1 僅僅相差0.9個(gè)百分點(diǎn),在mAP@0.5:0.95指標(biāo)降序排列中位列第2,與top1僅僅相差0.3個(gè)百分點(diǎn)。結(jié)合模型復(fù)雜度和實(shí)際應(yīng)用效果,從總體上看,在高交并比需求的工業(yè)任務(wù)中,YOLO-G在眾多模型中的表現(xiàn)更加出色。
表9 對(duì)比實(shí)驗(yàn)Table 9 Contrast experiments
本研究還使用了3 組場(chǎng)景的圖片對(duì)YOLOv5 和YOLO-G的檢測(cè)效果進(jìn)行定性評(píng)價(jià),所有實(shí)驗(yàn)輸入圖片大小均為640,置信度閾值為0.25,NMS 閾值為0.45,實(shí)驗(yàn)結(jié)果如圖15所示。
圖15 YOLOv5和YOLO-G效果對(duì)比Fig.15 Comparison of YOLOv5 and YOLO-G effects
第1組實(shí)驗(yàn)圖片的先驗(yàn)?zāi)繕?biāo)數(shù)量較少,此時(shí)YOLOv5出現(xiàn)了大量漏檢的情況,而YOLO-G檢測(cè)出了更多正確的目標(biāo),證明YOLO-G 能提取出更豐富的特征;第2 組實(shí)驗(yàn)圖片中的目標(biāo)較密集、遮擋較嚴(yán)重,YOLOv5 漏檢的數(shù)量進(jìn)一步增多,且出現(xiàn)了一定的誤檢框,而YOLO-G的檢測(cè)精度并未下降;第3組圖片中部分目標(biāo)的特征較為模糊,識(shí)別很困難,但YOLO-G 的檢測(cè)效果依然比較出色??傮w來說,YOLO-G對(duì)正確預(yù)測(cè)框的置信度和交并比都普遍高于YOLOv5,證明網(wǎng)絡(luò)提取到了更加豐富的語(yǔ)義信息,表現(xiàn)出了更好的性能。
為了進(jìn)一步驗(yàn)證本研究所提算法的檢測(cè)性能,探究各個(gè)改進(jìn)方法的有效性,在YOLOv5s的基礎(chǔ)上設(shè)計(jì)了8組消融實(shí)驗(yàn),每組實(shí)驗(yàn)使用相同的超參數(shù)以及訓(xùn)練技巧,實(shí)驗(yàn)結(jié)果如表10所示。
表10 消融實(shí)驗(yàn)Table 10 Ablation experiments
其中,WCAL-PAN 代表所提FPN 結(jié)構(gòu),P-CBAM 代表本研究所提注意力機(jī)制,Ghost代表引入Ghost系列模塊,“√”代表引入模塊,組別7中WCAL-PAN下“√”代表不引入跨層加權(quán)連接結(jié)構(gòu)。由于引入Ghost模塊是為了進(jìn)行網(wǎng)絡(luò)輕量化,所以不對(duì)單獨(dú)引入Ghost 模塊后的網(wǎng)絡(luò)計(jì)算mAP。
從表10 中可以看出,Ghost 系列模塊的引入,使網(wǎng)絡(luò)計(jì)算量減少了52.7%,參數(shù)量減少了51.9%,是有效的輕量化手段;加入P-CBAM模塊后mAP@0.5提升0.6個(gè)百分點(diǎn),mAP@0.5:0.95 提升1.8 個(gè)百分點(diǎn),雖然對(duì)網(wǎng)絡(luò)精度提升不多,但其幾乎不增加網(wǎng)絡(luò)的參數(shù)量和計(jì)算量。同時(shí)在引入Ghost 模塊降低模型復(fù)雜度后,雖然mAP@0.5 指標(biāo)下降了0.8 個(gè)百分點(diǎn),但是mAP@0.5:0.95 依然比之前提升了0.5 個(gè)百分點(diǎn),證明P-CBAM 模塊的引入,提高了模型對(duì)目標(biāo)邊界的回歸能力,使預(yù)測(cè)出的目標(biāo)框更加貼合物體的輪廓,對(duì)于一些對(duì)IOU要求較高、需要更準(zhǔn)確定位物體的任務(wù)來說,加入P-CBAM是非常有效的;其次,WCAL-PAN對(duì)網(wǎng)絡(luò)精度的提升是最多的,mAP@0.5提升4.9個(gè)百分點(diǎn),mAP@0.5:0.95提升8個(gè)百分點(diǎn),但網(wǎng)絡(luò)結(jié)構(gòu)比原始YOLOv5s復(fù)雜,對(duì)硬件的要求較高,并且犧牲了一些實(shí)時(shí)性,引入Ghost模塊后,在mAP@0.5提升2.0個(gè)百分點(diǎn),mAP@0.5:0.95提升4.0個(gè)百分點(diǎn)的情況下,不僅使網(wǎng)絡(luò)參數(shù)量有所降低,并且使計(jì)算量減少為原來的50.3%;無論是P-CBAM或者WCAL-PAN 都會(huì)增加網(wǎng)絡(luò)復(fù)雜度,尤其是使用WCALPAN后,網(wǎng)絡(luò)的參數(shù)量增加了44.9%,而引入Ghost可以有效降低網(wǎng)絡(luò)復(fù)雜度,大大地減少計(jì)算量,達(dá)到速度和精度兩方的平衡,最終改進(jìn)后的模型相比YOLOv5s,參數(shù)量減少了4.7%,計(jì)算量減少了47.9%,而mAP@0.5提高了3.1個(gè)百分點(diǎn),mAP@0.5:0.95提高了5.6個(gè)百分點(diǎn),模型對(duì)目標(biāo)框的擬合能力進(jìn)一步加強(qiáng),且網(wǎng)絡(luò)運(yùn)行時(shí)對(duì)硬件要求更小,可以被廣泛應(yīng)用于一些對(duì)目標(biāo)框IOU要求較高,需要定位得更加準(zhǔn)確的工業(yè)任務(wù)。
另外,針對(duì)比較難分辨的小目標(biāo),設(shè)計(jì)了4 組消融實(shí)驗(yàn),結(jié)果如表11 所示,表中實(shí)驗(yàn)結(jié)果格式為mAP@0.5/mAP@0.5:0.95。從表中可以看到,WCAL-PAN 對(duì)小目標(biāo)提升效果較大,mAP@0.5 提高了3.3 個(gè)百分點(diǎn),mAP@0.5:0.95 提高了5.1 個(gè)百分點(diǎn),而P-CBAM 的作用更多的體現(xiàn)在邊框回歸精度的上,mAP@0.5:0.95 提升了1.3個(gè)百分點(diǎn)。最終本文所提模型YOLO-G在小模型檢測(cè)上,mAP@0.5 提高了2.6 個(gè)百分點(diǎn),mAP@0.5:0.95 提高了2.7 個(gè)百分點(diǎn),使模型對(duì)小目標(biāo)檢測(cè)效果也得到了有效提升。
表11 小目標(biāo)消融實(shí)驗(yàn)Table 11 Small target ablation experiments %
本文研究基于YOLOv5 提出了一種改進(jìn)的目標(biāo)檢測(cè)算法YOLO-G。采用WCAL-PAN、P-CBAM 結(jié)構(gòu)對(duì)網(wǎng)絡(luò)的精度和目標(biāo)框邊界的回歸能力進(jìn)行提升;使用Ghost模塊對(duì)網(wǎng)絡(luò)進(jìn)行輕量化處理,填補(bǔ)WCAL-PAN和P-CBAM 模塊引入后對(duì)網(wǎng)絡(luò)實(shí)時(shí)性能造成的損失。YOLO-G和YOLOv5s相比,參數(shù)量減少了7.9%,計(jì)算量減少了49%,而mAP@0.5 提高了3.1 個(gè)百分點(diǎn),mAP@0.5:0.95提高了5.6個(gè)百分點(diǎn)。但為了減少模型復(fù)雜度,實(shí)現(xiàn)移動(dòng)端目標(biāo)檢測(cè),接下來將對(duì)網(wǎng)絡(luò)進(jìn)行剪枝、蒸餾等處理,進(jìn)一步對(duì)模型進(jìn)行輕量化;另外,Head 階段中上采樣部分仍可繼續(xù)改進(jìn),如果使用一些復(fù)雜度較低的圖像超分算法,可以更好地檢測(cè)出小目標(biāo)。