转 Lidar with Velocity:往复式激光雷达的点云运动畸变矫正系统

[Copy Link]
Author: Livox Pioneer | Time: 2021-12-3 11:39:04 | Autonomous driving|
0 7350

36

Threads

38

Posts

490

Credits

Administrator

Rank: 9Rank: 9Rank: 9

Credits
490
Posted on 2021-12-3 11:39:04| All floors |Read mode
以下内容转自:南科大ISEE课题组- Intelligent Sensing Exploration and Engineering Lab 智能传感探索与工程实验室

背景

目前,激光雷达在自动驾驶感知领域正扮演着越来越重要的角色。相比于相机,它可以提供FOV内目标的更为准确的3D描述,可更好帮助车辆感知周围环境。传统的旋转式激光雷达如Velodyne由于成本昂贵,一直难以量产上车。然而随着Lidar技术的发展,越来越多的半固态乃至固态雷达受到了主流车厂的重视。这些新式雷达能提供高质量点云,且价格低廉,能够很好的解决自动驾驶的感知问题。例如在2021年的上海车展上,就有许多头部造车势力亮相了他们搭载新式Lidar的车辆。
搭载Innovusion雷达的蔚来ET7 (图片来自蔚来官网)
搭载Livox雷达的小鹏P5 (图片来自小鹏官网)

尽管激光雷达真香的优点远远掩盖了缺点,但其不足之处也不能忽略。上述的这些Lidar都采用TOF (time of flight)原理测距,通过调制激光信号的飞行时间计算目标雷达之间的精确距离。在Lidar测量到的一帧点云数据内,每个激光点的发射时间并非完全相同,而是存在一定的偏移。这就导致了点云畸变的产生。畸变的点云与目标的实际位置存在偏差,这会让车辆的感知系统产生误判,可能带来极大的安全隐患。因此,在这篇文章中,作者主要探讨了新兴往复式扫描激光雷达的点云畸变特性,并提出了一个基于相机和Lidar融合的办法实时消除了点云的畸变,并且通过畸变信息,算法还能准确估计FOV中运动物体的速度。



点云畸变原因

首先,我们需要理解点云畸变产生的原因:
前面提到过,点云的畸变最根本的原因在于一帧内的激光扫描不同步,即在两次扫描之间,雷达本身或者是被扫描的目标发生了运动,从而导致相对世界的坐标发生了改变。而这种不同步和Lidar的扫描方式有关。下面将以传统的旋转式雷达Velodyne和半固态雷达Livox Horizon为例,探究畸变的来源。
下面的一段视频展示了Livox Horizon 和Velodyne 的点云扫描方式的不同。(视频源youtubeaCVC)

红色部分表示激光雷达正在扫描的区域,360°顺时针旋转的为Velodyne,在前方左右往复扫描的为Livox Horizon。在Velodyne旋转一周的时间内(100ms),Livox要对前方进行重复多次扫描,如下图左所示,右图则展示了随着时间的累积,其单帧点云密度不断增大的过程。而此时若前方的目标与雷达具有相对运动,点云则会发生畸变。

根据速度来源,畸变类型可分为两种,自身运动畸变和被观测目标运动畸变 ,这两种原因导致的畸变形式一样,其不同主要来自雷达的扫描方式。下面这张图展示了两种雷达在扫描运动车辆时,由于扫描方式上不同所导致的畸变特点不同。




左边表示Velodyne,右边表示Livox Horizon,从下至上每一帧代表100ms。若目标相对雷达静止,则点云对应车辆尾部的轮廓,两种雷达的点云都不会产生畸变,如下方黑色点所示。若目标相对雷达是向前运动,Velodyne的畸变如左侧红色点所示会因为速度产生一些位置偏移,Livox则由于一帧内对目标的多次重复扫描会出现多层,如右侧红色点所示。



方法
因此,为了解决上述畸变的问题,获取真实的未产生畸变的目标点云。文章提出了相机和Lidar融合的办法将点云的位置偏移补偿。Lidar能输出每个点准确的采集时间,问题可以转化为估计运动目标的速度。单纯依靠Lidar采集的点云去进行速度估计并不完全可靠。Lidar提供了准确的目标距离信息,因此可以在连续帧之间通过这些信息估计目标在深度方向的速度(或者说在球坐标上的径向速度)。但是在角度方向上(球坐标的极坐标和方位角方向),由于点云的稀疏性,得到的信息不是完全准确的。相机由于其稠密的像素,在角度方向上提供了较高精度的观测。如下图所示:

对比目前较为优秀的Velodyne HDL-64E Lidar,每帧它可提供13万个点,但是一个1080p分辨率的相机每帧可提供超过200万个点,其分辨率远高于雷达。因此融合相机和Lidar能够发挥两种传感器各自的长处从而估计目标的精确3D速度。
在这篇文章中,主要有以下贡献:
(1)结合相机和Lidar测量的长处设计了一个概率融合系统以估计目标的准确3D速度。
(2)结合估计得到的速度,往复式Lidar的点云畸变被准确的纠正,加速了类似新兴Lidar的应用。
(3)提供了一个完整的从前端传感器的检测融合到后端的跟踪及去畸变系统框架,并开源了代码和数据集。

主要工作
硬件采集系统如下图所示,采用了Livox Horizon代表往复式Lidar。一共6台Lidar朝前安装在车辆顶部以获得稠密点云,保证其FOV大部分重合并标定了外参。并使用了一个RGB相机检测运动目标,分辨率为1520x568,与Lidar的FOV基本重合。一个GNSS系统(APX-15)被用来准确测量自身车辆的运动。Lidar相机和GNSS均由TTL信号触发并以10Hz的频率同步运行。
算法框架如下图所示,总共可分为3个模块。首先是预处理部分,首先通过GNSS的自身速度去除整个点云因自身运动所导致的畸变,然后检测模块会标记出点云和像素中的运动物体。在3D和2D空间上的检测结果会被对齐并整合,一些低置信度或无法匹配上的检测结果将会被舍弃。第二部分是速度估计模块,算法会在像素域和点云域分别估计目标速度及其协方差,并通过概率模型融合,最后被估计的速度将与检测结果一起通过一个卡尔曼滤波系统进行跟踪,卡尔曼滤波输出的后验速度将作为最终的估计用以点云的去畸变。

点云的自身运动畸变的补偿是全范围的,针对FOV内的所有点。经纠正后,静态物体的点云是完全准确的,但运动物体的点云仍与真实点云相差一个相对速度。
2D图像目标检测使用了YOLO v3算法,3D的点云目标检测使用了Livox-Detection算法 。检测到的2D和3D Bbox通过一个投影IOU来确认两者之间的关联程度以判断是否为同一个目标。
相机所估计的速度为目标在球坐标下的切向速度,如下图中红色箭头所表示,Lidar估计的速度为径向速度,如棕色箭头所表示。

算法采用了稀疏光流来估计目标在像素域内的运动,同时通过RANSAC方法舍弃了异常的像素运动,整个目标的速度被表示为相机平面上的2D速度,并统计其协方差作为光流估计的置信度,光流估计到的目标像素运动如下图所示。


像素点和点云点通过相机内参及点的深度相互映射,这里使用了目标点云的中心近似作为目标的整体深度值,并计算了从像素到点云的一阶Jacobian以映射协方差,最终得到了相机估计的2D速度在空间下的表示。

Lidar提供了另一个模态的数据,它的贡献在于可提供准确的深度信息,这是单目相机无法测量的。根据Livox的畸变点云在速度方向被拉长的特征,我们以之为约束设计了一个优化器,损失函数定义为所有该目标所有点在三个方向上距目标中心的距离,当速度越接近真实值时,点云表现得更紧凑,更加接近真实目标的形状,Loss也越小。

在获得了两个不同的传感器所独立估计的速度后,最终的估计速度即为两个高斯模型的加权。最终的速度被分解为切向与径向,径向速度只来自Lidar的观测结果,切向速度来自相机和Lidar的融合。采用了类卡尔曼增益的方式通过协方差进行融合,得到完整的目标速度及协方差。最后这个速度作为观测量进入跟踪模块进行更新与维护。

实验结果
由于无法得知目标速度的真值,文中采用评估目标点云质量的方法来代替评估速度,速度的准确程度直接反映了去畸变的效果质量。使用系统输出的后验速度将相邻帧的点云拼接在一起,速度估计越准确,则点云将越接近目标真实形状。定量上采用了Mark Sheehan所提出的crispness score来反应点云的杂乱程度(结果越小说明点云越杂乱无章),并与传统单纯基于点云的方法进行了对比,可以看到本文推荐的方法取得了不错的效果,使用估计速度纠正后的点云相比其他方法更为接近真实物体的轮廓。

对于更多细节和详细过程,请阅读我们的文章,如果有任何问题或者是想法,您可以在github中提出问题。




This post contains more resources

You need to Login Before they can download or view these resources, Don’t have an account?Register

x
Reply

Use props Report

You need to log in before you can reply Login | Register

Credit Rules

Quick Reply Back to top