随着我国高速公路的快速发展, 现在已经进入高速公路的养护阶段, 因此路面病害的及时发现和修复就变得尤为重要. 裂缝作为路面病害早期的表现形式, 它的及时发现和防止能够有效地防止其发展成更严重的路面病害, 延长公路使用寿命. 所以, 高效、安全的裂缝检测方法对于制定科学的公路养护决策具有重要的实际意义[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 数据集的准备与制作
裂缝图像的采集和数据集的建立是实验准备阶段的主要工作. 为了便于将实验成果向实际应用转化, 裂缝图片应该尽可能地来自实际的路面检测实验中, 所以本实验所用数据集中的图片, 全部都是由道路病害检测时所用的多功能道路检测车在高速公路上拍摄所得.
实验数据采集设备为多功能道路检测车, 采集设备如图2所示. 检测车上用于采集路面信息的相机为两个相同的并行排列的线阵相机, 每个相机拍摄范围为2 m, 检测车的最大路面检测宽度为4 m, 可以实现对单车道的覆盖. 线阵相机的检测分辨率为1 mm, 采集到的路面信息的图片上的每个像素都对应真实路面上1 mm的距离, 清楚地了解采集到的图片中裂缝的实际尺寸.
检测车输出的路面信息的图片为2944×2048, 图像尺寸太大, 不便于输入深度学习网络进行学习. 因此需要对图片进行分割. 实验将图片分割为500×500大小, 对于原图片边缘, 分割后不够500×500大小的图片进行舍弃. 然后从分割后的图片中选择包含有路面裂缝的图片13 000张.
检测车采用LED阵列照明, 由于光照不均匀的影响, 因此采集到的路面图像存在光暗相间的条纹, 这是本文的路面图像与自然光照条件下采用手机或商用摄像机拍摄所得路面图像的区别. 图3是自然光照条件下拍摄的路面图像, 图4是检测车拍摄的路面裂缝图像. 因此, 本文的路面图像拥有更加复杂的背景.
本实验将裂缝主要分为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部分组成.
(1)特征提取部分: 对于输入网络的每张图片, Faster-RCNN网络首先需要对输入进行一系列的卷积和池化操作, 生成该输入对应的特征图. 而且, 相对于RCNN对于每个候选框进行特征提取操作产生大量的冗余的卷积操作, Faster-RCNN只需对全图进行一次特征提取操作, 显著地提高了网络在特征提取操作时的速度.
(2)区域生成网络: 这是Faster-RCNN网络中提出的全新的结构, 用于生成候选框, 结构如图6所示. RPN层的作用实际上相当于一个二分类的分类器, 先在特征图(feature map)上均匀地生成一系列K×H×W大小的区域(称为anchors), 通过Softmax对这些区域与标记的真实的数据进行对比, 确定这些区域所属的类别, 即属于前景还是背景. 经过网络训练, 做好对anchors的前景和背景的标记之后, 就得到了目标的大致位置. 最后, 再利用bounding box regression对anchors的位置进行修正, 得到更为准确的目标位置(称为proposals).
(3) ROI池化层: 该层收集第(2)步中输出的特征图和proposals信息, 对其进行归一化后, 形成固定长度的输出, 送入后面的全连接层进行目标分类.
(4)分类回归层: 利用ROI池化层的输出, 对得到的proposals进行分类, 并且再次用bounding box regre-ssion对其位置进行修正, 得到最终的目标位置.
3 基于改进Faster-RCNN的沥青路面裂缝识别方法的实现整个数据集中包含13 000张路面裂缝图像, 实验中按照8:2的比例将数据集分为训练集和测试集. 为了保证训练集和测试集图像分配的均衡性, 采用随机挑选的方式选出2 600张图片作为测试集, 剩下的图像则为训练集. 然后将训练集中的10 400张路面图像输入网络中进行训练. 网络采用SGD优化器, 优化器参数和网络训练时的其他参数设置如表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%.
鉴于以上实验结果, 对3种特征提取网络的网络结构进行分析. 3种网络的结构参数如表2所示.
由表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结合的实验结果时发现, 细微裂缝的漏检问题并没有得到很好地解决, 还是有比较多的细微裂缝漏检问题.
在仔细对裂缝本身的特征进行分析之后发现, 虽然裂缝相对于其他信息层次比较丰富的检测目标, 检测特征简单, 且特征相对集中, 不存在目标之间重叠, 即不具备时空层次, 但是检测难度也较大. 因此, 为进一步提高检测精确度和速度, 本文提出对ResNet系列的网络模型进行对比, 以获取性能更高的特征提取网络. 实验结果如图9所示.
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所示. 其中通道注意力学习的是通道的重要性, 空间注意力学习的是空间位置的重要性.
输入图像经过CBAM模块运算后, 并不会改变尺寸, 因此CBAM是一种“即插即用”模块. 由于注意力模块能够对任务信息定位的特性, 实验选择在特征提取网络ResNet50中加入CBAM模块. 但是为了不改变ResNet50网络中残差块的结构, 实验选择在如图11(a)和图11(b)的两个位置加入CBAM模块, 分别记作插入点“a”和插入点“b”. 对于这两个加入位置, 本文设计了3个实验: 在插入点“a”和“b”分别加入CBAM模块和在两个位置同时加入CBAM模块, 分别记作实验方案A、B、C, 得到的实验结果如图12所示.
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相比, 裂缝的漏检问题得到了有效的解决.
4 结语
对于沥青路面裂缝检测问题, 文中提出了一种改进的Faster-RCNN网络模型, 包括不同特征提取网络与Faster-RCNN结合和在特征提取网络中加入CBAM模块的方法. 结果表明:
(1)无论是与VGG16、MobileNet-V2相比, 还是与同系列的ResNet18、ResNet101相比, ResNet50都具有更好的裂缝检测效果, 精度能达到80.58%, 但是细微裂缝的漏检问题依然存在;
(2)针对裂缝的漏检问题, 将注意力机制加入特征提取网络, 检测效果比调整前有所提高, 在特征提取结束之后加入CBAM模块的效果最好, 精度达到85.57%, 并且之前漏检的裂缝能被有效地检测出来.
[1] |
薛超. 高速公路沥青混凝土路面工程的预防性养护探讨. 装饰装修天地, 2020(8): 377. |
[2] |
郑守军. 预防性养护在高速公路沥青混凝土路面中的应用. 科学与财富, 2020(21): 121. |
[3] |
李清泉, 邹勤, 毛庆洲. 基于最小代价路径搜索的路面裂缝检测. 中国公路学报, 2010, 23(6): 28-33. |
[4] |
曹建农, 张昆, 元晨, 等. 用Mean Shift实现路面裂缝损伤自动识别与特征测量. 计算机辅助设计与图形学学报, 2014, 26(9): 1450-1459. |
[5] |
任亮, 徐志刚, 赵祥模, 等. 基于Prim最小生成树的路面裂缝连接算法. 计算机工程, 2015, 41(1): 31-36, 43. |
[6] |
李伟, 呼延菊, 沙爱民, 等. 基于3D数据和双尺度聚类算法的路面裂缝检测. 华南理工大学学报(自然科学版), 2015, 43(8): 99-105. |
[7] |
邱延峻, 王国龙, 阳恩慧, 等. 基于多特征检验的三维沥青路面裂缝检测. 西南交通大学学报, 2020, 55(3): 518-524. DOI:10.3969/j.issn.0258-2724.20180270 |
[8] |
Qiao WT, Liu QW, Wu XG, et al. Automatic pixel-level pavement crack recognition using a deep feature aggregation segmentation network with a scSE attention mechanism module. Sensors, 2021, 21(9): 2902. DOI:10.3390/s21092902 |
[9] |
Li SY, Zhao XF. Pixel-level detection and measurement of concrete crack using faster region-based convolutional neural network and morphological feature extraction. Measurement Science and Technology, 2021, 32(6): 065010. DOI:10.1088/1361-6501/abb274 |
[10] |
Wan HF, Gao L, Su MM, et al. Attention-based convolutional neural network for pavement crack detection. Advances in Materials Science and Engineering, 2021, 2021: 5520515. |
[11] |
Qu Z, Cao C, Liu L, et al. A deeply supervised convolutional neural network for pavement crack detection with multiscale feature fusion. IEEE Transactions on Neural Networks and Learning Systems, 2021, 1-10. DOI:10.1109/TNNLS.2021.3062070 |
[12] |
吴秋怡. 基于语义分割网络模型的路面裂缝识别. 交通科技, 2020(3): 80-83, 109. DOI:10.3963/j.issn.1671-7570.2020.03.018 |
[13] |
蔡志兴, 罗文婷, 李林. 基于深度学习的路面裂缝自动化识别研究. 建材与装饰, 2020(5): 238-240. DOI:10.3969/j.issn.1673-0038.2020.05.174 |
[14] |
孙朝云, 马志丹, 李伟, 等. 基于深度卷积神经网络融合模型的路面裂缝识别方法. 长安大学学报(自然科学版), 2020, 40(4): 1-13. DOI:10.19721/j.cnki.1671-8879.2020.04.001 |
[15] |
沙爱民, 童峥, 高杰. 基于卷积神经网络的路表病害识别与测量. 中国公路学报, 2018, 31(1): 1-10. DOI:10.19721/j.cnki.1001-7372.2018.01.001 |
[16] |
李永绪, 谢政专, 唐文娟. 基于卷积神经网络的沥青路面裂缝识别方法. 西部交通科技, 2020(6): 19-22. DOI:10.13282/j.cnki.wccst.2020.06.006 |
[17] |
Ren SQ, He KM, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137–1149.
|