卜薈力
(安徽理工大學(xué) 計算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
目標(biāo)檢測是計算機(jī)視覺領(lǐng)域最重要和最具有挑戰(zhàn)性的分支之一,其作為場景理解的重要組成部分,已經(jīng)被廣泛地應(yīng)用于人們的日常生活當(dāng)中,如安全監(jiān)控、自動駕駛等。而遙感圖像檢測作為目標(biāo)檢測的一個前沿和熱點(diǎn),它在資源勘探、自然災(zāi)害評估、軍事目標(biāo)檢測和識別等領(lǐng)域具有重要的意義。近年來,隨著空間遙感技術(shù)的飛速發(fā)展,高分辨率、大尺度遙感影像數(shù)據(jù)的不斷豐富。獲取遙感圖像不再像以前一樣困難。遙感目標(biāo)檢測是在遙感圖像中找到感興趣目標(biāo)的具體位置并識別其類別,然而,由于遙感影像背景非常復(fù)雜,并且大多數(shù)遙感目標(biāo)都是密集小目標(biāo),因此傳統(tǒng)的基于機(jī)器學(xué)習(xí)的遙感檢測方法的結(jié)果往往不能令人滿意。自2012年Krizhcvsky 等人提出AlexNe這種深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)模型以來,深度學(xué)習(xí)在計算機(jī)視覺領(lǐng)域掀起了一股熱潮。目前廣泛使用的基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測方法主要分為兩類:第一類是“兩階段”法,將目標(biāo)檢測分為檢測和識別兩個階段,首先通過算法在圖像中找到感興趣的區(qū)域,然后識別區(qū)域目標(biāo),如RCNN、Fast R-CNN、Faster R-CNN、Mask R-CNN等。第二類是“一階段”法,利用回歸思想同時完成檢測和識別,實現(xiàn)端到端的檢測和識別,如YOLOv3、SSD等。
針對目前遙感圖像檢測中存在的難點(diǎn),很多學(xué)者做了大量的研究工作,在檢測方法和特征提取網(wǎng)絡(luò)結(jié)構(gòu)上均有不同程度的改進(jìn)。李婕等人提出結(jié)合平行層特征共享結(jié)構(gòu)和注意力機(jī)制的遙感飛機(jī)目標(biāo)自動檢測模型AFF-CenterNet,有效提高了算法的特征提取能力。周雪柯等人在Faster-RCNN 模型中引入注意力機(jī)制,使用SE 模塊校準(zhǔn)特征通道權(quán)重,使用較低的計算成本獲得了顯著的性能提升。YE 等人提出ASFF(Adaptively Spatial Feature Fusion)特征融合模塊對信息流進(jìn)行篩選,以獲得對檢測有用的信息。
本文選擇在YOLOv3 的基礎(chǔ)上進(jìn)行改進(jìn),其核心思想在于端到端完成整個物體檢測的過程,其在YOLOv1 和YOLOv2 的基礎(chǔ)上做了大量改進(jìn),使得檢測精度和速度都有了顯著提升。經(jīng)實驗對比證明,改進(jìn)后算法與原YOLOv3算法相比檢測效果明顯得以提升。
YOLO 的全稱是You Only Look Once,是Redmon 在2016年提出的一種目標(biāo)檢測算法。不同于R-CNN 將檢測過程分為物體分類和定位兩部分,YOLO 算法的本質(zhì)是將目標(biāo)檢測問題處理成回歸問題,用單個卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)預(yù)測邊界框和類別概率,比其他算法速度更快。它可以從圖像中檢測物體的類別信息和位置信息,檢測速度達(dá)到45FPS。但一開始的YOLO 算法定位誤差嚴(yán)重,檢測精度不高。后續(xù)的YOLOv2 算法采用一系列方法優(yōu)化YOLO 網(wǎng)絡(luò)模型結(jié)構(gòu),進(jìn)一步提高了檢測速度,也有更高的準(zhǔn)確率。2018年,Redmon 等提出了YOLOv3 算法,在端到端思想的基礎(chǔ)上增加了預(yù)測錨框機(jī)制,采用多尺度融合預(yù)測方法進(jìn)步增強(qiáng)了對目標(biāo)檢測的精度。
YOLOv3 的網(wǎng)絡(luò)結(jié)構(gòu)主要由特征提取網(wǎng)絡(luò)和預(yù)測層組成,如圖1所示。其在YOLOv2 結(jié)構(gòu)的基礎(chǔ)上去掉了所有最大池化層,增加了更多的卷積層加深網(wǎng)絡(luò),并引入了殘差模塊,共包括23 個殘差塊。經(jīng)過5 次下采樣后,輸出大小為網(wǎng)絡(luò)輸入大小的1/32。改進(jìn)后的主干網(wǎng)絡(luò)被命名為Darknet-53,YOLOv3 采用多尺度分類的思想,將預(yù)測層分為3 個尺度。對于640×640 的輸入圖像,可以獲得三個尺度的特征圖。FPN 的思想對這三個尺度的特征圖采用自下而上的上采樣將小特征圖與大特征圖融合,輸出三個預(yù)測特征。在相同尺度的預(yù)測層中,使用券積操作完成特征圖與局部特征的交互。YOLOv3 輸出的三個特征圖尺度大小分別為20×20、40×40、80×80,每個單元使用3 個錨框來預(yù)測3個邊界框。
圖1 YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)
數(shù)據(jù)增強(qiáng)是一種數(shù)據(jù)擴(kuò)充技術(shù),指的是利用有限的數(shù)據(jù)創(chuàng)造盡可能多的利用價值。因為雖然現(xiàn)在各種任務(wù)的公開數(shù)據(jù)集有很多,但是其實數(shù)據(jù)量也遠(yuǎn)遠(yuǎn)不夠,而公司或者學(xué)術(shù)界去采集、制作這些數(shù)據(jù)的成本很高,尤其像人工標(biāo)注數(shù)據(jù)的任務(wù)量非常大,因此,只能通過一些方法去更好地利用現(xiàn)有的成本。傳統(tǒng)數(shù)據(jù)增強(qiáng)方式有隨機(jī)翻轉(zhuǎn)、旋轉(zhuǎn)、裁剪、變形縮放、添加噪聲、顏色擾動等等。而本文選擇一種新的數(shù)據(jù)增強(qiáng)方式Mosaic 數(shù)據(jù)增強(qiáng),通過隨機(jī)裁剪、隨機(jī)縮放和隨機(jī)排布將四張圖片拼接,豐富了檢測數(shù)據(jù)集,尤其增加了小目標(biāo),提高了網(wǎng)絡(luò)的魯棒性,因此本文選擇其對訓(xùn)練數(shù)據(jù)進(jìn)行增強(qiáng)。
注意力機(jī)制來源于人類的視覺機(jī)制,能夠使網(wǎng)絡(luò)專注于有效信息,過濾無用信息,從而提高信息的利用率?,F(xiàn)有研究表明,將注意力模塊添加到現(xiàn)有卷積神經(jīng)網(wǎng)絡(luò)中可以帶來顯著的性能提升。然而,大多數(shù)現(xiàn)有方法致力于開發(fā)更復(fù)雜的注意模塊以實現(xiàn)更好的性能,這不可避免地會增加模型的復(fù)雜性。而ECA-Net 中的注意力模塊EfficientChannel Attention(ECA)是主要針對SE-Attention 改進(jìn)的,SEAttention 使用兩個全連接層實現(xiàn)通道注意力,而ECA 指出使用兩個全連接層會引入大量參數(shù)和計算量,同時計算兩兩通道間的注意力是非必要的,因此在不降維的全局通道平均池化后僅僅采用了一個感受也為的一維卷積來計算相鄰個通道間的注意力。在只增加了非常少的參數(shù)情況下卻能獲得明顯的性能提升,如圖2所示,其中設(shè)置=3,表示相乘操作,⊕表示相加操作。
圖2 ECA 注意力
YOLOv3 中的原始定位損失函數(shù)為IOU 損失,相比傳統(tǒng)的L2 損失,使用IOU 損失函數(shù)能更好地反應(yīng)兩個框的重合程度。但是其仍然存在很多缺陷,比如說當(dāng)交并比值相同時,重合方式不一定相同,無法挑選出真正的最優(yōu)預(yù)測框,因此本文選擇CIOU損失作為YOLOv3 的定位損失函數(shù),它考慮了重疊面積、中心點(diǎn)距離以及長寬比信息,解決了IOU 損失函數(shù)的不足。CIoU 具體公式如式(1)~(3)所示:
其中代表預(yù)測框中心坐標(biāo)的參數(shù),就是兩個中心點(diǎn)距離的平方,和為長寬比,代表兩個矩形的最小外接矩形對角線長度
本文將改進(jìn)后的YOLOv3 算法命名為ECA-YOLOv3,結(jié)合前幾節(jié)的介紹,最終得到ECA-YOLOv3 主干網(wǎng)絡(luò)的結(jié)構(gòu),如表1所示。
表1 ECA-YOLOv3 主干網(wǎng)絡(luò)結(jié)構(gòu)
本文實驗訓(xùn)練及測試的計算機(jī)硬件配置如下:CPU 為Intel(R)Core(TM)i5-11400@2.60GHz,GPU 為NVIDIA GeForce RTX 3060,采用Ubuntu20.04 操作系統(tǒng)和Pytorch1.8深度學(xué)習(xí)框架作為實驗的運(yùn)行環(huán)境。
RSOD 數(shù)據(jù)集由武漢大學(xué)發(fā)布,是用于遙感圖像中物體檢測的數(shù)據(jù)集,本文選擇其作為數(shù)據(jù)集進(jìn)行訓(xùn)練和測試。其一共包含飛機(jī)、操場、立交橋和油桶四類目標(biāo),數(shù)量分別為:446 張圖(4 993 架飛機(jī)),189 張圖(191 個操場),176張圖(180 座立交橋),165 張圖(1 586 個油桶)。
本實驗采用召回率、精確率和平均精度均值(Mean Average Precision,mAP)通常用于評估目標(biāo)檢測算法的性能,具體公式如式(4)~(7)所示。
其中TP 為算法預(yù)測正確的正樣本個數(shù),F(xiàn)N 為算法預(yù)測錯誤且判斷為負(fù)樣本的個數(shù),F(xiàn)P 為算法預(yù)測錯誤但是判斷為正樣本的個數(shù),AP 值為PR 曲線所圍成的面積
3.4.1 實驗參數(shù)設(shè)置
輸入圖片大小設(shè)置為640×640,使用隨機(jī)梯度下降法(stochastic gradient descent, SGD)作為優(yōu)化器優(yōu)化網(wǎng)絡(luò),動量設(shè)為0.937,權(quán)重衰減系數(shù)設(shè)為0.000 5。初始學(xué)習(xí)率設(shè)置為0.01,在訓(xùn)練過程中使用余弦退火算法來對學(xué)習(xí)率進(jìn)行更新,Batch Size 設(shè)置為4,epoch 數(shù)設(shè)置為240 輪。
3.4.2 對比實驗
在相同數(shù)據(jù)集上對YOLOv3 和ECA-YOLOv3 進(jìn)行對比實驗,使用mAP 作為模型檢測指標(biāo),最終實驗結(jié)果如表2所示。從表中可以看出,本文提出的算法行之有效,其檢測精度比傳統(tǒng)的YOLOv3 網(wǎng)絡(luò)提高了2.6 個百分點(diǎn)。
表2 模型性能對比表
3.4.3 實驗效果圖
使用ECA-YOLOv3 對測試集進(jìn)行測試,部分圖片檢測效果如圖3所示,可以看出,改進(jìn)后的網(wǎng)絡(luò)在針對一些困難樣本,如密集小目標(biāo)、目標(biāo)被遮擋、相似度差異較大等圖像上均有較好的識別效果。
圖3 檢測效果圖
為解決遙感圖像中因目標(biāo)尺度變化較大,背景復(fù)雜導(dǎo)致的檢測困難問題,本文在YOLOv3 的基礎(chǔ)上,以DarkNet53為主干網(wǎng)絡(luò),引入輕量級的ECA 注意力模塊,并通過替換CIOU 邊界框損失函數(shù),對數(shù)據(jù)進(jìn)行Mosaic 增強(qiáng)等方式對原始算法進(jìn)行一些類改進(jìn)。實驗結(jié)果表明基于改進(jìn)后的YOLOv3 遙感圖像檢測方法取得了不錯的檢測效果,模型魯棒性得以提高,且檢測精度保持在了較高水準(zhǔn),具有一定的實用價值。下一步將考慮優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),在不降低檢測精度的同時進(jìn)一步壓縮模型,提高其檢測速度。