Downloads · 30 days
0
xboix/roma-outdoor
roma-outdoor is a machine learning model from xboix. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as other.
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 exi…
Downloads · 30 days
0
Access
Public
Updated Aug 20, 2026
Repo size
1.7 GB
Likes
0
Public
Click a slice to open those files.
.pth1.7 GB · 100%
From the Hugging Face model README
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.
| File | Bytes | SHA-256 |
|---|---|---|
dinov2_vitl14_pretrain.pth | 1,217,586,395 | d5383ea8f4877b2472eb973e0fd72d557c7da5d3611bd527ceeb1d7162cbf428 |
roma_outdoor.pth | 445,647,516 | c7a45c80d41ad788a63c641d1b686d7cb3f297f40097c6f4e75039889e5cc8ba |
| 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.
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)
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).@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}
}