APP下载

最大连通域协同的改进Deeplabv3+路面裂缝检测

2023-07-03黄荣霞刘德儿

计算机仿真 2023年5期
关键词:卷积像素路面

黄荣霞,刘德儿

(江西理工大学土木与测绘工程学院,江西 赣州 341000)

1 引言

伴随着中国公路的快速发展,公路病害也逐渐产生。路面裂缝作为最主要的公路病害之一,对公路安全存在潜在的威胁[1]。早期的裂缝检测方法主要是基于人工检测,这种方法耗时耗力,昂贵且低效。为了降低成本,便于道路检查,实现路面裂缝自动化检测有重要意义。路面裂缝分割的传统方法主要有:阈值分割[2]、区域分割[3]、边缘分割[4]、聚类分割[5]等。随着计算机技术的兴起和普及,催生了大量传统机器学习算法,取得了比传统算法更好的分割结果,但大多数还是要靠手工设计特征。

近年来,深度学习在目标检测[6]与图像分割[7]中表现出优异的性能。对于裂缝分割,使用卷积神经网络检测的方法也明显增多。文献[8]融合深度学习聚类分割和形态学方法对裂缝进行分割,实现对较复杂背景下的裂缝识别。文献[9]提出具有编码器和解码器框架的U-Net网络,这是一种可用于检测暴露在火中的混凝土结构上产生的热裂缝的新颖方法。文献[10]使用加权领域像素分割算法的改进版本来检测二维路面图像中的裂缝。该方法可以克服嘈杂环境中固定阈值的缺点。

结合裂缝的形态特点和应用的实际要求,本文提出改进的Deeplabv3+路面裂缝识别算法。考虑到裂缝没有固定的形状且长宽不一,为了能更好地提取局部细节和上下文信息,使用密集连接的ASPP模块代替普通空间金字塔模块作为多尺度特征提取构建网络;针对路面图像中裂缝像素和背景像素比例失衡问题,设置合适的权重来消除类别不平衡带来的影响。对检测结果中出现的裂缝断裂现象,采用一种最大连通域的算法来实现裂缝的精细提取。所提算法能更加准确地保留裂缝细节特征,还原裂缝真实信息,从而提高复杂背景下裂缝检测的准确性。

2 裂缝分割算法

2.1 Deeplabv3+算法

Deeplabv3+是目前最先进的语义分割网络之一,它最大的特点是在Deeplabv3+网络的基础上增加了Encoder-Decoder(编码器-解码器)结构。模型的骨干网络采用改进的Xception网络。首先将原始图像输入到Encoder模块,经过1/4、1/8、1/16的卷积运算,使图像最终变成原图1/16分辨率的特征张量,将提取的特征张量传入ASPP结构,该结构包含1个1×1卷积,3个空洞率为6、12、18的空洞卷积和1个全局平均池化层,经拼接处理后通过1×1卷积实现通道压缩。Decoder模块将Encoder模块得到的特征图进行双线性插值4倍上采样,与骨干网络经1×1卷积得到的特征图拼接,再经过3×3卷积和4倍上采样操作得到最终输出结果。

图1 裂缝识别思路图

本文以路面裂缝为研究对象,基于改进的Deeplabv3+算法进行研究,研究思路如图1所示:

2.2 改进的Deeplabv3+算法

Deeplabv3+网络的最大优点就是引入了空洞卷积,在不损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息。然而,使用大扩张系数的空洞卷积在卷积过程中会插入多个空洞来获取大的感受野,这对于小的物体而言,可能会采集不到。对于裂缝检测而言,ASPP获得的多尺度视野不够密集,获取的接收野也不够大。M Yang等提出将ASPP和DenseNet中的密集连接相结合,构成一种DenseASPP[11]的新型架构。相比于ASPP,其使用密集连接的方式将每个扩张卷积输出结合在一起,具有更大的接收野和更密集的采样点。改进的Deeplabv3+算法如图2所示:

图2 改进Deeplabv3+网络结构图

2.2.1 裂缝数据不平衡处理

图像分割从像素分割的角度去看,是一个分类问题,本文研究任务是路面中的裂缝,路面图像分为裂缝和背景两类,从本质上看裂缝分割是一个二分类问题。神经网络中对于分类任务常使用交叉熵损失函数,因此损失函数选择二元交叉熵函数。在每幅图像中,检测到的裂缝像素数远远小于背景像素数,因此进行裂缝和背景语义分割时,会出现样本数据不平衡问题,使得分割模型严重偏向于背景,导致网络在训练过程中偏向于学习背景特征,分割效果不理想。为解决样本不平衡问题,本文根据裂缝和背景所占的像素比分别为其设置合适的权重来消除类别不平衡带来的影响。在背景类损失中设置一个较小的权重系数,在裂缝类损失中设置一个较大的权重系数。计算公式如下

(1)

(2)

式中:α为背景像素的权重,β为裂缝区域像素的权重,Ni0为第i幅图像中背景像素的个数,Ni1为第i幅图像中裂缝区域像素的个数,Ni为第i幅图像中像素的总数。经过实验和近似的总裂缝像素占总图像像素的比例,最后验证当背景和裂缝的权重为1:35时训练效果达到最好。

为防止模型在训练过程中出现过拟合现象,提高其泛化能力,在损失函数中引入正则化器,公式如下

L=LBCE+LR

(3)

其中,L是总训练损失,LBCE是交叉熵损失,LR是正则化器,加入权重的LBCE和LR的计算公式如下

(4)

(5)

式中,LBCE量化了真实值yi与预测值xi之间的距离。交叉熵损失值越低,两个概率分布就越相似。λ为正则化强度参数,利用正则化器LR可以得到一个稠密解,其中每个特征对应的参数都非常小,但不为0。

2.2.2 基于最大连通域的裂缝优化算法

经过改进Deeplabv3+网络的处理,可以得到较好的分割结果,但由于部分裂缝较细,且存在光照、遮挡等原因,致使一些边缘噪声点、边缘断裂处仍然存在。针对以上问题,本文以最大连通域为基础设计算法,对裂缝图像进一步处理,处理结果如图3所示。

图3 最大连通域优化过程图

算法处理过程如下:

1)形态学操作。首先将分割得到的图像做二值化处理,便于减少后续工作计算量。选择矩形结构元素对该二值图进行先膨胀后腐蚀的闭运算操作,如图3(b)所示,这一步操作能够弥合小裂缝,连接在分割过程中出现的断裂区域。

2)寻找最大连通域。通过分割出来的裂缝图像可以看出,裂缝部分总是在最大连通域内,而那些较小的连通区域一般是由孤立的点组成,所以可以通过找到最大连通域去除孤立部分,连通域图像如图3(c)所示,提取出来的最大连通域图像如图3(d)所示。

3)提取裂缝。采用文献[12]中的算法提取裂缝骨架,完成对裂缝图像的细化操作,连接结果中存在伪连接的情况,伪连接的裂缝相对真实裂缝较短,同时使用裂缝方向、对比度特征去除连接中的强制伪连接,在连接的基础上,结合原图,对连接区域提取裂缝,在原检测出的裂缝上进行填充,使连接区域更接近实际裂缝。图3(e)是细化分割图像后提取的裂缝骨架;图3(f)是最大连通域优化后的裂缝提取结果。

3 实验研究与分析

3.1 实验配置和数据

本文算法基于深度学习PyTorch开源框架实现,使用Python及MATLAB语言开发,本文实验均是在单频为3.80GHz的AMD Ryzen 9 3900X 的CPU,32GB内存的工作站上实现的,并使用单块NVIDIA GeForce RTX2080Ti的GPU实现加速。

本文分割任务主要为路面裂缝,实验采用的数据集为CRACK500[13]、CFD[14]两个公开数据集。

图4为两种数据集的裂缝图像及真实分割标签,第一行为CFD数据集图像及标签,第二行为CRACK500数据集图像及标签。

图4 数据集图像

3.2 实验流程和评估指标

对Deeplabv3+进行批量训练,基础学习率为0.001,迭代次数为500,学习速率衰减因子为0.1,学习功率为0.9,动量为0.9,为了防止过拟合,权重衰减率设为0.0004,每次输入网络中的图像的批次大小设为8。

对于裂缝进行像素级的分割,常用的评价指标是Pixel Accuracy(像素准确率)和Mean Intersection over Union(平均交并比),公式如下

(6)

(7)

式中,Pij表示真值为i类被预测为j类,Pii表示真值为i类被预测为i类,n+1表示类别数,包含裂缝和背景两类。算法的运行时间是通过计算所有验证集样本的神经网络前向传播时间,并求其平均值而得到。

3.3 实验结果分析

网络训练前,对裂缝图像进行预处理,先进行裁剪、归一化和数据增强。经过图像裁剪和归一化后,图像尺寸大小统一为256 pixel×256 pixel,继续采用翻转、裁剪、缩放和添加随机噪声进行数据增强。在数据增强技术基础上,将原数据扩充了大约两倍,CRACK500数据集增加到3000张数据样本,CFD数据集增加到300张数据样本,并将数据增强图像按照8:2比例随机划分为训练集和测试集两部分。网络输入为裂缝数据,包括预处理后的原图和分割标签,输出为裂缝图像的分割图。

3.3.1 ASPP模块实验分析

为了验证密集连接ASPP模块的效果,本文以CRACK500裂缝数据集为例,在Deeplabv3+的基础上构建具有不同空洞速率的密集连接ASPP模块对数据集进行分割,评估结果见表1。

表1 不同ASPP模块对比结果

构建不同的ASPP模块进行裂缝分割时,其结果对比如表1所示,当使用密集连接ASPP(6,12,18,24)时,感受野范围最大,分割精度最高,但耗时最长,分割一张图像的时间比原始结构ASPP多耗时49ms。当使用密集连接ASPP(6,12,18)时,平均交并比较原始ASPP提升4.55%,时间只比ASPP长5ms,其相比密集连接ASPP(6,12,18,24),MIOU值只低0.41%,但耗时少44ms。因此使用密集连接ASPP(6,12,18)可以达到更高的效率。

3.3.2 数据集对比实验分析

为了更好的比较改进的Deeplabv3+模型与原Deeplabv3+模型的检测效果,本文分别在CFD和CRACK500两个公开数据集上,对两个模型进行训练。训练得到的平均交并比和精度值的情况如图5所示。

图5 算法改进前后的准确率、MIOU曲线图

从上图可以看出,CFD数据集由于训练数据较少,总体精度值比CRACK500数据集低,但平均交并比差别并不大。且在CFD数据集中,原Deeplabv3模型在一开始振荡很明显,随着迭代次数的增加,模型的MIOU和PA都逐渐提升且相对稳定,而CRACK500数据集由于数据集中数据量较大,训练过程中MIOU和PA值都平稳上升。

为了说明本文算法的有效性,将本文算法与FCN[15]、U-Net[16]等算法进行对比。图6所示为部分图像的定性比较结果,前3行是CFD数据集,后3行是CRACK500数据集。

图6 CFD和CRACK500数据集定性比较

由图6可知,在CFD数据集中,改进的Deeplabv3+模型能够更多的体现出裂缝的细节,分割的边界较细致,且与原图的轮廓基本一致,而FCN、U-Net和Deeplabv3+模型都不同程度出现误检,将断裂的地方直接连接起来,存在明显过分割情况。在CRACK500数据集上,路面图像中的裂缝较复杂,或背景干扰较大,各模型出现不同程度的漏检,FCN和U-Net模型在细小裂缝连接处出现断裂现象,完整裂缝区域出现空隙,存在欠分割问题。本文改进Deeplabv3+模型在检测效果上最好,与真实裂缝在完整度上更接近。

由表2的定量分析可知,在两个裂缝数据集上,本文的算法在像素准确率上高达94%、92%,平均交并比达到87%、85%。实验结果表明该模型具有很好的泛化能力,可准确实现裂缝图像分割。

表2 不同算法在数据集上的结果对比

当然,本文改进方法也存在一定的局限性,从图6的CFD数据集分割结果中可以看到,在某些裂缝特征细微的地方,出现一些漏检,在分割结果中出现断裂。在后续的工作中,通过最大连通域方法来进一步提升该方法的实际检测结果。

3.3.3 最大连通域优化结果分析

本文针对CFD数据集中改进的Deeplabv3+模型结果中细小裂缝出现漏检以及局部断裂现象,采用最大连通域方法进行改进。如图7所示,可以看出该方法很好的保留了裂缝的边缘细节,而且很好的去除了噪声的影响,获得的结果涵盖了裂缝区域的主要部分,检测到的裂缝信息准确可靠,能够真实反映出裂缝的形态特征。

图7 最大连通域优化结果图

4 结论

本文通过改进Deeplabv3+模型的结构,在Deeplabv3+模型中设计带权重的损失函数,提高网络对正样本的关注度,有效避免了对裂缝和背景使用相同的权重进行网络训练,改善了网络的分类性能。构建不同采样率的密集连接ASPP模块,通过实验对比说明本网络使用密集连接ASPP(6,12,18)在分割时间和性能上更优。并针对改进的Deeplabv3+检测结果存在部分断裂的情况,采用最大连通域算法实现断裂缝的连接,从而实现裂缝的准确分割。在两个公开数据集上的实验证明,本文算法在路面裂缝检测上的准确性和可靠性。

猜你喜欢

卷积像素路面
赵运哲作品
像素前线之“幻影”2000
基于3D-Winograd的快速卷积算法设计及FPGA实现
用艺术修补路面
“像素”仙人掌
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
高像素不是全部
一款透水路面养护车
BFRP连续配筋复合式路面配筋设计