陳榮敏,王皓冉,汪 雙,馮春成,李永龍
(1.中國(guó)大唐集團(tuán)公司,北京 100045;2.清華四川能源互聯(lián)網(wǎng)研究院,四川 成都 610000;3.西南科技大學(xué),四川 綿陽(yáng) 621000)
當(dāng)前壩面人工巡檢存在安全風(fēng)險(xiǎn)大、巡檢成本高、缺陷識(shí)別效率低等問題[1-2]。近年來(lái)無(wú)人機(jī)在大型基礎(chǔ)設(shè)施巡檢方面發(fā)展迅猛,通過(guò)無(wú)人機(jī)搭載激光雷達(dá)、可見光相機(jī)等傳感器,可實(shí)現(xiàn)對(duì)基礎(chǔ)設(shè)施多維信息和全方位的缺陷巡檢[3]。壩面表觀裂紋具有背景復(fù)雜,分布不均,非結(jié)構(gòu)化等缺點(diǎn),利用無(wú)人機(jī)采集壩面圖像可以極大改善目前人工巡檢的效率。如果僅依靠人工從無(wú)人機(jī)采集的原始圖像中識(shí)別壩面裂紋缺陷,這也將面臨工作量大,同時(shí)存在效率低下、判斷主觀化等問題。而采用傳統(tǒng)圖像算法分析超聲圖像完成檢測(cè)缺陷的缺點(diǎn)在于設(shè)備成本高、識(shí)別率低且耗時(shí),無(wú)法直觀給出缺陷檢測(cè)結(jié)果[4-7]。張小明[8]提出了一種包含數(shù)據(jù)采集與圖像數(shù)據(jù)處理的缺陷自動(dòng)檢測(cè)方法,該方法使用圖像處理技術(shù)對(duì)采集到的數(shù)據(jù)進(jìn)行分析和處理,并結(jié)合計(jì)算結(jié)果判斷出缺陷的位置和形狀。陳謀欽等[9]將二維視覺和三維視覺相結(jié)合,可以自動(dòng)識(shí)別壩面缺陷,并獲得缺陷的大小、形狀和深度信息,但精度不是很高。
近幾年以計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)為基礎(chǔ)的缺陷檢測(cè)方法已成為研究熱點(diǎn)[10]。Gui等[11]提出了基于數(shù)據(jù)驅(qū)動(dòng)和支持向量機(jī)的混凝土缺陷檢測(cè)算法,就時(shí)序數(shù)據(jù)而言可有效檢測(cè)出缺陷。Nishikawa等[12]提出了分步級(jí)聯(lián)式混凝土缺陷檢測(cè)算法,首先采用圖像濾波算子進(jìn)行預(yù)處理,然后消除殘余噪聲以便有效地檢測(cè)出缺陷。Hoang等[13]建立了傳統(tǒng)邊緣檢測(cè)與卷積網(wǎng)絡(luò)兩種缺陷檢測(cè)方法,并進(jìn)行了對(duì)比試驗(yàn),結(jié)果表明基于卷積網(wǎng)絡(luò)的缺陷分類識(shí)別率優(yōu)于傳統(tǒng)方法。Feng等[14]提出了基于主動(dòng)學(xué)習(xí)的方法檢測(cè)混凝土缺陷,該方法引入人工專家系統(tǒng)對(duì)較難分辨的數(shù)據(jù)樣本進(jìn)行重新標(biāo)注,提高了缺陷的識(shí)別精度。Kim等[15]結(jié)合數(shù)字圖像處理和形態(tài)學(xué)的方法,能夠定量檢測(cè)出毫米級(jí)的裂紋。Cha等[16]提出了基于全卷積網(wǎng)絡(luò)的缺陷檢測(cè)算法,可減少網(wǎng)絡(luò)參數(shù)并提高缺陷檢測(cè)的實(shí)時(shí)性。以上方法僅僅識(shí)別出了缺陷,并沒有實(shí)現(xiàn)缺陷定位,無(wú)法得知缺陷位于圖像中的具體坐標(biāo)。Xue等[17]提出了基于RPN區(qū)域建議網(wǎng)絡(luò)的缺陷檢測(cè)識(shí)別算法,可識(shí)別并定位缺陷的位置。Chathurdara等[18]提出了一種基于自動(dòng)編碼器的結(jié)構(gòu)損傷識(shí)別框架,可支持深度神經(jīng)網(wǎng)絡(luò),并可用于求解高度非線性的模式識(shí)別問題。然而由于缺陷不具有結(jié)構(gòu)化性質(zhì),定位指標(biāo)并不是很高。Fei等[19]提出了一種基于深度學(xué)習(xí)的缺陷分割算法,并取得了較好的像素級(jí)檢測(cè)效果,但檢測(cè)精度仍有待提升。綜上所述,雖然缺陷檢測(cè)方法研究取得了一定的進(jìn)展,但僅能獲得粗略的裂紋定位信息,且訓(xùn)練得到模型的泛化性能和檢測(cè)精度均有待提升。壩面混凝土裂紋存在形狀不規(guī)則,分布隨機(jī)、背景干擾因素多等問題,采用像素級(jí)語(yǔ)義分割方式實(shí)現(xiàn)裂紋檢測(cè)更能滿足實(shí)際需求。本文采用無(wú)人機(jī)搭載高清云臺(tái)相機(jī)對(duì)水工混凝土大壩進(jìn)行近距離圖像采集;然后對(duì)采集圖像進(jìn)行預(yù)處理;其次以ResNet-152[20-21]網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)為核心架構(gòu)完成裂紋特征提取,并設(shè)計(jì)網(wǎng)絡(luò)的解碼層進(jìn)行裂紋像素級(jí)檢測(cè);通過(guò)迭代訓(xùn)練得到最佳模型性能,最后在測(cè)試集驗(yàn)證了模型的有效性。圖1為整個(gè)裂紋缺陷識(shí)別流程。
圖1 裂紋缺陷檢測(cè)流程
以亭子口水利樞紐大壩為研究對(duì)象。該大壩為重力型混凝土壩,壩頂高程465 m,最大壩高116 m,壩軸線總長(zhǎng)995.4 m,共分50個(gè)壩段,從左到右依次為:1~16號(hào)為左岸非溢流壩段,軸線長(zhǎng)292.1 m;17~20號(hào)為廠房壩段,軸線長(zhǎng)112.0 m;21號(hào)為底孔門庫(kù)壩段,軸線長(zhǎng)20.8 m;22~26號(hào)為底孔壩段,軸線長(zhǎng)85.0 m;27~35號(hào)為表孔壩段,軸線長(zhǎng)158.5 m;36號(hào)為縱向圍堰兼表孔門庫(kù)壩段,軸線長(zhǎng)25.0 m;37號(hào)為升船機(jī)壩段,軸線長(zhǎng)42.0 m;38~50號(hào)為右岸非溢流壩段,軸線長(zhǎng)260.0 m,現(xiàn)場(chǎng)壩面如圖2所示。
圖2 嘉陵江亭子口水電站大壩
為適應(yīng)壩面的復(fù)雜環(huán)境,高效地獲取圖像信息,設(shè)計(jì)了系留式無(wú)人機(jī)系統(tǒng)如圖3所示。該無(wú)人機(jī)采用系留式供電方式滿足長(zhǎng)時(shí)間作業(yè)需求,并搭載高清云臺(tái)相機(jī),通過(guò)控制云臺(tái)轉(zhuǎn)向調(diào)整合適的角度和焦距完成圖像采集。無(wú)人機(jī)軸距為1 000 mm,尺寸為80 cm×80 cm×50 cm,最大起飛重量為6.3 kg,相機(jī)CMOS為12.8 mm×9.6 mm,鏡頭等效焦距為28 mm,圖像像素為5 472×3 648。壩面環(huán)境處于半封閉狀態(tài),無(wú)法有效依靠GPS信號(hào)進(jìn)行定位飛行,因此采用了雙目視覺定位技術(shù)實(shí)現(xiàn)無(wú)人機(jī)定位。根據(jù)水電站實(shí)際壩面環(huán)境特點(diǎn),同時(shí)考慮到廠房壩面高壓設(shè)備對(duì)無(wú)人機(jī)安全的影響,圖像采集重點(diǎn)在表孔和底孔壩段區(qū)域,最終共獲得2 000幅高清圖像。
圖3 無(wú)人機(jī)作業(yè)場(chǎng)景
輸入圖像的質(zhì)量對(duì)預(yù)測(cè)結(jié)果影響較大,因此數(shù)據(jù)預(yù)處理是很有必要的。針對(duì)獲得的原始圖像存在亮度低、有效數(shù)量少等問題,采用數(shù)據(jù)增強(qiáng)方法擴(kuò)充裂紋圖像數(shù)量和提高圖像質(zhì)量。首先剔除完全不含裂紋缺陷的圖像,進(jìn)而篩選出帶有裂紋的有效圖像。通常圖像中裂紋像素與周圍背景像素的亮度差別明顯,多呈現(xiàn)出中間寬、兩端窄、長(zhǎng)度不一、部分形狀呈拓?fù)浒l(fā)散狀態(tài),且具有縫隙寬度和一定的深度,據(jù)此挑選出500幅有效的裂紋圖像,并采用專業(yè)標(biāo)注軟件完成裂紋像素的標(biāo)注。為減小硬件的算力成本,同時(shí)擴(kuò)充數(shù)據(jù)量,在選出的有效數(shù)據(jù)集進(jìn)行裁剪、翻轉(zhuǎn)、鏡像等仿射變換,共獲得1 040幅608×608圖像塊。圖4為圖像數(shù)據(jù)擴(kuò)充示例。
圖4 裂紋圖像數(shù)據(jù)擴(kuò)充示例
為充分開展模型訓(xùn)練及驗(yàn)證,從裂紋圖像樣本隨機(jī)選擇樣本創(chuàng)建訓(xùn)練集、驗(yàn)證集和測(cè)試集3個(gè)子集。根據(jù)常規(guī)數(shù)據(jù)集分配方式設(shè)置子集的分配比例為8∶1∶1,因此最終獲得訓(xùn)練集圖像832幅、驗(yàn)證集和測(cè)試集圖像各104幅。
本文提出的裂紋缺陷檢測(cè)網(wǎng)絡(luò)模型由特征提取層和特征解碼層兩部分組成。特征提取是由多層普通卷積網(wǎng)絡(luò)構(gòu)成的特征提取層;特征解碼是由反卷積網(wǎng)絡(luò)構(gòu)成的像素分割層,以編碼后的特征圖為輸入,通過(guò)上采樣不斷將特征圖恢復(fù)至原始圖像大小,實(shí)現(xiàn)每個(gè)像素的分類[22]。提出的模型采用了ResNet-152作為特征提取層,ResNet-152作為多類別目標(biāo)檢測(cè)領(lǐng)域中常用的網(wǎng)絡(luò)結(jié)構(gòu),該網(wǎng)絡(luò)在大型ImageNet數(shù)據(jù)集中表現(xiàn)優(yōu)異,完全可以遷移到其他數(shù)據(jù)集上以提取圖像的高維抽象特征。壩面裂紋缺陷檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 壩面裂紋缺陷檢測(cè)網(wǎng)絡(luò)架構(gòu)
特征提取層的主要作用是完成輸入圖像的特征編碼和提取圖像特征。利用卷積和池化操作進(jìn)行特征提取與降采樣,實(shí)現(xiàn)對(duì)輸入圖像的特征編碼。每個(gè)卷積層包含了批量歸一化處理、ReLU激活函數(shù)及池化層,通過(guò)多層卷積運(yùn)算可有效提取原始圖像的豐富高維特征。具體而言,保留ResNet-152的卷積層結(jié)構(gòu)及參數(shù),并剔除掉分類層網(wǎng)絡(luò)。從原始輸入到特征提取層輸出會(huì)經(jīng)過(guò)4次降采樣處理,即最小特征圖分辨率為19×19。通常采用2×2的池化操作降低特征圖分辨率,同時(shí)還能降低網(wǎng)絡(luò)模型的計(jì)算量。圖6為壩面裂紋特征提取層結(jié)構(gòu)示意圖。
圖6 壩面裂紋特征提取層結(jié)構(gòu)示意
為了獲得端到端的像素級(jí)裂紋檢測(cè)結(jié)果,采用上采樣操作恢復(fù)特征圖的尺寸,確保最終的輸出與原始輸入尺寸保持一致。常用的上采樣操作包括反卷積和雙線性插值,本文提出的模型主要采用了反卷積操作進(jìn)行上采樣。反卷積又稱為轉(zhuǎn)置卷積,但并非卷積的逆解,可將小尺寸稀疏矩陣變成大尺寸稠密矩陣。根據(jù)特征提取層中的不同降采樣階段獲得不同的特征圖,即分別利用1/8特征圖、1/16特征圖及1/32特征圖作為特征解碼層的部分輸入,特征提取層的卷積層數(shù)越深,其感受野越大,特征圖包含的個(gè)性化高級(jí)語(yǔ)義信息越豐富,卷積層數(shù)越淺,越接近于輸入端,特征圖包含的紋理、輪廓及顏色等信息越豐富。此外,卷積網(wǎng)絡(luò)的層數(shù)太深,也可能導(dǎo)致梯度消失或過(guò)擬合問題。為此,在特征解碼層分別利用了特征提取層的不同尺度的中間特征圖提升特征利用率,改善模型收斂效果,以防止梯度消失和過(guò)擬合問題。由于輸入圖像的分辨率為608×608,因此1/32特征圖的分辨率為19×19,1/16特征圖的分辨率為38×38,1/8特征圖的分辨率為76×76。首先對(duì)1/32特征圖使用1×1卷積進(jìn)行降維處理,再進(jìn)行一次反卷積和兩次3×3卷積操作,獲得分辨率為38×38的特征圖;1/16特征圖首先進(jìn)行1×1卷積降維,再使用連續(xù)的3×3卷積操作,最后與1/32的輸出特征圖疊加。為了與1/8特征圖保持相應(yīng)的維度,先后進(jìn)行反卷積、1×1降維處理和2次卷積操作,獲得76×76×256特征圖后與1/8特征圖進(jìn)行疊加。最后,采用反卷積操作、1×1卷積降維操作及3×3卷積獲得152×152×64的特征圖,后續(xù)再接4倍擴(kuò)大率的反卷積和1×1卷積操作,獲得最終的608×608×2的特征圖, 并輸出模型預(yù)測(cè)結(jié)果。圖7為特征解碼層結(jié)構(gòu)示意圖。
圖7 特征解碼層結(jié)構(gòu)
通過(guò)分析壩面裂紋數(shù)據(jù)集可知,圖像中的背景和裂紋的比例嚴(yán)重不均衡,最終結(jié)果導(dǎo)致背景的識(shí)別效果非常好,而裂紋的檢測(cè)精度則較低。為此引入權(quán)重交叉熵?fù)p失函數(shù),通過(guò)增加裂紋樣本的損失的權(quán)重,減小背景樣本的損失權(quán)重,以提高裂紋的檢測(cè)精度。交叉熵通常用于表示兩個(gè)概率分布的相似度,交叉熵的結(jié)果越小,越相似;交叉熵的結(jié)果越大,越相異。首先使用softmax函數(shù)對(duì)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果進(jìn)行處理,然后分別計(jì)算正負(fù)樣本的像素?fù)p失值Lo和Lb,并計(jì)算所有像素?fù)p失的總和l,最后計(jì)算其平均值得到最終的損失值。
(1)
(2)
l=lo+lb
(3)
式中:wo為正樣本權(quán)重參數(shù);to為正樣本標(biāo)簽值;po為正樣本預(yù)測(cè)值;wb為負(fù)樣本權(quán)重參數(shù);tb為負(fù)樣本標(biāo)簽值;pb為負(fù)樣本預(yù)測(cè)值;n為輸入圖單通道的像素總數(shù)。
深度卷積網(wǎng)絡(luò)預(yù)測(cè)出的結(jié)果經(jīng)過(guò)形態(tài)學(xué)后期處理后,需要對(duì)預(yù)測(cè)結(jié)果進(jìn)行評(píng)估。像素級(jí)別的裂紋檢測(cè)本質(zhì)上屬于像素二分類問題,因此可以采用查準(zhǔn)率P、召回率R、綜合評(píng)價(jià)指標(biāo)F值、平均交并比M作為評(píng)估指標(biāo)。
(4)
(5)
(6)
(7)
式中:k為樣本數(shù)量;TP為預(yù)測(cè)結(jié)果為裂紋樣本,且標(biāo)簽也為裂紋樣本的樣本數(shù);FN為預(yù)測(cè)結(jié)果為背景樣本,但標(biāo)簽為裂紋樣本的樣本數(shù);FP為預(yù)測(cè)結(jié)果為裂紋樣本,但標(biāo)簽為背景樣本的樣本數(shù);TN為預(yù)測(cè)為背景樣本,且標(biāo)簽也為背景樣本的樣本數(shù)。
P表示所有預(yù)測(cè)為裂紋樣本的像素中,像素標(biāo)簽為裂紋樣本的概率;R表示所有標(biāo)簽為裂紋樣本的像素中,正確預(yù)測(cè)為裂紋樣本的概率;F指標(biāo)由P和R共同決定,該指標(biāo)為P與R的折中選擇;M為平均交并比,表示所有裂紋、背景樣本的預(yù)測(cè)結(jié)果與標(biāo)簽重復(fù)比例的平均值。
所有的試驗(yàn)任務(wù)都在一臺(tái)圖像工作站上完成,其硬件平臺(tái)配置具有Intel核心i7-8750H,16 GB內(nèi)存和6 GB顯存的NVIDIA GTX 1060的顯卡。采用Tensorflow 1.10深度學(xué)習(xí)框架來(lái)建立提出的裂紋檢測(cè)模型。GPU加速的軟件環(huán)境配置版本為CUDA-9.0和CUDNN-7.5,利用Anacoda-2以創(chuàng)建獨(dú)立的Python 3.5環(huán)境。
模型訓(xùn)練的學(xué)習(xí)率初始值設(shè)置為0.000 1,訓(xùn)練周期設(shè)置為100,每次輸入的圖像數(shù)量為5。采用了Adam優(yōu)化器進(jìn)行梯度下降以計(jì)算參數(shù)更新增量。
圖8展示了模型的損失值隨訓(xùn)練輪數(shù)的變化趨勢(shì),驗(yàn)證集損失與訓(xùn)練損失值保持一定差值,在訓(xùn)練輪數(shù)經(jīng)過(guò)70個(gè)周期后,損失值變化較為平緩,沒有出現(xiàn)較大的異常波動(dòng),表明網(wǎng)絡(luò)模型具有較好的穩(wěn)定性。模型訓(xùn)練完成后,保存模型參數(shù),加載未經(jīng)訓(xùn)練的測(cè)試集數(shù)據(jù),測(cè)試網(wǎng)絡(luò)模型的缺陷檢測(cè)性能。
圖8 模型訓(xùn)練中訓(xùn)練集與驗(yàn)證集損失變化情況
圖9所示為訓(xùn)練過(guò)程中,在驗(yàn)證集上的平均交并比變化情況。由圖可知訓(xùn)練輪數(shù)達(dá)到30之前,雖然幅值波動(dòng)較大,但總體上趨于增長(zhǎng)趨勢(shì)。當(dāng)訓(xùn)練輪數(shù)接近40時(shí),平均交并比逐漸趨于平穩(wěn)狀態(tài)。部分測(cè)試結(jié)果示例如圖10(圖中紅色標(biāo)記為識(shí)別示例,黃色框標(biāo)記的為未能正確識(shí)別示例)所示,圖中標(biāo)注為紅色部分為識(shí)別的裂紋結(jié)果,黃色為未能正確識(shí)別出的裂紋樣本,從測(cè)試結(jié)果可直觀看出所提模型能有效地識(shí)別出裂紋缺陷。但對(duì)于部分特征不明顯的,深度較淺的裂紋則不能完整地檢測(cè)出來(lái),這也是后續(xù)工作提升的重點(diǎn)任務(wù)之一。
圖9 模型訓(xùn)練中驗(yàn)證集上的平均交并比變化情況
圖10 測(cè)試集部分測(cè)試結(jié)果示例
為了驗(yàn)證本文提出方法的檢測(cè)性能,將本文提出的方法與FCN[23]、U_Net[24]、Deeplabv3[25]語(yǔ)義分割模型進(jìn)行了對(duì)比試驗(yàn)。FCN應(yīng)用全卷積網(wǎng)絡(luò)到語(yǔ)義分割任務(wù),并在反卷積層增加卷積操作,融合多個(gè)尺度特征來(lái)提升提取全局特征的能力。U_Net是醫(yī)學(xué)圖像分割表現(xiàn)優(yōu)異的網(wǎng)絡(luò)模型,采用對(duì)稱型結(jié)構(gòu)網(wǎng)絡(luò)設(shè)計(jì),將淺層與深層特征直接對(duì)應(yīng)拼接獲得更多特征。Deeplabv3采用了空洞卷積來(lái)擴(kuò)大卷積的感受野,以獲得更大的特征范圍。以上模型均在同樣的數(shù)據(jù)上經(jīng)過(guò)多次訓(xùn)練得到的測(cè)試結(jié)果。試驗(yàn)結(jié)果(表1)表明,本文提出的壩面裂紋缺陷檢測(cè)方法在測(cè)試集上的各項(xiàng)指標(biāo),均高于其他模型的測(cè)試指標(biāo)。
表1 不同方法的裂紋缺陷檢測(cè)指標(biāo)對(duì)比情況 單位:%
針對(duì)當(dāng)前壩面巡檢存在的問題,設(shè)計(jì)了壩面系留無(wú)人機(jī)采集系統(tǒng),通過(guò)遠(yuǎn)程控制無(wú)人機(jī)完成壩面圖像采集,提高了采集效率,降低安全風(fēng)險(xiǎn)。提出了基于ResNet-152網(wǎng)絡(luò)的裂紋缺陷檢測(cè)模型,利用不同層級(jí)特征圖設(shè)計(jì)相應(yīng)的解碼網(wǎng)絡(luò),并進(jìn)行權(quán)重參數(shù)訓(xùn)練。最后在測(cè)試集上進(jìn)行模型性能驗(yàn)證,試驗(yàn)結(jié)果表明,所提模型的查準(zhǔn)率P、召回率R、F值和平均交并比M分別達(dá)到了74.61%、78.71%、74.99%和73.34%。與其他方法的對(duì)比試驗(yàn)結(jié)果表明,該模型表現(xiàn)出更好的性能,能夠有效地檢測(cè)出壩面裂紋。本文提出的方法不僅減小了人力成本,還能有效地檢測(cè)壩面裂紋缺陷,同時(shí)提升了水利水電工程的智能化和信息化程度。