基于16 线激光雷达和相机融合的三维目标检测

2023-04-19 06:38:14陈德江高永彬张家豪
智能计算机与应用 2023年3期
关键词:激光雷达车道标定

陈德江, 江 灏, 高永彬, 张家豪

(1 上海工程技术大学 电子电气工程学院, 上海 201620; 2 上海振华重工电气集团有限公司, 上海 200125)

0 引 言

近年来,辅助驾驶和自动驾驶正日趋普及,而在其中起着关键作用的就是感知模块的发展。 常用的传感器有激光雷达、单目相机、毫米波雷达等,但是单一传感器带来的信息量也是匮乏的,比如普通的单目相机得不出物体的深度信息,仅仅使用激光雷达又无法利用物体丰富的视觉信息。 但是通过多传感器融合[1]不仅可以获取更丰富的感知信息,还可以通过传感器互补来降低硬件成本,比如利用激光雷达来做三维目标检测,需要至少64 线的激光雷达,因为如果雷达线数太少,则会因为目标点云过于稀疏而导致检测精度变差,但是如果能够将相机和激光雷达结合起来,就能在大幅降低成本的同时获取超过单一传感器的更高精度。

国内外针对激光雷达和相机融合的目标检测方法已经有了一定的进展,大多是基于深度学习方法。Chen 等学者[2]提出的MV3D-Net[2]利用了点云的俯视图、前视图和相机的RBG 图片,通过VGG16[3]做特征提取后融合在一起进行目标检测。 Ku 等学者[4]提出的AVOD[4]利用雷达点云的俯视图和相机的RGB 图作为输入,然后利用FPN(Feature Pyramid Network)进行特征提取,同样获得了精确的检测结果。 Qi 等学者[5]提出的Frustum-PointNet 先利用RGB 图像中目标的二维边界框进行点云预处理,将对应的雷达点云分离出来,然后将这些属于对应目标的点云输入到PointNet[6]中进行特征提取,从而回归出三维目标检测结果。 但是这些方法都是依赖于64 线的激光雷达,当前64 线的激光雷达价格昂贵,对于一些大型车辆,如轮胎吊大车、重型卡车等,如果想要激光雷达全覆盖,就需要至少2 ~4 个激光雷达,这将带来昂贵的安装成本。

本文考虑到64 线激光雷达的局限性,基于16线激光雷达和相机两种传感器,设计了一种三维目标检测方法。 首先,将雷达和相机进行空间和时间上的联合标定,获取相互间的刚体变换矩阵,通过刚体变换统一坐标系后再将雷达点云按照相机的内参矩阵投影到图片上,获取二维像素点和三维雷达点云之间的对应关系。 然后, 将相机图片送入YOLOv5 算法进行二维目标检测[7],得出目标的二维像素范围,利用联合标定过的雷达获取这些二维像素对应的三维点云,最后利用这些三维点云算出目标的三维坐标和边界框。 通过实际场景测试证明了该方法的可行性。

1 硬件平台的搭建和标定

硬件的合理安装和精准标定是算法有效运行的基础,本文设计的实验平台如图1 所示。 图1 中,左侧为16 激光雷达,右侧为球形相机,中间通过钢架进行固定。 因为雷达内包含转子,在雷达运行的过程中会产生较强的晃动,所以必须做好固定措施。为了能够适应室外天气,采用带球罩的相机,方便遮风挡雨,而且能够自由调整方向,但是球形相机畸变较为严重,所以需要做好相机的标定工作[8]。 在进行相机标定时,需要采集各个角度的标定板图片再进行标定,这样标定出的相机内参更精确。

图1 硬件平台设计图Fig. 1 Hardware platform design diagram

多传感器融合除了进行空间上的同步,还需要进行时间上的同步。 空间上的同步即多传感器联合标定统一坐标系,时间上的同步是指同步传感器获取数据的时间戳,保证2 个传感器是在相同的时间感知到同样的物体。

1.1 激光雷达和相机的联合标定

激光雷达和相机有着各自的坐标系[9],参见图1 中的坐标轴。 其中,激光雷达的X轴朝前,Y轴朝左,Z轴朝上。 相机的X轴朝右,Y轴朝下,Z轴朝前,需要通过联合标定的方式算出2 个坐标系之间的刚体变换矩阵。 刚体变换的公式为:

其中,R为3×3 的旋转矩阵;t为3×1 的平移向量;Pl为激光雷达下物体的坐标;Pc为相机坐标系下物体的坐标。

本文采用的多传感器联合标定原理是让2 个传感器同时感知到相同的三维点,这些物体在不同的传感器里有各自的坐标,可以通过多组对应点构成方程组,但是这些点在数据采集时不一定是绝对精准的,可能会因为各种原因产生误差,所以不存在绝对解,而是存在一个近似的最优解,让标定后的传感器感知误差最小,误差表达方式为:

故而可以采用类似求解点云配准的方式利用SVD 解出2 个传感器之间的刚体变换,其中旋转矩阵R的求解方法为:

其中,A为激光雷达在激光雷达的坐标系中感受到的一组点;B为相机在相机坐标系中感受到的同一组点;centroid为对应点群的中心。 求解出R后就可以进一步求出t,求解方式见下式:

求解出旋转矩阵R和平移向量t后,就可以直接将雷达的坐标系直接转换到相机的坐标系,这时雷达扫描出的点云在经过变换后将处于相机的坐标系中。

1.2 激光雷达和相机的时间同步

不同种类的传感器运行频率也并不相同,相机在25 Hz 左右,激光雷达在20 Hz 左右。 传感器除了扫描频率,数据传输速率也不一样,所以相同时间发生的事情从传感器到达计算机的时间很可能并不一致,数据存在时间错位,如图2 所示,所以需要给传感器产生的数据打上时间戳,并且采用合理的同步算法进行数据同步。

图2 传感器数据同步Fig. 2 Sensor data synchronization

本文采取的方式是利用ROS 中的Message Filters 进行时间同步。 ROS 是最常用的机器人操作系统之一,将传感器数据抽象成Topic 进行数据的发布和订阅,并通过消息队列的方式对数据进行缓存。 Message Filters 同时订阅激光雷达驱动和相机驱动发布的Topic,但只有在两者时间戳满足时间差要求时才会触发回调函数对传感器数据进行处理,而过期或者时间戳相差较大的数据则会舍弃掉。 这样就可以保证雷达和相机是在相同的时间感知到相同的环境。

2 算法实现

本文主要应用场景是基于激光雷达和相机两种传感器融合起来在大车前进的车道线内进行三维目标检测,将检测的结果反馈给大车的控制中心。 通过相机进行车道线检测和二维目标识别,并通过雷达赋予目标三维信息,从而得到目标的三维坐标和边界框,对具体算法实现流程,可给出研究论述如下。

2.1 车道线检测

本文针对车道线内的兴趣区域进行目标检测,所以先通过相机进行车道线检测。 当前对于车道线检测已经有了很多有效的方法,但是大多基于深度学习的方式,相对复杂。 而本文场景中的车道线具有一定的规律,不存在弯曲的部分,所以可以通过霍夫变换算法进行车道线提取[10],算法流程如图3 所示。

图3 中,通过相机采集到的RGB 格式的图片为图3(a),然后将图片从RGB 域转到HSV 域得到图片、即图3(b),进行转换主要是为了根据可行驶区域的颜色过滤出可能是车道线的部分,有助于排除干扰信息。 在本算法中,过滤条件为[H,S,V] 的数值介于[20,60,30] 和[40,200,255] 之间,阈值设置范围相对较广能够保证算法在各种光照下的检测鲁棒性。 接下来再通过Gassian 平滑滤波和Candy滤波得到可能是车道线的轮廓图、见图3(c),根据得到的轮廓图使用霍夫变换算法,对轮廓图中的直线进行检测,直到找到所有的直线。 由于找到的直线不一定属于车道线,需要根据直线的长短、斜率等信息进行分类。 在这里,先使用K-means 聚类算法将直线分为2 类,一类属于左侧车道线,一类属于右侧车道线,最后再根据左、右侧车道线的斜率特征做进一步过滤。 将两侧车道线的集合取均值就得到了完整的车道线表达式,处理后的车道线检测效果见图3(d)。

图3 车道线检测算法流程Fig. 3 Lane detection algorithm flow chart

2.2 二维目标检测

确定兴趣区域后,再检测兴趣区域内的目标,本文需要精度高、运行速度快的二维目标检测算法。YOLO 系列是具有高性能的二维目标检测算法,本文采用最新版本的YOLOv5。 YOLOv5 实现了端到端的目标检测,输入图片即可输出检测结果,检测精度高、且检测速度快。 YOLOv5 的算法网络结构[11]如图4 所示。

图4 中,主要包括骨干网络、颈部网络和检测头。 骨干网络通过CSPNet 结构减少GPU 显存占用,避免重复的梯度信息,加速模型训练和运行,让模型更加轻量和高效,其检测效果如图5 所示。 除了较高的检测精度和极快的运行速度,YOLOv5 本身基于COCO[12]数据集进行训练,有着丰富的检测种类和预训练模型,本文的应用场景主要检测人、汽车和卡车三种目标,这3 类目标现已存在于预训练模型的检测范围中。 针对部分车辆分类不准确的问题,通过采集和定制当前场景下的数据集,基于预训练模型还可以做进一步的优化与完善,提升准确率。

图4 YOLOv5 网络结构图Fig. 4 YOLOv5 network structure diagram

图5 YOLOv5 检测效果Fig. 5 YOLOv5 detection effect

2.3 激光雷达地面点云去除

激光雷达在扫描时有很大一部分点云出自地面,这部分点云对于本文的应用场景属于无效信息,并且会拖慢算法运行速度,因此需要过滤掉。 常用的地面去除算法是基于RANSAC[13]的平面拟合算法,通过多次尝试将地面所处的平面拟合出来,再进行去除,但是计算量较大,而且本文应用场景中有很多平面高台,所以并不适合在该场景中应用。 本文采用栅格立柱过滤法[14]。 方法中,将点云空间按照栅格划分,栅格竖起来形成立柱,立柱中的最高点为Hij,最低点为hij,这里的ij为立柱的索引值,如果该立柱满足布尔表达式:

其中,s为高度阈值,即立柱中的高度差不超过阈值,则该立柱中的点云为地面。 如果超出阈值,则说明该立柱中的点云有较大的起伏,可能属于路面上的物体。 地面点云去除算法的效果如图6 所示。

图6 地面点云去除效果Fig. 6 Ground point cloud removal effect

由图6 可知,图6(a)为16 线激光雷达扫描环境后输出的全部点云,图6(b)为算法检测出的地面部分,将其剥离之后可以得到非地面部分的有效点云,见图6(c)。

2.4 三维目标检测

相机在成像的过程中丢失了深度信息[15],所以通过相机进行目标检测只能获取二维的结果,即只能得出目标在图像中的位置和目标的种类,但是无法知道目标的实际大小和实际的三维坐标。 研究可知,通过联合标定的激光雷达可以补足这个缺陷。首先将激光雷达投影到相机成像平面上并保留对应关系,投影算法为:

其中,P为雷达中的三维点,用X,Y,Z表示三维坐标,经过相机内参K的转换后得到像素坐标u,v、即在图像中的坐标,这样就可以由每个雷达反射点找到在图片中的位置,同时也可以通过像素点得到对应雷达反射点的三维空间坐标,即可以获取二维像素点和三维雷达点云的映射关系。 通过激光雷达和相机的联合标定可以在将雷达点云变换到相机坐标系后,接着再利用相机标定得到的内参矩阵K,这样就具备了将雷达点云投影到相机图片上的所有条件,投影效果如图7 所示。

图7 激光雷达和相机联合标定后的投影效果Fig. 7 Projection effect after joint calibration of the lidar and the camera

至此,通过将二维目标检测阶段的结果作为三维目标检测阶段的输入,将2D Bounding Box 中的像素点转化成三维的雷达点云,对这部分雷达点云进行3D Bounding Box 求解[16],计算步骤如下:

首先,计算点云的质心PC, 质心是指物体质量的中心,但是点云是没有质量的,所以这里假设点的质量为单位1 即可,得到点云质心坐标为(c0,c1,c2),计算公式为:

然后,计算出点云的协方差,其中P已经减去了质心P←P-PC,点云归一化后的协方差矩阵为:

最后,求解出协方差矩阵的特征向量(e0,e1,e0×e1), 结合点云信息和特征向量即可解出3D Bounding Box 的所有信息,求解公式为:

其中,R为Bounding Box 的旋转;Pmax和Pmin为点云的极大值和极小值;Dc为对角线的中点;t为Bounding Box 的平移向量;Bounding Box 的宽、高、深度分别为xmax-xmin,ymax-ymin和zmax-zmin。 由此得到了3D Bounding Box 所需的所有信息,实现了二维检测到三维检测的升维。

3 实验测试

实验平台硬件主要由16 线激光雷达和球形相机构成,使用的工控机配置为Intel(R) Core(TM)i7-8700 CPU @ 3.20 GHz,RTX2060 GPU,32 G 内存。 实验硬件平台与安装位置如图8 所示。

图8 硬件平台与安装位置Fig. 8 Hardware platform and installation location

实验内容为:将传感器硬件平台安装在大车前方1.5 m 高处,大车本身行驶在车道线内,当传感器在车道线内前方20 m 内检测到障碍物时,需要及时将信号传递给大车的控制中心,控制中心根据障碍物的种类和距离进行告警和制动。

通过设置实验测试场景进行测试,测试目标包括行人、汽车和卡车三个种类,让3 个种类的目标分布在车道线内的不同距离和位置,测试结果见表1。

表1 实验检测精度Tab. 1 Experimental detection accuracy

检测效果可视化如图9 所示。 图9 中,左侧为车道线检测和二维目标检测的可视化效果,右侧为雷达点云视角中的三维目标检测效果。

图9 目标检测效果可视化Fig. 9 Visualization of target detection effect

此外,根据自动化港口码头需求,开发了一套后端系统及UI 界面。 其中,后端系统基于ROS 操作系统开发,将消息通讯抽象为Topic,满足实时性要求。 UI 界面如图10 所示,通过相机和雷达的IP 进行控制,当在车道线上检测到障碍物时进行告警,并且将告警信息记录在日志中,方便后期查询。

图10 三维目标检测报警系统UIFig. 10 UI of 3D target detection alarm system

4 结束语

本文针对16 线激光雷达输出点云过于稀疏而无法进行三维目标检测的问题,提出了一种基于16线激光雷达和相机融合的三维目标检测方法。 通过联合标定从空间上统一了激光雷达和相机的坐标系,并利用ROS 从时间上对齐了激光雷达和相机的数据。 接下来,采用相机的三维投影算法在二维像素和三维点云之间建立了映射关系。 最后,对目标点云进行包围框的计算,将二维检测结果升级至三维。 实验结果表明:该方法可以有效检测车道线内的目标,理论上可以满足大型车辆三维目标检测的需求。

猜你喜欢
激光雷达车道标定
手持激光雷达应用解决方案
北京测绘(2022年5期)2022-11-22 06:57:43
北斗+手机实现车道级导航应用
卫星应用(2021年11期)2022-01-19 05:13:02
法雷奥第二代SCALA?激光雷达
汽车观察(2021年8期)2021-09-01 10:12:41
避免跟车闯红灯的地面车道线
科学大众(2021年9期)2021-07-16 07:02:50
浅谈MTC车道改造
使用朗仁H6 Pro标定北汽绅宝转向角传感器
基于激光雷达通信的地面特征识别技术
基于激光雷达的多旋翼无人机室内定位与避障研究
电子制作(2018年16期)2018-09-26 03:27:00
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定
船载高精度星敏感器安装角的标定