首页 > 汽车技术 > 正文

RSKDD-Net: 基于随机采样的关键点检测器和描述子

2020-10-27 23:52:04·  来源:同济智能汽车研究所  
 
编者按:点云配准的目的是求解出同一坐标下不同姿态点云的变换矩阵,利用该矩阵实现多视扫描点云的精确配准,最终获取完整的3D数字模型、场景。而特征提取是点云
编者按:点云配准的目的是求解出同一坐标下不同姿态点云的变换矩阵,利用该矩阵实现多视扫描点云的精确配准,最终获取完整的3D数字模型、场景。而特征提取是点云配准的关键部分,但目前现存的相关算法大都效率较低、计算量大,难以应用于自动驾驶上。而本篇架构的网络在有效提取特征的同时,大幅提高运算速度,降低时间复杂度,能够快速处理大规模点云,对相关领域的研究具有很高的参考与借鉴价值。
 
本文译自:RSKDD-Net: Random Sample-based Keypoint Detector and Descriptor
文章来源:NeurlPS 2020
作者:Fan Lu, Guang Chen, Yinlong Liu, Zhongnan Qu, Alois Knoll
 
通讯联系:guangchen@tongji.edu.cn
原文链接:http://arxiv.org/abs/2010.12394
 
摘要:关键点检测器和描述子是点云配准过程的两个重要组成部分。过去基于深度学习的关键点检测器依赖于对每个点的显著性估计或对候选点进行最远点采样(FPS),但这些方法低效且不适用于大范围的场景。本文提出了应用于大规模点云匹配的网络——基于随机采样的关键点检测和描述网络(RSKDD-Net)。主要思路是使用随机采样在候选点中进行高效选择,并使用基于深度学习的方法来同时生成关键点与描述子。为了解决随机采样造成的信息丢失,我们设计了一个新颖的随机膨胀聚类策略并引入了注意力机制,分别用以增大每个被采样点的感受野和汇总附近点的位置与特征。同时我们引入了匹配损失在弱监督的情况下训练描述子。我们在两个包含大规模户外场景的激光雷达数据集上进行了大量实验,结果表明RSKDD-Net达到了目前的最高水平,比现存方法快15倍以上。可于https://github.com/ispc-lab/RSKDD-Net获取本文相关代码。
 
1 前言
点云配准是三维计算机视觉中一个重要的研究课题,主要研究两个点云间的理想刚性变换过程。而三维关键点的检测和描述是点云配准的基础。在传统二维关键点特征提取方法的基础上[1-3],研究人员为点云手工设计了一些三维关键点检测器[4-6]和描述子[7-11]。然而,图片的RGB通道相较于点云的笛卡尔坐标提供了更丰富的信息,这使得手工设计的三维关键点检测器和描述子不如二维的特征提取可靠。
 
而随着深度学习的迅猛发展,许多文献对运用深度学习对点云进行三维特征提取进行了探究[12-15]。然而,只有少部分文献研究了在缺乏真值的情况下,如何基于深度学习进行三维关键点检测[16]。3DFeatNet[17]和USIP[16]是两篇基于深度学习的关键点检测的前沿文章,但他们的算法在效率上略有欠缺。3DFeatNet预测了每个输入点的显著性并基于预测的显著性提取关键点。而输入点的显著性估计需要花费大量的时间,使得这个方法的实用性较差。USIP依靠FPS来生成候选关键点,考虑到FPS具有O(N2)的时间复杂度,这个算法无疑是低效和耗时的。因此上述的两种方法都不能有效处理大规模的点云,这也就限制了它们在类似于自动驾驶这种需要实时反馈场景中的应用。
 
基于上述的结论,我们提出了新的网络架构——基于随机采样的关键点检测和描述网络(RSKDD-Net),它能高效地在大规模点云中提取关键点和生成相应的描述子。在RSKDD-Net中我们引入了随机采样概念以提高网络的效率,这正是3DFeatNet和USIP中所欠缺的。使用随机采样能够提高点云语义分割的效率,但也会导致巨大的信息丢失。受到二维图像处理过程中膨胀卷积的启发,我们提出了随机膨胀策略来聚类附近点,从而显著扩大感受野。同时我们利用注意力机制来汇总附近点的位置和特征并生成注意力特征图,以提取关键点并估计每个关键点的显著不确定性。这个框架避免了3DFeatNet中低效的逐点显著性估计。为了同时学习关键点的检测器和描述子,聚类和注意力特征图被送入描述网络来生成描述子。而为了在弱监督情况下训练描述子,我们引入了匹配损失,使用软分类策略来估计关键点的一致性。网络架构见图1。
 
图1:RSKDD-Net的网络架构。第一行是整个网络的整体架构,中间一行是检测网络,最后一行是描述网络。
 
我们进行了大量的实验来评估RSKDD-Net。结果显示我们的网络仅用了远低于其他方法的运行时间,就达到了目前的最高水平。
贡献  本文的主要贡献总结如下:
  • 提出了一个基于深度学习的方法,用于在大规模点云匹配中检测关键点并生成描述子。这个方法在达到最高水平的同时,将运算速度提高了15倍以上。
  • 运用了一个独特的随机膨胀策略来扩大感受野,使得关键点检测器和描述子的性能得到了大规模地提升。除此以外,我们还引入了注意力机制来汇总附近点的位置与特征。
  • 基于软分类策略设计了匹配损失,从而实现了在弱监督的情况下对描述子进行训练。
2 相关文献
 
现存的针对点云检测器和描述子的方法可以分为手工设计和基于深度学习两类。
手工设计的方法  如今手工设计的三维关键点检测和特征提取方法,主要是建立在大量二维手工提取特征方法的基础上。SIFT-3D[5]和Harris-3D[6]就是广泛应用的二维检测器SIFT[2]和Harris[3]的三维拓展。内在特征描述算法(ISS)选择球形区域内的附近点沿主轴方向有大幅变动的点作为特征点。同时,研究人员也提出了一些基于点的几何特征的三维描述子,例如点特征直方图(PFH)[7],快速点特征直方图(FPFH)[8]和方向特征直方图(SHOT)[9]。关于手工设计的三维检测器和描述子进一步的详细介绍可以参考[20,21]。
基于深度学习的方法  近年来,基于深度学习的方法已经广泛用于点云分析中[22-29]。与我们的研究主题关联最为密切的是3DFeatNet[17]和USIP[16]。与以往依赖于真值进行训练的网络不同,3DFeatNet设计了一个弱监督的三维描述子。网络根据点云的距离采样得到正负样本对,之后使用三元组网络来训练描述子。而对于关键点检测,他们预测了点云中每个点的注意力权重,并选出显著点而不做进一步的优化处理。不同于3DFeatNet,USIP关注的是关键点的检测以及如何在完全无监督的情况下训练检测器。通过预测初始候选点的偏移和显著不确定性来选择关键点。USIP利用似然倒角损失和点对点损失在完全无监督的情况下训练网络。然而,3DFeatNet和USIP中使用FPS对于逐点进行显著性估计,这使得他们的效率都很低。
3 样本数据
RSKDD-Net的网络架构已经在图1中得到了详细地展示。点云P∈RNx(3+C)(三维笛卡尔坐标和C个额外通道)首先进入检测网络,通过随机膨胀聚类模块用于聚集附近点,然后通过注意力点汇总模块提取关键点X∈RMx3、显著不确定性Σ∈RM和注意力特征图,同时聚类和注意力特征图被送入描述网络来生成相应的描述子。我们使用似然倒角损失和点对点损失来训练检测网络,使用匹配损失来训练描述网络。
3.1 检测器
随机膨胀聚类  对于每个输入的点云P∈RNx(3+C),我们首先对M个候选点进行随机采样。通常我们使用k最近邻(kNN)算法来聚集以候选点为中心的M个簇。虽然这个方法很有效,但随机采样同时也会导致信息丢失,而增大感受野可以有效减弱这种负面影响。然而,简单地增加附近点的数量K会引起时间空间复杂度的增加。在许多领域,膨胀都是扩大感受野的替代策略[30,19]。[31]介绍了应用于三维点云的点膨胀卷积网络(DPC)。不同于DPC,我们采用了随机膨胀策略来生成聚类,图2是该方法的可视化展示。假设K个附近点被选中为一个单独的聚类,膨胀比记为αd。我们首先搜索围绕着中心点的αd×K个附近点,然后从它们中随机选择K个点。这个策略是简单而高效的,在几乎不增加计算成本的前提下,将感受野从K增大为αd×K。
 
图2:随机膨胀聚类的可视化。红色点代表中心点,蓝色点代表被选中的附近点。左图是基于标准kNN算法的聚类,右图是随机膨胀聚类。可以看出,右图的感受野明显增大。
注意力点汇总  注意力机制在点云学习中有着优越的性能[32-36]。与USIP中预测偏移不同[16],本文中我们提出了一个简单的注意力机制来汇总附近点以便直接提取关键点。从随机膨胀聚类中,我们获得了M个簇且每簇都包含K个点。考虑其中一个簇,我们将中心点和K个附近点分别记为pi和{pi1,…,pik,…,piK}∈RK×(3+C),附近点与中心点的笛卡尔坐标相减,就可以得到每个附近点的相对位置,把计算得到的附近点与中心点的相对距离作为簇的额外通道。因此,一个簇的特征可以记为Fi={ fi1,…,fik,…,fiK }∈RK×(4+C)。之后簇被送入共享多层感知器(MLP)并输出特征图∈RK×C,之后通过最大池化层和softmax函数来预测每个附近点的一维注意力权重{wi1,…,wik,…,wiK}∈RK×1。通过附近点笛卡尔坐标的加权和来计算关键点,附近点的笛卡尔坐标记为{xi1,…,xik,…,xiK}∈RK×3,那么该簇的关键点∈R3为
 
不同于USIP的偏移预测,注意力点汇总确保了提取的关键点位于输入簇的凸包内。而且每个特征都有相应的注意力权重wik,因此注意力特征图∈RK×Ca为
 
 
 
注意力特征图进一步求和可得到每簇的全局特征∈RCa。之后通过MLP与softplus函数预测每个关键点的显著不确定性σi。检测网络的输出为M个包含相应的显著不确定性的关键点和包含注意力特征图的聚类{F1,…,FM}。最后不使用非极大值抑制(NMS)直接选出具有低显著不确定性的关键点。
 
 
 
3.2 描述子
描述子的网络架构详见图1的最后一行。描述网络的输入是来自检测网络的随机膨胀聚类{F1,…,FM}和注意力特征图。每簇Fi首先进入共享MLP提取出每个附近点单独的特征,之后通过最大池化层获得簇的Cf维整体特征。将整体特征和附近点单独特征以及注意力特征图结合,送入带有最大池化层的共享MLP,获得d维描述子。从检测网络中获得的注意力特征图极大提升了描述子的性能,对此我们将在后文的消融研究中进行详细阐述。
 
3.3 损失
将原始点云和目标点云分别记为S、T,其中的关键点分别记为XS、XT,相应的显著不确定性记为ΣS、ΣT,描述子记为QS、QT。相对旋转矩阵R和平移向量t的真值也已知。在检测器训练过程中,我们采用了USIP[16]的似然倒角损失和点对点损失。似然倒角损失用来最小化原始点云和目标点云中关键点的距离,而点对点损失用来限制关键点与初始点云的距离。关于似然倒角距离和点对点距离的详细信息,可以参考[16]。
匹配损失  我们定义了匹配损失用来在弱监督情况下训练描述子。3DFeatNet中使用三元组损失根据点云间距离而不是关键点之间的几何距离,采样正负描述子对。与3DFeatNet不同,匹配损失是一种用于估计描述子间相似性的软分类策略。对于每个来自原始点云的关键点∈XS和相应的描述子属于qiS∈QS,所有目标关键点描述子间的距离可以计算得到,记为diS={di1S,…,dijS ,…,diMS },其中dijS=||qiS-qiT||22。匹配的分数向量记为siS={si1S,…,sijS,…,siMS},可通过下式进行计算。
 
其中t是用于锐化匹配分数分布的温度参数。相应的关键点可通过所有目标关键点的加权和计算得到。
 
软分类是最近邻搜索在描述子上的近似可导形式。显而易见的是,原始关键点与目标关键点之间的描述子相似性越高,匹配分数也就越高。当t—>0时,软分类将退化为确定的最近邻搜索。当然我们也能依赖软分类策略确定每个目标关键点对应的原始关键点。根据每个关键点的显著不确定性σi∈Σ,我们引入了关键点的权重。
 
 其中σmax是显著不确定性预设的上界。最后的匹配损失用于最小化对应关键点之间的距离,可通过下式进行计算。
 
 
 很明显可以看出来,为了最小化匹配损失,软分类将选择空间中更为靠近的点作为匹配点,从而使匹配描述子更加相似。除此之外,关键点权重的引入使得具有低显著不确定性的关键点在匹配损失中有更高的权重。
4 试验结果
4.1 实验设置
数据集 我们使用了两个大规模的户外场景激光雷达数据集来评估RSKDD-Net,分别是KITTI Odometry数据集[37](KITTI数据集)和Ford Campus Vision and Lidar数据集(Ford数据集)。KITTI数据集提供了11组带有真值的车辆位姿序列,我们使用00序列进行训练,01序列进行验证,其他序列用于测试(由于08序列的车辆位姿真值存在较大错误,我们不使用该序列)。包含两个序列的Ford数据集仅用于测试。训练时,将当前点云与其后第十个点云作为一个训练对,测试时,将当前点云与前后连续5帧作为测试数据。因而我们可以在KITTI和Ford数据集中构建超过100000个测试对。
评估指标  我们采用和3DFeatNet[17]和USIP[16]中一样的评估指标来评价关键点检测器和描述子,也就是重复性、准确性和配准性能。
USIP中引入了重复性用于评价被检测关键点的稳定性。考虑到原始点云和目标点云间的真值的转换,如果原始点云中的一个关键点到目标点云中最近关键点的距离小于距离的阈值εr,那么这个关键点就是可重复的。重复性指的是所有被检测点云中可重复的关键点所占的比例。
3DFeatNet中使用准确性来一同评估关键点检测器和描述子。对于一个原始关键点,我们通过描述子的最近邻搜索算法找到对应的目标点云。同时,目标点云中对应的关键点真值可以通过真值转换得到。如果和在距离阈值εp内,那么认为存在有效的相似性。准确性被定义为具有有效相似性的关键点所占的比例。
 
 
配准性能通过RANSAC算法进行计算。根据3DFeatNet,RANSAC的迭代次数需要达到99%的置信度,上限为10000。与3DFeatNet一样,我们也使用相对位移误差(RTE)和相对旋转误差(RRE)进行评估。如果RTE<2m且RRE<5°,则认为配准成功。除此之外,我们也计算了RANSAC算法的平均内点比例和迭代次数。
基线算法  我们将我们的方法与三个手工设计的三维关键点检测器ISS[4]、Harris-3D[6]和SIFT-3D[5],手工设计的关键点描述子FPFH[8]和两个基于深度学习的三维关键点探测器和描述子:3DFeatNet[17]和USIP[16]进行比较。对于手工设计的探测器和描述子我们使用了PCL中的实现版本。对于USIP,我们使用了提供的源码,但由于描述子预训练模型的缺失,在KITTI数据集上进行了重新训练。对于3DFeatNet,我们直接使用了预训练模型并在KITTI和Ford数据集上进行了测试。除此以外,我们也对随机采点的重复性进行了评价以作参考。对于在其他手工设计的描述子上进行的实验,请参考我们的补充材料。
实现细节  在预处理过程中,我们首先用0.1m网格的体素滤波器对输入点云进行下采样,并根据USIP将每个点的表面法线和曲率作为额外特征。之后从下采样的点云中随机采样16384个点作为输入点云。膨胀率设为2,附近点的数量设为128。网络的实现基于PyTorch[40],使用SGD作为优化器,学习率为0.001,动量为0.9,匹配损失中的温度参数t为0.1。我们分为两个阶段训练网络,首先通过似然倒角损失和点对点损失训练检测网络,之后在训练好的检测网络的基础上通过匹配损失训练描述网络,同时也会对检测网络进行微调。网络在NVIDIA GeForce 1080Ti上进行训练,在装有Intel i7-9750H和NVIDIA GeForce RTX 2060的电脑上进行评估。
4.2 评估
效率  我们在KITTI数据集上评估了RSKDD-Net和另外两个基于深度学习的方法,运算时间见表1。表1的第一行为输入点的个数,第二行为关键点的个数。由于随机采样策略和不需要提前进行显著性估计,我们的方法相较于另外两个,效率有了极大地提升。可以看到,3DFeatNet和USIP的运算时间分别受到输入点个数和关键点个数的影响。相较而言,RSKDD-Net的运算时间受输入点和关键点个数影响较小。值得注意的是,在从16384个点中检测512个关键点的过程中,我们的方法比USIP和3DFeatNet快30倍以上。
表1:运算时间(ms)
 
重复性  我们计算了0.5m的距离阈值下128、256和512个关键点的重复性。除此之外,我们也计算了不同距离阈值下512个关键点的重复性以作参考。结果见图3。从结果可以看出,在128和512个关键点上,RSKDD-Net的重复性以巨大的差距远超其他方法。值得一提的是,0.5m距离阈值下512个关键点的情况下,RSKDD-Net的重复性超出USIP约20%,这说明我们选择的关键点具有高的稳定性。
图3:(a)和(b):不同个数关键点的重复性。(c)和(d)不同距离阈值的重复性
 
准确性  我们在不同距离阈值下评估了512个关键点的准确性以及在1.0m的距离阈值下评估了不同个数关键点的准确性。从图4的结果可以看出,RSKDD-Net在两种情况下都比其他方法的准确度高。我们注意到,RSKDD-Net在KITTI数据集上的表现优于Ford数据集,可能的原因是KITTI数据集上的点云更加结构化,因而可以依赖更多的几何信息来检测关键点。
图4:(a)和(b):不同个数关键点的准确性。(c)和(d)不同距离阈值的准确性
 
配准性能  用于评估配准性能的关键点的个数是512个。实验结果见表2。从结果可以看出,相较于手工设计和其他基于深度学习的方法,我们的方法有更好的RTE。虽然RRE和成功率稍逊色于USIP,但我们的内点比例是USIP的两倍多,而且由于高准确性和重复性我们的平均迭代次数也远远低于USIP。综合来说,我们的方法优于其他所有方法。
表2:KITTI数据集和Ford数据集上的配准性能
 
定性可视化  我们提供了一些定性可视化结果。图5左边两列展示了两次配准结果,关键点的个数为512。可视化结果展示了,我们设计的关键点检测器和描述子所实现的高的内点比例。除此以外,我们在图5的右边一列提供了关键点检测结果的样例。虽然我们的方法没能准确地移除地面点,但检测到的关键点自动避开了地面点,并根据平面和角等几何信息将点连接起来。我们在补充材料中提供了更多定性可视化结果。
图5:左边两张图片是两次配准结果,点云间的红线代表成功匹配。右边图片是关键点检测结果的样例,红色点代表被检测到的关键点。
 
4.3 消融研究
我们提供了消融研究以说明随机膨胀聚类策略、注意力特征图和匹配损失的有效性。消融研究的所有实验都是在KITTI数据集上进行的。重复性和准确性在128、256和512个关键点的条件下进行评估。重复性和准确性的距离阈值分别固定为0.5m和1.0m。
随机膨胀聚类  我们比较了随机膨胀聚类和DPC[31]的性能,相应的重复性和准确性见图6(a)和(b)。结果显示随机膨胀聚类策略显著提高了网络的重复性和准确性。而且其性能与DPC近似,甚至在一些场景下略微优于DPC(例如128和512个关键点的准确性)。同时,我们的方法更加简单,不需要对附近点进行分类,这将降低附近点搜索的时间复杂度。
注意力特征图  为了说明注意力特征图在描述网络学习过程中的有效性,我们在描述网络中移除了注意力特征图并评估了准确性。结果见图6(c)。从结果可以看出,注意力特征图的引入使得准确性大大提升。在引入注意力特征图的情况下,不同个数的关键点的准确性均提升了大约0.1。
匹配损失  我们将匹配损失与3DFeatNet的三元组损失进行了比较。根据3DFeatNet,我们基于两点云间距离采样了正负点云对,同时显著不确定性也包含在三元组损失中。之后将匹配损失替换为三元组损失,并重新进行训练。两个损失函数导致的准确性变化见图6(d)。从实验结果可以看出,在其他条件不变的情况下,匹配损失远远优于3DFeatNet的三元组损失。值得注意的是,包含匹配损失的网络的准确性是三元组损失的两倍。除此之外,我们也对匹配损失中的温度系数t和权重进行了实验。正如图6(e)所示,t=0.5时的准确性明显低于另外两个,这是由于在温度系数t较大的时候,软分类的近似效果不好导致的。当t<0.1时,性能不会有明显地改变。从图6(f)可以看出,匹配损失中权重的引入提升了描述子的性能。
图6:(a)不同膨胀策略的重复性(b)不同膨胀策略的准确性(c)有无注意力特征图情况下的准确性(d)匹配损失和三元组损失的准确性(e)不同温度参数t的准确性(f)有无权重情况下的准确性
 
 
5 结论
本文设计了一种基于深度学习的方法,用以在大规模点云中同时检测关键点和生成描述子。本文设计的RSKDD-Net达到了当前最优水平,且拥有极快的推理速度。为了克服随机采样的缺点,提出了随机膨胀聚类策略和注意力机制来分别扩大感受野和汇总位置和特征。本文采用了基于匹配损失的软分类以便描述网络能够在弱监督的情况下进行训练。大量的实验结果说明了RSKDD-Net以巨大的优势在重复性、准确性和配准性能上优于其他现存的方法。
广泛影响
RSKDD-Net提供了有效的框架,用于在针对大规模点云配准中检测关键点和生成描述子。这个方法极有可能应用在自动驾驶的定位和建图部分,以降低点云配准的计算量,来推动自动驾驶的发展。自动驾驶能够降低人类驾驶员的工作负担和交通事故的发生率,但也有可能导致交通事故责任难以划分和人类驾驶员的失业。除此之外,我们的方法也可以用于无人机上,然而应用于军事领域的无人机,有可能对人类生命安全造成威胁。因此我们应该将它推广到对人类有益的领域去,例如推动自动驾驶的发展以提高生活质量和降低交通事故的发生以保护人身安全。
致谢与资金来源
本作受到中国国家自然科学基金(No.61906138)、欧盟地平线2020科研框架特定拨款协议No.945539(人类大脑计划SGA3)和2018年度上海市人工智能创新发展专项资金资助。同时我们也十分感谢与李国豪的有益讨论。
参考文献
 
 
 
 
 
 
 
END
 
联系人:唐老师  
电话:021-69589116
邮箱:20666028@tongji.edu.cn 
分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026620号