孫偉杰,袁三男
(上海電力大學(xué),上海 200000)
遙感影像的目標(biāo)檢測技術(shù)廣泛應(yīng)用于軍事、交通、環(huán)境、油氣活動(dòng)監(jiān)測等領(lǐng)域,遙感是目前最為有效、安全的軍事偵察手段。但目前大部分遙感檢測任務(wù)是基于衛(wèi)星或無人機(jī)進(jìn)行的,因此,遙感目標(biāo)往往尺寸小、方向錯(cuò)亂且成像質(zhì)量受光照、陰影等環(huán)境影響,檢測效果并不理想。
很多學(xué)者針對提升遙感目標(biāo)檢測精度展開研究,并提出一系列算法。文獻(xiàn)[1]構(gòu)建了一個(gè)基于形狀的全局最小化活動(dòng)輪廓模型(SGACM),但該模型只能用來提取遙感圖像中飛機(jī)、油罐這樣具有規(guī)則形狀的目標(biāo),具有一定的局限性,難以進(jìn)行擴(kuò)展;文獻(xiàn)[2]提出了一種結(jié)合稀疏編碼和徑向梯度變換(RGT)的特征提取方法來應(yīng)對因目標(biāo)小而導(dǎo)致檢測效果差的情況,但只針對飛機(jī)這類特殊的“十”字型幾何結(jié)構(gòu),且手工提取特征的參數(shù)設(shè)置依賴經(jīng)驗(yàn),不具有泛化性。傳統(tǒng)基于機(jī)器學(xué)習(xí)的算法雖然針對性強(qiáng)、準(zhǔn)確性高,但依賴專業(yè)知識(shí),對不同的目標(biāo)需要設(shè)計(jì)多個(gè)特征提取方法,且調(diào)參困難。
隨著計(jì)算機(jī)視覺與深度學(xué)習(xí)的蓬勃發(fā)展,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法為遙感目標(biāo)檢測提供了新的研究視角。傳統(tǒng)的目標(biāo)檢測算法主要分為以Fast R-CNN[3]和Faster R-CNN[4]等為代表的雙階段檢測算法以及以YOLOv4[5]和SSD[6]等為代表的單階段檢測算法。這些方法都是基于卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,而遙感圖像中的小目標(biāo)大多都是幾十個(gè)像素甚至是幾個(gè)像素,在經(jīng)過多次卷積和池化操作后,大量的高層特征信息會(huì)被丟棄,因此對遙感圖像中的小目標(biāo)容易出現(xiàn)漏檢和誤檢。
文獻(xiàn)[7]對YOLOv3進(jìn)行改進(jìn),加入多尺度融合,并提出了一種遙感圖像飛機(jī)目標(biāo)的實(shí)時(shí)檢測算法,雖然檢測速度明顯提升,但對遙感小目標(biāo)檢測效果依舊不佳。近年來,生成對抗網(wǎng)絡(luò)也被應(yīng)用于遙感檢測的任務(wù)。文獻(xiàn)[8]基于深度殘差網(wǎng)絡(luò)構(gòu)建EESRGAN算法,并設(shè)計(jì)邊緣增強(qiáng)模塊,生成遙感小目標(biāo)的超分辨率圖像,最后送入檢測器網(wǎng)絡(luò)進(jìn)行檢測。然而,單幅圖像的平均檢測時(shí)間約為7 s,難以滿足實(shí)時(shí)檢測的要求。
上述工作從不同的角度提升遙感小目標(biāo)檢測性能,但檢測速度和精度的平衡還存在缺陷。本文提出基于改進(jìn)特征金字塔及生成對抗網(wǎng)絡(luò)融合的目標(biāo)檢測算法FPGAN-SSD。設(shè)計(jì)2個(gè)融合模塊替換特征金字塔(FPN)[9]中的上采樣結(jié)構(gòu),通過高層與低層網(wǎng)絡(luò)的跳躍連接,充分利用上下文的語義信息,增強(qiáng)檢測圖像的特征信息,提升SSD算法的檢測準(zhǔn)確率。為減少模型復(fù)雜度并縮短檢測時(shí)間,將ResNet50的基礎(chǔ)層特征映射劃分為兩部分,并使用Octave Convolution(OctConv)[10]替代傳統(tǒng)卷積,構(gòu)建 Tiny-ResNet50網(wǎng)絡(luò)。針對生成對抗網(wǎng)絡(luò)容易出現(xiàn)模式坍塌及難以收斂等問題,引入相對判別器DRa[11],避免生成器陷入某一特定特征。此外,使用感知損失、內(nèi)容損失及SSD算法的分類損失及回歸損失對生成器進(jìn)行約束。
Single Shot MultiBox Detector(SSD)[4]是一個(gè)單階段多尺度的檢測算法,該算法結(jié)合了YOLO的回歸思想,目標(biāo)分類和定位任務(wù)可以一起通過網(wǎng)絡(luò)前向傳播,從而直接進(jìn)行目標(biāo)檢測。與Faster R-CNN算法一樣,SSD算法也采用了Anchor boxes機(jī)制,在特征圖的各單元上設(shè)置了不同的先驗(yàn)框與目標(biāo)檢測框進(jìn)行偏差計(jì)算。SSD算法中基礎(chǔ)網(wǎng)絡(luò)延用VGG-16[12]模型,將兩個(gè)全連接層替換為conv6和conv7卷積層,并額外增加6個(gè)卷積層,用于對圖像特征進(jìn)一步提取。由此,SSD算法采用大小不同的特征圖進(jìn)行分類和回歸任務(wù),提升檢測的準(zhǔn)確率。
盡管SSD算法兼具了實(shí)時(shí)檢測速度和較高的檢測精度,但對遙感目標(biāo)檢測效果不佳。這是因?yàn)镾SD算法的conv4_3卷積層一般用于檢測小目標(biāo),但其作為淺層特征,感受野小且包含的語義信息少。而輸入的遙感小目標(biāo)具有輪廓模糊、特征信息少等問題,在conv4_3卷積層上的特征與空間信息丟失嚴(yán)重,導(dǎo)致漏檢率高。
生成對抗網(wǎng)絡(luò)GAN由GOODFELLOW等[13]于2014年提出,其網(wǎng)絡(luò)結(jié)構(gòu)由生成器Generator[13]和判別器Discriminator[13]組成。將生成器偽造的圖像送入判別器中進(jìn)行判斷,再將結(jié)果反饋回生成器中進(jìn)行網(wǎng)絡(luò)優(yōu)化,同時(shí)在生成器中加入隨機(jī)噪聲,使得生成的圖像具有多樣性。
目前卷積神經(jīng)網(wǎng)絡(luò)的每次卷積操作只能覆蓋像素點(diǎn)周圍很小的一塊鄰域,而且不能建立特征信息間的聯(lián)系。為此,大部分GAN都有共同的缺點(diǎn),即難以對包含多種類別的圖像捕捉其結(jié)構(gòu)、紋理、細(xì)節(jié)等高頻信息,因此無法清晰地分辨圖像類別。
針對SSD算法對遙感小目標(biāo)檢測精度不高的缺點(diǎn),提出一種基于改進(jìn)特征金字塔及生成對抗網(wǎng)絡(luò)的端到端檢測算法,定義為FPGAN-SSD。該算法主要分為兩個(gè)部分:一是基于改進(jìn)特征金字塔的生成對抗網(wǎng)絡(luò)FPGAN;二是目標(biāo)檢測算法SSD。FPGAN為SSD算法提供高清的圖像及豐富的細(xì)節(jié)特征,改進(jìn)遙感目標(biāo)由于分辨率低、特征模糊等導(dǎo)致漏檢率高的缺點(diǎn)。
生成器網(wǎng)絡(luò)采用以ResNet50作為主干網(wǎng)絡(luò)的特征金字塔結(jié)構(gòu),利用其多尺度特征融合的特點(diǎn)豐富語義信息,建立圖像的全局聯(lián)系。然而,ResNet50網(wǎng)絡(luò)層數(shù)多,與生成對抗網(wǎng)絡(luò)結(jié)合后,檢測速度大大降低,不能滿足實(shí)時(shí)檢測的要求,故本文引入OctConv替換普通卷積,并借鑒CSPNet重新構(gòu)建Tiny-ResNet50。網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 Tiny-ResNet50結(jié)構(gòu)Fig.1 Structure of Tiny-ResNet50
OctConv將卷積核分為高低頻兩部分。用高、低頻特征張量來存儲(chǔ)和處理空間分辨率較低且空間變化較慢的特征圖,從而降低了內(nèi)存和計(jì)算成本。因此,基于OctConv,BN層及ReLU激活函數(shù)重新設(shè)計(jì)OCBR塊。為提升精度,將ResNet的Input Stem部分替換為3個(gè)3×3的OCBR塊。
網(wǎng)絡(luò)中,梯度信息重復(fù)推理會(huì)導(dǎo)致計(jì)算量過大,因此,借鑒CSPNet的構(gòu)建,先把原始ResNet50中的Identity Block作為一個(gè)UNIT,然后與OCBR模塊進(jìn)行合并組成一個(gè)OCSP模塊。在減少了計(jì)算量的同時(shí)保證了準(zhǔn)確率。其中,OCSPx表示UNIT的個(gè)數(shù),s表示步長,C3,C4,C5為經(jīng)過多次卷積操作后得到的3個(gè)不同尺度的特征圖。
傳統(tǒng)特征金字塔結(jié)構(gòu)通常采用1×1卷積及上采樣實(shí)現(xiàn)特征信息的跨通道交互及融合,改變通道維數(shù)及特征尺寸的同時(shí),也會(huì)丟失部分信息。且高層特征只包含單一尺度的特征信息,需要更大的感受野來獲得更多的語義信息。
針對以上缺陷,本文設(shè)計(jì)了子像素跳接融合(Sub-pixel Shortcut Fusion,SSCF)模塊以及子像素上下文特征融合(Sub-pixel Context Feature Fusion,SCFF)模塊兩個(gè)組件。在具有豐富通道信息的高層特征圖中引入SSCF,使用子像素卷積替代線性上采樣和1×1卷積,減少信息損失。同時(shí),在最高層特征圖上構(gòu)建SCFF模塊,提取和集成不同的上下文信息。
2.2.1 子像素跳接融合
高層特征圖C4及C5包含豐富的語義信息,若采用1×1卷積來降低通道維度會(huì)導(dǎo)致信息嚴(yán)重丟失,故本文引入子像素跳接融合的方法。不同于一般的線性上采樣,子像素卷積Sub-Pixel Convolution[14]通過對通道尺寸進(jìn)行變換來增加寬度和高度??紤]到C4及C5分別有1024及2048個(gè)通道,因此,在不擴(kuò)充通道尺寸的情況下直接進(jìn)行子像素卷積。SSCF結(jié)構(gòu)見圖2。
圖2 SSCF整體結(jié)構(gòu)Fig.2 Overall structure of SSCF
如圖2所示,SSCF可以看作是C5到M4和C4到M3的2個(gè)額外的連接。SSCF替代線性上采樣和1×1通道融合,充分利用高層特征圖豐富的通道信息,增強(qiáng)了特征金字塔的表示能力。
融合后輸出的特征圖的數(shù)學(xué)表達(dá)式為
(1)
2.2.2 子像素上下文特征融合
本文采用了集成映射框架,并引入子像素上下文特征融合模塊(SCFF),在特征圖C5上利用更多的上下文信息和更大的感受野。最后將提取的上下文特征融合到集成特征圖I(Integrated Feature Map I)中。SCFF結(jié)構(gòu)見圖3。
圖3 SCFF結(jié)構(gòu)Fig.3 Structure of SCFF
如圖3所示,SCFF主要通過3個(gè)尺度進(jìn)行上下文特征融合。假設(shè)輸入特征圖C5的尺寸為2H×2W×8C,輸出的集成特征圖Ⅰ的尺寸為4H×4W×C,其中,通道C的大小為256。SCFF包含以下4個(gè)操作:1)采用3×3卷積提取C5的局部信息,并采用子像素卷積進(jìn)行雙尺度上采樣;2)通過3×3最大池化將輸入特征降采樣為H×W,并采用1×1卷積層擴(kuò)展信道維數(shù),接著采用子像素卷積進(jìn)行4倍上采樣;3)在C5上對全局上下文信息進(jìn)行全局平均池化,將1×1×8C的全局特征壓縮到1×1×C,接著將壓縮后的全局特征擴(kuò)展為4H×4W×C;4)通過元素求和將3個(gè)特征圖融合到集成特征圖I中。通過擴(kuò)展3個(gè)尺度的特征表示,SCFF有效地融合局部信息和全局上下文信息,擴(kuò)大了C5的感受野,提高了集成特征圖I的表征能力。
將上述特征金字塔網(wǎng)絡(luò),Tiny-ResNet50,GAN及SSD算法進(jìn)行融合,得到FPGAN-SSD結(jié)構(gòu)如圖4所示。
圖4 FPGAN-SSD結(jié)構(gòu)Fig.4 Structure of FPGAN-SSD
由圖4可以看出,遙感圖像首先以16為系數(shù)進(jìn)行降采樣生成低分辨率圖像(LR),再送入Tiny-ResNet50網(wǎng)絡(luò)中進(jìn)行特征提取,得到3個(gè)有效特征圖C3,C4,C5;然后對上層特征圖C5,C4及C4,C3兩兩進(jìn)行子像素跳接融合,減少通道壓縮所帶來的信息丟失;并將最高層特征圖C5進(jìn)行子像素上下文特征融合,改善了高低層融合過程中的信息衰減;接著由判別器網(wǎng)絡(luò)計(jì)算生成的超分辨率圖像(ISR)與原圖像之間的偏差,通過損失函數(shù)對生成器模型進(jìn)行調(diào)整;最后通過SSD算法進(jìn)行目標(biāo)檢測。
針對原始GAN難以收斂的問題,本文引入相對判別器DRa,當(dāng)生成圖像的預(yù)測概率上升時(shí),真實(shí)圖像的預(yù)測概率下降,從而達(dá)到平衡。生成器和相對判別器的對抗損失函數(shù)分別表示為
(2)
(3)
式中:IHR和ISR分別表示真實(shí)的高分辨率圖像和生成的超分辨率圖像;log(·)表示對數(shù)損失函數(shù);DRa=sigmoid(C(IHR)-C(ISR)),通過Sigmoid激活函數(shù)產(chǎn)生0或1的判別結(jié)果,即當(dāng)真實(shí)圖像和超分辨率圖像很接近時(shí),Sigmoid輸出為1,判斷為真。
除此之外,本文還采用了感知損失和內(nèi)容損失。由于網(wǎng)絡(luò)層數(shù)多,激活后的特征很稀疏,監(jiān)督能力差,因此采用激活前的特征值來計(jì)算感知損失,即
(4)
式中:rfea是預(yù)訓(xùn)練的Tiny-ResNet 50網(wǎng)絡(luò)在激活前的特征值;G(ILR)和IHR分別表示高分辨率圖像和真實(shí)圖像。
為保證生成器所生成的超分辨率圖像與原始圖像在內(nèi)容上不會(huì)有太大的偏差,引入內(nèi)容損失,即
L1=ELR||
G(LLR)-IHR||
1。
(5)
除上述損失外,還需通過目標(biāo)檢測網(wǎng)絡(luò)的損失反饋給生成器并做出調(diào)整,從而提高超分辨率圖像的質(zhì)量。目標(biāo)檢測算法SSD的損失主要包括分類損失(Lcls_SSD)及回歸損失(Lreg_SSD),即
Lcls_SSD=EILR[-log(softmax(Dcls_SSD(G(ILR)))]
(6)
Lreg_SSD=EILR[smoothL1(Dreg_SSD(G(ILR)))]
(7)
式中:softmax是置信度誤差損失;smoothL1是位置誤差損失;Dcls_SSD及Dreg_SSD分別代表了SSD算法的分類器和回歸器。
綜上所述,網(wǎng)絡(luò)的總損失主要由生成器網(wǎng)絡(luò)、判別器網(wǎng)絡(luò)及目標(biāo)檢測網(wǎng)絡(luò)的損失3部分組成,其表達(dá)式為
(8)
式中,λ,η及α均為調(diào)整系數(shù),通過調(diào)整參數(shù)以達(dá)到模型最優(yōu)的結(jié)果。
本文算法所使用的實(shí)驗(yàn)環(huán)境:硬件環(huán)境配置是顯卡GTX2080,處理器為i7-9700K,運(yùn)行內(nèi)存64 GiB。
實(shí)驗(yàn)使用的數(shù)據(jù)集為COCO2017數(shù)據(jù)集、UCAS-AOD航空遙感圖像數(shù)據(jù)集及HRSC2016遙感艦船公開數(shù)據(jù)集。首先訓(xùn)練FPGAN網(wǎng)絡(luò)直到收斂,接著根據(jù)生成的超分辨率圖像及FPGAN的權(quán)重訓(xùn)練FPGAN-SSD網(wǎng)絡(luò),通過SSD算法的分類和回歸損失對生成器網(wǎng)絡(luò)進(jìn)一步調(diào)整。在訓(xùn)練過程中,將學(xué)習(xí)率設(shè)置為0.000 1,并且每50次迭代后將學(xué)習(xí)率減半,批量大小(Batch_size)設(shè)置為8。
為評價(jià)算法的實(shí)驗(yàn)結(jié)果,對比本文算法與目前主流的檢測算法在COCO2017數(shù)據(jù)集及UCAS-AOD,HRSC2016數(shù)據(jù)集共同組成的遙感數(shù)據(jù)集上的結(jié)果。本文采用平均準(zhǔn)確率 (mAP),即各個(gè)類別AP的平均值來評價(jià)算法的性能[15]。首先計(jì)算查準(zhǔn)率與召回率,即
(9)
(10)
式中:PT表示預(yù)測為正樣本,且實(shí)際也為正樣本的個(gè)數(shù);PF表示預(yù)測為正樣本,而實(shí)際卻為負(fù)樣本的個(gè)數(shù);NF表示預(yù)測為負(fù)樣本,實(shí)際卻為正樣本的個(gè)數(shù)。
接著計(jì)算mAP為
(11)
式中:P(R)為查準(zhǔn)率;RRecall為召回率;m為類別數(shù)目。
此外,為評判檢測速度,采用每秒幀率(Frame Per Second),即每秒檢測圖片的數(shù)量作為評價(jià)標(biāo)準(zhǔn)。
3.2.1 COCO2017數(shù)據(jù)集實(shí)驗(yàn)結(jié)果及對比
COCO2017數(shù)據(jù)集包含80個(gè)類別,數(shù)據(jù)量龐大且小目標(biāo)多,適合對本文算法性能進(jìn)行驗(yàn)證??陀^評價(jià)如表1所示,加粗?jǐn)?shù)據(jù)表示指標(biāo)最高。
表1 COCO2017數(shù)據(jù)集檢測結(jié)果比較Table 1 Comparison of detection results of COCO2017 data set
由表1可知,目前的主流算法對小目標(biāo)檢測效果都不理想。其中,SSD算法的mAP為27.8%,但對小目標(biāo)檢測時(shí),mAP僅為10.9%。這是因?yàn)樾∧繕?biāo)像素低,在多層提取過程中容易丟失特征,而本文算法構(gòu)建的FPGAN-SSD算法將小目標(biāo)特征進(jìn)行超分辨率重建再送入SSD檢測,顯著提升了準(zhǔn)確率,mAP達(dá)到27.8%。相較于Cascade R-CNN及SNIP等多階段算法準(zhǔn)確率也有所提升,在檢測速度上相較SSD算法略有下降,但仍優(yōu)于雙階段及多階段檢測算法。檢測速度不佳的原因是COCO2017數(shù)據(jù)集上單幅圖像目標(biāo)多,重建耗費(fèi)的時(shí)間長。
3.2.2 遙感數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果及對比
UCAS-AOD數(shù)據(jù)集共910幅圖片,包含飛機(jī)和汽車兩個(gè)類別,且含有背景負(fù)樣本。HRSC2016數(shù)據(jù)集共1070幅圖片,目標(biāo)類別為艦船,分辨率從0.4 m到2 m不等。兩個(gè)數(shù)據(jù)集的共同特點(diǎn)是分辨率低及目標(biāo)受光照、環(huán)境影響大,因此將兩個(gè)數(shù)據(jù)集進(jìn)行整合,共同訓(xùn)練。客觀評價(jià)如表2所示,其中,指標(biāo)最高的數(shù)據(jù)加粗表示。
表2 遙感數(shù)據(jù)集檢測結(jié)果比較Table 2 Comparison of detection results of remote sensing data set
從結(jié)果來看,基于FPGAN-SSD算法的平均準(zhǔn)確率(mAP)達(dá)到81.7%,較SSD算法提高了35.04%,較DSSD513提升了4.48%,是所有算法里準(zhǔn)確率最高的。雖然每秒的檢測圖片數(shù)量只有13幅左右,不如SSD算法快,但能基本滿足實(shí)時(shí)性要求。且檢測精度的提升足以說明改進(jìn)后的方法效果更好。
主觀評價(jià)如圖5所示。
圖5 遙感數(shù)據(jù)集檢測結(jié)果對比Fig.5 Comparison of detection results of remote sensing data set
由圖5可知,在遙感圖像中,一些飛機(jī)及艦船等目標(biāo)體積小、模糊程度嚴(yán)重,若直接采用SSD算法進(jìn)行檢測會(huì)產(chǎn)生漏檢。可見,SSD算法對遙感圖像中的小目標(biāo)檢測效果不佳,而通過本文算法可以將目標(biāo)特征增強(qiáng),使檢測精度大大提升。
本文提出了一種基于FPGAN-SSD的遙感小目標(biāo)檢測算法。通過設(shè)計(jì)獨(dú)特的SSCF及SCFF結(jié)構(gòu),改進(jìn)原有的圖像特征金字塔,并結(jié)合Tiny-ResNet作為生成器的主干網(wǎng)絡(luò)。實(shí)驗(yàn)結(jié)果表明,通過超分辨率重建后的圖像具有清晰的輪廓和細(xì)節(jié)特征,改善了遙感小目標(biāo)模糊、特征信息少、受光照影響大等缺點(diǎn),檢測精度大大提升。盡管與SSD算法相比,檢測時(shí)間有所增加,但仍能保證實(shí)時(shí)的要求,且在遙感數(shù)據(jù)集上的mAP達(dá)到了81.7%。下一步將考慮對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行剪枝,減少模型參數(shù)量,應(yīng)用于機(jī)載等移動(dòng)端平臺(tái)。另一方面,擴(kuò)大數(shù)據(jù)庫范圍,實(shí)現(xiàn)對遙感目標(biāo)的精準(zhǔn)識(shí)別。