王陽萍,韓淑梅,楊景玉,黨建武,張占平
1.蘭州交通大學(xué)電子與信息工程學(xué)院,甘肅 蘭州 730070 2.甘肅省人工智能與圖形圖像處理工程研究中心,甘肅 蘭州 730070
我國高速鐵路的大規(guī)模建設(shè)方便了人們出行的同時(shí)在鐵路運(yùn)維方面提出了新的挑戰(zhàn),及時(shí)檢測鐵路沿線的地物目標(biāo)已成為當(dāng)前鐵路維護(hù)人員需要解決的重要問題之一。而快速發(fā)展的高分辨率遙感技術(shù)[1]以其覆蓋范圍大、地物紋理信息豐富、成像光譜波段多、成本低等優(yōu)點(diǎn)為及時(shí)檢測鐵路沿線地物提供了一種快速、便捷、高效的解決方法。近年來基于卷積神經(jīng)網(wǎng)絡(luò)CNN(convolutional neural networks)的算法以其魯棒性強(qiáng)、檢測精度高,且能滿足復(fù)雜背景下多尺度目標(biāo)需求等特點(diǎn),被廣泛應(yīng)用于遙感影像目標(biāo)檢測[2]。Wang等[3]提出用于大規(guī)模遙感影像中多類目標(biāo)檢測FM-SSD方法,該方法能夠在多個(gè)尺度上獲得豐富的上下文信息,但對(duì)同一特征圖中的小目標(biāo)識(shí)別效果較差且計(jì)算量大。Xu[4]等針對(duì)遙感目標(biāo)的特點(diǎn),提出一種輕量級(jí)特征增強(qiáng)網(wǎng)絡(luò)FE-YOLO,該方法的檢測速度大幅度提高,但其特征提取能力弱,無法達(dá)到檢測精度要求。Li等[5]將Faster R-CNN,YOLOv3和SSD用于遙感影像農(nóng)業(yè)溫室地物檢測研究中,并從檢測精度和速度方面進(jìn)行對(duì)比,得到Y(jié)OLO算法在檢測速度方面優(yōu)于其他兩者。但YOLOv3對(duì)局部小塊溫室大棚檢測效果較差。2020年,Alexey Bochkovskiy等[6]基于CSPNet骨干網(wǎng)絡(luò)、Mosaic數(shù)據(jù)增強(qiáng)、Mish激活、SPP和GIOU損失提出YOLOv4,能夠得到更快更精確的檢測結(jié)果。YOLOv4因其效率高在普通圖像檢測中得到更廣泛的應(yīng)用,但當(dāng)其用于遙感影像時(shí)存在小目標(biāo)漏檢和大尺度檢測效率低的問題。為了更好地對(duì)鐵路沿線地物進(jìn)行檢測,我們對(duì)YOLOv4進(jìn)一步改進(jìn),采用DCBM模塊改進(jìn)DenseNet用于YOLOv4特征提取以實(shí)現(xiàn)特征重用,增強(qiáng)小目標(biāo)特征提取能力。同時(shí)在骨干網(wǎng)中CSP單元的每個(gè)殘差單元之后連接一個(gè)SE模塊,使其在提高地物檢測精度的同時(shí)降低模型參數(shù)量。為提高網(wǎng)絡(luò)對(duì)鐵路目標(biāo)的檢測效率,提出一種改進(jìn)的通道空間注意力模塊ICBAM,并在網(wǎng)絡(luò)預(yù)測結(jié)果輸出之前引入該模塊,進(jìn)一步提高網(wǎng)絡(luò)性能。實(shí)驗(yàn)結(jié)果表明,所提方法提高了地物目標(biāo)的檢測精度,有效降低了模型大小和參數(shù)量,具有實(shí)際的應(yīng)用價(jià)值。
YOLOv4網(wǎng)絡(luò)將輸入圖像調(diào)整為固定大小,并劃分為S×S的網(wǎng)格單元作為輸入,基于回歸獲得邊界框的位置及其所屬類別,從而實(shí)現(xiàn)端到端的目標(biāo)檢測。其在輸入端使用Mosaic數(shù)據(jù)增強(qiáng)方法大大豐富檢測數(shù)據(jù)集,提高網(wǎng)絡(luò)的魯棒性。在骨干網(wǎng)方面,采用CSPDarknet53網(wǎng)絡(luò)結(jié)構(gòu)增強(qiáng)CNN的學(xué)習(xí)能力,使得在輕量化的同時(shí)保持準(zhǔn)確性,減少了計(jì)算量,降低了內(nèi)存成本。在Neck方面,采用特征金字塔SPP模塊的最大池化方式進(jìn)行不同尺度的特征融合并采用FPN和PAN相結(jié)合的方式對(duì)不同主干層中不同的檢測層進(jìn)行特征聚合。在損失函數(shù)方面,采用CIOU損失和DIOU損失相結(jié)合的方法同時(shí)考慮邊界框?qū)捀弑鹊某叨刃畔ⅰ⒅丿B面積和中心點(diǎn)距離信息,更好地實(shí)現(xiàn)目標(biāo)邊界框回歸,得到更加準(zhǔn)確的預(yù)測結(jié)果。
與YOLOv3算法相比,YOLOv4算法在目前的公開數(shù)據(jù)集上mAP和FPS都有所提高,在檢測速度、模型性能、訓(xùn)練時(shí)間和硬件要求方面優(yōu)于其他算法,但仍然存在邊界框定位不夠精確、難以檢測小目標(biāo)物體、靈活性與檢測速度等方面的不足。其主干網(wǎng)CSPDarkNet53主要由CSP單元組成,而CSP單元包含了一些ResNet和CBM模塊,但這些ResNet包含了大量的參數(shù)計(jì)算,負(fù)責(zé)YOLOv4網(wǎng)絡(luò)的主要特征提取。將其用于鐵路沿線遙感影像地物目標(biāo)檢測中,存在部分地物目標(biāo)信息丟失及模型參數(shù)空間大的問題。因此,本工作針對(duì)鐵路沿線遙感影像地物檢測對(duì)其進(jìn)行改進(jìn)。
遙感影像鐵路沿線的地物目標(biāo)具有小而密集分布的特點(diǎn),其在YOLOv4模型中經(jīng)過進(jìn)一步壓縮后,小目標(biāo)地物容易出現(xiàn)細(xì)節(jié)特征信息丟失的現(xiàn)象,產(chǎn)生小目標(biāo)漏檢問題。DenseNet考慮到深層次的網(wǎng)絡(luò)導(dǎo)致梯度消失且殘差網(wǎng)絡(luò)不能充分利用網(wǎng)絡(luò)提取的特征問題,通過連接所有特征圖并進(jìn)行通道合并,實(shí)現(xiàn)多特征圖的融合和特征重用,從而提高準(zhǔn)確度。使用DenseNet能使網(wǎng)絡(luò)梯度的反向傳播得到增強(qiáng),可以更好地利用已提取的地物特征信息,提高層間信息的透光率,間接降低模型參數(shù)。其每一層都可以接收到前面層的所有特征圖,Xl與前面的特征圖關(guān)系可由式(1)表示
Xl=Hl[X0,X1, …,Xl-1]
(1)
本文設(shè)計(jì)出由卷積、批量歸一化BN和Mish激活組成的CBM模塊,而兩個(gè)CBM模塊級(jí)聯(lián)成一個(gè)雙CBM(double CBM)模塊,本文使用DCBM模塊作為DenseNet的傳輸層,由Conv(1×1×32)-BN-Mish-Conv(3×3×64)-BN-Mish和Conv(1×1×64)-BN-Mish-Conv(3×3×128)-BN-Mish組成??紤]到使用大量DenseNet網(wǎng)絡(luò)會(huì)增加網(wǎng)絡(luò)層數(shù)從而導(dǎo)致特征冗余、降低檢測速度,因此為前兩個(gè)CSP模塊設(shè)置了4層,為第三個(gè)CSP模塊設(shè)置了2層。改進(jìn)DenseNet的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 改進(jìn)的DenseNet網(wǎng)絡(luò)模型
其中,模塊DENSE 1st中相鄰層特征圖增量為96,模塊DENSE 2nd中各相鄰層特征圖增量為192,模塊DENSE 3rd中相鄰層特征圖增量為256。本模塊的設(shè)計(jì)不但能減少網(wǎng)絡(luò)對(duì)殘差單元的依賴,而且使用改進(jìn)的DenseNet網(wǎng)絡(luò)作為特征提取網(wǎng)絡(luò)的部分低分辨率層(CSP單元中的部分殘差單元層),能有效解決深層網(wǎng)絡(luò)傳遞時(shí)的特征消失問題,增加各層之間的特征傳遞,防止地物目標(biāo)的細(xì)節(jié)特征信息丟失,一定程度上能夠減少網(wǎng)絡(luò)的參數(shù)量。
為保證網(wǎng)絡(luò)其他層與DenseNet模塊參數(shù)的正常傳遞,設(shè)置DenseNet模塊輸入輸出特征圖與原始ResNet模塊的輸入輸出尺度相同。將改進(jìn)DenseNet用于YOLOv4特征提取,結(jié)構(gòu)如圖2所示。
圖2 改進(jìn)DenseNet的YOLOv4特征提取網(wǎng)絡(luò)
注意力機(jī)制有著即插即用的特點(diǎn),被廣泛用于目標(biāo)檢測領(lǐng)域[7]。其參數(shù)量本身不高,但在卷積神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測中,往往被多次調(diào)用,這將對(duì)網(wǎng)絡(luò)造成一定負(fù)擔(dān)[8],如何優(yōu)化其結(jié)構(gòu),減少模塊調(diào)用次數(shù),對(duì)目標(biāo)予以聚焦和關(guān)注,更快更準(zhǔn)地獲取注意力信息,將其用于鐵路沿線地物目標(biāo)檢測有著重要作用。本工作提出一種改進(jìn)的注意力機(jī)制用于YOLOv4進(jìn)行地物檢測。首先,融合通道注意SE模塊和跨階段局部單元CSP提出SE-CSP模塊,降低模型大小,解決因注意力模塊多次執(zhí)行導(dǎo)致參數(shù)量大的問題,再用ICBAM注意模塊聚焦原始特征信息,解決將CBAM直接用于YOLOv4導(dǎo)致對(duì)鐵路目標(biāo)提取能力差的問題。
將YOLOv4模型用于鐵路沿線遙感影像地物檢測過程中,存在特征提取網(wǎng)絡(luò)性能較差和模型參數(shù)量較大問題,無法提取到地物特征圖通道之間的相關(guān)信息,從而降低了殘差塊對(duì)地物特征的提取能力。為增強(qiáng)通道特征之間的相關(guān)性以提高網(wǎng)絡(luò)的特征提取能力,將SE模塊嵌入到ResNet網(wǎng)絡(luò)中,通過SE模塊學(xué)習(xí)不同通道之間的相關(guān)性,并且篩選出針對(duì)通道的注意力,以達(dá)到較好的特征提取效果。
由于YOLOv4的骨干網(wǎng)CSPDarknet53每訓(xùn)練一次都需要執(zhí)行23次殘差塊,且每次都需要通過使用SE模塊顯式地建立通道間的相互依賴關(guān)系,自適應(yīng)地重新校準(zhǔn)通道特征響應(yīng),這將增加網(wǎng)絡(luò)的計(jì)算量,同時(shí)影響網(wǎng)絡(luò)的檢測速度。為此,提出一種SE-CSP模塊,通過分離殘差塊中的Res Unit與SE模塊,并將SE模塊拼接到Res Unit之后,保證SE模塊建立通道依賴關(guān)系的同時(shí)將SE模塊的執(zhí)行次數(shù)減少至5次,從而保證在不降低網(wǎng)絡(luò)提取特征能力的同時(shí)減少網(wǎng)絡(luò)的計(jì)算量和SE模塊的重復(fù)調(diào)用次數(shù)。本文提出的SE-CSP模塊如圖3所示。
圖3 本文提出的SE-CSP模塊
鐵路路基具有路線長、與周邊環(huán)境接觸面廣、排列不規(guī)則等特點(diǎn),導(dǎo)致對(duì)其提取困難。文獻(xiàn)[9]為解決大尺度目標(biāo)檢測困難問題,在網(wǎng)絡(luò)的輸出端直接使用CBAM注意力模塊,該方法在增強(qiáng)大尺度目標(biāo)特征的同時(shí)削弱了對(duì)中小尺度目標(biāo)的提取能力。為此,本工作提出一種改進(jìn)的CBAM注意力機(jī)制ICBAM。ICBAM能夠在保留原特征信息的同時(shí)增強(qiáng)對(duì)鐵路目標(biāo)的特征提取。所提ICBAM由CBM模塊、通道注意模塊和空間注意模塊三部分組成,其結(jié)構(gòu)如4所示。
圖4 ICBAM模塊
給定輸入特征圖F∈RC×H×W,CBAM依次推導(dǎo)出1D通道注意圖Mc∈RC×1×1和2D空間注意圖Ms∈R1×H×W。由此,ICBAM注意力模塊對(duì)特征圖的整體處理過程為
F′=δ(δ(F))?Mc(δ(F))
(2)
F″=δ(F′)?Ms(F′)
(3)
F?=δ(δ(δ(F))F⊕F″)
(4)
其中,Mc(F)和Ms(F′)分別表示在通道注意和空間注意上獲取的權(quán)重,?表示逐元素乘法,⊕表示連接操作,δ表示對(duì)輸入特征圖進(jìn)行CBM操作,F(xiàn)′是F在通道上的加權(quán)結(jié)果,F(xiàn)″是F′在空間上的加權(quán)結(jié)果,F(xiàn)?為ICBAM的最終輸出結(jié)果。
通道注意Mc(F)的具體計(jì)算公式為
Mc(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))
(5)
式(5)中,“+”表示逐元素求和,“σ”表示sigmoid激活,MLP是帶有一個(gè)隱藏層的多層感知器,由其組成共享網(wǎng)絡(luò)。MLP權(quán)重由W0和W1輸入共享。其中W0∈RC/r×C,W1∈RC×C/r。
空間注意Ms(F)的具體計(jì)算公式為
Ms(F)=σ(f7×7([AvgPool(F); MaxPool(F)]))
(6)
式(6)中,σ表示激活函數(shù),f7×7表示一個(gè)7×7卷積。
為使YOLOv4用于鐵路沿線遙感影像地物檢測時(shí)能滿足精度與實(shí)時(shí)性的要求,對(duì)其做了相應(yīng)改進(jìn)。在骨干網(wǎng)方面,通過改進(jìn)DensNet,增強(qiáng)了特征重用,減少了小目標(biāo)地物的細(xì)節(jié)特征丟失現(xiàn)象。在改進(jìn)注意力方面包括改進(jìn)通道注意SE模塊和改進(jìn)通道空間注意CBAM模塊兩方面。在SE方面,通過在每個(gè)CSP單元中的ResUnit之后連接一個(gè)SE模塊,與CBM模塊共同組成SE-CSPX模塊,減少了CSP單元中殘差塊的重復(fù)調(diào)用次數(shù),在減少模型大小的同時(shí)提高了地物檢測精度。在CBAM方面,通過采用CBM模塊、通道注意和空間注意模塊組成ICBAM模塊,并在每個(gè)尺度預(yù)測結(jié)果輸出之前引入ICBAM,在保留原始地物特征信息的同時(shí),降低了大尺度鐵路目標(biāo)的漏檢率。引入改進(jìn)注意力機(jī)制后的YOLOv4整體結(jié)構(gòu)模型如圖5所示。其中,SE-CSPX模塊中的X表示該模塊重復(fù)使用的次數(shù)。本改進(jìn)方法能夠在降低模型參數(shù)的同時(shí)提升模型檢測精度和模型訓(xùn)練效率,具有高效可行性。
圖5 改進(jìn)的YOLOv4網(wǎng)絡(luò)模型
考慮到現(xiàn)有公開數(shù)據(jù)集無法滿足鐵路沿線地物檢測需求,本文采集Worldview Ⅰ,Worldview Ⅱ和QuickBird衛(wèi)星遙感影像數(shù)據(jù),采用2 048張鐵路沿線數(shù)據(jù)制作地物檢測數(shù)據(jù)集,并用數(shù)據(jù)增強(qiáng)方法實(shí)現(xiàn)數(shù)據(jù)集擴(kuò)充。數(shù)據(jù)包括鐵路(Rail)、房屋(House)、樓宇建筑(Building)、農(nóng)田(Farmland)和水池(Pool)五種地物目標(biāo)。其中鐵路764張,房屋130張,樓宇建筑220張,農(nóng)田562張,水池372張。通過旋轉(zhuǎn)、鏡像、改變亮度、高斯濾波、平移和縮放將數(shù)據(jù)集擴(kuò)充為原來的3倍,擴(kuò)充后共包含地物目標(biāo)圖像6 144張。使用數(shù)據(jù)集的70%作為訓(xùn)練集,10%作為驗(yàn)證集,20%作為測試集。
算法運(yùn)行環(huán)境:操作系統(tǒng)Windows 10,平臺(tái)Keras,語言Python,CPUIntel(R)Xeon(R)2.40 GHz,顯卡16 G的NVIDIA Quadro P5000,運(yùn)行內(nèi)存128 GB。
實(shí)驗(yàn)中設(shè)置批量訓(xùn)練數(shù)據(jù)樣本數(shù)量(Batch_size)為8,圖像大小(Image_size)為608×608,整個(gè)數(shù)據(jù)集訓(xùn)練次數(shù)(Epochs)為100,動(dòng)量(Momentun)為0.9,初始學(xué)習(xí)率(Initial_learning_rate)為0.001。為使訓(xùn)練模型達(dá)到較高精度,使用遷移學(xué)習(xí)策略在公開數(shù)據(jù)集DOTA上訓(xùn)練生成權(quán)重,然后通過共享權(quán)重方式在本數(shù)據(jù)集上進(jìn)行訓(xùn)練。訓(xùn)練過程分兩階段,第一階段凍結(jié)原始網(wǎng)絡(luò)前192層訓(xùn)練得到模型權(quán)重,然后在此基礎(chǔ)上解凍網(wǎng)絡(luò)并調(diào)整Batch_size為8,完成第二階段訓(xùn)練。為防止固定學(xué)習(xí)率對(duì)訓(xùn)練精度的影響,當(dāng)訓(xùn)練5次后模型精度不再發(fā)生變化時(shí),使用余弦退火算法改變學(xué)習(xí)率,以得到最優(yōu)模型。
為分別驗(yàn)證改進(jìn)DenseNet模塊、SE-CSP模塊、ICBAM模塊對(duì)檢測效果的影響,進(jìn)行消融實(shí)驗(yàn),部分實(shí)驗(yàn)結(jié)果如圖6所示。其中,圖6(a)為遙感影像原圖,圖6(b)為YOLOv4算法檢測結(jié)果,圖6(c)為改進(jìn)DenseNet用于原YOLOv4特征提取檢測結(jié)果,圖6(d)為改進(jìn)DenseNet和SE模塊用于原YOLOv4檢測結(jié)果,圖6(e)為改進(jìn)DenseNet、SE模塊和CBAM用于原YOLOv4檢測結(jié)果。檢測結(jié)果中紅、深藍(lán)、黃、淡藍(lán)和粉色框分別代表鐵路、水池、房屋、農(nóng)田和高樓建筑物的預(yù)測框。
圖6 消融實(shí)驗(yàn)測試結(jié)果
可以看出,通過使用改進(jìn)DenseNet用于YOLOv4特征提取,對(duì)部分圖像中鐵路的檢測精度有所提高,對(duì)少部分圖像中房屋和樓宇建筑的漏檢率明顯降低;通過在骨干網(wǎng)中CSP單元的每個(gè)ResUnit后連接SE模塊,對(duì)大部分圖像中的鐵路檢測效果明顯,通過在輸出網(wǎng)絡(luò)之前引入ICBAM注意力機(jī)制,對(duì)大多數(shù)圖像中鐵路的檢測精度進(jìn)一步提高,對(duì)少部分圖像中農(nóng)田樓宇和建筑的漏檢率進(jìn)一步降低。
通過客觀評(píng)價(jià)分析,不同模塊的改進(jìn)過程中檢測準(zhǔn)確度、召回率、平均精度、模型大小和總時(shí)間對(duì)比分析結(jié)果見表1。
表1 消融實(shí)驗(yàn)結(jié)果分析
經(jīng)分析可知,通過使用DenseNet改進(jìn)YOLOv4特征提取網(wǎng)絡(luò),模型參數(shù)量相比于原YOLOv4減少了7.81%,模型大小降低了6.89%,平均精度mAP提高了0.72%。通過使用SE-CSP模塊,參數(shù)量減少了9.38%,模型大小進(jìn)一步降低了0.66%,mAP進(jìn)一步提高了1.39%。通過在輸出網(wǎng)絡(luò)之前引入ICBAM注意力模塊,檢測速度沒有明顯降低,但對(duì)大尺度鐵路目標(biāo)的檢測能力有所增強(qiáng),而對(duì)其他目標(biāo)精度損失的代價(jià)僅為0.48%,每幅圖像的平均檢測時(shí)間為0.052 s。結(jié)果表明這些改進(jìn)效果可行,適當(dāng)組合效果更好。
為驗(yàn)證整體改進(jìn)方法的有效性,將其與YOLOv3,YOLO-UAV[10],YOLO-Ship[11]以及YOLOv4算法進(jìn)行比較,更直觀的部分實(shí)驗(yàn)檢測結(jié)果如圖7所示。其中圖7(a)為遙感影像原圖,圖7(b)為YOLOv3算法檢測結(jié)果、圖7(c)為YOLOv3-UAV算法-文獻(xiàn)[10]檢測結(jié)果、圖7(d)為YOLOv3-Ship算法-文獻(xiàn)[11]檢測結(jié)果、圖7(e)為YOLOv4算法檢測結(jié)果、圖7(f)為本改進(jìn)方法的檢測結(jié)果。更加具體的客觀評(píng)價(jià)分析如表2所示。
圖7 不同目標(biāo)檢測算法與改進(jìn)算法實(shí)驗(yàn)結(jié)果
表2 不同目標(biāo)檢測算法對(duì)比
表2表明,改進(jìn)方法在準(zhǔn)確率(Precision)、召回率(Recall)和F1得分方面優(yōu)于其他算法。模型大小較原YOLOv4減少了8.53%,平均檢測精度mAP相對(duì)YOLOv4提高了2.11%。對(duì)多目標(biāo)、模糊目標(biāo)和小目標(biāo)的誤檢率降低。能夠達(dá)到較高的精度和速度,能夠有效檢測復(fù)雜背景下的遙感影像地物目標(biāo)。
提出改進(jìn)YOLOv4的鐵路沿線地物檢測方法,與原YOLOv4算法相比,該方法檢測精度更高、速度更快。針對(duì)小目標(biāo)地物容易出現(xiàn)細(xì)節(jié)信息丟失現(xiàn)象產(chǎn)生的漏檢問題,使用改進(jìn)DenseNet增強(qiáng)對(duì)小目標(biāo)檢測能力;為解決SE-ResNet嵌入YOLOv4模型導(dǎo)致參數(shù)量較大問題,提出一種SE-CSP模塊,使其在提高檢測精度的同時(shí)減少模型大小,從而提高檢測速度;針對(duì)鐵路目標(biāo)特征提取困難問題,提出一種ICBAM注意力機(jī)制,提高對(duì)鐵路目標(biāo)的檢測效率。通過實(shí)驗(yàn)驗(yàn)證,得出改進(jìn)方法在檢測精度和速度方面都有所提高。但對(duì)于鐵路目標(biāo),數(shù)據(jù)樣本中只標(biāo)記了水平和垂直方向的鐵路。未來,可進(jìn)一步開展對(duì)具有旋轉(zhuǎn)角度的目標(biāo)檢測方法和性能提升的研究工作。