城市地下管线是指城市范围内供水、燃气、电力、通信、工业等管线及其附属设施, 是保障城市运行的重要基础设施和“生命线”. 地下管线检测是进行管线施工抢修过程中的首要环节, 只有清楚地掌握地下管线的位置信息, 才能在施工过程中做到准确规划, 高效作业, 避免因为判断失误造成不必要的困难和经济损失[1]; 并且随着国家城镇化快速推进, 地下管线网络日趋复杂, 急需建立可靠的地下管网系统[2], 因此对于地下管线的检测问题变得愈发重要. 传统的管线检测是技术人员根据相关资料、现场勘测做出判断, 使用钻芯取样方法进行验证, 但是人工判断效率低、误差大, 钻芯取样方法会对地下结构造成不可逆的破坏[3].
探地雷达是一种无损探测地下目标的手段[4], 与传统的地下目标探测方法相比, 探地雷达具有操作简单方便、速度快、高分辨率等优点. 对于探地雷达管线识别的研究已经有很多, Li等[5]利于探地雷达管线图像的双曲线特征, 计算管线图像对称度和相对区别度来确定管线特征. Liu等[6]利用管线双曲线特征, 对梯度图像细化找到双曲线顶点来拟合双曲线, 上述利用管线图像的双曲线特征识别管线虽然比较简单直观, 但是对于噪声干扰大的雷达图像识别难度较大. Pasolli等[7] 将遗传算法应用于探地雷达图像, 利用双曲线特征与分割后的原图进行匹配, 寻找合适的参数提取管线特征, 但是此方法对参数设置依赖较大. Delbo等[8]应用模糊聚类和空间金字塔思想处理图像, 使得提取探地雷达目标特征更加容易, 但此方法会造成大量的冗余计算.
近年来, 深度学习凭借检测精度高, 适应性强等优点使其在目标检测领域受到广泛关注. 基于深度学习的单阶段检测算法以SSD[9]、YOLOv3[10]、RetinaNet[11]等为代表, 单阶段网络虽然检测速度快, 但是对于小的管线目标容易造成漏检. 两阶段检测算法以Faster R-CNN[12]、Mask R-CNN[13]、SPP-Net[14]为代表, 两阶段检测算法检测精度高, 更适合特征复杂的地下管线目标. 现阶段对于使用深度学习解决探地雷达管线目标检测的研究较少, 2020年米宏涛[15]基于普通卷积神经网络实现了二维探地雷达图像地下管线的目标检测, 模型对于正演模拟探地雷达数据集的最高检测率为99.225%, 但是对于真实管线目标数据集的最高检测率仅有69.5%, 不能满足实际工程上高精度的检测要求. 2020年胡浩帮等[16]改进了Faster R-CNN模型对地下管线进行识别, 实验发现改进后的Faster R-CNN模型对大的地下管线检测精度较高, 但是作者对探地雷达图像进行裁剪得到的管线目标较大, 缺少小的管线目标, 导致模型的泛化能力不强. 2022年杨坤[17]从精度提高和网络结构轻量化两个方面对YOLOv4网络进行改进, 改进后模型对地下管线的检测结果优于主流的YOLOv4网络, 但是算法的验证仅基于仿真数据集, 并没有实际采集数据进行实验. 2022年胡浩帮等[18]提出了一种基于轻量化MobileNet-SSD网络的地下管线智能识别方法, 模型使用轻量化MobileNet网络提取管线特征, 牺牲了部分检测精度来换取模型的检测速度, 导致模型的检测精度不高. 为了解决上述问题, 本文提出了一种改进Cascade R-CNN的探地雷达管线目标检测算法. 主要贡献如下: 1)采用ResNeXt代替ResNet作为主干网络提取目标特征信息; 2)添加多尺度特征融合模块FPN使高层特征向低层特征融合; 3)使用高斯形式的非极大值抑制方法Soft-NMS得到更加精准的候选框; 4)使用Smooth_L1作为损失函数; 5)对于管线目标特殊的形状特征, 设置对应的anchors锚框长宽比和大小; 6)使用不同增益设置、镜像翻转和添加噪声等方法扩充数据集.
1 Cascade R-CNN检测网络模型本文使用的Cascade R-CNN检测模型主要由主干网络、区域生成网络(region proposal network, RPN)、感兴趣区域池化(region-of-interest pooling, ROI-Pooling)和由多分类器Softmax与回归器组成的检测器4部分组成, 具体网络结构如图1所示. 首先, 主干网络提取经过数据质量提升的管线数据集特征, 然后RPN网络生成大量锚框且通过Softmax分类器判断目标正负样本类别和边框回归器修正得到候选框, 其次, 将RPN生成的候选框投影在特征图上并得到相应的特征矩阵, 通过ROI池化层将尺寸形状不同的特征矩阵归一化为固定大小的特征图. 最后, 将特征图再通过全连接层展平后从级联的检测器中判断目标类型, 并得到检测框最终的精确定位.
Cascade R-CNN在Faster R-CNN基础上解决了交并比(intersection over union, IoU)阈值设置的问题. Cascade R-CNN由一组IoU不断增加的检测器级联组成, 可以逐步提高对目标的预测效果. 模型的IoU阈值设置为[0.5, 0.6, 0.7], 首先锚框被送入IoU=0.5的检测模块中, 选取锚框和真实标注框IoU>0.5的锚框, 使用边框回归B1调整边框位置, 得到第一次目标分类评分和回归器修正后的候选框, 接着将得到的候选框送入IoU=0.6的检测模块中, 如果计算得到的IoU>0.6, 判定正确检测出目标, 同时使用边框回归B2调整边框位置和计算第2次目标分类得分, 最后输入到IoU=0.7的检测模块中得到最终边框位置和目标分类得分.
2 改进的Cascade R-CNN检测模型
本文提出的基于改进Cascade R-CNN的探地雷达管线目标检测方法, 主要由训练部分和验证部分构成. 将训练集进行预处理后输入模型进行训练得到模型权重文件, 使用权重文件对验证集进行检测, 通过对比分析验证集的检测结果对模型不断进行改进. 图2是改进后的Cascade R-CNN管线目标检测模型. 首先将探地雷达图像缩放到1024×1024尺寸, 输入 ResNeXt50网络和FPN构成的特征提取结构中提取特征. 然后通过RPN网络生成锚框, 进行判别和修正后得到候选框, 使用Soft-NMS对候选框进行优化, 并将RPN产生的候选框投影到特征图上获得相应的特征矩阵. 其次, 通过ROI池化层将尺寸形状不同的特征矩阵归一化为固定大小的特征图. 最后经全连接层输入到分类器和回归器中进行分类和定位, 实现探地雷达管线目标的智能化检测. 下面是对Cascade R-CNN模型改进部分.
2.1 ResNeXt主干网络本文使用ResNeXt50代替原始ResNet50作为模型的主干网络, 在保证参数量不增加的前提下, 通过分组卷积, 来提高模型精度. 图3是 ResNeXt50的网络结构图, ResNeXt50网络结构包含卷积、池化层, ResNeXt残差块, 全连接层和分类器. 表1是ResNeXt50网络结构图每一阶段对应的网络参数, 括号内参数代表卷积核的尺寸大小, 卷积核的数量, 括号外的参数代表残差块的数目.
ResNeXt由大量分组卷积结构(group convolution)[19]组成, 它结合了ResNet[20]和Inception[21]的优点, 与Inception v4[22]不同, 本文采用的ResNeXt块结构一共有32个相同拓扑结构的分支, 这样使模型的结构得到简化, 加速了网络训练过程. ResNeXt块结构的表达式为:
$ {{y}} = {{x}} + \sum\limits_i^C {{\Gamma _i}\left( {{x}} \right)} $ | (1) |
其中, C是分支数量, x表示输入数据, y表示输出,
图4(a)为ResNeXt 块结构, 图4(b)为图4(a)等效结构, 图4(a)中每个长方形块结构表示输入通道数量, 卷积核尺寸大小和输出通道数量.
2.2 添加多尺度特征融合结构
本文添加FPN (feature pyramid networks)来实现多尺度特征融合, FPN利用主干网络ResNeXt50的卷积层输出构建特征金字塔来进行特征融合, 使不同尺度的输出特征都含有较强的语义信息, 图5是FPN特征提取网络结构图. FPN包含两个过程, 首先是自底向上过程, 然后是自顶向下和侧向连接的融合过程.
自底向上的过程: 图像经过预处理后, 输入到ResNeXt50主干网络中提取特征, 选择ResNeXt50网络第2–5阶段残差模块最后一层卷积的输出特征作为FPN网络的特征, 记为{C2, C3, C4, C5}, 相对于原图的步长分别为4, 8, 16, 32, 图5中0.5×表示下采样后尺寸缩小到原来的0.5倍, 每个阶段蓝色框上面尺寸表示每经过一个阶段后的输出尺寸. 自顶向下以及侧向连接过程: C5层通过1×1卷积改变通道数得到M5. M5使用最邻近插值上采样, 2×表示上采样后输出尺寸为原来的2倍, 然后与C4经过1×1卷积输出的特征相加, 得到M4. 相同的过程得到M3, M2, M层框下面尺寸表示经特征融合后的输出尺寸. 上述上采样使用最邻近插值算法, 此方法会造成混叠, 为了解决此问题, 在{M2, M3, M4, M5}后添加3×3卷积得到{P2, P3, P4, P5}, P层框右边的尺寸表示FPN最终输出尺寸. FPN同时利用了顶层强语义信息和底层的细节信息, 可以更加精确地检测到不同大小的管线目标.
2.3 非极大值抑制结构优化
非极大值抑制NMS (non-maximum suppression)方法都是根据类别分数判断的, 因此只有最高得分的候选框能保留下来, 但一般情况下IoU与类别分数并没有太强相关性, 因此很多分类标签置信度高的检查框位置都存在偏差, 并且对于多个重叠目标, 检测算法应该输出多个目标检测框, 而NMS会先选取置信度最大的候选框, 再把和它IoU大于阈值的所有候选框得分直接置零, 导致只能检测出一个目标, 造成了漏检.
本文使用高斯形式的非极大值抑制方法Soft-NMS替代NMS来解决上述问题, 对于和最高得分候选框的IoU大于阈值的框, 不把它直接删掉, 而是通过降低置信度来抑制它, 与得分最高框的IoU值越大, 抑制的程度越大. 高斯函数的Soft-NMS表达式如下:
$ {S_i} = {S_i}{{\rm{e}}^{ - \frac{{IoU{{(M, {b_i})}^2}}}{\sigma }}}, \; \forall {b_i} \notin D $ | (2) |
其中,
L1损失函数是真实值和预测值之间的所有绝对误差之和. 它是把目标值
$ S = \sum\limits_{i = 1}^n {|{Y_i} - f({x_i})|} $ | (3) |
L1 损失函数对损失值
L2损失函数是把真实值
$ S = \sum\limits_{i = 1}^n {{{\left( {{Y_i} - f({x_i})} \right)}^2}} $ | (4) |
L2损失函数的稳定性虽然比L1损失函数好, 但是离最低点越远的点梯度越大, 使用梯度下降法求解的时候梯度很大, 可能会导致梯度爆炸.
Smooth_L1损失函数解决了L1损失函数训练后期很难收敛到更高精度和L2损失函数容易产生梯度爆炸的问题, 在本文计算边界框回归损失时使用Smooth_L1损失函数作为评价指标. Smooth_L1损失函数(SmoothL1)如下:
$ {{Smoot}}{{{h}}_{{\text{L1}}}}(x) = \left\{ {\begin{array}{*{20}{l}} {0.5{x^2}, {\text{ }}{\rm{if}}\;|x|{\text{ }} < {\text{ }}1{\text{ }}} \\ {{\text{ }}|x| - 0.5,{\text{ }}{\rm{otherwise}}{\text{ }}} \end{array}} \right. $ | (5) |
其中,
Cascade R-CNN检测模型在锚框的产生过程中, 使用1:1、1:2、2:1这3种不同的长宽比来生成锚框, 由于本文探地雷达管线图像特殊的形状特征, 使用原始的长宽比生成锚框会产生大量和管线形状不符的锚框, 会降低后续边框回归速度和精度, 使得模型的检测精度受到影响. 根据待检测目标管线的形状特征选择合适长宽比的锚框, 可以在不增加网络结构和参数量的情况下, 提升模型的检测效果. 图6是对探地雷达管线数据集进行计算统计得到不同长宽比锚框个数的柱状图. 根据柱状图所示长宽比数量分布, 主要选择6.0、7.0、8.0这3种长宽比产生锚框. 图7是原始锚框和预设锚框长宽比对比, 图7(a)是原始锚框的长宽比, 不适用于本文所研究的管线数据集, 图7(b)是改进后的锚框长宽比, 适用于探地雷达管线目标的特征. 其中黑、绿、红3种颜色分别对应锚框长宽比为6.0、7.0、8.0. 产生锚框在每个特征层上步长设置为[4, 8, 16, 32, 64].
3 实验及结果分析
本文实验环境配置如表2所示.
3.1 数据采集和数据质量提升
本次实验使用全自动道路病害检测机器人搭载二维探地雷达(如图8所示), 对30 km目标路段进行扫描, 将采集到的管线数据输出为图像格式, 对得到的雷达图像进行筛选得到688张分辨率为416×416像素的雷达图像, 作为训练集和验证集的原始数据集. 由于深度学习网络训练对数据集数量和场景有一定要求. 数据集场景过于单一、数据量少会导致模型泛化能力不足和过拟合. 本文通过镜像翻转、添加噪声、使用4种不同增益采集数据来扩充数据集, 扩充后的雷达图像共2752张, 图9是使用不同数据集质量提升方法的结果, 然后按照7:3的比例划分训练集和验证集, 其中训练集1926张, 验证集826张, 验证集和训练集图像均包含无管线路面图像和含有管线路面图像. 使用Labelme对图像中所有管线目标进行标注, 得到JSON格式的标注文件.
3.2 模型性能评价指标
本文使用精确率(precision, P)、召回率(recall, R)、平均精度(average precision, AP)、P-R (precision- recall)曲线作为模型性能的评价指标. tp (true positive)为正样本被识别为正样本, 表示正确检测到管线的个数, fp (false positive)为负样本被识别为正样本, 表示错误检测到管线的个数, fn (false negative)为正样本被识别为负样本, 表示漏检的管线个数.
(1)精确率表示在模型检测的所有识别结果中正确识别出管线的占比:
$ {{P = }}\frac{{{{tp}}}}{{{{tp + fp}}}} $ | (6) |
(2)召回率表示在所有管线真实标注框中被正确识别出来的管线占比:
$ {{R = }}\frac{{{{tp}}}}{{{{tp + fn}}}} $ | (7) |
因为本次实验采用SGD优化器作为基础迭代器, 所以初始学习率设置为0.0125、momentum动量因子为0.9、weight_decay权重衰减因子为0.0001, 由于使用单GPU进行训练, 限于显存大小, batchsize设置为1. 使用改进的Cascade R-CNN网络模型在管线数据集上经训练后, 得到损失函数值随着迭代次数的变换曲线如图10. 由于使用了预训练权重, 模型收敛速度加快, 由图10可以看出, 当从开始训练至迭代到4000次时, 模型加速收敛, 损失值从1.9左右急剧下降到0.17, 接着当迭代次数不断增加时, 损失值呈现缓慢振荡下降趋势. 当迭代次数达到60000左右时损失值基本达到稳定, 最终本文所使用模型的损失值为0.1399.
为了验证本文方法的有效性, 对比了YOLOv3、Faster R-CNN和使用不同模块的Cascade R-CNN模型检测结果. 表3是不同模型检测结果, 以下两阶段检测模型均采用锚框优化.
从表3可以看出YOLOv3的损失Loss最大, 达到20.4879, Faster R-CNN损失为0.5033, Cascade R-CNN各种模型的损失均比YOLOv3和Faster R-CNN低. YOLOv3的平均精度AP值最小, 为0.768, Faster R-CNN的平均精度AP为0.821, Cascade R-CNN模型的平均精度AP均大于YOLOv3和Faster R-CNN的AP值. 本文改进后的Cascade R-CNN模型损失值最低, 为0.1399, 平均精度最大, 达到0.947.
P-R曲线是衡量模型性能好坏的重要指标, 为了能够直观地展示本文改进的Cascade R-CNN模型的检测效果, 绘制了YOLOv3、Faster R-CNN和本文模型在IoU=0.5下的P-R曲线, 如图11所示, P-R曲线下的面积越大, 模型的检测结果越好. 图11(a)所示, Faster R-CNN 的P-R曲线当召回率趋近1时, 精确率有大的降低. 图11(b)中, YOLOv3的P-R曲线中当精确率趋近1时, 召回率有大的降低. 图11(c)中, 本文模型P-R曲线随着召回率增加到1精确率降低最少, 曲线下的面积最大, 模型检测性能最好.
图12是Cascade R-CNN模型和使用FPN模块优化后模型的地下管线目标检测结果, 图12(a)中红框是经放大显示的管线目标, 在未添加FPN模块时, 模型无法将小的管线目标正确的检测出来, 而图12(b)中经过FPN优化后, 增加了低层特征表达能力, 成功检测出小的管线目标.
图13和图14展示了使用原始Cascade R-CNN模型和改进后的Cascade R-CNN模型探地雷达地下管线检测的对比结果. (1)图13(a)中使用Cascade R-CNN模型对管线目标检测不完全, 存在漏检的情况, 图14(a)对Cascade R-CNN模型改进后增强了对管线特征的学习能力, 成功检出了图13(a)中漏检的管线目标. (2)原始Cascade R-CNN检测模型容易造成管线目标误检如图13(b)、图13(c), 将不是管线的负样本当成正样本检测出来. 改进后的模型提升了正负样本判别能力, 降低了管线目标误检率如图14(b)、图14(c)所示. (3)对比图13和图14检测结果, 改进后模型管线检测框的位置和大小更加精确, 准确地反映了管线目标的位置信息. 综上所述, 使用本文改进后的Cascade R-CNN模型能更好适应复杂的探地雷达地下管线特征, 检测精度明显提高.
图15列出了改进后的Cascade R-CNN模型对探地雷达地下管线部分检测结果.
4 结论(1)本文提出了一种基于改进Cascade R-CNN的探地雷达管线目标检测模型. 利用镜像翻转、不同增益设置、添加噪声等方法扩充数据集, 提高了模型的泛化能力. 利用ResNeXt作为主干网络提取目标特征信息, 在保证参数量的前提下提高了网络精度. 添加多尺度特征融合模块FPN, 提高了对小目标的检测能力. 使用高斯形式的非极大值抑制方法Soft-NMS得到更加精准的候选框. 利用Smooth_L1代替L1、L2损失函数, 加速网络收敛, 解决了容易梯度爆炸的问题. 重新设置了锚框的长宽比, 提高生成锚框的质量.
(2)实验结果表明, 本文改进后的Cascade R-CNN比原始Cascade R-CNN算法和其他目标检测方法检测精度更高, 模型泛化能力更强. 本文方法有效地解决了地下管线目标智能化检测问题.
[1] |
刘勇. 城市管理中地下管线检测的运用研究. 工程技术研究, 2020, 5(24): 172-173. |
[2] |
王建. 城市地下管网信息系统建设管理研究. 四川建材, 2018, 44(5): 253-254. |
[3] |
刘明珠. 关于混凝土钻芯取样的一些问题的探讨. 黑龙江科技信息, 2013(7): 251. |
[4] |
刘永义, 杨磊, 王瑞芳. 探地雷达在地下管线探测中的应用. 全球定位系统, 2015, 40(3): 73-76. DOI:10.13442/j.gnss.1008-9268.2015.03.019 |
[5] |
Li TJ, Zhou ZO. Fast extraction of hyperbolic signatures in GPR. Proceedings of 2007 International Conference on Microwave and Millimeter Wave Technology. Guilin: IEEE, 2007. 1–3.
|
[6] |
Liu YY, Wang MQ, Cai QR. The target detection for GPR images based on curve fitting. Proceedings of the 3rd International Congress on Image and Signal Processing. Yantai: IEEE, 2010. 2876–2879.
|
[7] |
Pasolli E, Melgani F, Donelli M. Automatic analysis of GPR images: A pattern-recognition approach. IEEE Transactions on Geoscience and Remote Sensing, 2009, 47(7): 2206-2217. DOI:10.1109/TGRS.2009.2012701 |
[8] |
Delbo S, Gamba P, Roccato D. A fuzzy shell clustering approach to recognize hyperbolic signatures in subsurface radar images. IEEE Transactions on Geoscience and Remote Sensing, 2000, 38(3): 1447-1451. DOI:10.1109/36.843039 |
[9] |
Yang J, Wang LQ. Feature fusion and enhancement for single shot multibox detector. Proceedings of 2019 Chinese Automation Congress. Hangzhou: IEEE, 2019. 2766–2770.
|
[10] |
Redmon J, Farhadi A. YOLOv3: An incremental improvement. arXiv: 1804.02767, 2018.
|
[11] |
Zhao T, Liu JY, Duan ZQ. UAV target detection based on RetinaNet. Proceedings of 2019 Chinese Control and Decision Conference. Nanchang: IEEE, 2019. 3342–3346.
|
[12] |
Ma L, Xu CF, Zuo GY, et al. Detection method of insulator based on Faster R-CNN. Proceedings of the 2017 IEEE 7th Annual International Conference on CYBER Technology in Automation, Control, and Intelligent Systems. Honolulu: IEEE, 2017. 1410–1414.
|
[13] |
Jiang AF, Yan NN, Wang F. Visible image recognition of power transformer equipment based on mask R-CNN. Proceedings of 2019 IEEE Sustainable Power and Energy Conference. Beijing: IEEE, 2019. 657–661.
|
[14] |
Bai RX, Cao H, Yu YJ, et al. Insulator fault recognition based on spatial pyramid pooling networks with transfer learning (Match 2018). Proceedings of the 3rd International Conference on Advanced Robotics and Mechatronics. Singapore: IEEE, 2018. 824–828.
|
[15] |
米宏涛. 基于探地雷达的地下管线正演模拟及探测研究[硕士学位论文]. 哈尔滨: 哈尔滨工业大学, 2020.
|
[16] |
胡浩帮, 方宏远, 王复明, 等. 基于Faster R-CNN算法的探地雷达管线目标智能识别. 城市勘测, 2020(3): 203-208. |
[17] |
杨坤. 基于深度学习的地下管道雷达探测识别与检测研究[硕士学位论文]. 成都: 电子科技大学, 2022.
|
[18] |
胡浩帮, 方宏远, 王念念, 等. 基于Mobilenet-SSD的探地雷达管线目标智能识别研究. 城市勘测, 2022(2): 164-167. |
[19] |
Howard AG, Zhu ML, Chen B, et al. MobileNets: Efficient convolutional neural networks for mobile vision applications. arXiv: 1704.04861, 2017.
|
[20] |
He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition. Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016. 770–778.
|
[21] |
Szegedy C, Liu W, Jia YQ, et al. Going deeper with convolutions. Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston: IEEE, 2015. 1–9.
|
[22] |
Szegedy C, Ioffe S, Vanhoucke V, et al. Inception-v4, inception-ResNet and the impact of residual connections on learning. Proceedings of the 31st AAAI Conference on Artificial Intelligence. San Francisco: AAAI, 2017. 4278–4284.
|