Automatic pixel-level multipledamagedetectionofconcrete structure using fullyconvolutionalnetwork-笔记

Posted wyypersist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Automatic pixel-level multipledamagedetectionofconcrete structure using fullyconvolutionalnetwork-笔记相关的知识,希望对你有一定的参考价值。

Automatic pixel-level multiple damage detection of concrete structure using fully convolutional network

基于全卷积网络的混凝土结构像素级多损伤自动检测

//2022.7.17下午14:46开始阅读笔记

论文速览

文章使用DenseNet-121作为参考架构,在其上进行改进,将原框架后边的FC层改为CONV层,且在将特征输入到DeCONV层之前,进行特征融合。为了使得训练过程中尽量避免过拟合的出现,作者还采用了数据增强的方法。

此外,文章还贡献了一个使用智能手机摄像头拍摄的混凝土表面缺陷数据集,其中包含四种缺陷类别,且共有2750张图像。

在进行训练时,还采用了DenseNet-121网络预训练权重进行初始化。

同时,作者还得到了智能手机摄像头到拍摄图像的距离和拍摄出来的图像中包含的总像素之间的关系R,从而在对修剪后的图像中的缺陷面积进行转换,以得到了真实缺陷的面积。

文章最后,作者还将本文中提出的框架与目标分割经典网络SegNet的性能进行对比,得到了本文提出的框架具有更好的性能。因为,SegNet网络对四种类别的缺陷检测出来的像素大于真实像素标记。

论文地址

DOI:10.1111/mice.12433

论文贡献

基于深度学习的结构缺陷检测克服了广泛变化的图像质量,包括受到照明或阴影的变化等。本文提出了一种FCN网络来检测混凝土缺陷表面,提供了像素级的缺陷检测。作者建立了一个包含有2750幅图像并包含裂缝、剥落、风化和孔洞四种缺陷类别,每张图片的像素为:503x376。基于迁移学习策略对FCN网络中的权重进行初始化。之后,使用基于SegNet的方法与文中提出的基于FCN的方法进行对比研究,表明本文提出的方法具有很好的性能。

论文内容

1.介绍

基于计算机视觉的技术主要采用图像处理技术。

尽管基于图像处理技术的损伤检测方法有效且快速,但它只能检测一种损伤类型,并且当噪声(主要来自照明和畸变)严重影响结果时,其鲁棒性仍有待提高(Koziarski和Cyganek,2017;Ziou和Tabbone,1998)。去除噪声的一种可能途径是去噪技术,例如全变差去噪(Rudin、Osher和Fatemi,1992)。然而,这些技术收效甚微,因为图像是在广泛变化的现实世界中拍摄的。

ML机器学习技术也逐渐进行了更迭,主要是因为计算能力的硬件限制,人工神经网络的体系结构简单,导致损伤检测不足。因此,研究人员求助于其他基于ML的方法以获得更好的检测结果。支持向量机也已经用于缺陷检测中,同时,传统的ML技术中,由于人类手动对特征的提取不是很准确,因此会出现影响。

因此由于CNN对特征的提取更加准确,因此,CNN技术逐渐成为了缺陷检测的技术主流。

FCN通过对最后的输出进行上采样来预测缺陷的类别。

与之前的CNN和更快的R-CNN方法相比,所提出的基于FCN的多损伤检测的主要优点是,所提出的将多损伤识别和定位功能相结合的FCN架构更深入、更全面,它不需要滑动窗口技术,也不需要将整个图像切割成小块(薛和李,2018)。

此外,使用激光测距仪而不是粘贴的标尺参考,根据像素面积与检测对象真实面积之比以及智能手机到混凝土表面的距离之间的校准关系计算损伤面积。

2.方法

图1所示为文中使用的FCN网络整体架构图。

在我们的方法中,通过微调DenseNet-121构建了FCN架构(Huang、Liu、van der Maaten和Weinberger,2017)。

在迁移学习任务中,使用DenseNet网络具有最好的性能,对图像特征的提取能力更加出色。

此外,DenseNet-121的预训练参数可以显著缩短FCN的训练时间。

2.1基于DenseNet-121的FCN

图2显示了FCN的整体架构。

DenseNet121中的密集块通过连接(Concat)将特征组合在一起,然后将其传递到层中。

例如,在图3中,点框中的部分表示位于Maxpool1和Conv2之间的密集块(1),其中连接层用于连接特征。连接特征时,先前图层的特征贴图按通道堆叠。也就是说,级联层中的输出通道数是其输入通道的总和。基于级联,DenseNet-121缓解了消失梯度问题,加强了特征传播,鼓励了特征重用,并大大减少了参数数量。

对原始网络的修改:

为了获得良好的反褶积性能,将所有平均池层更改为最大池层,并将第14层中的全局平均池也替换为核大小为2×2、步长为2的最大池层。DenseNet-121的最终分类器层被丢弃,完全连接层被转换为卷积层,然后是丢失率为0.5的丢失层。附加具有1×1内核和五个输出通道(第18、21、24、27和30层)的卷积,以预测每个先前输出位置处每个类别(裂纹、剥落、风化、孔洞和背景)的分数,然后是反卷积层,以将先前输出增加采样到像素密集输出。FCN融合了来自DenseNet-121最后一层、所有池层和第一卷积层的预测。在每个反褶积层中,通过实现步长为2的上采样,先前输出的大小增加了一倍。最后,FCN的输出大小与输入大小相同。

文中提出的FCN整体网络架构/参数详细配置,如表1所示。

  1. 卷积层(略)

2.3 反卷积层(上采样过程)

为了输出端到端、像素到像素的预测结果,引入了上采样操作,将数据放大到原始输入图像的高度和宽度。上采样操作称为反褶积层,但应称为转置卷积层,因为它将粗输入转换为密集输出,这实际上不是卷积的逆。反褶积层在整个输入中执行以下三个操作,如图5所示。首先,它在输入和反褶积核的每个元素之间执行乘法(即,元素是反褶积核的权重)。其次,使用高度和宽度方向上的一组步幅组合乘法子阵列,并对重叠区域中的组合值进行求和。最后,将偏差添加到组合值中以产生输出。如图5所示,输入的放大率主要取决于步幅。较大的步幅可以增加放大率,但会导致输出不理想的粗糙度。为了在我们的研究中获得良好的输出,FCN融合了较低层的特征,作为反褶积层的输入。反褶积层的输出大小始终大于输入大小,如图5所示。

2.4 Crop层

当融合较低层和反褶积层的特征时,级联层叠加先前层的输出。这个过程需要在连接层中具有相同的输入大小。然而,前一层和反褶积层的输出大小通常不同。为了消除差异,使用裁剪操作裁剪特征地图的冗余边缘像素。偏移量是裁剪层的另一个超参数,是特征地图的裁剪行和列的集合,如图6所示。在本研究中,高度和宽度的偏移是相同的,可以使用图6中的等式计算作物层的输出大小。在FCN中,融合后的特征映射将被送入后续的eltwise层以融合特征映射。

2.5 Eltwise层

在我们的模糊神经网络中,为了融合前一层和反褶积层的特征图,使用eltwise层对输入特征图执行元素操作。eltwise层可以计算元素的三个结果,包括乘积、总和和最大值。在FCN中,eltwise层对特征映射中的相应元素执行求和运算,并且其所有权重系数都设置为1。值得注意的是,eltwise层的输入特征图大小应该相等,如图7所示。

3.数据集和所选配置

3.1 数据集的建立

拍摄细节:

为了建立一个数据库,包括混凝土结构中的裂缝、剥落、风化和孔洞图像,使用智能手机在不同照明条件下拍摄了1375张图像,分辨率为4032×3016像素,并使用激光测距仪测量智能手机与混凝土表面之间的距离。为了收集微小损伤的图像,例如薄裂缝和小孔,所有图像都是在智能手机和混凝土表面之间0.2米的距离处拍摄的。采用统一距离是为了简化后期图像处理。记录距离的目的是计算像素数与检测到的损伤面积之比,这将在第5节中详细介绍。为了澄清,激光测距仪的激光光斑不在采集的图像中,因为激光测距仪与智能手机的摄像头之间有一定距离,智能手机与混凝土表面之间的0.2米距离太近。

细节说明:

  1. 调整图片大小是在标记之后进行的,原因是为了最大限度地保持标记的精度。

  2. 对小于1000mm的缺陷不进行标记,因为缺陷过小不会对混凝土产生影响。

图8展示了标记图像或采集的图像。

使用了数据增强技术,最大限度地避免了训练过程中出现的过拟合问题。

由于像素是训练的样本,因此每张图像中包含很多像素,也就包含了很多样本。数据集中的2750张图像具有大概超过5亿的训练样本。

数据集的划分:

为了评估FCN的泛化能力,根据五倍交叉验证原则将2750幅图像分为五部分,其中80%用于训练和验证模型,最后20%用于测试。具体来说,从2750个图像中随机选择2200个图像,其中2000个图像用于生成训练集,另外200个图像用于创建验证集。未选择用于训练和验证的其余550幅图像用于构建测试集。表2显示了训练、验证和测试集的详细比例。具有多种缺陷的图像是很少的,因为不容易找到由于不容易找到包含多个损伤的混凝土表面,并且可以在一张图像中拍摄多个损伤,因此所有这些损伤都包含在测试集中,以评估FCN网络的检测能力。

3.2 模型参数初始化

对DeCONV层的初始化:

对Deconv层也就是反卷积层中权重参数的初始化操作,用的是双线性插值的方法,然后在训练中进行微调即可。

3.3准确性评估指标

使用的是PA,检测出来是缺陷的像素数量/总的像素数量。

此外,MPA/并集上的平均交点(MIoU)/联合上的频率加权相交(FWIoU)也是比较常用的标准。

根据标记符号,PA、MPA、MIoU和FWIoU可分别表示为:

4.训练和验证FCN网络

图9描述了不同学习率下FCN的训练和验证损失记录。据观察,所有训练损失在开始时迅速减少,然后在0.05附近收敛。

图10显示了不同学习速率下FCN验证过程的验证PAs、MPAs、MIoUs和FWIoUs,其中验证PAs、MPAs、MIoUs和FWIoUs在前20000次迭代中快速增加。这一结果证明,FCN skip架构通过融合先前池层和第一卷积层的预测,实现了学习损伤特征的能力。表3总结了训练和验证结果,其中粗体的行是FCN的最佳训练结果。

9显示,在一定范围内,学习速率越小,收敛速度越快,但表3显示,当采用更小和更大的学习速率时,FCN最终会产生更低的精度。因此,正确的学习率为1×10−10在较小和较大的学习率之间选择最佳学习率。在我们的培训中,我们试图使用更高的学习率,但这不可避免地导致损失激增,并且训练难以融合。

在训练过程结束后,使用1×10的训练模糊神经网络模型−10学习率最高,PA98.61%MPA91.59%MIoU84.53%FWIoU97.34%。因此,训练后的模型具有1×10−10学习率用于测试过程和从图像中提取损伤,详见第5节。

5.校准实验和测试经过训练和验证的FCN

为了计算检测到的损伤面积,需要损伤像素数(像素面积)与损伤真实面积之间的比率。考虑到该比率将随着智能手机摄像头距离被检测物体表面的距离而变化,因此在实验室条件下校准了该比率与距离之间的关系。为了检验前一节中训练和验证的模糊神经网络的性能,进行了广泛的测试,并根据预测的测试结果和校准方程提取了测试图像中的损伤。

5.1校准比率和距离之间的关系

如图11a所示,校准像素面积与真实面积之比(R)与距离之间的关系(D) 从智能手机到检测到的目标表面,在准静态意义上进行实验。

在实验过程中,设置一个目标(一个直径为50 mm的黑色实心圆),将固定在线性导轨上的智能手机从其初始位置(100 mm)移动到其最大位置(550 mm),步长为10 mm,然后返回到完成一个循环,在该循环中,使用激光测距仪测量目标与智能手机之间的距离。实验重复五次,实验结果如图11b所示,其中R的单位为1 w像素/mm2(10000像素/mm2)。

在图11b中,拟合方程用作将比率R与从目标到智能手机摄像头的实际距离D相关联的校准方程。基于该方程,可以相应地计算真实面积而不是像素数。5.2测试FCN并从图像中提取损伤

5.2 测试FCN并从图像中提取损伤

其余550张未用于训练和验证过程的图像用于测试训练后的FCN。

每个图像的测试持续时间记录为0.05秒。图12显示了550个测试图像的真实面积(地面实况中的损伤面积)和预测面积(预测结果中的损伤面积),其中面积是根据记录的智能手机到混凝土表面的距离和图11b中的校准方程计算的(其中还考虑了重定尺寸图像的比率)。

可以观察到,预测区域PAFCN基本上与图12a、12b和12d中的真实区域TA一致,但在图12c中,检测风化损伤的精度没有预期的高。造成这种现象的可能原因之一是风化损伤与未受损的混凝土表面非常相似。特别是当光强很强时,很难区分风化损伤和反射光的混凝土表面。选择了一些测试图像,包括四种类型的混凝土损伤,并在各种条件下拍摄,如图13-18所示,其中预测结果是经过训练和验证的模糊神经网络的测试输出。

图13显示了各种条件下的混凝土裂缝图像。图13a、13b和13c显示了对具有一条裂纹的正常粗糙表面和具有两条裂纹的表面的图像的适当预测结果。然而,在图13d中,黑色斑点被视为裂纹,因为它由裂纹连接,其颜色与裂纹相似,尽管裂纹也被正确检测到。

混凝土剥落的图像如图14所示。由于混凝土大面积剥落损伤,在正常和粗糙表面上成功检测到剥落。图14c和14d中还使用了来自具有裂纹状扰动和两个剥落损伤的表面的图像进行测试,并且正确识别了所有剥落损伤。

图15显示了混凝土风化的图像,其中使用经过训练的FCN可以满意地检测到风化损伤。在图15a和15b中,风化损伤的边缘被错误地识别为背景,此外,在图15c和15d中未检测到一些面积非常小的风化。

由真实文字条件下的混凝土孔组成的图像如图16所示,其中混凝土孔的提取令人满意。如前所述,忽略小于1000像素的孔。因此,一些小孔未检测到,因为FCN未学习小孔的特征。

图17显示了具有多个损伤的图像的预测结果,与图16类似,在图17b和17c中满意地检测到了所有损伤。然而,FCN未能检测到图17a中风化的模糊部分,并且在图17d中未检测到裂纹的薄部分,其中薄部分的裂纹宽度约为2像素(约0.2 mm)。

错误预测结果和提取损伤的典型示例如图18所示。在图18a中,少量灰白背景像素被归类为风化损伤,因为背景像素的颜色与风化非常相似。带有薄裂纹的图像如图18b所示,其中FCN无法检测到薄裂纹像素。薄裂纹断裂部分的宽度约为2像素。在图18c中,一些剥落像素被错误地归类为孔。在图18d中,上边缘的背景像素被错误地检测为裂纹像素。图18d显示了一个非常糟糕的预测结果,其中FCN错误地预测了小孔作为背景,并且断开了连续裂纹。通过开发更大的训练数据库,可以最大限度地减少这些错误。此外,与地面真实值相比,模糊神经网络提供了更平滑的风化损伤边界,这导致了损伤边缘的错误检测。

作者为了进一步将模型的精度提高,将在之后的实验中将数据集进行扩充,以提高该方法的泛化能力或检测能力。

为了在实践中应用该训练模型,在拍摄损伤图像时必须测量智能手机与混凝土表面之间的拍摄距离D,并且可以使用卷尺或激光测距仪轻松完成测量过程。然后,可以根据图11b中的校准方程计算像素面积和真实面积的比值R。然后,将获得的损伤图像输入训练后的FCN模型,以预测输入图像中的损伤类别和位置。最后,根据图像特征提取图像中的损伤使用预测和比值R计算损伤面积。

6.比较研究

为了比较拟议的基于FCN的方法和最先进的语义分离方法的性能,使用包括混凝土裂缝、剥落、风化和孔洞的已建数据库来训练SegNet模型(Badrinarayanan、Kendall和Cipolla,2017)。SegNet是一种用于图像分割的深度卷积编码器-解码器架构,在道路场景和室内场景分割任务中表现良好。为了适应SegNet的输入大小,将训练、验证和测试集中的所有图像及其标签调整为480×360像素分辨率,以生成用于SegNet训练的新数据库。

SegNet的训练动量为0.9,权重衰减为0.0005,迭代次数为100000次。由于输入量较小,因此将批量大小设置为四幅图像,以加快收敛速度并增加训练模型的鲁棒性。

为了选择SegNet的最佳初始学习速率,设置了三个固定学习速率(0.01、0.001和0.0001)。每1000次迭代对训练后的SegNet模型进行验证和保存。随着GPU推进训练过程,SegNet记录的训练时间约为11小时。在训练过程中,最高验证PA、MPA、MIoU和FWIoU分别为98.62%、98.16%、83.82%和96.84%,学习率为0.001。表4列出了FCN和SegNet验证过程中的最佳结果比较。结果表明,虽然FCN的PA和MPA低于SegNet,但FCN实现了比SegNet更高的MIoU和FWIoU。因此,我们的模糊神经网络在混凝土损伤检测问题中表现出良好的性能。

与FCN测试类似,使用新数据库中的测试集测试经过训练的SegNet模型。每个图像的记录测试持续时间为0.05秒,由于其输入尺寸较小,因此比FCN短。图19显示了使用经过训练的SegNet的550个测试图像的真实面积和预测面积,其中面积是根据记录的智能手机到混凝土表面的距离和图11b中的校准方程计算的(其中还考虑了大小调整图像的比率)。可以发现,SegNet可以很好地预测剥落损伤,但裂纹、风化和孔洞损伤的预测区域通常大于其真实区域。

图20显示了拟议FCN和SegNet的预测结果比较,其中PASegNet是SegNet的预测区域。图20a显示了裂纹损伤的图像,其中裂纹通过FCN分离为两个碎片,因为未检测到裂纹的薄部分。SegNet识别整个裂纹,但预测面积大于其真实面积。在图20b中,FCN为裂纹提供了令人满意的预测,但SegNet错误地将背景检测为剥落和孔洞。为了检测图20c和20d中的剥落和风化损伤,所有FCN和SegNet都提供了良好的预测。在图20e中,SegNet错误地将背景上的污点识别为剥落损伤,但FCN成功地检测到图像中的孔洞。

使用FCN网络进行检测的方法因为就有较少的参数和体积,因此还可以集成到移动设备中。

7.总结

图像缺陷检测中常见缺点有:对缺陷的深度无法检测。

//本文仅作为日后复习之用,并无他用。

以上是关于Automatic pixel-level multipledamagedetectionofconcrete structure using fullyconvolutionalnetwork-笔记的主要内容,如果未能解决你的问题,请参考以下文章

Python - Automatic Differentiation 自动微分

Oracle AWR 介绍(AWR -- Automatic Workload Repository)

_mm_mul_epu32 与 _mm_mul_epi32

将 automatic_scaling max_idle_instances 设置为零 (0) 有啥作用?

Automatic logon configuration on Linux OS

UVA 10115 Automatic Editing(字符处理)