李在瑞, 鄭永果, 東野長(zhǎng)磊
(山東科技大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 山東 青島 266590)
近些年,隨著衛(wèi)星及遙感技術(shù)的發(fā)展,遙感圖像的目標(biāo)檢測(cè)在城市規(guī)劃、災(zāi)情救援、車輛監(jiān)控等各種實(shí)際應(yīng)用中起到了至關(guān)重要的作用[1]。 深度學(xué)習(xí)技術(shù)的迅速發(fā)展,使得目標(biāo)檢測(cè)有了重大突破,許多高性能的神經(jīng)網(wǎng)絡(luò)算法被提出[2]。 目前,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法可以大致分為二階段算法和一階段算法兩類,二階段算法專注于提升模型對(duì)目標(biāo)的檢測(cè)精度,一階段方法則在追求精度的基礎(chǔ)上又兼顧了檢測(cè)速度。
二階段算法的經(jīng)典模型是Fast R-CNN[3],其使用Region Proposal Network(RPN)來選擇對(duì)象的候選邊界框,隨后又進(jìn)一步篩選出較為準(zhǔn)確的目標(biāo)區(qū)域。 特征金字塔網(wǎng)絡(luò)(FPN)[4]使用類似金字塔的結(jié)構(gòu)來學(xué)習(xí)不同尺度的特征。 Tridentnet[5]通過引入擴(kuò)展卷積來改變大小最佳的感受野,并基于不同大小的感受野構(gòu)造多分支結(jié)構(gòu),從而解決多尺度檢測(cè)問題。 一階段模型中,SSD[6]增加了多個(gè)卷積層,以獲得多尺度特征圖進(jìn)行預(yù)測(cè),并設(shè)計(jì)不同大小的先驗(yàn)邊界框以更好地檢測(cè)目標(biāo)。 YOLOv4[7]采用了更為高效的csp-darknet 作為主干網(wǎng)絡(luò)并設(shè)計(jì)多尺度預(yù)測(cè)。 TPH-YOLOv5[8]則將Transformer 與網(wǎng)絡(luò)相結(jié)合,增強(qiáng)模型提取特征的能力。
以上算法雖然在識(shí)別自然圖像時(shí)都表現(xiàn)出了良好的效果,但由于遙感圖像存在背景復(fù)雜、目標(biāo)尺度變化范圍大、物體分布密集等檢測(cè)難題[9],通用目標(biāo)檢測(cè)算法對(duì)高分辨率遙感圖像的檢測(cè)具有很大的局限性[10]。 為解決上述問題,本文基于YOLOv5 框架,提出特征信息補(bǔ)充與加強(qiáng)以及多尺度融合的方法,以增強(qiáng)模型的檢測(cè)能力。
隨著YOLO 系列網(wǎng)絡(luò)的提出,其在各種視覺檢測(cè)任務(wù)中展現(xiàn)了出色的性能。 其中,YOLOv5 主干網(wǎng)絡(luò)是由Focus 模塊、CSP 結(jié)構(gòu)以及SPP 模塊組合而成。 Focus 模型會(huì)對(duì)圖片進(jìn)行切片操作,在寬和高兩個(gè)維度上每隔一個(gè)像素取一個(gè)值,從而使特征圖的通道數(shù)變?yōu)樵瓉淼? 倍,能夠在最大程度減少信息損失的同時(shí)實(shí)現(xiàn)兩倍下采樣。 YOLOv5 在CSPNet[11]的基礎(chǔ)上重新設(shè)計(jì)csp 結(jié)構(gòu),并在原本的darknet 網(wǎng)絡(luò)中大量插入該結(jié)構(gòu)。 spp 模塊對(duì)特征圖做不同大小的池化操作,從而在原特征圖的基礎(chǔ)上融合不同感受野,豐富上下文信息[12]。
YOLOv5 在Nick 部分結(jié)構(gòu)參考了FPN 和PAN。首先,設(shè)計(jì)自頂向下路徑來融合網(wǎng)絡(luò)中不同層次的特征,將包含豐富語義信息的深層特征向下傳遞與淺層結(jié)合,能夠提高模型對(duì)多尺度目標(biāo)的檢測(cè)能力;后又增加自底向上的金字塔結(jié)構(gòu),把淺層特征映射到深層網(wǎng)絡(luò),補(bǔ)充檢測(cè)目標(biāo)的細(xì)節(jié)及空間信息,進(jìn)一步提升模型的檢測(cè)效果。 同時(shí),在nick 部分應(yīng)用csp2_x 結(jié)構(gòu),使用X個(gè)卷積模塊替代殘差單元。
Head 部分則對(duì)圖片進(jìn)行預(yù)測(cè)與分類,YOLOv5 設(shè)計(jì)3 種尺寸的特征圖來檢測(cè)大中小不同種類的目標(biāo),最后通過非極大值抑制來篩選預(yù)測(cè)框,實(shí)現(xiàn)檢測(cè)過程。
Transformer 模塊早先廣泛應(yīng)用于NLP 領(lǐng)域,通過自注意力機(jī)制來捕獲序列元素之間的依賴關(guān)系,在可并行性和特征提取方面展現(xiàn)了出色的性能[13]。近些年來,許多計(jì)算機(jī)視覺的學(xué)者開始將其作用于圖像相關(guān)的研究上。 Parmar 等人提出 Image Transformer[14]算法,基于Transformer 解碼器用于圖像生成任務(wù);隨后Vision Transformer[15]被提出,并首次在大型圖像數(shù)據(jù)集上展現(xiàn)出超越卷積網(wǎng)絡(luò)的性能,在圖像分類方面具有較強(qiáng)的泛化能力;Swin Transformer[16]則采用移動(dòng)窗口的機(jī)制來計(jì)算注意力,有效解決了傳統(tǒng)Transformer 模塊中計(jì)算復(fù)雜度較高的問題,并通過不同窗口之間的特征交互提取到更為豐富的語義信息。
Transformer 由編碼器和解碼器兩部分組成,基本原理是通過將圖片展開成一維,得到圖像特征張量,輸入到編碼器部分使用多頭自注意力學(xué)習(xí)目標(biāo)特征,增強(qiáng)圖像中目標(biāo)的語義信息,再利用解碼器與解碼器協(xié)同訓(xùn)練,學(xué)習(xí)注意力規(guī)律來強(qiáng)化目標(biāo)和特征之間的關(guān)聯(lián)關(guān)系,進(jìn)而提升檢測(cè)效果。
R-YOLOv5 目標(biāo)檢測(cè)算法結(jié)構(gòu)如圖1 所示。 首先,在YOLOv5 的主干網(wǎng)絡(luò)CSPDarkNet 中使用跨階段局部擴(kuò)張結(jié)構(gòu),替代原本的跨階段局部網(wǎng)絡(luò)結(jié)構(gòu);其次,在主干網(wǎng)絡(luò)的輸出特征圖瓶頸部分結(jié)合Transformer 模塊中的編碼器;最后,在原本的Nick部分嵌入多尺度特征融合模塊。
跨階段局部網(wǎng)絡(luò)結(jié)構(gòu)(Cross Stage Partial Structure,CSP)被大量應(yīng)用到Y(jié)OLOv4 的主干網(wǎng)絡(luò),YOLOv5 又在v4 的基礎(chǔ)上將其與nick 部分結(jié)合。CSP 結(jié)構(gòu)包括兩個(gè)分支:一是將輸入特征圖進(jìn)行X個(gè)殘差單元的卷積操作,另一部分進(jìn)行簡(jiǎn)單的3*3卷積計(jì)算特征后,與上一分支結(jié)合。 CSP 結(jié)構(gòu)能夠增強(qiáng)網(wǎng)絡(luò)的特征提取能力,使模型獲取到更為豐富的語義信息。
針對(duì)遙感圖像中檢測(cè)目標(biāo)尺度變化較大,物體分布密集的特性,對(duì)CSP 結(jié)構(gòu)進(jìn)行改進(jìn),提出跨階段局部擴(kuò)張結(jié)構(gòu)( Cross Stage Partial Dilated Structure,CSPD),如圖2 所示。 首先,保持殘差單元分支不變,在另一分支中使用6 個(gè)連續(xù)的擴(kuò)張卷積,擴(kuò)張率分別為3、6、12、18、24,來獲取同一特征圖的不同感受野,從而覆蓋遙感圖像中各種不同尺度的檢測(cè)對(duì)象。
圖2 跨階段局部擴(kuò)張模塊結(jié)構(gòu)圖Fig.2 Cross Stage Partial Dilated module
其次,當(dāng)圖像中目標(biāo)分布較為緊密時(shí),使用擴(kuò)張卷積會(huì)丟失特征信息,為了避免檢測(cè)對(duì)象的漏檢現(xiàn)象,在連續(xù)的6 個(gè)擴(kuò)張卷積基礎(chǔ)上采用密集連接結(jié)構(gòu),將原特征圖與每層的卷積分別做逐個(gè)元素的加操作,從而加強(qiáng)特征的傳播,豐富語義信息。
YOLOv5 主干網(wǎng)絡(luò)分別輸出3 個(gè)不同層次大小的特征圖,作為后續(xù)多尺度特征融合部分的輸入。將主干網(wǎng)絡(luò)中負(fù)責(zé)輸出特征圖的瓶頸(Bottleneck)部分與Transformer 模塊中的編碼器相結(jié)合(如圖3所 示), 提 出 瓶 頸 Transformer 結(jié) 構(gòu)( TR -Bottleneck),提高模型對(duì)語義信息的提取能力,豐富圖像全局信息,抑制背景對(duì)目標(biāo)識(shí)別的影響。
圖3 瓶頸Transformer 模塊結(jié)構(gòu)圖Fig.3 Transformer bottleneck module
首先,將圖片做切分并降低維度,即將原本H*W*C的圖像變?yōu)镹*(P2*C) 的Tokens,其中隨后輸入Encoder 中的多頭注意力機(jī)制,進(jìn)一步做特征提取,如式(1)所示:
式中:Q、K、V分別為輸入多頭注意力的查詢向量、鍵向量、值向量,dk代表特征維度。 將查詢向量與鍵向量相乘后,經(jīng)過softmax 激活函數(shù)并歸一化處理,再與V相乘加權(quán),得到輸出結(jié)果。
最后輸入由兩個(gè)全連接層及激活函數(shù)組成的MLP(前饋神經(jīng)網(wǎng)絡(luò))得到整個(gè)Transformer 模塊的輸出特征,并與Bottlenck 結(jié)構(gòu)的特征信息結(jié)合。
YOLOv5 輸出的3 種尺寸的特征圖,分別對(duì)應(yīng)大中小不同的檢測(cè)對(duì)象,高層語義信息中檢測(cè)大目標(biāo),低層語義信息中檢測(cè)小目標(biāo),而遙感圖像中往往既有大目標(biāo)又有小目標(biāo)。 特征融合時(shí),由于不同層間特征的不一致性,將會(huì)影響最后的檢測(cè)結(jié)果。 為了緩解上述問題,更好的讓網(wǎng)絡(luò)利用高低層語義信息,在nick部分的最后,嵌入多尺度特征融合模塊(Multi Scale Feature Fusion Module,MSF),如圖4 所示。
圖4 多尺度特征融合模塊結(jié)構(gòu)圖Fig.4 Multi-scale feature fusion module
首先將3 種尺寸的特征圖進(jìn)行采樣操作,調(diào)整到同一尺寸;再根據(jù)通道維度整合并接入SoftMax函數(shù)生成權(quán)重參數(shù);最后3 層特征分別乘上各自的權(quán)重參數(shù),得到融合后的特征,表達(dá)如式(2)所示:
式中:x1、x2、x3分別為3 種尺寸的特征圖,cat表示對(duì)特征圖做通道維度的整合, ?表示點(diǎn)乘操作,f則為最終的輸出特征。
實(shí)驗(yàn)在linux 系統(tǒng)下進(jìn)行,所用GPU 為Tesla P100,顯存16 G,深度學(xué)習(xí)框架為pytorch。 實(shí)驗(yàn)所用遙感數(shù)據(jù)集為DIOR,其中包括23 463 張圖像,訓(xùn)練與測(cè)試各取一半的樣本。
實(shí)驗(yàn)采用平均精度均值(mAP)、平均精確率(AP) 作為評(píng)估指標(biāo),AP和mAP是可以反映多類別目標(biāo)全局檢測(cè)精度的指標(biāo)在文獻(xiàn)中被廣泛用于評(píng)估多類別目標(biāo)檢測(cè)性能表達(dá)如式(2)、(3)所示:
其中,平均精度AP表示的是計(jì)算單類目標(biāo)P - R曲線下面積的結(jié)果,p為精確率,R為召回率;而mAP是所有類別AP的平均值;N為檢測(cè)目標(biāo)的類別總數(shù);APi表示第i個(gè)類別的平均檢測(cè)精度。
如圖5 所示,R-YOLOv5 算法首先對(duì)輸入的遙感圖像進(jìn)行預(yù)處理,擴(kuò)展圖像數(shù)據(jù);其次,根據(jù)模型配置文件搭建網(wǎng)絡(luò)結(jié)構(gòu),讀取訓(xùn)練參數(shù),并根據(jù)訓(xùn)練結(jié)果更新網(wǎng)絡(luò)參數(shù);最后,加載訓(xùn)練權(quán)重與測(cè)試數(shù)據(jù)集,輸出模型的預(yù)測(cè)圖像。
圖5 R-YOLOv5 算法流程圖Fig.5 R-YOLOv5 algorithm flowchart
表1 為本文算法R-YOLOv5 與不同目標(biāo)檢測(cè)模型在DIOR 數(shù)據(jù)集下的實(shí)驗(yàn)結(jié)果。 其中包括一階段模型Faster-RCNN,以SSD、RetinaNet、YOLOv4 為代表的二階段模型,及無錨方法YOLOX。
表1 DIOR 數(shù)據(jù)集下對(duì)比試驗(yàn)Tab.1 Results on Dior dataset %
由表1 可知,R-YOLOv5 對(duì)飛機(jī)、機(jī)場(chǎng)、船、橋、車輛等密集分布、大小尺度不一目標(biāo)的精度均有不同程度的提高,具有良好的表現(xiàn)。
圖6 所示為R-YOLOv5 對(duì)密集分布、大小尺度不一目標(biāo)的效果圖。 這兩種情況在檢測(cè)過程中都較易對(duì)目標(biāo)錯(cuò)檢或漏檢,模型識(shí)別的難度較大。 如圖6(a)、(b)中飛機(jī)與油罐的分布較為密集,模型對(duì)此類目標(biāo)能夠較為全面的做出識(shí)別;圖6(c)、(d)中車輛與橋梁、棒球場(chǎng)與網(wǎng)球場(chǎng)等各類物體的尺度變化給模型帶來了檢測(cè)難題,結(jié)果表明,R-YOLOv5 可以較為準(zhǔn)確的檢測(cè)出目標(biāo)對(duì)象。
圖6 R-YOLOv5 檢測(cè)結(jié)果Fig.6 R-YOLOv5 detection result
基于高分辨率遙感圖像存在檢測(cè)對(duì)象密集度高、大小不一等問題。 本文提出R-YOLOv5 算法,通過擴(kuò)大感受野和增強(qiáng)特征信息以及改善特征融合來提高模型對(duì)密集物體以及多尺度目標(biāo)的檢測(cè)精度。 實(shí)驗(yàn)表明,本文提出的目標(biāo)檢測(cè)算法在遙感數(shù)據(jù)集上具有較好的識(shí)別能力。