董鳳禹,魏振忠
北京航空航天大學(xué),北京 100191
空中小目標(biāo)檢測任務(wù)通常是指在航空或航天等領(lǐng)域中,對飛行器或衛(wèi)星等載具進行實時監(jiān)測,以實現(xiàn)空中交通管制、地質(zhì)探測、天氣預(yù)測、空中加油[1]、飛行器姿態(tài)測量[2]等應(yīng)用。相較于高分辨率的圖像,空中目標(biāo)往往相對尺寸小或尺度變化極大,且目標(biāo)速度快、動態(tài)性強,因此對檢測算法的精度和實時性都有很高的要求。在空中小目標(biāo)檢測任務(wù)中,常需要處理復(fù)雜的背景干擾、快速移動的目標(biāo)和目標(biāo)尺度變化等問題。同時,由于這些目標(biāo)通常是在遠距離或高空下進行檢測,所以還需要考慮光照、氣象等因素的影響。因此,針對這些問題,需要使用高精度、高魯棒性的目標(biāo)檢測算法,并且在算法的設(shè)計上需要考慮到實時性和計算復(fù)雜度等因素。
當(dāng)前,隨著深度學(xué)習(xí)技術(shù)在計算機視覺領(lǐng)域的應(yīng)用,目標(biāo)檢測器的精度和速度都有了巨大的提升。目前主流的目標(biāo)檢測算法包括 R-CNN、Fast R-CNN[3]、Faster R-CNN[4]、YOLOv7[5]、RetinaNet[6]、CornerNet[7]、CenterNet[8]等。盡管目標(biāo)檢測方法發(fā)展迅速,但小目標(biāo)檢測仍是當(dāng)前亟待解決的難題。根據(jù)國際光學(xué)工程學(xué)會的定義,小目標(biāo)的成像尺寸小于整個成像區(qū)域的0.12%。小目標(biāo)在圖像中通常只占少數(shù)像素,攜帶較少的目標(biāo)特征,因此通用目標(biāo)檢測方法難以對小目標(biāo)實現(xiàn)較好的檢測效果。針對小目標(biāo)檢測任務(wù),相關(guān)研究人員已經(jīng)進行了一些研究。B.Zoph等[9]嘗試通過設(shè)計有效的數(shù)據(jù)增強策略解決小目標(biāo)檢測數(shù)據(jù)不足的問題。Li等[10]使用生成對抗網(wǎng)絡(luò)(GAN)將低分辨率特征作為GAN的輸入來生成高分辨率特征,但這種方法的檢測速度較慢,并且對用于訓(xùn)練的數(shù)據(jù)集有較高的要求。Yang等[11]采用了一種查詢機制來提高基于特征金字塔的對象檢測器的推理速度,提高了小目標(biāo)檢測器的性能。
綜上所述,這些小目標(biāo)檢測方法都是為了在小目標(biāo)檢測場景中提高檢測精度和速度而被提出。它們的具體思路和技術(shù)實現(xiàn)方式不同,但都采用了一些特殊的技巧來解決小目標(biāo)檢測問題。然而,這些方法仍然存在一些局限性和缺陷,如模型復(fù)雜性增加、速度變慢等,需要進一步研究和改進。本文針對空中小目標(biāo)檢測任務(wù),在 YOLOv7 基準(zhǔn)模型的基礎(chǔ)上進行了改進。具體來說,采用GFPN 結(jié)構(gòu)替換YOLOv7 原有的 PANet,并且設(shè)計新的損失函數(shù)以提高模型在處理小目標(biāo)檢測和目標(biāo)尺度變化較大的檢測任務(wù)時的表現(xiàn)。通過改進,本文方法在小目標(biāo)檢測和目標(biāo)尺度變化較大的數(shù)據(jù)集上取得了較好的表現(xiàn),比 YOLOv7 原始模型有更高的檢測精度和較快的檢測速度,適合在實際應(yīng)用中使用。
YOLOv7 是一種單步法目標(biāo)檢測模型,YOLOv7 的速度 比YOLOX 快180%(FPS),比Dual-Swin-T 快1200%(FPS),比ConvNext 快550%(FPS),比SWIN-L 快500%(FPS)。此外,即使在精度為56.8%AP的情況下,模型的檢測速度仍可達到30幀/s以上。YOLOv7的出色性能使其可用于實時目標(biāo)檢測和跟蹤任務(wù)中,其結(jié)構(gòu)如圖1所示。
圖1 YOLOv7模型網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 YOLOv7 network structure
YOLOv7 將模型重參數(shù)化的思想引入網(wǎng)絡(luò)架構(gòu)中,通過對模型參數(shù)進行適當(dāng)?shù)闹亟M,可以在不影響模型性能的前提下,減少模型參數(shù)數(shù)量,從而降低模型計算復(fù)雜度。YOLOv7 采用了YOLOv5 的跨網(wǎng)格搜索和YOLOX的匹配策略,對標(biāo)簽分配進行了優(yōu)化,提高了模型的準(zhǔn)確性。此外,YOLOv7 提供了一種新的高效網(wǎng)絡(luò)架構(gòu)ELAN,該架構(gòu)可以在保持準(zhǔn)確性的前提下,大幅減少計算和內(nèi)存開銷,并通過引入輔助頭,可以在不影響推理時間的前提下,提高模型的訓(xùn)練效率和準(zhǔn)確性。盡管YOLOv7 通過模型重參數(shù)化、標(biāo)簽分配優(yōu)化、高效網(wǎng)絡(luò)架構(gòu)設(shè)計和輔助頭訓(xùn)練方法等多方面的改進,提高了目標(biāo)檢測模型的性能和效率,但其在小目標(biāo)檢測方面仍有較大提升空間。
特征金字塔網(wǎng)絡(luò)(FPN)的目的是解決CNN 骨干網(wǎng)絡(luò)在提取不同分辨率、多尺度特征時存在的融合問題。除了最初的FPN,PANet 和BiFPN 等也常用于目標(biāo)檢測模型。盡管這些FPN結(jié)構(gòu)注重特征融合,但它們?nèi)狈K內(nèi)鏈接,可能會導(dǎo)致在小目標(biāo)檢測任務(wù)中無法提取關(guān)鍵特征。而廣義特征金字塔網(wǎng)絡(luò)(GFPN)[12]采用一種新的路徑融合方法,包含跳層和跨尺度連接,能夠更好地提取和融合特征,相比于YOLOv7 原有的 PANet 結(jié)構(gòu),GFPN 結(jié)構(gòu)在處理小目標(biāo)檢測和目標(biāo)尺度變化較大的場景下具有更好的表現(xiàn)。GFPN結(jié)構(gòu)能夠更好地保留小目標(biāo)的細節(jié)信息,并通過融合不同尺度的特征信息來提高檢測精度。GFPN 具體結(jié)構(gòu)如圖2所示。
圖2 GFPN結(jié)構(gòu)示意圖Fig.2 Schematic diagram of GFPN structure
GFPN 中含有兩種特征鏈接方法:dense-link 和log2nlink,兩種鏈接分別用以下公式表示
式中,Plk表示第l層特征圖在第k級的尺度特征,Concat() 表示將前面所有層生成的特征圖串聯(lián)在一起,Conv() 表示使用 3×3 卷積對這些特征圖進行處理。
式(1)表示dense-link 的鏈接方式,在dense-link 中第l層接收所有前面層的特征圖;式(2)表示log2n-link 的鏈接方式,log2n-link 在每個級別k中,第l層從最多l(xiāng)og2l+ 1 個前面的層接收特征圖,log2n-link 結(jié)構(gòu)只會在反向傳播時將層間距離從1 增加到1+ log2l,因此可以被擴展到更深的神經(jīng)網(wǎng)絡(luò)中。
YOLOv7采用交并比損失(IoU)作為模型的損失函數(shù),其計算公式如式(3)~式(5)所示
式中,b為預(yù)測框;bgt為真實框;w,h分別為預(yù)測框的寬和高;wgt,hgt分別為真實框的寬和高;c表示能夠同時包含預(yù)測框和真實框的最小閉包區(qū)域的對角線距離;α為平衡參數(shù);v用來衡量長寬比是否一致。
就常規(guī)目標(biāo)檢測任務(wù)而言,對于微小物體檢測器來說IoU并不適用。因為在預(yù)測邊界框與真實邊界框之間沒有重疊或者預(yù)測邊界框完全包含真實邊界框等情況下,IoU無法為優(yōu)化網(wǎng)絡(luò)提供梯度,而這種情況在微小物體檢測中比較常見。根據(jù)式(3)~式(5),雖然YOLOv7 采用的CIoU可以在一定程度上處理這些情況,但是它仍對微小物體的位置偏差比較敏感[13]。
為了解決這個問題,本文采用基于最優(yōu)傳輸理論的損失函數(shù)來衡量目標(biāo)框坐標(biāo)的準(zhǔn)確程度,通過Wasserstein 散度來代替標(biāo)準(zhǔn)的IoU。Wasserstein 散度能夠一致地反映分布之間的距離,即使它們沒有重疊。對于微小的物體,邊界框中往往會有一些背景像素,因為大多數(shù)真實物體不是嚴(yán)格的矩形。因此,邊界框可以建模為二元高斯分布,其中邊界框的中心像素具有最高的權(quán)重,像素的重要性從中心到邊界遞減。邊界框之間的相似度可以轉(zhuǎn)換為兩個高斯分布之間的分布距離。
具體而言,目標(biāo)邊界框R=(cx,cy,w,h)可以建模為二元高斯分布N(μ,Σ),其中
為了評估本方法的性能,本文在VisDrone基準(zhǔn)數(shù)據(jù)集上進行了試驗,VisDrone是一個大規(guī)模的計算機視覺基準(zhǔn)數(shù)據(jù)集,包含288 個視頻片段和10209 張靜態(tài)圖像,共計261908幀,圖像內(nèi)容涉及多個方面,如不同的地理位置、環(huán)境條件、物體種類、目標(biāo)密度等。此外,該數(shù)據(jù)集還包含在不同天氣和光照條件下拍攝的圖像,為數(shù)據(jù)集增加了多樣性。為了提高數(shù)據(jù)集的可用性,對所涉及的目標(biāo)物體手動注釋了超過260 萬個邊界框,并提供了其他屬性,如場景可見度、目標(biāo)類別和遮擋情況。
此外,為了驗證改進前后的網(wǎng)絡(luò)模型對于飛機目標(biāo)的檢測性能,本文提出了一個新的飛機目標(biāo)基準(zhǔn)數(shù)據(jù)集,該數(shù)據(jù)集包含2800 張帶有目標(biāo)矩形框標(biāo)注的圖像,采集自飛機試飛現(xiàn)場真實視頻。數(shù)據(jù)集被劃分為訓(xùn)練集、驗證集和測試集,分別包含1700 張、500 張和600 張帶標(biāo)注圖像。如圖3 所示,該數(shù)據(jù)集涵蓋了多種天氣條件、目標(biāo)姿態(tài)和大小變化,包括晴天、陰天、霧霾等多種天氣條件,實例尺寸覆蓋9~1521px,其中小目標(biāo)超過實例總數(shù)的70%,可以有效地評估目標(biāo)檢測算法的魯棒性。
圖3 空中目標(biāo)檢測基準(zhǔn)數(shù)據(jù)集中多樣化的圖像Fig.3 Diverse images in aerial object detection dataset
本文試驗軟件環(huán)境為Ubuntu18.04,python3.8.13,pytorch1.11.0;GPU為NVIDIA GeForce 2080Ti;圖片大小設(shè)置為1280×1280,迭代次數(shù)100次。在基準(zhǔn)數(shù)據(jù)集上檢測網(wǎng)絡(luò)進行性能測試,試驗中,遵循VisDrone2021數(shù)據(jù)集的使用規(guī)則,在VisDrone 2021 中的訓(xùn)練集上進行網(wǎng)絡(luò)的訓(xùn)練,在VisDrone2021 中的驗證集上進行評估。訓(xùn)練過程中,使用隨機梯度下降法對網(wǎng)絡(luò)參數(shù)進行優(yōu)化,使用warm-up 來訓(xùn)練策略,warm-up epoch 設(shè)置為第三次迭代,初始學(xué)習(xí)率取0.01,優(yōu)化器權(quán)重衰減為0.0005。
通過對比同樣試驗環(huán)境下改進前后的網(wǎng)絡(luò)模型對不同類型圖像的檢測結(jié)果,可以評估漏檢和誤檢情況。評估方法主要選取準(zhǔn)確率—召回率(P-R)曲線、平均準(zhǔn)確率(AP)和平均精度均值(mAP)三個指標(biāo)。
(1) 準(zhǔn)確率—召回率(P-R)曲線
P-R曲線是一個以準(zhǔn)確率為縱軸、召回率為橫軸的曲線圖。其中,準(zhǔn)確率P 是指在所有被分類為正樣本中,真正為正樣本的比例;而召回率R 是指在所有實際為正樣本中,被分類為正樣本的比例。對于不同閾值的分類器,繪制其P-R曲線可以幫助我們選擇最優(yōu)的閾值,以獲得更好的檢測效果。
(2) 平均準(zhǔn)確率(AP)
AP是用于評估分類模型精度的指標(biāo)之一,它是P-R曲線下面積的平均值。通過計算P-R曲線下的面積可以得到AP的值,AP值越高說明模型的檢測效果越好。
(3) 平均精度均值(mAP)
mAP 是所有類別AP 的平均值,是評估整個模型性能的一個綜合指標(biāo)。它可以很好地反映模型在不同類別圖像上的檢測效果。本文所提出的模型與YOLOv7基準(zhǔn)模型在VisDrone數(shù)據(jù)集上的檢測結(jié)果(P-R曲線)如圖4所示,使用P-R曲線來展示模型的性能,其中曲線下的面積AP值是反映模型綜合性能的指標(biāo)。試驗結(jié)果表明,本文提出的模型在VisDrone數(shù)據(jù)集上表現(xiàn)出色,相較于YOLOv7基準(zhǔn)模型,該模型的檢測精度更高。
圖4 YOLOv7模型與本文改進后的模型P-R曲線對比Fig.4 Comparison between the YOLOv7 model and the improved model P-R curve in this paper
為了進一步驗證本文提出的模型在VisDrone數(shù)據(jù)集上的性能,本文對其他常用目標(biāo)檢測算法進行了試驗,并將試驗結(jié)果列于表1 中。根據(jù)測試結(jié)果,本文提出的模型在VisDrone 數(shù)據(jù)集上具有更高的檢測精度,相比于其他常用目標(biāo)檢測算法表現(xiàn)更出色。
表1 本文模型與現(xiàn)有代表性算法在VisDrone數(shù)據(jù)集上的試驗結(jié)果比較Table 1 Comparison of experimental results between the model in this paper and existing representative algorithms on the VisDrone dataset
此外,本文在自己建立的空中目標(biāo)基準(zhǔn)數(shù)據(jù)集上進行了試驗,以驗證本文模型在小目標(biāo)和中等大小的目標(biāo)檢測方面的效果,并將試驗結(jié)果列于表2 中。與通用的單步法檢測器YOLOv3、YOLOv4等相比,在推理速度相當(dāng)?shù)那闆r下,本文提出的模型在中小目標(biāo)檢測方面具有更高的精度。與兩步法檢測器Cascade R-CNN 等相比,本文提出的模型在精度方面與其相當(dāng),但在推理速度上有很大優(yōu)勢。
表2 本文模型與現(xiàn)有代表性算法在基準(zhǔn)數(shù)據(jù)集上的試驗結(jié)果比較Table 2 Comparison of experimental results between the model in this paper and existing representative algorithms on benchmark datasets
本文針對空中小目標(biāo)檢測任務(wù),對YOLOv7 基準(zhǔn)模型進行了改進,中間層引入GFPN結(jié)構(gòu),使用Wasserstein散度替換原有的交并比損失,并建立了一個涵蓋各種天氣條件下多種姿態(tài)和不同大小飛機目標(biāo)的基準(zhǔn)數(shù)據(jù)集。在該基準(zhǔn)數(shù)據(jù)集和公開數(shù)據(jù)集上對模型的性能進行測試,結(jié)果表明,本文提出的模型在公開數(shù)據(jù)集與自建數(shù)據(jù)集上都有著較好的表現(xiàn),具有較快的檢測速度和較高的檢測精度,對于空中小目標(biāo)具有良好的檢測性能,為解決空中小目標(biāo)檢測任務(wù)的實際問題提供了有效的方法和思路。