李海豐,韓紅陽
(中國民航大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,天津 300300)
由于荷載因素和環(huán)境因素的反復(fù)作用,機場道面結(jié)構(gòu)在使用過程中會逐漸出現(xiàn)各種結(jié)構(gòu)病害,對其定期檢修維護是確保機場安全運營的關(guān)鍵。目前,面向公路道面的病害檢測算法已經(jīng)取得了一定進展,但專門針對機場道面病害檢測問題的研究很少。當(dāng)前機場仍采用以人工巡檢為主的道面病害檢測算法,耗時費力、主觀性強且成本高,無法滿足機場快速發(fā)展的需求。因此,自動化的機場道面病害檢測已成為當(dāng)前研究的熱點。
為了從圖像中快速、準(zhǔn)確地檢測出病害,部分學(xué)者采用傳統(tǒng)的圖像處理方法。Sorncharean和Phiphobmongkol[1]基于網(wǎng)格單元劃分,設(shè)計了一種用于強紋理和光照不均勻模型的裂縫檢測算法。李清泉等[2]提出一種將裂縫提取問題轉(zhuǎn)化為格狀圖頂點之間最小代價路徑搜索的算法用以檢測裂縫。Guan等[3]運用裂縫與背景信息存在的線性差異采用張量投票的方法增強裂縫特征。Peng等[4]基于改進Otsu閾值分割算法和改進的自適應(yīng)迭代閾值分割算法,提出二次閾值分割算法,用于檢測機場跑道裂縫。然而,該類算法易受環(huán)境因素干擾,而實際機場道面狀況復(fù)雜,如背景紋理多樣、病害與背景對比度低、噪聲干擾強烈等,導(dǎo)致該類算法無法適用。
近年來,深度學(xué)習(xí)尤其是卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)在圖像識別領(lǐng)域取得了巨大進展[5-6],出現(xiàn)了一批優(yōu)秀的目標(biāo)檢測算法,如Faster R-CNN系列[7-9]、STDN[10]、Cascade R-CNN[11]、DetNet[12]等,這些算法在通用目標(biāo)檢測數(shù)據(jù)集上取得了很好的效果。然而,本文所研究的機場道面圖像數(shù)據(jù)與通用目標(biāo)檢測圖像數(shù)據(jù)存在顯著不同,具體體現(xiàn)在:根據(jù)MH/T 5024—2009[13],機場道面中包含裂縫、角隅斷裂、接縫破碎、修補等類型的結(jié)構(gòu)病害,接縫破碎是接縫兩側(cè)各60 cm范圍內(nèi)出現(xiàn)的裂縫,角隅斷裂是在角隅處產(chǎn)生的與接縫斜交的裂縫,修補則是對嚴(yán)重的裂縫進行維修后重新產(chǎn)生的病害,它們具有很大的相似性,都呈現(xiàn)為細帶狀結(jié)構(gòu)。因此,直接將現(xiàn)有目標(biāo)檢測算法應(yīng)用于機場道面細帶狀結(jié)構(gòu)病害,實驗結(jié)果發(fā)現(xiàn),對于隱藏在復(fù)雜背景中的小病害易出現(xiàn)漏檢,大病害易出現(xiàn)檢測不完整、位置定位不準(zhǔn)的問題。近年來,國內(nèi)外學(xué)者提出了一系列專門針對機場道面病害檢測的深度學(xué)習(xí)算法。例如,王森等[14]設(shè)計了全卷積網(wǎng)絡(luò)Crack FCN模型用以檢測裂縫。Cha等[15]提出CNN和滑動窗口結(jié)合的檢測算法對混凝土裂縫進行檢測,提高了裂縫分類的準(zhǔn)確度。2018年,Cha等[16]使用改進的Faster R-CNN來實時檢測結(jié)構(gòu)中多種類型的病害。Zou等[17]設(shè)計了多尺度融合的編解碼結(jié)構(gòu)網(wǎng)絡(luò)DeepCrack,通過多尺度特征融合實現(xiàn)更佳的裂縫檢測。以上算法雖然取得了一定的效果,但均存在網(wǎng)絡(luò)深層感受野較小造成深層特征語義信息不足的問題,并且未能很好地利用圖像的細節(jié)信息,使得病害檢測的邊界定位模糊。上述問題導(dǎo)致現(xiàn)有基于深度學(xué)習(xí)的病害檢測算法仍無法完全適用于機場道面細帶狀結(jié)構(gòu)病害檢測。
基于以上分析,本文以DetNet[12]為主干網(wǎng)絡(luò),提出深度神經(jīng)網(wǎng)絡(luò)模型DetMSPNet,與目前經(jīng)典的特征提取網(wǎng)絡(luò)相比,DetNet通過引入額外的殘差塊并減少特征圖下采樣的次數(shù)和通道數(shù),在獲得大感受野的同時保持特征圖的空間分辨率,有利于減少病害特征的損失,但對于細帶狀結(jié)構(gòu)病害寬度狹小、與復(fù)雜背景對比度低等情況,特征提取能力仍不足。DetMSPNet在DetNet基礎(chǔ)上加入注意力和特征融合機制,提升了模型對于細帶狀目標(biāo)的檢測能力,實驗結(jié)果表明了本文算法的有效性。
本文提出的基于注意力機制與特征融合的深度神經(jīng)網(wǎng)絡(luò)模型DetMSPNet主要由4部分組成:殘差空洞金字塔模塊(DetASPP)、最大池化支路、3個不同擴張率的擴張卷積、金字塔池化模塊(PPM),其詳細結(jié)構(gòu)如圖1所示。首先,在網(wǎng)絡(luò)各卷積層加入注意力機制模塊CBAM[18],增強細帶狀結(jié)構(gòu)病害的注意力權(quán)重,使其更關(guān)注于病害信息,抑制干擾信息;其次,設(shè)計DetASPP模塊,通過多尺度特征學(xué)習(xí),充分提取細帶狀結(jié)構(gòu)病害特征;然后,增加最大池化支路,保留淺層特征具有的豐富細節(jié)信息,使得淺、深層特征進行融合,提高低對比度情況下對于機場道面細帶狀結(jié)構(gòu)病害的定位能力,并且將深層病害特征通過3種不同擴張率的擴張卷積和PPM模塊,充分聚合不同區(qū)域的上下文信息,使得提取的特征包含更多全局上下文信息,利用豐富的上下文信息進一步減少細帶狀結(jié)構(gòu)病害識別錯誤;最后,對不同操作下產(chǎn)生的病害特征進行融合,從而獲得最終的病害檢測結(jié)果。
圖1 DetMSPNet詳細結(jié)構(gòu)Fig.1 Detailed structure of DetMSPNet
CBAM是一種結(jié)合了通道和空間的注意力機制模塊,在DetMSPNet的每個殘差塊后面加入該模塊,結(jié)構(gòu)如圖2所示。給定一個病害特征圖F∈RC×H×W,C為通道數(shù),H為特征圖的高度,W為特征圖的寬度。CBAM以此推斷出一個1維的通道注意力權(quán)重Mc∈RC×1×1,之后通道注意力權(quán)重Mc與特征圖F計算得到通道注意力特征圖F′。
圖2 嵌入CBAM的DetBlockFig.2 DetBlock embedded in CBAM
式中:?表示逐元素相乘。
F′將作為接下來空間注意力模塊的輸入特征?;谕ǖ雷⒁饬μ卣鲌DF′,CBAM 推斷出一個2維的空間注意力權(quán)重Ms∈R1×H×W。然后利用F′與空間注意力權(quán)重Ms相乘得到空間注意力特征圖F″。
最終輸出的特征圖F″與原始特征進行融合以進行自適應(yīng)特征細化。在每個殘差模塊階段,不是簡單地提取病害特征,而是每次提取特征后,再提取病害特征的通道域和空間域注意力權(quán)重,根據(jù)注意力權(quán)重對輸入特征進行細化調(diào)整,通過加入CBAM模塊,特征學(xué)習(xí)更加專注于機場道面細帶狀結(jié)構(gòu)病害,抑制其他干擾信息,使得模型對于病害檢測效果更佳。
機場道面裂縫、接縫破碎、角隅斷裂、修補等細帶狀結(jié)構(gòu)病害由于寬度狹小,在圖像中像素占比少,加大了檢測難度,為此,本文構(gòu)建了一個DetASPP模塊在大感受野和多尺度空間下提取病害特征。DetASPP模塊及殘差空洞金字塔(Resdual ASPP)塊結(jié)構(gòu)如圖1所示。DetASPP模塊設(shè)置如下:該模塊由Resdual ASPP塊與殘差塊交替連接組成,病害特征先被送到Resdual ASPP塊生成多尺度特征,再將得到的特征輸入殘差塊進行特征融合,該結(jié)構(gòu)重復(fù)3次產(chǎn)生最終特征。每個Resdual ASPP塊由3組擴張卷積組(ASPP Group)組成,在每個ASPP Group中,先利用3個擴張率分別為1、4、8的3×3卷積層進行特征提取,再用1個1×1卷積對3個擴張卷積層提取的特征進行融合。通過DetASPP模塊進行多尺度特征提取,獲得更有辨別力的病害特征,有助于更好地識別機場道面細帶狀結(jié)構(gòu)病害。
通過加入CBAM 模塊和構(gòu)建DetASPP模塊,可以一定程度上加強細帶狀結(jié)構(gòu)病害的特征提取能力,但隨著網(wǎng)絡(luò)層次的加深,經(jīng)過多次卷積池化后,深層網(wǎng)絡(luò)提取的高度抽象的語義特征會在一定程度上丟失病害的細節(jié)信息,加之機場道面油污、水漬、標(biāo)線等的存在造成病害和背景之間的對比度較低,使得病害邊界變得模糊,影響病害檢測的定位能力。為此,本文在DetMSPNet網(wǎng)絡(luò)的第3個殘差塊上添加了一個最大池化支路,如圖1所示。此支路提取到的特征信息能夠極大地保留病害的細節(jié)信息,使得之后可以對保留細節(jié)信息的淺層特征和具有高度抽象的深層特征相融合,增加信息的多樣性,提高DetMSPNet對于機場道面細帶狀結(jié)構(gòu)病害的定位能力。
機場道面裂縫、接縫破碎、角隅斷裂、修補等細帶狀結(jié)構(gòu)病害大小不一,一些又細又小的病害受到干擾,有可能出現(xiàn)漏檢,而大病害可能超出感受野的范圍造成病害檢測的不連續(xù),導(dǎo)致網(wǎng)絡(luò)對這些病害特征的提取效果較差。為此,在網(wǎng)絡(luò)提取到最后一層病害特征之后加入了3個擴張率分別為6、12、18的擴張卷積和金字塔池化模塊[19]。相比于普通卷積,擴張卷積能夠在不改變特征圖尺寸的同時有效增加網(wǎng)絡(luò)的感受野,如圖3所示。輸入圖像中有效感受野受限,經(jīng)過3個擴張率d分別為6、12、18的擴張卷積,擴大了有效感受野并保持圖像細節(jié),實現(xiàn)在大感受野范圍內(nèi)提取到更多的病害信息。PPM 模塊如圖1所示,該模塊中構(gòu)建了深度為4的特征金字塔,不同深度的病害特征是基于輸入的病害特征通過不同尺度的池化操作得到的,本文池化后的特征尺寸分別是1×1、2×2、3×3和6×6;通過一個1×1卷積層將病害特征維度縮減為原來的1/4;將這些金字塔特征直接上采樣到與輸入的病害特征相同尺寸,并與輸入特征進行融合,通過聚合不同區(qū)域的上下文信息,從而得到融合后帶有更多全局上下文信息的病害特征。
圖3 三個不同擴張率的擴張卷積Fig.3 Dilated convolutions with three dilated rates
本文利用Python和OpenCV,使用深度學(xué)習(xí)框架Pytorch實現(xiàn)和訓(xùn)練所設(shè)計神經(jīng)網(wǎng)絡(luò)模型。實驗硬件環(huán)境是主頻為3.2 GHz的i7-8700 CPU,64 GB的運行內(nèi)存,11 GB顯存的GeForceGTX1080ti顯卡。操作系統(tǒng)為Ubuntu18.04。
本文建立了一個機場道面病害圖像數(shù)據(jù)集用于算法驗證,數(shù)據(jù)集中的圖像均來自真實機場道面環(huán)境,數(shù)據(jù)采集平臺為成都圭目機器人有限公司的機場道面安全檢測機器人,如圖4所示。該檢測機器人集成人造光源、高清面陣相機、差分GPS等設(shè)備,為本文實驗提供全國數(shù)十家機場的道面數(shù)據(jù),其中采集圖像大小為1 800×900像素和1 600×900像素,實驗中采用900×600像素的滑動窗口在不改變原始病害特征的情況下對原圖進行切分,將圖像分辨率統(tǒng)一調(diào)整為900×600像素,通過挑選共選擇了2 733張包含細帶狀結(jié)構(gòu)病害的道面圖像作為數(shù)據(jù)集,數(shù)據(jù)集命名為APD,其中細帶狀結(jié)構(gòu)病害主要包含4類:裂縫、接縫破碎、角隅斷裂和修補。通過數(shù)據(jù)增強方法(水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)、縮放變換、對比度變換)對該數(shù)據(jù)集進行擴充,最終樣本數(shù)量為9 563張機場道面病害圖像,APD具體詳情如表1所示。
圖4 機場道面安全檢測機器人Fig.4 Airport pavement safety detection robot
表1 APD數(shù)據(jù)集詳情Table 1 Details of APD dataset
參照DetNet[12]提供的超參數(shù)設(shè)置及實驗中多次參數(shù)嘗試,本文使用隨機梯度下降(stochastic gradient descent,SGD)對網(wǎng)絡(luò)參數(shù)進行學(xué)習(xí),權(quán)重衰減系數(shù)設(shè)置為0.000 1,使用動量系數(shù)來加速梯度下降,設(shè)為0.9,IoU閾值設(shè)置為0.5,學(xué)習(xí)率為0.001,每迭代5個epochs對學(xué)習(xí)率除以10進行更新,由于受到實驗平臺硬件約束,將batch-size設(shè)置為2,一共訓(xùn)練12 epochs。
為了量化檢測結(jié)果,采用平均精確度AP、平均精確度均值mAP對病害檢測性能進行評估。其中,AP衡量模型在檢測每個類別上的表現(xiàn)程度,mAP衡量模型在檢測所有類別上的表現(xiàn)程度,通過將每個類別對應(yīng)的AP值算術(shù)平均后得到。這2個值的計算依賴于精確率P和召回率R兩個參數(shù)。精確率和和召回率的定義如下:
式中:TP為病害正確識別為病害的個數(shù);FP為非病害錯誤識別為病害的個數(shù);FN為病害錯誤識別為非病害的個數(shù)。
在精確率和召回率的基礎(chǔ)上,AP和mAP的定義如下:
式中:APi為第i類病害的平均精確度;N為病害類型總數(shù)。
采用Faster R-CNN[9]、STDN[10]、Cascade RCNN[11]作為本文的對比算法。其中,STDN通過設(shè)計尺度變換模塊(scale-transfer module)在不增加額外參數(shù)和計算量的同時解決了不同目標(biāo)檢測時的尺度問題。Faster R-CNN則是目前使用最廣泛的基于候選區(qū)域的目標(biāo)檢測算法。Cascade RCNN在Faster R-CNN的基礎(chǔ)上,通過使用不同的IoU閾值,訓(xùn)練了多個級聯(lián)的檢測器,可獲得更精細化的檢測結(jié)果。
根據(jù)以上實驗設(shè)置,完成了在APD數(shù)據(jù)集上的對比實驗,并將測試結(jié)果展示在表2中。表中:最佳結(jié)果以加粗突出顯示。從表2中可以看出,本文算法對于裂縫、接縫破碎、角隅斷裂、修補等4類病害的AP和mAP值均優(yōu)于其他3種對比算法。相比于其他3種病害,裂縫的AP值較低,這是因為雖然接縫破碎、角隅斷裂等病害寬度狹小、大小不一,但位置較為固定,如接縫破碎是在接縫處出現(xiàn),角隅斷裂則產(chǎn)生在角隅處并與接縫斜交,而裂縫分布沒有規(guī)律且形態(tài)多變,因此檢測難度更大。此外,本文比較了各算法檢測單張圖像的平均速度,可以發(fā)現(xiàn),本文算法的檢測速度與Cascade R-CNN相當(dāng),慢于Faster R-CNN和STDN??紤]到機場道面結(jié)構(gòu)病害檢測應(yīng)用對于檢測速度要求不高,本文算法能夠滿足應(yīng)用需求。圖5展示了各算法在APD數(shù)據(jù)集上的部分可視化檢測結(jié)果??梢钥闯?,在復(fù)雜環(huán)境造成的低對比度情況下,STDN出現(xiàn)了漏檢,而本文算法、Faster RCNN和Cascade R-CNN算法都檢測到了細帶狀結(jié)構(gòu)病害,但Faster R-CNN算法病害檢測不完整,出現(xiàn)了部分漏檢;相較于Cascade R-CNN算法,本文算法的檢測結(jié)果更貼合于病害的真實形態(tài),精度更高,這表明在低對比度情況下,本文算法具有更好的檢測效果。圖5第7行展示了對于小尺寸的細帶狀結(jié)構(gòu)病害,相較于STDN和Cascade R-CNN算法,本文算法定位更精準(zhǔn),檢測效果更佳。實驗結(jié)果表明,本文算法的平均檢測精度更高。
圖5 不同算法在APD數(shù)據(jù)集上的可視化結(jié)果展示Fig.5 Visualization results of various algorithms on APD dataset
表2 機場道面APD數(shù)據(jù)集檢測結(jié)果Table 2 Detection results on airport pavement APD dataset
為了證明DetMSPNet中不同組成部分的有效性,開展了如下消融實驗。
2.6.1 注意力機制模塊的有效性
為了驗證CBAM 對于機場道面細帶狀結(jié)構(gòu)病害檢測的有效性,從DetMSPNet中去除CBAM模塊,其他條件不變,實驗結(jié)果如表3所示??梢钥闯?,去掉CBAM 后,角隅斷裂、修補的AP及mAP值均有一定程度的下降。這是因為:CBAM在幾乎不增加網(wǎng)絡(luò)開銷的情況下,可以使得特征學(xué)習(xí)更加關(guān)注于機場道面病害信息,抑制干擾信息,學(xué)習(xí)到的病害特征更具代表性。
表3 CBAM 模塊的有效性Table 3 Effectiveness of CBAM module
2.6.2 殘差空洞金字塔模塊的有效性
保持其他條件不變,比較DetMSPNet中有無DetASPP模塊病害檢測的性能,實驗結(jié)果如表4所示。可以看出,去除DetASPP模塊后,mAP值從78.51%下降至78.23%,該結(jié)果表明對于機場道面細帶狀結(jié)構(gòu)病害,DetASPP模塊能夠從多尺度空間下提取更多的病害特征信息。
表4 DetASPP模塊的有效性Table 4 Effectiveness of DetASPP module
2.6.3 最大池化支路的有效性
本組實驗用于對比模型中有無最大池化支路對病害最終檢測結(jié)果的影響。如表5所示,去掉最大池化支路,裂縫、角隅斷裂和修補的AP值分別下降了0.26%、1.73%、1.23%,mAP值從78.51%下降至77.77%,這表明最大池化支路提取的淺層特征能夠提供更豐富的病害細節(jié)信息,之后淺、深層特征融合有利于病害更精確的定位,進一步提高了檢測性能。
表5 最大池化支路的有效性Table 5 Effectiveness of maximum pooling branch
2.6.4 三種不同擴張率的擴張卷積的有效性
本文使用擴張率分別為6、12、18的3個擴張卷積來增大感受野,使得深層特征包含更多病害信息。為驗證其有效性,保持其他條件不變,比較模型中有無該模塊病害檢測的性能。如表6所示,裂縫、角隅斷裂、修補AP值分別下降了0.69%、0.63%、0.48%,mAP值從78.51%下降至78.25%。這表明不同擴張率的擴張卷積有助于DetMSPNet在更大的感受野范圍內(nèi)提取到更多的病害信息。
表6 三種不同擴張率的擴張卷積的有效性Table 6 Effectiveness of dilated convolution with three dilated rates
2.6.5 金字塔池化模塊的有效性
通過對比加入和去除PPM 模塊的效果,來驗證其有效性,實驗結(jié)果如表7所示。與DetMSPNet相比,去掉該模塊后,裂縫、角隅斷裂、修補AP值分別下降了1.38%、1.73%、1.1%,mAP值從78.51%下降至77.75%。這是因為:PPM模塊通過聚合不同區(qū)域的上下文信息,減少了不同子區(qū)域間上下文信息的丟失,從而提高了對全局信息的獲取能力,使得DetMSPNet的分類能力得以提高。
表7 金字塔池化模塊的有效性Table 7 Effectiveness of pyramid pooling module
1)針對機場道面裂縫、角隅斷裂、接縫破碎、修補等細帶狀結(jié)構(gòu)病害寬度狹小、長短不一、圖像中像素占比少,且與復(fù)雜背景對比度低的問題,本文提出了一種基于注意力機制和特征融合的機場道面細帶狀結(jié)構(gòu)病害檢測算法。
2)利用注意力機制更加關(guān)注病害信息,抑制干擾信息并在多尺度、多層次下提取特征,使得融合后的病害特征更具代表性。
3)在采集的機場道面病害圖像數(shù)據(jù)集APD上進行了實驗,結(jié)果表明,與目前經(jīng)典的目標(biāo)檢測算法相比,本文算法具有更高的平均檢測精度,能夠適用于機場道面細帶狀結(jié)構(gòu)病害檢測任務(wù)。