石博雅,董學(xué)峰
(天津工業(yè)大學(xué) 電子與信息工程學(xué)院,天津 300387)
在人工智能領(lǐng)域中,計(jì)算機(jī)視覺技術(shù)已廣泛地應(yīng)用于智能安防[1]、自動(dòng)駕駛[2]、遙感監(jiān)測(cè)[3]等領(lǐng)域.其中卷積神經(jīng)網(wǎng)絡(luò)以其優(yōu)越的性能,在目標(biāo)檢測(cè)領(lǐng)域中有著出色的表現(xiàn).隨著目標(biāo)檢測(cè)算法性能逐漸提升和邊緣計(jì)算不斷發(fā)展,一方面網(wǎng)絡(luò)參數(shù)和計(jì)算量在不斷地增長(zhǎng),另一方面邊緣計(jì)算中大部分的目標(biāo)檢測(cè)任務(wù)需要在資源有限的嵌入式設(shè)備上進(jìn)行部署,二者的矛盾愈發(fā)突出,這在一定程度上阻礙了深度學(xué)習(xí)技術(shù)在實(shí)際場(chǎng)景的應(yīng)用.因此針對(duì)存儲(chǔ)容量小、算力有限的嵌入式設(shè)備,需要對(duì)網(wǎng)絡(luò)進(jìn)行輕量化改進(jìn).
基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法有兩類:2階段(two stage)和1階段檢測(cè)算法(one stage).2階段檢測(cè)算法的代表有:R-CNN[4]、Fast R-CNN[5]、Faster R-CNN[6]等,它的特征是先由算法產(chǎn)生一系列樣本候選框然后利用卷積對(duì)樣本進(jìn)行分類,最后通過分階段操作,使其檢測(cè)精度較高,但檢測(cè)速度較慢,達(dá)不到實(shí)時(shí)檢測(cè).1階段檢測(cè)算法的代表有:SSD[7]、YOLO[8]等,它是通過回歸直接輸出目標(biāo)的位置及類別,不需要進(jìn)行候選框操作,提升了檢測(cè)速度.針對(duì)基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法在嵌入式設(shè)備難以部署的問題,研究人員在算法層面進(jìn)行了改進(jìn).田港等[9]提出一種基于YOLOv4的改進(jìn)網(wǎng)絡(luò)模型,采用雙尺度預(yù)測(cè)模型,并進(jìn)行了通道裁剪,針對(duì)無人機(jī)目標(biāo)檢測(cè),模型尺寸相比YOLOv4減小了60%,速度達(dá)到58FPS,mAP下降了1.52%.Liu等[10]提出一種基于YOLOv4的改進(jìn)網(wǎng)絡(luò)模型,采用反向深度可分離卷積(RDSC),并應(yīng)用于原網(wǎng)絡(luò)的主干網(wǎng)絡(luò)以及特征增強(qiáng)網(wǎng)絡(luò)中,針對(duì)無人水面航行器(USA)的目標(biāo)檢測(cè),模型權(quán)重大小相比YOLOv4減小了40%.Fang等[11]在YOLOv4基礎(chǔ)上,采用MobileNetv3作為主干網(wǎng)絡(luò),并使用深度可分離卷積以及通道注意力機(jī)制(ECA)優(yōu)化SPP以及PANet網(wǎng)絡(luò),改進(jìn)后參數(shù)量為原模型的一半,針對(duì)變電站人員不規(guī)則行為的檢測(cè)速率達(dá)到38.06FPS.Ying等[12]基于YOLOv4進(jìn)行改進(jìn),采用MobileNetv3-Small作為主干網(wǎng)絡(luò),引入深度可分離卷積以及倒置的殘差結(jié)構(gòu),并引入注意力機(jī)制,針對(duì)田間雜草檢測(cè),模型尺寸相較于YOLOv4減小了37.9%,檢測(cè)精度下降了0.49%.以上算法雖對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了改進(jìn),但網(wǎng)絡(luò)的參數(shù)量對(duì)于需低功耗且資源有限的嵌入式設(shè)備還有待改進(jìn).
本文的目的是針對(duì)嵌入式設(shè)備,設(shè)計(jì)一個(gè)參數(shù)量小的輕量化網(wǎng)絡(luò)結(jié)構(gòu)來完成推斷工作,所做的工作主要分為以下幾點(diǎn):
1)在YOLOv4基礎(chǔ)上,采用GhostNet[13]代替CSPDarknet53[14]作為主干特征提取網(wǎng)絡(luò),利用標(biāo)準(zhǔn)卷積和線性變換相結(jié)合降低模型參數(shù)和計(jì)算量.
2)在YOLOv4-GhostNet的基礎(chǔ)上引入CBAM[15]注意力機(jī)制,在不增加計(jì)算開銷的同時(shí)提升檢測(cè)精度.
3)對(duì)YOLOv4-GhostNet-CBAM網(wǎng)絡(luò)進(jìn)行8bit量化操作得到Y(jié)OLOv4-Light模型,在犧牲少量檢測(cè)精度的前提下,大幅降低網(wǎng)絡(luò)模型尺寸,提升檢測(cè)速率,實(shí)現(xiàn)實(shí)時(shí)檢測(cè).
4)在PC端和NVIDIA Jetson Xavier NX上,分別對(duì)YOLOv4、YOLOv4-GhostNet-CBAM和YOLOv4-Light模型進(jìn)行無人機(jī)數(shù)據(jù)集多目標(biāo)檢測(cè)實(shí)驗(yàn),驗(yàn)證模型性能.
YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)分為3部分:主干特征提取網(wǎng)絡(luò)、頸部網(wǎng)絡(luò)和目標(biāo)檢測(cè)器,如圖1所示.

圖1 YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 YOLOv4 network structure diagram
YOLOv4在YOLOv3算法基礎(chǔ)上進(jìn)行了多方面的優(yōu)化.首先將主干特征提取網(wǎng)絡(luò)Darknet53更換為CSPDarknet53.CSPDarknet53中包含著5個(gè)CSP模塊,該模塊將基礎(chǔ)層的特征映射分為兩部分,然后通過跨階段層次結(jié)構(gòu)進(jìn)行合并,這樣在大大減小參數(shù)量的同時(shí)可以保證檢測(cè)精度.其次在頸部網(wǎng)絡(luò)采用空間金字塔池化(SPP)和路徑聚合網(wǎng)絡(luò)(PANet)結(jié)構(gòu).在加強(qiáng)特征提取網(wǎng)絡(luò)中引入SPP[16],使用不同尺寸的最大池化方式,再將不同尺度的特征圖進(jìn)行Concat操作,大大增加了特征信息的感受野,獲得更高的語(yǔ)義信息;采用PANet方式進(jìn)行自底向上路徑強(qiáng)化,利用精確的低層定位信號(hào)加強(qiáng)整個(gè)特征層次,從而縮短了底層與頂層特征間的信息路徑.然后與FPN層相結(jié)合,實(shí)現(xiàn)高語(yǔ)義信息自頂向下的傳遞,再結(jié)合PAN結(jié)構(gòu)實(shí)現(xiàn)自底向上傳遞強(qiáng)定位特征,從而實(shí)現(xiàn)了不同特征層的特征融合.另外在輸入端引入了Mosaic數(shù)據(jù)增強(qiáng)方式,豐富了檢測(cè)數(shù)據(jù)集,尤其是縮放增加了很多小目標(biāo),增強(qiáng)了網(wǎng)絡(luò)的魯棒性.同時(shí)采用Mish激活函數(shù),提高了YOLOv4網(wǎng)絡(luò)模型的泛化能力.對(duì)YOLOv4算法進(jìn)行上述幾點(diǎn)改進(jìn)后,檢測(cè)速度和精度均得到了提高.
目前廣泛使用的輕量化網(wǎng)絡(luò)主要有MobileNet和GhostNet.MobileNet中最具代表性的是MobileNetv3,其融合了MobileNetv1和MobileNetv2的深度可分離卷積以及倒殘差結(jié)構(gòu),并引用了SE(Squeeze and Excitation)[17]輕量級(jí)注意力機(jī)制,在損失有限精度的前提下,檢測(cè)速度可明顯提升.而在ImageNet 分類任務(wù)中,GhostNet在保持與MobileNetv3相似計(jì)算量的前提下,檢測(cè)精度有1%左右的提升.因此本文將YOLOv4的主干提取網(wǎng)絡(luò)改為GhostNet網(wǎng)絡(luò).針對(duì)深度神經(jīng)網(wǎng)絡(luò)中的大量卷積運(yùn)算,GhostNet網(wǎng)絡(luò)中的Ghost模塊通過線性變換與標(biāo)準(zhǔn)卷積相結(jié)合,從而減少模型參數(shù)和計(jì)算量.
Ghost模塊將標(biāo)準(zhǔn)卷積層分為兩部分,其中一部分用于做標(biāo)準(zhǔn)卷積,但是嚴(yán)格控制其數(shù)量,然后另一部分將第一部分生成的固有特征圖進(jìn)行一系列的簡(jiǎn)單線性運(yùn)算用于生成最終的輸出特征圖,最后將兩部分進(jìn)行Concat操作得到完整的輸出層.這樣在不改變輸出特征圖大小的情況下,通過更小的計(jì)算成本即可獲得完整的輸出層特征圖.標(biāo)準(zhǔn)卷積與Ghost模塊如圖2所示.

圖2 標(biāo)準(zhǔn)卷積與Ghost模塊Fig.2 Standard convolution and Ghost module
對(duì)于標(biāo)準(zhǔn)卷積操作,給定輸入數(shù)據(jù)X∈Rh×w×c,其中h是輸入特征圖的高度,w是輸入特征圖的寬度,c是輸入通道數(shù),則生成n個(gè)特征圖的任意卷積層的運(yùn)算如公式(1)所示:
Y=X×f+b
(1)
其中b為偏差項(xiàng),f∈Rc×k×k×n是該特征層的卷積核,Y∈Rh′×w′×n是有n個(gè)輸出通道的輸出特征圖.在此卷積過程中,其計(jì)算量FLOPS是巨大的,它的運(yùn)算如公式(2)所示:
FLOPS=c×k×k×n×h′×w′
(2)
其中h′、w′分別為輸出特征圖的高度和寬度,k為卷積核f的尺寸.
而Ghost模塊是對(duì)其中一部分特征圖進(jìn)行卷積操作,也就是對(duì)m個(gè)原始輸出特征圖Y′∈Rh′×w′×m使用一次標(biāo)準(zhǔn)卷積完成,其中m≤n,運(yùn)算如公式(3)所示:
Y′=X*f′
(3)
其中f′∈Rc×k×k×m是該特征層使用的卷積核,不包含偏差項(xiàng).為了進(jìn)一步獲取所需的n個(gè)特征圖,對(duì)得到的m維的特征圖進(jìn)行一系列的簡(jiǎn)單線性變化,以生成s個(gè)相似特征圖,運(yùn)算如公式(4)所示:
(4)

(5)
其中d為每個(gè)線性操作的平均內(nèi)核大小.從公式(5)可知,Ghost模塊將計(jì)算分為兩部分,一部分是普通卷積運(yùn)算,另一部分是線性變換運(yùn)算,結(jié)合公式(2)得出模型的壓縮比約為s,大大減小了參數(shù)量.
為構(gòu)建GhostNet,設(shè)計(jì)了Ghost Bottleneck模塊,該模塊類似于ResNet中的基本殘差塊,由兩個(gè)Ghost模塊堆疊而成,如圖3所示.其中第1個(gè)Ghost模塊是用來增加通道數(shù)的擴(kuò)展層;第2個(gè)Ghost模塊用于減少通道數(shù),使其與輸入端的通道數(shù)量相匹配.

圖3 Ghost Bottleneck模塊Fig.3 Ghost Bottleneck module
當(dāng)輸入尺寸為416×416時(shí),GhostNet網(wǎng)絡(luò)架構(gòu)如表1所示.

表1 GhostNet網(wǎng)絡(luò)架構(gòu)Table 1 GhostNet network architecture
CBAM(Convolutional Block Attention Module)注意力機(jī)制是在SE注意力機(jī)制的基礎(chǔ)上進(jìn)行了改進(jìn).SE注意力機(jī)制僅關(guān)注了在卷積池化過程中特征圖的不同通道的重要程度不同,未考慮同一通道不同位置的重要程度也是不同的問題.CBAM注意力機(jī)制既聚焦于通道維度,又聚焦于空間維度.在通道注意力機(jī)制模塊相比SE注意力機(jī)制增加了一個(gè)并行的global maxpooling操作,使得提取的高層次語(yǔ)義信息更加豐富.然后再通過空間注意力機(jī)制模塊的最大池化與平均池化的操作,使其通過學(xué)習(xí)的方式更加關(guān)注目標(biāo)區(qū)域,同時(shí)抑制無用信息.
CBAM注意力機(jī)制屬于輕量級(jí)的注意力機(jī)制模塊,帶來的計(jì)算開銷可以忽略不計(jì).CBAM的模塊組成如圖4所示.將CBAM注意力機(jī)制加入到Y(jié)OLOv4-GhostNet中,構(gòu)成改進(jìn)后的YOLOv4-GhostNet-CBAM網(wǎng)絡(luò),結(jié)構(gòu)如圖5所示.

圖4 CBAM注意力機(jī)制Fig.4 CBAM attention mechanism

圖5 YOLOv4-GhostNet-CBAM網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.5 YOLOv4-GhostNet-CBAM network structure
量化是指用于執(zhí)行計(jì)算時(shí)以低于浮點(diǎn)精度的位寬存儲(chǔ)張量的技術(shù)[18].通過對(duì)模型的權(quán)重?cái)?shù)值進(jìn)行量化,減小模型尺寸,同時(shí)提高系統(tǒng)吞吐量,降低系統(tǒng)延時(shí),使其能夠更好的應(yīng)用到移動(dòng)端環(huán)境.
本文選擇的是在pytorch框架下進(jìn)行量化,該框架提供了3種量化方法:
1)訓(xùn)練后動(dòng)態(tài)量化:其中權(quán)重被提前量化,但是激活值在推理過程中被動(dòng)態(tài)量化,為最簡(jiǎn)單的一種量化方法.
2)訓(xùn)練后靜態(tài)量化:其中權(quán)重被提前量化,并在校準(zhǔn)過程中計(jì)算激活張量的比例因子和偏差,整個(gè)過程不存在兩個(gè)參數(shù)的二次計(jì)算.
3)感知量化訓(xùn)練:在訓(xùn)練過程中進(jìn)行量化,通過torch.quantization.FakeQuantize函數(shù)模擬量化過程,量化后的權(quán)重仍為float32,但大小和INT8權(quán)重大小相同.此方法的優(yōu)點(diǎn)是精度比訓(xùn)練后量化更高.
本文采用感知量化方法,將模型由float32量化為INT8的形式.量化過程中使用縮放因子和偏移量?jī)蓚€(gè)因子來保證區(qū)間內(nèi)的變量都能精確地映射到要量化的整形數(shù)值區(qū)間.量化過程中的縮放因子如公式(6)所示:
(6)
其中X代表原始浮點(diǎn)數(shù),Q代表量化后的整形數(shù),Scale表示量化前后的網(wǎng)絡(luò)參數(shù)的對(duì)應(yīng)關(guān)系,由神經(jīng)網(wǎng)絡(luò)訓(xùn)練出來的參數(shù)Xmax,Xmin和本文要量化的整形數(shù)據(jù)格式Qmax,Qmin計(jì)算得出.
量化過程中的偏移量如公式(7)所示:
Zero_Point=round(Qmax-Qmin)
(7)
最終的量化參數(shù)如公式(8)所示:
(8)
由以上可知Scale和Zero_Point對(duì)應(yīng)著一個(gè)量化過程,且由模型自動(dòng)配準(zhǔn)精度損失小的Zero_Point和Scale進(jìn)行量化.式(7)與式(8)中的兩次取整操作會(huì)對(duì)模型的檢測(cè)精度造成一定的損失,因此需要仔細(xì)比對(duì)選擇一個(gè)精度大的量化參數(shù)Q.通過以上的量化操作,即得到本文所需要的輕量化網(wǎng)絡(luò)模型.
損失函數(shù)用來衡量網(wǎng)絡(luò)模型的性能,當(dāng)損失函數(shù)的值越接近0時(shí),表明該網(wǎng)絡(luò)模型的性能魯棒性越好.其中DIOU[19]考慮直接最小化預(yù)測(cè)框與實(shí)際框的歸一化距離,由此出現(xiàn)了DIOU Loss,計(jì)算如公式(9)所示:
(9)
其中b,bgt分別表示預(yù)測(cè)框和真實(shí)框的中心點(diǎn)位置,ρ表示兩點(diǎn)的歐氏距離.兩框重疊面積、中心點(diǎn)距離、長(zhǎng)寬是目標(biāo)回歸損失中應(yīng)當(dāng)考慮的3個(gè)重要因素,而DIOU Loss只考慮了前兩項(xiàng),并未考慮長(zhǎng)寬比,精度受限.針對(duì)此問題改進(jìn)得到CIOU Loss,計(jì)算如公式(10)所示:
(10)
其中α是權(quán)重,ν是用來衡量長(zhǎng)寬比.CIOU Loss的運(yùn)算公式中增加了一個(gè)影響因子αν運(yùn)算,考慮了長(zhǎng)寬比,使得CIOU Loss收斂速度與精度更高,本文采用CIOU Loss作為損失函數(shù).
本文實(shí)驗(yàn)操作系統(tǒng)為Ubuntu 18.04.5,使用Pytorch(1.7.1)框架進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)的改進(jìn)以及量化,CPU為Intel(R)Core(TM)i5-11400H,GPU為NVIDIA RTX3050,CUDA 版本為11.0,進(jìn)行推斷和測(cè)試操作的嵌入式設(shè)備型號(hào)為NVIDIA Jetson Xavier NX.
本文設(shè)計(jì)的目的是在資源有限的嵌入式設(shè)備上實(shí)現(xiàn)無人機(jī)數(shù)據(jù)集的多目標(biāo)檢測(cè).這里選用VisDrone[20]無人機(jī)數(shù)據(jù)集,它區(qū)別于傳統(tǒng)目標(biāo)檢測(cè)數(shù)據(jù)集的特點(diǎn)是單張圖片中被測(cè)目標(biāo)尺寸較小且數(shù)量較多,可達(dá)幾十個(gè),因此檢測(cè)難度增大.VisDrone無人機(jī)數(shù)據(jù)集共分為10個(gè)類,其中訓(xùn)練和驗(yàn)證的圖片共6317張,測(cè)試的圖片共702張.
本文在實(shí)驗(yàn)中將訓(xùn)練與測(cè)試的輸入圖片尺寸統(tǒng)一設(shè)置為1024×1024的JPG格式,Batch size設(shè)置為32,Epoch設(shè)置為300,學(xué)習(xí)率設(shè)置為0.001,并采用余弦退火策略自動(dòng)調(diào)整學(xué)習(xí)率.在輸入端使用Moscia數(shù)據(jù)增強(qiáng)方式,增加訓(xùn)練的數(shù)據(jù)量.同時(shí)采用標(biāo)簽平滑方法優(yōu)化損失函數(shù),提高圖像分類的準(zhǔn)確性,將平滑標(biāo)簽smooth_label設(shè)置為0.01.
在目標(biāo)檢測(cè)領(lǐng)域中,評(píng)價(jià)一個(gè)模型檢測(cè)精度的性能指標(biāo)有平均精度(Average Precision,AP)和均值平均精度(ean Average Precision,mAP)兩種,二者分別用來衡量單目標(biāo)和多目標(biāo)的檢測(cè)性能.本文用于實(shí)現(xiàn)無人機(jī)數(shù)據(jù)集的多目標(biāo)檢測(cè),故選擇mAP作為模型檢測(cè)精度的評(píng)價(jià)指標(biāo),并且在IOU為0.5的條件下統(tǒng)計(jì)各目標(biāo)的均值平均精度(mAP50).
由于本文是在資源有限的嵌入式設(shè)備上來部署模型,進(jìn)行推斷任務(wù),因此需要在檢測(cè)精度不降低或有限降低的前提下,最大限度的縮小模型尺寸(SIZE),以減少計(jì)算量,提高檢測(cè)速率.故本文選擇模型尺寸和幀率(FPS)作為評(píng)價(jià)指標(biāo).
消融實(shí)驗(yàn)中將MobileNetv3和GhostNet分別作為YOLOv4的主干特征提取網(wǎng)絡(luò)的模型進(jìn)行性能對(duì)比,驗(yàn)證算法改進(jìn)的合理性.在PC端和硬件平臺(tái)Jetson Xavier NX上進(jìn)行測(cè)試.測(cè)試尺寸統(tǒng)一設(shè)置為1024×1024,結(jié)果如表2所示.從表中可以看出將主干特征提取網(wǎng)絡(luò)替換為GhostNet的模型尺寸相較于MobileNetv3降低了7M,檢測(cè)精度提升了1%,檢測(cè)速度也有所提升,從而可以看出GhostNet作為主干特征提取網(wǎng)絡(luò)各方面性能均優(yōu)于主干特征提取網(wǎng)絡(luò)為MobileNetv3的模型.

表2 兩種模型在兩種平臺(tái)的性能對(duì)比Table 2 Performance comparison of two models on two platforms
針對(duì)在YOLOv4主干特征提取網(wǎng)絡(luò)改為GhostNet的基礎(chǔ)上添加注意力機(jī)制進(jìn)行消融實(shí)驗(yàn)驗(yàn)證.分別將SE、CBAM以及SE+CBAM注意力機(jī)制加入到改進(jìn)的網(wǎng)絡(luò)模型中,然后在PC端和硬件平臺(tái)Jetson Xavier NX進(jìn)行測(cè)試,測(cè)試尺寸統(tǒng)一設(shè)置為1024×1024,性能評(píng)價(jià)結(jié)果如表3所示.其中YOLOv4+G+S、YOLOv4+G+C和YOLOv4+G+SE+SC分別代表在GhostNet作為YOLOv4主干特征提取網(wǎng)絡(luò)上加入SE、CBAM和SE+CBAM注意力機(jī)制.

表3 SE、CBAM、SE+CBAM注意力模塊嵌入改進(jìn)模型在兩種平臺(tái)的性能對(duì)比Table 3 Performance comparison of SE,CBAM,SE+CBAM attention module embedding improved model on two platforms
從表3可以看出將SE、CBAM、SE+CBAM3種注意力機(jī)制模塊分別嵌入YOLOv4-GhostNet后,在兩種測(cè)試平臺(tái)下CBAM注意力機(jī)制模塊相比其他兩模塊在近乎相同速度的情況下,性能表現(xiàn)是最優(yōu)的,mAP值達(dá)到了49.9%.通過添加輕量級(jí)的注意力機(jī)制模塊,令算法在參數(shù)量減小的同時(shí)保證檢測(cè)精度,進(jìn)一步提升了模型的性能.
為了進(jìn)一步驗(yàn)證模型性能,分別將YOLOv4、YOLOv4-GhostNet-CBAM算法在PC端上進(jìn)行測(cè)試,同時(shí)將YOLOv4-GhostNet-CBAM和YOLOv4-Light算法在硬件平臺(tái)Jetson Xavier NX上進(jìn)行測(cè)試.本文在訓(xùn)練階段將圖片尺寸設(shè)置為1024×1024,然后分別在608×608、800×800、1024×1024共3個(gè)尺寸上進(jìn)行測(cè)試,結(jié)果如表4所示.從表4看出,在模型尺寸上,YOLOv4-GhostNet-CBAM模型尺寸是160M,比YOLOv4降低了34.43%;YOLO-Light僅為40.2M,相比YOLOv4模型尺寸降低了83.5%.YOLOv4、YOLOv4-GhostNet-CBAM和YOLOv4-Light的最高檢測(cè)精度分別為50.3%、49.9%和47.3%,YOLOv4-Light相比于YOLOv4檢測(cè)精度僅降低了3%,但YOLOv4-Light的檢測(cè)速率最高可達(dá)到78.6FPS,為YOLOv4的最高檢測(cè)速率3.6倍.因此,本文設(shè)計(jì)的輕量化網(wǎng)絡(luò)雖檢測(cè)精度略有下降,但整體性能可以滿足實(shí)際需求.

表4 本文算法優(yōu)化過程中各個(gè)階段模型在兩種平臺(tái)的性能對(duì)比Table 4 Performance comparison of the models in each stage of the algorithm optimization process in this paper on the two platforms
YOLOv4、YOLOv4-GhostNet-CBAM以及量化后的YOLOv4-GhostNet-CBAM在NVIDIA Jetson Xavier NX設(shè)備上使用VisDrone數(shù)據(jù)集中圖像的測(cè)試效果分別如圖6~圖8所示.本文選擇在光線充足與光線暗淡兩種場(chǎng)景下進(jìn)行測(cè)試,通過檢測(cè)結(jié)果對(duì)比來看,無論是在光線充足還是暗淡的場(chǎng)景下,YOLOv4和YOLOv4-GhostNet-CBAM檢測(cè)精度相差不大,而量化后YOLOv4-Light的檢測(cè)效果略差,但在精度損失有限的情況下,檢測(cè)速率有了極大的提高.

圖6 YOLOv4在 NX端兩種場(chǎng)景下的測(cè)試效果圖Fig.6 Test effect diagram of YOLOv4 under two scenarios on NX side

圖7 YOLOv4-GhostNet-CBAM在NX端兩種場(chǎng)景下的測(cè)試效果圖Fig.7 Test effect diagram of YOLOv4-GhostNet-CBAM under two scenarios on NX side

圖8 YOLOv4-Light在NX端兩種場(chǎng)景下的測(cè)試效果圖Fig.8 Test effect diagram of YOLOv4-Light under two scenarios on NX side
本文針對(duì)當(dāng)前目標(biāo)檢測(cè)算法參數(shù)量過大,難以部署在資源及算力有限的嵌入式設(shè)備的問題,設(shè)計(jì)了一款輕量化網(wǎng)絡(luò)模型.基于YOLOv4目標(biāo)檢測(cè)算法,采用GhostNet替換YOLOv4的主干提取網(wǎng)絡(luò)CSPDarket53,解決了大量卷積帶來的計(jì)算開銷大的問題;然后通過引入CBAM注意力機(jī)制,使其更加關(guān)注目標(biāo)區(qū)域,強(qiáng)調(diào)重要特征,增強(qiáng)網(wǎng)絡(luò)模型的魯棒性;最后對(duì)網(wǎng)絡(luò)進(jìn)行量化處理.實(shí)驗(yàn)結(jié)果表明該輕量化網(wǎng)絡(luò)在保證較高精度的同時(shí)模型尺寸有了大幅度減小,檢測(cè)速率有了較大提升,可以在低功耗場(chǎng)景下完成無人機(jī)目標(biāo)實(shí)時(shí)檢測(cè)的任務(wù),在嵌入式設(shè)備上所表現(xiàn)的整體性能達(dá)到預(yù)期.下一步將對(duì)目標(biāo)出現(xiàn)嚴(yán)重遮擋的問題進(jìn)行研究,并引入剪枝算法與量化算法相結(jié)合,更大尺度地進(jìn)行模型壓縮,進(jìn)一步提升目標(biāo)檢測(cè)算法在嵌入式設(shè)備上的推斷速度,增加網(wǎng)絡(luò)模型的實(shí)用性.