MegaLoc: One Retrieval to Place Them All
Paper • 2502.17237 • Published • 5
MegaLoc is an image retrieval model for visual place recognition (VPR) that achieves state-of-the-art on most VPR datasets, including indoor and outdoor environments.
Paper: MegaLoc: One Retrieval to Place Them All (CVPR 2025 Workshop)
GitHub: gmberton/MegaLoc
import torch
import torchvision.transforms as tfm
from PIL import Image
model = torch.hub.load("gmberton/MegaLoc", "get_trained_model")
# Same preprocessing we use for evaluation: ImageNet normalization, resize to 322x322
# (any resolution works, paper results are computed at 322x322)
transform = tfm.Compose([
tfm.ToTensor(),
tfm.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
tfm.Resize(size=[322, 322], antialias=True),
])
images = torch.stack([transform(Image.open(path).convert("RGB")) for path in ["im1.jpg", "im2.jpg"]])
with torch.inference_mode():
descriptors = model(images) # shape [2, 8448], L2-normalized
similarities = descriptors @ descriptors.T # cosine similarities
For benchmarking on VPR datasets, see VPR-methods-evaluation.
Top-1 retrieved images from the SF-XL test set (2.8M database images):
@InProceedings{Berton_2025_CVPR,
author = {Berton, Gabriele and Masone, Carlo},
title = {MegaLoc: One Retrieval to Place Them All},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
month = {June},
year = {2025},
pages = {2861-2867}
}