【论文笔记】Efficient 3D LIDAR based loop closing using deep neural network

【论文笔记】Efficient 3D LIDAR based loop closing using deep neural network

    ~~~          ~~~~      3D LIDAR 数据中的闭环检测是 SLAM 系统中一个必不可少但具有挑战性的问题。减少全局不一致性或重新定位失去定位的机器人很重要,而缺乏先验信息则很难。我们提出了一种使用 siamese 卷积神经网络的 LIDAR 点云半手工表示学习方法,该方法将闭环检测陈述为相似性建模问题。使用学习到的表示,两个 LIDAR 扫描之间的相似性分别转换为表示之间的欧几里德距离。在此基础上,我们进一步建立 kd-tree 来加速相似扫描的搜索。为了证明所提出方法的性能和有效性,采用 KITTI 数据集与其他 LIDAR 回环检测方法进行比较。结果表明,我们的方法可以实现更高的准确性和效率。
  我们提出了一种将 LIDAR 数据转换为具有旋转不变性的 DNN 可访问表示的方法。这种手工制作的表示由 DNN 进一步学习以识别循环闭包。结果,网络的输出变成了低维表示,这也使得欧几里德度量变得有意义。它最终提供了一种有效的方法来检测 3D LIDAR 数据中的闭环。本文提出了以下贡献:
  1.范围信息的统计将3D 点云转换为单通道图像。该表示适用于神经网络并且具有先验旋转不变性。
  2.闭环检测问题变成了身份验证问题。引入了孪生卷积神经网络来模拟激光雷达扫描之间的相似性,可以使用少量样本进行训练。
  3.与其他距离度量相比,最终表示中的欧几里得度量是有意义的,在该度量上建立 kd 树以显着提高海量数据的搜索效率。

方法

    ~~~          ~~~~     整个检测框架如图 1 所示。首先,通过使用 LIDAR 数据的环结构和范围分布信息,我们将点云转换为具有旋转不变性的手工表示。其次,我们利用预训练的卷积神经网络来实现学习到的低维表示。最终表示之间的欧几里德距离是闭环检测的相似度。基于低维最终表示,建立kd-tree以提高搜索效率。
图2

旋转不变表示

    ~~~          ~~~~     对于激光雷达传感器获得的点云P,根据球坐标中的离散仰角,可以将其划分为N个环 S N i S_N^i SNi,其中i是从1到N的环的索引。为了变换整个3D点云到二维表示,我们首先将每个 S N i S_N^i SNi 转换为一维直方图 Hi。我们设置了一个恒定的桶数 b 和一个距离范围 I = [vmin; vmax],然后将 I 分成大小的子区间:
公式1
每个桶对应一个分离区间,如下所示:
公式2
所以环中点的所有范围值 v§ 都可以找到它属于哪个桶。点云 P 的环 SNi 的直方图可以写成
公式3
其中
公式4
  理论上,每帧的 LIDAR 测量次数是一个常数值。在实践中,某些表面类型(例如玻璃)可能出于某种原因根本无法返回任何有意义的测量结果。归一化确保直方图在这些意外情况下保持可比性。最后,我们按照环从上到下的顺序将 N 个直方图 H b i H_b^i Hbi 堆叠在一起。然后通过我们的方法使用点云 P 生成 N×b 单通道图像表示 X = ( H b 0 ; ⋅ ⋅ ⋅ ; H b N − 1 ) X = (H_b^0; · · · ; H_b^{N−1}) X=(Hb0;;HbN1)。使用 2D 表示,如果机器人在同一位置旋转,则表示始终保持不变,因此旋转不变。位置识别中的一种干扰是移动物体,因为它可能导致范围分布的不可预测的变化。通过利用环信息,可以在一定程度上容忍干扰,因为运动物体通常发生在地面附近,对应于更高仰角的环与这些动态解耦。此外,距离值在激光雷达数据中是可靠的。总之,这就是我们以这种方式转换点云的原因。

学习表示

    ~~~          ~~~~     使用手工制作的表示 X,我们将闭环检测转换为身份验证问题,该问题可以用孪生神经网络解决。我们提出了一个具有对比损失的 DNN 来学习最终表示并用 caffe1 实现它。神经网络的结构如图 2 所示。 对于一个孪生卷积神经网络,最关键和最有趣的部分是对比损失函数,由 Lecun 等人提出。 [18],显示如下:
图12
公式5
  在训练步骤中,损失函数需要一对样本来计算最终的损失。设标签 Y 分配给一对 X1 和 X2:如果 X1 和 X2 相似,则 Y = 1,表示本文中两处是闭环;如果 X1 和 X2 不相似,则 Y = 0,表示这两个位置不是闭环,这是移动机器人 SLAM 系统中的常见情况。在对比损失函数中,m > 0 是一个边际值,它会影响不同对在训练步骤中的作用。实际上,margin 值越大,神经网络就越难训练。在本文中,大多数不同的图像对不能轻易与相似的图像对区分开来,因此我们设置 m = 8,一个相对较高的值。假设siamese卷积神经网络一侧的输出是一个d维向量GW(X)={x1; · · · ; xd}。定义要从 X1 和 X2 之间的神经网络学习的参数化距离函数为 DW (X1; X2),它表示 GW 的输出之间的欧式距离。显示如下:
  公式6
  对比损失的目的是降低相似对的 DW 值并增加不同对的值。总之一句话,最终的表示GW(X)其实是一个低维向量,表示点云P和它分配到的位姿。

距离度量

实际上,对于一对输入图像 X1 和 X2,为了在测试步骤中实现相似性,我们假设所有位置都是闭环并设置标签 Y = 1,则对比损失如下
公式7
可以看出,如果两个地方是真正的闭环或最终的表示相似,则计算出的对比损失应该是一个低值。如果不是闭环,它应该是一个更高的值,而对比损失的第二部分应该更低。所以点云 P 的最终表示 GW (X) 在欧几里德空间中是有意义的,我们提出度量 Ws 如下:
公式8
我们还使用另外两个经典距离度量来衡量 X1 和 X2 之间的相似性。第一个是两个直方图之间的离散 Wasserstein 度量,也称为 Earth Mover0s 距离 (EMD)。对于多维直方图,此计算涉及运输问题的解决方案,通常使用匈牙利算法解决,该算法非常复杂。由于我们的图像由一维直方图组成,我们定义最终的度量是N个直方图的Wasserstein度量的平均值,因此EMD度量的公式如下:
公式8
另一个距离度量是余弦距离 (Cos)。余弦距离是两个非零向量之间相似性的简单而常见的度量。它测量它们之间夹角的余弦,也可以用来测量图像之间的相似度。本例中相似度的定义如下:
公式9
本质上,本节中提到的三种不同方法测量一对图像 X1 和 X2 之间的距离。 WC 和 WE 都在 [0; 1],而 WS 不是因为最终表示 GW 的定义。然而,对于本文中提到的所有指标,都有一个共同点:指标越高,两个图像越不相似,反之亦然。如果度量低于某个阈值 τ 或接近于零,我们可以得出结论,两个图像或特征是相似的,并且点云分配的两个姿势是闭环的。

KD-Tree 搜索实现

如果网络经过预训练,我们就能够将 3D 点云 P 转换为 d 维特征向量 GW (X)。由于人工统计和 DNN,最终的表示是半手工制作的。我们可以基于大量的最终低维向量构建一个 kd-tree T。如果新的点云到来并通过预训练的 DNN 转换为某个向量,则特征向量能够在阈值 τ 下在已建立的树中找到 m 个最近的向量。本质上,每个向量都与 SLAM 系统中某个特定且准确的位姿相关联,但并非所有最接近的向量都是闭环位姿。一些最近的姿势和新的姿势在时间轴上是连续的。过滤这些姿势后,剩下的最接近的姿势就是我们想要的真正的闭环。在网络输出上使用 kd 树利用了我们的最终表示 GW (X)。更关键的是,当我们在海量数据中寻找闭环时,基于 kd-tree 的搜索显着提高了搜索效率,因为在阈值 τ 的约束下,大多数计算是不需要的和被忽略的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值