网刊加载中。。。

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读

基于矢量量化变分自编码器的混凝土表观裂缝检测算法  PDF

  • 刘超
  • 吴纪曙
同济大学 土木工程学院,上海 200092

中图分类号: U445.7+1

最近更新:2024-10-30

DOI:10.11908/j.issn.0253-374x.22499

  • 全文
  • 图表
  • 参考文献
  • 作者
  • 出版信息
EN
目录contents

摘要

提出了一种基于第2代矢量量化变分自编码器(VQ‒VAE‒2)的自监督混凝土表观裂缝检测算法,可以在缺少裂缝样本的条件下实现高效检测。以重建误差为检测指标,利用无裂缝图片训练VQ‒VAE‒2,使其在重建裂缝图片时产生更大的重建误差;在计算重建误差时将原图和重建图片均分割成若干图块,取对应图块间重建误差最大值作为图片的重建误差,以增大2类图片的重建误差差异。结果表明,该算法的精确率为0.954,召回率为0.959,准确率为0.956,F1分数为0.957。在无裂缝样本作为训练集的情况下,该算法能较好地完成混凝土表观裂缝检测任务。

混凝土是桥梁结构的主要材料。开裂是混凝土结构的主要病害之一,若不及时修复,则会导致桥梁结构耐久性能和承载能力退化。因此,裂缝检测是混凝土结构后期管养中的一项重要任务。然而,传统的裂缝检测方法严重依赖人工,既不高效也不准确。为了提高混凝土裂缝检测效率,许多基于计算机视觉技术的检测手段被提出。目前基于计算机视觉技术的检测手段主要采用深度学习神经网络,可分为有监督模型和无监督模型。有监督模型,如AlexNet、GoogLeNet、ResNet、YOLO

1-5,在混凝土裂缝检测上表现良好。然而,有监督模型都依赖裂缝训练集,为了保证裂缝检测的准确性,必须采集大量的裂缝图片以供模型训练。实际工程中,标注的裂缝图片样本一般较少,训练的有监督模型容易发生过拟合。

为了克服裂缝检测任务中训练集数据量不足的困难,有学者通过训练神经网络生成裂缝图片进行数据增广。侯越

6和Xu7分别采用生成对抗网络(GAN)和卷积自编码器网络(CAE)生成裂缝图片,然后将生成的裂缝图片与真实的裂缝图片组成有监督模型的训练集。上述生成模型仍然需要一定数量的裂缝图片作为训练数据,并存在生成的裂缝图片清晰度不高、多样性较差的问题。另一种可行的思路是将裂缝视为异常,利用无监督算法检测混凝土裂缝。其中,基于重建误差的检测方法应用广泛。在训练阶段仅输入正常图片并使得输出图像尽可能接近输入图像,能较好地重建正常图片,而对于异常图片则重建能力较差。2类图片的重建误差存在明显差异,根据其是否超过阈值可以达到检测异常图片的目8

基于重建误差的检测方法常用的深度学习模型为自编码器。An

9介绍了基于自编码器的异常检测原理,并提出以变分自编码器(VAE)的重建概率取代重建误差作为异常检测指标。Hasan10提出了一种基于全卷积自编码器的异常检测方法。Zhou11提出了Robust Deep Autoencoders,提高了自编码器的降噪能力,并将其应用于异常检测任务。虽然上述自编码器在异常检测公开数据集上取得了良好效果,但是在实际工程应用中仍具有泛化能力太强和重建图片模糊的缺陷。Gong12在自编码器中加入记忆模块,组成记忆自编码器(MemAE)以增强对正常数据特征的学习,从而增大正常与异常的重建误差差距。虽然MemAE改善了自编码器泛化能力过强的问题,但是其同样难以重建出清晰的图片,不利于实际工程的应用。

第2代矢量量化变分自编码器(VQ‒VAE‒2)采用层级结构,融合多尺度感受野特征,具有强大的图片重建能力,能重建出高清晰度图

13。将混凝土表观裂缝检测转化为异常检测任务,基于VQ‒ VAE‒2提出了一种无监督混凝土表观裂缝检测算法。首先采用正常混凝土图片训练用于图片重建的VQ‒VAE‒2,然后利用VQ‒VAE‒2重建待检测的图片,将原图与重建图片均分割成若干图块,计算各相应图块间的重建误差,取图块间的重建误差最大值作为图片的重建误差,最后根据图片重建误差进行裂缝检测。该算法旨在解决裂缝检测任务中裂缝样本不足的问题,能在没有裂缝样本作为训练数据的情况下准确地检测出包含裂缝的图片。

1 VQ‒VAE‒2简介

VQ‒VAE‒2是由DeepMind团队于2019年提出的一种变分自编码器。本文所提出的算法是源于基于重建误差的异常检测方法,这类方法利用正常样本训练深度学习模型来重建正常样本,从而使模型在重建正常样本时产生较小的重建误差,而重建异常样本时产生较大的重建误差。VQ‒VAE‒2在本文算法中是用于重建输入样本的深度学习模型。

1.1 离散的潜变量

变分自编码器是在2013年被提出的一种自监督深度学习模型,由编码器和解码器两部分组成。在训练过程中,编码器将输入的训练图片降维并匹配潜变量z的概率分布,然后解码器从概率分布中抽样出潜变量z并用其重建输入的图片。本质上,变分自编码器是在推理样本的概率分布,再从中抽取出样本。概率分布p(x)计算式为

p(x)=p(x|z)p(z)p(z|x) (1)

式中:x为图片样本;p(x|z)为似然分布;p(z|x)为后验分布;p(z)为先验分布。

根据式(1),为了求解图片样本的概率分布p(x),需得知似然分布p(x|z)、后验分布p(z|x)和先验分布p(z)。在传统的变分自编码器中,潜变量的概率分布一般假定为标准正态分布,即z~N(0,Ι)。后验分布p(z|x)和似然分布p(x|z)分别由编码器和解码器进行拟合。其中,后验分布p(z|x)的拟合采用变分推理。变分推理是一种采用简单的分布来近似推理复杂的未知分布的方法。在VAE中,采用高斯分布来近似推理后验分布p(z|x)

VQ‒VAE‒2假设潜变量为离散分布,采用矢量量化实现离散的潜变量分布。一方面,减小了计算难度,增加了模型的推理速度;另一方面,离散分布的隐变量可以逼近连续分布,满足解码器重建输入图片的需求。此外,在真实世界中许多事物本身也是离散

14。如图1所示,VQ‒VAE‒2采用矢量量化(VQ)的方式将潜变量的分布离散化,即模型在训练过程中训练一个编码表。编码器的输出向量w采用最邻近匹配的思路,按下式映射到编码表中的向量wk

Qw=wk,k=arg minj||w-wj|| (2)

式中:w为编码器的输出;wkwj均为编码表中的向量。

图1  矢量量化过程

Fig.1  Process of vector quantization

为了使编码表中的向量wk尽可能表征输入图片的特征,应让其逼近编码器的输出向量w,因此在训练过程中需添加损失函数对编码表的参数更新进行约束。模型的损失函数如下:

L(x,y)=||x-y||22+||sg(w)-wk||22+
β||sg(wk)-w||22 (3)

式中:y为解码器的输出;sg为梯度截止计算符,此部分的偏导数为零;β为权重系数。

模型的损失函数分为3项,第1项代表输入图像与重建图像的差异,后2项则计算编码器的输出向量w与映射的编码表中向量wk间的差距。

1.2 层级结构

难以重建出清晰的图片是大多数自编码器的缺陷,限制了其在异常检测任务中的精度。为了重建出清晰的图片,VQ‒VAE‒2采用层级结构,通过融合不同尺寸感受野特征获得更清晰的输出。如图2所示,该VQ‒VAE‒2具有2层编码器,其中上层具有更大的感受野。训练过程中,上层先将编码器的输出量化,并将量化的潜变量解码后与下层编码器的输出结合来计算下层的潜变量。然后,将上下层潜变量共同作为解码器的输入并输出重建的图片,计算原图与重建图片的重建误差。采用这种方法实现了局部信息与全局信息分别编码,上层编码器负责编码全局信息,下层编码器在顶部潜变量的基础上编码局部特征,从而使模型能学习更多的纹理细节特征。

图2  VQVAE2结构

Fig.2  Architecture of VQVAE2

2 基于VQ‒VAE‒2的裂缝检测方法

2.1 检测方法

重建误差是表征深度学习模型重建图片与输入图片间差异程度的指标。在训练用于重建图片的深度学习模型时,常以重建误差作为损失函数,通过迭代更新模型的参数使重建误差最小化,从而达到输出图片尽可能接近输入图片的优化目标。模型训练时参数是根据预测值与训练集误差进行更新迭代,因此模型的重建能力很大程度上依赖训练集。当训练集仅包含正常混凝土图片时,训练得到的VQ‒VAE‒2只能学习到正常混凝土图片的特征,也就只能较好地重建正常混凝土图片。当输入图片中包含裂缝时,重建输入图片则更为困难。这导致重建的裂缝图片与原图具有更大差异,即具有更大的重建误差。如图3所示,以输入与输出图片的均方误差作为重建误差,训练的模型重建某张无裂缝图片时产生的重建误差为0.000 08,远小于其重建某张裂缝图片时产生的重建误差0.002 09。因此,选择合适的重建误差阈值可以比较准确地将图片进行分类。

图3  混凝土图片的重建误差

Fig.3  Reconstruction error of concrete images

以重建误差为判断指标,本文提出了一种基于VQ‒VAE‒2的无监督裂缝检测方法,如图4所示。首先,以仅包含正常混凝土图片的训练集训练VQ‒VAE‒2;其次,将待检测图片输入VQ‒VAE‒2中进行重建;然后,将原图与重建图片均分割成k×k个图块(k为超参数,本文中k取值为4),并计算重建图片的图块与原图中相应的图块之间的重建误差,取所有图块重建误差的最大值作为此图片的重建误差代表值;最后,对比重建误差及其阈值,若重建误差大于阈值则判断图片中包含裂缝,反之则为正常图片。

图4  基于VQVAE2的混凝土表观裂缝检测算法

Fig.4  Detection algorithm of concrete structural apparent cracks based on VQ-VAE-2

2.2 重建误差计算方法

采用均方误差eMSE作为重建误差,计算式为

eMSE=1MNi=0M-1j=0N-1(I(i,j)-K(i,j))2 (4)

式中:M为图片IK的纵向像素尺寸;N为图片IK的横向像素尺寸。

在异常检测中,均方误差可以评估重建图片与原图之间像素级别上的平均差异程度,其值越低则2张图片相似程度越高。由于计算均方误差需要取均值,因此重建图片与原图之间的差异可能会被掩盖。图5展示了某张裂缝图片不同区域重建误差的差异,在裂缝区域,重建图片与原图存在较大差异,其他区域两者则差异不明显。然而,大多数情况下,裂缝对于整张图片而言往往只占小部分,因此在计算均值之后,某些图片虽然存在裂缝,但重建误差并不明显,从而导致算法误判。在计算重建误差时,先将重建图片与原图分别分割成同样数量的图块,然后计算对应图块之间的均方误差,最后取这些图块均方误差中的最大值作为图片的重建误差。这种重建误差的计算方法能有效增大无裂缝图片与有裂缝图片的重建误差差距,提高检测任务的准确性。

图5  某裂缝图片的异常分数图

Fig.5  Anomaly score map of a crack image

3 算法验证

3.1 数据集

为了评估所提出算法的有效性,采用公开数据集CCIC(concrete crack images for classification

15进行算法验证。CCIC数据集共由40 000张像素227×227的混凝土图片组成,其中正常混凝土图片与裂缝图片各20 000张。选取20 000张正常混凝土图片及5 000张裂缝图片,划分成训练集和验证集。其中,训练集为15 000张正常混凝土图片,验证集为5 000张正常混凝土图片、5 000张裂缝图片。

3.2 VQ-VAE-2训练

在CPU Intel(R) Core(TM) i7‒10700K、GPU NVIDIA GEFORCE RTX3070ti平台上,以Python3.8语言训练基于PYTORCH 1.11.0框架的VQ‒VAE‒2。训练阶段学习率为0.000 3,输入图片像素为224×224,批尺寸为32,采用Adam优化器,共训练560代。训练过程中的损失曲线如图6所示。前期损失快速下降,经过560代训练后,模型的损失函数值已经收敛,且数值很小。

图6  损失曲线

Fig.6  Loss curve

图7展示了训练560代后VQ‒VAE‒2重建训练集图片示例,重建效果良好,输入图片与输出图片基本难以进行区分。

图7  重建训练集图片示例

Fig.7  Example of reconstructed training set images

3.3 评估指标

采用验证集评估模型的混凝土表观裂缝检测能力。评估指标采用精确率P、召回率R、准确率A、F1分数(F1)和曲线包围面积SAUC。精确率为正确预测裂缝图片数占全部预测裂缝图片数的比例。召回率为正确预测裂缝图片数占全部实际裂缝图片数的比例。准确率是正确分类的图片数与总图片数之比。F1为精确率和召回率的调和平均。为了计算上述指标,首先将检测结果统计在混淆矩阵中,如表1所示。混淆矩阵是异常检测精度评价的重要工具。

表1  混凝土表观裂缝检测的混淆矩阵
Tab.1  Confusion matrix for concrete structural apparent crack detection
真实值预测值
裂缝无裂缝
裂缝 真正类nTP 假负类nFN
无裂缝 假正类nFP 真负类nTN

PRAF1SAUC的计算式为:

P=nTPnTP+nFP (5)
R=nTPnTP+nFN (6)
A=nTP+nTNnTP+nFP+nTN+nFN (7)
F1=2PRP+R (8)

受试者工作特征曲线(ROC曲线)是以误识别率F为横轴、召回率为纵轴绘制的曲线,反映模型在不同分类阈值时误识别率和召回率的关系。误识别率计算式为

F=nFPnTN+nFP (9)

SAUC为ROC曲线与横坐标轴围成的面积,其值介于0和1之间,值越大表征模型的分类效果越好。

3.4 性能评估

选用MemAE

12与CAE16作为对照。将验证集的图片输入VQ‒VAE‒2、MemAE、CAE中进行图片重建并计算重建误差。根据重建误差预测图片中是否包含裂缝,并将预测结果与真实标签进行对比,混淆矩阵结果如图8所示。根据混淆矩阵计算精确率P、召回率R、准确率A、F1分数(F1),3种方法结果如图9a所示。结果表明,在没有裂缝混凝土图片作为训练数据的情况下,本文提出的检测算法可以比较准确地检测出包含裂缝的图片,并在精确率P、召回率R、准确率A、F1分数(F1)上优于MemAE和CAE。3种方法的ROC曲线如图9b所示。根据曲线与横坐标围成面积可知,VQ‒VAE‒2在SAUC指标上优于MemAE与CAE。

图8  实验结果的混淆矩阵

Fig.8  Confusion matrices of test results

图9  VQVAE2、CAE和MemAE的精确率、召回率、准确率、F1分数和ROC曲线

Fig.9  Precision, recall, accuracy,F1 score and ROC curve of VQ-VAE-2, CAE and MemAE

为了验证将图块级均方误差的最大值作为图像重建误差的有效性,进行了消融实验。分别采用直接计算图像的均方误差作为重建误差以及将图块级均方误差最大值作为重建误差2种计算方式。消融实验结果如表2所示。结果表明,采用后一种计算方法更有效,在各项指标上均更优于前者。

表2  不同重建误差计算方法性能
Tab.2  Performance of different reconstruction error calculation methods
损失函数计算方法PRAF1
图像级均方误差 0.898 0.956 0.924 0.926
图块级均方误差最大值 0.954 0.959 0.956 0.957

3.5 可视化检验

为了实现图片中裂缝的位置检测并以可视化的方式展示检测结果,可将图片划分成更小的图块,并采用本文算法计算各图块均方误差,以类热力图的形式可视化裂缝。热力图中高数值的区域即为开裂区域,表现出较深的颜色。分割的图块数量越多,热力图中裂缝位置越准确,但会导致计算量的显著增加。因此,将图片分割成256个图块,计算图块均方误差(16×16的矩阵),然后上采样至224×224后进行颜色映射,并随机选取了4张图片的裂缝可视化,如图10所示。结果表明,颜色较深的区域基本上与图像中裂缝所处的位置重叠,能较好地检测到裂缝在图片中的位置。

图10  裂缝可视化分析结果

Fig.10  Visualization analysis results of cracks

4 结语

本文提出了一种无监督混凝土表观裂缝的视觉检测方法,采用以无裂缝混凝土图片训练的VQ‒VAE‒2重建检测图片,并计算原图与检测图片间的重建误差,根据重建误差的大小进行裂缝检测。为了增大2类图片重建误差的差异,将重建图片与原图分割成若干图块,取相应图块间均方误差的最大值作为检测图片的重建误差。在验证实验中,本文算法的F1分数为0.957,高于MemAE和CAE,在其他评估指标上也表现最优。结果表明,在没有裂缝混凝土图片作为训练数据的情况下,该方法在混凝土表观裂缝检测任务中性能良好。

作者贡献声明

刘 超:算法提出,论文撰写指导。

吴纪曙:具体算法编写,论文撰写。

参考文献

1

YOU YZHANG ZHSIEH Cet al. ImageNet training in minutes[C]//Proceedings of the 47th International Conference on Parallel Processing. New YorkAssociation for Computing Machinery20181-10. [百度学术] 

2

SALINI RXU BPAPLAUSKAS P. Pavement distress detection with PICUCHA methodology for area-scan cameras and dark images[J]. Civil Engineering Journal2017261): 34. [百度学术] 

3

梁雪慧程云泽张瑞杰. 基于卷积神经网络的桥梁裂缝识别和测量方法[J]. 计算机应用2020404): 1056. [百度学术] 

LIANG XuehuiCHENG YunzeZHANG Ruijieet al. Bridge crack classification and measurement method based on deep convolutional neural network[J]. Journal of Computer Applications2020404): 1056. [百度学术] 

4

ZHUANG XWANG DPENG Bet al. Life-cycle civil engineering: innovation, theory and practice[M]. LondonCRC Press2021. [百度学术] 

5

毛莺池唐江红王静. 基于Faster R‒CNN的多任务增强裂缝图像检测方法[J]. 智能系统学报2021162): 286. [百度学术] 

MAO YingchiTANG JianghongWANG Jinget al. Multi-task enhanced dam crack image detection based on Faster R-CNN[J]. CAAI Transactions on Intelligent Systems2021162): 286. [百度学术] 

6

侯越陈逸涵顾兴宇. 基于卷积自编码的沥青路面目标与裂缝智能识别[J]. 中国公路学报20203310): 288. [百度学术] 

HOU YueCHEN YihanGU Xingyuet al. Automatic identification of pavement objects sand cracks using the convolutional auto-encoder[J]. China Journal of Highway and Transport20203310): 288. [百度学术] 

7

XU BLIU C. Pavement crack detection algorithm based on generative adversarial network and convolutional neural network under small samples[J]. Measurement2022196111219. [百度学术] 

8

黄超胡志军徐勇. 基于视觉的车辆异常行为检测综述[J].模式识别与人工智能2020333):234. [百度学术] 

HUANG ChaoHU ZhijunXU Yonget al. Vision-based abnormal vehicle behavior detection: a survey [J]. Pattern Recognition and Artificial Intelligence2020333):234. [百度学术] 

9

AN JCHO S. Variational autoencoder based anomaly detection using reconstruction probability[J]. Special Lecture on IE201521):1. [百度学术] 

10

HASAN MCHOI JNENUMANN Jet al. Learning temporal regularity in video sequences[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). PiscatawayIEEE2016733-742. [百度学术] 

11

ZHOU CPAFFENROTH R C. Anomaly detection with robust deep autoencoders[C]//Proceedings of the 23rd ACM SIGKDD, International Conference on Knowledge Discovery and Data Mining. New YorkAssociation for Computing Machinery2017665-674. [百度学术] 

12

GONG DLIU LLE Vet al. Memorizing normality to detect anomaly: memory-augmented deep autoencoder for unsupervised anomaly detection[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. PiscatawayIEEE20191705-1714. [百度学术] 

13

RAZAVI AOORD AVINVALS O. Generating diverse high-fidelity images with VQ-VAE-2[C]//Advances in Neural Information Processing Systems. New YorkCurran Associates201914837-14847. [百度学术] 

14

OORD A VINVALS OKAVUKCUOGLU K. Neural discrete representation learning[C]//Advances in Neural Information Processing Systems. New YorkCurran Associates20176309-6318. [百度学术] 

15

ÖZGENEL ÇSORGUÇ A. Performance comparison of pretrained convolutional neural networks on crack detection in buildings[C]//Proceedings of the International Symposium on Automation and Robotics in Construction. BerlinIAARC Publications20181-8. [百度学术] 

16

BERGMANN PLWE SFAUSER Met al. Improving unsupervised defect segmentation by applying structural similarity to autoencoders[C]//Proceedings of the 14th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications. SetúbalScience and Technology Publications20191-8. [百度学术]