Scan Context++:在城市环境中具有鲁棒性的位置识别描述子
Posted Being_young
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scan Context++:在城市环境中具有鲁棒性的位置识别描述子相关的知识,希望对你有一定的参考价值。
文章:Scan Context++: Structural Place Recognition Robust to Rotation and Lateral Variations in Urban Environments
作者:Giseop Kim, Sunwook Choi, and Ayoung Kim
编译:点云PCL
代码:https://github.com/irapkaist/scancontext.git
本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。内容如有错误欢迎评论留言,未经作者允许请勿转载,欢迎各位同学积极分享和交流。
公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起每交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。
摘要
位置识别是机器人导航中的的关键模块,现有的研究主要集中在视觉位置识别上,即仅仅根据之前访问过的地方的外观来识别它们。在本文中,我们通过基于结构外观(即距离传感器)识别位置来解决位置识别问题,扩展了之前在旋转不变空间描述子上的工作,该描述子完成了一个通用描述符,在俯仰运动不严重时,该描述子对旋转和平移都具有鲁棒性。我们引入了两个子描述子,实现了拓扑位置检索和1-DOF半度量定位,从而弥合了拓扑位置检索和度量定位之间的差距,从环境复杂性和规模方面对所提出的方法进行了全面评估,源代码开源:https://github.com/irapkaist/scancontext.git
可以轻松地集成到现有的激光雷达同步定位和建图(SLAM)中。
主要贡献
虽然我们之前的基于扫描上下文关系的方法是十分具有意义的,但该算法未能实现横向不变性,并且使用蛮力搜索效率低下,但为了克服了这些限制,我们完成了算法,包括旋转和横向鲁棒性,从而为距离传感器引入了通用的结构位置识别,其次,改进的算法改进了以前的暴力搜索,使用子描述符,并将搜索过程加快了一个数量级。总之,该方法新贡献有:
-
对横向/旋转变化的鲁棒性:在车道高度变化不可避免的城市环境中,缺少横向不变性可能是一个关键问题,为了解决这个限制,我们将前面的描述推广到同时包含横向和旋转鲁棒性,这是通过基于城市道路假设的扫描上下文增强来实现的。
-
半度量定位:结合位置检索和度量定位,我们的全局位置识别方法弥补了拓扑定位和度量定位之间的差距,提出的方法不仅提供了检索到的地图位置索引,还提供了1-DOF(偏航或横向)初始猜测,用于度量细化,如迭代最近点(ICP)。
-
轻量级和模块独立性:作为一个全局定位器,所提出的方法不需要先验知识或任何几何约束(例如里程计)。在单个C++和头文件对中提供的轻量级实现,很容易集成到现有的SLAM框架。
-
CPU上的实时性能:通过引入紧凑的子描述符、键,我们实现了显著的成本降低,基于检索键的树搜索消除了简单的像素级比较,然后是基于对齐键的预对齐,我们的方法实时运行,支持高达100Hz(例如,KITTI12上的平均7.4ms),无需GPU。
-
广泛验证:我们在不同且具有挑战性的测试场景中评估所提出的方法,以验证会话内和多会话场景,我们注意到,现有的精确回忆曲线可能无法完全捕捉到SLAM研究的环路闭合性能,无法对匹配分布进行评估,所以我们使用DR(distribution recall)曲线不仅测量召回,还测量其多样性,以实现有意义的循环闭合。
-
,时长02:54
总体介绍
该方法由两部分组成:(i)位置描述和(ii)位置识别。整个流畅如图2所示,位置识别模块包括位置检索、半度量定位和验证。
图2 总体框架,给定一个原始距离度量,该方法从地图中的一组位置中寻找相应的位置索引。
A 扫描上下文描述符
这里介绍一种新的空间描述符,名为扫描上下文描述符(SCD),该方法从分割原始测量数据开始,并使用鸟瞰图(BEV)将其投影到离散化的容器中,在划分BEV bin时,考虑了两种类型的垂直基座(极坐标和笛卡尔坐标)。在划分和坐标选择之后,测量的子集使用bin编码函数编码到其相关的离散化bin,正如我们所提出的,提案位置识别模块的不变性来自于bin编码函数和距离函数。
扫描上下文是激光雷达点云的一个全局描述符,它是专门为在室外环境中获取的稀疏且有噪声的点云而设计的。
它将以自我为中心的可见信息编码如下:
图3,(a) 采样点云和(b)相关SCD。在(a)中,黄色和灰色填充实体分别表示PC和CC的箱子。红色箭头表示对齐轴。绿色箭头表示检索轴。在(b)中,每个箱子颜色表示箱子中的最大高度;红色为高(例如10米),蓝色为低(例如0米)
图4,顶行中的三个白点表示地面真相轨迹中的三个样本节点。车辆在变道时曾三次驶过该地。下面是每个节点对应的示例CC。比较三个样本CCs,内容保留在每个列中,而节点之间只移动列顺序,描述符中由运动引起的变化在描述符空间中显示为SCD列顺序偏移
B 三阶段位置识别
我们的位置识别算法由三部分组成:(i)使用检索键进行位置检索,(ii)使用对齐键通过预对齐进行半度量定位,以及(iii)完整的SCD比较,以进行潜在的优化和定位质量评估。使用检索键进行位置检索现有广泛采用的解决方案利用过去的轨迹或运动不确定性来减少搜索空间。与他们不同的是,我们在不事先知情的情况下追求全局定位精度,我们只依赖于描述符本身,同时通过引入子描述符来最小化全局搜索的计算成本。
图5(a)牛津大学2019-01-15-13-06-37的样本显示了旋转和平移变化的重访案例。(b) 极坐标上下文增强包括通过改变车辆的中心姿势来显式重新计算描述符,原始(红色)基于姿势的描述符显示的距离比移动的基于姿势的描述符显示的距离大。仅显示sinlge虚拟车辆案例以进行可视化。(c) 上下文增强由简单的顺序翻转组成。类似地,在PC中,增广描述符显示出比原始描述符更接近地图的距离。
图6 数据集轨迹覆盖在每个航空地图上。第一列显示了KAIST 03(MulRan)和Riverside 02(MulRan),其次是牛津雷达机器人车(Oxford Radar RobotCar)、MulRan的世宗序列和Pangyo(NAVER LABS)。右边的洋红色方框显示了NAVER LABS数据集Pangyo序列中的宽阔道路。
实验
我们在各种数据集上验证了我们的空间描述符和位置识别算法。为了清楚地说明相关的不变性,我们根据重访类型对路线进行了颜色编码。
上图显示主要旋转或横向变异的两个序列。(a) 对于KITTI 08来说,大多数重访都是以相反的方向进行的,集中分布在左上象限。(b) -(c)PC是KITTI 08最稳健的方法。(d) MulRan Riverside 02包含几乎没有旋转变化的横向变化。(e) -(f)CC能够更好地处理横向变化。更高的精度(↑) 和较低的分布(↓) 尽管如此,召回表明性能更好。
总结
本文提出了一种结合拓扑定位和度量定位的全局位置识别模块。作为一种全局定位方法,该方法可以解决被绑架机器人在唤醒阶段充当位置识别器的问题,还展示了Scan Context++在旋转方向和横向方向上的不变性,通过评估,我们验证了所提出的定位器在不需要先验知识的情况下实现了可辨别性和实时性能。
资源
三维点云论文及相关应用分享
【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法
3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)
PCL中outofcore模块---基于核外八叉树的大规模点云的显示
更多文章可查看:点云学习历史文章大汇总
SLAM及AR相关分享
以上是关于Scan Context++:在城市环境中具有鲁棒性的位置识别描述子的主要内容,如果未能解决你的问题,请参考以下文章
使用 context:component-scan 自动装配取消管理 bean
Spring项目中混用@Configuration和xml(context:component-scan)配置
spring里面的context:component-scan