RoMa (outdoor) — weight mirror
Unmodified mirror of the two checkpoints that RoMa (CVPR
2024, Edstedt et al.) needs in order to run inference. Upstream ships no Hugging Face repo and
downloads these via torch.hub at construction time; this repo exists so they can be fetched
once with huggingface_hub and loaded offline afterwards.
Nothing here is retrained, converted, quantised or otherwise modified — the files are byte-identical to the upstream artefacts listed below.
Contents
| File | Bytes | SHA-256 |
|---|---|---|
dinov2_vitl14_pretrain.pth |
1,217,586,395 | d5383ea8f4877b2472eb973e0fd72d557c7da5d3611bd527ceeb1d7162cbf428 |
roma_outdoor.pth |
445,647,516 | c7a45c80d41ad788a63c641d1b686d7cb3f297f40097c6f4e75039889e5cc8ba |
Provenance
| File | Upstream source |
|---|---|
roma_outdoor.pth |
https://github.com/Parskatt/storage/releases/download/roma/roma_outdoor.pth (weight_urls["romatch"]["outdoor"] in romatch/models/model_zoo/__init__.py) |
dinov2_vitl14_pretrain.pth |
https://dl.fbaipublicfiles.com/dinov2/dinov2_vitl14/dinov2_vitl14_pretrain.pth (weight_urls["dinov2"]) |
dinov2_vitl14_pretrain.pth is Meta's original DINOv2 ViT-L/14 state dict. It is not
interchangeable with the transformers-format facebook/dinov2-large:
RoMa ships its own DINOv2 implementation and expects this layout.
Usage
import torch
from huggingface_hub import snapshot_download
from romatch import roma_outdoor
local = snapshot_download("xboix/roma-outdoor")
# roma_outdoor() raises unless float32 matmul precision is "highest".
torch.set_float32_matmul_precision("highest")
# Passing both state dicts explicitly is what keeps this offline — leave either as None and
# romatch falls back to its torch.hub download.
model = roma_outdoor(
device="cuda",
weights=torch.load(f"{local}/roma_outdoor.pth", map_location="cpu"),
dinov2_weights=torch.load(f"{local}/dinov2_vitl14_pretrain.pth", map_location="cpu"),
)
warp, certainty = model.match(im_a_path, im_b_path, device="cuda")
matches, certainty = model.sample(warp, certainty)
Licence
The mirrored weights keep their upstream licences, included verbatim:
roma_outdoor.pth— MIT, © 2023 Johan Edstedt (LICENSE.RoMa).dinov2_vitl14_pretrain.pth— Apache-2.0, © Meta Platforms (LICENSE.DINOv2).
Citation
@inproceedings{edstedt2024roma,
title={{RoMa: Robust Dense Feature Matching}},
author={Edstedt, Johan and Sun, Qiyu and Bökman, Georg and Wadenbäck, Mårten and Felsberg, Michael},
booktitle={IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2024}
}
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support