DH3D: Deep Hierarchical 3D Descriptors for Robust Large-Scale 6DoF Relocalization
Abstract
设计了一种可以从原始点云中提取3维局部特征和描述符的网络。集成了FlexConv和Squeeze-and-Excitation (SE) 使得学习到的局部描述符获取多层次的几何信息和通道关系。通过有效的注意力机制直接聚合局部描述符来生成全局描述符;通过这种方法,局部和全局的描述符可以在一个forward中生成.
Introduction
常用方法:global place recognition+local 6DOF pose refinement;2D图像与3D模型匹配,有了深度网络后精度和鲁棒性有了提升。
本文:提出用语大规模点云重定位的分层深度网络。估计局部特征分辨力的置信图并用无监督学习选择适合匹配的特征点;局部聚合形成全局特征。
贡献:1.首次提出基于点云的全局位置识别和6DOF位姿估计相结合的方法;在一个前向的过程中就可以提取局部特征和全局特征,比以前的方法速度快;
2.使用Flex Convolution(FlexConv)和Squeeze-and-Excitation(SE)块分别将多级空间上下文信息和基于通道的特征相关性融合到局部描述符中,使得特征匹配的性能变好,也提高了全局特征的性能;
3.提出一种无监督显式学习3D特征点检测器方式
4.在点云检索达到SOTA
5.在Lidar上训练,但是在视觉SLAM生成的点云上效果也很好
Related Work
手工制作的局部描述符
学习的局部描述符
3D特征点检测器
手工制作的全局描述符
学习的全局描述符
Hierarchical 3D Descriptors Learning
3D Local Feature Encoder and Detector
已有:(1)detect-then-describe ,其检测器是直接从输入点学习的注意力图。在推理期间,仅针对注意力图定义的关键点提取描述符,通常只利用输入数据的low-level structures,不能利用描述符编码中的高级信息。(2)特征描述是基于PointNet的,其对称函数倾向于仅提供局部集群的有限结构信息。
本文:describe-and-detect,用来推迟我们的检测阶段,以便在学习的描述符中使用更高级别的信息。使用Flex Convolution(FlexConv)和Squeeze-and-Excitation(SE)块分别将多级空间上下文信息和基于通道的特征相关性融合到局部描述符中。
FlexConv(利用空间上下文信息):考虑3d周围k个点 N k ( p l ) = { p l 1 , ⋅ ⋅ ⋅ , p l k } N_k(p_l) =\{p_{l_1},· · · ,p_{l_k}\} Nk(pl)={pl1,⋅⋅⋅,plk},将k+1个点当做图来处理,顶点,边。图上的运算就可以用 f Θ ( p l , p l k ) f_Θ(p_l,p_{l_k}) fΘ(pl,plk)表示,PointNet和可以看作是 f Θ ( p l , p l k ) = f Θ ( p l ) f_Θ(p_l,p_{l_k})=f_Θ(p_l) fΘ(pl,plk)=fΘ(pl)没有关注周围像素点,FlexConv是传统卷积推广,定义如下:
h ( p l i ) ∈ R C h(p_{l_i})\in R^C h(pli)∈RC将一个点投影到高位特征空间的编码函数;卷积核 ω : R 3 × R 3 − > R C \omega:R^3\times R^3->R^C ω:R3×R3−>RC.
SE block(将Flex输出的不同通道进行关联):输入 U = { u 1 , … … , u c } ∈ R N × C U=\{u_1,……,u_c\}\in R^{N\times C} U={u1,……,uc}∈RN×C , u c ∈ R N u_c\in R^N uc∈RN表FlexConv第c个通道的输出。
(1) z = f s q ( U ) : R N × C − > R C z=f_{sq}(U):R^{N\times C}->R^C z=fsq(U):RN×C−>RC :压缩通道,全局平均池化,聚合空间信息;
(2) s = f e x ( z ) : R C − > R C s=f_{ex}(z):R^C->R^C s=fex(z):RC−>RC:FC+ReLU+FC,捕获通道依赖关系和通道间的非线性关系
(3)SE Block学到的通道激活(感觉类似于权重)用于重新校准FlexConv的输出。
Encoder architecture:输入:点云 P = { p 1 , . . . , p N } ∈ R N × 3 P=\{p_1,...,p_N\}\in R^{N\times 3} P={p1,...,pN}∈RN×3,从两个空间分辨率中提取结构信息(两个分支)。将两种分辨率的输出相加,融合多层次的上下文信息,生成局部特征图 Ψ \Psi Ψ 。L2归一化后得到局部描述符 L d e s L_{des} Ldes。 P i ∈ P 且 P j ∈ P ′ 时 M ( i , j ) = 1 P_i\in P\ 且\ P_j\in P'时\ M(i,j)=1 Pi∈P 且 Pj∈P′时 M(i,j)=1 。损失函数定义如下,
◦ ◦ ◦ 表示按元素相乘, ∣ ∣ ∣ ∣ F ||\ ||_F ∣∣ ∣∣F表示范数, η \eta η 表示平衡匹配与非匹配的超参; μ \mu μ表示非对应点对之间期望距离的下界;分母是为了归一化。
3D local feature detection:从局部特征图 Ψ \Psi Ψ生成关键点显著性图 S ∈ R N × 1 S\in R^{N\times 1} S∈RN×1;好处:不会被底层的一些噪音干扰,做到describe-and-detect,而不是detect-then-describe,仅需一步。损失定义:
η \eta η用于评估学到的检测器, s i ∈ [ 0 , 1 ] s_i\in [0,1] si∈[0,1]指第i个关键点,j是 Ψ ′ \Psi' Ψ′上的最近邻
因为最近邻太过严格,所以改为k近邻,只要有一个匹配 c i j = 1 c_{ij}=1 cij=1,k超参
Global Descriptor Learning
创新:没有直接把Netvlad层接在cnn后,接在局部特征图后以利用局部特征信息。
用NetVlad前添加两个FlexConv层,将局部特征投影到更高维度,注意力预测器输出每个点的注意力图(类似于每个点的权重?),最后用Netvlad输出一个全局特征。
Attention map prediction
Experiments
在Oxford RobotCar的点云中评估
在VSLAM生成的点云中评估(DSO)