«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (9): 277-285  DOI: 10.19678/j.issn.1000-3428.0062577
0

引用本文  

赵国川, 王姮, 张华, 等. 基于完全自注意力的水电枢纽缺陷识别方法[J]. 计算机工程, 2022, 48(9), 277-285. DOI: 10.19678/j.issn.1000-3428.0062577.
ZHAO Guochuan, WANG Heng, ZHANG Hua, et al. Hydropower Complex Defect Recognition Method Based on Pure Self-Attention[J]. Computer Engineering, 2022, 48(9), 277-285. DOI: 10.19678/j.issn.1000-3428.0062577.

基金项目

国家重点研发计划(2019YFB1310504);四川省科技创新创业苗子工程(2021JDRC0088)

通信作者

王姮(通信作者),教授

作者简介

赵国川(1996—),男,硕士,主研方向为建筑物表观图像处理;
张华,教授、博士、博士生导师;
庞杰,硕士;
周建,讲师、博士

文章历史

收稿日期:2021-09-03
修回日期:2021-10-25
基于完全自注意力的水电枢纽缺陷识别方法
赵国川1,2,3 , 王姮1,2 , 张华1,2,3 , 庞杰1,2 , 周建1,2     
1. 西南科技大学 信息工程学院, 四川 绵阳 621000;
2. 西南科技大学 特殊环境机器人技术四川省重点实验室, 四川 绵阳 621000;
3. 清华四川能源互联网研究院, 成都 610000
摘要:水电枢纽在长期运行过程中容易受水流侵蚀、应力变化等因素影响,导致形成裂缝、渗漏、脱落、露筋等缺陷,造成重大安全隐患。目前,水电枢纽缺陷识别主要依靠人工巡检,存在效率低、风险高等问题。提出一种水电枢纽缺陷识别方法,基于完全自注意力机制构建缺陷识别网络,以提高网络捕捉长距离全局信息的能力和缺陷识别精度。设计2个同尺寸的自注意力编码器分支,通过双分支结构完成不同尺度自注意力计算,从而提取多尺度缺陷特征,增强全局语义表达能力。构建一个基于类别向量的自注意力混合融合模块,并对2条分支的多尺度特征进行融合,以有效应对水电枢纽缺陷图像尺度变化大、形态多样等问题。在四川某水电站枢纽缺陷数据集上的实验结果表明,该方法宏查准率可达98.87%,缺陷识别效果优于SVM、ResNet-50、MobileNet v3等方法。
关键词水电枢纽    缺陷识别    自注意力机制    多尺度特征    自注意力融合    
Hydropower Complex Defect Recognition Method Based on Pure Self-Attention
ZHAO Guochuan1,2,3 , WANG Heng1,2 , ZHANG Hua1,2,3 , PANG Jie1,2 , ZHOU Jian1,2     
1. School of Information Engineering, Southwest University of Science and Technology, Mianyang, Sichuan 621000, China;
2. Sichuan Key Laboratory of Robotics for Special Environments, Southwest University of Science and Technology, Mianyang, Sichuan 621000, China;
3. Tsinghua Sichuan Energy Internet Research Institute, Chengdu 610000, China
Abstract: In the long-term operation, hydropower projects are vulnerable to water erosion, stress changes and other factors, resulting in cracks, leakage, falling off, exposed reinforcement and other defects, which can easily cause major safety hazards.Currently, defect identification in hydropower projects mainly depends on manual inspection; however, this method has the problems of low efficiency and high risk.A defect identification method for hydropower project is proposed.Based on a complete self-attention mechanism, a defect identification network is constructed to improve the ability of the network to capture long-distance global information and the accuracy of defect identification.Two branches of the self-attention coder with the same size are designed, and the self-attention calculation of different scales is completed through a double branch structure, to extract the multi-scale defect features and enhance the global semantic expression ability.A self-attention hybrid fusion module based on category vector is constructed, and the multi-scale features of the two branches are fused to effectively deal with the problems of large-scale changes and diverse forms of the defect image of a hydropower project.The experimental results on the defect dataset of a hydropower station in Sichuan Province show that the macro precision of this method can reach 98.87%, and the defect recognition effect is better than SVM, ResNet-50, MobileNet v3 and other methods.
Key words: hydropower complex    defect recognition    self-attention mechanism    multi-scale features    self-attention fusion    

开放科学(资源服务)标志码(OSID):

0 概述

水电枢纽混凝土结构长期受到水流冲刷侵蚀,极易形成裂缝、渗漏等典型缺陷,为水电枢纽的稳定运行带来极大的安全隐患。目前,水电枢纽缺陷识别主要依靠人工巡检,该方式存在周期长、效率低、风险高等问题[1]。由于水电枢纽缺陷图像数据具有相似干扰噪声大、亮度不均衡、背景特征复杂等特点,导致基于视觉的高效、准确的水电枢纽表观缺陷识别方法的研究成为一项充满挑战性的任务。

近年来,研究人员专注于表观缺陷自动检测方法在道路、桥梁、管道、隧洞等领域的应用研究。早期,基于显式特征提取[2]的缺陷检测方法通常通过手动提取缺陷的颜色、纹理、形状等特征,并将特征送入设计的分类器,完成对缺陷图像和正常图像的分类。PRASANNA等[3]提出一种用于桥梁裂缝识别的多特征分类器和机器学习分类器,虽然传统基于显式特征提取的缺陷检测方法在缺陷识别任务上取得了一定效果,但需要手动设计特征和参数,且计算步骤繁杂,在背景变化后其识别准确率容易大幅降低。近年来,深度卷积神经网络(Deep Convolutional Neural Network,DCNN)在图像分类[4-5]、目标检测[5]、图像增强[6]、语义分割[7]等计算机视觉任务上取得了显著成就,研究人员相继提出多种深度卷积网络来完成缺陷检测任务。LEE等[4]提出一种基于卷积神经网络和类激活映射的钢铁缺陷分类方法,实时诊断钢铁缺陷。FENG等[5]提出一种基于Inception V3的水利枢纽结构损伤识别方法,利用迁移学习初始化网络,完成裂缝、渗水等5种缺陷分类任务。文献[6]在传统U-Net模型的基础上构建一种基于偏色图像的卷积神经网络模型,不断学习输入图像与输出图像的色彩偏差,并通过引用结构相似性的损失函数使增强后的水下图像与输入的水下图像在内容结构细节上保持高度相似。SUN等[7]使用SSD检测网络对路面裂纹进行定位及分类,并使用U-Net网络对裂纹区域进行分割,最终该网络对横向、纵向和网状3类裂纹的识别精度分别为86.6%、87.2%和85.3%。CHOI等[8]提出SDD-Net,使用稠密空洞卷积增大卷积层感受野及降低参数量,通过特征金字塔池化模块融合多尺度特征,大幅提升裂缝分割速度。卷积架构为网络学习提供局部相关性这一重要的归纳偏置,使网络可以高效学习、迅速收敛,但该架构获取全局信息的能力较弱,在一定程度上限制了网络性能上限。

目前,Transformer[9]作为先进的序列数据处理模型,在机器翻译[10]、语言建模[11]、语音识别[12]等自然语言处理(Natural Language Processing,NLP)领域取得了优异成绩。自注意力机制是Transformer的核心,通过关联每个特征点与其他特征点之间的依赖关系,形成强大的全局信息捕捉能力。受Transformer在NLP中取得成功的启发,研究人员开始将Transformer应用到图像处理领域。BELLO等[13]将部分卷积层替换为自注意力层,提升了图像分类效果,但大尺寸图像的自注意力计算导致时间复杂度大幅增加,计算成本太高。WANG等[14]提出一种循环卷积网络用于场景分类,通过选择性关注关键特征区域,丢弃非关键信息,从而提升分类性能。RAMACHANDRAN等[15]使用自注意力机制独立构建网络,以处理视觉任务。谷歌提出一种视觉变换器(Vision Transformer,VIT)[16],完全使用自注意力机制解决计算机视觉任务,在ImageNet数据集上表现良好。

在水电枢纽缺陷识别过程中,网络通常需要全局的视野才能准确判断是否存在缺陷及缺陷类型。深度卷积网络[17]使用卷积核获取局部感受野,通过多个卷积层堆叠获得更大感受野,但捕捉长距离语义信息的能力仍然较弱,且网络过深容易导致过拟合、难训练、参数量巨大等问题。与DCNN不同,VIT在进行自注意力计算时,每一个特征点都会考虑其余特征点信息,具有强大的捕捉长距离依赖能力,通过训练可达到自适应调整感受野范围的效果,因此更适合水电枢纽缺陷识别。

VIT网络首先将图像切割为尺寸相同的图像块并添加序列位置信息,然后将这些序列块送入Transformer编码器,最后在Transformer的输出过程直接完成分类任务。由于缺陷图像具有形态多样、尺度变化大等特点,且VIT网络在单一尺度上对分块后的图像块进行自注意力计算,无法多尺度获取缺陷图像语义信息,因此在一定程度上限制了网络对缺陷图像的识别能力。

本文提出基于完全自注意力的水电枢纽缺陷识别网络(TSDR)。受VIT网络启发,完全采用自注意力机制构建缺陷识别网络,通过设计2个不同尺寸的自注意力编码器分支,以不同尺寸完成自注意力计算。此外,构建一个基于类别向量的自注意力混合融合模块,融合多尺度自注意力编码单元提取的多尺度特征,以有效应对水电枢纽缺陷尺度变化大、形态多样等问题。

1 本文网络

传统深度卷积网络使用具有局部感受野的卷积层提取图像特征,通过全连接层输出语义标签,对图像全局信息考虑非常有限。与深度卷积网络不同,本文完全使用自注意力机制构建网络,通过将图像块序列映射至语义标签,以完成分类任务,从而充分利用自注意力机制捕捉远程依赖关系的能力。本文提出基于完全自注意力的水电枢纽缺陷识别网络,其结构如图 1所示。可以看出,本文网络由线性嵌入层、多尺度自注意力编码器和多层感知机3部分组成,其中多尺度自注意力编码器包括多尺度自注意力编码单元和自注意力混合融合模块。线性嵌入层将图像分为不重叠的图像块并添加位置编码,多尺度自注意力编码单元采用2条分支提取不同尺度自注意力特征,通过自注意力混合融合模块融合多尺度自注意力特征,提升语义表达能力,将融合后的自注意力特征送入多层感知机获得分类结果。

Download:
图 1 本文网络结构 Fig. 1 Structure of network in this paper
1.1 线性嵌入层

图 1(a)所示,线性嵌入层位于网络前端,对缺陷图像进行分块操作,可以得到不重叠且尺寸固定的图像块,将其映射为嵌入向量,再添加类别向量和位置编码。标准Transformer输入是一维序列,为了使其能够处理二维图像数据,线性嵌入层首先将图片$ X\in {\mathbb{R}}^{H\times W\times C} $分为二维图像序列块$ {X}_{p}\in {\mathbb{R}}^{N\times {P}^{2}\times C} $。其中:$ (H, W) $是图片的分辨率;C是图像通道数;$ (P, P) $是每个图像块的分块尺寸;主分支$ {P}_{L}=16 $;副分支$ {P}_{S}=14 $$ N=\left(H\times W\right)/{P}^{2} $是图像块的数量。通过可学习嵌入矩阵$ \boldsymbol{e} $将图像序列块线性投影至一维嵌入向量$ {\boldsymbol{x}}_{\boldsymbol{p}}^{\boldsymbol{n}}\boldsymbol{E}, n\in (\mathrm{1, 2},\cdots , n) $,形状为$ 1\times D $,其中$ D $是嵌入向量深度,主分支为768,副分支为384,并增加一个与嵌入向量形状相同的可学习类别向量$ {\boldsymbol{x}}_{\mathrm{c}\mathrm{l}\mathrm{a}\mathrm{s}\mathrm{s}} $与嵌入向量并列送入多尺度自注意力编码器。由于在分割图像块的过程中容易丢失图像块之间的位置关系,为保持图像块的空间排列,每一个嵌入向量和类别向量都需要加入位置编码$ {\boldsymbol{E}}_{\mathrm{p}\mathrm{o}\mathrm{s}}\in {\mathbb{R}}^{(N+1)\times D} $,最后得到具有标记的嵌入图像序列$ {\boldsymbol{z}}_{0} $,其表达式如式(1)所示:

$ \begin{array}{l}{\boldsymbol{z}}_{0}=\left[{\boldsymbol{x}}_{\mathrm{c}\mathrm{l}\mathrm{a}\mathrm{s}\mathrm{s}};{\boldsymbol{x}}_{p}^{1}\boldsymbol{E};{\boldsymbol{x}}_{p}^{2}\boldsymbol{E};\cdots ;{\boldsymbol{x}}_{p}^{N}\boldsymbol{E}\right]+{\boldsymbol{E}}_{\mathrm{p}\mathrm{o}\mathrm{s}}, \\ \boldsymbol{E}\in {\mathbb{R}}^{N\times ({P}^{2}\times C)}, {\boldsymbol{E}}_{\mathrm{p}\mathrm{o}\mathrm{s}}\in {\mathbb{R}}^{(N+1)\times D}\end{array} $ (1)

已知VIT网络中一维和二维的位置编码分类效果几乎相同[16],因此,本文采用计算简单的一维位置编码保存图像嵌入序列的位置信息。

1.2 多尺度自注意力编码器

将线性嵌入层输出的图像嵌入序列作为多尺度自注意力编码器的输入。图像块分辨率直接影响自注意力网络的缺陷识别准确率和复杂度,低分辨率图像块可以为自注意力网络带来更高的识别准确率,但同时会带来更大的计算量和内存占用。因此,本文提出多尺度自注意力编码器,设计双分支结构对2种不同分辨率图像块进行自注意力计算,2个分支以类别向量为标识进行多尺度混合融合,获得分类预测结果。

图 1(b)所示为多尺度自注意力编码,可以看到,该编码器由K组多尺度自注意力编码单元和自注意力混合融合模块级联组成。每个多尺度自注意力编码单元包括2条自注意力编码分支:主分支使用$ 16\times 16 $大尺寸图像块、嵌入向量深度为768、4个自注意力编码单元;副分支使用$ 14\times 14 $小尺寸图像块、嵌入向量深度为384、1个自注意力编码单元。自注意力混合融合模块将一个分支的类别向量与另一个分支的嵌入向量进行自注意力计算,融合多尺度特征。

1.2.1 多尺度自注意力编码单元

图 2所示为多尺度自注意力编码单元结构,由2个自注意力编码单元组成。如图 2(a)所示,自注意力编码单元完全依靠自注意力机制实现,由L个相同层组成,每一层主要由多头自注意力层(Multi-Head Self Attention,MSA)和多层感知器(Multi-Layer Perceptron,MLP)2个组件组成。其中,多层感知器由2个全连接层和中间的GeLu激活函数组成,2个组件均采用残差结构,并在前端使用层归一化。MSA和MLP的表达式分别如式(2)和式(3)所示:

$ {\boldsymbol{z}}_{l}^{\text{'}}=\mathrm{M}\mathrm{S}\mathrm{A}\left(\mathrm{L}\mathrm{N}\right({\boldsymbol{z}}_{l-1}\left)\right)+{\boldsymbol{z}}_{l-1}, l=\mathrm{1, 2}, \cdots , L $ (2)
$ {\boldsymbol{z}}_{l}=\mathrm{M}\mathrm{L}\mathrm{P}\left(\mathrm{L}\mathrm{N}\right({\boldsymbol{z}}_{l}^{\text{'}}\left)\right)+{\boldsymbol{z}}_{l}^{\text{'}}, l=\mathrm{1, 2}, \cdots , L $ (3)
Download:
图 2 自注意力编码单元结构 Fig. 2 Structure of self-attention encoder unit

图 2(b)所示为多头自注意力层,是自注意力编码单元的核心组件,由线性层、自注意力头、连接层及最后的线性映射层组成。自注意力头通过计算图像嵌入序列中每个元素与其他元素的相关性,从而完成自注意力计算。计算方法如下:首先,自注意力头将嵌入图像序列$ {\boldsymbol{z}}_{0} $中的每个元素与3个可学习的自注意力权重矩阵$ ({\boldsymbol{W}}_{q}, {\boldsymbol{W}}_{k}, {\boldsymbol{W}}_{v}) $相乘(如式(4)所示),生成$ (\boldsymbol{q}, \boldsymbol{k}, \boldsymbol{v}) $3个值,通过计算$ (\boldsymbol{q}, \boldsymbol{k}, \boldsymbol{v}) $的点积学习自注意力权重;然后,自注意力头计算嵌入图像序列中元素$ \boldsymbol{q} $向量与其他元素$ \boldsymbol{k} $向量之间的点积,确定该元素与其他元素的相关性,再将点积的结果缩放后送入$ \mathrm{s}\mathrm{o}\mathrm{f}\mathrm{t}\mathrm{m}\mathrm{a}\mathrm{x} $(式(5)),其中缩放因子$ {D}_{k} $为注意力权重矩阵$ {\boldsymbol{W}}_{k} $的维度;最后,自注意力头将嵌入图像序列所有元素的$ \boldsymbol{v} $向量乘以$ \mathrm{s}\mathrm{o}\mathrm{f}\mathrm{t}\mathrm{m}\mathrm{a}\mathrm{x} $的输出,获取注意力得分最高的序列,完成自注意力计算(式(6))。多头自注意力层采用12个自注意力头堆叠而成,并行执行以上自注意力计算过程,并将结果拼接后通过可学习的线性映射层投影到高维空间(式(7))。

$ \left[\boldsymbol{q}, \boldsymbol{k}, \boldsymbol{v}\right]={\boldsymbol{z}}_{0}·[{\boldsymbol{W}}_{q}, {\boldsymbol{W}}_{k}, {\boldsymbol{W}}_{v}], W\in {\mathbb{R}}^{d\times 3{D}_{k}} $ (4)
$ A=\mathrm{s}\mathrm{o}\mathrm{f}\mathrm{t}\mathrm{m}\mathrm{a}\mathrm{x}\left(\frac{\boldsymbol{q}\times {\boldsymbol{k}}^{\mathrm{T}}}{\sqrt{{D}_{K}}}\right), A\in {\mathbb{R}}^{n\times n} $ (5)
$ SA\left(z\right)=A\times \boldsymbol{v} $ (6)
$ \begin{array}{l}\mathrm{M}\mathrm{S}\mathrm{A}\left(\boldsymbol{z}\right)=\mathrm{C}\mathrm{o}\mathrm{n}\mathrm{c}\mathrm{a}\mathrm{t}\left(S{A}_{1}\right(\boldsymbol{z});S{A}_{2}(\boldsymbol{z});\dots ;\\ S{A}_{h}\left(\boldsymbol{z}\right))\times W, W\in {\mathbb{R}}^{h\times {D}_{K}\times D}\end{array} $ (7)
1.2.2 自注意力混合融合模块

$ {\boldsymbol{x}}_{\boldsymbol{i}} $为分支$ i $的嵌入图像序列(包括类别向量和嵌入向量),$ i $表示分支L或者分支S$ {\boldsymbol{x}}_{\mathrm{c}\mathrm{l}\mathrm{s}}^{i} $$ {\boldsymbol{x}}_{\mathrm{p}\mathrm{a}\mathrm{t}\mathrm{c}\mathrm{h}}^{i} $分别表示$ i $分支的类别向量和嵌入向量。为有效获取多尺度特征,自注意力混合融合模块首先将每个分支的类别向量$ {\boldsymbol{x}}_{\mathrm{c}\mathrm{l}\mathrm{s}}^{i} $作为标识,与另一分支的嵌入向量$ {\boldsymbol{x}}_{\mathrm{p}\mathrm{a}\mathrm{t}\mathrm{c}\mathrm{h}}^{i} $进行自注意力计算,再投影回所属分支。由于类别向量$ {\boldsymbol{x}}_{\mathrm{c}\mathrm{l}\mathrm{s}}^{i} $已经在所属分支的所有嵌入向量中学习到充分的语义信息,因此与另一个不同尺寸分支的嵌入向量进行自注意力计算可以学习该分支不同尺度特征,实现多尺度特征融合。类别向量$ {\boldsymbol{x}}_{\mathrm{c}\mathrm{l}\mathrm{s}}^{i} $在与另一分支融合多尺度特征后,在下一个自注意力编码单元中可以将从另一分支学习到的语义信息传递给所属分支的嵌入向量,丰富所属分支的语义信息。主、副分支以相同方法进行自注意力融合过程,如图 3所示为主分支L的自注意混合融合模块,下面将以图 3为例详细分析融合过程。

Download:
图 3 自注意力混合融合模块 Fig. 3 Self-attention fusion module

图 3可知,主分支L从副分支S处获取嵌入向量$ {\boldsymbol{x}}_{\mathrm{p}\mathrm{a}\mathrm{t}\mathrm{c}\mathrm{h}}^{S} $,并与主分支的类别向量$ {\boldsymbol{x}}_{\mathrm{c}\mathrm{l}\mathrm{s}}^{L} $连接起来,组成新的图像嵌入序列$ {\boldsymbol{x}}_{L}^{\text{'}} $$ {\boldsymbol{x}}_{L}^{\text{'}} $的表达式如式(8)所示:

$ {\boldsymbol{x}}_{{}_{L}}^{\text{'}}=\left[{f}^{L}\left({\boldsymbol{x}}_{\mathrm{c}\mathrm{l}\mathrm{s}}^{{}_{L}}\right)\left|\right|{\boldsymbol{x}}_{\mathrm{p}\mathrm{a}\mathrm{t}\mathrm{c}\mathrm{h}}^{S}\right] $ (8)

其中:$ {f}^{L}(·) $为线性投影函数,能够将主分支类别向量$ {\boldsymbol{x}}_{\mathrm{c}\mathrm{l}\mathrm{s}}^{L} $经过线性投影变换至副分支嵌入向量$ {\boldsymbol{x}}_{\mathrm{p}\mathrm{a}\mathrm{t}\mathrm{c}\mathrm{h}}^{S} $形状。然后,将$ {\boldsymbol{x}}_{\mathrm{c}\mathrm{l}\mathrm{s}}^{L} $$ {\boldsymbol{x}}_{L}^{\text{'}} $$ ({\boldsymbol{W}}_{q}, {\boldsymbol{W}}_{k}, {\boldsymbol{W}}_{v}) $相乘(如式(9)所示),生成$ (\boldsymbol{q}, \boldsymbol{k}, \boldsymbol{v}) $。最后,计算向量$ \boldsymbol{q} $和向量$ \boldsymbol{k} $的点积并将其送入softmax函数中,再将结果与向量$ \boldsymbol{v} $相乘,获得融合后的类别向量$ CA\left({\boldsymbol{x}}_{L}^{\text{'}}\right) $,完成自注意力融合计算,该过程的计算表达式如式(10)所示:

$ \boldsymbol{q}={\boldsymbol{x}}_{\mathrm{c}\mathrm{l}\mathrm{s}}^{L}\times \boldsymbol{W}, \boldsymbol{k}={\boldsymbol{x}}_{L}^{\text{'}}\times {\boldsymbol{W}}_{k}, \boldsymbol{v}={\boldsymbol{x}}_{L}^{\text{'}}\times \boldsymbol{W} $ (9)
$ \begin{array}{l}A=\mathrm{s}\mathrm{o}\mathrm{f}\mathrm{t}\mathrm{m}\mathrm{a}\mathrm{x}\left(\boldsymbol{q}{\boldsymbol{k}}^{\mathrm{T}}/\sqrt{C/h}\right)\\ CA\left({\boldsymbol{x}}_{L}^{\text{'}}\right)=A\cdot \boldsymbol{v}\end{array} $ (10)

其中:$ {\boldsymbol{W}}_{\boldsymbol{q}}, {\boldsymbol{W}}_{\boldsymbol{k}}, {\boldsymbol{W}}_{\boldsymbol{v}}\in {\mathbb{R}}^{C\times \left(C/h\right)} $是可学习的自注意力权重矩阵;$ C $$ h $分别是嵌入尺寸和自注意力编码器头数量。

2 实验结果与分析

本节验证本文提出的基于完全自注意力的水电枢纽缺陷识别方法的有效性。首先,设计一系列消融实验评估多尺度自注意力编码单元和自注意力混合融合模块的性能;然后,调整多尺度自注意力编码器超参数,测试本文方法不同体积模型的性能;最后,与一种机器学习方法和3个经典深度卷积网络进行对比实验。

2.1 数据集

本实验选取的缺陷数据集由清华四川能源互联网研究院提供,通过坝面无人机[18]和隧洞机器人[19]搭载多种传感器在四川某水电站坝面、引水隧洞、泄洪洞、消力池廊道等枢纽结构处采集数据。数据集共有18 605张分辨率为$ 224\times 224 $像素的RGB图像(如表 1所示),包含无损、裂缝、渗漏、露筋和脱落5个类别,每个类别包含3 700余张图像样本,所有样本均由水利专家进行标注。实验过程中训练集、验证集、测试集的比例为8:1:1,其中验证集和测试集采取不放回随机抽取策略,抽取完成后剩余的数据组成训练集。

下载CSV 表 1 数据集分布 Table 1 Distribution of dataset
2.2 实验环境及方法

为了对本文方法的有效性进行合理评估,所有实验硬件、软件环境和实验方法均保持一致。

硬件环境:中央处理器(Central Processing Unit,CPU)和图像处理器(Graphics Processing Unit,GPU)分别为Intel® Xeon® CPU E5-2620 v4 @ 2.10 GHz和2块NVIDIA GTX TITAN Xp,24 GB;系统内存是32 GB。

软件环境:操作系统采用Ubuntu18.04;编程语言为Python 3.6;深度学习框架为Pytorch 1.8.0、CUDA 10.2。

训练参数:优化器采用学习率为0.000 1的Adam方法,使用预热的方法动态调整学习率,批处理大小为32。

2.3 训练图像预处理

针对水电枢纽缺陷图像亮度差异大、背景干扰噪声复杂、获取难度高、可用图像少等问题,本文采用随机亮度调整、翻转、擦除、混合和剪切混合[20]共5种图像增强增广策略处理训练集图像,为网络提供具有挑战性的样本,提高模型泛化能力。针对训练集中每张缺陷图像,以上5种图像增强增广策略独立发生,发生的概率为0.5,训练集中5类原始缺陷图像共计14 889张,经图像增强增广策略后,增加缺陷图像共计37 222张,最终训练集缺陷图像共计52 111张。验证集和测试集不进行图像增强增广操作。

图 4所示为各类典型样本的预处理效果,图 4(b)图 4(c)分别为随机亮度调整和翻转操作,分别属于常用颜色空间变换和几何变换的图像预处理方法。

Download:
图 4 各类典型样本的预处理效果 Fig. 4 Pretreatment effect of various typical samples

图 4(d)所示为擦除操作,将缺陷图像中的随机区域替换为随机大小的黑色像素。该方法鼓励模型从缺陷图像全局的上下文中学习,而不依赖于特定局部特征,可有效缓解缺陷识别过程中的遮挡问题。图 4(e)所示为混合操作,将2个同类缺陷图像进行线性组合,生成新的训练样本。该过程的表达式如式(11)所示:

$ \left\{\begin{array}{l}\stackrel{-}{\boldsymbol{X}}=\lambda {\boldsymbol{X}}_{\boldsymbol{i}}+(1-\lambda ){\boldsymbol{X}}_{\boldsymbol{j}}\\ \stackrel{-}{\boldsymbol{y}}=\lambda {\boldsymbol{y}}_{\boldsymbol{i}}+(1-\lambda ){\boldsymbol{y}}_{\boldsymbol{j}}\end{array}\right., \lambda \in \left(\mathrm{0, 1}\right) $ (11)

$ ({\boldsymbol{X}}_{i}, {\boldsymbol{y}}_{i}) $$ ({\boldsymbol{X}}_{j}, {\boldsymbol{y}}_{j}) $是从训练集中随机抽取的2个样本,将2个样本进行线性插值,获得新样本$ (\stackrel{-}{\boldsymbol{X}}, \stackrel{-}{\boldsymbol{y}}) $,以增强模型应对水电枢纽缺陷识别中复杂背景干扰噪声的鲁棒性。

图 4(f)所示为剪切混合操作,将缺陷图像中随机区域替换为同类别另一张缺陷图片相同大小区域。上文提到的擦除方法会出现隐藏缺陷对象重要部分的情况,在一定程度上会导致缺陷特征信息丢失,但使用剪切混合方法可以缓解该问题。

2.4 实验评价指标

为评估本文方法的性能,实验采用宏查准率$ {P}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $、宏召回率$ {R}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $和宏F1分数$ {F}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $作为评价指标,其表达式如下所示:

$ {P}_{i}=\frac{{N}_{\mathrm{T}{\mathrm{P}}_{i}}}{{N}_{\mathrm{T}{\mathrm{P}}_{i}}+{N}_{\mathrm{F}{\mathrm{P}}_{i}}} $ (12)
$ {R}_{i}=\frac{{N}_{\mathrm{T}{\mathrm{P}}_{i}}}{{N}_{\mathrm{T}{\mathrm{P}}_{i}}+{N}_{\mathrm{F}{\mathrm{N}}_{i}}} $ (13)
$ {F}_{i}=\frac{2\times {P}_{i}\times {R}_{i}}{{P}_{i}+{R}_{i}} $ (14)
$ {P}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}}=\frac{1}{n}\sum\limits _{i=1}^{n}{P}_{i}\times 100\mathrm{\%} $ (15)
$ {R}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}}=\frac{1}{n}\sum\limits _{i=1}^{n}{R}_{i}\times 100\mathrm{\%} $ (16)
$ {F}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}}=\frac{1}{n}\sum\limits _{i=1}^{n}{F}_{i}\times 100\mathrm{\%} $ (17)

其中:$ n $为缺陷类别数量;$ {N}_{\mathrm{T}{\mathrm{P}}_{i}} $是第$ i $类中正确预测的缺陷类别个数;$ {N}_{\mathrm{F}{\mathrm{P}}_{i}} $是第$ i $类中错误预测$ i $类缺陷为其他类别的个数;$ {N}_{\mathrm{F}{\mathrm{N}}_{i}} $是第$ i $类中错误预测其他缺陷为$ i $类缺陷的个数;$ {P}_{i} $是第$ i $类的查准率;$ {R}_{i} $是第$ i $类的召回率;$ {F}_{i} $是第$ i $类的综合度量指标(F1s)。

2.5 训练过程及结果分析

交叉熵表示2个概率分布之间的距离,本文模型采用交叉熵损失计算网络预测值与真实值之间的距离,图 5所示为本文网络在训练过程中训练损失和验证损失的变化情况。从训练过程中训练损失和验证损失的变化情况来看,本文模型在训练过程中损失迅速衰减,在60个训练轮数后基本稳定收敛,宏查准率最高达98.87%,模型没有出现明显的过拟合现象,具有良好的泛化性能和稳定的识别能力。

Download:
图 5 训练过程中损失衰减和准确率变化曲线 Fig. 5 Curve of loss attenuation and accuracy change during training

为详细分析缺陷识别情况,采用混淆矩阵直观呈现每个类别缺陷预测详情结果如表 2所示,表 3所示为本文方法每个类别缺陷的识别指标。由表 2可知,本文方法能高效识别5种水电枢纽缺陷类别,其中:识别裂缝的能力最强,能够正确识别全部测试样本(374个),且没有将其他类别误判为裂缝类别;无损类别识别情况较好,能够正确识别全部无损类别测试样本(370个),但有2张渗漏缺陷被误判为无损,主要原因是数据采集过程中局部光照不均,导致渗漏缺陷特征模糊严重;渗漏缺陷测试样本共373个,其中370个样本被正确识别,2张被错误识别为无损,1张被错误识别为脱落,主要原因是渗漏析出的钙化物堆积导致表面出现明显的凹凸不平,形成相似渗漏特征;露筋和脱落2类缺陷测试样本的数量分别为370个和371个,其中露筋被正确分类的数量为360个,错误分类为脱落的数量为10个,脱落被正确分类的数量为363个,错误分类为露筋的数量为8个,主要原因是露筋的发生往往源于脱落,两者间存在交叠现象。此外,本文方法对无损、裂缝、渗漏、漏筋、脱落缺陷的F1s识别指标分别为0.997、1.000、0.996、0.976、0.974,均处于较高水平。综上,本文方法对5种水电枢纽缺陷均有良好的识别能力,极少出现错误识别情况,抗复杂背景干扰能力强,具有较强的泛化性和鲁棒性。

下载CSV 表 2 本文方法的缺陷识别混淆矩阵 Table 2 Confusion matrix of defect recognition of method in this paper
下载CSV 表 3 本文方法的缺陷识别指标 Table 3 Defect recognition index of method in this paper
2.6 消融实验

为验证本文提出的各项改进方法对模型性能的影响,在VIT-Base的基础上逐个添加本文提出的系列改进方法,实验结果如表 4所示。其中,单独测试自注意力混合融合模块性能时,仅使用主分支通路,将当前自注意力编码单元$ {\boldsymbol{z}}_{l}^{i} $的类别向量与上一级自注意力编码单元$ {\boldsymbol{z}}_{l}^{i-1} $的嵌入向量送入自注意力混合融合模块,输出网络预测结果,以验证自注意力混合融合模块的有效性。

下载CSV 表 4 不同改进方法对模型性能影响的评估结果 Table 4 Evaluation results of the impact of different improvement methods on model performance  

表 4可以看出,与改进前的VIT-Base相比,多尺度自注意力编码单元的评价指标$ {P}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $$ {R}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $$ {F}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $分别提升了3.07、2.98、3.15个百分点;自注意力混合融合模块的$ {P}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $$ {R}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $$ {F}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $指标分别提升了0.84、1.27、1.25个百分点;在多尺度自注意力编码单元的基础上,自注意力混合融合模块的$ {P}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $$ {R}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $$ {F}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $指标分别提升了4.21、4.20、4.28个百分点;多尺度自注意力编码单元与自注意力混合模块级联作用贡献最大,相比于VIT-Base方法,其$ {P}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $$ {R}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $$ {F}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $指标分别提升了7.28、7.18、7.43个百分点。此外,本文方法宏查准率达98.87%,充分说明本文方法对水电枢纽缺陷的识别效果有针对性提升。

为探究本文方法的实时性相关指标,本文从模型参数量、模型存储大小、计算量和推理时间4个方面进行测试评估。本文方法通过调整多尺度自注意力编码器的超参数测试网络不同体积的版本。具体地,TSDR-M是小型版本,采用1个多尺度自注意力编码器,主分支嵌入向量深度为384,副分支嵌入向量深度为192,自注意力头的数量为6;TSDR-B是中型版本,采用3个多尺度自注意力编码器,主分支嵌入向量深度为768,副分支嵌入向量深度为384,自注意力头数量为12;TSDR-L是大型版本,采用6个多尺度自注意力编码器,主分支嵌入向量深度为768,副分支嵌入向量深度为384,自注意力头的数量为12。

表 5可以看出,针对尺寸为$ 224\times 224\times 3 $的输入图片,本文方法的大型版本模型参数量和计算量为VIT-Base方法的1/4,推理时间降至3.37 ms,且获得最高宏F1分数98.87%;本文方法小型版本的模型参数量为$ 2\times {10}^{6} $个,推理时间仅需1.51 ms,且识别效果优于VIT-Base方法。实验结果表明,本文方法能满足水电枢纽缺陷识别工程现场较高的实时性要求,具备一定的工程应用价值。

下载CSV 表 5 本文方法的缺陷识别指标 Table 5 Defect identification index of method in this paper
2.7 对比实验

经典的机器学习分类方法需要手动选择图像特征,如支持向量机(Support Vector Machine,SVM)[21];卷积架构的深度学习方法通过堆叠卷积层自动提取特征,如ResNet-50等。为进一步验证本文方法的有效性,将本文方法与SVM、ResNet-50[22]、MobileNet v3[23]和改进的Inception v3[5]等经典缺陷识别方法进行对比实验。为保证实验的客观性,SVM相关实验采用简易的SVM机器学习库SVMUTIL,该数据库包括特征提取算法和用于图像分类的SVM;ResNet-50和MobileNet v3实验部分采用Pytorch官方网络实现;改进的Inception v3与本文方法使用同一个数据集,并在本文环境下进行网络复现。

表 6可知,SVM方法对无损和裂缝2个类别识别较好,但对脱落、露筋、渗漏识别精度非常低,$ {F}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $为58.94%。

下载CSV 表 6 SVM方法的缺陷识别结果 Table 6 Defect identification results of SVM method

表 7可知,ResNet-50对无损、裂缝和露筋3个类别识别较好,但对渗漏和脱落识别精度较低,$ {F}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $为85.04%。

下载CSV 表 7 ResNet-50方法的缺陷识别结果 Table 7 Defect identification results of ResNet-50 method

表 8可知,MobileNet v3对无损、裂缝和露筋3个类别识别较好,但对渗漏识别精度较低,对脱落识别最差,$ {F}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $为92.86%。

下载CSV 表 8 MobileNet v3方法的缺陷识别结果 Table 8 Defect identification results of MobileNet v3 method

表 9可知,改进的Inception v3对5个类别识别效果均较好,识别精度超90%,但对脱落和露筋两项重大缺陷的识别精度不够高,对露筋识别最差,查准率为92.1%,$ {F}_{\mathrm{m}\mathrm{a}\mathrm{c}\mathrm{r}\mathrm{o}} $为96.88%。

下载CSV 表 9 改进Inception v3方法的缺陷识别结果 Table 9 Defect identification results of the improved Inception v3 method

表 10可知,SVM方法的缺陷识别精度最低,主要原因是SVM通过手动选择图像特征,不能有效提取图像特征,无法获得好的识别效果。ResNet-50缺陷识别精度高于SVM方法,主要原因是水电枢纽缺陷图像具有相似干扰噪声大、背景特征复杂、尺度变化大等特点,深度卷积网络通过堆叠卷积层构建网络,并自动提取特征,能有效缓解背景噪声干扰。MobileNet v3通过神经结构搜索构建网络,结合特征通道注意力,加强网络学习能力,从而提高深度卷积网络缺陷识别性能。改进的Inception v3方法针对水电枢纽缺陷特点进行改进,以适应缺陷识别场景,获得了较高缺陷识别指标。以上基于卷积架构的缺陷识别方法虽然取得了一定的缺陷识别效果,但由于卷积架构不能充分获取长距离全局依赖信息,易受到局部特征干扰,无法获得更好的缺陷识别效果。本文提出基于完全自注意力的水电枢纽缺陷识别方法,充分利用自注意力机制对长距离依赖关系的强大捕捉能力,通过多尺度自注意力编码单元提取全局语义特征,在全局视野上有效识别缺陷。此外,通过自注意力混合融合模块提取多尺度语义信息,有效缓解了缺陷图像形态多样、尺寸变化大的问题。在训练过程中,使用一系列图像增强增广策略增加样本多样性,提高了模型的泛化能力。

下载CSV 表 10 不同缺陷识别方法的macro-F1s指标比较 Table 10 Comparison of macro-F1s index of different defect identification methods  
3 结束语

本文提出一种基于完全自注意力的水电枢纽缺陷识别方法,采用双分支结构的多尺度自注意力编码单元挖掘缺陷图像长距离的全局信息,增强全局语义表达能力。通过自注意力混合融合模块融合2条分支的多尺度特征,有效缓解缺陷尺度差异大等问题,提升缺陷识别精度。实验结果表明,本文方法的缺陷识别效果优于SVM、ResNet-50、MobileNet v3等主流缺陷识别方法,宏查准率达98.87%。但本文所采用的位置编码方法只能编码固定大小的图片,无法实现不同尺寸图片的输入,下一步将通过嵌入卷积层实现编码目的,并利用卷积操作收集图像块之间的位置信息,从而实现不同尺寸图片的输入。

参考文献
[1]
陈益民, 周垂一. 中国水利水电地下工程数据统计(截至2016年底)[J]. 隧道建设, 2017, 37(6): 778-779.
CHEN Y M, ZHOU C Y. Statistics of China's water conservancy and hydropower underground engineering data(as of the end of 2016)[J]. Tunnel Construction, 2017, 37(6): 778-779. (in Chinese)
[2]
YANG J, LI S B, WANG Z, et al. Using deep learning to detect defects in manufacturing: a comprehensive survey and current challenges[J]. Materials, 2020, 13(24): 5755-5765. DOI:10.3390/ma13245755
[3]
PRASANNA P, DANA K J, GUCUNSKI N, et al. Automated crack detection on concrete bridges[J]. IEEE Transactions on Automation Science and Engineering, 2016, 13(2): 591-599. DOI:10.1109/TASE.2014.2354314
[4]
LEE S Y, TAMA B A, MOON S J, et al. Steel surface defect diagnostics using deep convolutional neural network and class activation map[J]. Applied Sciences, 2019, 9(24): 5449-5454. DOI:10.3390/app9245449
[5]
林封笑, 陈华杰, 姚勤炜, 等. 基于混合结构卷积神经网络的目标快速检测算法[J]. 计算机工程, 2018, 44(12): 222-227.
LIN F X, CHEN H J, YAO Q W, et al. Target fast detection algorithm based on hybrid structure convolutional neural network[J]. Computer Engineering, 2018, 44(12): 222-227. (in Chinese)
[6]
傅博, 王瑞子, 王丽妍, 等. 基于深度卷积神经网络的水下偏色图像增强方法[J]. 吉林大学学报(理学版), 2021, 59(4): 891-899.
FU B, WANG R Z, WANG L Y, et al. Enhancement method of underwater color cast image based on deep convolutional neural network[J]. Journal of Jilin University (Science Edition), 2021, 59(4): 891-899. (in Chinese)
[7]
孙朝云, 马志丹, 李伟, 等. 基于深度卷积神经网络融合模型的路面裂缝识别方法[J]. 长安大学学报(自然科学版), 2020, 40(4): 1-13.
SUN Z Y, MA Z D, LI W, et al. Pavement crack identification method based on deep convolutional neural network fusion model[J]. Journal of Chang'an University (Natural Science Edition), 2020, 40(4): 1-13. (in Chinese)
[8]
CHOI W, CHA Y J. SDDNet: real-time crack segmentation[J]. IEEE Transactions on Industrial Electronics, 2020, 67(9): 8016-8025. DOI:10.1109/TIE.2019.2945265
[9]
VASWANI A, SHAZEER N, PARMAR N, et al. Attention is all you need[EB/OL]. [2021-09-01]. https://arxiv.org/abs/1706.03762.
[10]
WANG Q, LI B, XIAO T, et al. Learning deep transformer models for machine translation[C]//Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Stroudsburg, USA: Association for Computational Linguistics, 2019: 32-45.
[11]
DAI Z H, YANG Z L, YANG Y M, et al. Transformer-XL: attentive language models beyond a fixed-length context[C]//Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Stroudsburg, USA: Association for Computational Linguistics, 2019: 55-62.
[12]
CHEN N X, WATANABE S, VILLALBA J, et al. Non-autoregressive transformer for speech recognition[J]. IEEE Signal Processing Letters, 2021, 28: 121-125. DOI:10.1109/LSP.2020.3044547
[13]
BELLO I, ZOPH B, LE Q, et al. Attention augmented convolutional networks[C]//Proceedings of IEEE/CVF International Conference on Computer Vision. Washington D. C., USA: IEEE Press, 2020: 3285-3294.
[14]
WANG Q, LIU S T, CHANUSSOT J, et al. Scene classification with recurrent attention of VHR remote sensing images[J]. IEEE Transactions on Geoscience and Remote Sensing, 2019, 57(2): 1155-1167. DOI:10.1109/TGRS.2018.2864987
[15]
RAMACHANDRAN P, N PARMAR, VASWANI A, et al. Stand-alone self-attention in vision models[EB/OL]. [2021-08-01]. https://www.xueshufan.com/publication/2949718784.
[16]
DOSOVITSKIY A, BEYER L, KOLESNIKOV A, et al. An image is worth 16×16 words: transformers for image recognition at scale[EB/OL]. [2021-08-01]. https://www.xueshufan.com/publication/3119786062.
[17]
HE K M, ZHANG X Y, REN S Q, et al. Deep residual learning for image recognition[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D. C., USA: IEEE Press, 2016: 770-778.
[18]
FENG C C, ZHANG H, WANG H R, et al. Automatic pixel-level crack detection on dam surface using deep convolutional network[J]. Sensors, 2020, 20(7): 2069-2074. DOI:10.3390/s20072069
[19]
WANG H R, WANG S, FENG C C, et al. Diversion tunnel defects inspection and identification using an automated robotic system[EB/OL]. [2021-08-01]. https://s3-us-west-2.amazonaws.com/ieeeshutpages/xplore/xplore-ie-notice.html.
[20]
YUN S, HAN D, CHUN S, et al. CutMix: regularization strategy to train strong classifiers with localizable features[C]//Proceedings of IEEE/CVF International Conference on Computer Vision. Washington D. C., USA: IEEE Press, 2019: 6022-6031.
[21]
SARI Y, PRAKOSO P B, BASKARA A R. Road crack detection using support vector machine (SVM) and OTSU algorithm[C]//Proceedings of the 6th International Conference on Electric Vehicular Technology. Washington D. C., USA: IEEE Press, 2019: 349-354.
[22]
KONOVALENKO I, MARUSCHAK P, BREZINOVÁ J, et al. Steel surface defect classification using deep residual neural network[J]. Metals, 2020, 10(6): 846-853. DOI:10.3390/met10060846
[23]
HOWARD A, SANDLER M, CHEN B, et al. Searching for MobileNetV3[C]//Proceedings of IEEE/CVF International Conference on Computer Vision. Washington D. C., USA: IEEE Press, 2019: 1314-1324.