APP下载

基于HU-ResNet的混凝土表观裂缝信息提取

2020-11-14徐国整廖晨聪陈锦剑

计算机工程 2020年11期
关键词:集上卷积损失

徐国整,廖晨聪,陈锦剑,董 斌,周 越

(1.上海交通大学 a.船舶海洋与建筑工程学院; b.电子信息与电气工程学院,上海 200240; 2.东南大学 土木工程学院,南京 211189)

0 概述

在建筑、桥梁、道路和隧道等工程结构建设领域,混凝土在工程用材中用量占比最高。然而混凝土结构易产生裂缝,不仅影响美观,也会降低结构的耐久性与承载能力[1]。传统混凝土结构的表观裂缝检测通常采用人工巡检方法,存在检测耗时费力、主观性强和检测精度较低等问题。而基于数字图像处理技术的混凝土结构裂缝自动化检测方法具有高效、客观和精度高等优点,因此,该方法成为学者们研究的热点。

数字图像处理方法包括边缘检测法[2]、阈值法[3]以及光谱分析法[4]等,这些方法仅对背景单一、裂缝清晰以及干扰少等特定情况下的数据集有效,而实际环境中裂缝检测易受裂缝模糊、阴影、树叶、划痕等环境噪声干扰,这些噪声造成基于数字图像处理的混凝土结构表观裂缝检测模型误差大且泛化能力较低[1]。随着计算机性能的完善和深度学习技术的进步,国内外研究人员将深度学习模型应用于土木工程混凝土结构表观裂缝的检测与识别。文献[5]将卷积神经网络(Convolutional Neural Networks,CNN)应用于混凝土裂缝损伤检测,利用滑动窗技术处理尺寸较大的图像,并与传统Canny算子和Sobel边缘检测方法进行比较,发现CNN方法检测精度更高且鲁棒性更好。文献[6]采用网络爬虫方法收集混凝土裂缝、边缘、表面等图像,对AlexNet分类神经网络进行训练并取得较好的精度。文献[7]采用CrackNet卷积神经网络对混凝土裂缝图像分类,发现该方法泛化能力较强且效率较高。文献[8-9]采用CNN方法进行混凝土裂缝图像识别,并利用高斯滤波算法、双边滤波算法、形态学运算、大津法等传统数字图像处理方法实现混凝土表观裂缝的分类和分割,然而其所用分割方法仍基于传统图像处理方法,在泛化能力上具有一定局限性。文献[10]采用基于通道间注意力机制对多尺度特征图赋权的方法对混凝土裂缝图像进行分类。文献[11]基于无人机进行混凝土桥梁裂缝检测,提出基于CNN的桥梁裂缝分类与目标检测算法,利用检测结果进行快速定位,并结合传统数字图像处理方法得到桥梁裂缝特征的具体数值。上述研究结果表明,与传统图像处理方法相比,深度学习方法在混凝土裂缝图像识别方面具有显著优势,但是该方法仅可解决图像分类问题,无法对混凝土裂缝像素信息进行有效提取。

全卷积神经网络(Fully Convolutional Neural Networks,FCN)[12]将传统CNN中全连接层换为卷积层,经过多次卷积和池化后直接对特征图进行反卷积上采样,生成与输入图像分辨率一致的分割结果,从而实现像素级分类,该网络可用于土木工程中混凝土表观裂缝的目标提取[13-15]。此外,研究人员改进FCN结构[16],将改进前性能最好的FCN-8s模型与改进后的FCN-4s、FCN-2s模型进行对比,沥青路面裂缝数据集上的结果表明FCN-4s模型分割性能更优。然而此模型仍存在问题:随着网络深度和特征维度增加,下采样之后图像细节信息会丢失,造成裂缝提取效果较差。针对该问题,研究人员相继提出SegNet[17]、DeconvNet[18]和U-Net[19]等网络。其中,U-Net卷积神经网络基于FCN设计对称的编码和解码结构,将高、低维特征进行融合,在医学图像分割领域具有较高的提取精度。文献[20-21]采用U-Net卷积神经网络建立模型,实现像素级、小样本裂缝检测。文献[22]将U-Net与CrackIT、MPS、CrackForest(SVM)方法对比,发现U-Net对裂缝的提取精度更高,但是U-Net分割结果仍存在边缘平滑、细节丢失和误检等问题。文献[23]提出VGG-U-Net路面分割方法,利用已训练好的VGG16和U-Net建立模型,在裂缝数据集上实现优于FCN、crack-FCN和U-Net的性能。

本文基于传统U-Net网络,提出一种利用HU-ResNet卷积神经网络模型提取混凝土表观裂缝的方法。采用ResNet34模型作为HU-ResNet网络编码器,利用scSE模块[24]和超柱模块[25]优化模型,选用能同时关注像素级别和图像级别显著性的组合损失函数,以更精确地提取图像中混凝土表观裂缝信息。

1 HU-ResNet模型算法

1.1 ResNet34预编码器

网络深度对视觉识别任务至关重要[25]。CNN可提取低、中、高层次的特征,网络层次越多,可提取的特征信息越丰富。然而简单增加网络深度会导致梯度分散或爆炸,分类精度达到饱和后迅速下降。文献[26]引入ResNet残差网络解决了深度神经网络的退化问题,使用ResNet成功训练出152层神经网络,并在ILSVRC2015比赛中取得冠军。ResNet网络中残差单元结构如图1所示。

图1 ResNet网络残差单元结构

通过直接将输入信息绕道传到输出,可保护信息的完整性,整个ResNet残差网络只需学习输入和输出的差别,简化学习目标和难度,其性能优于VGG网络。ResNet定义为:

y=F(x)+x

(1)

其中,x为输入,y为输出,F(x)为待学习的残差映射函数。

模型精度通常随着网络加深而提高,但由于参数量增加后模型推断时间延长,不利于实际工程应用,因此本文未选择更深的网络,而是选择34层ResNet。由于深层卷积神经网络待训练权重参数较多,在数据集较小的情况下,训练新网络耗时耗力且易出现过拟合问题,因此本文结合迁移学习对传统U-Net卷积网络进行微调,HU-ResNet模型的编码器选用经ImageNet数据集预训练的ResNet34模型。

1.2 HU-ResNet卷积神经网络结构

U-Net是全卷积神经网络的一种变形,其模型结构如图2所示。U-Net模型由编码器和解码器组成,编码器将输入图像进行多次卷积(Conv)与池化操作得到抽象的高维特征图,以此来捕捉图像中上下文信息,其扩展路径为经过若干反卷积层进行上采样生成相应大小的特征图,并对图像中所需分割的区域进行精准定位。为实现精准定位,U-Net编码器所提取的高像素特征会在升采样过程中与新特征图结合,以最大程度保留降采样过程的重要特征信息。

图2 U-Net模型结构

本文基于U-Net提出HU-ResNet模型,其结构如图3所示,该模型由编码器和解码器(Decoder)组成,在每个编码块和解码块中引入scSE模块,编码块或解码块(U)经scSE模块进行特征重新标定后,连接到下一个编码块、解码块或上采样等运算模块。其中,scSE模块结构如图4所示,scSE模块本质上是2种注意力机制的叠加,U被输入到网络后进入2条支路:图4中上方支路为sSE支路,该支路经1×1卷积操作会得到长、宽与输入U相同的权重矩阵,该矩阵与U相乘,可得到在空间重新校准(Spatially Recalibrate)的特征UsSE;下方支路为cSE支路,该支路经最大池化操作得到通道数与输入U相同的权重矩阵,该矩阵经过2个全连接层,其中,第1个全连接层神经元数量为通道数的一半,计算复杂度较低;第2个全连接层神经元数量等于通道数,通过激活函数增加非线性,将经过第2个全连接层还原到通道数的矩阵与U相乘,得到在通道方向重新校准(Channel-wise Recalibrate)的特征UcSE,最终得到沿着空间和通道重新校准的特征合并输出UscSE。由于scSE模块能较好地在空间和通道两方面同时增强重要的信息特征并弱化不重要的信息特征,因此其能有效提高裂缝图像语义分割精度。

图3 HU-ResNet模型结构

图4 scSE模块结构

此外,为更好提取裂缝图像在不同尺度上的特征,与U-Net神经网络仅利用最后一层预测分割掩码不同,本文将所有解码块上的采样特征图进行融合作为最后一层的输入。由于不同解码块上特征图大小有差异,因此先将解码块进行采样至原图大小,然后在通道方向拼接为超柱模块,并经3×3卷积和1×1卷积后输出单通道预测结果。

1.3 损失函数

损失函数是卷积神经网络优化的目标函数。交叉熵损失作为最常用的损失函数可用来衡量样本数据真实分布与预测分布之间的距离,其本质上是最大化对数似然函数。本文裂缝图像的语义分割是二分类问题,该问题的交叉熵损失函数如下:

(2)

其中,LBCE为二分类的交叉熵损失,N为图像像素数目,yi为第i个像素点的标签值,Pi为第i个像素点的预测概率值。由于交叉熵损失函数每次梯度回传对各类别具有相同关注度,因此极易受类别不平衡的影响。在裂缝图像中,裂缝像素数量占整个被检测图像像素的比例较低,若仅使用交叉熵函数,则网络预测结果更倾向为背景。

Dice损失本质上是评估两轮廓区域的相似程度,其定义如下:

(3)

其中,DSC为Dice相似系数,A为标签值,B为预测值。

Dice损失的表达式如下:

(4)

其中,LDice为Dice损失,yi为第i个像素点的标签值;Pi为第i个像素点的预测概率值;ε项设置为1,以减少过拟合,加快收敛。

Dice损失是将同类别所有像素作为整体计算损失,且将分割效果评估指标作为损失以监督网络,在计算交并比时忽略大量背景像素,解决正负样本不均衡的问题,因此收敛速度很快。但当Pi和yi过小时,Dice损失梯度会剧烈变化,造成训练波动大导致训练困难。

综合考虑交叉熵损失和Dice损失的特点,针对裂缝图像的语义提取问题,本文采用Dice损失和二分类交叉熵损失共同形成的组合损失函数,其表达式如下:

L总=LBCE+LDice

(5)

其中,L总为总损失,LBCE为二分类交叉熵损失,LDice为Dice损失。

组合损失函数关注像素级别和图像级别的显著性,在使模型训练更稳定的同时还能有效克服正负样本不均衡问题,从而获得更精细的显著性结果。

2 数据集与评估标准

2.1 实验数据集

对于深度学习模型而言,多样化且可靠的数据集是决定模型性能优劣的关键。2018年,美国犹他州立大学研究人员发布SDNET2018裂缝数据集[27],该数据集中裂缝宽度为0.06 mm~25 mm,其中包括含有阴影、碎石、小孔、拼接缝等干扰噪声和障碍物的图像。研究人员使用COOLPIXL830尼康数码相机在该学校内采集了54个桥面、72面墙、104条人行道共230张混凝土结构表面开裂和未开裂的图像,每张图像被分成256像素×256像素的子图像,共有8 484张裂缝图像和47 608张非裂缝图像。本文将SDNET2018数据集作为训练图像级别的分类器数据集,并从中选取2 000张具有代表性的裂缝图像(见图5)进行人工标注后,按照3∶1随机选取图像分别作为本文模型的训练集与测试集。

2.2 数据增强

在深度学习模型中,为输入足够数量的样本数据,避免模型过拟合,通常采用数据扩增的方式。本文考虑到需提取裂缝信息,因此尽量保留图像的色彩和空间信息,选择水平翻转、垂直翻转、旋转90°、翻转180°、翻转270°等方式进行数据扩增,以使裂缝数据集的数量变为原来6倍,此外,对应的标签图也做同样扩充,从而使模型具有更强的泛化性能。

2.3 评估标准

为更好地评价模型性能,本文以总体像素准确率(Pixel Accuracy,ACC)(即所有预测正确(正类负类)像素占全部像素的比重)、交并比(Intersection over Union,IoU)和F1值(F)作为模型性能的评价指标。其中,总体像素准确率计算公式为:

(6)

其中:TP为真正例,即模型将正类别样本正确预测为正类别;TN为真负例,即模型将负类别样本正确预测为负类别;FP为假正例,即模型将负类别样本错误预测为正类别;FN为假负例,即模型将正类别样本错误预测为负类别。

模型预测的实例A和真实实例B之间IoU计算公式为:

(7)

为全面评估模型的性能,通常需参考召回率(R)和精确率(P),本文用F1值综合反映召回率和精确率,计算公式如下:

(8)

(9)

(10)

3 实验与结果分析

3.1 实验环境与参数设置

本文基于PYTORCH框架设计实验,改进U-Net模型的训练和测试均采用上海交通大学GPU计算平台Linux系统进行,使用4块11 GB显存的NVIDIA GeForce GTX 1080Ti GPU。模型编码器加载在ImageNet上以预训练模型ResNet的权重,其他层权重采用“he_normal”方式初始化。模型输出层采用Sigmoid激活函数,其他层均采用ReLU激活函数。训练初始学习率设置为0.001,在第50个轮回迭代后学习率降为0.000 1,在第100个轮回迭代后学习率降为0.000 01,此后以0.000 01的学习率继续迭代20个轮回后停止。采用Adam优化函数并利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。

3.2 实验结果

3.2.1 评价指标对比

图6是HU-ResNet在训练150个轮回过程中,像素准确率、交并比和F1值3个评价指标的对比情况。由于裂缝图像中裂缝所占像素比很小,因此即使模型将整张图像全部判定为背景,像素准确率从训练初始阶段也一直较高。交并比和F1值在50个轮回迭代前均获得较高增长,随后增长放缓,两者变化趋势基本一致,能较好反映模型训练时的性能变化。

3.2.2 不同损失函数对比

为对比不同损失函数对模型性能的影响,本文进行3组实验。图7为HU-ResNet模型在二分类交叉熵(Bce)损失函数、Dice损失函数和组合损失函数3种不同损失函数下的损失曲线。可以看出:组合损失函数最大,这是因为组合损失函数是Bce损失函数和Dice损失函数的叠加;Bce损失函数的收敛速度比Dice损失函数更快;3种损失函数在前50个轮回均出现下降,这与图6中评价指标的变化一致,说明本文模型能很好地学习提取裂缝的语义信息。

图7 HU-ResNet模型在不同损失函数下的训练损失

表1为HU-ResNet模型在不同损失函数下的评价指标结果。可以看出:Bce损失函数更倾向关注像素级别的显著性,虽然其在训练集上的3个评价指标都达到最高,但在测试集上并未取得与训练集上一致的表现,说明Bce损失函数下的模型在训练时产生一定的过拟合问题;Dice损失函数较Bce损失函数更关注图像级别的显著性,虽然其在训练集上的评价指标都低于Bce损失函数,但由于其具有良好的抗过拟合能力,因此在测试集上的泛化能力更强;组合损失函数同时关注像素级别和图像级别的显著性,在训练模型时能更好地收敛且泛化能力更强,在测试集上效果最好。

表1 HU-ResNet模型在不同损失函数下的评价指标结果

3.2.3 不同模型性能对比

为验证本文提出的HU-ResNet模型性能,将其与传统FCN8s、U-Net模型以及不加scSE模块与超柱模块的U-ResNet模型进行对比,4种模型均采用组合损失函数作为损失函数,得到的训练损失结果如图8所示。可以看出:HU-ResNet模型的训练损失曲线降低最快,其训练损失值低于其他3个模型;U-ResNet和HU-ResNet模型的收敛速度要显著高于FCN8s、U-Net模型。

图8 4种模型的训练损失变化情况

为进一步评价HU-ResNet模型性能,本文在自制数据集上复现了FCN-4s模型[16]和VGG-U-Net模型[23],不同模型在训练集和测试集上所得评价指标结果的对比情况如表2所示(其中横杠表示未训练)。可以看出:HU-ResNet模型在训练集和测试集上的评价指标值均最高;VGG-U-Net模型在训练集上评价指标值较高,但易出现过拟合问题,且其在测试集上评价指标值出现下降,模型的泛化能力不如HU-ResNet模型;基于传统数字图像处理方法的Canny模型和区域生长模型在测试集上的评价指标值均低于其他基于深度学习的模型,说明在复杂环境下深度学习方法性能远高于传统数字图像处理方法。

表2 不同模型在训练集和测试集上的评价指标结果

4 结束语

本文在U-Net基础上建立HU-ResNet模型,提出一种混凝土表观裂缝检测方法。采用ResNet34残差网络为编码器保留更多裂缝细节信息,引入scSE模块重新标定编码块与解码块的输出特征,用Dice损失和二分类交叉熵损失构建组合损失函数,并利用超柱模块和组合损失函数准确获取裂缝图像语义信息。实验结果表明,本文模型能更好地捕捉裂缝细节信息,与FCN8s、U-Net、U-ResNet等深度学习模型相比,其像素准确率、交并比和F1值更高,具有更好的检测效果。后续将扩充裂缝数据集,结合图像深度技术,使裂缝像素信息转换为真实物理空间信息,进一步提高模型效率、准确率和泛化能力。

猜你喜欢

集上卷积损失
基于3D-Winograd的快速卷积算法设计及FPGA实现
胖胖损失了多少元
Cookie-Cutter集上的Gibbs测度
卷积神经网络的分析与设计
链完备偏序集上广义向量均衡问题解映射的保序性
从滤波器理解卷积
玉米抽穗前倒伏怎么办?怎么减少损失?
R语言在统计学教学中的运用
基于傅里叶域卷积表示的目标跟踪算法
菜烧好了应该尽量马上吃