您当前的位置: 首页 >  算法

暂无认证

  • 2浏览

    0关注

    95907博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ICRA 2021 | π-LSAM:基于平面优化的激光雷达平滑与建图算法

发布时间:2022-03-16 07:00:00 ,浏览量:2

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

干货第一时间送达

0929a9eab2279528321bd41ea343ba98.png

作者丨泡泡机器人

来源丨 泡泡机器人SLAM

标题:π-LSAM: LiDAR Smoothing and Mapping With Planes

作者:Lipu Zhou, Shengze Wang and Michael Kaess

机构:The Robot Perception Lab, Carnegie Mellon University

来源:ICRA 2021

编译:程骞

审核:   陈嘉皓

f796bb5a18ef054d73ac90211da9e793.png

摘要

f84101be5def8ddbb2de28dbc4bd802c.png

大家好,今天为大家带来的文章是π-LSAM: LiDAR Smoothing and Mapping With Planes。

本文提出了一种用于室内环境的实时密集平面激光雷达扫描系统π-LSAM。目前被广泛使用的LOAM框架[1]不包括约束调整(Bundle Adjustment,又称BA或光束法平差)模块,这导致它只能生成低保真度的跟踪位姿。本文试图克服已有算法在室内环境中的这些缺点。具体来说,我们使用平面作为地标,并引入平面调整(PA)作为后端来共同优化平面和关键帧的位姿。我们提出了π因子来显著降低PA的计算复杂度。此外,我们还提出了一种基于RANSAC框架的高效的平面循环检测算法。在前端,我们的算法可以实时进行全局配准。为了实现这点,我们保留了局部到全局的点到平面的对应扫描,因此我们只需要一个小的局部kd树来建立激光雷达扫描和全局平面之间的数据关联,而不是像以前的工作那样使用一个大的全局kd树。通过这种局部到全局的数据关联,我们的算法可以直接识别激光雷达扫描中的平面,并产生一个准确的、全局一致的位姿。实验结果表明,该算法显著优于最先进的LOAM变体LeGO-LOAM[2],并且实现了实时处理。

935979eec6fa07cba9912b03207b476b.png

主要工作与贡献

84df6bc1a2d2e1e77b2008c96d547f7d.png

  1. 我们引入了平面调整(PA),用来联合优化关键帧位姿和平面参数以最小化后端中点到平面的距离。

  2. 我们提出了π因子来显著降低PA的计算复杂度。

  3. 我们提出了一种有效的方法,使用平面对齐两帧激光雷达扫描以进行回环检测。

  4. 我们引入了一个ICP过程来实现实时的全局点云注册。与传统的ICP只考虑两帧点云之间的数据关联不同,我们的ICP过程可以逐帧维持点云间的数据关联。这使得我们可以直接识别点云中的平面,而不必在每次扫描中额外进行耗时的平面检测。此外,本文的ICP过程允许我们从一个小的局部kd树中获得局部-全局数据关联,而不是像之前的工作[1](LOAM)、[2](LEGO-LOAM),[8](LOAM-LIVOX)那样使用了一个大的全局kd树。

  5. 该算法中的地图用平面参数表示,易于存储和更新。相比之下,基于ICP的方法中的地图,如LOAM[1],通常会使用kd树。因此,更新地图需要重新构建kd树。对于大型场景来说,这样的代价是很大的。

4d13f997063597066530499745d67751.png

算法流程

ab57ada7bd60ae359a0eabb3e56b6e42.png

1. 系统流程

d57e25bff5b50295bdc124d68648a946.png

图1.π-LASM系统概述。前端会实时生成全局一致的位姿,后端维护了地图,并纠正了前端的漂移。

我们的系统有两个部分:前端和后端。前端通过ICP过程建立局部到全局的点到平面对应,并实时提供全局一致的位姿。后端联合优化平面和关键帧的位姿,并提供信息来纠正前端的位姿漂移。

2. 前端

2.1 平面提取

我们在整个激光雷达扫描中只以第一个位姿探测这个平面。我们采用论文[30]中引入的区域生长方法来提取平面,并进行了以下改动。对于一个旋转的激光雷达,其点云中包含一个结构。我们参考论文[31]中的做法,将点云转换成一个范围图像。对于同一条扫描线内的点,我们根据旋转角度对它们进行排序。扫描线i中某一点p的K个最近邻只能来自同一条扫描线i或相邻扫描线i−1和i+1。在区域增长步骤中,我们在第i−1、i和i+1条扫描线中为查询点p分别选择5个最近的点。由于可能存在遮挡,一个平面可能被分解成几块。我们试图合并具有相似参数的平面,且只保留得分超过50分的平面。我们也会为新的关键帧提取新的平面,但这只针对一小部分与当前全局平面不匹配的激光雷达扫描。

2.2 扫描中的运动畸变

激光雷达扫描的测量值(即点云)不是在同一时间采集的,因此,测量值会受到运动失真的影响。这个问题可以通过对扫描中的运动进行建模来解决(如论文[1][8]所示)。

2.3 基于ICP的全局点云注册

我们引入了一种新的ICP过程来建立局部-全局点对点-平面对应,并实时估计相对位姿,如图2所示。

8fa9c65bc6ba2f2199e662a3bbfd7d0b.png

图2.我们提出的ICP方法与传统ICP方法比较,我们的ICP方法避免了构建和使用大型KD树。

数据关联

假设有N个全局平面被第k次扫描Lk部分观测到,我们结合这N个平面建立集合Qk。然后我们在Qk上建立一个KD树。基于此我们提出Lk坐标系下的点集Lk+1与N个全局平面之间的数据关联如下:

58081d0525fe4f2d629445ddaa2ac17c.png

其中P表示来自Lk的K个最近邻点且属于平面πn的点集。

状态估计

基于P与πn的数据关联,我们定义点到平面的残差如下:

fcaae9c6cc73d1b6bb34d67b31612db3.png

我们使用LM算法来最小化如下残差向量:

6881b89a93bd1f3ee7f8e32ae99d3323.png

2.4 关键帧选择

我们用下列三个标准来判断一个新的关键帧是否是我们需要的:

a) Lk+1中超过30%的点未能匹配;

b) 当前帧与最新关键帧之间的距离大于τ(在我们的实验中τ=0.15m);

c) 当前帧与最新关键帧之间的旋转夹角大于θ(在我们的实验中θ=10°);

在初始阶段(即轨迹长度小于2m时),我们会放宽引入新关键帧的标准,即设置τ=0.1m和θ=5°。这是因为激光雷达点云是稀疏的,一帧扫描的平面参数通常质量较低。并不是所有的关键帧都会被保留,其中一些将在后续步骤中被删除(如[32]中所示)。

2.5 新平面的选取

对于一个新的关键帧,我们首先使用第2.1节中引入的算法,从与全局平面不匹配的点中检测平面。我们只保留了得分超过50分的平面。如果一个新的全局平面不能在超过三个关键帧中被跟踪到,它将被删除。

3. 后端

3.1 平面优化

我们的目标是共同优化平面参数和关键帧位姿,这类似于视觉SLAM中的BA(即视觉SLAM中对3D点和相机位姿进行共同优化)。由于BA对视觉SLAM中的点特征有特殊的意义(如论文[33]所述),这里我们将其命名为联合最小化问题平面调整(PA)。图3展示了一个PA问题的因子图:

c49a7248818c8bfe99262c283a036d93.png

图3.PA问题的因子图

假设我们有N个关键帧和M个平面,Pij是在位姿Ti处观测到的在平面πj上的Nij点的集合,而Pijk是Pij的第k个点。假设pijk为pijk的齐次坐标,则pijk与πj之间的有符号距离的形式为:

629c38d9eac5142b372ab004a84079fc.png

PA问题的损失函数为:

3489e7344d973853a49f7245065c02fd.png

由于Nij通常非常大,而即使是小场景下的PA问题也是一个运算量很大的最小二乘问题。我们引入π因子来解决这个问题,如下所述。

3.2 π因子

基于3.1中定义的dijk,我们有:

e6a1a8f9e068ef0616e243fd68c57e09.png

那么,Nij个点的最小二乘损失函数有如下形式:

46178865689393582a1a47ed3755ff50.png

关于Ti和πj的π因子定义如下:

f2f211fd7b5de0ba3af937da1a90816a.png

如图3所示,π因子可以很容易地纳入因子图中。对于每个Pij,我们只需要计算一次Gij。在优化过程中,Gij是一个常数组成的4×4矩阵。利用π因子,我们将Nij所有约束整合为一个,这大大降低了LM算法的计算成本。利用π因子的定义,我们可以将PA的损失函数E重写为:

51221709f32f4c9334111d2ed97f1f60.png

2.3 局部平面优化(LPA)

我们采用窗口优化策略[32]来更新最新的w个关键帧位姿和相应的平面以提高效率,该步骤被称为局部平面调整(LPA)。当关键帧位姿的数量大于窗口大小时,我们将从滑动窗口中删除最旧的关键帧。我们将删除满足以下条件的关键帧:

a) 此关键帧不包括一个新平面或其所有新平面都已被删除。

b) 此关键帧与此关键帧之前的关键帧之间的距离小于0.3m。

c) 此关键帧与此关键帧之前之间的旋转角度小于15°。如不满足以上条件,我们保将留这个关键帧用于全局优化,并边缘化它和LPA滑动窗口中其余关键帧没有看到的平面。边缘化的步骤是通过使用Schur complement来实现的。我们采用LM算法来解决这个最小化问题。在这里,我们稀疏化关键帧,以减少全局优化的运行时间。

3.4 全局平面优化(GPA)

我们进行全局平面调整(GPA)来最小化损失函数,以全局优化关键帧位姿和平面参数。具体步骤包括触发式回环检测、平面关联、RANSAC、合并全局平面,最后以GPA优化后的参数更新整个系统。

306dce989ff51dccb5d5758bb36b594c.png

实验结果

bb805e6e55ab9cc501e29984d5dcfce3.png

我们首先进行了一项消融研究,以测试不同成分的影响。然后,我们将我们的算法SOTA的LOAM改进算法LeGO-LOAM进行比较。最后,我们分析了算法运行速度。实验环境为i7-3770CPU和16G内存的电脑。

1. 数据集

我们使用VLP-16激光雷达收集了三个室内数据集。表1列出了统计数据。如下文中图4所示,这三个数据集都具有挑战性。它们都有多种快速旋转的运动,且都包含一个闭环。同时,它们的起点和终点是相同的。因此,我们可以利用起始点和结束点的位姿之间的差异来定量地评估一个SLAM算法的准确性。

8d1bcdb9d9780446510ff7e7a1c10154.png

2. 消融实验

我们评估了我们的算法的不同配置的影响。滑动窗口的大小被设置为10。我们测试了算法的以下配置:

a) π-LASM-Undis:运动的独立性被删除,我们采用[35]中的方法来解决点到平面的配准问题。

b) π-LASM-GPA:已删除GPA。

c) π-LASM-GPA-LPA:删除GPA和LPA。

表2展示了不同配置下的算法得到的起点和终点之间的位姿误差。很明显,运动的独立性、LPA和GPA都有利于位姿估计。

dc71cc99289828b547c6147808203dad.png

3. 与SOTA算法LEGO-LOAM的对比

表2列出了起点和终点之间的位姿误差。图4展示了由我们的算法和LeGO-LOAM生成的轨迹和关键帧位姿。在我们自己采集的数据集上,LeGO-LOAM无法在后两个数据集上顺利运行。可见,LeGO-LOAM的跟踪位姿和关键帧位姿的质量是不稳定的。这是因为LeGO-LOAM的跟踪位姿是通过记录两次连续扫描计算出来的。但我们的跟踪位姿是由全球注册生成的。另一方面,我们发现π-LASM-GPA-LPA比LeGO-LOAM效果更好。在KITTI数据集上,π-LSAM和LOAM的相对位置误差分别为0.72%和0.78%,我们的算法达到了SOTA。

1aa20999ac3c4c230f54f088c1932d12.png

图4.KITTI数据集00序列的运行结果。

此外,如表III所示,我们算法的LPA变体可以达到实时运行。我们也在数据集3上测试了没有π因子的LPA和GPA的运行时间。结果表明,π因子可使LPA和GPA的运行速度分别提高28倍和36倍。

d7577999c82c882d532415334515143d.png

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

干货下载与学习

后台回复:巴塞罗那自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf

后台回复:3D视觉课程,即可学习3D视觉领域精品课程

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

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

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

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

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

7ad6f59dd4a79b8ef81704ef5e0af36c.png

▲长按加微信群或投稿

6a0c3f55c121830bfff056150a299c9c.png

▲长按关注公众号

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

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

3edaf123ebcbefd87bbd74ddc84f31e1.png

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

觉得有用,麻烦给个赞和在看~  4decd15f065bd767be3d54ca58ddf55d.gif

关注
打赏
1655516835
查看更多评论
立即登录/注册

微信扫码登录

0.0574s