張 鵬,田 港,鄒金霖,張建業(yè),吳賢寧
(空軍工程大學(xué),a.裝備管理與無(wú)人機(jī)工程學(xué)院;b.教研保障中心;c.空管領(lǐng)航學(xué)院,西安 710000)
隨著深度學(xué)習(xí)的快速發(fā)展,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)技術(shù)已大量應(yīng)用于人臉識(shí)別、安防、自動(dòng)駕駛等領(lǐng)域。2005年,DALAL等使用方向梯度直方圖(Histogram of Oriented Gradient,HOG)算法對(duì)行人進(jìn)行檢測(cè),但該算法對(duì)于動(dòng)作幅度過(guò)大、遮擋等問(wèn)題檢測(cè)效果較差;2010年,F(xiàn)ELZENSZWALB在HOG算法的基礎(chǔ)上提出了DPM算法,相比于HOG算法檢測(cè)效果得到了提高,但存在穩(wěn)定性差、激勵(lì)特征人為設(shè)計(jì)致使工作量大的缺點(diǎn);2012年,KRIZHEVSKY等提出了基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法,與DPM算法相比,不僅檢測(cè)精度有了明顯提升,而且工作更穩(wěn)定,工作量更小。
目前基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法主要分為一階段(One-stage)和二階段(Two-stage)兩種。One-stage檢測(cè)模型主要有YOLO[1],SSD[2],DSSD[3]等;Two-stage檢測(cè)模型主要有R-CNN[4],F(xiàn)ast R-CNN[5],F(xiàn)aster R-CNN[6],Mask R-CNN[7],SPP-Net[8]等。李靚等[9]運(yùn)用FPN在遙感圖像中實(shí)現(xiàn)小目標(biāo)的準(zhǔn)確識(shí)別和定位;公明等[10]利用改進(jìn)YOLOv3實(shí)現(xiàn)了遙感圖像艦船檢測(cè),平均精度達(dá)到84%;史國(guó)川等[11]利用改進(jìn)Faster R-CNN用于無(wú)人機(jī)偵察目標(biāo)檢測(cè),精度達(dá)89.47%。但偵察任務(wù)中待檢測(cè)區(qū)域范圍較廣,單一使用偵察衛(wèi)星、無(wú)人機(jī)等手段檢測(cè)會(huì)導(dǎo)致檢測(cè)精度低及檢測(cè)效率慢等問(wèn)題,使用衛(wèi)星和無(wú)人機(jī)進(jìn)行協(xié)同檢測(cè),可以很好地將衛(wèi)星的“快”與無(wú)人機(jī)的“準(zhǔn)”相結(jié)合,提高待檢區(qū)域大、目標(biāo)密集等復(fù)雜環(huán)境下的檢測(cè)效率。
本文針對(duì)待檢區(qū)域范圍大,設(shè)計(jì)了一種基于YOLO系列檢測(cè)模型的衛(wèi)星無(wú)人機(jī)協(xié)同檢測(cè)方法。首先,為了節(jié)省衛(wèi)星平臺(tái)計(jì)算資源提升檢測(cè)速度,對(duì)YOLOv4-tiny模型進(jìn)行了通道剪枝,使用搭載剪枝模型的衛(wèi)星在大范圍區(qū)域內(nèi)對(duì)含目標(biāo)區(qū)域進(jìn)行初步的快速篩查;其次,為得到更高的檢測(cè)精度,將原YOLOv4[12]模型的三尺度檢測(cè)改進(jìn)為四尺度檢測(cè),對(duì)衛(wèi)星篩查到含有目標(biāo)的區(qū)域,調(diào)動(dòng)搭載改進(jìn)YOLOv4模型的無(wú)人機(jī),對(duì)含目標(biāo)區(qū)域進(jìn)一步精確檢測(cè)。經(jīng)實(shí)驗(yàn)表明,衛(wèi)星和無(wú)人機(jī)能夠可靠協(xié)同工作,有效提升大范圍區(qū)域中的檢測(cè)效率。
目前在模型裁剪方向,主要有通道裁剪[13]、神經(jīng)元裁剪[14]、權(quán)重裁剪[15]、卷積核裁剪[16]4大裁剪方法。其中,通道裁剪是將模型卷積層中貢獻(xiàn)度較小的通道刪除掉,這種方法可以在保證一定精度的情況下,帶來(lái)較高的裁剪效率,且不需要專門(mén)的軟硬件支持。模型通道裁剪一般是將預(yù)訓(xùn)練模型進(jìn)行稀疏訓(xùn)練,其次設(shè)置裁剪比例進(jìn)行通道裁剪,最后將裁剪后的模型進(jìn)行微調(diào),根據(jù)測(cè)試結(jié)果決定模型是否需要迭代。
YOLOv4-tiny引入了批歸一化層即BN(Batch Normalization)[17]層。BN層輸入輸出有以下關(guān)系
(1)
式中:bin為BN層的輸入;bout為BN層的輸出;γ為BN層的縮放因子;β為BN層的偏置項(xiàng);μ為BN層的均值參數(shù);σ為BN層的方差參數(shù);ε項(xiàng)是為了避免分母為0;下標(biāo)m為模型每次輸入的mini-batch。
在YOLOv4-tiny模型中,每個(gè)特征通道對(duì)應(yīng)一個(gè)縮放因子γ,為了對(duì)BN層的縮放因子γ進(jìn)行稀疏化訓(xùn)練,在原始Loss函數(shù)中引入了L1正則化,新的Loss函數(shù)為
(2)
使用稀疏后的γ值的大小衡量與之對(duì)應(yīng)通道的重要性。一般γ值越小,說(shuō)明該γ值對(duì)應(yīng)的特征通道對(duì)輸出貢獻(xiàn)越小。當(dāng)Loss函數(shù)引入L1正則損失項(xiàng),稀疏訓(xùn)練后模型中的部分γ值會(huì)趨近于0,所以卷積層的輸出,即BN層的輸入bin無(wú)論多大,在經(jīng)過(guò)BN層的處理后,輸出bout都會(huì)變?yōu)?/p>
(3)
從式(3)可以發(fā)現(xiàn),當(dāng)γ值趨近于0,無(wú)論與之對(duì)應(yīng)的通道輸入bin多大,輸出bout均為β,因此該通道對(duì)輸出基本沒(méi)有影響,可以將該通道裁剪掉。
圖1為通道裁剪過(guò)程。
圖1 通道裁剪Fig.1 Channel pruning
對(duì)于稀疏化后的縮放因子γ,根據(jù)模型的運(yùn)用場(chǎng)景及檢測(cè)精度等條件,選取合適的閾值,當(dāng)γ值小于設(shè)置的閾值時(shí),該γ值對(duì)應(yīng)的通道將會(huì)被裁剪掉。
裁剪后的模型由于參數(shù)減少,模型的檢測(cè)精度會(huì)有不同程度的下降。為了恢復(fù)裁剪造成的精度損失,通常使用同一數(shù)據(jù)集將裁剪后的模型重新訓(xùn)練一定輪數(shù),即模型微調(diào),在此過(guò)程中,模型中被保留的參數(shù)會(huì)根據(jù)數(shù)據(jù)集的情況重新進(jìn)行調(diào)整學(xué)習(xí),以達(dá)到恢復(fù)檢測(cè)精度的目的。
本文所使用的遙感圖像由項(xiàng)目合作單位提供,分辨率為0.47~0.55 m/像素,數(shù)據(jù)集中共有2139幅遙感圖像。部分?jǐn)?shù)據(jù)集如圖2所示。
圖2 遙感圖像數(shù)據(jù)集樣本Fig.2 Remote sensing image dataset sample
該數(shù)據(jù)集中含有飛機(jī)、艦船、油罐3類目標(biāo)。訓(xùn)練集和測(cè)試集按照4∶1的比例劃分,其中,1711幅用來(lái)訓(xùn)練,428幅用來(lái)測(cè)試驗(yàn)證。本文使用深度學(xué)習(xí)中較流行的Labelimg軟件對(duì)遙感圖像中的目標(biāo)進(jìn)行標(biāo)注。
無(wú)人機(jī)在對(duì)地目標(biāo)檢測(cè)中存在部分小目標(biāo),淺層特征圖中保留了較多的邊緣、紋理特征信息,因此,淺層特征圖對(duì)小目標(biāo)更加敏感,利用淺層特征圖中的紋理等特征信息可以更好地對(duì)小目標(biāo)進(jìn)行檢測(cè),提升對(duì)小目標(biāo)的檢測(cè)效果。圖3為改進(jìn)后的模型,該模型在104×104淺層特征圖后面加入了新的檢測(cè)分支,該層特征圖更好地保留了小目標(biāo)的有效信息。原來(lái)13×13,26×26,52×52的三尺度檢測(cè)層變?yōu)?3×13,26×26,52×52,104×104的四尺度檢測(cè)層。
圖3 YOLOv4改進(jìn)模型Fig.3 Improved YOLOv4 model
由于深層特征圖包含較強(qiáng)的位置信息,淺層特征圖包含較強(qiáng)的語(yǔ)義信息,為了使得新加入的檢測(cè)分支獲得更強(qiáng)的位置信息,將已經(jīng)融合了13×13,26×26特征圖信息的52×52特征圖進(jìn)行上采樣,傳遞給104×104特征圖后進(jìn)行特征融合,在融合后的結(jié)果后面加入5個(gè)卷積層,卷積核大小依次是1×1,3×3,1×1,3×3,1×1,這樣可以增加模型深度,提高模型的復(fù)雜度和模型容量,從而使得模型可以更有效地提取到目標(biāo)特征。同時(shí),將104×104淺層特征圖中更多的語(yǔ)義信息通過(guò)下采樣依次傳遞給52×52,26×26,13×13的深層特征圖中,提高模型在深層特征圖上對(duì)目標(biāo)的檢測(cè)能力。
新加入的104×104檢測(cè)分支主要檢測(cè)小目標(biāo),為了給新加入的檢測(cè)分支分配與之匹配的先驗(yàn)框,本文使用K-means聚類算法對(duì)已標(biāo)注的目標(biāo)重新聚類。通過(guò)聚類算法,將重新聚類得到的(5,9),(8,12),(11,18)3個(gè)錨框分配給104×104檢測(cè)分支。
為了模擬無(wú)人機(jī)在同分辨率下相對(duì)衛(wèi)星成像視場(chǎng)小的特點(diǎn),通過(guò)對(duì)遙感圖像隨機(jī)裁剪分割來(lái)模擬無(wú)人機(jī)獲取到的圖像,然后對(duì)裁剪分割后的圖像進(jìn)行篩選,剔除不含目標(biāo)的圖像,最后使用Labelimg軟件對(duì)圖像中飛機(jī)、艦船、油罐進(jìn)行標(biāo)注。最終共制得圖像3000幅,訓(xùn)練集和測(cè)試機(jī)比例為4∶1,分別為2400幅和600幅。圖4為部分?jǐn)?shù)據(jù)集樣本。
圖4 無(wú)人機(jī)數(shù)據(jù)集樣本Fig.4 UAV data set sample
本文實(shí)驗(yàn)使用的計(jì)算機(jī)系統(tǒng)為Ubuntu 18.04,CPU為Intel Core i7-9700K,GPU為NVIDIA GeForce RTX 2080 ti,深度學(xué)習(xí)框架為Darknet。其中,模型的輸入圖像大小為416×416,訓(xùn)練樣本的樣本數(shù)量為32,學(xué)習(xí)率變動(dòng)步長(zhǎng)為24 000,27 000,迭代次數(shù)為30 000,學(xué)習(xí)率為0.001,學(xué)習(xí)率變動(dòng)因子為0.1,0.1。
3.2.1 YOLOv4-tiny模型對(duì)比分析
本文分別對(duì)比了YOLOv4,YOLOv4-tiny和剪枝YOLOv4-tiny,其中,剪枝YOLOv4-tiny的剪枝率為0.3。各模型性能如表1所示。
表1 模型大小及檢測(cè)速度對(duì)比Table 1 Comparison of model size and detection speed
從表1可以看出,YOLOv4-tiny由于結(jié)構(gòu)簡(jiǎn)單,參數(shù)量較YOLOv4大大減少,模型大小僅為YOLOv4的1/10,因此,YOLOv4-tiny模型消耗的計(jì)算資源更少,有利于節(jié)省衛(wèi)星平臺(tái)有限的能量資源。同時(shí),輕便的模型結(jié)構(gòu)帶來(lái)了較快的檢測(cè)速度,YOLOv4-tiny的FPS是YOLOv4的1.7倍。
為了進(jìn)一步減少模型參數(shù)、提高檢測(cè)速度,對(duì)YOLOv4-tiny進(jìn)行了通道裁剪。剪枝微調(diào)后的YOLOv4-tiny檢測(cè)精度與原模型基本保持一致,均為75%左右。但剪枝模型參數(shù)減少了38%,模型大小也減少了10 MiB,同時(shí)檢測(cè)速度提升了15%。因此,剪枝YOLOv4-tiny更適用于衛(wèi)星快速篩查檢測(cè)。
剪枝YOLOv4-tiny是為了快速篩查含目標(biāo)區(qū)域,如果某一區(qū)域含有目標(biāo)而模型均未檢測(cè)到,該含目標(biāo)區(qū)域?qū)?huì)被直接忽略,則剪枝YOLOv4-tiny便失去了篩查的作用。為了驗(yàn)證剪枝YOLOv4-tiny是否存在大概率對(duì)含目標(biāo)區(qū)域完全漏檢的情況,本文對(duì)測(cè)試集中的428幅遙感圖像進(jìn)行了逐一檢測(cè),最終一共有424幅圖像均被或多或少檢測(cè)到了目標(biāo),因此,剪枝YOLOv4-tiny模型對(duì)待檢測(cè)區(qū)域篩查可靠性較高。
3.2.2 YOLOv4模型對(duì)比分析
為了驗(yàn)證改進(jìn)部分的有效性,本文將YOLOv3,YOLO-v4和改進(jìn)YOLOv4進(jìn)行了測(cè)試對(duì)比,各模型檢測(cè)性能如表2所示,其中,mAP@0.5表示IOU閾值設(shè)為0.5時(shí)所對(duì)應(yīng)的mAP值。
表2 模型性能對(duì)比Table 2 Comparison of model performance
從表2可以發(fā)現(xiàn),改進(jìn)YOLOv4模型的mAP值較YOLOv3和YOLOv4模型分別提升了9.81%和1.65%,其中,改進(jìn)YOLOv4在對(duì)飛機(jī)、艦船、油罐3類目標(biāo)的檢測(cè)精度上較YOLOv4分別提升了0.83%,1.76%,2.37%,這說(shuō)明增加的104×104大尺度檢測(cè)層和5個(gè)卷積層能有效加強(qiáng)模型對(duì)目標(biāo)特征的提取能力,使得模型檢測(cè)層信息更豐富,提高了模型在實(shí)際中的檢測(cè)精度。同時(shí),改進(jìn)YOLOv4模型的召回率也高于YOLOv3和YOLOv4,召回率越高,說(shuō)明模型漏檢的目標(biāo)數(shù)量越少,因此,改進(jìn)YOLOv4模型在實(shí)際檢測(cè)中比其他兩個(gè)模型更加可靠、穩(wěn)定。圖5所示為YOLOv4(左圖)和改進(jìn)YOLOv4(右圖)實(shí)際檢測(cè)效果對(duì)比圖。
圖5 實(shí)際檢測(cè)效果對(duì)比Fig.5 Comparison of actual detection results
從圖5(a)~5(c)可以看出,YOLOv4在實(shí)際檢測(cè)中存在明顯漏檢情況,改進(jìn)后的YOLOv4可以檢測(cè)出圖像中較小的目標(biāo),檢出效果較好。從圖5(d)~5(e)可以看出,YOLOv4在實(shí)際檢測(cè)中將小型綠化帶和汽車誤識(shí)別為飛機(jī),存在明顯誤檢情況。改進(jìn)后的YOLOv4則避免了這種情況。
因此,新加入的104×104淺層特征圖可以保留小目標(biāo)更多的紋理等信息,同時(shí)加入的5個(gè)卷積層,有效提升了模型對(duì)目標(biāo)特征的提取能力。兩者結(jié)合使得模型看得更準(zhǔn)、更清楚,減少了模型在實(shí)際檢測(cè)中的漏檢、誤檢情況。
驗(yàn)證平臺(tái)系統(tǒng)如圖6所示,該平臺(tái)系統(tǒng)分為物理層面和模型層面。
首先,物理層面提供模型訓(xùn)練測(cè)試所需要的數(shù)據(jù)樣本;接下來(lái),模型層面通過(guò)物理層面提供的數(shù)據(jù)樣本分別對(duì)YOLOv4-tiny和改進(jìn)YOLOv4模型進(jìn)行訓(xùn)練;最后,分別使用訓(xùn)練好的YOLOv4-tiny和改進(jìn)YOLOv4模型對(duì)遙感圖像和無(wú)人機(jī)圖像中的目標(biāo)進(jìn)行檢測(cè)。
根據(jù)圖6搭建的平臺(tái)系統(tǒng),本文使用某衛(wèi)星獲取到的寬幅衛(wèi)星圖和裁切圖像模擬偵察衛(wèi)星和無(wú)人機(jī)協(xié)同檢測(cè)。首先,使用剪枝YOLOv4-tiny模型對(duì)衛(wèi)星上獲取到的寬幅遙感圖像進(jìn)行檢測(cè),如果該圖像中沒(méi)有檢測(cè)到目標(biāo),則該地區(qū)被視為無(wú)目標(biāo)區(qū)域,衛(wèi)星將會(huì)快速略過(guò)這一區(qū)域并進(jìn)入下一區(qū)域繼續(xù)檢測(cè);如果在該圖像中檢測(cè)到至少一個(gè)目標(biāo),則將該圖像中心點(diǎn)的經(jīng)緯度信息傳回至地面站,地面站再將經(jīng)緯度信息發(fā)送給無(wú)人機(jī),無(wú)人機(jī)將會(huì)以該位置點(diǎn)為中心,在一定半徑范圍內(nèi)進(jìn)行詳細(xì)精確檢測(cè)。
圖7為待檢測(cè)區(qū)域。
圖7 待檢測(cè)區(qū)域Fig.7 Area to be detected
圖7中,若只使用單一衛(wèi)星進(jìn)行檢測(cè),則圖7(c)中部分目標(biāo)將被漏檢。若只使用單一無(wú)人機(jī)進(jìn)行檢測(cè),圖7(a)~7(c)對(duì)應(yīng)的區(qū)域范圍很大,由于無(wú)人機(jī)視場(chǎng)小、速度慢,依次將3片區(qū)域檢測(cè)完畢需要消耗大量的資源和時(shí)間,況且圖7(a)~7(b)區(qū)域本身就不存在目標(biāo),使用無(wú)人機(jī)進(jìn)行檢測(cè)更是浪費(fèi)資源和時(shí)間。
圖8所示為衛(wèi)星檢測(cè)結(jié)果。
圖8 衛(wèi)星檢測(cè)結(jié)果Fig.8 Satellite detection results
從圖8可以看出,圖7(c)區(qū)域內(nèi)含有大量飛機(jī),搭載YOLOv4-tiny的衛(wèi)星可檢測(cè)出該區(qū)域中的某架飛機(jī),因此判定該區(qū)域含有目標(biāo),然后,衛(wèi)星將該區(qū)域中心點(diǎn)經(jīng)緯度發(fā)送至地面站,地面站引導(dǎo)無(wú)人機(jī)在該區(qū)域進(jìn)一步精確檢測(cè)。
圖9所示為搭載改進(jìn)YOLOv4的無(wú)人機(jī)在衛(wèi)星篩查基礎(chǔ)上進(jìn)行精確檢測(cè)的結(jié)果。
圖9 無(wú)人機(jī)檢測(cè)結(jié)果Fig.9 UAV detection results
從圖9可以看出,無(wú)人機(jī)將該區(qū)域的飛機(jī)全部檢出,達(dá)到了精確檢測(cè)的目的。
因此,使用衛(wèi)星和無(wú)人機(jī)協(xié)同檢測(cè)能夠有效解決單一無(wú)人機(jī)在無(wú)目標(biāo)圖7(a)~7(b)區(qū)域精確檢測(cè)浪費(fèi)資源、時(shí)間以及單一衛(wèi)星檢測(cè)漏檢的問(wèn)題,提高目標(biāo)檢測(cè)效率。
本文針對(duì)待檢測(cè)區(qū)域大,單一使用遙感衛(wèi)星或無(wú)人機(jī)檢測(cè)將分別導(dǎo)致檢測(cè)精度低及檢測(cè)速度慢的問(wèn)題,提出了一種衛(wèi)星無(wú)人機(jī)協(xié)同檢測(cè)方法?;谛l(wèi)星平臺(tái),為了節(jié)省平臺(tái)計(jì)算資源和能耗、同時(shí)加快篩查速度,對(duì)YOLOv4-tiny進(jìn)行了通道裁剪?;跓o(wú)人機(jī)平臺(tái),為了使得模型檢測(cè)更精確,將YOLOv4的三尺度檢測(cè)改進(jìn)為四尺度檢測(cè)。通過(guò)實(shí)驗(yàn)分析可知,改進(jìn)的兩種模型分別取得了速度和精度上的提升,使用衛(wèi)星和無(wú)人機(jī)協(xié)同檢測(cè)能夠有效提高檢測(cè)效率。