XFeat 五分钟拿到匹配结果:轻量级图像特征提取快速上手指南
【免费下载链接】accelerated_featuresImplementation of XFeat (CVPR 2024). Do you need robust and fast local feature extraction? You are in the right place!项目地址: https://gitcode.com/GitHub_Trending/ac/accelerated_features
两幅同一场景、不同角度的照片老是配不准?AR 和视觉定位又嫌传统匹配太慢?XFeat(accelerated_features 仓库,CVPR 2024 论文官方实现)就是一个轻量级局部特征提取与图像匹配工具——三行代码跑起来,纯 CPU 上就能实时做稀疏匹配。
两个分支看懂 XFeat 找点、描点的方式
图:XFeat 架构。Keypoint Head 输出关键点热图 K,Descriptor Head 输出 64 维描述子图 F 与置信度图 R,两个分支可独立计算
XFeat 把"找点"和"描点"拆成了两个分支:检测器先把图像折成 8×8 的块再做 1×1 卷积,所以特别省算力;描述器则用浅层前端加深层后端保证鲁棒性。这种拆法让它在一台普通笔记本的 CPU 上就能实时跑。
三条命令装好,五行代码出结果
克隆并安装(依赖很轻,除了 torch 就是 kornia、tqdm 等几个小包):
git clone https://gitcode.com/GitHub_Trending/ac/accelerated_features cd accelerated_features && pip install -r requirements.txt先跑现成的python3 minimal_example.py:终端会依次打印单图关键点、描述子、分数的形状(如 (N, 2)、(N, 64)、(N,)),然后是 100 次 VGA 压测、批量推理,最后输出稀疏与半稠密两种匹配结果。想接进自己的代码,五行就够:
import torch from modules.xfeat import XFeat xfeat = XFeat() out = xfeat.detectAndCompute(torch.randn(1,3,480,640), top_k=4096)[0] print(out['keypoints'].shape, out['descriptors'].shape)✅ 你会看到最多 4096 个特征点的坐标输出,实际 N 取决于置信度筛选,随机张量只是热身,换成真实照片就是下面这步。
看到绿线,就说明匹配成功了
把仓库自带的 assets/ref.png(素描)和 assets/tgt.png(贴砖墙上的同一张素描)传入mkpts_0, mkpts_1 = xfeat.match_xfeat(im1, im2),拿到的就是两组 (N, 2) 坐标,直接连线即可可视化。
图:真实照片的匹配效果。三组图像展示不同视角、不同距离下的特征匹配(绿线),XFeat行用的是半稠密匹配模式*
最常调的三个参数:
| 参数 | 默认值 | 调整位置 | 作用 |
|---|---|---|---|
top_k | 4096 | detectAndCompute/match_xfeat | 保留前 k 个特征,越大点数越多 |
detection_threshold | 0.05 | XFeat()构造时 | 关键点置信度阈值,越高点越少但更稳 |
min_cossim | -1 | match_xfeat | 余弦相似度下限,越大匹配筛得越严 |
值得用吗?看数字 ⚡
图:ScanNet@VGA 与 MegaDepth@1200px 上位姿精度(y 轴,10°)对每秒帧数(x 轴)的对比
两个官方口径。速度:XFeat 比现有深度学习局部特征最多快 5 倍,VGA 分辨率单张 GPU 推理超 150 FPS,RTX 4090 上批量推理约 1400 FPS。精度:MegaDepth-1500 基准上,XFeat+LighterGlue 在 Fast 配置(640p、1300 点)的 AUC@10 为 0.746,与官方 SuperPoint+LightGlue 配置(0.762)差距仅 0.016,而整套流水线明显更轻。
值得继续挖的三个方向
- realtime_demo.py:实时匹配+单应演示,
python3 realtime_demo.py --method XFeat启动,需要摄像头,按 's' 设定参考图。 - notebooks/xfeat_matching.ipynb:用仓库示例图走一遍匹配与配准的完整流程。
- notebooks/XFeat_training_example.ipynb:用合成数据复现论文中的训练过程。
XFeat 的学习成本很低,今天就能替换掉你管线里的 SIFT 或 ORB。找一对自己的照片跑一遍match_xfeat,一分钟就能确认它适不适合你的场景。
【免费下载链接】accelerated_featuresImplementation of XFeat (CVPR 2024). Do you need robust and fast local feature extraction? You are in the right place!项目地址: https://gitcode.com/GitHub_Trending/ac/accelerated_features
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考