SKD: Keypoint Detection for Point Clouds Using Saliency Estimation
一.问题
1.要解决什么问题?
两大类配准方法:密集配准,基于关键点配准
密集配准:每个点都匹配,容易受环境中遮挡的影响
基于关键点配准:只匹配稀疏的关键点,需要环境中存在一定的重复性
其中基于关键点配准:
(1)关键点的可靠性。采用detect-then-describe的方法。关键点不仅由几何关系决定,还与自身特征描述子决定(但其实几何关系也是点自身的部分特征,也就是说其实还是对特征的一种加强,只不过通过深度学习得到的特征确实更加具有鲁棒性等优点。)
(2)根据可匹配性找关键点。传统是找可重复性的点,但是在一些特殊场景中,如棋盘,将会导致关键点模糊,所以这种情况下,可重复性不足以表示关键点,需要结合别的评估标准。
2.本文用什么方法解决?
在给定一个预先训练的可微描述符网络的情况下学习生成可以可靠匹配的点。使用描述符网络对输入点的梯度响应作为显著性的度量。此外,将显著性与原始描述符和上下文信息结合起来,以生成产生更高匹配可能性的关键点
二.论文概述
1.网络结构
整个网络分为两个大阶段,提取特征和生成关键点可匹配的可能性阶段。在第一个阶段,作者采用了三种不同方式来提取特征并转换为特征向量拼接到一起,共同构成最后的特征向量。第二阶段通过两个fc层和一个logit层训练得到该点是具有高匹配可能性的关键点。
1.1Feature Extraction
1.1.1Point Cloud Saliency
给定一个具有N点的点云和一个预先训练的描述符网络F,我们提取特定层网络的梯度来表示输入点云的位置信息,
其中Ωl是l层的特征图大小。我们定义初始显著性S§,作为该层的特征与其梯度的乘积。其正式定义为:
然后取从等式计算出的初始显著性并通过加权确定每个点的新显著性分数,定义为si。
其中
。可以看到,是通过各点距离点云的中间值的距离来进行加权的,因此,更远的分数更高,靠近中心的分数较低。(这个标准是否恰当)
1.2Network Architecture
为了确定关键点,通过一个神经网络来将其显著性与其他特征相结合,以获取更多元的特征信息。特征由三个部分组成,构成一个组合的特征向量,作为最后一个全连接网络的输入,用于计算每个点作为关键点的可能性。
第一个部分,point cloud context,点云上下文特征。这是将初始点云输入3个X-Conv层提取特征并经过两个完全连接的(FC)层得到特征向量。第二个部分,saliency,显著性。是前一节中得到的si。第三个部分,PCA of point descriptors,是输入的初始特征的PCA降维量。
2 keypoint detect
将之前三个部分输出的特征向量cat到一起,输入到另外两个完全连接的层,以产生最终的关键点预测。网络为每个点推断一个分数,确定它成为一个稳健和可重复的关键点的可能性。