当前位置:   article > 正文

Disco-SLAM算法之Scan-Context

disco-slam

Scan-Context的理解

Scan context: 3D点云的场景识别/回环检测

原创投稿 | ScanContext 论文详解 - 用途:Lidar SLAM 回环检测、空间描述符(这篇我觉得写得通俗易懂)

Scan Context的创建

简单来说,把传感器周围的点云存在一个类似下面的地图中,3D降维到2D

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rXTgzGxV-1680147328886)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230118233805364.png)]
在这里插入图片描述

降维后的Scan context就是一个Nr*Ns的矩阵,横轴代表环向维度,纵轴代表径向维度,矩阵中的像素值是取的对应环向和径向相交区域(bin, 注意是具有一定体积的空间区域)点的最大高度;这个矩阵就是对该场景的编码,由于包含了全局信息,所以是一个全局的描述符。

Similarity score的计算

通俗的讲就是这两个降维后的2D矩阵通过

在这里插入图片描述

这个公式来计算相似度,那如果旋转过后,位置没变,但是角度变了是不是整体的ring没变,但是sector方向整体偏移,那就用最简单的方法将每一个值都试过去,看看是不是符合相似度阈值。

在这里插入图片描述

Two-phase Search Algorithm

那么显然前面说的,挨个试过去的方法运算量很大,效率奇低,所以作者提出了一种高效的方法。将整个地图再次降维一下,通过环键(Ring key)编码来将每一个横轴的值变为一个实值,这样整个一圈圈的ring就从Nr ✖ Ns 变为Nr了。

环键编码算法采用如下

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

这样就会得到许多个一维向量(不同的location),作者构建了一个KDTree来搜索K个最相似的scan index,搜索结果再进行相似度匹配计算就会大大提高效率。

个人理解,就是把原先的三维地图降维到二维矩阵,再通过判断Sector方向的突出地貌个数来降维(确实虽然旋转了,但是每个方向的整体地形不能变,或者说每个视角中的高点个数不会变),最终得到许多个一维的KD树匹配。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/710965
推荐阅读
相关标签
  

闽ICP备14008679号