可估计旋转的激光地点重识别方法 - DiSCO

"工作记录"

Posted by xxc on September 19, 2021

这是一篇去年的RAL文章,今天终于找到了空余时间重新来写一个blog系统性地介绍一下这个工作。

Motivation

全局定位的过程可以分为两个部分:1、地点重识别(Place Recognition)2、位姿估计(Pose Estimation)。目前在两个部分都有许多优秀的工作,地点重识别只考虑估计当前位置在地图database中的哪个位置,然后交给位姿估计模块进行精细的位姿估计。但是地点重识别给出的结果用于位姿估计时经常会有失败的情况。这是因为地点重识别的结果不包含旋转信息,如果一个机器人从一个十字路口的不同入口进入时,就会出现这个问题。下图是一个问题的示意图: problem

一种可行的方法是在地点重识别的过程中同时估计旋转。在这方面目前比较主要的工作有 OREOS 以及我们投稿同期的方法 OverlapNet。但这些工作在估计旋转上有一定的问题,首先OREOS的旋转估计是仅通过一些多层感知机来进行拟合,不具有一些可解释性。OverlapNet 与我们的方法都用到了 correlation 的思想。我们是基于 DPCN 的 phase correlation 的思想,首先将激光点云信息转换为 polar BEV 将旋转信息转换为图像上的平移,然后通过可微分的 phase correlation 将该平移估计出来。

Preliminary

极坐标变换:将笛卡尔坐标系下的点云转换到一个轴为ro,一个轴为theta,ro代表在笛卡尔坐标系下点到坐标原点的距离,theta代表其余坐标原点连线到x正方向的角度。

傅里叶变换的性质:图像做傅里叶变换后的频谱包括两个部分:1、幅值谱(一个频率平面波的幅值) 2、相位谱(平面波的相位),对于一个在图像上的平移变换,它仅改变了频谱中的相位部分。因此幅值谱是对平移具有不变性的。

相位相关:相位相关是求解图像平移的方法,本质上是去找到相位相关的最值,同一图像的变换在相位相关图中表现为一个冲激。相位相关算法介绍。相位相关算法在传统的图像配准上有许多应用。

Our Work

在我们的工作中,我们将同时估计候选地点以及旋转的任务表述为两个部分:1、构建一个旋转无关的描述子,2、从网络中恢复出旋转信息。DiSCO 的方法示意图如下:

overview

激光传感器,尤其是旋转激光,其原理使得其获得的信息天然的适合极坐标表达。其数据采集的过程和雷达 Scan 一致,因此之前有方法取名为 Scan Context,其描述子建模方式就是将 3D 激光数据转换到极坐标的表示。其建模的示意图如下:

overview

之前 KAIST 的工作是利用 Scan context 描述子通过一个简单的卷积神经网络来学习地点特征,但这类方法并不具备估计旋转的特征。Scan context 其实将 3d 点云转换到了一个 polar BEV 的表示。旋转信息在 Scan context 中表现为 theta 轴上的平移,很自然的,傅里叶变换可以将该描述子的平移去除,从而将旋转的分量从描述子中剔除。而旋转信息的估计是由我们实现的一个可微分的相位相关算法得到的。原始的 Scan context 描述子只取每个极坐标网格的最高点坐标作为特征,我们认为这是不够的,因此我们提出了一个多层的描述子,同时对每个网格的不同特征进行了实验。网格的特征可以是该网格内激光点的数量、网格内是否有激光点(占用)。

我们的网络结构如下图:

network

网络有两个分支,一个分支去估计旋转,另一个分支去估计候选地点。估计旋转的分支是由 L2 loss 监督,估计候选地点的分支是由 quadruplet loss 去监督进行度量学习。特征提取模块是由两个分支共享,因此在 inference 的时候非常轻量以及快速。

以下是一些对比实验的结果:

pr

pr-result

rotation-result