基于改进Faster-RCNN的沥青路面裂缝检测①
2022-08-04马荣贵
徐 康,马荣贵
(长安大学 信息工程学院,西安 710064)
随着我国高速公路的快速发展,现在已经进入高速公路的养护阶段,因此路面病害的及时发现和修复就变得尤为重要. 裂缝作为路面病害早期的表现形式,它的及时发现和防止能够有效地防止其发展成更严重的路面病害,延长公路使用寿命. 所以,高效、安全的裂缝检测方法对于制定科学的公路养护决策具有重要的实际意义[1,2].
为了解决路面裂缝自动检测的问题,国内外众多学者做出了很多研究. 李清泉等使用最小代价路径搜索算法进行裂缝检测,该方法虽然准确性高,但易受光线的影响[3]. 曹建农等采用中值转换的方法实现了路面裂缝损伤自动识别和特征测量,但其操作过程复杂,难以实现快速的批量检测[4]. 任亮等采用脊线检测方式对所有可疑裂缝目标进行标注,使用Prim 算法构造最小生成树使所有不连续裂缝相连,通过裂缝的方向和对比度特征删除所有强制伪连接,最后对断裂裂缝进行填充,获得完整裂缝结构[5]. 李伟等对预处理后的三维路面裂缝图像以聚类方式进行识别,然后通过计算路面裂缝圆形度判断路面裂缝的类别,并对网状裂缝的破损程度进行参数分析[6]. 邱延峻等通过检验三维路面裂缝的倾斜度、高斯分布、边缘梯度3 种主要特征,可以有效地提取裂缝,得到完整的路面裂缝二值图像[7].
随着深度学习的发展,其也在路面裂缝检测中得到了广泛应用. Qiao 等提出了一种新的基于深度特征聚合网络的裂缝检测算法,该算法采用了空间通道挤压和激发注意机制模块[8]; Li 等提出了一种基于快速区域卷积神经网络和形态学特征提取技术的像素级裂缝检测方法[9]; Wan 等提出了一种基于编解码网络的架构CrackResAttentionNet,在每个编码器后连接位置注意模块和通道注意模块,以总结远程上下文信息[10];Qu 等通过一种新的多尺度卷积特征融合模块,提出了一种用于裂纹检测的深度监督卷积神经网络,在多尺度卷积特征融合模块中,高级特征在不同的卷积阶段被直接引入到低级特征中[11]; 吴秋怡提出一种语义分割网络模型,将裂缝图片与对应标签进行逐像素的学习与训练,从而使训练出的网络模型能够识别裂缝的具体区域和形态,实现像素级的识别精度[12]; 蔡志兴等提出了一个名为Crack U-Net 的像素级分类模型[13]; 孙朝云等提出了一种基于深度卷积神经网络融合模型的路面裂缝识别方法,用SSD 网络模型进行裂缝分类检测,用U-Net 网络模型进行裂缝分割,并且用深度残差网络替换两个网络中的特征提取网络[14]; 沙爱民等将卷积神经网络技术引入了基于图像分析的路面病害识别与测量[15]; 李永绪等提出一种基于卷积神经网络的沥青路面裂缝识别方法,融合了CLAHE 与深度学习算法[16].
综上所述,虽然国内外关于路面裂缝检测的研究很多,但是几乎没有一种相对成熟并且能应用到实际路面检测中的方法. 而且现有的大多数研究中,实验所用的数据集多为手机或商用摄像头拍摄,这也成了实验成果向实际应用转化的阻力. 因此,本文应用实际道路检测中的路面图像作为实验数据集,结合多模型特征提取网络和注意力机制,提出了一种改进的Faster-RCNN 沥青路面裂缝检测方法,研究路线如图1 所示.
图1 研究路线
1 数据集的准备与制作
裂缝图像的采集和数据集的建立是实验准备阶段的主要工作. 为了便于将实验成果向实际应用转化,裂缝图片应该尽可能地来自实际的路面检测实验中,所以本实验所用数据集中的图片,全部都是由道路病害检测时所用的多功能道路检测车在高速公路上拍摄所得.
实验数据采集设备为多功能道路检测车,采集设备如图2 所示. 检测车上用于采集路面信息的相机为两个相同的并行排列的线阵相机,每个相机拍摄范围为2 m,检测车的最大路面检测宽度为4 m,可以实现对单车道的覆盖. 线阵相机的检测分辨率为1 mm,采集到的路面信息的图片上的每个像素都对应真实路面上1 mm 的距离,清楚地了解采集到的图片中裂缝的实际尺寸.
图2 多功能道路检测车示意图
检测车输出的路面信息的图片为2944×2048,图像尺寸太大,不便于输入深度学习网络进行学习. 因此需要对图片进行分割. 实验将图片分割为500×500 大小,对于原图片边缘,分割后不够500×500 大小的图片进行舍弃. 然后从分割后的图片中选择包含有路面裂缝的图片13 000 张.
检测车采用LED 阵列照明,由于光照不均匀的影响,因此采集到的路面图像存在光暗相间的条纹,这是本文的路面图像与自然光照条件下采用手机或商用摄像机拍摄所得路面图像的区别. 图3 是自然光照条件下拍摄的路面图像,图4 是检测车拍摄的路面裂缝图像. 因此,本文的路面图像拥有更加复杂的背景.
图3 自然光照条件下拍摄的路面裂缝图像
图4 3 种裂缝图像
本实验将裂缝主要分为3 类: 横向裂缝(简称“横缝”),纵向裂缝(简称“纵缝”)和网状裂缝(简称“网裂”). 《公路技术状况评定标准》中对横缝和纵缝的定义比较模糊,并且对网裂没有外观上的定义. 因此,在本实验中,制作数据集时,按照如下对各类裂缝的定义对图片进行标记(图片的水平方向为与行车方向垂直的方向):
(1)横向裂缝: 对于单个裂缝,如果该裂缝在与水平方向上的投影与在垂直方向上的投影的比例≥1,则认为该裂缝是横向裂缝,如图4(a).
(2)纵向裂缝: 对于单个裂缝,如果该裂缝在垂直方向上的投影与在水平方向上的投影的比例≥1,则认为该裂缝是横向裂缝,如图4(b).
(3)网状裂缝: 如果该裂缝形成了闭合区域,则认为该裂缝是网状裂缝,如图4(c).
数据集13 000 张图片中,有横缝图片6 686 张,纵缝图片5 750 张,网裂图片564 张.
2 Faster-RCNN 概述
2017年,Ren 等在检测准确率和检测速度两点对Fast-RCNN 进行改进,建立了Faster-RCNN 方法[17],该方法在主要作出以下两点改进:
(1)产生候选框的方法由区域生成网络(region proposal network,RPN)代替原来的selective search 方法,使得候选框的数量从原有的约2 000 个减少到300 个,而且候选框的质量也有明显提高,有效提升训练和测试时的速度;
(2)产生候选框的卷积网络和目标检测的卷积网络共享.
其主要网络结构如图5 所示. 网络结构由4 部分组成.
图5 Faster-RCNN 网络结构模型
(1)特征提取部分: 对于输入网络的每张图片,Faster-RCNN 网络首先需要对输入进行一系列的卷积和池化操作,生成该输入对应的特征图. 而且,相对于RCNN对于每个候选框进行特征提取操作产生大量的冗余的卷积操作,Faster-RCNN 只需对全图进行一次特征提取操作,显著地提高了网络在特征提取操作时的速度.
(2)区域生成网络: 这是Faster-RCNN 网络中提出的全新的结构,用于生成候选框,结构如图6 所示.RPN 层的作用实际上相当于一个二分类的分类器,先在特征图(feature map)上均匀地生成一系列K×H×W大小的区域(称为anchors),通过Softmax 对这些区域与标记的真实的数据进行对比,确定这些区域所属的类别,即属于前景还是背景. 经过网络训练,做好对anchors 的前景和背景的标记之后,就得到了目标的大致位置. 最后,再利用bounding box regression 对anchors的位置进行修正,得到更为准确的目标位置(称为proposals).
图6 RPN 网络结构
(3)ROI 池化层: 该层收集第(2)步中输出的特征图和proposals 信息,对其进行归一化后,形成固定长度的输出,送入后面的全连接层进行目标分类.
(4)分类回归层: 利用ROI 池化层的输出,对得到的proposals 进行分类,并且再次用bounding box regression 对其位置进行修正,得到最终的目标位置.
3 基于改进Faster-RCNN 的沥青路面裂缝识别方法的实现
整个数据集中包含13 000 张路面裂缝图像,实验中按照8:2 的比例将数据集分为训练集和测试集. 为了保证训练集和测试集图像分配的均衡性,采用随机挑选的方式选出2 600 张图片作为测试集,剩下的图像则为训练集. 然后将训练集中的10 400 张路面图像输入网络中进行训练. 网络采用SGD 优化器,优化器参数和网络训练时的其他参数设置如表1 所示.
表1 网络训练时的参数设置
3.1 实验平台
硬件: CPU 为英特尔i5 的计算机一台,操作系统为Windows 10.
软件: 实验采用Anaconda3 软件,在PyTorch 框架下运用了numpy、PIL 等库进行实验,也用到了Google浏览器中云端硬盘的Colab 服务等.
3.2 不同结构的特征提取网络的实验
为了验证Faster-RCNN 在不同的特征提取网络下的性能. 实验选取VGG16、MobileNet-V2、ResNet50三种特征网络从mAP 和总损失两方面进行对比,以构建精确度高、速度更快的Faster-RCNN 网络. 3 种网络的实验结果如图7 所示.
VGG16、MobileNet-V2 和ResNet50 平均每轮的训练时间分别为238 s、204 s、327 s,ResNet50 平均每轮训练时间比VGG16 和MobileNet-V2 分别高了89 s和123 s. 但是根据图7 的实验结果,ResNet50 对裂缝的检测精度在其余两种网络上方,训练总损失在其余两种网络下方,因此检测效果明显优于VGG16 和MobileNet-V2,平均检测精确度达到80.58%.
图7 3 种网络模型的实验结果
鉴于以上实验结果,对3 种特征提取网络的网络结构进行分析. 3 种网络的结构参数如表2 所示.
表2 3 种网络模型的结构参数
由表2 可知,VGG16 只有16 层,而MobileNet-V2和ResNet50 网络层数相当,分别为53 层和54 层,因此MobileNet-V2 和ResNet50 能提取到更多的裂缝信息; VGG16 只用了3×3 大小的卷积核,MobileNet-V2使用1×1 和3×3 两种大小的卷积核,ResNet50 除了第1 层卷积层使用了7×7 大小的卷积核,也是大量使用了1×1 和3×3 两种大小的卷积核,因为1×1 和3×3 两种卷积核的使用,MobileNet-V2 和ResNet50 比VGG16能从图像中获取更多的关于裂缝的细节信息; 从输出的特征图通道数来看,3 种网络的特征图输出分别是512、1 280 和2 048,而输出的特征图通道越多,就包含越多的裂缝的特征信息. 综上所述,ResNet50 在3 种特征提取网络中具有最好的裂缝检测效果,符合实验结果. 因此,在ResNet50 对裂缝的识别精确度明显高于另外另种网络的情况下,选择ResNet50 网络模型进行进一步实验.
3.3 不同深度的特征提取网络的实验
如图8,在观察ResNet50 与Faster-RCNN 结合的实验结果时发现,细微裂缝的漏检问题并没有得到很好地解决,还是有比较多的细微裂缝漏检问题.
图8 裂缝漏检示例
在仔细对裂缝本身的特征进行分析之后发现,虽然裂缝相对于其他信息层次比较丰富的检测目标,检测特征简单,且特征相对集中,不存在目标之间重叠,即不具备时空层次,但是检测难度也较大. 因此,为进一步提高检测精确度和速度,本文提出对ResNet 系列的网络模型进行对比,以获取性能更高的特征提取网络. 实验结果如图9 所示.
图9 ResNet 系列网络的实验结果
ResNet18、ResNet50 和ResNet101 平均每轮训练时间分别为168 s、327 s、393 s,ResNet50 和ResNet101识别精确度变化曲线都在ResNet18 曲线上方,总损失曲线都在ResNet18 网络下方. ResNet50 和ResNet101平均检测精确度分别达到80.58%和81.48%,ResNet101的精确度比ResNet50 高了0.71%,总损失也略低,但平均每轮训练时间比ResNet50 长了66 s,大约是ResNet50平均每轮训练时间的20%.
这3 种特征提取网络属于同一系列,网络结构上的差异不大,因此主要是网络深度和输出的特征图通道数影响网络的裂缝检测性能,ResNet18 网络层数和输出的特征图通道较小,因此检测精确度较ResNet50和ResNet101 低,ResNet50 和ResNet101 检测精确度相差不大,说明网络深度的提高,对检测精确度的提高有限,反而导致训练时间明显延长. 而且,ResNet101 也没有很好地解决裂缝的漏检问题. 因此,选择检测精确度较高且训练时间更少的ResNet50 进行下一步实验.
3.4 特征提取网络加入注意力机制
注意力机制,是从人脑和人眼的感知机制中受到启发,将关注点聚焦在能够辅助判断的局部信息的机制. 其本质是对实验感兴趣的信息进行定位,对无用的信息进行抑制,即调整信息对应的权重,使任务信息具有较高的权重,不相关的信息具有较低的权重,最后的输出结果一般都是权重图或者是权重特征向量. 从原理上来说,注意力机制主要分为空间注意力机制、通道注意力机制、空间和通道混合注意力机制3 种.
CBAM (convolutional block attention module)模块就是空间和通道混合注意力机制中具有代表性的网络,结构如图10 所示. 其中通道注意力学习的是通道的重要性,空间注意力学习的是空间位置的重要性.
图10 CBAM 模块结构示意
输入图像经过CBAM 模块运算后,并不会改变尺寸,因此CBAM 是一种“即插即用”模块. 由于注意力模块能够对任务信息定位的特性,实验选择在特征提取网络ResNet50 中加入CBAM 模块. 但是为了不改变ResNet50 网络中残差块的结构,实验选择在如图11(a)和图11(b)的两个位置加入CBAM 模块,分别记作插入点“a”和插入点“b”. 对于这两个加入位置,本文设计了3 个实验: 在插入点“a”和“b”分别加入CBAM 模块和在两个位置同时加入CBAM 模块,分别记作实验方案A、B、C,得到的实验结果如图12 所示.
图11 CBAM 模块与ResNet50 特征提取网络相结合的3 种实验方案
ResNet50 和实验方案A、B、C 的平均每轮训练时间分别为327 s、328 s、328 s、330 s,训练时间相差不大. 由图12 可得,ResNet50+A 作为特征提取网络时,与ResNet50 的检测精确度比较接近,总损失也很接近;ResNet50+B 和ResNet50+C 与ResNet50 相比,精确度略有提高,分别达到了85.57%和81.61%,总损失相应地也有所下降. 对实验结果进行分析,ResNet50+A 方案引入注意力模块时,输入图像还未进行特征提取,图像中包含的信息还比较多,并不容易定位到实验感兴趣的区域; ResNet50+B 方案引入注意力模块时,是在输入图像的特征图上进行操作,特征图中包含更多特征信息,更大的感受野,所以在提取特征后加入CBAM拥有更好的识别效果; ResNet50+C 方案是在位置a 和b 同时加入CBAM,可能是受到位置a 处加入CBAM的影响,所以此方案的识别效果并没有ResNet50+B好. 因此,ResNet50+B 具有最好的识别效果. 如图13,进一步查看裂缝检测结果,与图8 相比,裂缝的漏检问题得到了有效的解决.
图12 在不同位置加入CBAM 模块的实验结果
图13 方案B 的裂缝检测结果
4 结语
对于沥青路面裂缝检测问题,文中提出了一种改进的Faster-RCNN 网络模型,包括不同特征提取网络与Faster-RCNN 结合和在特征提取网络中加入CBAM模块的方法. 结果表明:
(1)无论是与VGG16、MobileNet-V2 相比,还是与同系列的ResNet18、ResNet101 相比,ResNet50 都具有更好的裂缝检测效果,精度能达到80.58%,但是细微裂缝的漏检问题依然存在;
(2)针对裂缝的漏检问题,将注意力机制加入特征提取网络,检测效果比调整前有所提高,在特征提取结束之后加入CBAM 模块的效果最好,精度达到85.57%,并且之前漏检的裂缝能被有效地检测出来.