Semi-dense local feature matching commonly aggregates contextual information before coarse-to-fine correspondence estimation. However, intra-image and inter-image aggregation serve different roles: the former should propagate spatial evidence within each image while retaining structured two-dimensional dependencies, whereas the latter should gather information from plausible corresponding regions while limiting noise from unrelated locations. We propose WovenAnchor Matcher (WAM), a semi-dense matching framework based on role-specialized context aggregation. WAM introduces two complementary operators. WovenMamba performs intra-image aggregation through horizontal-then-vertical state-space propagation, allowing vertical updates to operate on horizontally contextualized features and thereby encouraging a structured two-dimensional receptive-field bias. AnchorCrossAttention performs inter-image aggregation by using cross-attention to gather context from plausible corresponding regions across the image pair. It performs this exchange over local representative anchors that aggregate feature evidence within each window. On MegaDepth, WAM achieves 66.1 pose AUC@5∘, improving on the JamMa baseline by 2.0 AUC points under the same evaluation setup. Ablations show that removing or replacing either specialized component reduces accuracy, providing evidence that intra-image propagation and inter-image retrieval benefit from role-specific aggregation designs. Code and pretrained weights are available at https://github.com/mmaiLab/WovenAnchorMatcher.
Figures & tables
Figure 1: Relative pose AUC@5 ∘ vs. runtime on MegaDepth. Runtime is measured on a single NVIDIA H100 GPU.
Figure 2: Context aggregation designs. LoFTR uses separate self-/cross-attention, JamMa uses a shared JointMamba design, and WAM explicitly separates intra-image and inter-image aggregation into WovenMamba and AnchorCrossAttention. The diagrams are schematic summaries of the coarse context aggregation blocks rather than layer-by-layer implementations.
Figure 3: WovenMamba. The input is split into propagation and gate branches. The propagation branch is processed by horizontal-then-vertical SSM propagation, then gated, projected, and added back through a residual connection. The arrows illustrate the dominant horizontal and vertical scan orders; the implementation uses the corresponding row-major and column-major flattenings.
Figure 4: Receptive-field intuition under simplified linear models. The red circle marks the output position (i,j) , and color indicates the normalized influence from each source position (p,q) . Rows compare the additive scan-and-sum baseline Wsum , the dominant-path approximation Will , and the exact finite-grid kernel Wexact of the simplified WovenMamba composition. Columns show different one-dimensional decay settings: Single State, Long Horizontal, Long Vertical, and Two States.
Figure 5: AnchorCrossAttention. Anchor construction pools local window features into anchors using soft clustering. After cross-image attention, anchor-to-feature projection distributes the anchor updates using the same assignment probabilities. Overlap fusion combines the window-specific updates on the dense grid through a weighted Fold using normalized overlap weights.
Model family
Matcher
Params
Runtime
Relative pose error AUC ↑
(M)
(ms)
@5 ∘
@10 ∘
@20 ∘
Sparse
XFeat [ Potje et al., 2024 ]
0.7
12.5
44.2
58.2
69.2
SP+SuperGlue [ Sarlin et al., 2020 ]
13.3
55.2
57.6
72.6
83.5
SP+LightGlue [ Lindenberger et al., 2023 ]
13.2
47.2
58.8
73.6
84.1
Dense
DKM [ Edstedt et al., 2023 ]
72.3
315.9
67.3
79.7
88.1
RoMa [ Edstedt et al., 2024 ]
111.3
470.2
68.5
80.6
88.8
Table 1: MegaDepth-1500 relative pose estimation. We report parameters, runtime, and pose-error AUC. Best and second-best semi-dense results are highlighted. XFeat ∗ denotes the semi-dense variant with match refinement. WAM † reports the checkpoint whose AUC@5 ∘ equals the median over seven runs; full repeated-run statistics are in Appendix E .
Matcher
ScanNet relative pose error AUC ↑
HPatches homography error AUC ↑
@5 ∘
@10 ∘
@20 ∘
@3px
@5px
@10px
SP+SuperGlue [ Sarlin et al., 2020 ]
16.5
32.2
48.8
53.9
68.3
81.7
SP+LightGlue [ Lindenberger et al., 2023 ]
15.9
32.2
49.7
54.2
68.3
81.5
LoFTR [ Sun et al., 2021 ]
20.7
37.7
53.4
65.9
75.6
84.6
ASpanFormer [ Chen et al., 2022 ]
21.9
40.6
57.4
67.4
76.9
85.6
JamMa [ Lu and Du, 2025 ]
18.5
35.6
51.3
68.1
77.0
85.4
Table 2: Zero-shot transfer using MegaDepth-trained weights. ScanNet reports relative pose AUC at angular error thresholds; HPatches reports homography AUC at corner-error thresholds in pixels.
Variant
Runtime
Relative pose error AUC ↑
(ms)
@5 ∘
@10 ∘
@20 ∘
WovenAnchorModule (Default)
35.4
66.1
78.9
87.7
w/o WovenMamba
30.5
64.6
77.7
86.6
w/o AnchorCrossAttention
27.4
64.0
77.0
86.1
w/o both
20.9
62.0
75.0
84.7
Table 3: Component ablations on MegaDepth-1500. We report pose-error AUC under WAM component removals. Runtime is measured for the full matcher.
Table 9
Intra-image
Inter-image
AUC@5 ∘
AUC@10 ∘
AUC@20 ∘
Runtime (ms)
WovenMamba
ACA (default)
66.1
78.9
87.7
35.4
ASA
ACA
64.7
77.8
86.7
38.6
WovenMamba
CWM
65.4
78.3
87.4
33.9
ASA
CWM
64.9
77.7
86.7
36.0
Table 6: Operator-to-role assignment on MegaDepth-1500. ASA: AnchorSelfAttention; CWM: CrossWovenMamba. Runtime is measured for the full matcher.
Figure 6: Qualitative matching examples. We compare LoFTR, JamMa, and WAM. Green and red lines indicate geometrically consistent and inconsistent matches, respectively.
Appendix figures & tables22 assets
Supplementary material from the paper’s appendix.
Appendix
Variant
MegaDepth-1500
ScanNet-1500
AUC@5 ∘
AUC@10 ∘
AUC@20 ∘
AUC@5 ∘
AUC@10 ∘
AUC@20 ∘
w/o separators
66.0
78.8
87.7
22.5
40.6
56.5
with separators
66.1
78.9
87.7
23.2
41.2
57.2
Appendix
Table 7: Effect of WovenMamba separator tokens.
Component
WAM (ms)
JamMa (ms)
Backbone
5.6
5.9
Context module
14.0
2.9
Coarse matching
4.7
20.9
Fine matching
9.7
10.2
End-to-end total
35.4
43.8
Appendix
Table 8: Runtime breakdown on MegaDepth (ms). Stage timings exclude some overhead and therefore do not sum exactly to the end-to-end totals.
Stage
Representation
Spatial sampling
Before WovenAnchorModule
104×104 coarse features
Dense 1/8 grid
WovenMamba
104×104 coarse features
Dense 1/8 grid
ACA anchor construction
8×8 coarse cells/window
Dense 1/8 grid
ACA cross-attention
25×25 windows, 4 anchors each
1/32 center spacing
ACA anchor-to-feature projection and overlap fusion
104×104 coarse features
Dense 1/8 grid
Coarse matching
104×104 coarse features
Dense 1/8 grid
Appendix
Table 9: Spatial representations in WAM. Grid sizes illustrate a padded 832×832 input with the default window and anchor settings.
Figure 7: Local ERFs of trained intra-image context aggregation blocks. WovenMamba-1 (top) and OrthMamba-1 (bottom) for image pair 1. Brighter colors indicate greater relative sensitivity to the block input.
Figure 8: Local ERFs of trained intra-image context aggregation blocks. WovenMamba-2 (top) and OrthMamba-2 (bottom) for image pair 1. Panel layout and color normalization follow the protocol in Appendix C .
Figure 9: Local ERFs of trained intra-image context aggregation blocks. WovenMamba-1 (top) and OrthMamba-1 (bottom) for image pair 2. Panel layout and color normalization follow the protocol in Appendix C .
Figure 10: Local ERFs of trained intra-image context aggregation blocks. WovenMamba-2 (top) and OrthMamba-2 (bottom) for image pair 2. Panel layout and color normalization follow the protocol in Appendix C .
Variant
AUC@5 ∘
AUC@10 ∘
AUC@20 ∘
Runtime (ms)
Default ACA
66.1
78.9
87.7
35.4
Without geometry features
65.8
78.7
87.6
35.1
Joint attention across anchor IDs
66.3
79.1
87.8
36.4
Uniform anchor assignments
65.7
78.7
87.4
34.7
Uniform overlap weights
65.7
78.8
87.7
34.8
Appendix
Table 10: ACA component ablations on MegaDepth-1500. Runtime is measured for the full matcher.
ACA-1
ACA-2
Anchor k
Mean
Variance
Mean
Variance
0
0.251
0.008
0.217
0.012
1
0.249
0.007
0.267
0.042
2
0.253
0.008
0.232
0.020
3
0.247
0.006
0.284
0.047
Appendix
Table 11: Anchor assignment statistics on MegaDepth-1500. Mean and population variance of assignment probabilities in the two ACA blocks.
Setting
AUC@5 ∘
AUC@10 ∘
AUC@20 ∘
Runtime (ms)
(a) Anchor count, with w=8
K=2
65.5
78.4
87.3
32.9
K=3
65.7
78.6
87.4
33.8
K=4 (default)
66.1
78.9
87.7
35.4
K=5
65.7
78.8
87.6
36.1
K=6
65.7
78.6
87.5
37.1
Appendix
Table 12: Sensitivity to anchor count and window size on MegaDepth-1500. Runtime is measured for the full matcher.
Figure 11: Learned anchor assignments in AnchorCrossAttention. ACA-1 (top) and ACA-2 (bottom) for image pair 1, window offset (0,0) . Brighter heatmap colors indicate higher assignment probabilities.
Figure 12: Learned anchor assignments in AnchorCrossAttention. ACA-1 (top) and ACA-2 (bottom) for image pair 1, window offset (0,4) . See Appendix D.1 for visualization details.
Figure 13: Learned anchor assignments in AnchorCrossAttention. ACA-1 (top) and ACA-2 (bottom) for image pair 1, window offset (4,0) . See Appendix D.1 for visualization details.
Figure 14: Learned anchor assignments in AnchorCrossAttention. ACA-1 (top) and ACA-2 (bottom) for image pair 1, window offset (4,4) . See Appendix D.1 for visualization details.
Figure 15: Learned anchor assignments in AnchorCrossAttention. ACA-1 (top) and ACA-2 (bottom) for image pair 2, window offset (0,0) . See Appendix D.1 for visualization details.
Figure 16: Learned anchor assignments in AnchorCrossAttention. ACA-1 (top) and ACA-2 (bottom) for image pair 2, window offset (0,4) . See Appendix D.1 for visualization details.
Figure 17: Learned anchor assignments in AnchorCrossAttention. ACA-1 (top) and ACA-2 (bottom) for image pair 2, window offset (4,0) . See Appendix D.1 for visualization details.
Figure 18: Learned anchor assignments in AnchorCrossAttention. ACA-1 (top) and ACA-2 (bottom) for image pair 2, window offset (4,4) . See Appendix D.1 for visualization details.
Run
AUC@5 ∘
AUC@10 ∘
AUC@20 ∘
Runtime (ms)
A
66.4
78.9
87.5
34.9
B
66.3
79.0
87.7
35.0
C
66.2
78.9
87.6
35.0
D (default)
66.1
78.9
87.7
35.4
E
66.1
78.8
87.7
34.8
F
65.9
78.5
87.4
35.0
Appendix
Table 13: Repeated-run variability of WAM on MegaDepth-1500. Runtime is measured on a single NVIDIA H100 GPU under the protocol in Appendix A .
Input
Coarse
Method
Pose AUC ↑
Matcher time
Context time
size
size
@5 ∘
@10 ∘
@20 ∘
(ms)
(ms)
480
60×60
WAM
55.9
71.2
82.4
15.4
6.7
JamMa
53.3
68.2
79.2
16.0
2.8
640
80×80
WAM
63.7
76.7
86.3
22.0
8.8
JamMa
60.3
73.9
83.8
25.0
2.8
832
104×104
WAM
66.1
78.9
87.7
35.4
14.0
Appendix
Table 14: Input-resolution scalability on MegaDepth. We report pose AUC and runtime when varying the input resize-and-pad resolution. Context time measures WovenAnchorModule for WAM and JointMamba Module for JamMa.
Method
Day
Night
LoFTR [ Sun et al., 2021 ]
88.7 / 95.8 / 98.8
76.4 / 91.1 / 97.9
JamMa [ Lu and Du, 2025 ]
86.4 / 94.5 / 97.6
72.8 / 90.1 / 98.4
WAM (Ours)
87.5 / 94.5 / 98.2
74.3 / 91.1 / 97.9
Appendix
Table 15: Visual localization results on Aachen Day-Night v1.1. We report localization recall at (0.25m,2∘) / (0.5m,5∘) / (5.0m,10∘) . All methods are evaluated under the same HLoc-based pipeline.
Asset
Use
License / terms
Citation
MegaDepth
Training and MegaDepth-1500 relative pose evaluation
CC BY 4.0 for released depth maps, SfM models, and related derived assets; original Internet images retain their original licenses
[ Li and Snavely, 2018 ]
ScanNet
Zero-shot ScanNet-1500 relative pose evaluation
ScanNet Terms of Use for data; MIT license for code
[ Dai et al., 2017 ]
HPatches
Zero-shot homography evaluation
MIT license for the HPatches dataset repository; BSD-2-Clause license for the HPatches benchmark/evaluation code; no dataset assets are redistributed
[ Balntas et al., 2017 ]
Aachen Day-Night v1.1
Visual localization evaluation
Official dataset/benchmark terms as specified in the accompanying README files; no dataset assets are redistributed
[ Sattler et al., 2018 , Zhang et al., 2021 ]
HLoc
Visual localization pipeline
Apache-2.0 license for the HLoc codebase; third-party components follow their own licenses
[ Sarlin et al., 2019 ]
JamMa codebase
Base implementation adapted for WAM
JamMa code is released under MIT license. Its repository notes that parts of the code are based on upstream LoFTR-family repositories under their own licenses, terms, and conditions; we preserve applicable notices and do not redistribute third-party checkpoints
Local feature matching finds corresponding points or regions across images to support geometric estimation, localization, reconstruction, and recognition.
Dense feature matching aims to estimate all correspondences between two images of a 3D scene and has recently been established as the gold standard due to its high accuracy and robustness. However, existing dense matchers still fail or perform poorly for many hard real-world scenarios, and high-precision models are often slow, limiting their applicability. In this paper, we attack these weaknesses on a wide front through a series of systematic improvements that together yield a significantly better model. In particular, we construct a novel matching architecture and loss, which, combined with a curated diverse training distribution, enables our model to solve many complex matching tasks. We further make training faster through a decoupled two-stage matching-then-refinement pipeline, and at the same time, significantly reduce refinement memory usage through a custom CUDA kernel. Finally, we leverage the recent DINOv3 foundation model along with multiple other insights to make the model more robust and unbiased. In our extensive set of experiments, we show that the resulting novel matcher sets a new state-of-the-art, being significantly more accurate than its predecessors. Code is available at https://github.com/Parskatt/romav2
Johan Edstedt, David Nordström, Yushan Zhang +7
Linköping University · Chalmers University of Technology · University of Amsterdam +1
Reliable correspondence estimation is a fundamental problem in image processing, underpinning applications such as Structure from Motion, visual localization, and image registration. Existing learning-based methods have significantly improved local feature representations, yet most still operate at the pixel or patch level and lack explicit modeling of regions that are jointly visible across views. We propose SAMatcher, a feature matching framework that formulates correspondence estimation through co-visibility modeling. Instead of directly matching local features, SAMatcher first predicts co-visible region masks and bounding boxes as structured priors for correspondence estimation. Built upon the Segment Anything Model (SAM), it introduces a symmetric cross-view interaction mechanism that enables bidirectional feature exchange and cross-view semantic alignment. We further develop a unified supervision scheme that jointly optimizes mask prediction and box localization through mask learning, box regression, and mask-box consistency constraints. Extensive experiments on challenging benchmarks demonstrate substantial improvements over existing matching pipelines, particularly under large viewpoint and scale variations. Our results show that foundation models originally designed for monocular segmentation can be effectively extended to multi-view correspondence reasoning through explicit co-visibility modeling, offering a new perspective on structured representation learning for image matching. Code and project page: https://xupan.top/Projects/samatcher
Xu Pan, Qiyuan Ma, Mingyue Dong +3
State Key Laboratory of Information Engineering in Surveying, Mapping and Remote Sensing (LIESMARS), Wuhan University, Wuhan, P. R. China · National Key Laboratory of Space Target Awareness, Space Engineering University, Beijing, P. R. China
Vision Foundation Models (VFMs) have significantly advanced dense feature matching, yet severe in-plane rotation remains a critical challenge. Existing solutions face a fundamental dilemma: data-driven methods require inefficient parameter scaling to implicitly learn rotations, whereas strictly equivariant networks lack the semantic capacity of modern VFMs. Consequently, current frameworks typically freeze VFMs and shift the entire burden of rotation generalization to the downstream decoder. To break this architectural bottleneck, we propose REDI-Match, an efficient framework driven by a novel Rotation-Equivariant Distillation (REDI) paradigm. Instead of relying on rotation data augmentation to establish rotational correspondences, REDI distills the non-equivariant semantic representations of a VFM into a lightweight, strictly rotation-equivariant encoder, leveraging an equivariant geometric architecture to constrain robust high-dimensional semantics. To fully exploit these features, we equip the decoder with an entropy-driven spatial alignment module. By evaluating discrete rotation hypotheses, this mechanism explicitly locks onto the canonical coordinate system, eliminating global ambiguity before continuous refinement. Extensive experiments demonstrate that REDI-Match establishes a new state-of-the-art (SOTA) across multiple benchmarks. Notably, it achieves a 13.89% absolute pose accuracy improvement on the highly challenging SatAst dataset while operating 1.9x faster than the current SOTA (RoMa v2), enabling real-time inference (~41 FPS) on a single RTX 4090 GPU. Code: https://github.com/YinjiGe/REDI-Match.
Yinji Ge, Guixu Zheng, Wulong Guo +5
1Tsinghua University · 2Southern University of Science and Technology · 3Beihang University +1