湖北汽车工业学院,湖北十堰 442002
摘要:锥桶的实时检测可以为赛车完成八字绕环测试、直线加速测试和高速循迹测试的路径规划提供赛道依据,赛车比赛时处于高速工况,如何快速且准确地检测识别锥桶并输出有效信息对于无人驾驶方程式赛车至关重要。本文采用了目前主流的基于深度学习目标检测YOLO V4算法对锥桶进行实时检测,使用摄像头能够实时检测锥桶的颜色并输出锥桶的坐标信息,将单目测距原理运用到YOLO V4算法当中,可以输出锥桶的距离信息。将锥桶的坐标信息和距离信息进行数据融合,以便更好地分辨锥桶的坐标,通过德劳内三角剖分算法求得中心坐标生成可行驶轨迹。实验验证表明,本研究所采用的目标检测与轨迹生成算法是可行的。
关键词:目标检测;YOLO V4;锥桶;单目测距;轨迹生成
1引言
在大学无人驾驶方程式赛车的环境感知模块中,经常利用激光雷达和摄像机联合对目标锥桶进行检测。激光雷达价格昂贵,对目标种类识别能力较差,因此目前常用的传感器是摄像头对锥桶进行检测。此外,随着GPU快速发展和CNN[1]的出世,深度学习已广泛应用于各个工程实践领域,对于大学生无人驾驶方程式赛车而言,如何利用深度学习准确快速地识别锥桶是方程式赛车完赛的关键。
目前常用的深度学习目标检测算法主要分为两类:一类是基于候选区域,又称为双阶段目标检测算法,其将目标检测流程分为两个阶段如图1所示。第一阶段是生成候选区域,第二阶段是根据生成的候选区域的特征进行目标的分类和定位,该类算法主要以R-CNN、Fast R-CNN和Faster R-CNN等为主要代表;第二类是基于思想回归,又称为单阶段目标检测算法,目标检测的过程图如图2所示,该种算法的优势在于直接对预测的目标物体进行回归[2],该算法代表主要有YOLO和SSD。一般来说,two-stage目标检测算法相比于single-stage目标检测算法,其在检测精度方面有优势,但劣势在于检测时间较长。为了让该无人方程式赛车更快更准确的检测到赛道上的锥桶,本文将采用融合了各种优秀的网路设计和训练思想的YOLO V4的目标检测算法[3]。
图1 双阶段目标检测算法图 图 2 单阶段目标检测算法
2 YOLO及其改进算法
2020年4月Alexey等人提出了YOLO V4[5]算法,并且得到了YOLO原作者的认可。该目标检测算法引入了BOF、BOS以及全新的训练和检测方式。YOLO V4的网络结构如图3,主要针对目标检测模型中的骨干、颈部和损失函数进行修改。在骨干方面的改进主要是加入一些层可以将不同时刻的特征进行融合,同时在YOLO V3的基础上Darknet-53作为Backbone网络加入CSP有了全新的骨干网络CSPDarknet-53,SPP作为附加模块有利于卷积操作,而CSP的加入可以使网络的特征提取能力增强,同时可以使系统进行对象检测的效果得到提升。其次在颈部结构中,使用了全新的激活函数leaky-ReLU,它可以将神经网络自动标准化,不会使内存增加,可以大大提高检测速度。至于训练和检测的方式,采用改进的空间注意模块和改进的路径聚合网络,不仅提高了训练的速度还可以提高小物体的检测效果。
图3 YOLO V4网络结构图
3 改进YOLO V4锥桶检测实现
3.1 训练步骤介绍
前期锥桶数据集制作完成以后,开始根据锥桶的类别开始修改配置文件。其中包括:voc.data、voc.names、yolov4-train.cfg文件,其中voc.data需要根据标签的类别修改classes、训练数据的路径、测试数据的路径、便签名文件的路径以及权重文件保存的路径;voc.names为标签名文件,将该实验的标签名:red-cone、blue-cone、yellow-cone以txt格式保存到此文件;最后根据标签的类别、防止过拟合和计算机的显存能力等数据修改yolov4-train.cfg文件,具体修改参数如表3.1所示:
表3.1 yolov4-train.cfg修改参数
参数 | 描述 | 修改依据 数值 | | | ||
batch | 每次迭代要进行训练的图片数量 | 计算机显存 | 16 | | ||
subpision | 子batch | 计算机显存 | 8 | | ||
width | 输入图像的宽度 | 计算机显存 | 416 | | ||
height | 输入图像的高度 | 计算机显存 | 416 | | ||
decay | 权值衰减 | 防止过拟合 | 0.0005 | | ||
learning-rate | 初始学习率 | 学习率以 0.01-0.001为宜 | 0.001 | | ||
max_batches | 最大迭代次数 | classes*2000 | 6000 | | ||
steps | 学习率变化时的迭代次数 | max_batches*0.8、max_batches*0.9 | 4800、5400 | | ||
filters | 输出特征图的数量 | (classes+5)*3 | 24 | | ||
classes | 标签种类 | 三种颜色锥桶标签 | 3 | |
3.2 YOLO评价指标
目标检测模型的优劣需要不同的评价指标去评价。而目前主要有召回率(Recall)、交并比(IOU)、精确率(precision)、平均精确度(Average Precision,AP)、均值评价精确度(mean Average Precision,mAP)、P-r曲线等等评价指标
recall值是指每个标签被正确分类的概率,该值越大,说明目标检测模型的分类效果越好。IOU值表示系统检测数的目标先验框与目标实际框之间的重合度,该值越大,目标检测的定位效果越好。P-r曲线与横纵坐标围起来的面积即为平均精度值。一般来说 P-r曲线与横纵坐标围起来的面积越大,平均精度的数值就越大,该目标检测的分类效果越好。mAP值是多个标签AP的平均值, mAP值越大,目标检测模型的效果越好。
4相机标定及单目测距原理
基于单目摄像头的测距的基本原理图如图4所示。摄像头焦距f,锥桶的像素高度bh和宽度bw,锥桶的实际高度H和宽度W,锥桶与摄像头的距离L。这些元素构成了相似三角形,根据比例关系可求得锥桶距离摄像头的距离。摄像头的焦距是未知的,由上相机标定已求出该摄像头的焦距。
图4 单目相机测距原理
通过改进YOLO V4算法将距离信息进行输出,结果如图5所示。
图5 检测锥桶及显示距离效果图
5轨迹生成
5.1锥桶坐标与距离进行数据融合
由YOLO的检测原理可知,YOLO进行目标检测时会输出目标的类别、置信度、坐标以及框的宽度和高度信息。通过将单目测距原理应用到YOLO V4当中,会输出目标与离相机的距离信息。将锥桶的坐标信息和距离信息进行数据融合,以便更加精确地分辨锥桶的坐标,具体的效果图如图6所示。
图6 锥桶检测的坐标与距离数据融合效果图
5.2德劳内三角剖分算法
锥桶的坐标与距离进行数据融合后,可以更加精确地分辨锥桶的坐标。锥桶的坐标可以保存在txt文本中,利用算法可以从txt文本中分辨出距离摄像头最近三个锥桶的坐标,根据德劳内三角剖分算法可以得到三个锥桶外接圆的圆心坐标,往复下去,多个三角形的外接圆圆心即可生成可行驶轨迹。原理图如图7所示。
图7 轨迹生成原理图
6结论
本文提出了一种改进的YOLO V4的目标检测算法对锥桶进行检测,通过K-means聚类分析重新计算锥桶先验框的大小,相较于原检测算法的mAP值可以达到99.981%,提高了0.371%。同时相机标定获得焦距,将其运用到单目测距中求得锥桶与相机的距离。将锥桶的坐标与距离进行数据融合,以便更好地分辨锥桶的坐标,此坐标值通过德劳内三角剖分算法可以得到可行驶期望轨迹。本文提出的YOLO V4算法,仅仅借助纯视觉方案不仅大大提升锥桶检测的准确度,而且还获得可行驶期望轨迹,有效降低了大学生无人驾驶方程式赛车的硬件成本。
参考文献
[1] Lecun Y,Bottou L,Bengio Y,et al . Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE,1998,86(11):2278-2324
[2]罗会兰,陈鸿坤.基于深度学习的目标检测研究综述[J].电子学报,2020,48(06):1230-1239.
[3] Redmon J , pvala S , Girshick R , et al. You Only Look Once: Unified, Real-Time Object Detection[J]. IEEE, 2016.
本项目受2021年湖北汽车工业学院大学生创新创业训练计划项目(DC2021062)、2021年湖北汽车工业学院大学生创新创业训练计划项目(DC2021069)资助。
- 4 -