Implementación oficial de PyTorch de OpenStreetView-5M: Los muchos caminos hacia la geolocalización visual global.
Primeros autores: Guillaume Astruc, Nicolas Dufour, Ioannis Siglidis
Segundos autores: Constantin Aronssohn, Nacim Bouia, Stephanie Fu, Romain Loiseau, Van Nguyen Nguyen, Charles Raude, Elliot Vincent, Lintao XU, Hongyu Zhou
Último autor: Loïc Landrieu
Instituto de Investigación: Imagine, LIGM, Ecole des Ponts, Univ Gustave Eiffel, CNRS, Marne-la-Vallée, Francia
OpenStreetView-5M es el primer punto de referencia de geolocalización abierto a gran escala de imágenes de Streetview.
Para tener una idea de la dificultad del punto de referencia, puedes jugar nuestra demostración.
Nuestro conjunto de datos se utilizó en un extenso banco de pruebas del cual proporcionamos el mejor modelo.
Para obtener más detalles y resultados, consulte nuestra página de artículos y proyectos.
OpenStreetView-5M está alojado en huggingface/datasets/osv5m/osv5m. Para descargarlo y extraerlo ejecute:
python scripts/download-dataset.py
Para conocer diferentes formas de importar el conjunto de datos, consulte DATASET.md
Nuestro mejor modelo OSV-5M también se puede encontrar en 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)
Para reproducir los resultados del modelo en huggingface, ejecute:
python evaluation.py exp=eval_best_model dataset.global_batch_size=1024
Para replicar todos los experimentos de nuestro artículo, proporcionamos guiones dedicados en scripts/experiments
.
Para instalar nuestro entorno conda, ejecute:
conda env create -f environment.yaml
conda activate osv5m
Para ejecutar la mayoría de los métodos, primero debe calcular previamente los QuadTrees (aproximadamente 10 minutos):
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
Utilice la carpeta configs/exp para seleccionar el experimento que desee. Siéntete libre de explorarlo. Todos los modelos evaluados en el artículo tienen un archivo de configuración dedicado.
# 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 } ,
}