Research
RoMa v2: Harder Better Faster Denser Feature Matching
Overview Research area: Computer vision, specifically dense feature matching and its use in visual localization and 3D reconstruction. Technical level: Advanced. The paper assumes familiarity with tra
- arXiv
- 2511.15706
- Published
- 2025-11-19
- Authors
- Johan Edstedt, David Nordström, Yushan Zhang, Georg Bökman, Jonathan Astermark, Viktor Larsson, Anders Heyden, Fredrik Kahl, Mårten Wadenbäck, Michael Felsberg
AI summary
Overview
- Research area: Computer vision, specifically dense feature matching and its use in visual localization and 3D reconstruction.
- Technical level: Advanced. The paper assumes familiarity with transformers, attention, correspondence estimation, RANSAC-style pose estimation, and dense matching benchmarks.
- Scope: The paper presents RoMa v2, an improved dense feature matcher built on RoMa, describing its architecture, training data mixture, losses, and an extensive set of benchmark comparisons, ablations, and runtime measurements.
What This Paper Is About
Dense feature matching tries to find, for every pixel in one image, the corresponding pixel in another image of the same 3D scene, along with a confidence value for each match. The authors argue that existing dense matchers either fail on hard real-world scenarios (extreme viewpoint, illumination, or modality changes) or are slow and memory-hungry. RoMa v2 aims to combine the robustness of RoMa with the speed of UFM while retaining subpixel precision.
Key Contributions
- A novel matching objective: A formulation combining warp and correlation-based losses (including a new negative-log-likelihood term,
L_NLL) that lets the coarse matcher learn multi-view context, replacing RoMa's Gaussian Process with a single-headed attention mechanism (Section 3.2). - Faster, leaner refiners: Refiners redesigned for lower memory use, including a custom CUDA kernel for the local correlation operation and channel dimensions constrained to powers of two (Section 3.3, ablated in Table 8).
- A curated training data mixture: A blend of wide-baseline and small-baseline datasets that trades off robustness to extreme viewpoints against subpixel accuracy (Section 3.4).
- Predicted pixel-wise error covariance: A 2×2 precision matrix per pixel, usable downstream for refining estimated geometry (Section 4.8).
- Experimental verification that the changes reduce runtime relative to baseline RoMa while matching or outperforming both RoMa and UFM on their respective strong points.
Main Findings
- Frozen DINOv3 beats frozen DINOv2: A linear probe on MegaDepth gives end-point error (EPE) of 27.1 (DINOv2) versus 19.0 (DINOv3), with robustness (share of matches with error below 32px) of 77.0% versus 86.4% (Table 1), despite DINOv3's slightly larger patch size (16 vs. 14).
- The new matching architecture outperforms UFM's on Hypersim: PCK@1px is 11.2 for UFM versus 30.5 for RoMa v2; @3px is 48.3 versus 76.7; @5px is 67.4 versus 86.7 (Table 2).
- Relative pose estimation: On MegaDepth-1500, RoMa v2 achieves AUC of 62.8 / 77.0 / 86.6 at 5° / 10° / 20°, compared with RoMa's 62.6 / 76.7 / 86.3 and UFM's 41.5 / 57.9 / 72.4; it also surpasses all listed feed-forward 3D reconstruction methods on MegaDepth. On ScanNet-1500 it reaches 33.6 / 56.2 / 73.8, on par with VGGT (33.9 / 55.2 / 73.4) and MASt3R (33.6 / 56.8 / 74.1) (Table 4).
- Visual localization: On Map-free, precision rises from 59.7 (RoMa) to 73.3 and AUC from 84.4 to 89.6. On InLoc, DUC1 goes from 60.6/79.3/89.9 to 67.7/84.3/94.4 and DUC2 from 66.4/83.2/87.8 to 73.3/86.3/90.8 — the authors state this tops the public InLoc leaderboard (Table 5).
- Dense matching across six datasets: RoMa v2 beats RoMa and UFM on TA-WB, MegaDepth, ScanNet++ v2, FlyingThings3D, AerialMegaDepth, and MapFree at 640×640, with 84% lower EPE than RoMa on AerialMegaDepth (Tables 6 and 7). For example, on TA-WB, EPE is 13.82 (RoMa v2) versus 15.85 (UFM) and 60.61 (RoMa), and 1px accuracy is 67.7 versus 31.3 and 35.1.
- Runtime and memory: On an H200 with batch size 8, RoMa v2 reaches 30.9 pairs/s with 4.8 GB (with the custom CUDA kernel) versus RoMa's 18.5 pairs/s at 4.7 GB and UFM's 43.0 pairs/s at 16.2 GB — 1.7× faster than RoMa (Table 8).
- EMA fixes subpixel bias: Training-time predictions show a small subpixel bias (typically around ±0.1 pixels at 640×640); an exponential moving average with decay α=0.999 reduces it and improves MegaDepth-1500 results from (61.4, 75.8, 85.7) to (62.8, 77.0, 86.6) (Table 9).
- Predictive covariance helps downstream: On Hypersim, covariance-weighted refinement improves AUC@1° from 54.9 to 75.8, and combining RANSAC reweighting with refinement gives 76.4 — approximately a 20-point gain on AUC@1 (Table 12).
- Subpixel accuracy matters on MegaDepth-1500: Perturbing RoMa v2's predictions to match UFM's residual distribution drops its AUC from 62.8 / 77.0 / 86.6 to 46.3 / 63.7 / 77.4 (Table 13).
- Mixed results on WxBS: RoMa v2 scores 55.4 mAA@10px, below RoMa's 60.8 but above UFM's 42.3; the authors attribute this to difficulty with the IR-to-RGB multi-modal subset (Table 11).
- New SatAst benchmark: RoMa v2 reaches 37.0 AUC@10px, versus RoMa's 23.5 and UFM's 1.8 (Table 11).
- New state of the art on RUBIK: Success ratio of 57.3, beating the previous leader DUSt3R at 54.8 (Section 4.7).
Methodology in Plain English
The pipeline runs in two separately trained stages. First, a coarse matcher takes frozen DINOv3 features from both images and passes them through a Multi-view Transformer that alternates between processing each image on its own and jointly, producing coarse warps and confidences at one quarter of the original resolution. The authors replaced RoMa's Gaussian Process with a simple single-headed attention and added an auxiliary loss (L_NLL) that minimizes the negative log-likelihood of the best matching patch, a dense directional version of the approach used in LoFTR.
Second, three refiners at strides 4, 2, and 1 take the coarse warp and refine it to full resolution using a UNet-like CNN. A custom CUDA kernel for the local correlation step cuts memory use, and channel dimensions were made powers of two. Alongside warp and overlap predictions, the refiners predict a per-pixel 2×2 precision matrix, parameterized through Cholesky factors that are kept positive definite via softplus, and trained by negative log-likelihood only in co-visible regions where the residual norm is under 8 pixels. An exponential moving average of the weights (α=0.999) counters small subpixel biases that appear randomly during training.
The matcher and refiners were each trained for 300k steps (batch sizes 128 and 64, roughly 38M and 19M pairs respectively) at a learning rate of 4·10⁻⁴. The training mixture draws from ten datasets totaling 5069 scenes, weighting MegaDepth, AerialMD, BlendedMVS, Hypersim, TartanAir v2, Map-Free, and ScanNet++ v2 at 1, FlyingThings3D at 0.5, and UnrealStereo4k and Virtual KITTI 2 at 0.01. The matcher trains on a mix of seven resolutions and aspect ratios, while refiners train exclusively at 640×640.
Why This Matters
Impact on research: The paper shows that a frozen foundation model (DINOv3) upgraded into a multi-view matching architecture can set a new state of the art without fine-tuning the backbone, and that explicit subpixel precision still separates strong from weak matchers on benchmarks like MegaDepth-1500. It also introduces a new benchmark (SatAst) and demonstrates that predicted covariance is useful in downstream geometry refinement, a capability RoMa and UFM do not offer.
Real-world applications:
- Visual localization and relocalization for cameras, evaluated here on Map-free and InLoc.
- 3D reconstruction and structure-from-motion pipelines that consume point correspondences.
- Autonomous driving and outdoor robotics, where the model is tested on NuScenes-derived RUBIK data and texture-poor road surfaces.
- Satellite-to-astronaut image matching, targeted by the new SatAst benchmark built from EarthMatch pairs.
Industry relevance: The 1.7× speedup over RoMa and reduced memory footprint (4.8 GB versus UFM's 16.2 GB at the tested setting) matter for large-scale or resource-constrained deployments, and the public code release at https://github.com/Parskatt/RoMaV2 lowers the barrier to adoption.
Future Directions
- Closing the modality gap: RoMa v2 is slightly less robust than RoMa to extreme modality changes, and both it and UFM struggle with WxBS's IR-to-RGB subset; the authors name exploring the trade-off between generalization and performance as future work.
- Better handling of out-of-distribution imagery: Satellite imagery is described as out of distribution for most matchers including RoMa v2, and SatAst's large scale changes and in-plane rotations remain challenging.
- Extending covariance-aware estimation: Predicted covariances improved Hypersim pose metrics; further integration into estimation pipelines is a natural extension, though the paper does not specify further plans.
- Pushing the accuracy-efficiency frontier further: The refiners and matcher were each trained for 300k steps; the paper does not report whether additional training or architectural changes beyond DINOv3 would yield further gains.
Target Audience
Researchers and engineers working on feature matching, visual localization, 3D reconstruction, and structure-from-motion, particularly those already familiar with RoMa, DKM, LoFTR, and UFM. It is also useful for practitioners choosing a matcher for a deployment where runtime and memory matter, and for benchmark designers interested in the new SatAst benchmark and the covariance-based evaluation in Section 4.8. Beginners would need background in transformer architectures and multi-view geometry to follow the method sections.
Authors’ abstract
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