黃繼爽,張 華,李永龍,趙 皓,王皓冉,馮春成
(1.西南科技大學(xué)信息工程學(xué)院,四川綿陽(yáng) 621010;2.特殊環(huán)境機(jī)器人技術(shù)四川省重點(diǎn)實(shí)驗(yàn)室(西南科技大學(xué)),四川綿陽(yáng) 621010;3.清華四川能源互聯(lián)網(wǎng)研究院,成都 610213;4.水沙科學(xué)與水利水電工程國(guó)家重點(diǎn)實(shí)驗(yàn)室(清華大學(xué)),北京 100084)
水工隧洞作為水利樞紐工程關(guān)鍵構(gòu)筑物,具備水力發(fā)電、農(nóng)業(yè)灌溉和泄洪等綜合效能,在我國(guó)各大水電站中發(fā)揮著重要作用。由于水工隧洞洞徑大、洞線長(zhǎng)、地質(zhì)環(huán)境復(fù)雜和施工技術(shù)難等特點(diǎn),水工隧洞易產(chǎn)生裂縫、脫落和滲漏等高危缺陷[1]。因此,高精度、低延時(shí)的缺陷識(shí)別是水工隧洞工程安全運(yùn)行的有力保障。
目前的水工隧洞缺陷識(shí)別以人工巡檢為主,主要采用鉆芯法、回彈法、紅外成像法和探地雷達(dá)法等[2],人工巡檢模式不僅受工況制約,而且巡檢結(jié)果具有較強(qiáng)主觀性與經(jīng)驗(yàn)依賴性,檢測(cè)周期往往以年為單位,很可能導(dǎo)致嚴(yán)重的隧洞運(yùn)維事故。于是,有研究者提出使用圖像處理技術(shù)取代人工巡檢來(lái)對(duì)混凝土建筑物進(jìn)行缺陷識(shí)別。姚學(xué)練等[3]基于色調(diào)、飽和度和亮度顏色空間對(duì)麻面圖像進(jìn)行分析,根據(jù)分析結(jié)果繪制飽和度分量的灰度波動(dòng)曲線,計(jì)算波峰波谷部分高度差的標(biāo)準(zhǔn)差得到用于圖像分割的最佳閾值,實(shí)現(xiàn)麻面的識(shí)別;王永會(huì)等[4]通過(guò)分?jǐn)?shù)階傅里葉變換將裂縫圖像轉(zhuǎn)換為頻譜圖,在對(duì)頻譜圖進(jìn)行增強(qiáng)處理后逆變換為增強(qiáng)的裂縫圖像,再使用Canny邊緣檢測(cè)算子實(shí)現(xiàn)路面裂縫識(shí)別。但傳統(tǒng)的圖像處理方法進(jìn)行缺陷識(shí)別時(shí)需要手動(dòng)設(shè)計(jì)特征及參數(shù),計(jì)算步驟復(fù)雜,在更換背景后容易降低準(zhǔn)確率,缺乏泛化能力。近年來(lái),隨著機(jī)器人和人工智能等技術(shù)的迅速發(fā)展,具有高自動(dòng)化、智能化水平的水利樞紐工程巡檢系統(tǒng)已成為新一代水利智能化的主要研究方向[5]。其中,以深度卷積神經(jīng)網(wǎng)絡(luò)(Deep Convolutional Neural Network,DCNN)為代表的特征自動(dòng)提取技術(shù)被廣泛應(yīng)用于建筑物缺陷識(shí)別應(yīng)用。王森等[6]將深度卷積神經(jīng)網(wǎng)絡(luò)引入裂縫圖像識(shí)別中,通過(guò)增大圖像分辨率、加深網(wǎng)絡(luò)深度和添加更高尺度的反卷積層來(lái)補(bǔ)充局部細(xì)節(jié),相比傳統(tǒng)圖像處理算法有更高的精度;陳波等[7]提出一種誤識(shí)別圖像再訓(xùn)練的壩面裂縫識(shí)別網(wǎng)絡(luò),該方法將原始數(shù)據(jù)給專家進(jìn)行第一次標(biāo)注,經(jīng)第一輪訓(xùn)練好后出現(xiàn)的誤識(shí)別圖像再由專家進(jìn)行第二次細(xì)致標(biāo)注,再次訓(xùn)練優(yōu)化后,取得較第一次更好的壩面裂縫識(shí)別效果;梁雪慧等[8]將傳統(tǒng)的圖像處理方法與深度卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,使用雙邊濾波和Retinex圖像增強(qiáng)算法處理橋梁裂縫在特殊天氣和建筑物遮擋時(shí)光照不足的情況,再采用歸一化的卷積核改進(jìn)深度卷積神經(jīng)網(wǎng)絡(luò),能夠區(qū)分橋梁裂縫和正常背景。Dung等[9]選取多種經(jīng)典深度卷積神經(jīng)網(wǎng)絡(luò)對(duì)校園建筑物裂縫圖像進(jìn)行預(yù)訓(xùn)練,將識(shí)別效果最好的網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò),在骨干網(wǎng)絡(luò)的基礎(chǔ)上增加編碼和解碼結(jié)構(gòu),實(shí)現(xiàn)裂縫進(jìn)一步的精細(xì)識(shí)別。Feng等[10]提出一種基于殘差網(wǎng)絡(luò)的壩面裂縫識(shí)別方法,該方法在殘差網(wǎng)絡(luò)的基礎(chǔ)上增加四個(gè)跳躍分支用于連接網(wǎng)絡(luò)的淺層和深層,補(bǔ)充了部分語(yǔ)義信息,在壩面裂縫識(shí)別任務(wù)上取得了一定效果。然而,現(xiàn)有深度卷積神經(jīng)網(wǎng)絡(luò)在混凝土建筑物缺陷識(shí)別應(yīng)用上大都識(shí)別種類單一,面對(duì)水工隧洞低照度的復(fù)雜環(huán)境下缺陷多分類任務(wù),特征提取能力依然不足,同時(shí),現(xiàn)有深度模型在提升識(shí)別準(zhǔn)確率時(shí)往往會(huì)成倍地增加卷積核數(shù)量,巨大的參數(shù)量導(dǎo)致了模型推理時(shí)間長(zhǎng)的問題,限制了工程應(yīng)用。
針對(duì)上述問題,本文提出一種水工隧洞動(dòng)態(tài)特征蒸餾模型(Tunnel Network based on Dynamic Feature Distillation,TunnelNet-DFD)。在知識(shí)蒸餾框架下,根據(jù)水工隧洞缺陷圖像特點(diǎn)設(shè)計(jì)教師網(wǎng)絡(luò)TunnelNet-50(Tunnel Network of 50 layers)和 學(xué) 生 網(wǎng) 絡(luò)TunnelNet-18(Tunnel Network of 18 layers),采用深度曲線估計(jì)模塊、動(dòng)態(tài)卷積模塊和動(dòng)態(tài)特征蒸餾損失三種改進(jìn)方法,主要工作如下:
1)將深度曲線估計(jì)網(wǎng)絡(luò)應(yīng)用于水工隧洞場(chǎng)景,針對(duì)場(chǎng)景特點(diǎn)設(shè)計(jì)深度曲線估計(jì)模塊,優(yōu)化不同光照情況下的隧洞缺陷圖片,借助深度曲線估計(jì)網(wǎng)絡(luò)的特征自動(dòng)提取能力,避免了人工設(shè)定特征導(dǎo)致的背景依賴問題,能夠有效改善低照度數(shù)據(jù)質(zhì)量且具有一定泛化能力。
2)設(shè)計(jì)一種加入注意力機(jī)制的動(dòng)態(tài)卷積模塊,改進(jìn)傳統(tǒng)靜態(tài)卷積,用于訓(xùn)練教師網(wǎng)絡(luò),能夠根據(jù)水工隧洞六類缺陷的不同特點(diǎn)對(duì)模型參數(shù)進(jìn)行動(dòng)態(tài)調(diào)整,提升了模型對(duì)水工隧洞缺陷特征的提取能力。
3)構(gòu)造動(dòng)態(tài)特征蒸餾損失,增加了知識(shí)蒸餾框架中的指導(dǎo)知識(shí),通過(guò)鑒別器結(jié)構(gòu)度量教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)動(dòng)態(tài)卷積模塊輸出之間的動(dòng)態(tài)特征距離,再經(jīng)知識(shí)蒸餾后,作為學(xué)生網(wǎng)絡(luò)訓(xùn)練損失函數(shù)時(shí)的動(dòng)態(tài)特征先驗(yàn)知識(shí),使得最終模型克服了模型參數(shù)量過(guò)大導(dǎo)致推理時(shí)間過(guò)長(zhǎng)的缺陷,同時(shí)獲得了更好的圖像語(yǔ)義表達(dá)能力。
4)搭建水工隧洞動(dòng)態(tài)特征蒸餾模型,在同一數(shù)據(jù)集上,將本文方法與主流知識(shí)蒸餾方法進(jìn)行比較,實(shí)驗(yàn)結(jié)果表明,本文方法能夠在大幅降低模型參數(shù)量的同時(shí)保持高識(shí)別準(zhǔn)確率,比現(xiàn)有方法更適用于水工隧洞應(yīng)用場(chǎng)景下的裂縫、麻面、脫落、露筋、鈣化和滲漏六類缺陷的識(shí)別任務(wù)。
本文提出的水工隧洞動(dòng)態(tài)特征蒸餾模型如圖1所示,主要包括深度曲線估計(jì)模塊、動(dòng)態(tài)卷積模塊和動(dòng)態(tài)特征蒸餾損失三部分。原始缺陷圖片首先通過(guò)深度曲線估計(jì)模塊進(jìn)行低照度增強(qiáng),然后動(dòng)態(tài)卷積模塊對(duì)增強(qiáng)后的圖片進(jìn)行特征提取,得到動(dòng)態(tài)特征,最后在知識(shí)蒸餾框架下,通過(guò)動(dòng)態(tài)特征蒸餾損失將教師網(wǎng)絡(luò)中的動(dòng)態(tài)特征知識(shí)蒸餾到學(xué)生網(wǎng)絡(luò)中,提升了學(xué)生網(wǎng)絡(luò)的圖像語(yǔ)義特征表達(dá)能力且降低了模型參數(shù)量。動(dòng)態(tài)特征蒸餾結(jié)構(gòu)中的教師網(wǎng)絡(luò)TunnelNet-50、學(xué)生網(wǎng)絡(luò)TunnelNet-18基 于 殘 差 網(wǎng) 絡(luò)ResNet-50(Residual Network of 50 layers)、ResNet-18(Residual Network of 18 layers)[11]進(jìn)行改進(jìn),并在殘差模塊中集成了壓縮和激勵(lì)網(wǎng)絡(luò)(Squeeze-and-Excitation Network,SENet)[12]中的注意力模塊。教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)之間的鑒別器結(jié)構(gòu)用于度量?jī)烧邉?dòng)態(tài)卷積模塊輸出之間的Wasserstein距離[13],該距離作為動(dòng)態(tài)特征蒸餾損失增加了學(xué)生網(wǎng)絡(luò)的指導(dǎo)知識(shí)。訓(xùn)練過(guò)程結(jié)合動(dòng)態(tài)卷積模塊特點(diǎn),將批次歸一化(Batch Normalization,BN)替換成實(shí)例歸一化(Instance Normalization,IN),以此提升動(dòng)態(tài)卷積的特征提取性能。
圖1 水工隧洞動(dòng)態(tài)特征蒸餾模型整體結(jié)構(gòu)Fig.1 Overall structure of dynamic feature distillation model of hydraulic tunnel
水工隧洞內(nèi)水體渾濁、附著淤積和光線昏暗導(dǎo)致缺陷圖像質(zhì)量不足,通過(guò)如圖2所示深度曲線估計(jì)模塊能有效改善缺陷圖片的低照度情況。
圖2 深度曲線估計(jì)模塊結(jié)構(gòu)Fig.2 Deep curveestimation module structure
在深度曲線估計(jì)網(wǎng)絡(luò)(Deep Curve Estimation Network,DCENet)[14]中加入了3個(gè)跳躍結(jié)構(gòu)連接卷積層,用于補(bǔ)償語(yǔ)義信息,增強(qiáng)對(duì)光照特征的學(xué)習(xí)能力。區(qū)別于一般神經(jīng)網(wǎng)絡(luò)圖像到圖像的映射,深度曲線估計(jì)模塊將任務(wù)重新定義為圖像特定曲線的估計(jì)問題,以弱光圖像為輸入、以高階曲線為輸出,所得曲線用于在輸入的動(dòng)態(tài)范圍上進(jìn)行逐像素調(diào)整,調(diào)整后獲得光線均勻且充足的圖像。深度曲線形式采取二次曲線以保證在梯度反向傳播過(guò)程中可微,將前一次得到的二次曲線輸出作為后一次的輸入,可得像素級(jí)光線增強(qiáng)曲線(Light-Enhancement curve,LE-curve)具體定義如下:
其中:x是像素坐標(biāo);n是用于控制曲率的迭代次數(shù),使得LEn(x)能在增強(qiáng)后的LEn-1(x)基礎(chǔ)上繼續(xù)優(yōu)化;A是與給定圖像大小一致的估計(jì)曲線參數(shù)圖,所包含的可訓(xùn)練曲線參數(shù)能夠?qū)γ恳粋€(gè)像素進(jìn)行調(diào)整。
傳統(tǒng)靜態(tài)卷積對(duì)于所有樣本參數(shù)共享,而動(dòng)態(tài)卷積針對(duì)單個(gè)樣本,具有數(shù)據(jù)依賴性[15]。通過(guò)在動(dòng)態(tài)卷積中引入注意力機(jī)制,使得并行的卷積核以非線性方式聚合,具備更強(qiáng)的表示能力。動(dòng)態(tài)卷積中的注意力機(jī)制關(guān)注不同卷積核對(duì)特征提取的貢獻(xiàn)程度,能通過(guò)訓(xùn)練學(xué)習(xí)到相應(yīng)權(quán)重。注意力動(dòng)態(tài)聚合的過(guò)程定義如下:
所設(shè)計(jì)的動(dòng)態(tài)卷積模塊基于注意力機(jī)制動(dòng)態(tài)地聚合3個(gè)并行卷積核,從而生成對(duì)圖像內(nèi)容自適應(yīng)的動(dòng)態(tài)卷積,則聚合權(quán)重函數(shù)定義如下:
其中:i(x)是3×3常規(guī)卷積所對(duì)應(yīng)的注意力權(quán)重;j(x)是采用膨脹系數(shù)為1的空洞卷積所對(duì)應(yīng)的注意力權(quán)重;k(x)是采用膨脹系數(shù)為2的空洞卷積所對(duì)應(yīng)的注意力權(quán)重。三個(gè)并行的卷積核作用于圖像不同位置,但卷積核尺寸、輸入和輸出維度一致。
同理,偏差函數(shù)定義如下:
基于注意力機(jī)制的動(dòng)態(tài)卷積模塊首先通過(guò)全局平均池化(Global Average Pooling,GAP)壓縮全局空間信息,然后通過(guò)兩層由激活函數(shù)ReLU連接的全連接層(Fully Connected layer,F(xiàn)C),緊接著通過(guò)激活函數(shù)Sigmoid增加非線性,之后的Softmax函數(shù)用于對(duì)3個(gè)并行卷積核的注意力權(quán)重進(jìn)行歸一化,通過(guò)1次乘加運(yùn)算得到一個(gè)表示能力更強(qiáng)的動(dòng)態(tài)卷積,用于取代特征提取能力不足的傳統(tǒng)靜態(tài)卷積。因?yàn)閯?dòng)態(tài)卷積模塊針對(duì)不同的樣本會(huì)產(chǎn)生特異性的注意力權(quán)重,故而訓(xùn)練過(guò)程不采用BN,而采用IN進(jìn)行訓(xùn)練,可得傳統(tǒng)靜態(tài)卷積模塊和動(dòng)態(tài)卷積模塊結(jié)構(gòu)對(duì)比如圖3所示。
圖3 傳統(tǒng)靜態(tài)卷積模塊和動(dòng)態(tài)卷積模塊的結(jié)構(gòu)對(duì)比Fig.3 Structure comparison of traditional statistic convolution moduleand dynamic convolution module
傳統(tǒng)知識(shí)蒸餾框架中,學(xué)生網(wǎng)絡(luò)缺乏對(duì)教師網(wǎng)絡(luò)淺層的學(xué)習(xí),損失大量特征信息。本文提出的動(dòng)態(tài)特征蒸餾損失引入位于教師網(wǎng)絡(luò)淺層的動(dòng)態(tài)特征,使學(xué)生網(wǎng)絡(luò)獲得更多特異性的語(yǔ)義信息,通過(guò)師生網(wǎng)絡(luò)動(dòng)態(tài)卷積模塊間的Wasserstein距離度量,定義如下:
由于卷積神經(jīng)網(wǎng)絡(luò)難以直接計(jì)算式(5),將式(5)中d(x,y)看作成本函數(shù),代表從x運(yùn)輸?shù)統(tǒng)的成本,即要在所有運(yùn)輸方案中,找到式(5)中?γ(x,y)d(x,y)dxdy這一總運(yùn)輸成本的最小方案??醋骶€性規(guī)劃問題后,根據(jù)對(duì)偶定理將求下界的問題轉(zhuǎn)換為等價(jià)的求上界問題,可得式(5)的一個(gè)對(duì)偶形式如下:
根據(jù)f(x)+g(x)≤d(x,y)可以得到:
即g(x)≤f(x),于是有:
由式(8)知,當(dāng)g(x)=-f(x)時(shí),式(6)的最大值不會(huì)小于原來(lái)的最大值,可令g(x)=-f(x),從而:
由于p和q都是概率分布,可以將式(9)寫成采樣形式如下:
至此,式(10)已符合卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算要求,再通過(guò)圖1中的鑒別器來(lái)實(shí)現(xiàn)動(dòng)態(tài)特征的傳遞。在鑒別器最后softmax層中引入軟目標(biāo),得到動(dòng)態(tài)特征的蒸餾形式如下:
其中:qi是預(yù)測(cè)屬于第i類的概率;zi是第i類通過(guò)網(wǎng)絡(luò)最后一層的輸出值;zj是第j類通過(guò)網(wǎng)絡(luò)最后一層的輸出值;n是缺陷類別總數(shù);T是溫度系數(shù),設(shè)置為經(jīng)驗(yàn)值3[16]。
本文提出的損失函數(shù)包括學(xué)生網(wǎng)絡(luò)分類損失、師生網(wǎng)絡(luò)最末層知識(shí)蒸餾損失、師生網(wǎng)絡(luò)動(dòng)態(tài)特征蒸餾損失和一個(gè)防止過(guò)擬合的L2正則化項(xiàng),定義如下:
相比傳統(tǒng)知識(shí)蒸餾結(jié)構(gòu),動(dòng)態(tài)特征蒸餾結(jié)構(gòu)在增加深度曲線估計(jì)模塊和動(dòng)態(tài)卷積模塊的基礎(chǔ)上,通過(guò)鑒別器傳遞教師網(wǎng)絡(luò)的動(dòng)態(tài)特征知識(shí)給學(xué)生網(wǎng)絡(luò),增加特征提取能力更強(qiáng)的指導(dǎo)知識(shí)。動(dòng)態(tài)特征知識(shí)由動(dòng)態(tài)卷積提取圖像的特征得到,教師網(wǎng)絡(luò)動(dòng)態(tài)特征知識(shí)傳遞的方法采用知識(shí)蒸餾算法,學(xué)生網(wǎng)絡(luò)接受的指導(dǎo)知識(shí)即動(dòng)態(tài)特征蒸餾損失,該損失在動(dòng)態(tài)特征蒸餾模型訓(xùn)練過(guò)程中作為損失函數(shù)的一部分優(yōu)化模型的特征表達(dá)能力,可得傳統(tǒng)知識(shí)蒸餾結(jié)構(gòu)和動(dòng)態(tài)特征蒸餾結(jié)構(gòu)對(duì)比如圖4所示。
圖4 傳統(tǒng)知識(shí)蒸餾結(jié)構(gòu)和動(dòng)態(tài)特征蒸餾結(jié)構(gòu)對(duì)比Fig.4 Comparison of traditional knowledge distillation structureand dynamic feature distillation structure
為驗(yàn)證本文提出水工隧洞缺陷識(shí)別方法的有效性,設(shè)計(jì)一系列消融實(shí)驗(yàn)分別評(píng)估深度曲線估計(jì)模塊、動(dòng)態(tài)卷積模塊和動(dòng)態(tài)特征蒸餾損失的性能,再與相關(guān)主流方法進(jìn)行對(duì)比實(shí)驗(yàn),最后進(jìn)行參數(shù)分析。
實(shí)驗(yàn)所選取的缺陷數(shù)據(jù)集由清華四川能源互聯(lián)網(wǎng)研究院提供,通過(guò)搭載多種傳感器的機(jī)器人在四川某水電站水工隧洞內(nèi)進(jìn)行采集[17]。該數(shù)據(jù)集共12 000張分辨率為224×224的RGB(Red-Green-Blue color mode)圖像,涉及裂縫、麻面、脫落、露筋、鈣化和滲漏六個(gè)缺陷類別,每個(gè)類別包含2 000張圖像樣本,所有樣本均由水利專家標(biāo)注制作,數(shù)據(jù)集具體類別示例如圖5所示。實(shí)驗(yàn)過(guò)程中訓(xùn)練集、驗(yàn)證集和測(cè)試集的選取比例為6∶2∶2,其中訓(xùn)練集和驗(yàn)證集不放回隨機(jī)抽取,剩余為測(cè)試集。
圖5 水工隧洞缺陷數(shù)據(jù)集具體類別示例Fig.5 Specific type samples in hydraulic tunnel defect dataset
為評(píng)估本文方法的有效性,所有實(shí)驗(yàn)的硬件設(shè)備和軟件環(huán)境均保持一致。硬件設(shè)備中,中央處理器(Central Processing Unit,CPU)和圖像處理器(Graphics Processing Unit,GPU)分別選用的型號(hào)為Intel Core i5-8400和NVIDIA GTX 1060Ti;軟件環(huán)境中,本文實(shí)驗(yàn)在Windows 10操作系統(tǒng)上進(jìn)行,基于Pytorch 1.5框架搭建深度學(xué)習(xí)模型,統(tǒng)一計(jì)算設(shè)備架構(gòu)(Compute Unified Device Architecture,CUDA)和編程語(yǔ)言分別選用CUDA 10.1和Python 3.8。
實(shí)驗(yàn)中缺陷識(shí)別性能選取準(zhǔn)確率、宏查準(zhǔn)率(macro-P)、宏查全率(macro-R)和宏F1分?jǐn)?shù)(macro-F1)作為評(píng)價(jià)指標(biāo)[18],具體定義分別如下:
其中:n為缺陷類別總數(shù);TPi是將第i類中正類預(yù)測(cè)為正類的正確數(shù);FPi是將第i類中負(fù)類預(yù)測(cè)為正類的誤報(bào)數(shù);FNi是將第i類中正類預(yù)測(cè)為負(fù)類的漏報(bào)數(shù)。
實(shí)驗(yàn)的實(shí)時(shí)性通過(guò)浮點(diǎn)運(yùn)算次數(shù)(FLoating-point OPerations,F(xiàn)LOPs)[19]和表示測(cè)試集單個(gè)樣本平均耗時(shí)的推理時(shí)間來(lái)進(jìn)行評(píng)估,在卷積層中,F(xiàn)LOPs的計(jì)算如下:
其中:H、W和Cin是輸入特征圖的高度、寬度和通道數(shù);K是卷積核的尺寸;Cout是輸出通道數(shù)。
在全連接層中,F(xiàn)LOPs的計(jì)算如下:
其中:I是輸入維度;O是輸出維度。
TunnelNet-DFD模型的訓(xùn)練過(guò)程通過(guò)損失值和準(zhǔn)確率變化來(lái)進(jìn)行評(píng)估,分別如圖6(a)和圖6(b)所示。
圖6 訓(xùn)練過(guò)程損失值與準(zhǔn)確率變化趨勢(shì)Fig.6 Trends of loss and accuracy during training
從圖6中可看出,隨著迭代輪數(shù)增加,損失值快速下降并在50輪后基本達(dá)到收斂,準(zhǔn)確率最高達(dá)到96.15%,整體上,驗(yàn)證集效果略低于訓(xùn)練集,沒有發(fā)生過(guò)擬合的現(xiàn)象,說(shuō)明模型具備良好的泛化能力和穩(wěn)定的識(shí)別能力。
為進(jìn)一步分析每個(gè)類別的識(shí)別情況,如圖7采用混淆矩陣直觀地呈現(xiàn)每個(gè)類別缺陷識(shí)別的預(yù)測(cè)情況,橫軸表示預(yù)測(cè)類別、縱軸表示真實(shí)類別,矩陣單元值表示識(shí)別該類別的準(zhǔn)確率,顏色越深表示準(zhǔn)確率越高。從圖7可以觀察到模型能有效區(qū)分水工隧洞缺陷的6個(gè)類別。對(duì)露筋的缺陷識(shí)別能力最強(qiáng),所預(yù)測(cè)的400張露筋對(duì)象全部正確;鈣化和麻面分別僅有1張和2張圖像被識(shí)別錯(cuò)誤;裂縫和脫落存在少量的誤分現(xiàn)象,主要原因是機(jī)器人在采集數(shù)據(jù)過(guò)程中對(duì)部分圖像局部補(bǔ)光過(guò)度,而補(bǔ)光過(guò)度的圖像在訓(xùn)練樣本中所占數(shù)量較少;滲漏的識(shí)別率相對(duì)較低,主要原因是滲漏的發(fā)生往往源于裂縫,存在交疊現(xiàn)象。
圖7 缺陷識(shí)別混淆矩陣Fig.7 Confusion matrix of defect recognition
為驗(yàn)證本文所提出的各項(xiàng)改進(jìn)措施對(duì)模型性能的影響,在改進(jìn)前的ResNet-50基礎(chǔ)上添加全部措施得到最終的本文方法,通過(guò)控制變量去掉各項(xiàng)措施設(shè)計(jì)消融實(shí)驗(yàn),具體如表1所示。
從表1中可看出,對(duì)于評(píng)價(jià)指標(biāo)macro-P、macro-R和macro-F1,深度曲線估計(jì)模塊分別提升2.46、1.93和2.2個(gè)百分點(diǎn);動(dòng)態(tài)特征蒸餾損失分別提升3.34、4.61和3.98個(gè)百分點(diǎn);動(dòng)態(tài)卷積模塊和動(dòng)態(tài)特征蒸餾損失的共同作用對(duì)模型性能貢獻(xiàn)最大,分別提升8.27、7.01和7.64個(gè)百分點(diǎn)。整體上,本文方法的macro-F1比改進(jìn)前的殘差網(wǎng)絡(luò)提升了8.99個(gè)百分點(diǎn),達(dá)到96.11%,充分說(shuō)明本文提出的各項(xiàng)改進(jìn)措施對(duì)水工隧洞缺陷識(shí)別任務(wù)性能有針對(duì)性的提升。
表1 不同改進(jìn)措施對(duì)模型性能影響評(píng)估Tab.1 Evaluation of impact of different improvement measures on model performance
在對(duì)比主流識(shí)別網(wǎng)絡(luò)中,為更客觀地比較所設(shè)計(jì)教師網(wǎng)絡(luò)TunnelNet-50與主流方法的性能,DyNet(Dynamic convolution neural Network)[20]和SENet均基于ResNet-50骨架網(wǎng)絡(luò)進(jìn)行搭建,同時(shí),非動(dòng)態(tài)卷積方法采用更利于其性能提升的BN方法,具體實(shí)驗(yàn)結(jié)果如表2所示。
表2 不同圖像識(shí)別方法量化指標(biāo)比較 單位:%Tab.2 Comparison of quantitative indicators of different image recognition methods unit:%
從表2可看出:針對(duì)ResNet網(wǎng)絡(luò)的改進(jìn)帶來(lái)明顯的效果提升,學(xué)生網(wǎng)絡(luò)TunnelNet-18和教師網(wǎng)絡(luò)TunnelNet-50相較改進(jìn)前macro-F1分別提升5.42和10.43個(gè)百分點(diǎn),本文設(shè)計(jì)的教師網(wǎng)絡(luò)在macro-P、macro-R和macro-F1評(píng)價(jià)指標(biāo)上與前沿圖像識(shí)別網(wǎng)絡(luò)對(duì)比中,相比DyNet分別提升2.9、4.87和3.88個(gè)百分點(diǎn),相比SENet分別提升1.57、3.09和2.33個(gè)百分點(diǎn),結(jié)果表明本文設(shè)計(jì)的教師網(wǎng)絡(luò)相對(duì)其他主流圖像識(shí)別網(wǎng)絡(luò)更有優(yōu)勢(shì)。
在對(duì)比主流知識(shí)蒸餾模型中,除使用正則化表達(dá)的自學(xué)習(xí)知識(shí)蒸餾(Teacher-free Knowledge Distillation,Tf-KD)[21],所有蒸餾的教師網(wǎng)絡(luò)均選用TunnelNet-50,學(xué)生網(wǎng)絡(luò)均選用TunnelNet-18,其中,傳統(tǒng)知識(shí)蒸餾(Knowledge Distillation,KD)方法僅對(duì)卷積層末層知識(shí)進(jìn)行蒸餾,互信息知識(shí)蒸餾(Variational Information Distillation,VID)[22]增加對(duì)常規(guī)卷積層的中間特征值進(jìn)行蒸餾。在選用的比較算法中,KD是最早提出知識(shí)蒸餾概念的算法,能夠作為評(píng)估本文方法性能的基準(zhǔn),而VID和Tf-KD是近年知識(shí)蒸餾領(lǐng)域最新的研究成果,這三種算法作為目前知識(shí)蒸餾結(jié)構(gòu)的典型方法,與本文方法進(jìn)行比較時(shí)具有一定的代表性。本文方法使用動(dòng)態(tài)卷積中間特征值取代VID中的靜態(tài)卷積中間特征值,相比Tf-KD減少指導(dǎo)知識(shí)的做法反而增加動(dòng)態(tài)特征指導(dǎo)知識(shí),具體實(shí)驗(yàn)結(jié)果如表3所示。
表3 不同知識(shí)蒸餾方法量化指標(biāo)比較 單位:%Tab.3 Comparison of quantitative indicatorsof different know ledge distillation methods unit:%
由表3可知,本文提出的水工隧洞缺陷識(shí)別動(dòng)態(tài)特征蒸餾模型TunnelNet-DFD在macro-P、macro-R和macro-F1評(píng)價(jià)指標(biāo)上比傳統(tǒng)知識(shí)蒸餾算法KD分別高出3.09、4.79和3.95個(gè)百分點(diǎn),說(shuō)明本文方法在傳統(tǒng)知識(shí)蒸餾算法上已經(jīng)有很大提升。在macro-F1上相比最新蒸餾算法VID和Tf-KD分別高出3.17和1.6個(gè)百分點(diǎn),具有最優(yōu)結(jié)果。
為驗(yàn)證本文方法的模型壓縮性能,從模型容量、計(jì)算量、推理時(shí)間三方面進(jìn)行評(píng)估。實(shí)驗(yàn)結(jié)果如表4所示,本文方法的模型參數(shù)量和推理時(shí)間為原有殘差網(wǎng)絡(luò)的1/2和1/6,F(xiàn)LOPs降至1.83×109,同時(shí)優(yōu)于其他主流教師網(wǎng)絡(luò),能適應(yīng)對(duì)實(shí)時(shí)性要求較高的工程應(yīng)用場(chǎng)景。
表4 不同主流教師網(wǎng)絡(luò)模型壓縮性能對(duì)比Tab.4 Comparison of model compression performanceof different mainstream teacher networks
針對(duì)卷積神經(jīng)網(wǎng)絡(luò)“黑盒”模型難以解釋的問題,本文采用如圖8所示的類激活熱力圖Grad-CAM++(Gradient-based Class Activation Mapping++)[23]對(duì)水工隧洞缺陷識(shí)別結(jié)果進(jìn)行可視化并對(duì)比相關(guān)主流算法,通過(guò)溫度值高低反映模型對(duì)圖像特征的敏感程度。
從圖8中可看出,DyNet網(wǎng)絡(luò)識(shí)別到的特征過(guò)于單一,SENet對(duì)于裂縫和脫落缺陷的特征提取能力較差,其余效果良好,而VID和Tf-KD沒有抓住缺陷的直觀特征。本文提出的TunnelNet-DFD模型能有效提取每一種缺陷類別的關(guān)鍵特征,符合專家評(píng)判標(biāo)準(zhǔn),相比其他圖像識(shí)別主流方法具有明顯優(yōu)勢(shì)。
圖8 不同缺陷識(shí)別方法的可視化結(jié)果Fig.8 Visualization results of different defect recognition methods
本文提出的損失函數(shù)中,超參數(shù)(α、β、γ)沿用傳統(tǒng)知識(shí)蒸餾方法中認(rèn)為學(xué)生網(wǎng)絡(luò)分類損失與師生網(wǎng)絡(luò)最末層知識(shí)蒸餾損失同等重要的思想,在三者總和為1的前提下設(shè)置(α=0.1、β=0.1、γ=0.8)、(α=0.2、β=0.2、γ=0.6)、(α=0.3、β=0.3、γ=0.4)和(α=0.4、β=0.4、γ=0.2)四組不同的參數(shù)實(shí)驗(yàn),用于驗(yàn)證不同參數(shù)設(shè)置對(duì)缺陷識(shí)別模型性能的影響。
四組參數(shù)實(shí)驗(yàn)的具體情況如圖9所示。
圖9 不同參數(shù)設(shè)置對(duì)模型性能的影響Fig.9 Influenceof different parameter settingson model performance
當(dāng)α和β權(quán)重小于0.2時(shí),模型整體性能偏低,隨著兩者權(quán)重增大,模型性能逐漸提升,當(dāng)γ達(dá)到0.2時(shí)最優(yōu),結(jié)合表1可知,進(jìn)一步降低γ值導(dǎo)致的動(dòng)態(tài)卷積模塊和動(dòng)態(tài)特征蒸餾損失失效會(huì)降低模型性能,這也說(shuō)明動(dòng)態(tài)卷積模塊和動(dòng)態(tài)特征蒸餾損失對(duì)模型性能具有重要影響。綜合圖9結(jié)果,本文參數(shù)(α、β、γ)選擇第四組(α=0.4、β=0.4、γ=0.2),此時(shí)模型達(dá)到最好效果。
本文對(duì)主流圖像識(shí)別網(wǎng)絡(luò)ResNet進(jìn)行改進(jìn),提出一種基于動(dòng)態(tài)特征蒸餾的缺陷識(shí)別方法,并應(yīng)用于水工隧洞環(huán)境下的缺陷識(shí)別任務(wù)。主要?jiǎng)?chuàng)新點(diǎn)包括:深度曲線估計(jì)模塊、動(dòng)態(tài)卷積模塊和動(dòng)態(tài)特征蒸餾損失,分別用于改善低照度圖像質(zhì)量、提升特征提取能力和降低模型推理時(shí)間。本文方法在四川某水電站水工隧洞缺陷數(shù)據(jù)集上的準(zhǔn)確率、macro-P、macro-R和macro-F1分別達(dá)到96.15%、96.08%、96.14%和96.11%,能夠有效提取水工隧洞場(chǎng)景中的缺陷特征,同時(shí)實(shí)時(shí)性高,優(yōu)于其他主流圖像識(shí)別算法,具有重要的工程應(yīng)用價(jià)值。最后,由于實(shí)際場(chǎng)景中缺陷種類繁多和交疊等問題,在未來(lái)的工作中,將擴(kuò)充水工隧洞缺陷類別,探索模型剪枝和多任務(wù)學(xué)習(xí)等優(yōu)化方法,進(jìn)一步提高水工隧洞缺陷識(shí)別模型的準(zhǔn)確率、實(shí)時(shí)性和泛化能力。