1. 引言
随着城市化进程的加速和道路建设的不断推进,道路安全问题日益受到关注,其中道路损伤问题尤为突出[1]。道路损伤不仅影响行车安全,还可能导致道路使用寿命的缩短。因此,对道路损伤进行及时、准确的检测与识别,对于保障道路安全、提高道路维护效率具有重要意义。传统的道路损伤检测方法主要依靠人工巡查,这种方法不仅效率低下,而且容易受到人为因素的影响,导致检测精度不稳定[2]。近年来,深度学习技术的快速发展为道路损伤检测提供了新的解决思路。
深度学习作为人工智能领域的一个热门研究方向,已经在图像识别、目标检测和分割等方面取得了显著进展。特别是在图像处理领域,深度学习技术能够自动从数据中学习特征和规律,表现出强大的特征提取和分类能力。基于深度学习的目标检测算法,如卷积神经网络(CNN)、YOLO和Faster R-CNN等,已经在多个领域取得了成功应用。这些算法通过构建复杂的神经网络模型,能够高效地实现目标的定位和分类,为道路损伤检测提供了新的技术手段[3]。将深度学习技术应用于道路损伤检测,可以实现对损伤的自动化、高效、精确检测。通过构建和优化深度学习模型,可以实现对道路损伤的自动识别和定位,提高检测效率和准确性。此外,深度学习技术还具有强大的泛化能力,能够适应不同光照条件、复杂背景和不同损伤形态的检测需求[4]。因此,基于深度学习的道路损伤检测算法具有广阔的应用前景和重要的研究价值。文章[5]提出了一种改进YOLOv8n的道路损伤检测算法,解决了传统的YOLOv8n应用于目标检测的难题,提出BOT结构全面提取道路损伤图像的全局特征信息和局部特征信息,提高了道路裂缝检测精度。针对无人机道路损伤图像中目标尺寸较小导致的漏检问题,文章[6]提出了一种YOLOv8-RDD模型,实现了对无人机道路损伤6种类别的有效检测,并提高了检测精度。针对道路裂缝的多样性和复杂性,文章[7]提出并实现了一种YOLOv8-RDD算法,通过将模型C2f模块结合DCN模块实现多尺度目标检测能力,添加CA注意力机制更好地完成了特征提取,设计的SPPF_GS模块更好地捕捉长距离依赖,定位裂缝位置。文章[8]提出了一种改进YOLOv8的道路损伤检测算法,通过引入动态蛇形卷积,以自适应聚焦于细小而曲折的局部特征,另外在每个检测头前引入高效多尺度注意力模块,实现跨维度交互,提升对复杂全局特征的泛化能力。
综述所述,基于深度学习的目标检测技术已经在道路损伤任务中得到应用,尤其是YOLO系列的目标检测算法,但是目前应用最多的依然是YOLOv8算法,相比于YOLOv8算法,最新提出的YOLOv10算法采用了更先进的卷积神经网络架构,提高了物体检测的精确度,同时通过优化算法保持了较快的速度,具有更好的抵抗噪声、遮挡和小目标检测的能力。本文旨在以YOLOv10算法结构为基本框架,并提出一些改进措施,使改进后的算法更适用于实时的道路损伤检测。本文的研究将为道路维护和管理提供智能化支持,有助于提高道路维护效率,保障行车安全,具有重要的现实意义和应用价值。
2. 总体方案
2.1. YOLOv10网络结构
YOLOv10,作为YOLO (You Only Look Once)系列算法的最新成员,由清华大学于2024年5月隆重推出[9]。这一算法专为实时目标检测设计,旨在解决前代算法在后处理及模型架构上的局限,进一步提升了检测速度与精度,非常适合自动驾驶、实时视频分析及智能医疗等应用场景。
YOLOv10的网络架构如图1所示,包含三大关键部分:骨干网络(Backbone)、颈部结构(Neck)及检测头(Head)。骨干网络采用增强的CSPNet结构,能够有效地提取图像特征,优化梯度流并减少计算量。颈部结构则采用PAN结构,可以实现多尺度特征的高效融合。预测头部分设计了一对多检测头和一对一检测头,前者在训练阶段提供丰富的监督信号,后者在推理阶段确保低延迟与高精度,无需非极大值抑制(NMS)操作。YOLOv10的创新之处在于其独特的训练策略与模型设计。首先,采用无NMS的一致双分配训练策略,包括一对一与一对多分配,通过一致匹配度量确保两个分支的预测感知匹配,减少训练期间的监督差距。其次,模型设计注重效率与精度的平衡,通过轻量化分类头、空间–通道解耦下采样、基于秩的块设计、大核卷积及部分自注意力(PSA)等技术,实现高效特征提取与模型优化,同时降低计算复杂度与内存占用。
2.2. 改进方案
1) 可逆列网络结构
可逆列网络结构的思想是由文章[10]提出的,RevCol的主要思想是通过构建多个子网络单元(即“列”),并利用多级可逆连接,打破传统网络的信息流动模式,实现高效的模型训练与应用。这种网络结构的设计旨在减少计算中的信息丢失,允许在网络之间高效地来回传递信息,而无需额外的内存成本。
可逆列网络的结构如图2所示,它包含了两种数据传递形式:正向传播和逆向传播,其计算过程如公式(1)和公式(2)所示。
(1)
(2)
其中,
表示的是第
个模块的输入数据,它是由前面
个模块数据的相互作用产生的,
表示任意非线性操作,类似于标准ResNets中的残差函数,
是一个简单的可逆操作(例如通道缩放),它的逆用
表示。
Figure 1. Network structure of YOLOv10
图1. YOLOv10网络结构
Figure 2. Reversible column network structure
图2. 可逆列网络结构
在可逆网络中,每一列的最低级别因为接近输入而保持低级的数据特征信息,而最后一列的最高级别是高度语义的,因为它直接与监督相连。因此,在列之间的传播过程中,不同层级的信息逐渐被更加有效地融合,一些特征图的语义信息越来越丰富,这种结构带来了许多潜在的优势,例如,对于依赖于高级和低级特性的下游任务更灵活。
2) 重构骨干网络
目前,常见的深度学习网络模型通常都是在颈部结构中采用将不同尺寸的特征图进行融合的机制,而在骨干网络结构中一般没有多尺度信息融合的机制,只是简单地采用纵向数据传递的方式将数据送入颈部结构进行特征数据融合。可逆列网络创新地提出了一种横向的数据传递方式,它使得深度学习网络模型能够在横向的维度进行数据特征融合,更好地获得图像里的语义信息,对于目标分类和检测任务有着重要的意义。
本文采用可逆列网络的思想重构YOLOv10的骨干网络,以增强网络的特征数据融合能力,提升对
Figure 3. Network structure of proposed algorithm
图3. 本文所提算法的网络结构
道路损伤目标的检测能力,重构后的网络结构如图3所示。本文改进后的算法称之为RevCol-YOLOv10算法,该算法主要在骨干网络结构中采用了2列可逆列网络结构,这种两列可逆列网络结构可以在横向维度进行特征数据融合。横向的特征数据融合主要是通过两种方式实现的,如图3所示的骨干网络部分中的粉色线和绿色线表示的,粉色线表示的同级别的相同尺度的特征数据融合,而绿色线表示的是不同级别的不同尺寸的特征数据融合,为了保证数据融合时特征图像尺寸大小相同,绿色箭头的数据传输过程中包含有上采样操作。
可逆列网络结构的最大优势是实现了特征数据在骨干网络中的横向融合,但是显而易见的缺点是增加了网络的复杂度、参数量和计算量。可逆列网络有一个重要参数——列数量,这是一个自由度很高的参数,可以根据实际网络的需求灵活地设置,列数量的增加能够增强网络的横向数据融合能力,但是却大大地增加了网络的复杂度。为了避免网络的复杂度增加得过高,本文没有将可逆列网络的列数量设置得过大,仅设置为2。由于两列的可逆列网络结构增加了一定的复杂度,为了尽量弥补这一不利影响,本文对每列纵向传播通道中的数据进行了降维处理,如图4所示。在原始的YOLOv10的骨干网络中,其纵向传播通道包括4个C2f模块,每个C2f模块按照从上到下的顺序所对应的图像数据尺寸分别为128 × 128、256 × 256、512 × 512和1024 × 1024,而重构后的两列可逆网络结构在数据进入第一行C2f模块之前,先经过Mean-Pooling模块进行平均池化,将输入图像的尺寸缩减为原来的一半,因此重构后的骨干网络中四行C2f模块所对应的图像尺寸分别为64 × 64、128 × 128、256 × 256和512 × 512。之所以进行如此改进的原因是:由于重构后的骨干网络比原始的YOLOv0骨干网络多了一列,使得重构后的骨干网络大大增强了数据融合和特征提取的能力,因此可以通过减少纵向输入图像的尺寸,适当降低每一列的数据融合和特征提取能力,更重要的是这样改进能够大大地降低整个网络的参数量和计算量。
Figure 4. Dimensional reduction processing of longitudinal data
图4. 纵向数据降维处理
3. 仿真实验与结果分析
3.1. 实验数据集
GRDDC 2020数据集是从印度、日本和捷克三个国家收集的道路图像数据,用于道路损伤检测的挑战赛[11]。该数据集是2020年发布的,作为当年全球道路损伤检测挑战赛的一部分。该数据集的样本数量:共包含21,041个样本,其中捷克2829个、印度7706个、日本10,506个。该数据集一共包含10类道路损伤类型,分别是d00 (纵向损伤)、d01 (纵向拼接缝,d0w0 (错误标签)、d10 (横向损伤)、d11 (横向拼接缝)、d20 (龟裂)、d40 (坑洞)、d43 (十字路口模糊)、d44 (井盖)、d50 (白线模糊)。
GRDDC 2020原数据集有21,041个图像,但是有标注标签的只有14,569个,本文将这14,569个数据按照训练集:验证集:测试集比例为7:1:2进行划分,包括10,198张训练集图片、1457张验证集图片和2914张测试集图片。图5中展示的是该数据集中的部分代表性图像,直观呈现了多种类型的道路损伤情况。
Figure 5. Dataset images
图5. 数据集图片
3.2. 仿真实验
通过仿真实验来验证本文算法的性能,具体的实验参数如表1所示。
本文所提算法的训练过程如图6所示,在训练过程中可以看到,随着迭代次数epoch的增加,分类损失clc_loss、预测框损失box_loss和分布特征损失dlf_loss都在不断降低,而预测精度precision、召回率recall和全类平均正确率mAP都在不断上升,最后达到收敛。在训练过程中,由于设置了早停参数,即在100个epoch中性能都没有得到提升,则会提前结束训练,所以实际的训练过程在470个epoch左右。
Table 1. Experimental parameters
表1. 实验参数
参数名 |
参数值 |
训练集图片 |
10,198 |
验证集图片 |
1457 |
测试集图片 |
2914 |
epoch |
600 |
学习率 |
0.01 |
batchsize |
32 |
优化器 |
SGD |
Figure 6. Training procedure of proposed algorithm
图6. 本文所提算法的训练过程
为了验证本文所提算法的性能,我们将本文所提算法与YOLOv10算法在检测精度和复杂度两方面进行了对比,对比结果如图7和表2所示。从图7中可以看到,本文所提算法在检测精度上与YOLOv10算法差别不大,对全类型的检测精度mAP50仅仅降低了2%左右(0.56→0.54),在某些道路损伤情况上,如D20、D40和D43,本文所提算法的检测精度甚至高于YOLOv10算法。
为比较两种算法的复杂度,以参数量(Parameters)、梯度计算量(Gradients)和每秒10亿次浮点运算数(Giga Floating-point Operations Per Second, GFLOPs)作为评估指标。从表2中可以看到,与YOLOv10算法对比,本文所提算法在上述的三个指标中都有大幅度的下降,其中Parameters降低了17.6%,Gradients降低了17.7%,GFLOPs降低了23.9%。因此本文所提算法能够大幅度地降低YOLOv10的参数量与计算量,大幅度地降低算法的复杂度。
图8显示的是本文所提算法在测试集上的一些测试情况,从图8中可以看到本文所提算法能够准确地识别出横纵向裂缝、拼接缝、龟裂、井盖、白线模糊等不同的道路损伤情况。对于同一张图像中的多个不同类型的道路损伤目标,本文所提算法都能准确地识别。
(a) YOLOv10检测精度 (b) 本文所提算法检测精度
Figure 7. Comparison of the algorithm detection accuracy (mAP50)
图7. 算法检测精度对比(mAP50)
Table 2. Comparison of the algorithm complexity
表2. 算法复杂度对比
模型 |
Parameters |
Gradients |
GFLOPs |
YOLOv10n |
2299264 |
2286448 |
6.7 |
本文所提算法 |
1893696★ |
1880880★ |
5.1★ |
Figure 8. Testing situation of the proposed algorithm
图8. 本文所提算法的测试情况
4. 结论
本文提出了一种基于改进YOLOv10的道路损伤检测算法,主要用于车载设备对道路损伤情况的自动检测。本文的主要工作是重构了YOLOv10的骨干网络,设计了两列的可逆列网络结构,该结构使得骨干网络具备了横向维度的数据融合能力,增强了整体网络对目标特征信息的提取能力。可逆列网络结构的弊端是增加了网络的复杂度,带来额外的参数量和计算量,为了解决这一问题,本文对骨干网络的纵向输入图像的尺寸进行了降维处理,通过平均池化操作将图像尺寸缩减为原来的一半,从而大大降低了参数量和复杂度。实验结果表明,在GRDDC 2020数据集上,本文所提算法与YOLOv10算法相比,检测精度略微下降,降低了2%,但是在复杂度方面却能大幅度地降低参数量和计算量,大约有20%左右的提升,因此本文所提算法在一些存储空间有限、运行能力较差的移动终端上更有竞争力和实际应用价值。
基金项目
贵州交通职业大学2024年度校级科研项目:基于深度学习的交通多目标实时检测算法研究(2024YB02ZK)。省级科研平台项目资助(黔科合平台人才-CXTD [2021] 008)。贵州交通职业大学高层次人才科研启动基金项目:复杂交通环境下的多目标检测研究(KYQD2022004)。