DOI: 10.1016/j.measurement.2021.109914
年份:2021
利用编码器-解码器网络在像素级别对路面裂缝进行分割
关键信息:
1.这篇文章提出了一种针对裂缝分割得编码器-解码器网络(EDNet)来克服裂缝像素和非裂缝像素数量的不均衡。会造成很多假阴性错误(错误的否定,例如:有裂缝没检测出来)
2.本文提出的EDNet解码器是一种自动编码器,将ground truth自编码为完全抽象的对应特征图,显著降低了裂纹和非裂纹像素之间的数量不平衡。
3.EDNe将裂缝图片与相应的特征图拟合来克服数量不平均的问题,而不是将裂缝图片直接与ground truth 拟合。
第一段:引出裂缝检测对路面状况检测的重要性
第二段:路面数据包括二维数据和三维数据(多了一个深度信息),3D路面数据不易受到光照条件和油污的影响,因此更有利于裂缝检测。裂缝在二维和三维路面图像中的值相对较低,即与背景像素相比,裂缝像素在二维路面图像中通常具有较低的亮度值,在三维路面图像中具有较低的高度。
第三段:传统的图像算法包括阈值算法、边缘检测器和匹配滤波算法。但是传统的图像算法存在许多问题,裂缝与图像背景之间的低对比度很容易导致裂缝中断。大多数基于传统图像处理的算法对光照条件、油渍和纹理产生的噪声非常敏感,需要许多前处理和后处理过程,甚至需要人工帮助才能提高检测精度。
第四段:引出深度学习(DL),深度学习在图像分类、目标检测和语义分割领域取得了很大的突破。因此,基于DNN的裂纹检测算法备受关注。这种算法可以分为三种类型。
1、二值分类器确定输入图像是裂纹图像还是非裂纹图像。
2、物体检测器使用anchor boxes来突出图像中的裂缝。
3、像素级裂缝检测器(即语义分割)可以从图像背景中分割裂缝像素。
第五段:像素级裂纹分割提供了裂纹的几何特征,这对于识别裂纹的类型和严重程度非常重要。然而,由于裂纹和非裂纹像素之间的信息丢失和数量不平衡,像素级裂纹分割对卷积神经网络(CNN)具有挑战性。
第六段:这一段很长,作者大致介绍了一下前人设计的网络架构
例如:CrackNet、U-Net、CrackU-net、U-hierarchical dilated network (U-HDN)、CrackNet-R
具体细节可以自行查询
第七段:像素级裂缝分割不同于其他语义分割任务,因为与背景相比,裂缝像素是路面图像中的次要部分。如果我们使用常规网络训练方法,裂纹和非裂纹像素之间的数量不平衡往往会误导CNN将裂纹像素预测为非裂纹像素。
这里提到了一个损失函数:Dice Loss
Dice系数是一种集合相似度度量函数,通常用于计算两个样本的相似度,取值范围在[0,1]:
其中 |X∩Y| 是X和Y之间的交集,|X|和|Y|分表表示X和Y的元素的个数,其中,分子的系数为2,是因为分母存在重复计算X和Y之间的共同元素的原因。Dice Loss:
作者给出的看法是:Dice Loss可以自动扩大裂纹像素的网络梯度,在一定程度上缓解数量不平。然而,这可能会导致网络损耗的大幅波动,导致训练不稳定。
第八段和第九段:虽然改进后的网络结构很大程度上解决了CNN在裂缝分割方面的信息丢失问题,但是还是没有显著解决裂纹和非裂纹像素之间数量不平衡的问题。作者提出了一种高效的用于像素级裂纹分割的编解码网络(EDNet)。EDNet的解码器网络是一个自动编码器,可以对裂纹标签进行自编码,以生成没有不平衡问题的相应特征图。此外,EDNet的编码器网络可以用这些特征图来拟合裂纹图像,以避免不平衡。经过训练后,可以通过组装编码器网络和自动编码器的解码器部分(即解码器网络)来获得EDNet。
作者准备了两个数据集:
1、PaveVison3D系统中的1毫米3D路面图像。
2、CrackForest数据集。CFD由118张大小为480×320的RGB图像组成。作者随机使用72张图像进行训练,46张图像用于验证和测试。并且将CFD中的所有118个RGB图像都转换为灰度图像,以排除不必要的颜色信息,从而降低训练复杂度。对于CFD中的二维路面图像,用大小为128×128,步幅为32×32的窗口从原始二维路面图像及其相应的ground truth中提取图像块。裁剪后,有6048个2D子图像用于训练。
因为本人做的是2D图像,关于3D图像部分将不再讲解,感兴趣的可以看原文。
输入大小固定为:128*128*3。输入数据的三个通道完全相同,代表灰度路面图像的同一图像块。
输出大小为:128*128*1
U-Net和其他具有编码器-解码器架构的网络只包含一个神经网络,并直接将裂缝图像与ground truth相匹配。本文中的EDNet由两个子网络组成:一个编码器网络和一个解码器网络(包括编码部分和解码部分)
1、首先对解码器网络进行训练,并对ground truth进行自编码。
2、解码器网络经过训练后,其编码部分对ground truth进行编码,以生成1/16特征图来训练编码器网络。
3、关于预测过程,编码器网络对裂纹图像进行编码以产生1/16特征图,解码器网络的解码部分对这些1/16特征映射进行解码以产生检测结果。
图2. EDNet网络架构
主要功能是对裂缝图像进行编码,生成1/16的特征图,编码器是在ImageNet数据集上预训练的ResNet-34的一个修改。
如图3所示,不同的颜色表示不同操作后的特征图,蓝色和灰色的卷积过程,图中标注了卷积核的大小。另外,此编码器网络在卷积和最大池化操作之前都用了same padding,操作之后需要batch normalization。并且在网络中,还添加了残差结构。
图3. 编码器网络结构
由于编码器网络是一个预训练模型,其输入需要三个通道,所以我们需要将单通道灰度路面图像转换为三个相同通道的路面图像。编码器网络首先使用一个7*7,stride = 2的卷积层,将输入图像下采样到1/2的比例,然后经过一个最大池化层,将图像下采样到1/4的比例。然后,使用13个残差块来增加网络深度。具体来说,1/4、1/8和1/16标度分别有3、4和6个残差块。对于1/8比例和1/16比例的特征图,需要在第一个残差块中采用步长为2的卷积操作进行下采样,才能使特征图的尺寸减小到输入的1/8和1/16(可以看1/8 scale那一行蓝色框,此时尺寸16*16,才是输入尺寸128*128的1/8) 最后,通过7个卷积层得到8×8×32的目标1/16特征图。
原始的ResNet-34还有三个残差块,其比例为1/32,超出了本文预期的最小比例(1\/16)。因此,在EDNet的编码器网络中删除1/32比例的三个残差块,并在1/16比例的末尾用七个卷积层替换。
注:最后一个卷积层没有任何激活函数,如ReLU和 Leaky ReLU,因为作者发现EDNet以这种方式表现得更好。
解码器网络的输入是ground truth,经过训练的解码器网络有两个主要功能:
1、其编码器部分可以对ground truth进行编码,生成1/16个特征映射,以便编码器网络进行匹配;
2、其解码器部分可以对编码器网络生成的1/16特征映射进行解码,以产生检测结果。
首先,使用4个 5*5,步长为2的卷积核对ground truth进行编码,生成8*8*32的特征图。其次,其解码器部分对1/16特征图进行解码,以2的步长进行反卷积,从而获得输出图像。在最后一次反卷积操作后,用sigmoid激活函数应用于最终得到特征图。与编码器网络相同,解码器网络中的1/16特征图不使用任何激活功能。
图4. 解码器网络结构
公式如下:
其中,TP、FP和FN分别是真阳性、假阳性和假阴性像素的数量。在本文中,真阳性像素是在地面真裂纹像素周围的5像素距离内检测到的裂纹像素,假阳性像素是在该距离之外检测到的裂纹像素,假阴性像素是漏掉的裂纹像素。
精度是被正确分类的检测到的裂纹像素的百分比,它可以评估网络的抗噪声能力。召回率是正确分类的真实裂纹像素的百分比,它可以估计网络的裂纹识别率。F1分数是精确性和召回率的调和平均值。
编码器网络和解码器网络需要分别训练,首先训练解码器网络,原因如下:首先,它是为了保证解码器网络结构正确。解码器网络应足够健壮,以成功地对ground truth进行自编码,并避免欠拟合或过拟合。其次,一旦解码器网络被优化,就可以通过停止解码器网络的训练来减少总体训练时间。最后一个原因是驱动编码器网络直接拟合最优的1/16特征映射,这可以解决数量不平衡问题,进一步减少训练时间。
解码器网络对ground truth进行自编码,期望其输入和目标输出是同一幅图像,并且解码器网络进行二值分类任务,需要二值交叉熵作为代价函数来度量预测值与目标值之间的误差:
其中, 是第i个像素的目标值, 是第i个像素的预测值,N为输入图像的总像素数。
如图5所示,解码器网络经过训练后,将其编码器部分和解码器部分解耦。解码器网络的编码器部分对训练数据集中的所有ground truth进行编码,并生成相应的1/16特征图,由编码器网络与相应的输入路面图像进行拟合。
图5.编码器网络训练方法
由于编码器网络本质上是一个回归任务,所以我们采用均方误差函数作为代价函数来训练编码器网络:
其中,MSE为均方误差, 和 分别是1/16特征图的第i个像素的目标值和预测值。N为batch大小乘以1/16特征图的大小。
在对编码器网络进行训练后,通过将编码器网络与解码器网络中的解码器部分耦合得到训练好的EDNet。
提出了一种用于路面裂缝分割的编码器-解码器网络。解决了裂纹和非裂纹像素之间的数量不平衡的问题。其中:
编码器网络建立在Resnet34基础之上,EDNet的解码器网络对ground truth进行自编码,生成1/16特征图,编码器网络将这些1/16特征图与地面图像进行匹配。训练后,编码器网络对裂缝图像进行编码,生成1/16的特征图,解码器网络对这些1/16特征图进行解码,输出最终检测结果。