改进YOLOv5的路面井盖病害检测
2023-09-02孔天宇戴激光
孔天宇,戴激光
(辽宁工程技术大学 测绘与地理科学学院,辽宁 阜新 123000)
0 引言
近年来,路面井盖事故受到了人们的广泛关注,2017—2019年期间媒体报道窨井“吃人、伤人”事件已达到70余件[1]。加大城市路面井盖巡检,是避免井盖事故的有效途径。早期的路面井盖监管主要依靠人工巡查和硬件传感设备,这不仅费时费力,而且巡查人员在检查路面井盖时还存在一定的安全隐患[2]。计算机视觉技术的发展,为路面井盖的巡查及管理带来了新的方式[3]。Wei等[4]将支持向量机与具有对称特征的方向梯度直方图相结合,分别利用激光点云和激光图像的梯度图像以及拍摄的路面影像,实现了井盖的检测和分类。乔瑞萍等[5]提出了一种多特征融合的方法,该方法利用先验知识划定检测范围,然后利用边缘的连通性锁定候选区域,通过多特征判定确定井盖的具体位置。相比于早期方法,传统的图像检测技术可以客观、快速地对大量数据进行分析处理,在道路背景简单的场景下表现良好。但传统的检测算法主要依赖于根据先验知识建立的特征[6],当道路上井盖的纹理颜色与路面相似时,表面特征与周围路面难以区分,传统的图像检测技术在检测时容易出现漏检或错检。
深度学习在目标检测及图像分割任务中被广泛应用且表现出色,这给井盖的巡检提供了新的解决方案[7]。与基于先验特征的传统算法相比,深度学习网络具有强大的学习和特征表达能力,并且特征表示具有非常强的泛化能力[8]。赵文剑等[9]使用ResNet模型对车载智能手机拍摄到的路面影像进行井盖识别的同时,结合手机采集到的车辆经过沉陷井盖时产生的加速度,可对井盖进行塌陷分析。Zhou等[10]提出了一种基于卷积神经网络的分类方法,该方法从智能手机采集影像中检测井盖,结合车载传感器数据得到不同塌陷程度的井盖。从以上研究结果来看,将深度学习技术应用到井盖病害检测,可以实现道路区域范围内的自动化检测,但目前工作着重于检测塌陷井盖,忽略了井盖周围路面破损问题,因而检测结果并不完善。另外受限于手机拍摄方式难以避免受到行人、车辆对井盖检测的干扰,降低了井盖病害的检测精度。
针对上述问题,本文提出改进YOLOv5的路面井盖病害检测方法。本文主要研究内容包括:针对城市道路上的各种井盖病害,制定了路面井盖的分类标准,制作了井盖病害数据集;选取YOLOv5作为基础模型,在主干部分及网络中加入注意力机制,提出了针对井盖病害的检测模型AT-YOLO(Attention-YOLO),有效提升了模型对于路面井盖病害的检测效果。
1 研究方法
1.1 井盖病害分类
井盖作为城市道路的附属构造,在长期的车辆载荷以及自身材料、设计、施工等原因的多重作用下,井盖或周围路面会发生沉陷、破损等病害[11]。如图1所示,由于井盖病害成因因素众多,井盖也会出现复合病害问题,即多种病害同时出现在同一个井盖上。北京市《数字化城市管理信息系统部件和事件处置》(DB11/T 932—2012)中,规定了由部件质量引发的监管案例,表1中列举了正常井盖、井周破损和塌陷井盖等不同井盖类别及其对比分析。
表1 不同井盖状态对比
图1 井盖对比
结合表1与图1中的井盖实例可以看出,正常井盖与路面没有明显高差,且周围路面完好无裂缝或坑槽,对车辆行驶不存在影响。井周破损的井盖包括井盖周围保护圈的破坏和井周路面的破损,表现为从裂缝到坑洼的不同程度破损,且在行驶车辆的持续作用下井周破坏会逐渐增长扩大。塌陷井盖从影像中可以看到与路面存在明显的高差,塌陷严重的井盖会影响到行驶车辆的稳定性和舒适性。
1.2 面向病害井盖的AT-YOLO网络
在复杂多变的街景影像中,路面上的井盖及其病害在不同的时间、光照条件和成像角度影响下,呈现出差异性的表面纹理特征,在影像中出现视觉形态上的区分,而视觉特征信息是基于街景影像进行路面井盖及其病害检测的主要依据。因此,本文在前文总结的井盖病害表征特点的基础上,提出了针对路面井盖病害的目标检测模型AT-YOLO。AT-YOLO模型结构图如图2所示,其网络结构分为backbone(主干)、neck(颈部)和detect(检测层) 3个部分。
图2 AT-YOLO网络结构
在网络的backbone中,AT-YOLO采用了本文提出的TAC3(triplet attention C3)作为网络backbone中特征提取模块的基本单元,其基本结构为CSP结构。网络backbone中的SPP(spatial pyramid pooling)为空间金字塔池化模块,可以将任意大小的特征图转换成固定大小的特征向量。本文在网络backbone中添加convolutional block attention module(CBAM)[12]作为单独的处理单元,来弱化由于背景信息及其他物体造成的干扰,减少误检率。
网络的neck部分使用了特征金字塔网络(feature pyramid networks,FPN)结构对相同尺度的特征进行融合处理。除使用FPN的结构,在传统的自顶向下路径之外,自底向上的路径可以有选择地融合不同层次的特征,以更有效的方式捕获各种尺度井盖特征的语义变化。
网络detect部分由3个输出特征层来决定最终的检测结果。在网络的neck部分,来自不同模型深度的特征经过融合以及上采样操作后,输出3个不同深度、不同大小的特征。对应网络resize(分辨率重构)后的输入图像大小为N,输出特征大小分别为N/8、N/16和N/32。
1)主干网络。在不同场景下采集到的影像受影像清晰度、路面光照强度、路面干燥程度和附带干扰物等因素影响,使得部分井盖没有被网络检测到。从网络设计来看,这是因为YOLOv5主干网络特征提取能力相对不足,在特征分辨上存在困难,从而导致了井盖和病害的漏检。在检测路面井盖病害时不仅要检测到井盖的位置,还要根据井盖和井盖周围路面的状态判断病害类别,这需要网络具有较强的特征提取能力。因此本文对YOLOv5主干网络基础模块BottleneckCSP进行了改进,提出了新的主干网络TAC3,并利用混合注意力机制增强网络对特征的提取能力。
如图3所示,本文提出的TAC3相对于YOLOv5原主干网络基本单元BottleneckCSP,标准卷积模块中的激活函数由Leaky Relu更换为Silu,改善了网络训练过程中梯度爆炸的问题。将分支中的卷积层修改为卷积归一化层,从而加速网络收敛,提升网络训练速度。为了加强主干网络对特征的提取能力,在输出特征前增加了triplet attention module[13](三重注意模块)。经过整个主干网络模块输出的特征图的大小与输入大小相同。
图3 TAC3(上)与BottleneckCSP(下)
三重注意模块不是从单一通道对特征进行处理,而是在计算注意力权重时捕获跨维度间的信息,结合通道注意力与空间注意力,在关注井盖病害视觉表面特征的同时,对井盖所处的空间位置表现更多的关注。三重注意模块结构如图4所示。三重注意模块有3个分支,给定一个输入特征图X,每个分支都可捕获来自H、W和C的任意两个维度之间的跨维度交互信息。
图4 triplet attention module
三重注意模块强调捕捉跨域交互的重要性,而不是单独计算空间注意和通道注意,这有助于获取丰富的区域特征表示。由于其结构简单而高效,在加入AT-YOLO的主干网络后,只是增加了微小的计算量,却可以有效增强网络提取到的特征中空间和通道维度上的特征,提升模型主干网络的特征提取能力,能够获取有代表性的特征表示。
2)convolutional block attention module。街景影像中包含许多干扰因素,包括地面文字标记、圆形交通标识和水渍等,这些地物在特征提取过程中会产生特征污染,导致检测井盖时出现误检测问题。另一方面,路面病害中的龟网裂、沥青横纵向裂缝及坑槽/洞等几类病害[14]的视觉表征与路面井盖的病害存在相似部分,这容易导致误检测问题。为减少背景因素影响而产生的误检测,本文在网络中添加注意力机制,通过对不同重要程度的特征分配不同大小的权重,弱化干扰特征,使网络模型更加专注于与路面井盖及其病害相关的特征,从而提升模型的检测精度。
本文采用的注意力模块是混合注意力CBAM,由通道注意力和空间注意力串联组成,该模块将通道注意图和空间注意图解耦以提高计算效率,并通过引入全局池化层来利用空间全局信息,CBAM结构如图5所示。CBAM有两个顺序连接的子模块,按顺序依次为通道注意力(channel attention model,CAM)与空间注意力(space attention model,SAM)。给定通道注意力模块输入特征图X∈RC×W×H,依次推断出1D通道注意力向量Sc∈RC和2D空间注意图SS∈RW×H。
图5 CBAM模块
通道注意力与空间注意力分别在通道维度和空间维度上对应学习注意的目标和位置[15],增加的模块通过学习强调与路面井盖有关的特征,抑制与井盖不相关的其他特征,有效地帮助信息在网络中流动。CBAM的加入使AT-YOLO网络相比于YOLOv5基础网络更有效地聚焦于目标对象及目标对象所处的位置,在一定程度上降低了影像中背景及其他物体对检测造成的干扰,减少了误检。
2 实验与结果分析
2.1 实验数据及实验设置
本文实验使用的影像均为移动数据采集车采集的影像,共计121 730张,包含辽宁省沈阳市及阜新市,共计240 km的路面影像,涵盖了商业街、林荫道等不同场景,图像大小均为3 200像素×1 800 像素。从中挑选出包含病害井盖的影像共计2 700张制作实验数据集。以往勾画样本标注框紧贴目标边缘,但本文在勾画井盖病害数据集时,使正常井盖标注框也包含周围一定范围内的路面,提供更多的信息以更好地判断井盖病害。破损井盖则是以井周破损路面区域的最大外接矩形为标注区域。实验将数据集划分为3个部分,训练集包含2 232幅图像,验证集包含254幅图像,测试集包含214幅图像。
由于训练集规模较小,模型只训练300个epoch,前5个epoch作为warmup_epochs。依据训练经验,将初始学习率设置为0.01,动量与重量衰减分别设置为0.937和0.000 5,batch size(批次)设置为2。
2.2 评价指标
以现有研究工作[16]作为参考,本文选取precision(精确率)、recall(召回率)和F1-score(调和平均值)作精度评价指标。precision表示检测结果中检测正确的比例,recall表示检测结果查全率,F1-score是准确率与召回率的调和平均数,综合了准确率与召回率两个指标,其取值范围为从0到1,1表示模型的检测结果最好,0表示结果最差。
2.3 实验与讨论
为了验证本文所提出的AT-YOLO网络在路面井盖及井盖病害检测上的优越性,本文在实验数据集上使用Retinanet[17]、Efficientdet[18]等目标检测网络进行了对比实验,具体的对比结果显示在图6中。
图6 对比模型精度对比
在图6的对比结果中可以看出,本文提出的AT-YOLO模型在总体上体现了最高的检测精度,对不同类别的井盖病害检测的具体精度略有不同。AT-YOLO在图6(a)全部井盖和图6(d)正常井盖中的检测结果整体优于其他网络,表明本文方法检测到的井盖更加全面,检测到的井盖正确率更高,且漏检情况更少。
在图6(b)检测塌陷井盖的精度对比中,本文方法在相比于其他方法取得了绝对领先。由于塌陷井盖在数据集实例中的占比较少,其他对比网络均出现了precision和recall相差悬殊的问题,说明其他的方法虽然检测到的结果准确率高,但检测到的塌陷井盖较少,漏检情况严重。本文方法的基础网络YOLOv5的综合精度高于其他网络,本文方法相比YOLOv5又有了进一步的提高,说明AT-YOLO在检测塌陷井盖方面取得极大的精度提升。
在检测出现井周路面破损的井盖方面,图6(c)显示本文方法检测结果中,precision和F1-score数值略低于SSD[19]、YOLOv4[20]等对比网络,recall指标与其他对比方法基本持平,但从整体检测来说AT-YOLO仍然是最优的路面井盖病害检测模型。出现这一情况原因在于,SSD、YOLOv4等模型结构较复杂且参数量较多,而AT-YOLO网络参数量更少,注重检测速度与精度的均衡。结果表明AT-YOLO能够检测出井周路面破损的井盖,检测井周破损病害的准确性还有很大的提升空间。
在不同的自然条件下进行检测可以验证模型方法的稳定性。针对本文检测的几种井盖病害,图7列举了上述实验的几种模型在大规模街景影像上的检测结果。
图7 对比模型效果对
模型在进行井盖病害检测时,不仅要检测影像中井盖是否存在,还需要根据井盖周围路面的表现状态及路面与井盖的位置关系来判定井盖类别。图7第一列展示了各实验网络对井周出现破损的井盖的检测结果,可以看出本文方法对该类问题具有很好的适用性。对比实验模型在检测图中井周出现破损时,只有SSD网络检测到了影像中井盖,但未获取准确的类别信息,并且出现了多个类别检测框。相比之下,AT-YOLO具有更强的特征提取能力,在检测到影像中井盖的同时也正确判断了井盖的分类。
在图7第2列对比图中,图中的右上方正常井盖颜色相比于路面颜色较深,与路面背景之间的光谱差异明显,所有网络均检测到了图中的正常井盖。但左下方出现塌陷问题的井盖由于覆盖尘土等杂物,只露出部分井盖。尘土的干扰使得井盖与路面背景极为相似,从而增加了检测难度。第3列中的井盖部分被绿化带遮挡,并且表面覆盖落叶等杂物,对比实验的网络模型均未检测到该井盖。由于AT-YOLO相比于其他网络的抗干扰能力得到了增强,减少了在特征提取过程中干扰地物造成的特征污染,本文方法很好地检测到了井盖的位置,并且预测框准确地贴合在井盖边缘。
第4列及第5列中的井盖均位于人行道内。井盖表面被斑马线白色涂料覆盖,这使得井盖与路面背景之间的光谱差异被减弱了,井盖与路面背景极为相似,白色涂料的存在对井盖周围的坑洼的识别也存在一定的干扰。从检测结果对比中可看出,即使井盖被涂料覆盖,本文方法也可以检测到对应特征,检测到了其他几种网络模型未检测到的井盖,并且准确地将其分类。
3 结束语
针对现有路面井盖分类体系不完备以及检测精度低等问题,本文基于YOLOv5,提出了一种路面井盖病害检测模型AT-YOLO,实现了街景影像中路面井盖病害的快速检测。在本文方法中,主要改进了网络模型的backbone部分,在网络backbone中应用不同的混合注意力机制,增强了网络的特征提取能力,并且减少由于背景信息干扰而引发的误检测。实验在自制数据集上进行,通过大量影像证明了本文方法相对于其他方法的优越性和稳定性,路面井盖病害整体检测精度达到93%以上。在未来的工作中,本文一方面将继续提升AT-YOLO模型对路面井盖病害的检测精度以及检测速度,另一方面将探究如何建立长效的路面井盖监管预警机制。