SiLK -- Simple Learned Keypoints (Meta提出的关键点检测和描述符框架)

SiLK – Simple Learned Keypoints

链接

简介:SiLK:关键点检测和描述符框架 (meta AI)
论文:https://arxiv.org/pdf/2304.06194v1.pdf
代码:https://github.com/facebookresearch/silk

翻译与梳理

1 摘要

关键点检测和描述符是图像匹配、3D重建和视觉里程计等计算机视觉任务的基础技术。手工设计的方法,如Harris角、SIFT和HOG描述符,已经使用了几十年;最近,有一种趋势是引入学习来尝试改进关键点检测器。然而,在检查时,结果很难解释;基于学习的方法采用了各种各样的实验设置和设计选择:经验性的结果经常报告使用不同的主干,协议,数据集,类型的监督或任务。由于这些差异通常是耦合在一起的,这就提出了一个很自然的问题,即什么是一个好的学习点检测器。在这项工作中,我们通过解构现有关键点检测器的方法和识别关键组件来重新审视它们的设计。我们从第一性原理重新设计每个组件,并提出了完全可微分、轻量级和灵活的简单学习关键点(SiLK)。尽管它很简单,但SiLK在HPatches上的检测重复性和单应性估计任务以及ScanNet上的3D点云配准任务上推进了新的最先进的技术,并在2022年图像匹配挑战和ScanNet上实现了最先进的相机姿态估计的竞争性能。
关键点检测和匹配是一种基本的计算机视觉技术,用于获得图像或视频序列的稀疏但信息丰富的表示。图像拼接[7,1]、SLAM[14,34]、SfM[44]、摄像机标定、跟踪[37]和目标检测[30]是建立在关键点对应[32]上的重要任务。对于给定的任务,一个好的关键点表示应该能够识别出一小部分对任务有用和有信息的点。人们通常还希望描述符对某些变换集具有鲁棒性,像尺度、角度或光照变化。在这篇文章中,我们主要对3D几何问题的关键点感兴趣,比如SLAM和SfM,它们依赖于找到图像对之间的对应关系。对于这类问题,好的关键点应该包含足够的信息,在不同条件下,最大化不同视角的正确匹配的概率。
我们的贡献是双重的。

  1. 在回顾了许多替代方法之后,我们提出了简单学习关键点(SiLK),它被设计成最简单的自监督方法,可以在传统的“检测和描述”框架中从任意图像数据中学习独特和鲁棒的关键点。尽管它很简单,但SiLK在大多数情况下都具有竞争力,甚至超过了SOTA。
  2. 利用SiLK的简单的单阶段训练协议和模块化架构,我们能够为不同的任务减少检测器性能的各种维度。特别是,着眼于实时性能,我们确定了极其轻量级的骨干架构足以胜任的任务。

2 相关工作

早期的工作集中在精心设计的方法上,用描述符识别不同的关键点,这些描述符对视点和照明等变化具有鲁棒性。手工制作的技术,如Harris-corners[20]、SIFT[31]、ORB[41]等[40,8,26,2,5,13]使用了明确的几何概念,如拐角、梯度和尺度空间极值,以获得迄今为止既高效又有竞争力的结果[44,34]。
SuporPoint使用学习的方式发现角点。他们生成了大量的带注释角点的合成形状,并用真值训练一个模型。虽然SuporPoint提供了令人信服的学习方法,但是他们的训练过程相当复杂:他包含了多个训练阶段和一个合成数据,并且采用了一种自适应的技巧,很难去复现。
与最近的工作[17,39,50,49,21,11,48]一样,SiLK旨在以简单的端到端方式学习关键点,而不是明确地将它们定义为角点。
几种尝试被采取去学习隐式关键点;或者精心设计损失函数;
在含蓄地学习要点方面进行了多次尝试;要么通过精心设计损耗[17,39,11,48];或者直接预测匹配成功的描述符[50,21,49]。SiLK属于第二类,但是有轻微的变形(参见第3.4.4节)。
为了学习描述符,通常使用对比损失。与[50,47]类似,SiLK采用概率方法,在双softmax、循环一致性设置下对匹配概率进行建模,并优化对数似然。概率公式,类似于In- foNCE[35],为我们提供了一种简洁的方式来推理匹配,并且大量的反例的应用(来自同一图像中的像素)使其成为一个有吸引力的选择。
上下文聚合(CA)试最近比较常用的工具。 由SuperGlue[42]开始使用,上下文聚合是从一对图像中优化和变换描述符,然后再进行匹配。在[42]中实现为GNN[43],或在[47]中实现为Transformer[51], CA的预测以图像对中的所有描述符为条件。换句话说,对于一个图像,在匹配不同的图像时,描述符将是不同的。因此,CA需要在匹配之前在每一对图像上运行,而不是在单个图像上运行。运行时的影响使得CA在某些应用程序中代价高昂(二次复杂度vs线性复杂度)。SiLK不使用CA,但性能优于[42],并与[47]竞争。如果性能是最重要的,计算成本是较小的关注,合并CA是可选的未来工作。
作为CA后的后处理,SuperGlue[42]引入了可微最优传输(OT)的概念来改进匹配,使用了Sinkhorn算法[46]。LoFTR[47]也利用了OT,但在一些基准测试中发现OT和更简单的相互最近邻(MNN)方法之间几乎没有区别。

3 方法

SiLK的贡献是简单和灵活。我们的解决方案是建立在传统方法的基础上,通过鲁棒的局部描述符来识别不同的像素。我们使用现代但成熟的技术来学习定位和描述给定任意来源的未标记图像的关键点。与经典方法不同,我们的描述符和不变性是学习的,与一些现代方法不同,在匹配过程中没有特别的复杂性(SiLK 使用余弦距离和相互近邻);这样就没有多少结构超参数可以调整了。简单的骨干+头部设计是 backbone-agnostic,允许实验。无注释的SSL方法意味着SiLK可以在任何图像或视频数据集上进行训练。最后,一个简单的、单阶段的训练管道允许我们为不同的任务轻松地训练和删除不同的架构、数据集和参数。
SiLK被训练来从单个灰度图像中识别关键点。它提供关键点检测(定位)和关键点描述符(匹配)。循环一致性用于描述符学习,二值分类器在像素级识别不同的关键点。
为了学习描述符,我们获取源图像和转换后的副本,为每个点提取描述符,并使用描述符相似性定义从源位置到每个转换位置的转移概率(反之亦然)。我们优化描述符以最大化循环一致性;也就是说,我们最大化从源到变换位置再返回的往返概率。
为了找到好的关键点,我们训练一个二值分类器来识别满足匹配标准的点。一个点和其变换后的副本在转移概率的意义上是近邻的,则为正值,反之为负值。我们训练循环一致性和联合分类损失。
在这里插入图片描述

图2:伪代码:从单个图像中学习关键点

3.1 结构

在这里插入图片描述

图3:Silk的结构

SiLK架构(图3)的灵感来自Super- Point[16]最初提出的“检测和描述”架构。首先通过将图像馈送到编码器主干提取密集特征映射。然后将共享的特征图馈送给两个头 (a keypoint head and a descriptor head).

  • 关键点头提取逻辑;用于计算密集关键点概率。
  • 描述符头部提取一个密集的描述符映射;稍后用于计算关键点相似度

该模型是 backbone-agnostic的,可以很容易地交换

3.2 高匹配概率定义关键点

关键点概率估计预测像素将被正确匹配的概率(即survive a round-trip)。最有可能匹配正确的点就是我们选择的关键点。
获取关键点概率的一种常用方法——基于softmax单元的方法 [16, 50, 39, 17]
变softmax公式
消除稀疏约束
删除自由参数((the cell size N),避免调参
SiLK并不需要NMS(一种成熟的修剪技术,其目的是分散关键点)

3.3 描述符定义匹配概率

与[47,50]类似,我们使用双softmax(即i与j匹配的概率)来建模循环匹配概率。

3.4 训练
3.4.1 自监督

在训练过程中需要像素精确的对应。与SuperPoint[16]类似,我们通过对图像应用随机变换(homography)来获得图像对相关。然而,单应性是一种线性映射,它在亚像素级别上给出对应。为了获得像素对应,我们将采样的单应性应用于图像I的所有像素位置;位置是像素的中心(例如,左上角像素的位置为(0.5,0.5))。这第一步建立了从I到I '的密集定向响应。然后我们从I '到I运行相同的过程(这次使用逆单应式)。一旦获得两个方向对应,得到的位置将被离散化;越界的和非双客体的对应关系被丢弃。

3.4.2 图像增广

正如[16,42]所做的那样,我们使用图像增强来提高鲁棒性;增强包括随机亮度、对比度、高斯噪声、斑点噪声和运动模糊。
在这里插入图片描述

3.4.3 正负选择

关键点的一个定义属性是独特性——这个点可以可靠地与其他点区分开来。在我们的例子中,这意味着可以通过类似于[49,50]的匹配算法可靠地识别该点。考虑到这一点,我们采用了与[49]类似的监督技术。正确匹配的关键点(使用当前训练的描述符)被标记为正的;否则负。

3.4.4 描述子和关键点损失

与[47,50]类似,描述符损失是应用于正往返匹配概率的负对数似然损失(即从点i到变换图像中的位置i '的路径,然后再返回)。
在这里插入图片描述

4 实验

在本节中,我们将结合代表性基线和最先进的方法对SiLK进行经验评估。在HPatches上,我们评估了一套互补的关键点质量指标(重复性,平均匹配交流精度[33])和平面立体估计能力(Homography估计)。此外,我们还对三个现实世界的立体任务进行了基准测试

  1. 基于图像匹配挑战(IMC) 2022的室外相机姿态估计,
  2. 基于ScanNet的室内相机姿态估计
  3. 3D点云配准。
    在这些实验中,我们研究了以下内容:
  4. 许多方法采用复杂的策略来学习和预测好的关键点和描述符,包括多阶段训练、基于细胞的先验、复杂的后处理、上下文聚合和groundtruth 3D姿势监督(见表1)等元素,并以不同的组合方式进行。什么机制是必须的?SiLK不包含这样的策略设计,可以看作是这些方法的简化。然而,SiLK要么达到新的SOTA,要么非常有利。这就质疑了为评估任务制定复杂方案的必要性。
  5. 我们从工程特征(如表2和表6中的SIFT)与学过的方法中观察到相当强的性能。这促使我们重新审视关键点检测器的设计选择
  • 什么是好的关键点检测器?
  • 我们消融每个模型组件(数据、主干等),并在各种条件(例如输入大小、测试数据、任务等)下测试泛化性能。
    SiLK对这些选择非常健壮(第4.5节)。特别是,一个非常轻量级的SiLK版本(两个3x3卷积层)在单应性估计、相机姿态估计和点云配准方面与SOTA的竞争(表7和表8)。
    我们希望这些结果可以为社区服务,并帮助调整关键点模型以适应他们的任务和需求。例如,标记任务(例如自我训练[37],物体姿态[38])可能注重高准确性(即更大的骨干和更密集的关键点选择),而要求速度的任务(例如SLAM[34])可能会发现我们的轻量级骨干很有吸引力。
4.1 实现细节

我们自己的训练管道已用于所有SiLK实验,以及我们复制的SuperPoint(表2)结果。使用我们的默认设置,在2个特斯拉V100-SXM2 gpu上的训练时间为5小时。
默认设置。除非另有指定,否则所有结果都使用以下设置。

  • 在COCO[29]图像(随机抽样)上训练
  • 使用Adam[24]优化器
  • 学习率为1e−4
  • beta值为(0.9,0.999)
  • 10万次迭代训练
  • 批处理大小为每个GPU 1个
  • 对于所有架构和输入分辨率,密集描述符映射是146 × 146;
  • 余弦相似度按温度20−1缩放;
  • VGGnp-4主干(VGG架构使用max-pooling去除,详细信息在第4.5.1节);
  • top-k (k = 10000)得到的稀疏关键点;
  • 检测头是1 3x3卷积(128-暗),和1 1x1卷积;
  • 描述符头部是1 3x3卷积(128-dims),和1 1x1卷积(128-dims);
  • 在卷积中没有填充;
  • ReLU和batchnorm用作非线性和归一化(见补充)。
4.2 HPatches 单应性估计

继[16,42,39,47]之后,我们评估了HPatches[3]上的单应性估计。HPatches包含57个场景(6张图像)有明显的照明变化和59个场景有大的视点变化。每个场景中的图像都通过基真同构关系联系起来。我们遵循LoFTR47,并在推理时将较短的图像边缘缩放到480。

  • 评价方案
    对于每一对图像,该模型检测一组关键点。这些关键点希望是独特的,因此可以在视图中重复检测到。我们使用可重复性来评估检测性能,如[16]。为了测试关键点描述符的不变性,每个模型的首选匹配算法在图像之间建立对应关系以获得关键点子集。我们把这个子集称为后匹配,把整个集合称为前匹配。每个对应的准确性由Mean Matching accuracy评估,如[17,39,50]所示。最后,我们使用OpenCV RANSAC算法根据匹配结果计算单应性,并评估单应性估计精度[16]和单应性估计AUC[42,47]。
  • 基线
    我们将SiLK与基于稀疏检测器的方法和无密集检测器的方法进行了比较。基于稀疏检测器的方法一般遵循“先检测后匹配”的原则,即模型首先检测到一组特征点的稀疏集,然后进行特征匹配。我们包括SIFT[31]以及学习检测器SuperPoint16, R2D2[39]和DISK[50]。另一方面,密集无检测器执行“匹配检测”:模型首先提取特征,然后应用学习到的预匹配CA模块(例如GNN[42]或变压器[47])将特征适应于特定的图像对,然后找到匹配。虽然SiLK没有使用CA,但我们仍然将其与SOTA无探测器的LoFTR[47]进行了比较。
  • 结果
    尽管简单,但SiLK在可重复性、单应性准确性和单应性估计方面优于所有方法(表2)
    … (用数据说明自己的性能好)
4.3 IMC 2022 室外位姿估计

图像匹配挑战赛(IMC 2022)[22]提供来自不同视角的成对户外图像;要求参与者估计基本矩阵。相机姿态精度,然后计算十个阈值的旋转和平移误差(范围从(1◦,20cm)到(10◦,5m))。平均精度(mAA)是通过对阈值和场景进行平均来报告的。
(也是从以下三个角度阐述的,具体的看论文)

  • 评价方案
  • 基线
  • 结果
4.4 ScanNet 室内位姿估计和点云

ScanNet[12]是一个包含1513个RGB-D图像和地面真实相机姿势的室内场景的大规模数据集。使用官方训练/值/测试分割,我们评估相对相机姿态估计和点云配准。相对相机姿态估计已经在多个先前的工作中使用[52,53,6,42,47]。该算法的任务是用RANSAC算法从一对图像的点匹配中估计出本质矩阵。我们使用20k关键点和RANSAC阈值0.5报告阈值(5◦,10◦,20◦)的姿势错误AUC。
该协议以程度来衡量角度上的translation error,并且存在规模歧义[52]。角平移误差可能是不稳定的,特别是如果底层平移(以米为单位)很小。作为回应,最近的工作[19,18]引入了一个3D点云配准任务,使用ScanNet提供的真地深度。首先对相隔20帧的一对图像进行采样。给定这一对,一个模型预测点匹配。匹配后,估计相对相机姿态。与之前的协议不同,ground-truth depth和camera intrinsic现在用于在3D中对齐匹配。除了相对位姿误差(分别报告平移(厘米)和旋转(度))外,还测量了配准点云和真地点云之间的倒角距离(厘米)。我们参考原始论文[19,18]了解评估设置和指标的详细信息。

4.4.1 Relative pose estimation

(从以下两个角度阐述的)

  • 基线
    • For the sparse method
      • R2D2+mutual nearest neighbor (MNN)
      • SuperPoint+mutual nearest neighbor (MNN)
      • SuperPoint+context aggregation(PointCN [52], OANet [53] and SuperGlue)
    • For detector-free dense method
      • DRC-Net
      • LoFTR ( be trained on MegaDepth with optimal transport post-processing)
      • LoFTR ( be trained on ScanNet)
  • 结果
4.4.2 Pairwise 3D point-cloud registration

(从以下两个角度阐述的)

  • 基线
    • Sparse Features + RANSAC
    • Dense Feature Matching
    • Pose/Geometry Supervised
  • 结果
4.5 什么是好的关键点检测器

利用SiLK的灵活性(第3节),我们全面地减少了大量的设计选择,比如模型架构和图像分辨率。令人惊讶的是,我们发现减小架构大小、计算成本和训练输入大小只会轻微影响模型在单应性估计、相机姿态估计和点云配准方面的性能。这有利于许多重要的应用,如设备上的推理。
在这里,我们讨论主要的发现。我们使用:(1)the metrics Repeatability ®;(2)Homography Estimation Accuracy (HA);(3)Mean Matching Accuracy for HPatches (MMA) ;(4) Rotation Accuracy(RA);(5)Translation Accuracy (TA) ;(6)Chamfer for ScanNet © . 进行评估性能
附加的结果和分析包括在附录中。

4.5.1 Agnostic to backbone

在这里插入图片描述

关键点探测器沿不同维度的非穷举解构。在每个选项上,SiLK都采用最简单的选择,或者灵活地选择不同的选项。特别是,SiLK不强烈依赖骨干类型或训练数据

各种常用的backbones/ 各种训练设置
![在这里插入图片描述](https://img-blog.csdnimg.cn/1465ef97c5c54535a8650263373aa911.png)table 7的结论: 尽管有更大的参数计数,但没有经验性能增益。 table 7的操作: 我们降低了原来的超级网络VGG-4的复杂度。去除了最大池化和上采样层。我们的VGGnp-4包含四个卷积块,每个卷积块都有两个卷积层,后面跟着ReLU。我们丢弃VGGnp-4的卷积块,得到VGGnp-3、VGGnp-2和VGGnp-1。在VGGnp-1的基础上,我们将通道和描述符的大小分别减少到64和32,并获得了一个超轻量级模型VGGnp-μ。结果是缩小模型,在重复性,单应性估计,相机姿态估计,点云配准上只有轻微的下降。特别是,SiLK (VGGnp-μ在表7中)与SOTA(表2和表6)相比,具有非常强的竞争力。另一方面,关键点匹配(MMA)得分显著下降。我们提出了两个可能的原因: - 点匹配可能受益于更深层模型的更大接受场。 - - 单应性估计聚集了大量的逐点测量,如果噪声被抵消,homographie将得到改善;或者通过RANSAC去除最坏的估计。

在这里插入图片描述

在这里插入图片描述

4.5.2 Fast training on tiny images

默认情况下,SiLK在训练期间使用146x146描述符特征映射分辨率。在物体检测或图像识别等领域,更高的分辨率通常会带来更强的结果。在SiLK中,更高的分辨率提供了更多的点数。这有利于更多负的对比损失,但也增加了训练时间和GPU内存使用。
令人惊讶的是,在训练过程中,当改变分辨率时,性能变化很小(表8),尤其是在ScanNet上。 微小的特征图(82x82)在HPatches和ScanNet上仍然具有竞争力,并且在两个gpu上训练1.7小时。这使得测试时间微调、设备上微调和快速实验迭代等应用程序成为可能。
在这里插入图片描述

4.5.3 Robustness to training data

现有方法使用不同的训练集(表1);通常,我们观察到跨数据集泛化不良的情况。例如,在室内Scan- Net数据上训练的LoFTR[47]与在室外MegaDepth数据上训练的LoFTR相比显著下降(表3),反之亦然(表5)。这些方法使用的高容量机器可能会加剧这种过拟合,例如LoFTR的Transformer情境化器。我们通过使用来自COCO[29]、ImageNet[15]、MegaDepth[28]和ScanNet[12]的不同图像来衡量SiLK在训练数据选择上的鲁棒性。我们还将它们结合起来,形成一套多样化的训练数据。
除了ScanNet(表9)之外,SiLK对训练集的变化具有相当强的鲁棒性。我们假设这是由于ScanNet中存在大量均匀表面(例如墙壁,门)。这些毫无特色的领域几乎没有值得学习的关键点。SiLK的下降与表3中LoFTR的下降呈负向一致,但幅度要小得多。这可能是因为SiLK的VGGnp主干网的容量比LoFTR (FPN+Transformer)低得多,因此不容易过度拟合。最后,我们注意到,在第4.2节、第4.3节和第4.4节中,使用COCO训练的SiLK用于HPatches、IMC和ScanNet的比较,而LoFTR需要不同的训练数据(MegaDepth或ScanNet)来实现强大的性能。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

结论

本文提出了一种简单灵活的关键点检测和描述框架SiLK。SiLK是根据显著性和不变性原则设计的,并在3D视觉感知的关键低级任务上实现或推进了SOTA。SiLK的简单性质疑了在低级应用程序中需要复杂的机制来进行良好的关键点检测。此外,大量的消融实验显示了SiLK对骨干、训练数据和训练输入规模的鲁棒性。这些发现导致了一种小型的SiLK,它重量轻、精度高、训练速度快。我们认为这种“微小且可学习”的机制对于运行时间和/或功耗至关重要的应用程序非常有前途。我们希望SiLK能够引起人们对该领域的关注,并促成更强有力的解决方案。

附录

A 数学
  • 术语
  • 匹配概率
  • 关键点概率
  • 匹配损失
  • 关键点损失
  • 匹配成功【匹配成功是衡量匹配当前学习的描述符(即简单的相互近邻)是否会产生正确匹配的过程】
B 补充实验
补充实验针对的问题
  1. SiLK的结果在不同的图像分辨率下都是稳健的吗?
  2. 我们可以通过简单地选择更多的关键点来提高SiLK吗?或者在特定的k值下达到饱和吗?
  3. SiLK是否存在 false-positive removal 技术,false-positive removal 技术是怎样影响性能的?
  4. 我们的经验证明了在学习关键点时不使用零填充的重要性。
设计的实验和结论
  • B.1 缩小图像比增大图像要好
    在这里插入图片描述
  • B.2 增加top-k可提高SiLK,但饱和早
  • B.3 使用比率测试或双软最大滤波来改进MMA
  • B.4 使用NO填充来学习关键点
C 实现细节
  • C.1 数据增强
    在这里插入图片描述

个人收集总结

特征点描述匹配可使用的数据集

MegaDepth
ScanNet
COCO
ImageNet

相关的网格模型

DISK
2022 DISK(https://www.kaggle.com/code/eduardtrulls/imc2022-baseline-submission-disk
LoFTR(https://www.kaggle.com/code/ammarali32/imc-2022-kornia-loftr-from-0-533-to-0-721)
SOTA
SuperGlue(https://www.kaggle.com/code/yufei12/superglue-baseline)
R2D2
PointCN
OANet
uperPoint

评价指标

(1)the metrics Repeatability ®;
(2)Homography Estimation Accuracy (HA);
(3)Mean Matching Accuracy for HPatches (MMA) ;
(4) Rotation Accuracy(RA);
(5)Translation Accuracy (TA) ;
(6)Chamfer for ScanNet ©

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值