程千頃,王紅軍
(國防科技大學電子對抗學院,合肥,230037)
無人機類目標有飛行高度低、慢速以及小型化的特點[1],這使得傳統(tǒng)的雷達、無線電方法對其檢測難度巨大,性價比不高[2-3],而基于聲音的檢測手段存在受噪聲干擾大的缺點[4]。因此一種新的無人機目標檢測方法的研究需十分迫切。
隨著深度學習技術的成熟以及圖像運算設備的更新?lián)Q代,基于圖像的目標檢測方法逐漸成為目標檢測領域的主流熱點[5]。其中具有代表性的算法有基于二階段檢測機制的Faster R-CNN和基于一階段檢測機制的SSD(single shot multibox detector,SSD)以及YOLO(you only look once,YOLO)系列等算法。YOLOv4[6]算法是開創(chuàng)性地使用了CSPDarkNet-53網(wǎng)絡作為主干網(wǎng)絡提取圖像特征,PANet(path aggregation network,PANet)作為特征融合結構以及使用SPP(spatial pyramid pooling,SPP)結構加強特征提取[7],使得一階段檢測算法在精度和速度上趕超了大部分二階段算法。
雖然目標檢測算法憑借良好的性能深受廣大研究者喜愛,但較大的模型體量和計算開銷使得快速檢測成為一個難題。文獻[8]針對航拍目標檢測問題,通過對YOLOv4的主干網(wǎng)絡進行輕量化改造,精簡模型結構,提升了0.008 s的檢測速度以及減少了13 M的參數(shù)量,但算法對模型改造不徹底,提升效果并不明顯。文獻[9]中使用基于遷移學習的YOLOv3算法在自建無人機數(shù)據(jù)集上實現(xiàn)了精準檢測,平均準確率達到了88.9%,但未對YOLOv3算法進行過多改進,準確率仍有提升空間,實時性也沒有體現(xiàn)。文獻[10]使用卷積神經(jīng)網(wǎng)絡對無人機進行檢測,在自建數(shù)據(jù)集上達到了93%的識別準確率,但實驗使用早期的支持向量機和K最近鄰方法,難以體現(xiàn)算法的先進性。文獻[11]針對檢測模型內(nèi)存占用大、檢測實時性差的問題,提出了一種改進雙尺度的YOLOv4算法,通過裁剪通道和稀疏訓練的方法,減少了60%的內(nèi)存占用,提升了35%的FPS,達到了58幀/s,但mAP精度有所下降。
針對算法參數(shù)量過大以及小目標檢測精度低的問題,本文提出了一種結合輕量級網(wǎng)絡MobileNet V3和改進多尺度結構PANet的無人機目標檢測算法MM-YOLOv4(mobilenetV3-mutlscale-YOLOv4,MM-YOLOv4)。
MM-YOLOv4是在YOLOv4基礎上進行改進的算法。算法模型的圖像輸入尺寸為416×416×3,輸出為3種尺度大小的預測結果,其網(wǎng)絡架構主要由主干網(wǎng)絡MBNNet16和特征融合網(wǎng)絡Mutlscale-PANet以及預測模塊Yolohead 3部分組成。見圖1。
圖1 MM-YOLOv4網(wǎng)絡模型架構圖
MBNNet16由CBH(conv+batchnorm+h-wish,CBH)模塊和MBN(moblie bottleneck,MBN)模塊堆疊構成,共計16層。其作用是輸出不同尺度的卷積特征圖,以適應不同大小目標的檢測。在圖1中MBNNet16以輸出特征圖的節(jié)點為分割點,將MBN模塊進行疊加表示,例如MBN×3,表示為3個MBN模塊疊加。Mutlscale-PANet主要由CBL(conv +batchnorm+leakyrelu,CBL)模塊以及SPP模塊搭建而成。其作用是對輸入的特征圖進行融合疊加,豐富特征圖信息。Yolohead由CBL模塊和卷積層組成,其作用是檢測目標的位置和類別并輸出。
輕量級網(wǎng)絡以其精簡的網(wǎng)絡結構和快速提取圖像特征的優(yōu)點被廣泛應用。
MobileNetV3網(wǎng)絡是Andrew Howard等學者提出的第3個版本的輕量級網(wǎng)絡[12]。它結合了V1版本的深度可分離卷積和V2版本的線性瓶頸逆殘差結構,并引入h-swish激活函數(shù)以節(jié)省計算開銷,因此算法使用MobileNetV3作為YOLOv4輕量化改進的主干網(wǎng)絡[13],來減少模型復雜度和提升檢測速度。
主干網(wǎng)絡的替換主要是使用剪枝后的MobileNetV3網(wǎng)絡作為模型的起始部分,對輸入圖像進行卷積運算,并輸出4種尺度特征圖,其大小為104×104、52×52、26×26以及13×13,兼顧了大、中、小3種尺度目標的全局和局部特征,可以為后續(xù)的分類和定位預測提供了充足的信息。MobileNetV3網(wǎng)絡在充當主干時剪除了最后的Classifier(分類層),由輸出第4尺度特征圖的MBN層作為主干結構的最后一層,MBNNet16具體結構見表1。operator表示本層所用模塊及卷積核大小;exp size 表示在MBN模塊中增加的通道數(shù);out size表示輸出的通道數(shù);SE表示是否在深度可分離卷積塊中增加SE(squeeze- and-excite,SE)結構;s表示步長。
表1 MBNNet16網(wǎng)絡結構
PANet網(wǎng)絡是用于實例分割的路徑聚合網(wǎng)絡[6]。部分結構示意圖見圖2。
圖2 PANet網(wǎng)絡部分結構圖
YOLOv4算法的特征融合網(wǎng)絡應用了PANet網(wǎng)絡的部分結構,在進行特征融合時使用了3個尺度的特征圖,這種方式增強了算法對圖像特征的提取和整合能力,但在一定程度上損失了部分小目標的特征信息。本文為了加強對小尺度目標的定位和圖像特征提取能力,通過改進PANet網(wǎng)絡作為頸部特征融合結構的功能,增加一個特征輸出分支,來豐富淺層網(wǎng)絡提取的目標特征信息。改進后的具體結構如圖1中Mutlscale-PANet模塊所示。
錨框是目標檢測算法用來遍歷圖像中感興趣區(qū)域并進行預測識別的像素框。MM-YOLOv4使用K-means算法對數(shù)據(jù)集進行聚類分析,以得到適合目標數(shù)據(jù)集訓練的錨框大小,自適應能力強且可以針對不同的數(shù)據(jù)集進行不同的錨框設計。
K-means算法是通過選取距離度量和準則函數(shù)不斷進行迭代最終選取k個聚類中心的聚類算法[16]。論文選用真實框和預測錨框之間的面積交并比IoU作為度量進行聚類。公式為:
(1)
式中:B為真實框;A為預測錨框;k為聚類中心(預測錨框)的個數(shù);nk為第k個聚類中心中的真實框的數(shù)量;N為真實框的總個數(shù);IIoU(B,A)為真實框和預測錨框的面積交并比;i代表聚類中心序號;j表示聚類中心中真實框的序號。
表2為YOLOv4算法的默認錨框和MM-YOLOv4算法使用K-means算法對Drone-dataset數(shù)據(jù)集進行錨框聚類得出的最佳錨框?qū)Ρ缺怼?/p>
表2 默認錨框和K-means算法錨框
本文通過結合文獻[15]中的公開數(shù)據(jù)集和自主拍攝無人機目標圖像的方式構建了數(shù)據(jù)集Drone-dataset。Drone-dataset中包含了大、中、小3種尺度的無人機目標,圖像數(shù)量為3 698張,其中2 664張為原公開數(shù)據(jù)集圖像,其余1 034張為后續(xù)擴充圖像。表3為Drone-dataset數(shù)據(jù)集的詳細信息以及訓練集、驗證集和測試集劃分情況。
表3 Drone-dataset數(shù)據(jù)集信息表
為了測試MM-YOLOv4算法的可行性,文中還選用了PASCAL VOC2012公開數(shù)據(jù)集作為實驗的檢測基準。
實驗環(huán)境基于深度學習框架PyTorch且配有CUDA10.2平臺作為并行運算結構,計算機環(huán)境為Windows 10操作系統(tǒng)Intel(R) Core(TM) i9-10900F CPU @ 2.80 GHz 2.81 GHz,內(nèi)存為64 G,GPU為NVIDIA Quadro P4000,8 G顯存。
模型訓練的超參數(shù)設置如下:訓練的初始學習率為0.01,最低學習率為0.000 1,并使用余弦退火的學習率衰減方法,模型的圖像輸入大小為416×416,Epoch次數(shù)為200,Batch size為16。
實驗選取目標檢測精度mAP(mean average precision,mAP)、檢測速度FPS(frames per ssecond,F(xiàn)PS)和模型參數(shù)量作為評價指標,來檢驗模型的整體性能。
mAP可以全方面地評價模型對多類別和多目標任務的定位和分類效果。計算mAP需要計算識別任務中每個類別的average precision (AP)然后取其平均值,其公式為:
(2)
式中:C為總類別數(shù)目;APi為第i類的AP值。
AP由精確率(precision)和召回率(recall)計算得來:
(3)
(4)
(5)
式中:TP(true positive)即實際輸入為正樣本,預測結果也為正樣本;FP(false positive)即實際輸入為負樣本,預測結果為正樣本;FN(false negative)即實際輸入為正樣本,預測結果為負樣本;TN(true negative)即實際輸入為負樣本,預測結果為負樣本;P代表precision,R代表recall。
3.3.1 可行性與先進性實驗
為驗證MM-YOLOv4算法的可行性,本實驗使用Faster R-CNN、SSD、YOLOv3、YOLOv4、MobileNetV3-YOLOv4和MM-YOLOv4算法在PASCAL VOC2012數(shù)據(jù)集上進行對比實驗,PASCAL VOC2012數(shù)據(jù)集包含20個類別的大中小尺度目標,能綜合反映算法的檢測性能。表4為各算法在PASCAL VOC2012數(shù)據(jù)集上各性能指標的檢測結果對比。
表4結果表明,在檢測精度方面,MM- YOLOv4在眾多算法中的mAP指標最高,達到了90.69%;在檢測速度FPS和模型參數(shù)量方面,MM-YOLOv4的性能略差于MobileNetV3-YOLOv4,但優(yōu)于其它算法,F(xiàn)PS指標達到了55幀/s,參數(shù)值僅有44.39 M,略優(yōu)于SSD算法46幀/s的FPS和99.76 M的參數(shù)值。此外相較于YOLOv4、Faster R-CNN等算法不到30幀/s的檢測速度和200 M以上的參數(shù)量,MM-YOLOv4算法則更占優(yōu)勢。
表4 PASCAL VOC2012數(shù)據(jù)集各算法檢測結果對比
綜上,MM-YOLOv4算法在YOLOv4的基礎上結合MobileNetV3輕量級網(wǎng)絡和改進多尺度PANet結構,大幅度縮減了參數(shù)量,加快了檢測速度,在PASCAL VOC 2012數(shù)據(jù)集得到了不錯的檢測結果,相較于YOLOv3、YOLOv4和Faster R-CNN等二階段檢測算法,MM-YOLOv4算法表現(xiàn)出更大優(yōu)勢,體現(xiàn)出了算法的可行性以及有效性。
為驗證算法的先進性,實驗基于Drone-dataset數(shù)據(jù)集開展對比實驗。該數(shù)據(jù)集包含了大、中、小3種尺度的無人機目標,可以全面檢驗算法對多尺度無人機目標檢測的適應能力。表5為各算法的訓練驗證結果對比,實驗指標使用COCO檢測指標,其中檢測精度mAP特指在IoU=0.5下的值,單位為%,其余的APsmall、APmedium、APlarge分別是3種尺度目標的平均精度值。
結果表明,MM-YOLOv4算法在IOU=0.5下的mAP精度指標達到了91.58%,優(yōu)于除Faster R-CNN以外的其他算法。此外,在AP精度指標上MM-YOLOv4表現(xiàn)良好,由小尺度目標到大尺度目標的精度值分別為22.92%、37.43%和56.00%。尤其是對小尺度目標檢測的AP精度,相較于YOLOv4和Mobilev3-YOLOv4分別提升了4.4%和5.15%,體現(xiàn)出改進多尺度結構對小目標檢測的提升效果。
表5 Drone-dataset數(shù)據(jù)集各算法檢測結果對比 單位:%
3.3.2 消融實驗
為了體現(xiàn)MM-YOLOv4的改進策略相比于YOLOv4的提升,對算法開展消融實驗,實驗通過使用Drone-dataset數(shù)據(jù)集對MM-YOLOv4算法的每一部分改進策略進行訓練并記錄其mAP(IoU=0.5)、FPS以及參數(shù)量指標,查看其改進效果。表6為各部分改進策略在Drone-dataset數(shù)據(jù)集上的指標對比。
由表6可知,本文算法在3個指標的性能上均有不同程度的提升,其中基于主干結構的輕量級網(wǎng)絡改進對模型性能的提升效果比較明顯,在mAP精度僅下降0.23%的代價下,將FPS提升到了65幀/s,并且參數(shù)量降到了43.51 M;基于PANet改進的多尺度結構表現(xiàn)尚可,提升了模型1.94%的mAP,但是FPS下降了15幀/s,同時參數(shù)量增加了3.64 M;基于K-means的錨框聚類方法提升了模型0.86%的mAP精度以及1幀/s的檢測速度。最終,結合了這3種改進策略的MM-YOLOv4算法mAP精度達到了最高的91.58%,提高了0.52%;FPS值達到了55幀/s,提高了28幀/s;參數(shù)量降到44.39 M僅為YOLOv4算法的1/6,這體現(xiàn)出MM-YOLOv4算法在檢測精度、檢測速度以及模型參數(shù)量上的高效平衡以及針對無人機目標檢測任務的優(yōu)異性能。
表6 基于Drone-dataset數(shù)據(jù)集的消融實驗
針對無人機目標的快速檢測問題,論文在YOLOv4算法的基礎上采取多種改進策略,提出了MM-YOLOv4無人機目標檢測算法。首先,使用MobileNetV3輕量級網(wǎng)絡作為YOLOv4的主干特征提取模塊,精簡模型結構,提升檢測速度;然后采用改進多尺度結構的PANet網(wǎng)絡作為特征融合模塊,充分利用淺層網(wǎng)絡提取的目標特征信息,增強對小尺度目標的鑒別能力;最后采用K-means聚類方法對目標數(shù)據(jù)集進行聚類分析,優(yōu)化錨框參數(shù),增強檢測效率。實驗結果表明,MM-YOLOv4算法在Drone-dataset和PASCAL VOC2012這兩類目標復雜的數(shù)據(jù)集上,表現(xiàn)出比常見算法更高的檢測精度和更快的檢測速度,為無人機目標的快速檢測提供了一種實用可行的研究思路。下一步的研究將針對PANet網(wǎng)絡改進造成的檢測速度下降問題,選取合適的特征金字塔結構,優(yōu)化特征融合通道,以適應更快的無人機目標檢測需求。