Официальная реализация OpenStreetView-5M на PyTorch: множество дорог к глобальной визуальной геолокации.
Первые авторы: Гийом Астрюк, Николя Дюфур, Иоаннис Сиглидис.
Вторые авторы: Константин Аронсон, Насим Буя, Стефани Фу, Ромен Луазо, Ван Нгуен Нгуен, Шарль Рауд, Эллиот Винсент, Линтао Сюй, Хунъюй Чжоу
Последний автор: Лоик Ландрие
Научно-исследовательский институт: Imagine, LIGM, Ecole des Ponts, Univ Gustave Eiffel, CNRS, Марн-ла-Валле, Франция
OpenStreetView-5M — это первый крупномасштабный открытый тест геолокации изображений улиц.
Чтобы понять сложность теста, вы можете поиграть в нашу демо-версию.
Наш набор данных использовался в обширном тесте, из которого мы предоставили лучшую модель.
Для получения более подробной информации и результатов посетите нашу статью и страницу проекта.
OpenStreetView-5M размещен по адресуhuggingface/datasets/osv5m/osv5m. Чтобы загрузить и извлечь его, запустите:
python scripts/download-dataset.py
Различные способы импорта набора данных см. в DATASET.md.
Нашу лучшую модель на ОСВ-5М также можно найти на 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)
Чтобы воспроизвести результаты для модели на HuggingFace, запустите:
python evaluation.py exp=eval_best_model dataset.global_batch_size=1024
Чтобы повторить все эксперименты, описанные в нашей статье, мы предоставляем специальные сценарии в scripts/experiments
.
Чтобы установить нашу среду conda, запустите:
conda env create -f environment.yaml
conda activate osv5m
Чтобы запустить большинство методов, сначала необходимо предварительно вычислить QuadTrees (примерно 10 минут):
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
Используйте папку configs/exp, чтобы выбрать нужный эксперимент. Не стесняйтесь исследовать его. Все оцененные модели из статьи имеют специальный файл конфигурации.
# 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 } ,
}