LoMa: Local Feature Matching Revisited¶
会议: ECCV2026
论文: ECCV 原文
代码: https://github.com/davnords/LoMa
领域: 几何匹配与定位
关键词: 局部特征匹配、数据规模化、描述子学习、视觉定位、困难匹配评测
一句话总结¶
LoMa 保留 DaD 检测器、DeDoDe 描述子与 LightGlue 匹配器的基本分工,通过扩大训练数据、改进训练配方和匹配器扩容,在新建的 HardMatch 测试集上取得 54.3 mAA@10px,比 ALIKED+LightGlue 高 18.6 点。
研究背景与动机¶
从无序照片重建场景,需要先判断两张图里哪些像素来自同一个物理位置。 传统局部特征管线先检测关键点,再提取描述子,最后在两组描述子之间建立对应。 学习型检测器和 LightGlue 等上下文匹配器提高了鲁棒性,也保留了每张图的特征可以预先提取、跨图像对复用的优势。 但近年的显著进展更多来自 LoFTR、RoMa 等无检测器匹配方法,以及 MASt3R、VGGT 等前馈重建系统。 因此,一个容易被接受的解释是:先选稀疏关键点的范式本身已经接近上限。
本文质疑的正是这个因果判断,而不是否认稀疏关键点可能漏掉对应区域。 作者指出,新的稠密与重建方法通常使用远多于传统局部匹配器的训练数据;在数据与计算投入不同的前提下,性能差距不能全部归因于架构。 另一方面,常用评测从已经成功重建的场景抽取图像对,相当于先筛掉了旧系统无法处理的一部分困难案例。 当容易的图像对逐渐饱和时,增加泛化能力可能只带来很小的平均分变化,反而掩盖了实际价值。 作者因此同时改变训练条件与评测难度:前者检验局部匹配还能进步多少,后者让这些进步变得可观测。
LoMa 的定位是一套规模化训练方案与模型家族,而不是全新的检测器、描述子或注意力结构。 HardMatch 则补上跨年代、昼夜、极端视角等困难图像对,并用人工对应避免完全依赖已有重建成功的样本。 核心 idea:在保留可复用稀疏特征管线的同时,用多样化几何监督训练更强的描述子与匹配器,再用真正困难的图像对检验其能力,而不是过早把旧训练条件下的表现当成范式上限。
方法详解¶
整体框架¶
输入是两张图像,输出是可交给几何估计、SfM 或视觉定位系统的一组关键点对应,而不是直接预测整幅深度或相机位姿。 训练依次经过多源几何监督、描述子预训练、匹配器扩容三个环节;训练匹配器时冻结已经训练好的描述子。 推理时,DaD 独立检测每张图的关键点,描述子为这些位置提取特征,再由匹配器让两张图的特征交互。 匹配器输出经上下文修正的描述子,最后执行双向互选与置信度过滤。 下图中的虚线表示训练后使用相应模型,不表示推理还需要真值深度或训练数据。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
DATA["17 个训练数据集"] --> MIX["多源几何监督"]
MIX --> DESC["描述子预训练"]
DESC -->|冻结描述子| MATCH["匹配器扩容"]
MIX -->|训练对应与可匹配性| MATCH
INPUT["图像对"] --> FEAT["DaD 关键点<br/>与独立描述子"]
DESC -.->|训练后特征提取| FEAT
FEAT --> PAIR["跨图像匹配"]
MATCH -.->|训练后匹配| PAIR
PAIR --> OUTPUT["互选与阈值过滤<br/>输出关键点对应"]
关键点、描述子与对应关系是三个不同对象:点给出图像坐标,描述子提供外观证据,对应关系才表达两张图之间的关联。 LoMa 没有训练新的检测器,也没有把图像对交互提前到独立特征提取阶段。 这种划分让同一张数据库图像不必为每个查询重新计算描述子,但匹配器仍需处理每个候选图像对。
关键设计¶
1. 多源几何监督:扩大数据多样性,也重建不够准确的标签
监督信号来自已知相对位姿与深度图:它们把一幅图的关键点投影到另一幅图,确定哪些检测位置确实对应。 数据不是简单拼接更多 MegaDepth 图像,而是覆盖室内、室外、航拍、物体中心、驾驶、前向运动及合成场景。 表 1 共列出 17 个数据集,组合了宽基线与光流类数据,采样权重并不相同。 多数主数据源的权重为 1,部分为 0.1;FlyingThings3D 为 0.5,SpatialVID、UnrealStereo4k 与 Virtual KITTI 2 为 0.01。 这些是混合权重,不是每个数据集的百分比,也不意味着所有来源提供等量样本。 多样化的目的,是让特征与匹配器学习更多外观变化和几何关系,而不是记住单一照片集合的模式。
作者还针对三个来源补做几何处理,因为匹配监督对像素级标签误差敏感。 MegaDepth (Re-MVS) 重新运行 COLMAP MVS,并纳入原流程跳过的后续稀疏重建模型。 MegaScenes 先筛选出相机与三维点数量足够的 303 个场景,再运行 COLMAP MVS。 SpatialVID 原有三维标注被认为不够准确,因此选择 59 个场景重新重建。 该分支以 SIFT+DaD 关键点、RoMa v2 对应和共享内参执行 SfM,再用 RoMa v2 与原生 PyTorch PatchMatch 管线计算深度。 由于这些场景多为前向运动,初始化时不按前向运动过滤图像对,以免重建频繁失败。 因此,数据扩张包含真实的标签生产与质量筛选成本,并非仅下载更多现成样本。
2. 描述子预训练:先让独立特征能够双向辨认真实对应
描述子沿用 DeDoDe 架构,训练时每张图使用 DaD 提供的 2048 个关键点。 每个点的描述子只依赖该点所在图像,还不知道待匹配的另一张图,因此能够离线计算和复用。 将两组描述子两两点积,得到相似度矩阵;正确对应不能只在一个方向上显得相似,还应在反向候选中占优。 这正是双 softmax 的作用:分别在两个匹配方向归一化,再把两种概率相乘。 为避免正文文本提取中的损坏字形,下面用 \(\alpha\) 表示逆温度,对原文公式 (2)–(3) 作等价记号重述:
这里 \(S_{ij}\) 是描述子点积,\(\mathcal{M}_{A,B}\) 是几何监督确定的真实对应集合。 损失提升真对应在两个方向上的概率;大量非对应点则通过 softmax 分母形成竞争。 如果一个重复纹理点同时像很多候选,仅有高点积仍不足以形成清晰的双向分配。 这个目标沿用 DeDoDe 的思路,本文的增益主要来自训练数据与配方,而不是新的对比损失。 完成这一阶段后,描述子被冻结,后续匹配器训练不会反向改变独立特征。
3. 匹配器扩容:让已有注意力结构在更强输入与更多数据上发挥能力
匹配器以 LightGlue 为基础,接收关键点坐标和描述子,交替执行图内自注意力与跨图交叉注意力。 图内交互让一个局部特征结合周围点的上下文;跨图交互让候选关系受到另一幅图整体证据的约束。 自注意力使用 RoPE,使注意力分数与点之间的相对位置有关;交叉注意力不使用位置编码。 直观上,同一图像内可以利用相对布局,而跨视角像素坐标本身并不直接对齐。 若描述子维度与匹配器嵌入维度不同,先用可学习线性投影连接两者。
三个主版本 B、L、G 都使用 9 个 Transformer 块,注意力头维度均为 64。 扩容改变的是嵌入宽度,依次为 256、512、1024,而不是增加层数。 另有 B128 使用较轻的 DeDoDe-B、128 维描述子;其他主版本使用 DeDoDe-G 描述子。 每一层都对修正后的特征施加匹配监督,还预测一个点是否存在真实对应的可匹配性。 没有跨图对应的点应被识别为不可匹配,而不是被迫分配给一个外观相似但错误的候选。 逐层监督使较浅的中间输出也有意义,从而可以在推理时选用较少层数换取速度。
默认推理使用最后一层特征构造双 softmax 分配,保留同时是所在行与列最大值的互选对应。 随后丢弃 \(P_{ij}<0.1\) 的匹配;这一步输出稀疏对应,尚未完成基本矩阵估计或定位。 论文另比较了使用 3、5、9 层的速度与精度,但这些是截断层数设置,不能直接写成所有场景都以同一速度运行。 与新增一个复杂模块相比,这个设计更强调既有匹配结构在宽度、数据与监督充足时仍有很大余量。
一个完整示例¶
以一对同一建筑的白天照片与夜间照片为例,下面只解释数据流,不把示例当作新增实验。 评测设置下,每张图先提取 4096 个关键点及其独立描述子;匹配器于是需要在两组各 4096 个候选之间判断关联。 仅靠局部亮度或窗框纹理,一些点可能与多个候选相似。 图内自注意力利用周围关键点布局,跨图交叉注意力则结合对面图像的证据,逐层修正这些描述子。 最后,某个窗角必须在两个方向上互为最优,且分配概率不低于 0.1,才能成为输出对应。 被遮挡、只在一幅图中出现或仍不确定的点,不应被理解为必然有输出。 若用于 HardMatch,就再由预测对应估计基本矩阵,并用人工标注对应检查其极线误差。 若用于定位,则对应进入指定的定位管线;网络本身不会直接产出本例相机的真实位姿。
损失函数 / 训练策略¶
训练先优化描述子,再固定描述子优化匹配器,不是从检测到几何估计的端到端联合训练。 匹配器每层使用与描述子阶段相同形式的双 softmax 匹配损失,并附加可匹配性的二元交叉熵。 可匹配性的真值来自该点是否属于真实对应集合,而不是是否被当前模型高置信度预测。 两阶段均用 AdamW、余弦退火、\(560\times560\) 分辨率和全局 batch size 64。 峰值学习率为 \(2\times10^{-4}\),权重衰减为 \(5\times10^{-5}\),EMA 衰减系数为 0.999。 描述子训练 50K 步,作者报告在 8 张 A100 40GB 上约需一天。 匹配器训练 250K 步,B/L 使用 8 张 A100 40GB,G 使用 16 张,各约两天。 这些时间描述训练资源,并不包含全部数据重建成本,也不是消费级硬件的时间承诺。 作者报告继续延长描述子训练没有帮助,并在局限中指出过拟合,因此不能将“越多计算越好”无条件推广到所有阶段。
实验关键数据¶
主实验¶
下表节选原文表 2(第 12 页),稀疏方法评测使用每图 4096 个关键点。 MegaDepth-1500 与 ScanNet-1500 报告相对位姿误差曲线的 AUC@5°;WxBS 和 HardMatch 报告 mAA@10px,均越高越好。 HardMatch 先用预测对应估计基本矩阵,再由人工真值点的极线误差计算不同阈值下的 PCK,并让每个图像对等权贡献。 mAA 汇总截至 10px 的阈值准确率;主文未给出完整阈值采样与鲁棒估计参数,这些细节引用了未随当前正文提供的补充材料。 HardMatch 共 1000 对、100 个类别,按类别划为 10 个验证类别与 90 个测试类别,每对有 8–28 个手工对应。
| 方法 | MegaDepth AUC@5° | ScanNet AUC@5° | WxBS mAA@10px | HardMatch mAA@10px |
|---|---|---|---|---|
| MASt3R | 42.4 | 33.6 | 34.5 | 33.6 |
| RoMa | 62.6 | 31.8 | 72.6 | 48.1 |
| RoMa v2 | 62.8 | 33.6 | 64.8 | 46.5 |
| ALIKED+LightGlue | 48.1 | 14.5 | 43.9 | 35.7 |
| LoMa 描述子,无学习匹配器 | 51.7 | 18.7 | 63.0 | 39.5 |
| LoMa-B | 55.7 | 27.5 | 68.7 | 51.1 |
| LoMa-L | 56.5 | 29.3 | 70.6 | 53.5 |
| LoMa-G | 56.1 | 29.3 | 73.4 | 54.3 |
LoMa-G 在 HardMatch 比 ALIKED+LightGlue 高 18.6 点,但并不代表在所有几何评测中都超过稠密方法。 例如 MegaDepth AUC@5° 上 LoMa-L 的 56.5 仍低于 RoMa v2 的 62.8;ScanNet 上也不能据此宣称全面领先。 主文表 3(第 13 页)的 InLoc DUC2 在 (1m, 10°) 下为 89.3 对 67.9,表明增益也能传递到定位任务。 这些定位数字依赖 HLoc 管线,不能与 HardMatch 的像素阈值指标直接比较。
消融实验¶
下表对应原文表 5(第 14 页),全部为 HardMatch 验证集 mAA@10px,不能与上表测试集数值混用。 从 II 开始按顺序叠加改动;III 和 IV 分别只扩展匹配器数据、再扩展描述子数据。
| 配置 | HardMatch 验证 mAA@10px | 相对上一行变化 |
|---|---|---|
| I:ALIKED+LightGlue | 36.3 | 基线 |
| II:DaD+DeDoDe+LightGlue,在 MegaDepth 重训 | 42.0 | +5.7 |
| III:匹配器使用全部数据 | 48.9 | +6.9 |
| IV:描述子也使用全部数据 | 51.1 | +2.2 |
| V:匹配器训练由 50K 延长至 250K,LoMa-B | 51.5 | +0.4 |
| VI:LoMa-L | 52.8 | +1.3 |
| VII:LoMa-G | 52.9 | +0.1 |
关键发现¶
- 在这条累积消融路径上,数据扩展从 42.0 提高到 51.1,合计 +9.1 点,大于之后单纯延长训练的 +0.4 点。
- B 到 G 的扩容净增为 +1.4 点,但 L 到 G 仅 +0.1 点,说明增加宽度的边际收益并不恒定。
- 表 5 是顺序叠加消融,不是所有变量的完整因子实验,不能把这些差值当作与配置无关的独立贡献。
- 作者另报告 LoMa-B 在 A100、2048 个点和 batch size 16 时可达每秒数百对;这是匹配器吞吐,不能等同于完整 SfM 吞吐。
亮点与洞察¶
- 本文最有价值的对照是改变训练资源后重新检验旧架构。它说明弱训练条件下的结果不足以证明局部特征范式已经失效。
- 描述子与匹配器分阶段训练保留了特征缓存能力。对一个图像参与许多配对的 SfM 或定位系统,这比只看单次前向精度更有工程意义。
- HardMatch 用 RoMa v2 置信度筛选候选,再人工判断可匹配性与标点。困难集不再完全由旧重建成功与否定义,但这种筛选仍有方法依赖。
局限与展望¶
- 作者承认描述子长时间训练会过拟合,而且 LoMa 对相似但不同的结构、极端视角等 HardMatch 子组仍有明显困难。
- HardMatch 的基本矩阵评测要求静态场景与透视相机,人工关键点也带有误差,不能覆盖所有非刚性或非透视匹配任务。
- 数据有地理与时间分布偏差;使用 RoMa v2 置信度筛选难例,也不能保证对不同模型家族完全中性。这一点是基于采集流程的读者判断。
- 论文没有在当前方法中解决平面内旋转鲁棒性;正文提到后续工作,不应把后续能力归入本次 LoMa 结果。
- 当前可读材料仅含主文,补充材料中的逐组完整表、阈值网格及额外检测器消融未独立核实;人工基线直接评对应,与模型经基本矩阵评测的分数不可直接比较。
相关工作与启发¶
- 对比 DeDoDe 与 DaD:LoMa 使用 DaD 检测点、重训 DeDoDe 描述子,而不重新学习检测器;因此主要证据针对描述与匹配阶段的训练扩展。
- 对比 LightGlue:骨干自注意力、交叉注意力与逐层监督沿用已有方案,关键变化是输入特征、数据和宽度。公平解释贡献比把所有组件包装为新设计更重要。
- 对比 RoMa 与 RoMa v2:这些方法直接进行稠密匹配,LoMa 保留稀疏特征缓存优势;HardMatch 与相对位姿结果表明两者优劣具有任务依赖性。
- 研究启发:可在固定标签质量与计算预算下逐项比较数据来源、宽度和训练时长,并考察收益能否迁移到旋转与动态场景;这是后续研究建议,不是本文已有结论。
评分¶
- 新颖性: 4/5。贡献集中于规模化证据、训练数据与困难基准,而非全新网络结构。
- 实验充分度: 5/5。主文覆盖匹配、相对位姿、定位和累积消融,但仍需留意管线与训练资源差异。
- 写作质量: 4/5。论点与证据对应清楚,部分复现细节放在补充材料中。
- 价值: 5/5。为可缓存的局部特征系统提供了强基线,并纠正了把训练不足误判为范式上限的风险。