Offizielle PyTorch-Implementierung von OpenStreetView-5M: The Many Roads to Global Visual Geolocation.
Erstautoren: Guillaume Astruc, Nicolas Dufour, Ioannis Siglidis
Zweitautoren: Constantin Aronssohn, Nacim Bouia, Stephanie Fu, Romain Loiseau, Van Nguyen Nguyen, Charles Raude, Elliot Vincent, Lintao XU, Hongyu Zhou
Letzter Autor: Loic Landrieu
Forschungsinstitut: Imagine, LIGM, Ecole des Ponts, Univ. Gustave Eiffel, CNRS, Marne-la-Vallée, Frankreich
OpenStreetView-5M ist der erste groß angelegte offene Geolocation-Benchmark für Streetview-Bilder.
Um einen Eindruck von der Schwierigkeit des Benchmarks zu bekommen, können Sie unsere Demo spielen.
Unser Datensatz wurde in einem umfangreichen Benchmark verwendet, von dem wir das beste Modell bereitstellen.
Weitere Details und Ergebnisse finden Sie auf unserer Papier- und Projektseite.
OpenStreetView-5M wird unter Huggingface/datasets/osv5m/osv5m gehostet. Um es herunterzuladen und zu extrahieren, führen Sie Folgendes aus:
python scripts/download-dataset.py
Verschiedene Möglichkeiten zum Importieren des Datensatzes finden Sie unter DATASET.md
Unser bestes Modell auf OSV-5M finden Sie auch auf Huggingface.
from PIL import Image
from models . huggingface import Geolocalizer
geolocalizer = Geolocalizer . from_pretrained ( 'osv5m/baseline' )
img = Image . open ( '.media/examples/img1.jpeg' )
x = geolocalizer . transform ( img ). unsqueeze ( 0 ) # transform the image using our dedicated transformer
gps = geolocalizer ( x ) # B, 2 (lat, lon - tensor in rad)
Führen Sie Folgendes aus, um die Ergebnisse für das Modell auf Huggingface zu reproduzieren:
python evaluation.py exp=eval_best_model dataset.global_batch_size=1024
Um alle Experimente unserer Arbeit zu reproduzieren, stellen wir spezielle Skripte unter scripts/experiments
zur Verfügung.
Um unsere Conda-Umgebung zu installieren, führen Sie Folgendes aus:
conda env create -f environment.yaml
conda activate osv5m
Um die meisten Methoden auszuführen, müssen Sie zunächst die QuadTrees vorberechnen (ca. 10 Minuten):
python scripts/preprocessing/preprocess.py data_dir=datasets do_split=1000 # You will need to run this code with other splitting/depth arguments if you want to use different quadtree arguments
Verwenden Sie den Ordner configs/exp, um das gewünschte Experiment auszuwählen. Fühlen Sie sich frei, es zu erkunden. Alle bewerteten Modelle aus dem Artikel verfügen über eine eigene Konfigurationsdatei
# Using more workers in the dataloader
computer.num_workers=20
# Change number of devices available
computer.devices=1
# Change batch_size distributed to all devices
dataset.global_batch_size=2
# Changing mode train or eval, default is train
mode=eval
# All these parameters and more can be changed from the config file!
# train best model
python train.py exp=best_model computer.devices=1 computer.num_workers=16 dataset.global_batch_size=2
@article { osv5m ,
title = { {OpenStreetView-5M}: {T}he Many Roads to Global Visual Geolocation } ,
author = { Astruc, Guillaume and Dufour, Nicolas and Siglidis, Ioannis
and Aronssohn, Constantin and Bouia, Nacim and Fu, Stephanie and Loiseau, Romain
and Nguyen, Van Nguyen and Raude, Charles and Vincent, Elliot and Xu, Lintao
and Zhou, Hongyu and Landrieu, Loic } ,
journal = { CVPR } ,
year = { 2024 } ,
}