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.
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