【论文阅读】PointNetVLAD: Deep Point Cloud Based Retrieval for Large-Scale Place Recognition
文章目录
-
-
1.介绍
-
2.相关工作
-
3.问题定义
-
4.PointNetVLAD
-
- 4.1 网络框架
- 4.2 度量学习
- 4.3 置换不变性
-
5.实验
-
- 5.1 基准数据集
- 5.2 结果
-
题目:基于深度点云的大规模位置识别检索
作者:Mikaela Angelina Uy Gim Hee Lee Department of Computer Science, National University of Singapore
(新加坡国立大学)
来源:2018 CVPR
paper
link
摘要:基于点云的位置识别检索难点在于难以从点云中提取局部特征描述符,这些特征描述符随后可以编码为检索任务的全局描述符。本文使用深度网络来解决基于点云的位置识别检索。
本文是PointNet和NetVLAD的结合,允许端到端训练和推理从给定的3D点云提取全局描述符。
提出lazy triplet and quadruplet损失函数可以生成更具判别性和一般户阿德全局描述符来解决检索任务。
1.介绍
定位问题的一种常用方法是首先将环境地图存储为3D点云数据库,可通过以下方法构建:
- Structure-from-Motion (SfM):使用结构-从运动(SfM)的图像集合构建。利用多张图像之间的视差来恢复场景的三维结构。
- SLAM:使用雷达传感器在移动过程中扫描环境,实时构建3D点云地图,同时利用SLAM算法计算出传感器在环境中的位置和姿态。
给定查询图像或局部场景的LiDAR扫描,然后去数据库检索最好的匹配,这将得到查询图像/扫描相对于参考地图的确切位姿。
基于图像的定位一般采用两步法:位置识别、姿态估计
每个全局描述符和相机位姿同时存储到数据库中。从查询图像中提取类似的全局描述符,并通过有效的搜索检索数据库中最接近的全局描述符。最接近全局描述符的相机姿态将为我们提供查询图像相对于参考地图的粗略定位。在姿态估计中,使用PnP和几何验证算法计算查询图像的准确姿态。
基于图像的位置识别使用SIFT提取特征,使用bag-ofwords得到全局描述符。但是雷达没有类似SIFT提取局部特征的算法,所以无法通过词袋模型计算全局描述符。大多数已经存在的方法通过GPS(原理)提供粗略定位,然后是点云配准用于姿态估计。
激光雷达具有光照不变性,几何结构基本保持不变。

2.相关工作
3.问题定义
定义3D点云数据库M,这个参考地图被划分为一组子地图。所有子地图覆盖区域面积大致相同,每个子地图中的点数应该较少。使用下采样滤波器确保每个子地图具有相似的点数。
基于检索的大规模3D点云可以做出如下定义:
从一个参考地图数据库 M 中检索出与查询点云 q 结构上最相似的子地图。查询点云 q 的覆盖区域AOC(q) 应与数据库中子地图 mi的覆盖区域 AOC(mi) 大致相同。经过下采样滤波器处理后的查询点云 G(q) 的点数应与子地图 mi的点数一致,即 |G(q)| = |G(mi)|∣G(q)∣=∣G(mi )∣。
通过深度学习解决点云地图检索问题:
设计一个深度网络来学习一个函数f(.),该函数将学习给定的下采样点云映射为一个固定大小的全局描述符f§。

计算所有子地图的全局描述符全局描述符f(mi)并存在内存中,在线阶段只需计算查询点云的全局描述符向量,然后再存储列表执行最近邻搜索来找到最相似的子地图。
4.PointNetVLAD
4.1 网络框架
主要由PointNet、NetVLAD和全连接网络组成。

取PointNet的一部分,裁剪到最大池化层之前。

本文的输入是点云序列,通过pointnet将输入点云中的每个点映射到一个更高维的空间,提取D维局部特征。
然后将局部特征输入NetVLAD,其学习了K个聚类中心,即视觉词,
并输出一个DXK维向量,
是局部特征向量的聚合表示,
输出是VLAD描述子,但是由于是高维度向量,使得最近邻搜搜的计算成本很高。为了解决这个问题,使用全连接层将DXK维向量压缩成一个紧凑的输出特征向量。然后是L2正则化输出O维度
的全局特征向量。
4.2 度量学习
端到端训练网络学习函数f映射输入点云到一个判别性紧凑全局描述符向量。提出“LazyTriplet”和“Lazy Quadruplet” 损失可以学到判别和一般化的全局描述符。
损失函数被设计成最小化全局描述符向量之间的距离Pa和Ppos,并且最大化和负点云之间的距离。
Lazy triplet :最大化锚点和最近负点云的距离

Lazy quadruplet:

4.3 置换不变性
点云中的点集是无序的。因此,网络的简单设计可能因为输入点的不同顺序产生不同结果。网络应该做到无论点云中的排列顺序如何,网络都应该输出相同的全局描述符。
给定一个输入点云
,在NetVLAD之前的层(即PointNet)将P中的每个点独立转换为
,因此需要证明NetVLAD是一个对称函数,这意味着其输出对于P’中点的顺序是不变的,从而得到的全局描述符f(P’)是顺序不变的。
5.实验
5.1 基准数据集
- Oxford RobotCar
- a university sector
- a residential area
- a business district
子地图预处理 :移除地面,下采样到4096个点,将数据进行平移和缩放操作,使其均值为0,并且将其值范围调整到[-1,1],每个下采样子地图在其各自的质心处标记一个UTM坐标,定义结构上相似的点云最多相距10米,结构上不相似的点云至少50米。

数据划分与评估:
将每个参考地图按照参考地图中轨迹的规则间隔 划分为一组子地图。
选择测试参考地图中的一个子地图作为一个查询点云,来自覆盖同一区域的不同的另一个参考地图的所有子地图作为数据库。如果查询的子地图能够检索到一个在25米范围内的点云,那么就认为它成功地完成了定位。
Oxford Dataset
-
70%用于训练,30%用于测试;在训练和测试参考地图中,分别以10米和20米的固定间隔划分子地图。
-
每个子地图包括车子在20m轨迹内的所有3D点。
-
训练子地图21711个,测试子地图3030个,每次约有120-150个子地图。
In-house Datasets -
U.S.、R.A. 和 B.D. 地区都被用作测试参考地图,测试仅在Oxford上训练的泛化能力。
-
对于 U.S. 和 R.A. 划分为训练和测试参考地图,用于网络微调。(子地图在每个训练和测试参考地图中以 12.5 米和 25 米的固定间隔提取)
-
每个子地图位置周围 25 米×25 米边界框内的所有 3D 点都被包括在内。

5.2 结果
将其性能与原始 PointNet 架构进行比较,该架构使用最大池化层(PN MAX)和全连接层来生成与我们相同输出维度的全局描述符。我们还将我们的网络与在 ModelNet 上训练用于刚性物体分类的最新 PointNet(PN STD)进行比较,以研究在 ModelNet 上训练的模型是否可以扩展到大规模环境。在softmax层cut输出256维输出向量。
输出维度分析
研究网络在全局描述符f的不同输出维度上的判别能力。
