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