深度学习论文: XFeat: Accelerated Features for Lightweight Image Matching
XFeat: Accelerated Features for Lightweight Image Matching
PDF:https://arxiv.org/pdf/2404.19174
PyTorch: https://github.com/shanglianlm0525/PyTorch-Networks
1 概述
本文创新性地推出了XFeat(加速特征),一种轻量级且高精度的CNN架构,专为资源受限的视觉任务设计。XFeat优化了局部特征的检测、提取与匹配,通过减少通道数同时保持高分辨率,实现了速度与精度的平衡。它提供灵活的半密集匹配选项,并引入创新的匹配细化模块,利用粗糙描述符提升匹配精度,无需额外高分辨率特征,显著降低了计算成本。XFeat通用性强,硬件无关,速度远超同类深度学习模型,且能在普通CPU上实时运行,展现了在视觉定位和姿态估计等任务中的卓越性能。
本工作的核心贡献体现在三个方面:
- 创新的轻量级CNN架构:该架构专为资源受限环境及高吞吐量、高效率的下游任务量身打造,无需依赖耗时的硬件优化。在视觉定位、相机姿态估计等领域,XFeat有望成为传统手工轻量级方法、昂贵深度模型及现有轻量级深度模型的理想替代。
- 高效的关键点检测分支:我们设计了一个极简且可学习的关键点检测机制,该机制与小型特征提取器主干完美融合,展现出在视觉定位、相机姿态估计及单应性配准任务中的卓越性能。
- 创新的匹配细化模块:该模块能够利用粗糙的半密集匹配结果,进一步提取像素级偏移,无需额外的高分辨率特征图,从而在显著降低计算成本的同时,实现了高精度与高匹配密度的双重提升,如图1和图2所示。这一创新策略相较于现有技术,在效率和效果上均实现了显著飞跃。
2 XFeat
局部特征提取的准确性依赖于图像分辨率,尤其在需要像素级匹配的相机姿态、视觉定位和结构从运动任务中。然而,高分辨率图像增加了计算负担。本节介绍了如何在减少计算成本的同时,通过策略减轻因减小CNN主干而损失的鲁棒性。
2-1 Featherweight Network Backbone
轻量级网络主干:
定义灰度图像I,尺寸为H×W,单通道C=1。
降低CNN处理成本的方法是开始于浅层卷积,逐步减半空间维度,同时加倍通道数。
卷积层的计算成本与空间维度和通道数成正比。
优化策略:
通过减少初始卷积层的通道数来应对高分辨率输入。
随着分辨率降低,三倍增加通道数,达到通常用于局部特征主干的128通道。
这种策略重新分配了网络的卷积深度,优化了计算效率和参数数量。
网络结构:
网络由基础层组成,包括2D卷积、ReLU、BatchNorm和用于降低分辨率的步长。
主干包括六个卷积块,按顺序增加深度:{4, 8, 24, 64, 64, 128},以及多分辨率特征的融合块。
通过这些策略,网络在保持精度的同时减少了计算负担,特别是在处理高分辨率图像时。
2-2 Local Feature Extraction
提出的主干网络用于提取局部特征和执行密集匹配的过程如下:
描述符头:
利用特征金字塔策略,通过多尺度特征合并,提取出尺寸为H/8×W/8×64的密集特征图F。
通过连续卷积块逐步降低分辨率至原始的1/32,增强了对视角变化的鲁棒性。
在三个尺度级别(1/8, 1/16, 1/32)上,通过双线性上采样和逐元素求和合并中间表示,形成最终特征表示F。
引入额外卷积块生成可靠性图R,表示每个局部特征匹配的置信度。
关键点头:
借鉴SuperPoint的策略,使用最终编码器中的特征,分辨率为原始图像的1/8,提取像素级关键点。
创新性地引入一个并行分支,专注于低级图像结构的关键点检测,避免联合训练描述符和关键点回归器导致的性能下降。
输入图像被划分为8×8像素的网格,每个网格单元通过1×1卷积快速回归关键点坐标,最终获得关键点嵌入K。
密集匹配:
提出轻量级模块,通过选择可靠性分数高的图像区域进行匹配,控制内存和计算需求。
采用简单的MLP进行粗到细的匹配,无需高分辨率特征图,适用于资源受限环境。
给定特征图F的子集Fs,提出策略恢复像素级偏移,使用MLP预测特征对的偏移,实现原始分辨率下的精确匹配。
整个网络设计注重计算效率和特征提取的准确性,通过端到端训练确保特征表示的有效性,并优化了密集匹配的性能。
2-3 Network Training
XFeat通过像素级真实对应关系进行监督学习。对于图像对(I1, I2),我们假设有N个匹配像素点MI1↔I2,记录了各自在I1和I2中的坐标。
Learning local descriptors 使用负对数似然损失来训练局部特征嵌入F。通过F1和F2两个描述符集,计算相似性矩阵S,并采用双重softmax损失Lds。
Learning reliability 将双重softmax概率视为置信度量,通过L1损失直接监督可靠性图。
Learning pixel offsets 利用原始分辨率下的真值对应关系,采用NLL损失训练匹配细化模块。
Learning keypoints 设计极简的关键点检测分支,通过从较大的教师网络中进行知识蒸馏来促进学习。使用ALIKE关键点监督模型,将关键点坐标映射为线性索引,并设置无关键点情况的上限以避免类别不平衡。
最终Loss: