李惠惠,范軍芳,陳啟麗
(1 北京信息科技大學(xué)高動(dòng)態(tài)導(dǎo)航技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100192;2 北京信息科技大學(xué)自動(dòng)化學(xué)院,北京 100192)
遙感圖像包括車輛、飛機(jī)等敏感目標(biāo),因此基于遙感圖像的目標(biāo)檢測(cè)在城市管理,國(guó)防安全等領(lǐng)域具有重要意義。通過遙感圖像進(jìn)行目標(biāo)檢測(cè)的首要目的,在于找出其中的特定目標(biāo)并準(zhǔn)確識(shí)別出目標(biāo)的具體類別。但是遙感圖像普遍存在目標(biāo)密集、目標(biāo)遮擋、背景復(fù)雜等難題,降低了目標(biāo)檢測(cè)與識(shí)別的準(zhǔn)確率。由于小目標(biāo)覆蓋面積小、像素面積占比少、特征表達(dá)不充分、拍攝距離較遠(yuǎn)、圖像覆蓋范圍較大等特點(diǎn),俯瞰角度拍攝導(dǎo)致的目標(biāo)形態(tài)畸變,使得基于遙感圖像的小目標(biāo)檢測(cè)具有更大挑戰(zhàn)。因此提高遙感圖像的小目標(biāo)檢測(cè)精度是一個(gè)具有較高研究?jī)r(jià)值的方向。
傳統(tǒng)的遙感圖像目標(biāo)檢測(cè)方法一般采用滑動(dòng)窗口進(jìn)行區(qū)域選擇,再利用尺度不變特征變換等方法對(duì)目標(biāo)進(jìn)行特征提取,最后選用機(jī)器學(xué)習(xí)方法進(jìn)行分類,存在識(shí)別準(zhǔn)確率低、檢測(cè)速度慢、泛化能力較差,在復(fù)雜背景下檢測(cè)效果不佳。目前,卷積神經(jīng)網(wǎng)絡(luò)已成為目標(biāo)檢測(cè)與識(shí)別的主要方向?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)算法主要包含兩類:一類是雙階段的目標(biāo)檢測(cè)算法,如Faster R-CNN、Mask R-CNN等;另一類是單階段的目標(biāo)檢測(cè)算法,如SSD、YOLO系列等。YOLOv3是2018年 Redmon等提出的,使用圖片的全局區(qū)域進(jìn)行訓(xùn)練,能夠?qū)⒛繕?biāo)和背景更好的區(qū)分。張?jiān)5纫訷OLOv3為基礎(chǔ),提出了多尺度特征稠密連接的遙感圖像目標(biāo)檢測(cè)模型YOLO-RS,保留了圖像更多的目標(biāo)信息,提高了不同尺度的特征層之間的信息交互。在2020年4月,Bochkovskiy等在YOLOv3的基礎(chǔ)上提出了YOLOv4,新增CSP和PAN結(jié)構(gòu),并且采用了一些實(shí)用的技巧實(shí)現(xiàn)了檢測(cè)速度和精度的權(quán)衡。余培東等在YOLOv4的基礎(chǔ)上嵌入SE模塊,根據(jù)待檢測(cè)目標(biāo)尺度特點(diǎn)調(diào)整錨點(diǎn)框,平均準(zhǔn)確率得到了顯著提升。2020年6月,Ultralytics公司開源了新的目標(biāo)檢測(cè)網(wǎng)絡(luò)框架YOLOv5,總體架構(gòu)和YOLOv4類似,在細(xì)節(jié)上進(jìn)行了改進(jìn),在檢測(cè)速度和精度上都更勝一籌。但目前主流的深度學(xué)習(xí)算法隨著卷積網(wǎng)絡(luò)的加深,感受野緩慢增長(zhǎng),容易被大目標(biāo)主導(dǎo),而小目標(biāo)在檢測(cè)器提取的特征較少,在整個(gè)學(xué)習(xí)過程中容易被忽略,從而不能發(fā)揮其最優(yōu)效果。因此提出一種基于YOLOv5的改進(jìn)算法,并通過實(shí)驗(yàn)驗(yàn)證了該算法的優(yōu)越性。
YOLOv5算法由輸入端、主干網(wǎng)絡(luò)、Neck網(wǎng)絡(luò)和輸出端4個(gè)部分組成。其網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示。
圖1 YOLOv5結(jié)構(gòu)圖
YOLOv5的輸入端采用和YOLOv4一樣的Mosaic數(shù)據(jù)增強(qiáng)。其主要原理是:選定1張圖片和隨機(jī)3張圖片進(jìn)行隨機(jī)裁剪,再拼接成一張圖片作為訓(xùn)練集圖片送入神經(jīng)網(wǎng)絡(luò)。這樣不僅可以豐富數(shù)據(jù)集的背景,提高系統(tǒng)的魯棒性,而且減少了GPU內(nèi)存的損耗,加快了網(wǎng)絡(luò)的訓(xùn)練速度。
YOLOv5的主干網(wǎng)絡(luò)是CSPDarknet53,主干網(wǎng)絡(luò)包括Focus結(jié)構(gòu)、CSP1_X結(jié)構(gòu)、SPP模塊等。其中Focus結(jié)構(gòu)主要用來進(jìn)行切片操作,在不損失任何信息的情況下通過增加特征圖的維度來縮小特征圖的尺寸,目的是為了使特征圖在每一個(gè)特征信息沒有變化的前提下增加圖像的特征數(shù)。骨干網(wǎng)絡(luò)采用CSP1_X結(jié)構(gòu),加入殘差結(jié)構(gòu)后在進(jìn)行反向傳播,加強(qiáng)了特征融合能力并有效防止了梯度消失。SPP模塊采用4種尺寸最大池化操作,然后進(jìn)行Concat合并組合,能夠增大特征網(wǎng)絡(luò)的感受野,有效分離特征信息,最終將輸出恢復(fù)到同初始輸入一致。
Neck網(wǎng)絡(luò)采用FPN結(jié)合PAN的結(jié)構(gòu),加強(qiáng)了網(wǎng)絡(luò)的特征融合能力,F(xiàn)PN結(jié)構(gòu)利用上采樣的方式提高對(duì)小目標(biāo)的測(cè)試能力。PAN結(jié)構(gòu)使底層的定位信息更好地傳遞到頂層。兩個(gè)結(jié)構(gòu)相融合,提高了對(duì)遮擋目標(biāo)的測(cè)試效果。
YOLOv5以GIOU_Loss做為損失函數(shù),數(shù)值越小,代表預(yù)測(cè)結(jié)果越好,改善了模型預(yù)測(cè)效果。網(wǎng)絡(luò)采用加權(quán)非極大值抑制對(duì)多個(gè)目標(biāo)框進(jìn)行篩選,保留最優(yōu)目標(biāo)框,提高了目標(biāo)識(shí)別的準(zhǔn)確性。
文中提出的算法是在YOLOv5網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行改進(jìn)的,網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2所示。下面分別從聚類優(yōu)化錨框尺寸、優(yōu)化特征提取器和引入卷積注意力機(jī)制3個(gè)方面進(jìn)行詳細(xì)介紹。
圖2 改進(jìn)的YOLOv5結(jié)構(gòu)圖
在不增加訓(xùn)練成本的前提下,為了使原始數(shù)據(jù)集中的數(shù)據(jù)更好的滿足訓(xùn)練需求,需要對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理。YOLOv5模型中的初始錨框是由COCO數(shù)據(jù)集設(shè)計(jì)生成的9個(gè)錨框,涵蓋了大小不同的目標(biāo),并且目標(biāo)大小的差距很大。為了更精確識(shí)別小目標(biāo),需要對(duì)數(shù)據(jù)集中目標(biāo)邊界框進(jìn)行尺寸優(yōu)化。實(shí)驗(yàn)訓(xùn)練的數(shù)據(jù)集大多數(shù)都是小目標(biāo),針對(duì)存在的問題,采用車輛和飛機(jī)的數(shù)據(jù)集做目標(biāo)檢測(cè),部分錨框的設(shè)計(jì)并不是最合理,因此需要聚類優(yōu)化錨框尺寸,盡可能增加先驗(yàn)框與實(shí)際目標(biāo)框的匹配度,使其與訓(xùn)練的數(shù)據(jù)集更加匹配。在數(shù)據(jù)集進(jìn)行聚類,以矩形框的平均交并比作為相似度對(duì)車輛和飛機(jī)的所有標(biāo)注目標(biāo)進(jìn)行訓(xùn)練,使得數(shù)據(jù)集得到最合適的錨框,提高了YOLOv5算法測(cè)試性能。
原始圖像經(jīng)過8倍、16倍、32倍下采樣后送到特征融合網(wǎng)絡(luò)在檢測(cè)層得到13×13小尺寸、26×26中尺寸、52×52大尺寸的特征圖,3種尺寸的特征圖用來檢測(cè)不同大小的目標(biāo),原始特征提取模型如圖3所示。
圖3 原始YOLOv5特征提取模型
在卷積神經(jīng)網(wǎng)絡(luò)中,深層卷積得到的特征圖語(yǔ)義信息豐富,但是會(huì)丟失位置信息,且對(duì)目標(biāo)的位置信息不夠精確,因此在原始算法的基礎(chǔ)上增加下采樣,有利于小目標(biāo)的檢測(cè)。原始圖像經(jīng)過4倍、8倍、16倍、32倍下采樣后送到特征融合網(wǎng)絡(luò)得到13×13小尺寸、26×26中尺寸、52×52大尺寸以及新尺寸的特征圖,4種尺寸的特征圖用來檢測(cè)不同大小的目標(biāo),改進(jìn)后的模型如圖4所示。本次改進(jìn)得到的新尺寸特征圖,有利于更好的學(xué)習(xí)目標(biāo)特征,使得檢測(cè)的目標(biāo)位置更加準(zhǔn)確,特征圖感受野更小,提升目標(biāo)檢測(cè)效果。
圖4 改進(jìn)后的特征提取模型
注意力機(jī)制能夠聚焦圖像的局部信息,針對(duì)不同部分的特征圖賦予不同的權(quán)重,獲取感興趣的信息,抵制無用信息。為了使模型獲取更優(yōu)特征,本文引入輕量的卷積注意力模塊(convolutional block attention module, CBAM),其網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。在卷積神經(jīng)網(wǎng)絡(luò)任意給定一個(gè)中間特征圖,CBAM會(huì)分別沿著通道和空間兩個(gè)獨(dú)立的維度推斷注意力圖,然后將注意力與輸入特征映射相乘來進(jìn)行特征的自適應(yīng)細(xì)化。為了更加關(guān)注感興趣區(qū)域,特別是受遮擋的目標(biāo),在主干網(wǎng)絡(luò)引入卷積注意力機(jī)制,強(qiáng)化了目標(biāo)特征,提高了目標(biāo)的檢測(cè)精度。
圖5 CBAM網(wǎng)絡(luò)結(jié)構(gòu)圖
使用Google Earth軟件對(duì)車輛和飛機(jī)的圖像進(jìn)行截取,包括目標(biāo)密集、目標(biāo)遮擋、背景復(fù)雜的遙感圖像。自制數(shù)據(jù)集共包含1 000張圖片,其中包含500張車輛圖片和500張飛機(jī)圖片,訓(xùn)練集、測(cè)試集、驗(yàn)證集劃分比例為8∶1∶1。對(duì)數(shù)據(jù)集進(jìn)行YOLO格式的標(biāo)注,使用VOC數(shù)據(jù)集進(jìn)行訓(xùn)練測(cè)試。數(shù)據(jù)集的可視化結(jié)果如圖6所示,分別為數(shù)據(jù)集類別、數(shù)據(jù)集物體中心點(diǎn)位置分布、數(shù)據(jù)集分布大小。
圖6 數(shù)據(jù)集的可視化結(jié)果
實(shí)驗(yàn)在Win10 系統(tǒng),i7-10750H CPU、NVIDIA GTX 2060 顯卡下,使用Python 語(yǔ)言以Pytorch框架搭建運(yùn)行環(huán)境,并使用CUDA 10.1以及對(duì)應(yīng)的CUDNN 添加到環(huán)境中使用GPU提高計(jì)算效率。
準(zhǔn)確率是指預(yù)測(cè)為正的樣本中是真正的正樣本的比例,計(jì)算方式為:
(1)
式中:為指被分配正確的正樣本;為被錯(cuò)誤分配的正樣本。
召回率為指樣本中的正樣本被預(yù)測(cè)正確的比例,計(jì)算方式為:
(2)
式中:為被分配正確的正樣本;為被錯(cuò)誤分類的負(fù)樣本。
(3)
(4)
實(shí)驗(yàn)的參數(shù)配置如表1所示。
表1 參數(shù)設(shè)置
圖7 模型的mAP曲線
圖8 模型的損失函數(shù)
為了驗(yàn)證改進(jìn)算法的有效性,對(duì)比了YOLOv3、YOLOv4、Faster-RCNN、YOLOv5以及改進(jìn)的YOLOv5,得到的對(duì)比結(jié)果如表2所示。
表2 不同算法檢測(cè)結(jié)果對(duì)比
為了進(jìn)一步證明改進(jìn)算法的優(yōu)越性,將在不同場(chǎng)景下對(duì)比原始YOLOv5和改進(jìn)YOLOv5的檢測(cè)效果,對(duì)比結(jié)果如圖9~圖12所示。其中,圖9(a)~圖12(a)為原始算法的檢測(cè)效果,圖9(b)~圖12(b)為改進(jìn)后算法的檢測(cè)效果。從圖9~圖12可以看出,圖9中原始算法在檢測(cè)遮擋目標(biāo)時(shí),存在漏檢;圖10中原始算法在目標(biāo)與背景相似時(shí),出現(xiàn)漏檢;圖11中原始算法出現(xiàn)了誤檢;圖12中原始算法在邊界區(qū)域且存在遮擋的飛機(jī)目標(biāo)出現(xiàn)漏檢。而改進(jìn)后的算法彌補(bǔ)了這些不足,比原始算法具有更好的魯棒性和抗干擾能力。
圖9 車輛目標(biāo)密集場(chǎng)景
圖10 車輛背景相對(duì)復(fù)雜
圖11 飛機(jī)遠(yuǎn)距離且存在負(fù)樣本
圖12 飛機(jī)遮擋且目標(biāo)密集場(chǎng)景
將以原始模型YOLOv5在預(yù)處理中加入下采樣算法的YOLOv5+下采樣,使用聚類算法的YOLOv5+聚類,使用CBAM模塊的YOLOv5+ CBAM以及提出的算法進(jìn)行對(duì)比實(shí)驗(yàn),得到的結(jié)果如表3所示。
表3 YOLOv5和改進(jìn)的YOLOv5檢測(cè)結(jié)果對(duì)比
通過表3可知,在YOLOv5中使用聚類算法,對(duì)目標(biāo)邊界框進(jìn)行優(yōu)化,相對(duì)原始算法,mAP、Precision、Recall分別提升0.7%、3.8%、3.3%,驗(yàn)證了聚類算法提高目標(biāo)檢測(cè)的準(zhǔn)確度;在YOLOv5中引入下采樣,在檢測(cè)層增加新尺度特征,相對(duì)原始算法,mAP、Precision、Recall分別提升1.0%、3.8%、3.0%,驗(yàn)證了下采樣能更加關(guān)注小目標(biāo)的信息,提高小目標(biāo)檢測(cè)精度;在YOLOv5中引入CBAM注意力機(jī)制,對(duì)無用信息進(jìn)行抑制,更加關(guān)注目標(biāo)信息,相對(duì)原始算法mAP、Precision、Recall分別提升1.1%、4.1%、3.3%,驗(yàn)證了引入卷積注意力機(jī)制可提高目標(biāo)檢測(cè)性能;在YOLOv5中同時(shí)引入CBAM注意力機(jī)制、聚類算法、下采樣,相對(duì)原始算法,mAP、Precision、Recall分別提升2.2%、4.3%、4.4%,驗(yàn)證了提出的算法更有效。
針對(duì)遙感圖像小目標(biāo)檢測(cè)存在的目標(biāo)密集、背景復(fù)雜、存在負(fù)樣本等問題,提出了一種改進(jìn)YOLOv5遙感圖像小目標(biāo)檢測(cè)算法,該算法對(duì)錨框尺寸進(jìn)行優(yōu)化,使得到的每個(gè)錨框大小更準(zhǔn)確,有效提升YOLOv5算法測(cè)試性能。通過增加卷積注意力機(jī)制,更加關(guān)注感興趣區(qū)域,抑制無用信息,抑制復(fù)雜背景對(duì)目標(biāo)識(shí)別的干擾。通過增加下采樣,有利于更好的學(xué)習(xí)目標(biāo)特征,使得檢測(cè)的目標(biāo)位置更加準(zhǔn)確。本算法檢測(cè)性能最好,對(duì)于存在遮擋場(chǎng)景的目標(biāo)也可以準(zhǔn)確的檢測(cè),相對(duì)其他算法具有優(yōu)越性。接下來我們將對(duì)網(wǎng)絡(luò)進(jìn)行壓縮,剪枝等處理,對(duì)模型進(jìn)行輕量化,能夠更好的移植到嵌入式平臺(tái)。