基于动态特征蒸馏的水工隧洞缺陷识别方法
2021-09-09黄继爽李永龙王皓冉冯春成
黄继爽,张 华,李永龙,赵 皓,王皓冉,冯春成
(1.西南科技大学信息工程学院,四川绵阳 621010;2.特殊环境机器人技术四川省重点实验室(西南科技大学),四川绵阳 621010;3.清华四川能源互联网研究院,成都 610213;4.水沙科学与水利水电工程国家重点实验室(清华大学),北京 100084)
0 引言
水工隧洞作为水利枢纽工程关键构筑物,具备水力发电、农业灌溉和泄洪等综合效能,在我国各大水电站中发挥着重要作用。由于水工隧洞洞径大、洞线长、地质环境复杂和施工技术难等特点,水工隧洞易产生裂缝、脱落和渗漏等高危缺陷[1]。因此,高精度、低延时的缺陷识别是水工隧洞工程安全运行的有力保障。
目前的水工隧洞缺陷识别以人工巡检为主,主要采用钻芯法、回弹法、红外成像法和探地雷达法等[2],人工巡检模式不仅受工况制约,而且巡检结果具有较强主观性与经验依赖性,检测周期往往以年为单位,很可能导致严重的隧洞运维事故。于是,有研究者提出使用图像处理技术取代人工巡检来对混凝土建筑物进行缺陷识别。姚学练等[3]基于色调、饱和度和亮度颜色空间对麻面图像进行分析,根据分析结果绘制饱和度分量的灰度波动曲线,计算波峰波谷部分高度差的标准差得到用于图像分割的最佳阈值,实现麻面的识别;王永会等[4]通过分数阶傅里叶变换将裂缝图像转换为频谱图,在对频谱图进行增强处理后逆变换为增强的裂缝图像,再使用Canny边缘检测算子实现路面裂缝识别。但传统的图像处理方法进行缺陷识别时需要手动设计特征及参数,计算步骤复杂,在更换背景后容易降低准确率,缺乏泛化能力。近年来,随着机器人和人工智能等技术的迅速发展,具有高自动化、智能化水平的水利枢纽工程巡检系统已成为新一代水利智能化的主要研究方向[5]。其中,以深度卷积神经网络(Deep Convolutional Neural Network,DCNN)为代表的特征自动提取技术被广泛应用于建筑物缺陷识别应用。王森等[6]将深度卷积神经网络引入裂缝图像识别中,通过增大图像分辨率、加深网络深度和添加更高尺度的反卷积层来补充局部细节,相比传统图像处理算法有更高的精度;陈波等[7]提出一种误识别图像再训练的坝面裂缝识别网络,该方法将原始数据给专家进行第一次标注,经第一轮训练好后出现的误识别图像再由专家进行第二次细致标注,再次训练优化后,取得较第一次更好的坝面裂缝识别效果;梁雪慧等[8]将传统的图像处理方法与深度卷积神经网络相结合,使用双边滤波和Retinex图像增强算法处理桥梁裂缝在特殊天气和建筑物遮挡时光照不足的情况,再采用归一化的卷积核改进深度卷积神经网络,能够区分桥梁裂缝和正常背景。Dung等[9]选取多种经典深度卷积神经网络对校园建筑物裂缝图像进行预训练,将识别效果最好的网络作为骨干网络,在骨干网络的基础上增加编码和解码结构,实现裂缝进一步的精细识别。Feng等[10]提出一种基于残差网络的坝面裂缝识别方法,该方法在残差网络的基础上增加四个跳跃分支用于连接网络的浅层和深层,补充了部分语义信息,在坝面裂缝识别任务上取得了一定效果。然而,现有深度卷积神经网络在混凝土建筑物缺陷识别应用上大都识别种类单一,面对水工隧洞低照度的复杂环境下缺陷多分类任务,特征提取能力依然不足,同时,现有深度模型在提升识别准确率时往往会成倍地增加卷积核数量,巨大的参数量导致了模型推理时间长的问题,限制了工程应用。
针对上述问题,本文提出一种水工隧洞动态特征蒸馏模型(Tunnel Network based on Dynamic Feature Distillation,TunnelNet-DFD)。在知识蒸馏框架下,根据水工隧洞缺陷图像特点设计教师网络TunnelNet-50(Tunnel Network of 50 layers)和 学 生 网 络TunnelNet-18(Tunnel Network of 18 layers),采用深度曲线估计模块、动态卷积模块和动态特征蒸馏损失三种改进方法,主要工作如下:
1)将深度曲线估计网络应用于水工隧洞场景,针对场景特点设计深度曲线估计模块,优化不同光照情况下的隧洞缺陷图片,借助深度曲线估计网络的特征自动提取能力,避免了人工设定特征导致的背景依赖问题,能够有效改善低照度数据质量且具有一定泛化能力。
2)设计一种加入注意力机制的动态卷积模块,改进传统静态卷积,用于训练教师网络,能够根据水工隧洞六类缺陷的不同特点对模型参数进行动态调整,提升了模型对水工隧洞缺陷特征的提取能力。
3)构造动态特征蒸馏损失,增加了知识蒸馏框架中的指导知识,通过鉴别器结构度量教师网络和学生网络动态卷积模块输出之间的动态特征距离,再经知识蒸馏后,作为学生网络训练损失函数时的动态特征先验知识,使得最终模型克服了模型参数量过大导致推理时间过长的缺陷,同时获得了更好的图像语义表达能力。
4)搭建水工隧洞动态特征蒸馏模型,在同一数据集上,将本文方法与主流知识蒸馏方法进行比较,实验结果表明,本文方法能够在大幅降低模型参数量的同时保持高识别准确率,比现有方法更适用于水工隧洞应用场景下的裂缝、麻面、脱落、露筋、钙化和渗漏六类缺陷的识别任务。
1 水工隧洞缺陷识别方法
本文提出的水工隧洞动态特征蒸馏模型如图1所示,主要包括深度曲线估计模块、动态卷积模块和动态特征蒸馏损失三部分。原始缺陷图片首先通过深度曲线估计模块进行低照度增强,然后动态卷积模块对增强后的图片进行特征提取,得到动态特征,最后在知识蒸馏框架下,通过动态特征蒸馏损失将教师网络中的动态特征知识蒸馏到学生网络中,提升了学生网络的图像语义特征表达能力且降低了模型参数量。动态特征蒸馏结构中的教师网络TunnelNet-50、学生网络TunnelNet-18基 于 残 差 网 络ResNet-50(Residual Network of 50 layers)、ResNet-18(Residual Network of 18 layers)[11]进行改进,并在残差模块中集成了压缩和激励网络(Squeeze-and-Excitation Network,SENet)[12]中的注意力模块。教师网络和学生网络之间的鉴别器结构用于度量两者动态卷积模块输出之间的Wasserstein距离[13],该距离作为动态特征蒸馏损失增加了学生网络的指导知识。训练过程结合动态卷积模块特点,将批次归一化(Batch Normalization,BN)替换成实例归一化(Instance Normalization,IN),以此提升动态卷积的特征提取性能。
图1 水工隧洞动态特征蒸馏模型整体结构Fig.1 Overall structure of dynamic feature distillation model of hydraulic tunnel
1.1 深度曲线估计模块
水工隧洞内水体浑浊、附着淤积和光线昏暗导致缺陷图像质量不足,通过如图2所示深度曲线估计模块能有效改善缺陷图片的低照度情况。
图2 深度曲线估计模块结构Fig.2 Deep curveestimation module structure
在深度曲线估计网络(Deep Curve Estimation Network,DCENet)[14]中加入了3个跳跃结构连接卷积层,用于补偿语义信息,增强对光照特征的学习能力。区别于一般神经网络图像到图像的映射,深度曲线估计模块将任务重新定义为图像特定曲线的估计问题,以弱光图像为输入、以高阶曲线为输出,所得曲线用于在输入的动态范围上进行逐像素调整,调整后获得光线均匀且充足的图像。深度曲线形式采取二次曲线以保证在梯度反向传播过程中可微,将前一次得到的二次曲线输出作为后一次的输入,可得像素级光线增强曲线(Light-Enhancement curve,LE-curve)具体定义如下:
其中:x是像素坐标;n是用于控制曲率的迭代次数,使得LEn(x)能在增强后的LEn-1(x)基础上继续优化;A是与给定图像大小一致的估计曲线参数图,所包含的可训练曲线参数能够对每一个像素进行调整。
1.2 动态卷积模块
传统静态卷积对于所有样本参数共享,而动态卷积针对单个样本,具有数据依赖性[15]。通过在动态卷积中引入注意力机制,使得并行的卷积核以非线性方式聚合,具备更强的表示能力。动态卷积中的注意力机制关注不同卷积核对特征提取的贡献程度,能通过训练学习到相应权重。注意力动态聚合的过程定义如下:
所设计的动态卷积模块基于注意力机制动态地聚合3个并行卷积核,从而生成对图像内容自适应的动态卷积,则聚合权重函数定义如下:
其中:i(x)是3×3常规卷积所对应的注意力权重;j(x)是采用膨胀系数为1的空洞卷积所对应的注意力权重;k(x)是采用膨胀系数为2的空洞卷积所对应的注意力权重。三个并行的卷积核作用于图像不同位置,但卷积核尺寸、输入和输出维度一致。
同理,偏差函数定义如下:
基于注意力机制的动态卷积模块首先通过全局平均池化(Global Average Pooling,GAP)压缩全局空间信息,然后通过两层由激活函数ReLU连接的全连接层(Fully Connected layer,FC),紧接着通过激活函数Sigmoid增加非线性,之后的Softmax函数用于对3个并行卷积核的注意力权重进行归一化,通过1次乘加运算得到一个表示能力更强的动态卷积,用于取代特征提取能力不足的传统静态卷积。因为动态卷积模块针对不同的样本会产生特异性的注意力权重,故而训练过程不采用BN,而采用IN进行训练,可得传统静态卷积模块和动态卷积模块结构对比如图3所示。
图3 传统静态卷积模块和动态卷积模块的结构对比Fig.3 Structure comparison of traditional statistic convolution moduleand dynamic convolution module
1.3 动态特征蒸馏损失
传统知识蒸馏框架中,学生网络缺乏对教师网络浅层的学习,损失大量特征信息。本文提出的动态特征蒸馏损失引入位于教师网络浅层的动态特征,使学生网络获得更多特异性的语义信息,通过师生网络动态卷积模块间的Wasserstein距离度量,定义如下:
由于卷积神经网络难以直接计算式(5),将式(5)中d(x,y)看作成本函数,代表从x运输到y的成本,即要在所有运输方案中,找到式(5)中∬γ(x,y)d(x,y)dxdy这一总运输成本的最小方案。看作线性规划问题后,根据对偶定理将求下界的问题转换为等价的求上界问题,可得式(5)的一个对偶形式如下:
根据f(x)+g(x)≤d(x,y)可以得到:
即g(x)≤f(x),于是有:
由式(8)知,当g(x)=-f(x)时,式(6)的最大值不会小于原来的最大值,可令g(x)=-f(x),从而:
由于p和q都是概率分布,可以将式(9)写成采样形式如下:
至此,式(10)已符合卷积神经网络的计算要求,再通过图1中的鉴别器来实现动态特征的传递。在鉴别器最后softmax层中引入软目标,得到动态特征的蒸馏形式如下:
其中:qi是预测属于第i类的概率;zi是第i类通过网络最后一层的输出值;zj是第j类通过网络最后一层的输出值;n是缺陷类别总数;T是温度系数,设置为经验值3[16]。
本文提出的损失函数包括学生网络分类损失、师生网络最末层知识蒸馏损失、师生网络动态特征蒸馏损失和一个防止过拟合的L2正则化项,定义如下:
相比传统知识蒸馏结构,动态特征蒸馏结构在增加深度曲线估计模块和动态卷积模块的基础上,通过鉴别器传递教师网络的动态特征知识给学生网络,增加特征提取能力更强的指导知识。动态特征知识由动态卷积提取图像的特征得到,教师网络动态特征知识传递的方法采用知识蒸馏算法,学生网络接受的指导知识即动态特征蒸馏损失,该损失在动态特征蒸馏模型训练过程中作为损失函数的一部分优化模型的特征表达能力,可得传统知识蒸馏结构和动态特征蒸馏结构对比如图4所示。
图4 传统知识蒸馏结构和动态特征蒸馏结构对比Fig.4 Comparison of traditional knowledge distillation structureand dynamic feature distillation structure
2 实验与分析
为验证本文提出水工隧洞缺陷识别方法的有效性,设计一系列消融实验分别评估深度曲线估计模块、动态卷积模块和动态特征蒸馏损失的性能,再与相关主流方法进行对比实验,最后进行参数分析。
2.1 实验数据集及预处理
实验所选取的缺陷数据集由清华四川能源互联网研究院提供,通过搭载多种传感器的机器人在四川某水电站水工隧洞内进行采集[17]。该数据集共12 000张分辨率为224×224的RGB(Red-Green-Blue color mode)图像,涉及裂缝、麻面、脱落、露筋、钙化和渗漏六个缺陷类别,每个类别包含2 000张图像样本,所有样本均由水利专家标注制作,数据集具体类别示例如图5所示。实验过程中训练集、验证集和测试集的选取比例为6∶2∶2,其中训练集和验证集不放回随机抽取,剩余为测试集。
图5 水工隧洞缺陷数据集具体类别示例Fig.5 Specific type samples in hydraulic tunnel defect dataset
2.2 实验运行环境
为评估本文方法的有效性,所有实验的硬件设备和软件环境均保持一致。硬件设备中,中央处理器(Central Processing Unit,CPU)和图像处理器(Graphics Processing Unit,GPU)分别选用的型号为Intel Core i5-8400和NVIDIA GTX 1060Ti;软件环境中,本文实验在Windows 10操作系统上进行,基于Pytorch 1.5框架搭建深度学习模型,统一计算设备架构(Compute Unified Device Architecture,CUDA)和编程语言分别选用CUDA 10.1和Python 3.8。
2.3 实验评价指标
实验中缺陷识别性能选取准确率、宏查准率(macro-P)、宏查全率(macro-R)和宏F1分数(macro-F1)作为评价指标[18],具体定义分别如下:
其中:n为缺陷类别总数;TPi是将第i类中正类预测为正类的正确数;FPi是将第i类中负类预测为正类的误报数;FNi是将第i类中正类预测为负类的漏报数。
实验的实时性通过浮点运算次数(FLoating-point OPerations,FLOPs)[19]和表示测试集单个样本平均耗时的推理时间来进行评估,在卷积层中,FLOPs的计算如下:
其中:H、W和Cin是输入特征图的高度、宽度和通道数;K是卷积核的尺寸;Cout是输出通道数。
在全连接层中,FLOPs的计算如下:
其中:I是输入维度;O是输出维度。
2.4 训练过程及结果分析
TunnelNet-DFD模型的训练过程通过损失值和准确率变化来进行评估,分别如图6(a)和图6(b)所示。
图6 训练过程损失值与准确率变化趋势Fig.6 Trends of loss and accuracy during training
从图6中可看出,随着迭代轮数增加,损失值快速下降并在50轮后基本达到收敛,准确率最高达到96.15%,整体上,验证集效果略低于训练集,没有发生过拟合的现象,说明模型具备良好的泛化能力和稳定的识别能力。
为进一步分析每个类别的识别情况,如图7采用混淆矩阵直观地呈现每个类别缺陷识别的预测情况,横轴表示预测类别、纵轴表示真实类别,矩阵单元值表示识别该类别的准确率,颜色越深表示准确率越高。从图7可以观察到模型能有效区分水工隧洞缺陷的6个类别。对露筋的缺陷识别能力最强,所预测的400张露筋对象全部正确;钙化和麻面分别仅有1张和2张图像被识别错误;裂缝和脱落存在少量的误分现象,主要原因是机器人在采集数据过程中对部分图像局部补光过度,而补光过度的图像在训练样本中所占数量较少;渗漏的识别率相对较低,主要原因是渗漏的发生往往源于裂缝,存在交叠现象。
图7 缺陷识别混淆矩阵Fig.7 Confusion matrix of defect recognition
2.5 消融实验
为验证本文所提出的各项改进措施对模型性能的影响,在改进前的ResNet-50基础上添加全部措施得到最终的本文方法,通过控制变量去掉各项措施设计消融实验,具体如表1所示。
从表1中可看出,对于评价指标macro-P、macro-R和macro-F1,深度曲线估计模块分别提升2.46、1.93和2.2个百分点;动态特征蒸馏损失分别提升3.34、4.61和3.98个百分点;动态卷积模块和动态特征蒸馏损失的共同作用对模型性能贡献最大,分别提升8.27、7.01和7.64个百分点。整体上,本文方法的macro-F1比改进前的残差网络提升了8.99个百分点,达到96.11%,充分说明本文提出的各项改进措施对水工隧洞缺陷识别任务性能有针对性的提升。
表1 不同改进措施对模型性能影响评估Tab.1 Evaluation of impact of different improvement measures on model performance
2.6 与主流网络对比实验
在对比主流识别网络中,为更客观地比较所设计教师网络TunnelNet-50与主流方法的性能,DyNet(Dynamic convolution neural Network)[20]和SENet均基于ResNet-50骨架网络进行搭建,同时,非动态卷积方法采用更利于其性能提升的BN方法,具体实验结果如表2所示。
表2 不同图像识别方法量化指标比较 单位:%Tab.2 Comparison of quantitative indicators of different image recognition methods unit:%
从表2可看出:针对ResNet网络的改进带来明显的效果提升,学生网络TunnelNet-18和教师网络TunnelNet-50相较改进前macro-F1分别提升5.42和10.43个百分点,本文设计的教师网络在macro-P、macro-R和macro-F1评价指标上与前沿图像识别网络对比中,相比DyNet分别提升2.9、4.87和3.88个百分点,相比SENet分别提升1.57、3.09和2.33个百分点,结果表明本文设计的教师网络相对其他主流图像识别网络更有优势。
在对比主流知识蒸馏模型中,除使用正则化表达的自学习知识蒸馏(Teacher-free Knowledge Distillation,Tf-KD)[21],所有蒸馏的教师网络均选用TunnelNet-50,学生网络均选用TunnelNet-18,其中,传统知识蒸馏(Knowledge Distillation,KD)方法仅对卷积层末层知识进行蒸馏,互信息知识蒸馏(Variational Information Distillation,VID)[22]增加对常规卷积层的中间特征值进行蒸馏。在选用的比较算法中,KD是最早提出知识蒸馏概念的算法,能够作为评估本文方法性能的基准,而VID和Tf-KD是近年知识蒸馏领域最新的研究成果,这三种算法作为目前知识蒸馏结构的典型方法,与本文方法进行比较时具有一定的代表性。本文方法使用动态卷积中间特征值取代VID中的静态卷积中间特征值,相比Tf-KD减少指导知识的做法反而增加动态特征指导知识,具体实验结果如表3所示。
表3 不同知识蒸馏方法量化指标比较 单位:%Tab.3 Comparison of quantitative indicatorsof different know ledge distillation methods unit:%
由表3可知,本文提出的水工隧洞缺陷识别动态特征蒸馏模型TunnelNet-DFD在macro-P、macro-R和macro-F1评价指标上比传统知识蒸馏算法KD分别高出3.09、4.79和3.95个百分点,说明本文方法在传统知识蒸馏算法上已经有很大提升。在macro-F1上相比最新蒸馏算法VID和Tf-KD分别高出3.17和1.6个百分点,具有最优结果。
为验证本文方法的模型压缩性能,从模型容量、计算量、推理时间三方面进行评估。实验结果如表4所示,本文方法的模型参数量和推理时间为原有残差网络的1/2和1/6,FLOPs降至1.83×109,同时优于其他主流教师网络,能适应对实时性要求较高的工程应用场景。
表4 不同主流教师网络模型压缩性能对比Tab.4 Comparison of model compression performanceof different mainstream teacher networks
针对卷积神经网络“黑盒”模型难以解释的问题,本文采用如图8所示的类激活热力图Grad-CAM++(Gradient-based Class Activation Mapping++)[23]对水工隧洞缺陷识别结果进行可视化并对比相关主流算法,通过温度值高低反映模型对图像特征的敏感程度。
从图8中可看出,DyNet网络识别到的特征过于单一,SENet对于裂缝和脱落缺陷的特征提取能力较差,其余效果良好,而VID和Tf-KD没有抓住缺陷的直观特征。本文提出的TunnelNet-DFD模型能有效提取每一种缺陷类别的关键特征,符合专家评判标准,相比其他图像识别主流方法具有明显优势。
图8 不同缺陷识别方法的可视化结果Fig.8 Visualization results of different defect recognition methods
2.7 参数分析
本文提出的损失函数中,超参数(α、β、γ)沿用传统知识蒸馏方法中认为学生网络分类损失与师生网络最末层知识蒸馏损失同等重要的思想,在三者总和为1的前提下设置(α=0.1、β=0.1、γ=0.8)、(α=0.2、β=0.2、γ=0.6)、(α=0.3、β=0.3、γ=0.4)和(α=0.4、β=0.4、γ=0.2)四组不同的参数实验,用于验证不同参数设置对缺陷识别模型性能的影响。
四组参数实验的具体情况如图9所示。
图9 不同参数设置对模型性能的影响Fig.9 Influenceof different parameter settingson model performance
当α和β权重小于0.2时,模型整体性能偏低,随着两者权重增大,模型性能逐渐提升,当γ达到0.2时最优,结合表1可知,进一步降低γ值导致的动态卷积模块和动态特征蒸馏损失失效会降低模型性能,这也说明动态卷积模块和动态特征蒸馏损失对模型性能具有重要影响。综合图9结果,本文参数(α、β、γ)选择第四组(α=0.4、β=0.4、γ=0.2),此时模型达到最好效果。
3 结语
本文对主流图像识别网络ResNet进行改进,提出一种基于动态特征蒸馏的缺陷识别方法,并应用于水工隧洞环境下的缺陷识别任务。主要创新点包括:深度曲线估计模块、动态卷积模块和动态特征蒸馏损失,分别用于改善低照度图像质量、提升特征提取能力和降低模型推理时间。本文方法在四川某水电站水工隧洞缺陷数据集上的准确率、macro-P、macro-R和macro-F1分别达到96.15%、96.08%、96.14%和96.11%,能够有效提取水工隧洞场景中的缺陷特征,同时实时性高,优于其他主流图像识别算法,具有重要的工程应用价值。最后,由于实际场景中缺陷种类繁多和交叠等问题,在未来的工作中,将扩充水工隧洞缺陷类别,探索模型剪枝和多任务学习等优化方法,进一步提高水工隧洞缺陷识别模型的准确率、实时性和泛化能力。