APP下载

FSAC赛车融合感知算法研究

2023-11-15兰建平郭文韬杨亚会张友兵叶子恒董冯雷

重庆理工大学学报(自然科学) 2023年10期
关键词:激光雷达赛车测试

兰建平,郭文韬,杨亚会,张友兵,叶子恒,董冯雷

(湖北汽车工业学院 汽车工程师学院,湖北 十堰 442002)

0 引言

近年来,随着计算机软硬件技术的迅速发展,各种人工智能算法加速落地应用,在汽车行业,智能化和网联化成为汽车发展的新方向[1]。相对于传统汽车,智能网联汽车增加了环境感知、路径规划、决策控制等软硬件系统,能够在无人或少人干预的情况下实现自主驾驶。为推动智能网联汽车发展,培养智能网联汽车相关产业人才,中国汽车工程学会于2017年创办了第一届无人驾驶方程式大赛。无人驾驶方程式赛车以电动方程式赛车为基础,通过对赛车进行线控改装[2],并配备各类智能传感器及人工智能算法来实现赛车的无人驾驶功能,其中环境感知系统是无人驾驶赛车能否实现的第一步,获取准确的周围环境信息是无人驾驶的保障[3]。多传感器融合环境感知已成为众多学者研究的热点问题。

国内外学者对无人驾驶的目标检测算法进行了大量研究,单一传感器由于自身局限性,难以涵盖所有场景和需求,因此,在实际应用中,往往采取多传感器融合来解决这些问题。Chen等[4]提出一种基于多视角融合的三维目标检测算法,通过将传感器获取到的不同类型数据进行融合,实现对车辆的精准定位、跟踪和预测;Ku等[5]提出一种基于激光雷达和摄像头等不同类型传感器的目标检测算法,通过神经网络模型实现对车辆周围环境中物体的准确识别,但资源占用较大,难以保证实时性;王华东等[6]在融合过程中,使用传统算法进行锥桶颜色识别,但受光线影响较大,需要不断调节相机的曝光时间,不利于多场景下的部署;Huang等[7]提出的基于原始点云与图像进行融合的目标检测算法,在图像方面取得了不错的效果,但仍然存在一些限制,在非高斯白噪声和捕获复杂背景情况下可能会影响结果准确率;Dhall等[8]提出利用关键点回归算法和取交集融合算法,获取锥桶的颜色和位置,但结果的可靠性偏低,需要进一步提高。

FSAC赛车感知系统的目的是获得锥桶的准确位置和颜色,从而确定赛道边界,为之后的规划决策提供准确的边界信息。通过对FSAC感知融合算法的研究,利用激光雷达和相机设计并实现锥桶目标检测算法,以解决复杂赛场环境中的锥桶检测问题。

1 激光雷达锥桶检测算法

FSAC赛道障碍物均为锥桶,针对该目标对象设计了基于激光雷达的锥桶检测算法,其流程如图1所示。

图1 激光雷达锥桶检测算法流程框图

1.1 感兴趣区域确定

根据八字绕环、直线加速、高速循迹赛道和激光雷达在赛车上的安装位置,确定激光雷达的扫描范围,以激光雷达中心作为坐标系原点,对3个扫描方向进行限制,获得对应赛道的感兴趣区域(region of interest,ROI),保留有效激光点云,减少点云数量,从而提升后续检测效率。

根据特定场景设定点云的ROI,去除由于设备精度或环境因素造成的噪声点或离群点,以降低点云的数据量[9],针对不同赛道将ROI划分为3个集合区域,具体设置为:

Z∈[εz-,εz+]}

(1)

式中:i∈[0,1,2],Fi为高速循迹赛道截取第i个感兴趣区域内的点云数据集合;δi∈[10i,10(i+1)]为ROI;I为输入点云数据集合,(X,Y,Z)∈I,最终确定各个赛道的ROI如表1所示。

表1 ROI范围 m

1.2 体素网格滤波

获取ROI后,对于赛道锥桶目标检测来说,数据量还很庞大,后续处理将会消耗大量的算力资源,因此还需要对点云数据进行滤波处理。

采用体素滤波对点云进行降采样。体素滤波又称为体素栅格法,是一种常用的降采样方法,其优点是计算效率高、采样点均匀。该方法首先按照预先设定的3D体素网格的大小对整个点云建立轴向包围盒,计算每个3D体素网格的重心并作为该体素网格的采样值,因此滤波前后的点云密度和点云数量由设置的3D体素网格大小决定。局部体素网格如图2所示。

图2 局部体素网格示意图

将各个方向的3D体素网格尺寸设置为l,以此计算网格与激光点的对应关系,设点云中某点坐标为(x,y,z),由式(2)得出网格编码(a,b,c)。

(2)

设置激光点云总数为A,进而由式(3)求得各个网格的中心坐标(xcenter,ycenter,zcenter),对该帧所有点云进行计算,从而获取每个网格与激光点云每个点的对应关系,完成体素滤波。

(3)

1.3 RANSAC地面剔除算法

为进一步减少激光点云数量,需要剔除地面点云数据,地面点云的分布可定义为平面模型,采用随机采样一致性(random sample consensus,RANSAC)算法拟合平面模型[10]。

从体素滤波输出的点云中选取3个点,通过选取的点绘制一个平面,设定一个误差允许值,记录该范围内的所有点云数目,并重复该步骤。

设迭代次数为k,选取内点数目为n,由式(4)计算属于内群点的概率为α。

(4)

由于并不确定α是多少,n个点中含内群点的概率为αn,其中n个点中含内群点中至少一个不是内群点的概率为1-αn,进行k次迭代之后,不含离散点的概率为(1-αn)k,拟合成功后的概率为p,由式(5)计算可得。

p=1-(1-αn)k

(5)

通过k次迭代后,获取包含点最多的平面,完成平面拟合,获取地面剔除后的点云数据。

1.4 条件欧式聚类

在经过滤波及地面分割算法后,基本只保留了锥桶障碍物信息,但由于此类点云仍存在非锥桶点云数据,会导致误检问题的出现。由于锥桶尺寸固定,可以采用一种基于条件欧式聚类的算法,通过设定阈值进行条件欧式聚类,同时去除非锥桶点云数据。

求解空间中2点的欧氏距离dAB,设空间中点A为(xA,yA,zA)和点B为(xA,yA,zA),求解过程如式(6)所示。

(6)

欧式聚类将某一阈值内的点云定义为一个类别,通过迭代计算,确定在检测范围内没有该类别的点云。欧式聚类算法只关注距离问题,从而导致忽略障碍物的几何特征。为更加准确地获取锥桶障碍物的点云簇,在欧式聚类算法的基础上,设每个点云簇D在各个坐标轴中最大值和最小值的差值分别为Xd,Yd和Zd,从而判断结果是否符合锥桶目标物的大小。由于激光雷达扫描到的锥桶方向并不一定是正前方,对X、Y轴的差值阈值进行放大以满足泛化能力,取锥桶底面对角线长度作为X轴、Y轴的阈值,点云簇的集合如式(7)所示。

(7)

式中:Di为第i个点云簇集合;D为最终保留的锥桶有效点云集合;d为锥桶底部对角线的长度;h为锥桶的高度,考虑泛化性,阈值范围可进行一定的放大处理。经过条件欧式距离算法处理之后,获取锥桶点云数据。

各阶段激光雷达锥桶检测算法处理效果如图3所示。可以看出,在对ROI进行体素滤波之后,剔除部分无效点云数据,再经过RANSAC算法处理之后,剔除地面点云数据,此时仍存在一些非锥桶数据,最后经过条件欧式聚类之后,获得纯净的锥桶检测结果。

图3 点云数据处理过程示意图

2 相机锥桶检测算法

2.1 YOLOv7算法理论基础

YOLO算法[11]为典型的单阶段目标检测算法,该算法可以兼顾检测速度和准确性,广泛应用于实时检测项目中。YOLOv7在COCO(common objects in context) 数据集中,检测速度和精度均优于之前版本[12]。由于无人驾驶赛车对实时性和准确性的要求高,可采用YOLOv7作为赛车锥桶障碍物检测算法。

YOLOv7基于相似神经网络构建,采用了Darknet作为基础网络架构。Darknet是一个轻量级神经网络,具有较少的参数和计算量,适合进行实时目标检测任务。该算法通过将待检测图像划分为S×S的网格[13],在每个边界值预测目标类别的概率,即该边界框内存在目标物体的条件概率。将目标对象类别概率和置信度相乘得到该状态下的类别概率,获得分类结果的置信度值。YOLOv7算法[14]检测原理如图4所示。

2.2 YOLOv7算法训练及验证

锥桶图像数据集采用各参赛高校联合制作的FSAC-COCO数据集,从中选取包含各个时段(早、中、晚)、天气(晴天、雨天、多云)和光线(顺光、逆光)的数据,提高目标检测网络模型在推理时的泛化能力,尽可能保证各类别(红、黄、蓝)锥桶标注数量处于平衡状态,以避免目标检测网络模型过拟合和样本不均衡等情况。最终选取8 000张图像作为有效数据集,使用5 600张图像(整体数据集的70%)作为训练数据集,1 600张图像(整体数据集的20%)作为验证数据集,800张图像(整体数据集的10%)作为测试数据集,部分标注情况如图5所示。

图5 部分FSAC-COCO数据集标注情况

采取YOLOv7算法对选取的数据集进行训练测试,优化器使用随机梯度下降法,训练过程中参数设置如下:初始学习率为0.01,批量大小(batch size)为8,训练回合数(Epoch)为300。模型训练过程中,损失函数变化曲线如图6所示,训练过程前25轮下降最快,在255次迭代训练之后,损失曲线下降趋于平缓,最终完成收敛,平均检测精度达到97.8%。

图6 损失函数变化曲线

训练完成后,加载所获取的权重文件,对获取的图像进行检测,在不同场景中,检测结果如图7所示,并通过ROS发布锥桶检测框在图像中的位置和颜色信息,供融合算法使用。

图7 不同场景锥桶检测结果

3 激光雷达与相机融合算法研究

在融合算法模块,将激光雷达和相机进行时空对齐,使用激光雷达点云检测模块对点云数据进行处理,获得障碍物的空间位置,利用相机目标检测算法对图像信息检测,并获得障碍物的颜色信息,将两者的检测结果进行目标匹配[15],最终获得匹配完成后障碍物的准确空间位置和颜色信息,激光雷达与相机融合匹配流程如图8所示。

图8 融合信息匹配流程框图

3.1 联合时空对齐

时间和空间对齐是传感器数据融合中的关键部分,为了确保后续融合模块接收到的图像、点云在数据生成的时间上尽可能相近,需要使各个传感器数据时间戳对齐。同时,由于不同传感器在赛车上安装位置不同,即各自坐标系不同,因此也需要进行空间对齐,将不同传感器的同一目标在同一坐标系下进行融合匹配[16]。

3.1.1时间对齐

由于激光雷达和相机产生时间戳格式有所不同,需要找到一个全局基准时间戳,将激光雷达和相机数据生成的局部时间戳转换为全局时间戳[17],最终对不同传感器的全局时间戳进行时间对齐。

采用机器人操作系统(robot operating system,ROS)自带的时间戳作为全局基准时间戳,当一帧图像和激光点云数据产生时,对应ROS驱动节点则会为其打上ROS全局基准时间戳,方便后续时间对齐。

激光雷达默认设置为600 r/min,即10 Hz的数据采集频率,而使用的相机拥有40 Hz的数据采集频率,因此选取较低频率的激光雷达点云时间作为基准。

激光点云和图像检测结果的时间同步流程如图9所示。

图9 点云和图像检测结果时间同步流程框图

以激光点云锥桶检测结果为时间同步模块触发信号,当图像锥桶检测结果加入图像目标队列,且点云锥桶检测结果到来时,直接进行时间戳同步。再以激光点云锥桶检测结果所对应ROS时间戳作为基准,利用最近邻匹配算法匹配最近的时间戳,同时判断时间误差是否小于误差阈值,满足约束条件则将检测结果传入融合匹配模块。

3.1.2空间对齐

激光雷达与相机联合标定通常使用基于目标物的标定策略,利用激光雷达与相机共同采集同一目标物的特征作为约束条件,以匹配特征并求解两者坐标系的外参矩阵[18]。通过外参矩阵与相机内参矩阵可将激光雷达坐标系(Xl,Yl,Zl)转换到相机坐标系(Xc,Yc,Zc)与像素坐标系(u,v),具体映射关系如式(8)和式(9)所示:

(8)

(9)

式中:(u,v)为激光雷达坐标点在像素坐标系下的坐标;s为缩放因子,通常设为1/Zc;fx、fy为相机的焦距;R、T分别为激光雷达到相机的旋转矩阵和平移矩阵;dx、dy为每个像素在x和y方向的物理尺寸,坐标位置转化过程如图10所示。

图10 坐标位置转化过程

采用棋盘格标定板作为激光雷达与相机的共视目标物如图11所示,采用点到平面方法进行标定,标定过程为:

图11 激光雷达与相机外参标定示意图

1) 设置初始旋转、平移矩阵;

2) 在相机坐标系中找到标定板平面并计算出平面法向量nc和平面距相机坐标系原点的距离d;

3) 在激光雷达坐标系中找到标定板平面点Pl,保存有效的nc、d、Pl,并调整标定板的不同位姿;

4)满足式(10)的约束条件,优化R、T;

nc(RPl+T)+d=0

(10)

5) 重复步骤2)—步骤4)直至满足标定要求。

激光雷达与相机联合标定完成之后,对标定结果进行验证,图12为原始点云投影至像素坐标系的效果图,可以看出,激光点云基本与图像中的锥桶重合对应。

图12 激光点云与图像锥桶匹配效果图

3.2 融合算法

激光雷达和相机融合算法在点云与图像检测结果的基础上,采用目标级融合方案对点云锥桶检测结果与图像锥桶检测结果进行融合,最终获得锥桶位置和颜色信息。

激光雷达和相机检测对象匹配问题可转化为最近邻算法的匹配[19]问题,该算法主要用于处理样本之间的匹配问题。它通过计算样本之间的相似度或距离,将一个样本从一组中取出与另一组中最相似或最接近的样本进行匹配。

将同一锥桶障碍物的激光点云投影至像素坐标系下,计算两者检测结果中心点之间的距离,确定最近距离的匹配情况,作为最后的输出结果[20]。数据融合算法流程如图13所示,大致步骤如下:

图13 数据融合算法流程框图

1) 获取经时空对齐后基于激光雷达与相机的锥桶检测结果。

2) 利用激光雷达坐标系到相机坐标系的变换矩阵,将基于激光雷达的锥桶检测结果中锥桶的质心点坐标Ls投影至像素坐标系。

3) 对投影结果进行首次最近邻匹配,由式(11)计算投影后的点云质心点Ls(ul,vl)与基于相机的锥桶检测结果边界框的中心点(uc,vc)的距离Di,设定距离阈值为T,判定是否关联,直至遍历完所有置质心点[20]。在首次最近邻匹配过程中,匹配关联前需检查该图像锥桶检测结果是否已被匹配,若匹配,则更新欧式距离最近的对象为匹配对象。

(11)

4) 在首次匹配结束后对剩余的对象进行二次最近邻匹配。

5) 将从关联匹配成功的图像中获取到的锥桶颜色信息与激光雷达获取到的锥桶位置信息进行融合。

上述数据融合步骤中,使用二次最近邻匹配[21]的主要原因是在赛场中可能出现距离较近的一些锥桶,如赛道起始点附近的锥桶,它们之间的距离较近,使用一次最近邻匹配会出现漏检情况。针对此情况,在首次匹配后使用二次最近邻匹配防止对象漏检。最终根据最优匹配情况将锥桶位置和颜色整合,实现激光点云与图像的数据融合。

4 实验验证与分析

4.1 测试环境及实验平台

测试位置为学校方程式测试场地,可以很好地模拟比赛场地。激光雷达采用Velodyne-32C,相机采用Basler ace-acA1920-40gc,计算平台相关配置参数如表2所示。

表2 计算平台配置

使用大学生方程式赛车进行该算法的测试验证,赛车上传感器和计算平台安装位置如图14所示。将本文提出的算法部署到该赛车上进行测试。

图14 FSAC方程式赛车

4.2 实验结果与分析

在实验测试中,分别在复杂的锥桶场景下进行静态测试,以及在高速循迹赛道中进行动态测试。

4.2.1静态测试

在静态测试中,在前方10 m的区域内进行随机摆放交通锥桶,通过控制卷闸门高度来控制进光量,从而调节光照的强弱,分多组进行测试,共测试了236组锥桶(包含79个红色锥桶,94个蓝色锥桶和63个黄色锥桶)。实验结果如图15所示,图15(a)为相机检测效果图,图15(b)为经过融合算法处理后,获得的颜色和位置信息。

图15 静态锥桶检测匹配图

分别采用文献[8]的取交集融合算法与本文的二次最近邻匹配融合检测算法进行静态测试,测试结果如表3所示。与取交集融合算法相比,融合匹配结果的准确率提高了2.61%,平均误差降低了33.33%。

表3 静态测试算法性能指标对比

4.2.2动态测试

静态测试完成后,对赛车进行动态测试,在测试场地严格按照赛事要求摆放高速循迹赛道,设置赛车速度为30 km/h进行测试[22],调用ROS中Rviz进行可视化展示。检测结果如图16所示,图16(a)为相机检测结果,检测到3个红色锥桶和3个蓝色锥桶,可以准确获取图像锥桶检测框和颜色;图16(b)为激光雷达与相机融合的检测效果,将二者结果匹配融合后,获得匹配后的锥桶颜色和位置,从而获取赛道边界,提供给之后的规划决策模块。

图16 动态测试结果图

分别采用文献[8]的算法与本文算法进行动态测试,从中提取20个不同时刻的检测状态,在相机采集的视角内共出现382个锥桶,取交集融合算法检测到217个锥桶,本文算法检测到238个锥桶。对动态检测结果进行对比分析,结果如表4所示。本文算法检测的准确率为96.21%,平均位置偏差为0.067 m,平均用时2.212 ms,比取交集融合算法的准确率提升了5.52%,误差降低了29.47%,速度提升了21.66%。

表4 动态测试算法性能指标对比

从测试结果中得出,动态测试中的平均误差相对于静态测试会偏高一些,并绘制动态测试中检测到的各个锥桶位置偏差图,如图17所示,最大位置误差未超过0.07 m,相对锥桶和赛车自身尺寸来说是很小的,满足准确性的要求;跑动测试中融合检测的平均用时为2.212 ms,对于10 Hz的激光雷达,即每帧有100 ms的处理时间,满足赛车跑动的实时性要求。通过本文感知系统获得的锥桶颜色和位置信息,为FSAC赛车的决策规划模块提供了准确的边界信息。

图17 本文锥桶位置偏差图

5 结论

1) 为实现无人驾驶赛车的障碍物检测任务,提出了一种基于激光雷达和相机的赛道锥桶检测算法,解决了单一传感器在某些场景下的缺陷,从而为FSAC赛车获取障碍物的位置和颜色提供了解决方案。

2) 测试结果表明,与取交集融合算法相比,本文中提出的算法拥有更高的目标检测准确性和实时性,有效提升了赛车的跑动速度。

3) 本文中提出的算法可部署到园区无人驾驶和施工道路锥桶检测等特定场景的感知系统中并可进行自适应调整满足实际需求。

猜你喜欢

激光雷达赛车测试
手持激光雷达应用解决方案
法雷奥第二代SCALA?激光雷达
幽默大测试
云上赛车
春季赛车会
“摄问”测试
基于激光雷达通信的地面特征识别技术
“摄问”测试
“摄问”测试
基于激光雷达的多旋翼无人机室内定位与避障研究