章程軍,胡曉兵,魏上云,郭 爽
(1.四川大學(xué) 機械工程學(xué)院,四川 成都 610065;2.四川大學(xué) 宜賓產(chǎn)業(yè)技術(shù)研究院,四川 宜賓 644000)
相比于傳統(tǒng)自然場景圖像目標(biāo),遙感目標(biāo)具有尺度差異明顯、成像視角特殊方向多樣、目標(biāo)小且分布密集、背景環(huán)境復(fù)雜等特點,這給快速精準(zhǔn)完成遙感目標(biāo)檢測造成困難[1-3]。
傳統(tǒng)目標(biāo)檢測算法主要分為感興趣區(qū)域(region of interest,ROI)搜索、區(qū)域特征提取、分類器分類3個步驟[2],由于傳統(tǒng)算法手工設(shè)計特征的局限性,限制算法檢測精度以及遷移性。深度學(xué)習(xí)因其不需要人為設(shè)計特征,能夠自主實現(xiàn)檢測目標(biāo)特征識別,具有更好的魯棒性與遷移性。王金傳等[4]基于Faster R-CNN算法,通過特征融合實現(xiàn)遙感圖像中艦船等目標(biāo)的識別,雖然在檢測精度上取得一定效果,但檢測效率不高。Lu等[5]基于SSD算法提出一種注意力特征融合結(jié)構(gòu),通過將遙感目標(biāo)多層特征融合增強網(wǎng)絡(luò)檢測能力,但網(wǎng)絡(luò)對于圖像分辨率要求較高,例如橋梁等某些特定目標(biāo)檢測效果不佳,檢測實時性存在不足。考慮到遙感目標(biāo)復(fù)雜性,本文基于深度學(xué)習(xí)技術(shù),對遙感目標(biāo)快速準(zhǔn)確檢測展開研究。
目前基于深度學(xué)習(xí)的目標(biāo)檢測算法主要有R-CNN[6,7]、YOLO[6,8-10]、SSD[6]系列。綜合各網(wǎng)絡(luò)特點,選用YOLO網(wǎng)絡(luò)實現(xiàn)遙感目標(biāo)檢測。
YOLO目標(biāo)檢測算法在檢測時,會將輸入圖片劃分為若干個(SxS)網(wǎng)格,每個網(wǎng)格負(fù)責(zé)預(yù)測中心點在其內(nèi)部的目標(biāo),這包括目標(biāo)邊界框位置、置信度、目標(biāo)類別信息。作為YOLO系列中最新版本的檢測算法,YOLOv5中每個網(wǎng)格預(yù)測3個邊界框(bounding box)的坐標(biāo)信息 (x,y,w,h)、 置信度和條件類別概率信息。目前YOLOv5包含4種不同寬度和深度的網(wǎng)絡(luò)結(jié)構(gòu)模型,見表1。
表1 YOLOv5不同寬度深度模型
YOLOv5網(wǎng)絡(luò)相比于前4個版本,在目標(biāo)檢測的精度與速度上均得到提升,這與其網(wǎng)絡(luò)結(jié)構(gòu)的改進以及合適訓(xùn)練技巧的應(yīng)用密不可分。其網(wǎng)絡(luò)結(jié)構(gòu)由4部分組成:①輸入端(Input):對圖像進行統(tǒng)一尺寸、計算最優(yōu)錨框等預(yù)處理操作,同時進行數(shù)據(jù)增強以豐富數(shù)據(jù)集提高網(wǎng)絡(luò)檢測能力;②主干網(wǎng)絡(luò)(Backbone):主干網(wǎng)絡(luò)是實現(xiàn)目標(biāo)特征提取的關(guān)鍵部分,其主要有Focus、CBL、CSP、SPP這4種模塊組成。Focus模塊是YOLOv5相較于YOLOv1-v4所獨有的模塊,其將輸入主干網(wǎng)絡(luò)的圖片進行2倍下采樣的切片操作,每個特征圖被分成4份后在空間通道進行拼接,圖片W、H信息轉(zhuǎn)成空間信息并不會造成目標(biāo)特征信息減少,相比于通過卷積實現(xiàn)下采樣操作,網(wǎng)絡(luò)能夠提取更多目標(biāo)特征信息。CSP模塊借鑒跨階段局部網(wǎng)絡(luò)[11](cross stage partial network,CSPNet)網(wǎng)絡(luò)思想對殘差結(jié)構(gòu)進行改進,從網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計角度出發(fā),解決網(wǎng)絡(luò)模型在推理過程中梯度信息重復(fù)問題,在一定程度上減少網(wǎng)絡(luò)計算量的同時增強了網(wǎng)絡(luò)目標(biāo)特征提取能力,SPP模塊是通過空間金字塔池化實現(xiàn)多尺度特征融合;③頸部網(wǎng)絡(luò)(Neck):用于生成特征金字塔實現(xiàn)對主干網(wǎng)絡(luò)提取的目標(biāo)特征進行增強,提高網(wǎng)絡(luò)對多尺度目標(biāo)的檢測精度。YOLOv5頸部網(wǎng)絡(luò)為FPN-PAN結(jié)構(gòu),F(xiàn)PN[12]對主干網(wǎng)絡(luò)提取特征圖進行上采樣,將深層語義信息與淺層目標(biāo)位置信息進行融合,在此基礎(chǔ)上融合PAN[13]結(jié)構(gòu),對上采樣得到的特征圖進行下采樣,這種自頂向下和自底向上方式全面提升網(wǎng)絡(luò)對深層語義信息和淺層定位信息的學(xué)習(xí)性能;④輸出層(Head):由3個檢測頭組成,分別對應(yīng)20×20、40×40、80×80大小特征圖,每個檢測頭會生成對應(yīng)大小的特征向量,用于預(yù)測目標(biāo)邊界框位置,目標(biāo)類別以及對應(yīng)置信度信息。YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv5網(wǎng)絡(luò)模型結(jié)構(gòu)
綜合比較單階段和雙階段網(wǎng)絡(luò),雖然單階段網(wǎng)絡(luò)在檢測精度上低于雙階段網(wǎng)絡(luò),對于網(wǎng)絡(luò)檢測速度卻有明顯優(yōu)勢,YOLOv5在速度和精度方面得到較好的平衡,網(wǎng)絡(luò)對于目標(biāo)檢測的效果較好。由于YOLOv5在提出來時主要以COCO數(shù)據(jù)集為研究對象,針對特定領(lǐng)域的目標(biāo)檢測雖然能夠達到較高的檢測精度滿足實時性要求,但仍有一定提升空間??紤]到遙感目標(biāo)尺度差異大,小目標(biāo)占比多。本文對原有網(wǎng)絡(luò)進行改進,提出一種基于密集連接的YOLOv5遙感目標(biāo)檢測網(wǎng)絡(luò)。將網(wǎng)絡(luò)主干部分用于提取特征信息的CSP模塊替換為采用DenseNet[14]網(wǎng)絡(luò)結(jié)構(gòu)思想的CSP-D模塊,在不同尺度上捕獲目標(biāo)特征信息,從而獲取更有效的目標(biāo)特征;采用BiFPN[15]結(jié)構(gòu)對頸部網(wǎng)絡(luò)進行改進,充分考慮淺層位置信息和深層語義信息,實現(xiàn)特征信息多尺度融合,避免網(wǎng)絡(luò)過多注重深層次信息進行目標(biāo)預(yù)測,提高網(wǎng)絡(luò)對于遙感目標(biāo)檢測能力。改進YOLOv5模型如圖2所示。
圖2 改進YOLOv5網(wǎng)絡(luò)模型結(jié)構(gòu)
目前基于深度學(xué)習(xí)的目標(biāo)檢測網(wǎng)絡(luò)都是利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)進行目標(biāo)特征提取,本文針對YOLOv5提取目標(biāo)特征的主干網(wǎng)絡(luò),對網(wǎng)絡(luò)中CSP模塊進行改進,借鑒DenseNet網(wǎng)絡(luò)思想,以提高網(wǎng)絡(luò)對目標(biāo)特征提取能力。
為了提高網(wǎng)絡(luò)檢測精度,通過加深加寬網(wǎng)絡(luò)結(jié)構(gòu)被證明為一種有效的手段,但隨著網(wǎng)絡(luò)的加深,梯度消失成為限制網(wǎng)絡(luò)精度的重要問題。殘差網(wǎng)絡(luò)[16](ResNet)的提出有效解決了梯度消失問題,常用于目標(biāo)檢測領(lǐng)域中作為主干網(wǎng)絡(luò)進行目標(biāo)特征的提取,但殘差網(wǎng)絡(luò)提取特征信息不具有細粒度特征,對于小樣本數(shù)據(jù)集容易產(chǎn)生過擬合。密集連接網(wǎng)絡(luò)(DenseNet)網(wǎng)絡(luò)的提出為目標(biāo)特征提取提供一種新思路,其不同于通過加深加寬網(wǎng)絡(luò)結(jié)構(gòu)以提高網(wǎng)絡(luò)預(yù)測精度的思想,而是直接從特征圖(feature)入手,更加充分利用特征圖信息。相比于ResNet網(wǎng)絡(luò),DenseNet網(wǎng)絡(luò)不僅減輕梯度消失問題;它加強了feature傳遞,更加有效地利用feature,特征提取能力更強,特征表達能力更多樣化;Dense Block結(jié)構(gòu)的設(shè)計使得DenseNet網(wǎng)絡(luò)更窄,網(wǎng)絡(luò)參數(shù)和計算量(FLOPs)更少;在一定程度上抑制過擬合問題,對于小樣本數(shù)據(jù)集目標(biāo)檢測效果更好。ResNet與DenseNet網(wǎng)絡(luò)差異主要是由于兩者對特征聚合方式不同,ResNet網(wǎng)絡(luò)聚合特征信息采用求和方式,這種方式雖然增加了來自上一層的輸入,但隨著網(wǎng)絡(luò)結(jié)構(gòu)的加深,淺層特征信息會逐漸稀釋,網(wǎng)絡(luò)預(yù)測結(jié)果更加注重深層信息;而DenseNet網(wǎng)絡(luò)聚合特征信息采用密集連接(concat)方式,當(dāng)前層會連接前面所有層作為輸入,這種方式充分考慮淺層和深層特征信息,淺層特征信息不會隨著網(wǎng)絡(luò)的加深逐漸稀釋,每層都具有不同大小感受野信息,可以捕獲不同尺度目標(biāo)特征,使得輸出可以綜合考慮淺層和深層特征信息對目標(biāo)進行檢測,更加有利于目標(biāo)特征提取。Dense Block網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 Dense Block結(jié)構(gòu)
DenseNet所采用的這種密集連接方式隨著網(wǎng)絡(luò)的加深,聚合前面層特征越逐漸增多,會造成特征冗余,增加運行成本,一定程度上降低網(wǎng)絡(luò)效率,使得目標(biāo)預(yù)測速度變慢。為了能夠保證網(wǎng)絡(luò)特征提取能力的同時解決特征冗余造成的問題,我們對網(wǎng)絡(luò)密集連接方式進行改進,每層不再連接前方所有層特征信息,而是直接在最后一層對所有層特征進行融合,這種方式在利用深層和淺層信息同時,降低運行成本,避免因密集連接導(dǎo)致目標(biāo)檢測速度降低。本文針對YOLOv5改進的CSP-D模塊,將輸入特征圖分為兩部分,一部分直接聚合到模塊末層,另一部分則通過改進的Dense Block模塊;將兩部分特征信息在模塊末層進行融合,加強特征圖信息傳遞,充分利用不同層之間特征信息,實現(xiàn)網(wǎng)絡(luò)不同梯度信息組合。CSP-D模塊結(jié)構(gòu)如圖4所示。
圖4 CSP-D模塊結(jié)構(gòu)
作為主干網(wǎng)絡(luò)(Backbone)與輸出層(Head)之間的過渡層,頸部(Neck)網(wǎng)絡(luò)會進行特征增強以提高網(wǎng)絡(luò)檢測精度。在深度學(xué)習(xí)領(lǐng)域早期的研究中,目標(biāo)檢測算法主要結(jié)構(gòu)都是采用自底向上的前向過程,這種方法直接利用深層特征信息對目標(biāo)進行預(yù)測,淺層信息沒有直接參與網(wǎng)絡(luò)檢測結(jié)果預(yù)測,且隨著網(wǎng)絡(luò)加深,淺層信息逐漸稀釋,導(dǎo)致預(yù)測結(jié)果只注重深層語義信息,對于淺層位置信息利用不充分,目標(biāo)檢測時定位誤差較大。隨著研究的進一步發(fā)展,特征增強模塊FPN(特征金字塔)的提出有效解決了深層語義信息與淺層位置信息利用不平衡的問題,成為目前目標(biāo)檢測和實例分割等領(lǐng)域重要組成模塊。相比于早期純粹的利用前向過程進行目標(biāo)預(yù)測,F(xiàn)PN(特征金字塔)網(wǎng)絡(luò)在原有網(wǎng)絡(luò)基礎(chǔ)上添加了自頂向下結(jié)構(gòu)即將深層特征進行上采樣獲得新的特征圖,通過橫向連接與原有網(wǎng)絡(luò)特征信息進行融合。這種特征增強結(jié)構(gòu)將深層語義信息連接到淺層特征中,實現(xiàn)融合后不同大小特征層與輸出層相互對應(yīng),對多尺度目標(biāo)檢測以及小目標(biāo)檢測能力有所提升,同時提高目標(biāo)檢測時目標(biāo)定位精度。由于FPN結(jié)構(gòu)對深層的小尺度特征圖進行上采樣會導(dǎo)致一些目標(biāo)詳細信息的丟失,從而限制大中型目標(biāo)的檢測精度的提升。在YOLO系列中,YOLOv3已經(jīng)融合FPN結(jié)構(gòu),YOLOv5為進一步改進網(wǎng)絡(luò)性能,在此基礎(chǔ)上借鑒PANet網(wǎng)絡(luò)結(jié)構(gòu)進行改進,在FPN基礎(chǔ)上為了使淺層豐富的位置信息與深層豐富的語義信息進行充分融合,添加了下采樣的金字塔結(jié)構(gòu),自底向上將底層信息傳遞到高層。這種方式加強了在相鄰層之間信息的融合,對于非相鄰層間的語義信息和位置信息并沒有過多注重。無論是FPN結(jié)構(gòu)還是PANet結(jié)構(gòu),在進行特征融合時都是平等對待不同尺度的特征信息,為了能夠使特征信息高效進行多尺度融合,我們借鑒BIFPN(加權(quán)雙向特征金字塔)結(jié)構(gòu),引入權(quán)重以對不同尺度的特征信息進行融合。頸部網(wǎng)絡(luò)(Neck)結(jié)構(gòu)如圖5所示。
圖5 頸部網(wǎng)絡(luò)(Neck)結(jié)構(gòu)
本文頸部網(wǎng)絡(luò)(Neck)包含兩條通路,一條為自頂向下進行上采樣通路,將高層特征的語義信息傳遞到底層;另一條是自底向上進行下采樣通路,將底層特征位置信息傳遞到頂層。頸部網(wǎng)絡(luò)刪除只有一條輸入的節(jié)點,確保每個節(jié)點至少有兩條輸入邊以保證特征融合,對于原始輸入節(jié)點和輸出節(jié)點,若兩者處于同一層具有相同大小特征信息,則會額外添加一條連接,使輸出結(jié)果充分考慮原始輸入特征信息,在不增加過多運算成本的情況下融合更多特征信息。這種引入權(quán)重以平衡不同尺度信息的融合方式提高具有多尺度特征信息數(shù)據(jù)集的檢測精度。
本實驗采用操作系統(tǒng)為Linux系統(tǒng),使用軟件為python3.7+Torch1.6.0;實驗硬件配置為處理器(CPU)為因特爾Core(TM)i9-990 0k 3.60 GHz、顯卡(GPU)為NVIDIA GeForce RTX 2080Ti、內(nèi)存11 G。實驗訓(xùn)練模型時采用隨機梯度下降法(SGD)法更新網(wǎng)絡(luò)訓(xùn)練參數(shù),以減少算法收斂時間。實驗設(shè)置網(wǎng)絡(luò)超參數(shù)見表2。
表2 網(wǎng)絡(luò)訓(xùn)練超參數(shù)
為衡量改進前后網(wǎng)絡(luò)性能優(yōu)劣,實驗結(jié)果從召回率(recall)、查準(zhǔn)率(precision)、平均準(zhǔn)確率均值(mean average precision,mAP)、各個類別的平均準(zhǔn)確率(ave-rage precision,AP)、推理時間(s)以及浮點運算量(FLOPs)6個方面來對比網(wǎng)絡(luò)性能。相關(guān)計算公式如下
(1)
(2)
(3)
(4)
召回率(recall)和查準(zhǔn)率(precision)指所檢測到正樣本數(shù)量分別占標(biāo)記真實樣本數(shù)量和檢測到的所有樣本數(shù)量比率,為平均準(zhǔn)確率(average precision,AP)與平均準(zhǔn)確率均值(mean average precision,mAP)計算基礎(chǔ)。在式(1)、式(2)中TP、FP、FN關(guān)系見表3。
表3 TP、FP、FN關(guān)系
為驗證各個模塊改進是否提高網(wǎng)絡(luò)檢測精度,進行消融實驗,見表4。
表4 改進網(wǎng)絡(luò)消融實驗
為驗證改進對網(wǎng)絡(luò)性能影響,改進YOLOv5s與原網(wǎng)絡(luò)訓(xùn)練結(jié)果對比分析見表5、表6。
表5 改進前后網(wǎng)絡(luò)性能對比
表6 目標(biāo)平均準(zhǔn)確率(AP)對比
由表5可以看出,改進YOLOv5s相比于原網(wǎng)絡(luò)查準(zhǔn)率(precision)、召回率(recall)、平均準(zhǔn)確率均值(mAP)均有所提高,其中查準(zhǔn)率提高1.7%、召回率提高1.9%、mAP值提高2.1%。改進后模型推理時間為0.011 s,相比于原網(wǎng)絡(luò)0.007 s雖有升高,仍能達到毫秒級別,滿足實時性要求。
表6為網(wǎng)絡(luò)模型改進前后數(shù)據(jù)集20個目標(biāo)類平均準(zhǔn)確率(AP)對比表,相比原YOLOv5s,改進網(wǎng)絡(luò)對于每個目標(biāo)類檢測AP值均有所提升,其中Train station目標(biāo)類AP值提升最高,達到6.60%;bridge目標(biāo)類AP值也提升4.2%。
已有研究表明,通過增加網(wǎng)絡(luò)深度和寬度可以提高網(wǎng)絡(luò)對目標(biāo)檢測精度,但此方法同時增加網(wǎng)絡(luò)復(fù)雜度,浮點運算量(FLOPs)作為衡量網(wǎng)絡(luò)模型復(fù)雜度指標(biāo),表7為不同大小YOLOv5模型與改進后模型對比分析。
表7 模型復(fù)雜度對比
表7表明,YOLOv5m模型通過增加網(wǎng)絡(luò)深度寬度,相比于YOLOv5s模型mAP值提升1.4%,但網(wǎng)絡(luò)浮點運算量(FLOPs)大幅升高,為YOLOv5s網(wǎng)絡(luò)浮點運算量3倍多。改進YOLOv5s網(wǎng)絡(luò)相比于YOLOv5m網(wǎng)絡(luò)mAP值高出0.7%,并且浮點運算量更少,網(wǎng)絡(luò)復(fù)雜度低。
網(wǎng)絡(luò)改進前后總損失值和平均準(zhǔn)確率(mAP)對比曲線如圖6所示,從圖6(a)、圖6(b)中看出,網(wǎng)絡(luò)在訓(xùn)練批次迭代到60次時基本達到穩(wěn)定。隨著迭代次數(shù)的增加,網(wǎng)絡(luò)趨于穩(wěn)定后改進網(wǎng)絡(luò)mAP值穩(wěn)定高于YOLOv5s網(wǎng)絡(luò);總損失值不斷降低,整體低于YOLOv5s網(wǎng)絡(luò)。
圖6 YOLOv5s改進前后總損失值和mAP值對比
圖7為網(wǎng)絡(luò)改進前后實際檢測效果對比圖,其中左側(cè)為原始網(wǎng)絡(luò)實際檢測效果,右側(cè)為改進后網(wǎng)絡(luò)實際檢測效果。與改進YOLOv5s網(wǎng)絡(luò)相比,YOLOv5s網(wǎng)絡(luò)針對不同密度目標(biāo)雖能檢測出大部分目標(biāo),但仍存在漏檢、誤檢問題,且已檢目標(biāo)置信度要低于改進網(wǎng)絡(luò)。如前4幅圖中,針對harbor類目標(biāo),YOLOv5s網(wǎng)絡(luò)存在漏檢情況;后兩幅圖中,YOLOv5s網(wǎng)絡(luò)將非ship類目標(biāo)檢測為ship類目標(biāo),出現(xiàn)誤檢情況。改進YOLOv5s網(wǎng)絡(luò)模型緩解原網(wǎng)絡(luò)漏檢、誤檢問題,提高網(wǎng)絡(luò)檢測性能。
圖7 實際檢測效果對比
本文選用單階段網(wǎng)絡(luò)YOLOv5s作為遙感目標(biāo)檢測模型,在原網(wǎng)絡(luò)基礎(chǔ)上,對主干網(wǎng)絡(luò)采用新設(shè)計CSP-D模塊替代原網(wǎng)絡(luò)中CSP模塊,提高主干網(wǎng)絡(luò)對目標(biāo)信息提取能力;借鑒BiFPN結(jié)構(gòu)改進頸部網(wǎng)絡(luò),使特征信息能夠進行更高效的多尺度特征融合,提高網(wǎng)絡(luò)對不同目標(biāo)檢測精度。在遙感目標(biāo)數(shù)據(jù)集DIOR進行實驗后表明,改進YOLOv5s相比于原網(wǎng)絡(luò)平均準(zhǔn)確率均值(mAP)有所提高,總損失低于原網(wǎng)絡(luò)模型,提升各個類目標(biāo)檢測精度,緩解YOLOv5s網(wǎng)絡(luò)漏檢誤檢問題;雖然增加網(wǎng)絡(luò)推理時間以及模型復(fù)雜度,仍能滿足實時性要求,并且相比于通過加深加寬網(wǎng)絡(luò)以提升檢測精度方法,相對降低網(wǎng)絡(luò)模型復(fù)雜度。改進YOLOv5s相比于原網(wǎng)絡(luò)整體性能有所提升,但對于實際中包含各種復(fù)雜因素的遙感目標(biāo)檢測,還具有一定局限性,后續(xù)將進一步研究以提升深度學(xué)習(xí)領(lǐng)域?qū)b感目標(biāo)檢測性能。