基于YOLOv4网络模型的临时道路识别算法
2022-08-08王浩东王立勇苏清华谢敏王超丁炳超
王浩东, 王立勇*, 苏清华,谢敏,王超,丁炳超
(1.北京信息科技大学,北京 100192;2.现代测控技术教育部重点实验室,北京 100192)
0 引言
随着传感器技术和人工智能的发展,无人驾驶技术已经成为国内外企业和科研机构的重点研究方向。为了解决道路交通的安全和效率问题,研究人员赋予车辆环境感知和自主决策控制能力,实现辅助驾驶甚至自动驾驶。在无人驾驶系统中,感知道路、障碍物和交通标识是进行决策和控制的基础[1]。
机器视觉能够提供丰富的颜色和纹理信息,尽管受光照、天气的影响可能会降低检测精度;但由于其成本远低于激光雷达(LiDAR),因此被广泛应用在自动驾驶领域中[2],如检测车辆、行人、道路和交通标志等。尉天成等[3]提出交通标志检测网络的锚盒框改进和优化方法,设计多分支卷积并联结构,使目标特征更加显著,提高FasterRCNN网络在不同环境和尺度下的识别效果。龙建武等[4]将车道线检测定义为像素分类问题,通过增加解码器分支和知识蒸馏思想,提升主流算法检测车道线的能力。
随着机器学习算法的不断发展,将机器学习与机器视觉技术相结合的研究也不断深入。基于神经网络的算法将目标检测问题转化为图像分类问题[5],由于其具有检测速度快、精度高、健壮性好等优点,因此近年来得到很大的发展。基于神经网络的目标检测算法可分为一阶段检测算法和两阶段检测算法[6]。两阶段检测算法分阶段进行目标定位和分类,主要包括FasterRCNN[7]、CPNDet[8]等算法,这些方法检测精度较高,但计算量较大。一阶段检测算法可直接识别图像中的目标类别及其位置,计算量较小,随着一阶段检测算法精度的提高,这种算法能够同时满足无人驾驶系统对精度和实时性的要求[9],主要包括You Only Look Once(YOLO)[10]系列、EfficientDet[11]等算法。2018年,Redmon等[12]提出目标检测算法YOLOv3,使用了特征金字塔和多尺度检测等方法,但是它的小尺寸目标检测性能较差。为解决这个问题,Wang等[13]于2020年提出YOLO系列算法Scaled-YOLOv4,改进了正、负样本的判定策略,提高小目标的检测性能,较好地平衡了检测速度和精度。
目前,对于具有车道标线和明显边缘特征的结构化道路,如高速公路和大多数城市道路,车道线检测算法已经取得良好的检测效果,但是针对在临时交通管制或突发路况下由交通锥桶构建的临时道路的检测研究则不多。交通锥桶体积小,位置不固定,所以检测难度较大。Zhou等[14]提出一种使用立体视觉系统获取交通锥桶位置的方法,通过对像素的RGB值进行归一化处理,以减少亮度不均匀对图像的影响,根据颜色特征确定候选交通锥桶位置,使用经过训练的AdaBoost分类器最终确定锥桶的位置,但是该方法受环境的影响较大,早晨、傍晚等光照条件下将无法工作。Kalms等[15]通过提取Haar特征和训练级联分类器,将Viola-Jones算法应用于交通锥桶检测,但这种基于特征的方法泛化性较差,动态环境、变化的光照条件都将导致检测失败。Huang等[16]通过融合激光雷达和视觉传感器的信息来检测交通锥桶。该算法首先通过单应变换算法将激光雷达数据中的障碍物映射到图像中作为候选区域,然后使用形状匹配方法确定候选区域是否为交通锥桶;但由于交通锥桶的尺寸小,激光雷达获取的交通锥桶点云较稀疏,因此可能无法识别到25 m以外的交通锥桶。Wang等[17]使用同时基于颜色和形状特征的方法检测交通锥桶,并将结果映射到深度图像以同时获得三维位置,但它需要手工设定颜色阈值以适应不同环境。Dhall等[18]提出一种基于深度学习的交通锥桶检测方法,训练一个YOLOv2网络检测交通锥桶,并训练一个卷积神经网络提取交通锥桶的关键点进行Perspective-N-Points(PNP)计算,获得其空间位置,但计算得到的空间位置误差较大,且同时运行2个神经网络算法对系统性能要求较高。
本文中提出一种临时道路检测算法,该算法使用YOLOv4模型检测彩色图像和深度图像中的交通锥桶,通过基于欧氏距离的边界框匹配方法,计算2种检测结果的匹配关系,同时获取交通锥桶的颜色和位置信息,最终完成临时道路的路径规划。建立一个交通锥桶数据集,包含彩色图像和深度图像,并人工对其中的交通锥桶进行标注。
1 材料和方法
1.1 实验车辆和交通锥桶
本文使用的实验车辆为一台长2.6 m、宽1.5 m、高1.65 m的方程式赛车,它由一台功率80 kW的直流电机和一块容量为14 A·h的直流电池驱动,车辆控制系统包括一台工控机(Intel i7-7700 CPU、NVIDIA GTX2060 GPU、16G RAM),一个车辆控制单元(vehicle control unit, VCU)和一套机器视觉系统,实验车辆和交通锥桶如图1所示。
图1 实验车辆和交通锥桶
交通锥桶包括红、蓝、黄3种颜色,锥体长度为200 mm,宽度为200 mm,高度为300 mm,中间有一条反射带。在本文中,红色和蓝色交通锥桶分别标记临时道路的左边缘和右边缘,黄色交通锥桶用于标记道路的起点和终点。
1.2 机器视觉系统
本文使用中科慧眼的Smart Eye B1机器视觉系统,如图2所示,该系统由4个6 mm焦距摄像头(2个彩色摄像头和2个单色摄像头)组成,水平视野为50°,机器视觉系统以12 FPS的速度输出分辨率为1 280×720像素的图像。2台彩色摄像机用于检测交通锥桶颜色,单色摄像机构成立体视觉系统,生成深度图像,用于获取锥桶位置信息。为了模拟驾驶员的视角,机器视觉系统被放置在头枕上方,距地面1.5 m。
图2 Smart B1机器视觉系统
2个单色摄像机构成的立体视觉模型如图3所示,建立世界坐标系O-XYZ和2个像素坐标系ol-x1y1和or-x2y2。空间点P(X,Y,Z)在相机坐标系的投影为点M(xl,yl)和点N(xr,yr),其中yl=yr。f是相机的焦距,b是左右摄像机之间的基线。
图3 立体视觉模型
根据三角形相似定律,X、Y、Z的值可通过式(1)、(2)计算。
(1)
(2)
深度图中每个像素点的值表示空间点与摄影机之间的距离。机器视觉系统生成的彩色和深度图像如图4所示。
(a)彩色图像
1.3 临时道路检测算法
本文提出基于Darknet深度学习模型框架的YOLOv4临时道路检测算法,该算法首先在彩色图像和深度图像中分别检测交通锥桶,并进行检测结果融合,实现交通锥桶颜色和位置的感知,随后进一步实现路径规划,临时道路检测算法流程如图5所示。
图5 临时道路检测算法流程
1.3.1 基于YOLOv4模型的目标检测算法
将机器视觉系统提供的彩色图像输入深度学习网络模型,获得交通锥桶的图像坐标、类别和置信度信息。YOLOv4网络的结构包括3个主要部分:骨干网络、颈部网络和头部网络,YOLOv4网络结构如图6所示。
图6 YOLOv4网络结构
CSPDarknet53是YOLOv4算法的主干网络,使用跨阶段部分连接(cross stage partial connection, CSP)网络结构,该结构在保持准确性的同时减少模型计算量。CSPDarknet53中的激活函数是Mish激活函数,如式(3)所示。
fMish=xtanh[ln(1+ex)]。
(3)
颈部网络包括空间金字塔池网络(spatial pyramid pooling, SPP)和路径聚合网络(path aggregation network, PANet)。SPP网络在CSPdarknet53的输出特征层上执行3次卷积运算,然后分别实现4种不同规模的最大池处理,其结构如图7所示。PANet网络接收3个特征图输入,包括一系列上采样和下采样,目的是特征的重复提取。
图7 SPP网络结构
头部网络生成预测结果。它输出3种尺寸的特征图,每个特征图被划分为尺寸为S×S的网格,每个网格预测3个边界框,以及边界框的4个调整参数、置信度和分类概率。
在训练过程中使用带有动量优化的随机梯度下降(stochastic gradient descent, SGD)算法。随机梯度下降的每次迭代使用一个或一批样本来更新参数,用于减少训练时间。梯度下降方向主要是之前累积的下降方向,但是略微偏向当前时刻下降方向。
1.3.2 检测结果融合算法
为了同时获取用于路径规划的交通锥桶颜色和位置信息,需要将2种图像的检测结果进行融合,本文提出一种根据边界框的欧氏距离关系的匹配算法。
彩色图像检测结果C包含检测到的每个交通锥桶的边界框Ci(xi,yi,wi,hi),xi、yi是边界框的左上角的坐标,wi、hi是边界框的宽度、高度,Pci(mci,nci)是边界框Ci的中心点。深度图像检测结果D包含每个检测到的交通锥桶的边界框Dj(xj,yj,wj,hj),Pdj(mdj,ndj)是边界框Dj的中心点,中心点的计算方法如式(4)所示。
(4)
式中:m、n分别为边界框的中心点;x、y分别为边界框左上角点坐标;w、h分别为边界框的宽度、高度。
在深度图像检测结果D中搜索具有最小欧氏距离dis(Pci,Pdj)并满足Pdj∈Ci的边界框Dj,将边界框Dj与边界框Ci匹配,视为同一个交通锥桶。如果未获得搜索结果,则匹配失败。欧氏距离计算方法如式(5)所示。
(5)
1.3.3 路径规划算法
彩色、深度图像中的交通锥桶完成检测后,将用于路径规划。在路径规划过程中,按照交通锥桶到车辆的距离对交通锥桶进行排序,并按颜色分类得到点集Mred、Mblue和Myellow。红色与蓝色交通锥桶之间的中点被计算为航路点Li,然后这些航路点连接起来,形成车辆的预期路径。设第i个交通锥桶的坐标为(xcolor_i,ycolor_i),航路点Li计算方法如式(6)所示。
(6)
式中α为经验常数。由于相机的视场角限制,因此在车辆转弯的过程中,可能仅有一侧交通锥桶出现在图像中,求解车辆与最近2个锥桶的中心点,根据图像中出现的交通锥桶的颜色将其平移距离为α,得到航路点。
2 数据集准备与网络训练
2.1 数据集准备
本文使用交通锥桶模拟常见的临时道路,在早晨、正午和傍晚多种光照情况下,共采集2 358张彩色图像,并在其中人工标记红色、蓝色和黄色交通锥桶,然后将该数据集随机分为训练集、验证集和测试集,分别包含1 697、425、236张图像(比例约为7∶2∶1)。同时,实验中采集的深度图像1 304张,由人工标记其中的交通锥桶,然后随机分为训练集、验证集和测试集,分别包含938、235、131张图像(比例约为7∶2∶1)。
2.2 彩色图像检测网络训练
在训练过程中,对图像数据进行随机的数据增强,包括角度旋转和HSV值变化,图像在[-5, 5]被随机旋转,并且HSV通道中的值被随机噪声化,用于色调、饱和度和亮度调整,H通道的值被随机施加[-0.05, 0.05]的倍数,S通道和V通道中的数据随机乘以或除以1.5。
训练过程中,使用不同的网络训练参数对比训练效果,包括批处理数量、图像分辨率和最大迭代次数等。彩色图像检测网络训练参数见表1。设置4组参数进行网络训练,第1组批处理数量为其他组的一半,第2组具有比其他组更高的图像分辨率,第4组的最大迭代次数为其他组的2倍。
表1 彩色图像检测网络训练参数
2.3 深度图像检测网络训练
深度图像检测网络训练与彩色图像检测网络训练类似,区别在于数据增强和一些网络参数设置。由于深度图像只有一个通道用于存储深度数据,因此没有HSV变换操作,原始图像在[-5, 5]度内随机旋转仅用于增强数据。深度图像检测网络训练参数见表2。
表2 深度图像检测网络训练参数
3 实验结果与分析
3.1 基于彩色图像的交通锥桶检测实验
为了验证该交通锥桶检测算法的效果,在自行构建的交通锥桶数据集中进行测试。使用平均精度(average precision, AP)[19]、平均精度均值(mean average precision, mAP)[19]和平均耗时对目标检测网络进行性能评估,并分析训练参数对交通锥桶检测结果的影响。
彩色图像检测网络训练结果见表3,彩色图像检测结果如图8所示。从表3可见,第3组训练参数获得最均衡的效果,第3组在训练集和验证集中的mAP略小于第4组的,但第3组在测试集中获得最大的mAP值,达到93.48%,并且对红色和黄色交通锥桶取得最大的AP值,说明更大的迭代次数没能增加网络的泛化能力。除黄色交通锥桶的AP值外,第3组的各项指标均大于第1组的,说明更大的批处理数量可提高网络的预测精度。虽然第2组的mAP值最大,但第3组推理耗时相比第2组减少39.31%,平均为36.34 ms,更小的图像分辨率适合应用于车载部署,因此最终选用第3组参数。
表3 彩色图像检测网络训练结果
(a)场景1检测结果
由于当前缺少可进行性能对比的开源交通锥桶数据集,因此在自建的交通锥桶数据集上比较了不同模型的性能,使用第3组网络训练参数,对YOLOv4、YOLOv3、YOLOv4-tiny、YOLOX-L网络进行训练,训练结果见表4。
表4 不同网络模型训练结果
YOLOv4取得mAP最高的彩色图像交通锥桶检测结果,达到93.48%,且推理耗时少于YOLOv3,平均单帧检测时间为36.34 ms,说明CSP结构有利于进行更好的特征提取,提高了小目标的检测效果。YOLOv4-tiny推理时间仅为4.97 ms,但在测试集中的mAP仅为78.54%,说明YOLOv4-tiny不能充分地提取和融合交通锥桶的特征,不能满足车辆行驶过程中环境感知的精度要求。YOLOX-L取得的mAP为90.66%,说明anchor-based类型的YOLOv4对于小目标的检测性能更好。而YOLOX使用的anchor-free机制使特征图中的每个网格仅预测一组边界框的位置及宽高,造成了YOLOX在密集场景下的性能下降,因此选用YOLOv4检测彩色图片中的交通锥桶。
3.2 基于深度图像的锥桶检测实验
由于深度图中只有“cone”标签,因此统计4组参数在训练集、验证集和测试集的AP值,统计结果见表5。
表5 深度图像检测网络训练结果
检测结果如图9所示,第3组训练参数获得最均衡的效果。第3组在测试集中的AP值达到97.89%,高于第1组但略低于第4组,但第3组的训练时间仅为第4组的一半。第2组的AP值最高,但第3组推理耗时相比第2组减少42.34%,仅为22.67 ms,因此最终选用第3组参数。
(a)场景1检测结果
使用第3组网络训练参数,基于本研究建立的数据集分别训练YOLOv4、YOLOv3、YOLOv4-tiny、YOLOX-L,训练结果见表6。
表6 不同网络模型训练结果
YOLOv4取得最好的深度图像交通锥桶检测结果,AP值达到97.89%,平均推理时间为22.67 ms。YOLOv4在各数据集中的AP值均大于YOLOv3的,且平均推理时间减少19.11%;在测试集中,YOLOv4的AP值比YOLOv4-tiny的大21.05%,因此YOLOv4-tiny可能会出现漏检和错检问题,不适用于实时的临时道路识别算法。YOLOX在测试集中的AP为90.63%,低于YOLOv4和YOLOv3结果,由于数据集中仅包含“cone”标签,因此anchor-free机制造成的漏检问题是影响AP值的主要原因,因此选用YOLOv4检测深度图片中的交通锥桶。
3.3 结果融合算法和实车实验
得到彩色图像和深度图像的检测结果后,在测试集中进行匹配实验测试,统计得到的匹配成功的交通锥桶占总锥桶数的85.04%。匹配失败的主要原因为数据传输延迟不稳定,导致周期性的匹配失败。
使用交通锥桶构建临时道路,红色交通锥标记道路的左边缘,蓝色交通锥标记道路的右边缘,黄色交通锥用于标记起点和终点。临时道路宽约3 m,相邻2个同色交通锥之间的距离约4 m,包含20 m直道和一段转弯半径为8 m的直角弯道。根据彩色图像得到的颜色信息和深度图像得到的三维位置信息,进行路径规划,结果如图10(b)所示。
(a)彩色图像检测结果
在该临时道路上,实验车辆以10 km/h的速度匀速行驶,机器视觉系统每秒捕获12帧彩色和深度图像,通过对彩色图像和深度图像的检测结果进行匹配,成功地得到交通锥的颜色信息和三维位置信息,如图10(b)所示。彩色图像和深度图像中交通锥桶的均检测时间分别为36.34、22.67 ms,结果匹配和路径规划的平均时间为2.69 ms,所以处理一帧相机数据的总时间成本约为61.70 ms,小于图像捕获间隔83 ms,满足实时处理的要求。约30 m的检测距离可以满足测试车辆在当前速度下的行驶安全性。
4 结论
本文中提出一种融合彩色相机和深度相机信息的临时道路识别算法,用于识别由交通锥桶标识的临时道路,在实车实验中规划出车辆的运动路径,论文得出的主要结论如下:
① 使用YOLOv4机器学习模型构建的交通锥桶识别算法,识别交通锥桶的mAP和AP分别可达93.48%、97.89%,单帧平均检测时间分别约为36.34、22.67 ms,在识别彩色图像和深度图像中实时得获得的结果比YOLOv3、YOLOv4-tiny模型结果更为精确、稳定。
② 提出的基于边界框欧氏距离的匹配算法,可将彩色和深度信息进行融合,匹配成功率可以达到85.04%,提升了交通锥桶感知的精度、速度和鲁棒性。
③ 建立的交通锥桶数据集,包含多种环境、光照条件下的彩色图像和深度图像和人工标注,可有效用于深度学习模型进行交通锥桶检测的训练和验证。