5

RSLO:自监督激光雷达里程计(实时+高精度,ICRA2022)

 2 years ago
source link: https://zhuanlan.zhihu.com/p/537014893
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Robust Self-Supervised LiDAR Odometry Via Representative Structure Discovery and 3D Inherent Error Modeling(RAL 2022& ICRA2022)

Motivation

激光雷达在自动驾驶中是个必要的传感器,但是激光雷达由于自身数据的稀疏性和信噪比的问题会给运动估计的鲁棒性带来比较大的挑战,如下图,即使是两帧相邻的激光雷达点云,也会由于动态物体和错位带来一个误匹配,这种误匹配对于激光雷达里程计是非常致命的,所以如何发现并且减轻这些不可靠区域的权重是一个值得研究的问题。

作者:晃晃悠悠的虚无周 | 来源:微信公众号「3D视觉工坊
v2-01ee5564a7098eff0be7cdbaf53aad8c_720w.jpg

另一方面,虽然基于3D CNN的模型已经证明了能在一定程度上解决上述问题,但是现在有的基于3D CNN的自监督激光雷达里程计并没有明确的设计来强制网络自适应地聚焦于可靠区域,并且自监督方法通常利用扫描之间的几何一致性来实现自我运动估计。如上图所示,几何一致性在实践中可能无法完全保持。并且现有的大多数方法都是通过估计不确定性标量从而在类别级别上建模并优化固有误差。但是如下图所示,固有误差大小不仅在不同类别中不同,而且在不同方向上也不同,所以需要一个更细致的固有误差模型来区分训练过程中不同方向上的不确定性差异。

Contribution

  1. 提出了一个两阶段的自我运动估计框架,将网络的重点放在两帧LiDAR里程计的代表性结构上。
  2. 通过3D CNN估计逐点协方差,并且对点的不确定性进行建模,从而在此基础上更好地降低自监督损失的固有误差。
  3. 引入一个不确定性感知建图模块,该模块将发现的代表性结构和CNN的逐点协方差估计用于地图构建和scan2map的位姿优化。。
  4. 在KITTI数据集的平移/旋转误差方面,所提出的自监督里程计比之前的技术水平高出16%/12%,在Apollo Southbay上的表现也很好。基于建图模块和更多的训练数据,所提出的系统甚至可以实时高效地与有监督的方法竞争。

代码已开源:https://github.com/SamuelYale/RSLO

Content

  1. 帧间激光雷达里程计

传统的激光雷达里程计通常是基于环境是绝对刚性的前提,但是现实环境由于动态物体的存在,必然不是绝对港行的,为了缓解这种困境,可以将激光雷达的单帧扫描视为一系列子区域,并假设只有一部分子区域对应于具有良好测量条件的静态对象从而可以满足绝对刚性假设。基于这个宽松的假设,将自监督里程计分为两个阶段,第一阶段估计子区域的刚性变换,第二阶段使用这些子区域变换加权投票给出最终的自我运动估计,整体流程如下。几何特征编码器将输入的激光雷达扫描和编码进高维的特征向量和,每个特征可以代表扫描的一个子区域块,该子区域被命名为几何单元(GU),这些特征的信道连接送到几何单元变换估计模块,从而分层地估计两帧之间的几何单元(GU)变换。在自我运动估计投票期间,自我运动根据最终层的GU变换估计进行投票。预测的投票权重通过自监督训练管道集中于具有代表性结构的GU。

这种设计可以减轻非刚性零件的影响,并将网络集中在具有代表性结构的子区域。为了实现实时性,设计了一个异构网络,包含一个三维几何特征编码器和一个用于子区域变换估计的二维几何单元变换估计U-Net,用来平衡速度和精度。对于自我运动估计的投票,采用基于自注意力机制的投票模块来识别具有代表性结构的区域,并调整不同子区域的投票权重。

1)子域表示

采用由子流形卷积层构成的3D CNN作为几何特征编码器对子区域特征进行编码。常规三维卷积网格中的特征向量天然地与扫描中的矩形子区域块相关联。取最后一个卷积层输出的特征向量来表示不同的子区域。我们将这些规则子区域命名为几何单元GU,将特征命名为几何单元特征。

2)GU变换估计

识别两次扫描之间的几何单位对应关系是非常重要,但是传统方法是非常效率低下的,因此采用了一种高效的U-Net结构作为几何单元变换估计模块,从而一次性估计所有几何单元变换。首先将几何单元特征重塑为鸟瞰图特征地图,然后按照通道级别连接他们,从而维护空间拓扑并且保持刚体运动,最后将这些特征送入编码器-解码器网络用来进行几何特征变换估计。为了使几何单元变换估计更具有局部关联性,选择在当前的中心坐标系中估计几何单元变换。关于在当前中心坐标系的刚性全扫描的变换

和刚性扫描子域的变换

的转换关系可以推导为如下:

是几何单元帧和雷达帧之间的偏移,下图说明了这两者之间的关系

为了提升鲁棒性,采用分层估计的方式

,但是只有最精确的最终层预测

被用在接下来的自我运动估计投票中,h代表尺度级别,Mh代表在对应的尺度级别的几何单元的数量。

3)自我运动估计投票

这个模块的主要目的是找到包含代表性结构的可靠几何单元,并将网络集中在这些单元上进行自我运动估计。基于之前几何单元变换估计模块中解码器的最后一个特征映射,投票模块可以预测出平移和旋转的得分

。预测得分在所有几何单元上使用标准softmax函数进行归一化,从而作为不同几何单元的投票权重:

。总的来说,投票阶段的运动估计可以表述为:

投票模块能够很好地区分几何单元的置信度,下图显示了投票权重的预测

2.基于三维固有匹配误差建模的自监督训练1)三维不确定性感知的几何一致性loss为了估计不同方向的测量不确定性,对于每个点,都用一个3*3的协方差矩阵进行关联从而描述它在三维空间中的不确定性。对于每个点在相邻帧之间的协方差矩阵,通过一个三维CNN进行估计。另外推导了一个损失函数用来指导协方差学习,并以不确定性感知的方式来监督自我运动估计。通常来说,在上述假设下,点对齐误差也是满足高斯分布的

那么点对齐误差的负对数似然可以推导为

并且将其作为不确定性感知的几何一致性损失用来监督自我运动估计和点协方差。2)其他loss采用一个残差提升loss并且通过ICP生成一个更精确的自我运动估计,ICP通过之前的网络生成的自我运动估计位姿进行初始化,并且只迭代2次,然后在不同尺度上对位姿进行近似,之后通过如下的近似目标函数来监督几何单元的变换:

α和 β是对应的超参,对于不同的几何单元,

和会动态的进行调整,从而使得网络聚焦在区域中的代表性结构。

L是之前投票环节的预测分数。3.不确定性感知建图

激光雷达点云的噪声和稀疏特性限制了基于两帧的里程计的精度。传统方法通过累积之前的扫描来建图场景,并通过扫描到地图匹配进一步优化自我运动估计。但是非刚性部分和噪声测量会导致帧之间的不一致,现实生活中这是普遍存在的,所以传统方法并不总是可靠的。所以可以将上述的基于学习的点协方差估计和发现代表性结构提供的先验信息合并到建图模块中来解决这个问题。对于具有不确定性的地图更新,考虑引入点和旧地图体素的可靠性从而提高鲁棒性,具体来说,如果变换后的新点(即状态为

)落在空白处,将在那里创建一个新体素,并直接用新点的状态设置其状态:

。否则直接利用Bayes过滤器进行体素更新:

4.实验就KITTI数据集上的性能来看,效果超过了所有的经典方法和有监督及无监督方法,达到了非常明显的sota性能。

在apollo数据集上的表现来看,也达到了sota性能

模块消融实验也能证明各个部分的有效性

Kitti序列10的可视化进一步证明了整体和各个模块的有效性

对于不同物体的权重影响分析,进一步说明了所提出的权重有效性

参数调整实验

关于点协方差估计的可视化,主要是说明可以更有效的提取可靠结构

在Tesla V100的支持下可以达到实时性能

Conclusion

这篇文章效果非常好,作为一个无监督的里程计达到了有监督及经典激光SLAM的精度,并且在算力足够的情况下可以达到实时的性能。里程计网络首先从高维3D特征中估计几何单元变换,然后根据被检测的代表性结构对自我运动估计进行投票。不确定性感知建图模块利用3D CNN的逐点协方差估计构建可靠的建图,并利用先前发现的代表性结构改进基于两帧的自我运动估计。代码已经开源,总的来说是一个非常好的工作。本文仅做学术分享,如有侵权,请联系删文。

3D视觉工坊精品课程官网:3dcver.com
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.单目深度估计方法:算法梳理与代码实现
11.自动驾驶中的深度学习模型部署实战
12.相机模型与标定(单目+双目+鱼眼)
13.重磅!四旋翼飞行器:算法与实战
14.ROS2从入门到精通:理论与实战
15.国内首个3D缺陷检测教程:理论、源码与实战

更多干货

欢迎加入【3D视觉工坊】交流群,方向涉及3D视觉、计算机视觉、深度学习、vSLAM、激光SLAM、立体视觉、自动驾驶、点云处理、三维重建、多视图几何、结构光、多传感器融合、VR/AR、学术交流、求职交流等。工坊致力于干货输出,为3D领域贡献自己的力量!欢迎大家一起交流成长~

添加小助手微信:dddvision,备注学校/公司+姓名+研究方向即可加入工坊一起学习进步。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK