代码地址:https://github.com/verlab/accelerated_features?tab=readme-ov-file
XFeat (Accelerated Features)重新审视了卷积神经网络中用于检测、提取和匹配局部特征的基本设计选择。该模型满足了对适用于资源有限设备的快速和鲁棒算法的迫切需求。由于准确的图像匹配需要足够大的图像分辨率,算法在限制网络中通道数量的同时保持尽可能大的分辨率。
该模型提供稀疏或半密集级别的匹配选择,每种匹配可能更适合不同的下游应用,例如视觉导航和增强现实。并且是第一个提供有效半稠密匹配的模型,它利用了一个依赖于粗略局部描述符(coarse local descriptors)的新型匹配细化模块。
XFeat是全面的并且不依赖于硬件,在速度上超越了当前基于深度学习的局部特征模型(速度提高了 5 倍),具有相当或更好的准确性,在姿势估计和视觉定位方面得到了验证。
图像特征提取在移动机器人、增强现实等领域起着至关重要的作用,而在计算资源受限的平台上提取特征点需要对现有架构进行硬件级优化。而本工作致力于通过设计高效特征提取的架构,实现在资源有限的设备中快速和鲁棒的特征匹配算法。本文提出XFeat,被设计为与硬件无关,使用精心设计的策略执行关键点检测和局部特征提取,以尽可能减少计算占用空间,同时保持鲁棒性和准确性。
本文的主要贡献如下:
1、一种新颖的轻量级 CNN 架构,可以部署在资源受限的平台和需要高吞吐量或计算效率的下游任务上,而无需耗时的硬件特定优化
2、设计了一种极简、可学习的关键点检测分支,该分支速度快,适用于小型特征提取骨干网络,展示了其在视觉定位、相机姿态估计和单调配准方面的有效性
3、提出了一种用于从粗半稠密匹配中获得像素级偏移的匹配细化模块。与现有技术相比,该新策略除了局部描述子本身外,不需要高分辨率特征,大大减少了计算量
匹配效果如下:
局部特征提取精度很大程度上取决于输入图像分辨率。例如,在相机姿势、视觉定位和 SfM 任务中,对应关系应该足够细粒度,以允许像素级匹配。然而,将高分辨率图像输入网络主干网会将计算要求提高到不希望的水平,即使对于简单的小型网络主干,如类似SuperPoint VGG-like的架构。在本节中,介绍如何使用最小化计算预算的策略来显着降低计算成本,同时减轻由于更小的 CNN backbone而导致的鲁棒性损失。
用
在整个网络中修剪通道
在一些使用深度可分离卷积的高效网络中,在3*3卷积的情况下将
在上式(1)中,
这种策略的特点是随着分辨率减半,卷积深度增加了三倍,有效地重新分配了网络的卷积深度。它确保了早期层的最小深度,同时补偿了整个网络主干参数量的减少。这种方法不仅显著降低了早期阶段的计算负载,特别是对于高分辨率图像,而且还通过更有效地管理卷积深度来优化网络的整体容量。从
网络的简单性体现在称为基本层的块中,一个卷积核大小从 1 到 3 的 2D 卷积,ReLU + BatchNorm,以及用于分辨率降低的步幅为2 ,形成卷积块,每个卷积块都是基本层的复合体。主干具有六个块,分辨率减半并依次增加深度:{4、8、24、64、64、128},以及一个用于多分辨率特征的融合块。
在本节中,将介绍如何使用backbone来提取局部特征并执行密集匹配。
Descriptor head.Descriptor head提取密集的特征图
Keypoint head. 一般来说,局部特征提取的主干依赖于UNet、VGG和ResNets。SuperPoint中使用的策略提供了提取像素级关键点的最快方法。它使用最终编码器中具有原始图像分辨率 1/8 的特征,并通过从特征嵌入中对 8×8 网格中的关键点坐标进行分类来提取像素级关键点。本文采用类似于 SuperPoint 的策略,区别在于本文引入了一种新的方法,该方法采用专用的并行分支进行关键点检测,专注于low-level图像结构。如消融实验(第 4.4 节)所示,通过在单个神经网络主干中联合训练描述子和关键点回归器,显着降低紧凑 CNN 架构的半稠密匹配性能。
通过极简卷积分支有效地利用低级特征。为了在不牺牲速度的情况下保持空间分辨率,将输入图像表示为每个网格单元上由8×8个像素组成的2D网格,并将每个单元重塑为64维特征。这种表示保留了单个网格单元内的空间粒度,同时利用快速的 1 × 1 卷积来回归关键点坐标。在四个卷积层之后,获得了一个关键点嵌入
Dense matching. 最近的一些研究证明了密集图像区域匹配的好处,提高了覆盖范围和鲁棒性。本文提出了一种用于密集特征匹配的轻量级模块,与其他detector-free方法在两个方面有所不同。首先,通过根据可靠性得分
给定密集的局部特征图
其中
匹配细化模块与网络backbone一起以端到端的方式进行训练,确保中间特征表示在紧凑的嵌入空间中保留细粒度的空间细节。偏移预测以粗略匹配的特征对
作者在相对相机姿态估计、视觉定位和单应性估计(homography estimation)方面评估了XFeat。通过消融实验证明本文设计的决策是合理的,并在无 GPU 设置中进行了全面的耗时分析。
Setup. Megadepth和 ScanNet测试集的使用与之前的工作相同,在与本文的训练集不重叠的场景中提供相机姿势。这些场景同时包含显着的视点和照明变化,并呈现重复的结构。LO-RANSAC用于估计essential matrix。作者搜索每种方法的最佳阈值,并调整图像大小,在Megadepth使最大尺寸变为 1,200 像素,并在ScanNet使用默认 (VGA) 分辨率。
Metrics. 使用阈值为 {5, 10, 20}的曲线下面积(AUC)。此外,本文还报告了Acc@10°,即最大角度误差低于 10 度的姿势比例、平均内点比 (MIR),即符合 RANSAC 后估计模型的匹配点的比率,以及内点的数量 (#inliers)。最后,在没有 GPU 和 Intel(R) i5-1135G7 @ 2.40GHz CPU 的预算友好型笔记本电脑上测量每种方法的每秒帧数 (FPS)。还指出描述子是浮点(用 f 表示)还是基于二进制(用 b 表示)并报告描述子维数 (dim)。
Results. 表 1 显示了 Megadepth-1500 上相对相机姿态估计任务的指标。
本文的方法比最快的基于学习的解决方案(ALIKE)快得多(5×),并且在稀疏设置中在几个指标上取得了有竞争力的结果。此外,考虑到相同数量的描述子,它可以在 AUC@20°、Acc@10° 和 MIR 上使用 10000 个描述子为密集匹配配置提供最先进的结果,与DISK*相比,DISK*是一个更大的模型。图 5 显示了 XFeat 在现有解决方案中脱颖而出的示例。
与 DISK 和 SuperPoint 相比,本文的方法还允许与低维描述子 (64-f) 进行更有效的匹配。补充材料中提供了详细的时间分析,并与最近流行的学习匹配器进行了额外的定量比较。值得一提的是,由于需要对描述子进行插值并在更粗的分辨率下预测偏移量,因此本文在更宽松的阈值中获得了最先进的结果。表 2 显示了 ScanNet-1500 室内影像中最具竞争力的方法的 AUC 值。请注意,没有重新训练任何方法。DISK和ALIKE显示出偏向地标数据集的迹象,而本文的方法则表现出卓越的泛化性。补充材料中提供了有关ScanNet和Megadepth的更详细的讨论和定性结果。
Setup.本文使用了广泛采用的HPatches数据集,其中包含来自平面场景的图像序列,具有中等到强烈的视角和照明变化。与相对姿态估计类似,本文使用 MAGSAC++在给定每种方法的对应关系的情况下稳健估计单应性变换。
Metrics. 遵循ALIKE协议并估计平均单应性准确度(MHA)。使用预定义的阈值为 {3, 5, 7} 像素。通过使用GT单应性和估计值将四个参考图像角变形到目标图像,考虑了以像素为单位的平均角误差来计算精度。
Results. 表 3 显示本文的方法与最准确的描述符相当,加强了本文提出的关键点和描述符头的鲁棒性。相比之下,ORB 和 SiLK 等其他轻量级解决方案的性能在照明和视点分割方面受到严重影响,因为它们在处理难例图像对中存在的激进视点和照明变化方面的能力有限。本文的方法也适用于不太严格的阈值。
Setup.HLoc用于定位来自Aachen数据集的昼夜场景图像。给定提供的关键点对应关系,HLoc 使用可用的GT相机姿势对 SfM 地图进行三角测量。然后,使用关键点匹配在 3D 地图中定位一组单独的查询图像。为了公平地进行比较,作者调整了图像的大小,使最大尺寸保持在 1024 像素,并提取了所有方法的前 4096 个关键点。
Metrics. 使用 HLoc 提供的标准指标,即在位置误差 {0.25m, 0.5m, 5m} 和旋转误差 {2°, 5°, 10°} 的阈值内正确估计的相机姿势的准确性。
Results. 表4显示了视觉定位实验的结果。本文的方法表现出与SuperPoint和DISK等领先方法相似的性能,同时实现了显着的速度优势,速度至少快了9倍,描述子也更紧凑。这些发现挑战了文献中的普遍趋势,即为下游任务采用更大、更复杂的模型。相反,它们强调了更简单模型的功效,这些模型不仅与精度相匹配,而且还提供了在资源受限系统上高效运行的好处。
在表 5 中列出了几种配置来消融对比本文的架构。
评估了使用额外的synthetic warps(i) 进行训练是否有助于模型对具有挑战性的图像对变得更加鲁棒。真实变形和合成变形数据集上训练都是有益的,尤其是对于密集匹配设置。
其次,评估是否可以进一步减少网络中的通道数(ii)。作者将最后三个卷积块的通道减半为 32 个,而不是 64 个,但对于稀疏和密集设置,性能都会显著下降。作者还演示了为关键点检测设计并行分支背后的基本原理。
如果没有本文提出的keypoint head (iii),在类似于SuperPoint的输出描述子嵌入之上使用额外的卷积块。如表 5 所示,在这种特定设置下训练时,XFeat*的性能会下降,因为有限的网络大小限制了中间嵌入的容量,使它们在不可重复区域中的半稠密匹配效率降低,从而对匹配细化任务产生不利影响。因此,作者选择设计一个并行分支,在稀疏匹配和稠密匹配之间提供很好的权衡,如表 5 – Default和 (iii) 所示。
最后,作者评估了所提出的匹配细化模块的好处。对于XFeat*来说,匹配细化步骤对于提高准确性至关重要。在作者的基准测试中,与平均 10,000 个描述子的 MNN 匹配相比,该模块仅会产生额外的 11% 推理成本。