MegaLoc / README.md
gberton's picture
Change pipeline tag, improve README, add LICENSE, make model faster and lighter
37bb43d
|
Raw
History Blame Contribute Delete
1.94 kB
metadata
pipeline_tag: image-feature-extraction
library_name: pytorch
license: mit
tags:
  - visual-place-recognition
  - image-retrieval
  - arxiv:2502.17237

MegaLoc

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

Usage

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.

Qualitative Examples

Top-1 retrieved images from the SF-XL test set (2.8M database images):

teaser

Citation

@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}
}