基于改进两步式卷积神经网络的沥青路面裂缝识别方法
2022-11-26章天杰王洋洋韩海航
章天杰,王洋洋,,韩海航,罗 雪
(1.浙江省交通运输科学研究院,浙江 杭州 310012;2.浙江省道桥检测与养护技术研究重点试验室,浙江 杭州 310012;3.浙江大学,浙江 杭州 310012)
0 引言
随着公路使用年限的增长,沥青路面裂缝已经成为公路的最主要病害之一,严重影响着路面的使用寿命,同时增加了沥青路面养护的难度[1]。这需要各地市公路局定期检测裂缝并分析成因,及时开展养护工作[2]。但是传统的沥青路面裂缝检测方法效率低下,基于智能算法进行路面图像的裂缝识别是大势所趋。
机器学习被广泛地应用于沥青路面裂缝识别领域,其核心在于通过对沥青路面裂缝特征的学习,提炼出特征,从而预测未知数据。支持向量机,K-Means算法等,已被广泛应用于沥青路面裂缝图像的分类识别中[3-4]。如琚晓辉等[5]提出的SVM-Adaboost裂缝图像分类算法,其通过支持向量机分类器对内部参数进行动态优化,以此实现沥青道路裂缝的分类检测。Ai等[6]基于多邻域信息的裂缝像素级分割,其算法基于精确率和召回率计算得到的F1值能达到0.8。Wissam等[7]提出的基于改进最小路径法的裂缝图像分割算法,其准确率已经能达到75%左右。张采芳等[8]提出的基于几何特征分析的裂缝检测方法,最终的裂缝检测准确率能达到90%。
但是机器学习方法存在需要人工提取图像特征的缺点,以卷积神经网络为代表的深度学习方法,因其能够对图像进行像素级学习,开始逐步被应用于道路裂缝识别中[9-10]。大量的工作集中于裂缝的识别分类领域,如孙朝云等[11]通过VGG16和Faster R-CNN结合的模型对路面灌封进行目标检测,模型精度达到了90%。Seongdeok等[12]将基于迁移学习的ResNet-152用于通过相机采集的图像进行裂缝识别,最终模型的精确率和召回率分别为77.68%和71.98%。Dung等[13]设计了一种基于全卷积神经网络FCN的裂缝识别算法,检测结果的平均精确率达到90%。
相比于沥青路面裂缝识别分类,如何提取出裂缝的长度、面积等参数成为道路裂缝识别领域的一个重点和难点。其结果能有效地用于公路性能评价,最终为公路养护提供有效参考。虽然在裂缝识别分类方面已有大量研究,但在裂缝分割及参数自动提取方面的工作并不多。Liu等[14]通过将YOLO v3和U-Net结合的方式对路面裂缝进行分割,达到了较高的准确率,但是其并没有使用U-Net对YOLO v3检测出的区域进行分割,实际上并没有评价整个模型的性能,也没有基于裂缝分割结果提取相关参数。
鉴于此,本研究提出了一种两步式沥青路面裂缝几何信息提取法。首先,采用了卷积注意力模块进行改进的残差神经网络(Residual Neural Network,Resnet)对大量原始沥青路面图像进行数据清洗,随后再次使用卷积注意力模块对图像语义分割网络U-Net进行改进,对第1步中筛选出的图像进行裂缝语义分割和裂缝几何信息提取,最后评价了该两步式方法的结果。
1 方法与原理
本研究提出的两步式沥青路面裂缝几何信息提取法的主要目的是从沥青路面图像中抽取出包含裂缝的像素,以此实现裂缝的分割和裂缝长度、面积等信息的提取,具体流程如图1所示。首先人工筛选出1 800张用于路面图像分类算法训练的数据,然后训练基于卷积注意力模块改进的ResNet50模型,并以此算法对原始图像集开展清洗工作,通过清洗、标注、图像数据增广等方式准备好用于第2步模型的训练集和测试集后,使用基于卷积注意力模块改进U-Net的图像语义分割模型进行训练,最后实现裂缝的语义分割和裂缝长度、面积信息的提取。该方法第1步的清洗结果主要为第2步裂缝几何信息的提取服务,可有效降低整个裂缝信息提取流程的工作量。
图1 两步式沥青路面裂缝信息提取法流程图
数据处理、模型训练和评估通过深度学习开源框架Tensorflow实现,模型所采用的计算机环境主要为Linux和windows系统,卷积神经网络的所用软件为python 3.6。
1.1 数据采集
本研究所采用的路面图像数据主要来源于浙江省部分沥青路面的巡检结果,其中包括8条国道,13条省道,30条县道,48条乡道和215条村道。全部由浙江省交通运输科学研究院的道路综合检测车Pathrunner采集获得。
原始图像直接从综合检测车配套的软件中导出,尺寸为272×272像素,可直接用于本模型的输入。
1.2 卷积注意力模块介绍
卷积注意力模块模块由Woo等[15]在2018年的ECCV会议中最先提出。CBAM模块作为一个轻量级模块,可以方便地融入到其他神经网络模型中,以提升模型性能,其在遥感图像、建筑物破损等背景信息多,目标信息占比少的案例中都得到了较好的应用[16-17]。
本研究算法中的CBAM 模块作用的原理如下:首先,进行通道注意力提取。将沥青路面裂缝输入的特征图通过两种不同的池化操作得到2个一维矢量,实现在空间维度上的压缩;并将2个一维矢量转发至1个多层感知网络,进行通道重要性分析并得到各通道层的权重矢量;随后利用权重矢量对沥青路面裂缝输入的特征图再进行1次加权,完成在通道域上对沥青路面裂缝特征的加强。其次,需要进行空间注意力的提取。将沥青路面裂缝特征沿着通道轴进行两种池化操作得到2个叠加的二维平面向量,以此实现在通道维度上的压缩。最后,将这两个提取的信息通过卷积网络进行分析得到相应权重,利用此权重向量对裂缝特征进行再一次加权,以此提高对沥青路面裂缝特征的关注程度。
1.3 性能评价指标
对于沥青道路路面裂缝图像进行分类识别,其算法的效果一般采用F1值(F1-score)进行评价。F1值是对算法精确率(Precision)和召回率(Recall)的优化调和,能够保证算法在精确率和召回率上都有一定的准度。其中精确率、召回率和F1值的公式如下所示:
(1)
(2)
(3)
式中,TP为将沥青路面裂缝正确预测为裂缝的数量;TN为将正常路面正确预测为正常的数量;FP为将正常沥青路面错误预测为裂缝的数量;FN为将沥青路面裂缝错误预测为正常路面的数量。
对于裂缝图像语义分割模型的评价,本研究采用交并比(Intersection over Union,IoU)、均交并比(Mean Intersection over Union,MIoU)等方式评价。IoU的计算示意图如图2所示。
图2 IoU计算示意图
由图2可知,IoU是2个区域重叠的部分除以2个区域的集合部分得出的结果,其是图像语义分割算法中能判断算法模型好坏的重要指标之一。MIoU可通过计算所有分类的IoU平均值得到。
2 路面图像分类算法
2.1 图像集准备
本次试验共计采集的路面图像样本为41万张。分析Pathrunner道路综合检测车检测得到的部分沥青路面图像,发现沥青路面样本可分为无病害样本、失真样本和可能存在病害样本3种类别,如图3所示。
图3 综合检测车采集的沥青路面图像
从图3可以发现,其中无病害样本(除地标线外无任何干扰物)占70%以上,失真样本占约10%,而可能存在病害的样本(包含真实裂缝,也包含伸缩缝、污渍、光照不均导致的干扰图像等)仅占全部的20%左右。为了提高沥青路面裂缝病害的标注速度,同时也为了减小沥青路面样本的不均衡性,例如正常路面图片过多,需对沥青道路路面图像数据进行清洗工作,筛选掉正常沥青路面样本即无病害样本,同时对由于检测车自身原因导致的失真样本进行删除。
沥青路面裂缝图像数据的清洗工作采用了人工清洗与模型清洗相结合的方式进行。先由人工挑选出无病害样本、失真样本、可能存在病害样本各600张(共1 800张),其中每类525张作为训练样本,75张作为测试样本,以此作为清洗模型的输入。
2.2 模型训练
本次清洗模型采用何凯明[18]提出的残差神经网络ResNet50,其采用残差学习来解决深度神经网络退化的问题,具有层数更深、参数量更少、收敛更快和精度更高的优点。本研究所采用的ResNet50卷积神经网络中包含4个大的block,本研究采用的模型共有3+4+6+3=16个bottleneck,最后采用全连接操作完成沥青路面图像清洗任务,共计50个卷积层,模型总体结构如图4所示。
图4 Resnet50结构
本模型输入尺寸设置为272×272×3;输出分类数为3,分别对应无病害样本、失真样本、可能存在病害样本3种情况;模型中的激活函数采用LeakRelu函数代替原模型中的Relu函数,确保激活函数非线性同时避免梯度弥散;网络损失函数采用softmax交叉熵;优化器采用Adam优化器并使用默认参数;在第1个卷积层与池化层间增加1个CBAM模块,增加该模块能使整个网络更注重目标物体的识别。本研究采用的清洗模型总共对所有的沥青路面图像进行训练共500次,模型的初始学习率预先设置为0.005,随后每20次训练进行1次学习率的衰减,衰减比率为0.9。
2.3 模型评价
对本研究清洗模型的结果进行评价,模型的精确率,召回率和F1值的结果可见图5。
图5 路面图像清洗算法的评价结果
图5分别从无病害样本、失真样本、可能存在病害样本和总体4方面的精确率、召回率、F1值对路面图像清洗模型进行了评价。从图中可以看出,总体沥青路面病害图像的精确率、召回率和F1值都已经超过95%,其中F1值已经达到了96.8%,高于其他路面裂缝识别算法,如琚晓辉等[5]提出的SVM-Adaboost(91.86%)和张采芳等[8]提出的基于几何特征分析的裂缝检测方法(90%)等,说明本模型已具备良好的沥青路面裂缝图像清洗功能。
3 裂缝语义分割模型
3.1 图像集准备
通过数据清洗后可以从采集的41万张图像中筛选出约5 000张路面可能存在的病害样本。为进行准确的裂缝信息提取,需要将这5 000张路面图像中的非裂缝图像进行剔除,因此对该路面图像数据再次进行人工筛选,剔除伸缩缝、窨井盖、污渍等非裂缝病害,精选出1 650 张沥青路面图像进行人工分割标注,标注的类别为沥青路面4大类型裂缝,即横向裂缝、纵向裂缝、龟裂、块状裂缝,以及正常非裂缝路面。进行一张路面的分割标注耗时约15 min,完成数据集内1 650张图像共耗时约400 h。标注完成后,将标注的力气路面图像数据集按照10∶1的比例分成训练集和测试集。训练样本和测试样本中各类别的数量分布如图6所示。
图6 裂缝语义分割模型数据集分布
针对图像样本存在着一图多病害、样本数量不均衡等问题,同时为了减少人为及客观原因对裂缝检测效果的影响,保障图像更利于模型训练,需要对裂缝图像样本进行数据增广。本研究采用的图像样本增广方式主要为传统图像增广方式,包括图像翻转、图像对比度修改、图像亮度修改、图像以一定角度旋转、图像裁剪与缩放等等,传统图像数据增广方法在沥青路面图像中的应用效果图如图7所示。
图7 数据增广方式
对沥青路面裂缝图像进行数据增广,一方面通过增加图片数据量,增加了路面裂缝图片数据集的丰富性;另一方面,由于通过数据扩充方式处理的图片和原图是不同的输入,因此可以减少模型过拟合现象的产生,增加模型泛化能力。
3.2 模型训练
图像语义分割算法能够在像素级别上进行分类,即对属于同一类(如横向裂缝)的像素会被归为一类,以此来对沥青路面中的各种裂缝进行分割提取。因此,本研究能够得到各类别裂缝病害数量、裂缝长度、面积、病害处于图中具体位置等计量信息,有助于为后续公路维养方案提供数据参考。
本研究采用U-Net实现路面图像分割。U-Net属于 Encoder-Decoder 结构,Encoder负责特征提取,Decoder负责解析特征并恢复沥青路面裂缝分割图到原始分辨率,其网络结构如图8所示。Encoder部分包含有4个子模块,其中每个子模块包含2个卷积和1个下采样模块。本模型输入图像的分辨率是272×272的灰度图,在模型中,第1~4个模块的分辨率分别是272×272,136×136,68×68,34×34,4个模块通道数分别为64,128,256,512。相应的Decoder的4个模块分辨率分别为34×34,68×68,136×136,272×272,同时通道数分别为512,256,128,64。同时U-net对不同层进行了连接以提升模型的精确度。此外,本研究在U-Net模型的第1个池化层前增加了1个卷积注意力模块,以使整个模型更加注重于裂缝的识别。模型的损失函数采用Dice_loss函数,用于解决裂缝在整个沥青路面图像中占比太小的问题。
图8 U-Net结构
(4)
式中,X为目标像素,Y为预测像素。
本研究的改进U-net模型设置的最大训练次数为500 轮,初始学习率的设置以及每轮训练后学习率的衰减比率与前述分类模型相同。当模型训练到没有办法通过降低模型学习率来减少模型训练的损失值时,停止本模型的训练或者直到模型达到最大训练次数。
3.3 模型评价
将训练好的模型对测试集中的路面图像进行分割,部分裂缝语义分割结果如图9所示。
图9 裂缝语义分割部分测试结果
图9展示了裂缝语义分割模型的部分测试结果。从图中可以看出,模型的预测结果基本能同人工识别结果相对应。具体的重合程度需要通过IoU和MIoU 2个指标进行控制。因此对本模型的IoU和MIoU进行统计,统计结果列于见表1。
表1 裂缝语义分割结果
表1展示了横向裂缝、纵向裂缝、龟裂和块状裂缝的模型测试结果。从表中可以看出,龟裂的最终IoU达到了0.608 5,高于其他类型的IoU指标。块状裂缝的IoU仅为0.336 6,低于其他类型裂缝的IoU指标,这主要是因为块状裂缝在总体样本中占 13%左右,所占比例较小,训练数据不足导致偏差较大。整个模型的平均交并比MIoU达到了0.5左右。同样针对裂缝图像进行分割任务的SPPNet[19]、Deeplabv3[20]等模型的试验结果如表2所示。
表2 裂缝语义分割模型对比
表2展示了SPPNet,Deeplabv3,FCN-8s,DilatedNet,PSPNet以及本研究模型的MIoU值,本研究模型相较于其他模型高了近0.5~2个点,整体表现更好。
在裂缝信息提取方面,针对裂缝长度、面积信息提取结果的准确性,本研究进行了统计分析,统计结果见表3。
表3 裂缝信息提取结果
②裂缝面积:通过像素面积换算得到。
表3展示了对路面图像进行语义分割后的裂缝长度及面积信息提取结果。从表中可以看出,在裂缝长度信息提取上,横向裂缝的误差为12.18%,纵向裂缝的误差仅为3.88%。裂缝面积通过裂缝在路面图像中所占像素,并根据图像尺寸与实际尺寸比例尺换算得到,在裂缝面积的信息提取中,除了横向裂缝误差较小(仅为0.58%)外,其他裂缝的面积统计误差均在11%~13%之间。
4 结论
沥青路面裂缝自动识别与信息提取是实现路面养护的重要技术支撑与数据保障。本研究提出了一种基于深度学习的两步式沥青路面裂缝信息提取法用于实现沥青路面裂缝智能检测与信息自动提取。主要得到以下结论:
(1)融合了基于CBAM改进的ResNet50和U-Net算法,构建了用于沥青路面裂缝几何信息提取的两步式方法。
(2)本研究提出的基于改进ResNet50的图像分类算法对于总体样本清洗结果的精确率、召回率和F1值均已超过95%,其中F1值已经达到了96.8%。
(3)本研究提出的两步式模型最终的MIoU达到了0.496 7,其中横向裂缝、纵向裂缝、龟裂的IoU分别为0.495 1,0.546 7,0.608 5,块状裂缝由于样本数量少的原因,其IoU值较低,仅为0.336 6。
(4)在裂缝长度和面积提取中,纵向裂缝的长度预测误差为3.88%,横向裂缝的长度预测误差为12.18%;横向裂缝的面积预测误差仅为0.58%,其他裂缝的面积统计误差均在11%~13%之间。