点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者丨泡泡机器人

来源丨泡泡机器人SLAM

Efficient LiDAR Odometry for Autonomous Driving

下载链接:https://arxiv.org/pdf/2104.10879.pdf

团队:浙江大学

作者:Xin Zheng, Jianke Zhu

学会:ICRA 2021

编辑:周朋伟

审核:张海晗

摘要

LiDAR里程计在自动驾驶导航中占用重要作用,通常将其视为点云的扫描匹配问题。尽管在KITTI里程计数据集中取得了卓越的性能,但是传统的基于KD树的搜索方式仍然难以直接处理大规模的点云数据。SuMa系列的基于深度图像的方法通过球形投影可以快速的完成最近邻搜索。然而,在处理近乎平行的光束的地面点时并不很有效。为了解决这样的问题,非地面点采用球形投影,而地面点采用鸟瞰图的方式进行投影。此外,通过距离自适应的方法来估计局部表面的法向量。我们利用一种快速且内存高效的子图更新方案, 以便融合不同时间戳的点和相应的法线。我们在KITTI数据集上进行了测试证明我们的方案是有效的。

背景与贡献

由于工业需求的增加,自动驾驶领域已经吸引了大量的研究工作,其中激光里程计在构建高精度的导航地图方面发挥着重要的作用。高效的激光里程计方案应该对包括城市、高速公路和乡村道路在内的各种环境具有鲁棒性。相比于视觉SLAM的方案,激光SLAM能够利用处理较大的光照变化。通常,激光里程计被认为是局部的点云匹配问题,最常用的方法就是ICP方法,其需要足够的内点数量同时依赖初始值。由于需要利用KD-Tree来完成内点集合的构建,这成为这一类激光里程计方案的瓶颈。近年来,SuMa系列的方案将3D点云转换成2D的球形深度图像,因此匹配点集的搜索就可以高效的在局部的小patch中进行。利用深度图像梯度的叉乘来构造法向量地图,这类方法通常被用于RGBD传感器中。然而点云相比于RGBD更加稀疏,通常在物体垂直于激光线束的位置相对稠密,而在近乎平行于线束的位置相对稀疏。这导致了两个空间临近点在经过深度图像中的距离相对较远。因此,图像的梯度叉乘很难有效的计算法向量。为了解决上述问题, 我们提出了全新的高效激光里程计方案。文章的主要贡献如下:

  • 我们提出了一种高效的激光里程计方案, 充分的利用非地面点的球形投影和地面点的鸟瞰图的优势。

  • 一个鲁棒的距离自适应的法向量估计方案被用于点云匹配中。

  • 快速高效的维护深度图像和鸟瞰图的更新方式。

  • 该方案通过KITTI数据集的测试,可以每秒处理超过169帧点云并达到较高精度。

方法

1. 系统框架

首先原始的3D点云将会被通过球形投影转换成深度图像来帮助完成快速分割和地面点残差。之后,地面点将会从深度图像中分割出来转换成鸟瞰图进而构成地面点的残差的计算。然后,通过距离自适应法向量估计方案完成法向量地图的估计,他们将会被用于ICP的位姿增量的计算。最后我们将会更新非地面点的球形深度子图以及地面点的鸟瞰图。

2. 融合方案

原始的雷达点云大约有一半以上的点是地面点云,尤其是在高速公路上,很难从非地面点集中提取平面特征。因此,非地面点集不足以完成整个位姿估计,而地面点和丰富的平面特征能够很好进行互补。

如上图所示,由于地面点相对稀疏,相邻点在经过球形投影转换成深度图像以后,像素的差值相距较大,主要是因为反射平面近乎和激光线束平行所导致的。而非地面点相邻点集在深度图像上的像素时近乎位于同一列的。进一步,由于深度图像是通过角度来对空间完成划分的,这导致相邻激光如或者中间将会含有大量的地面点,这些地面点尤其是远距离的点在图像上的像素差异越大,这将会导致大量的不正确的数据关联。为了能够解决上述的问题,我们将地面点转换成鸟瞰图以便利用额外的地面信息同时完成正确的邻近点集的搜索。如流程图中所示,鸟瞰图是从上到下来捕捉雷达的信息, 但是在鸟瞰图垂直的建筑物表面点将会位于鸟瞰图中相同的像素位置。为了处理这种情况我们提出如下融合方案。

当前帧激光雷达的坐标系为,子图的坐标系为。我们的目标是找到帧到子图之间的相对位姿变换。非地面点的loss和地面点的loss 将会被通过自适应的权重策略构成如下的最小化问题

其中 是两个系数的内积。是用户自定义的参数用于平衡地面点和非地面点。表示地面点和非地面点的内点比例。

之后利用高斯牛顿法迭代完成优化,

3. 非地面点残差函数

首先我们将利用球形投影(Spherical Range Image(SRI))转换成深度图像。给定一个空间点,将其从笛卡尔坐标系转换成球形坐标系

其中 表示距离,表示方位角,表示俯仰角。

球形的距离图像将会被当做成的查找表存储笛卡尔坐标在方位角和俯仰角的索引值。最终我们通过如下函数住转换成最终的像素坐标。

其中是雷达的垂直视场角。and 表示图像的宽度和高度。

4. 非地面点残差函数

非地面点通过球形深度图像可以高效的利用投影数据关联。为了减小里程计漂移,仍是采用 frame-to-model的匹配形式,球形深度图像被记为,它相对应的法向量地图为。之后我们最小化点到平面之间的距离如下

每个顶点通过如下关系投影到子图中的顶点和它的法向量

非地面点的法向量形式如下

5. 基于特征值的法向量估计

上式中的雅克比高度依赖法向量的估计,同时在建立对应关系和计算残差中同样会使用。传统的方式是利用局部图像梯度的叉乘,这在空间点不处于相同的局部平面区域的时候,产生较大误差的估计。因此我们提出一种距离自适应的方式来估计法向量。通常情况下,一个平面模型通常为。给定一个属于局部平面的空间点集,法向量的优化可以同最小化如下误差来进行

我们可以通过对其协方差矩阵进行特征值分解从而得到闭式解

最小特征值对应的特征向量即为法向量。

为了能够应对点云的不连续,我们通过距离自适应的临近点搜索方式,每个搜索的patch的尺寸将会根据半径和搜索距离阀值和距离图像的分辨率

其中 , and 表示最大和最小的搜索距离

由于特征值分解将会受到异常值的影响,通过以下额外的标准来进一步去除,如果点到平面之间的距离大于给定的阀值。将会被当做是异常值。

6. 地面点残差函数

我们首先使用距离图像的阀值算法来完成地面分割,LiDAR中心到地面点之间的高度为,因此地面点之间的坐标应该一定的高度的范围内and , and 。球形深度图像的列表示相同的方位角空间,如果两个相邻的像素点是地面点,那么这个两个点在高度方向上的角度差值应该小于。我们找到一个空间点在深度图像上的像素坐标是,找到其相邻方位角的像素点and 。在两个方向上的角度的变化可以通过下式来计算

地面点在两个方向之间的角度阀值应该指定的参数值即and

在获得了地面点之后,类似于球形投影,我们将地面点转换成对应的鸟瞰图中的像素值。

其中and 是鸟瞰图预先设定的范围,and 表示的是两个方向上的分辨率。

鸟瞰图可以用于地面点对应关系的查找表,我们记表示地面点的法向量,整个地面特征的代价函数形式如下

相应的雅克比矩阵的形式如下

其中地面点法向量的计算通过在鸟瞰图中搜索邻近点完成。

7. 地图更新

由于点云的稀疏性,当前帧点云和前一帧的点集通常不会完美的对应。这在一定的程度上增加了里程计的漂移。因此同样选择使用帧到子图的匹配模式。为了较小异常值的影响,我们移除局部子图中时间戳较老的点, 表示的当前点的时间戳,表示局部子图被观测到的点的时间戳。

对于非地面点,我们维护顶点地图和法向量地图。我们通过优化得到的相对位姿将之前的深度图像变换到当前帧中,计算它与当前帧的顶点地图之间的距离。距离激光雷达原点更近的点将会被保存下来,并用于更新局部子图。对于地面点,我们仅维护鸟瞰图的顶点地图,这些点是在ICP计算时用于计算法向量。最终,我们仅仅需要维护2D的地图,这样十分高效。

实验

不同方法在KITTI数据中的评估结果

不同的法向量估计方法对里程计精度的影响

在KITTI数据中不同序列的轨迹示意图

算法不同的模块耗时(注仅球形投影部分运行在CPU,其余算法的部分全部的运行于GPU)

点击阅读原文, 即可获取本文下载链接。

本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列、手眼标定、相机标定、激光/视觉SLAM自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

面向自动驾驶车辆的高效激光里程计(ICRA2021)相关推荐

  1. 自动驾驶场景下的高效激光里程计

    标题:Efficient LiDAR Odometry for Autonomous Driving 作者:Xin Zheng, Jianke Zhu, Senior Member, IEEE Zhe ...

  2. 百度Apollo自动驾驶车辆将在苏州太湖面向民众开放

    10月18日消息,苏州吴中区与百度Apollo共同举办的智能网联发展论坛在太湖国际会议中心召开.会上,由双方打造的全国首个"自动驾驶生态示范岛"正式落地,太湖生态岛自动驾驶车辆运营 ...

  3. 面向自动驾驶的定位方法综述

    目录 1 引言 2 典型的单个定位方式 2.1 基于通信的定位方式 2.1.1 全球卫星导航系统定位 2.1.2 车联网定位 2.2 基于航位推测的定位方式 2.2.1 惯性测量单元定位 2.2.2 ...

  4. 自动驾驶车辆在结构化场景中基于HD-Map由粗到精语义定位

    点云PCL免费知识星球,点云论文速读. 文章:Coarse-to-fine Semantic Localization with HD Map for Autonomous Driving in St ...

  5. 城市场景中自动驾驶车辆基于高精度地图的视觉语义定位

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源丨自动驾驶专栏 论文链接:https://ieeexplore.ieee.org/document ...

  6. 综述:城市道路自动驾驶车辆规划与控制技术

    作者 | 深蓝学院  编辑 | 深蓝AI 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[规划控制]技术交流群 后台回复[规划控制综述 ...

  7. RoadMap:面向自动驾驶的轻型语义地图视觉定位方法

    文章:RoadMap: A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving 作者:Tong Q ...

  8. 面向自动驾驶的边缘计算技术研究综述

    本文由吕品,许嘉,李陶深,徐文彪联合创作 摘要 边缘计算在自动驾驶的环境感知和数据处理方面有着极其重要的应用.自动驾驶汽车可以通过从边缘节点获得环境信息来扩大自身的感知范围,也可以向边缘节点卸载计算任 ...

  9. 基于激光雷达的自动驾驶车辆障碍物检测研究的选题意义和目的

    回答:基于激光雷达的自动驾驶车辆障碍物检测研究的选题意义在于提升驾驶安全,降低交通事故的发生率,实现智能驾驶.目的则是探索激光雷达技术在自动驾驶车辆障碍物检测中的应用,开发出高效.准确的检测算法,为智 ...

最新文章

  1. 分享是程序员的必备素质
  2. 长此以往的发展,以BCH为代表的数字货币终将会为自己正名
  3. Summation Order
  4. 观咆哮有感——系统升级的疼
  5. java高并发(十一)同步容器
  6. 论文浅尝 - IJCAI2020 | Mucko:基于事实的多层跨模态知识推理视觉问答
  7. Map与WeakMap
  8. 游戏是如何限制多开的,如何解决
  9. “再见,Linux!”
  10. java Socket(TCP)编程小项目
  11. Python对象实现ToString
  12. python自回归模型_向量自回归模型(VAR)到底厉害在哪里?
  13. U盘修复,写保护,这个必须推荐!安国(Alcor)AU6983 4G U盘写保护修复记
  14. 计算机打不开sai文件夹,无法运行 SAI2 的解决办法
  15. 电路图符号科普、整流电路、稳压电路、放大电路及调幅与检波电路和常见的基本电路
  16. oracle安装搜狗输入法教程,Ubuntu12.04安装搜狗拼音输入法
  17. 解除RAR和ZIP压缩包密码的不同方法
  18. 警告: Establishing SSL connection without server
  19. 大学英语综合教程三 Unit 2 课文内容英译中 中英翻译
  20. 只需4步,就能在SOLIDWORKS创建首件检验报告(FAI)

热门文章

  1. Webpack 最佳实践总结(一)
  2. 团队项目第一阶段冲刺站立会议11(4月28日)
  3. .net framework 注册到IIS上
  4. 利用HTML5开发Android
  5. 天龙源码分析 - 选择角色流程
  6. 用sql语句实现按时间求累计值
  7. Java基础篇:泛型
  8. Android自动化测试之Shell脚本一——模拟触屏事件
  9. 五大算法设计思想,你都知道吗?
  10. toString()、String.valueOf、(String)强转,如何抉择,你真的了解吗