{"id":37645859,"url":"https://github.com/gmberton/deep-visual-geo-localization-benchmark","last_synced_at":"2026-01-16T11:26:07.460Z","repository":{"id":41273893,"uuid":"472972482","full_name":"gmberton/deep-visual-geo-localization-benchmark","owner":"gmberton","description":"Official code for CVPR 2022 (Oral) paper \"Deep Visual Geo-localization Benchmark\"","archived":false,"fork":false,"pushed_at":"2025-01-29T14:12:25.000Z","size":46,"stargazers_count":199,"open_issues_count":0,"forks_count":31,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-01-29T15:24:25.092Z","etag":null,"topics":["benchmark","computer-vision","datasets","deep-learning","descriptors","geolocalization","image-retrieval","localization","netvlad","place-recognition","pytorch","visual-place-recognition"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gmberton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-22T23:37:08.000Z","updated_at":"2025-01-29T14:12:29.000Z","dependencies_parsed_at":"2023-11-29T15:29:30.721Z","dependency_job_id":"42f07343-dca1-482e-9451-4b658bd0f27a","html_url":"https://github.com/gmberton/deep-visual-geo-localization-benchmark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gmberton/deep-visual-geo-localization-benchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmberton%2Fdeep-visual-geo-localization-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmberton%2Fdeep-visual-geo-localization-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmberton%2Fdeep-visual-geo-localization-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmberton%2Fdeep-visual-geo-localization-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gmberton","download_url":"https://codeload.github.com/gmberton/deep-visual-geo-localization-benchmark/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gmberton%2Fdeep-visual-geo-localization-benchmark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478250,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","computer-vision","datasets","deep-learning","descriptors","geolocalization","image-retrieval","localization","netvlad","place-recognition","pytorch","visual-place-recognition"],"created_at":"2026-01-16T11:26:07.357Z","updated_at":"2026-01-16T11:26:07.451Z","avatar_url":"https://github.com/gmberton.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deep Visual Geo-localization Benchmark\nThis is the official repository for the CVPR 2022 Oral paper [Deep Visual Geo-localization Benchmark](https://arxiv.org/abs/2204.03444).\nIt can be used to reproduce results from the paper, and to compute a wide range of experiments, by changing the components of a Visual Geo-localization pipeline.\n\n\u003cimg src=\"https://github.com/gmberton/gmberton.github.io/blob/main/images/vg_system.png\" width=\"90%\"\u003e\n\n## Setup\nBefore you begin experimenting with this toolbox, your dataset should be organized in a directory tree as such:\n\n```\n.\n├── benchmarking_vg\n└── datasets_vg\n    └── datasets\n        └── pitts30k\n            └── images\n                ├── train\n                │   ├── database\n                │   └── queries\n                ├── val\n                │   ├── database\n                │   └── queries\n                └── test\n                    ├── database\n                    └── queries\n```\nThe [VPR-datasets-downloader](https://github.com/gmberton/VPR-datasets-downloader) repo can be used to download a number of datasets. Detailed instructions on how to download datasets are in the repo. Note that many datasets are available, and _pitts30k_ is just an example.\n\n## Running experiments\n### Basic experiment\nFor a basic experiment run\n\n`$ python3 train.py --dataset_name=pitts30k`\n\nthis will train a ResNet-18 + NetVLAD on Pitts30k.\nThe experiment creates a folder named `./logs/default/YYYY-MM-DD_HH-mm-ss`, where checkpoints are saved, as well as an `info.log` file with training logs and other information, such as model size, FLOPs and descriptors dimensionality.\n\n### Architectures and mining\nYou can replace the backbone and the aggregation as such\n\n`$ python3 train.py --dataset_name=pitts30k --backbone=resnet50conv4 --aggregation=gem`\n\nyou can easily use ResNets cropped at conv4 or conv5.\n#### Add a fully connected layer\nTo add a fully connected layer of dimension 2048 to GeM pooling:\n\n`$ python3 train.py --dataset_name=pitts30k --backbone=resnet50conv4 --aggregation=gem --fc_output_dim=2048`\n\n#### Add PCA\nTo add PCA to a NetVLAD layer just do:\n\n`$ python3 eval.py --dataset_name=pitts30k --backbone=resnet50conv4 --aggregation=netvlad --pca_dim=2048 --pca_dataset_folder=pitts30k/images/train`\n\nwhere _pca_dataset_folder_ points to the folder with the images used to compute PCA. In the paper we compute PCA's principal components on the train set as it showed best results. PCA is used only at test time.\n#### Evaluate trained models\nTo evaluate the trained model on other datasets (this example is with the St Lucia dataset), simply run\n\n`$ python3 eval.py --backbone=resnet50conv4 --aggregation=gem --resume=logs/default/YYYY-MM-DD_HH-mm-ss/best_model.pth --dataset_name=st_lucia`\n\n#### Reproduce the results\nFinally, to reproduce our results, use the appropriate mining method: _full_ for _pitts30k_ and _partial_ for _msls_ as such:\n\n`$ python3 train.py --dataset_name=pitts30k --mining=full`\n\nAs simple as this, you can replicate all results from tables 3, 4, 5 of the main paper, as well as tables 2, 3, 4 of the supplementary.\n\n### Resize\nTo resize the images simply pass the parameters _resize_ with the target resolution. For example, 80% of resolution to the full _pitts30k_ images, would be 384, 512, because the full images are 480, 640:\n\n`$ python3 train.py --dataset_name=pitts30k --resize=384 512`\n\n### Query  pre/post-processing  and  predictions  refinement\nWe gather all such methods under the _test_method_ parameter. The available methods are _hard_resize_, _single_query_, _central_crop_, _five_crops_mean_, _nearest_crop_ and _majority_voting_.\nAlthough _hard_resize_ is the default, in most datasets it doesn't apply any transformation at all (see the paper for more information), because all images have the same resolution.\n\n`$ python3 eval.py --resume=logs/default/YYYY-MM-DD_HH-mm-ss/best_model.pth --dataset_name=tokyo247 --test_method=nearest_crop`\n\n### Data augmentation\nYou can reproduce all data augmentation techniques from the paper with simple commands, for example:\n\n`$ python3 train.py --dataset_name=pitts30k --horizontal_flipping --saturation 2 --brightness 1`\n\n### Off-the-shelf models trained on Landmark Recognition datasets\nThe code allows to automatically download and use models trained on Landmark Recognition datasets from popular repositories: [radenovic](https://github.com/filipradenovic/cnnimageretrieval-pytorch) and [naver](https://github.com/naver/deep-image-retrieval).\nThese repos offer ResNets-50/101 with GeM and FC 2048 trained on such datasets, and can be used as such:\n\n`$ python eval.py --off_the_shelf=radenovic_gldv1 --l2=after_pool --backbone=r101l4 --aggregation=gem --fc_output_dim=2048`\n\n`$ python eval.py --dataset_name=pitts30k --off_the_shelf=naver --l2=none --backbone=r101l4 --aggregation=gem --fc_output_dim=2048`\n\n### Using pretrained networks on other datasets\nCheck out our [pretrain_vg](https://github.com/rm-wu/pretrain_vg) repo which we use to train such models.\nYou can automatically download and train on those models as such\n\n`$ python train.py --dataset_name=pitts30k --pretrained=places`\n\n### Changing the threshold distance\nYou can use a different distance than the default 25 meters as simply as this (for example to 100 meters):\n\n`$ python3 eval.py --resume=logs/default/YYYY-MM-DD_HH-mm-ss/best_model.pth --val_positive_dist_threshold=100`\n\n### Changing the recall values (R@N)\nBy default the toolbox computes recalls@ 1, 5, 10, 20, but you can compute other recalls as such:\n\n`$ python3 eval.py --resume=logs/default/YYYY-MM-DD_HH-mm-ss/best_model.pth --recall_values 1 5 10 15 20 50 100`\n\n### Model Zoo\nWe are currently exploring hosting options, so this is a partial list of models. More models will be added soon!!\n\n\u003cdetails\u003e\n     \u003csummary\u003e\u003cb\u003ePretrained models with different backbones\u003c/b\u003e\u003c/summary\u003e\u003c/br\u003e\n    Pretained networks employing different backbones.\u003c/br\u003e\u003c/br\u003e\n\t\u003ctable\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth rowspan=2\u003eModel\u003c/th\u003e\n\t\t\t\u003cth colspan=\"3\"\u003eTraining on Pitts30k\u003c/th\u003e\n\t\t\t\u003cth colspan=\"3\"\u003eTraining on MSLS\u003c/th\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t  \t\t\u003ctd\u003ePitts30k (R@1)\u003c/td\u003e\n\t   \t\t\u003ctd\u003eMSLS (R@1)\u003c/td\u003e\n\t   \t\t\u003ctd\u003eDownload\u003c/td\u003e\n\t\t\t\u003ctd\u003ePitts30k (R@1)\u003c/td\u003e\n\t   \t\t\u003ctd\u003eMSLS (R@1)\u003c/td\u003e\n\t   \t\t\u003ctd\u003eDownload\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003evgg16-gem\u003c/td\u003e\n\t\t\t\u003ctd\u003e78.5\u003c/td\u003e \u003ctd\u003e43.4\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1-e9v_mynIX5XBsdtN_mG9tz5-nA5PWiq/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e70.2\u003c/td\u003e \u003ctd\u003e66.7\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1GqgO-qG-WNJXWty43KgvDtW0OpG0Wrq-/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t \t\t\u003ctd\u003eresnet18-gem\u003c/td\u003e\n\t\t\t\u003ctd\u003e77.8\u003c/td\u003e \u003ctd\u003e35.3\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1R66NYeLlxBIqLviUVL9XPZkrtmyMn_tU/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e71.6\u003c/td\u003e \u003ctd\u003e65.3\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1IH0d_ME2kU3pagsKhx5ZfRfyWriErajn/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet50-gem \u003c/td\u003e\n\t\t\t\u003ctd\u003e82.0\u003c/td\u003e \u003ctd\u003e38.0\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1esgXzRFvDFHrMnwwR3GlTnErXjFNrYV7/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e77.4\u003c/td\u003e \u003ctd\u003e72.0\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1uuIYJN4N7lQqqsN32pbZwjhz5Xvv3zr-/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet101-gem \u003c/td\u003e\n\t\t\t\u003ctd\u003e82.4\u003c/td\u003e \u003ctd\u003e39.6\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1Sd-sezmbzOGbZcy3eqRnWH07eoJ7CM0X/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e77.2\u003c/td\u003e \u003ctd\u003e72.5\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1Iondvd8P3vb3piHFTA-RUgTFpqh0I31M/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003e ViT(224)-CLS \u003c/td\u003e\n\t\t\t\u003ctd\u003e _ \u003c/td\u003e \u003ctd\u003e _ \u003c/td\u003e\n\t\t\t\u003ctd\u003e _ \u003c/td\u003e\n\t\t\t\u003ctd\u003e 80.4 \u003c/td\u003e \u003ctd\u003e 69.3 \u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1mPiIqFKnW1HWtXqKJhLLmIgMWoV14auG/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003evgg16-netvlad\u003c/td\u003e\n\t\t\t\u003ctd\u003e83.2\u003c/td\u003e \u003ctd\u003e50.9\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/14s7OZor6wrlGBKeXr0vKbPfTzlW9preM/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e79.0\u003c/td\u003e \u003ctd\u003e74.6\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1dwai3uNudjvns58JIyaf5CBRg4ojcWIW/view?usp=sharing\"\u003e[Link]\u003c/a\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003eresnet18-netvlad\u003c/td\u003e\n\t\t\t\u003ctd\u003e86.4\u003c/td\u003e \u003ctd\u003e47.4\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1KFwonDQYdvzTAIILsOMjmLRUR76jXXvB/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e81.6\u003c/td\u003e \u003ctd\u003e75.8\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1_Ozq2TdvwLAJUwy7YH9l69GsfOU-MlFZ/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003eresnet50-netvlad\u003c/td\u003e\n\t\t\t\u003ctd\u003e86.0\u003c/td\u003e \u003ctd\u003e50.7\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1KL8HoAApOjJFETin7Q7u7IcsOvroKlSj/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e80.9\u003c/td\u003e \u003ctd\u003e76.9\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1krf0A6CeW8GqLqHWZ7dlSNJ9aTJ4dotF/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003eresnet101-netvlad\u003c/td\u003e\n\t\t\t\u003ctd\u003e86.5\u003c/td\u003e \u003ctd\u003e51.8\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1064kDJ0LPyWoU7J4bMvAa0lTNEhAEi8v/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e80.8\u003c/td\u003e \u003ctd\u003e77.7\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1rtPfsgfJ2Zoxs5uu7Ph1_qc7q-hIxJek/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003ecct384-netvlad\u003c/td\u003e\n\t\t\t\u003ctd\u003e85.0\u003c/td\u003e \u003ctd\u003e52.5\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1Rx0oG4PG9bEraIg4y7e6Z24Q6b_TGr5u/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e80.3\u003c/td\u003e \u003ctd\u003e85.1\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1wDZ6XRVYz6bcGe_p3Iiz2NfIe9MmZZMN/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t\u003c/table\u003e\n    \n\u003c/details\u003e\n\n\u003cdetails\u003e\n \t\u003csummary\u003e\u003cb\u003ePretrained models with different aggregation methods\u003c/b\u003e\u003c/summary\u003e\u003c/br\u003e\n \tPretrained networks trained using different aggregation methods.\u003c/br\u003e\u003c/br\u003e\n    \u003ctable\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth rowspan=2\u003eModel\u003c/th\u003e\n\t\t\t \u003cth colspan=\"3\"\u003eTraining on Pitts30k (R@1)\u003c/th\u003e\n\t\t\t \u003cth colspan=\"3\"\u003eTraining on MSLS (R@1)\u003c/th\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t  \t\t\u003ctd\u003ePitts30k (R@1)\u003c/td\u003e\n\t   \t\t\u003ctd\u003eMSLS (R@1)\u003c/td\u003e\n\t   \t\t\u003ctd\u003eDownload\u003c/td\u003e\n\t\t\t\u003ctd\u003ePitts30k (R@1)\u003c/td\u003e\n\t   \t\t\u003ctd\u003eMSLS (R@1)\u003c/td\u003e\n\t   \t\t\u003ctd\u003eDownload\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eresnet50-gem\u003c/td\u003e\n\t\t\t\u003ctd\u003e82.0\u003c/td\u003e \u003ctd\u003e38.0\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1esgXzRFvDFHrMnwwR3GlTnErXjFNrYV7/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e77.4\u003c/td\u003e \u003ctd\u003e72.0\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1uuIYJN4N7lQqqsN32pbZwjhz5Xvv3zr-/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003eresnet50-gem-fc2048\u003c/td\u003e\n\t\t\t\u003ctd\u003e80.1\u003c/td\u003e \u003ctd\u003e33.7\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1GCbE4gzcRXMH8ETD2YCPo0I3suAXDr-y/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e79.2\u003c/td\u003e \u003ctd\u003e73.5\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1oSf11wAxaoEbjLnjfX0EWZ65dgccwdDD/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003eresnet50-gem-fc65536\u003c/td\u003e\n\t\t\t\u003ctd\u003e80.8\u003c/td\u003e \u003ctd\u003e35.8\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/19GjodUuAGKpac6WhIcfuy3tiPV1J-ikn/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e79.0\u003c/td\u003e \u003ctd\u003e74.4\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1OGwt651loL2vXnQYyABqitL39IEiXhag/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003eresnet50-netvlad\u003c/td\u003e\n\t\t\t\u003ctd\u003e86.0\u003c/td\u003e \u003ctd\u003e50.7\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1KL8HoAApOjJFETin7Q7u7IcsOvroKlSj/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e80.9\u003c/td\u003e \u003ctd\u003e76.9\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1krf0A6CeW8GqLqHWZ7dlSNJ9aTJ4dotF/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003eresnet50-crn\u003c/td\u003e\n\t\t\t\u003ctd\u003e85.8\u003c/td\u003e \u003ctd\u003e54.0\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1mLOkILfIf8Wegi3tva9390TRIbWDxRor/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e80.8\u003c/td\u003e \u003ctd\u003e77.8\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1KJzXwCsbyT0uNDl925H2J0QKXhKaeEgW/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t\u003c/table\u003e\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n     \u003csummary\u003e\u003cb\u003ePretrained models with different mining methods\u003c/b\u003e\u003c/summary\u003e\u003cbr/\u003e\n    Pretained networks trained using three different mining methods (random, full database mining and partial database mining):\u003c/br\u003e\u003c/br\u003e\n\t\u003ctable\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth rowspan=2\u003eModel\u003c/th\u003e\n\t\t\t \u003cth colspan=\"3\"\u003eTraining on Pitts30k (R@1)\u003c/th\u003e\n\t\t\t \u003cth colspan=\"3\"\u003eTraining on MSLS (R@1)\u003c/th\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t  \t\t\u003ctd\u003ePitts30k (R@1)\u003c/td\u003e\n\t   \t\t\u003ctd\u003eMSLS (R@1)\u003c/td\u003e\n\t   \t\t\u003ctd\u003eDownload\u003c/td\u003e\n\t\t\t\u003ctd\u003ePitts30k (R@1)\u003c/td\u003e\n\t   \t\t\u003ctd\u003eMSLS (R@1)\u003c/td\u003e\n\t   \t\t\u003ctd\u003eDownload\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet18-gem-random\u003c/td\u003e\n\t\t\t\u003ctd\u003e73.7\u003c/td\u003e \u003ctd\u003e30.5\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/12Ds-LcvFcA609bZVBTLNjAZIzV-g8UGK/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e62.2\u003c/td\u003e \u003ctd\u003e50.6\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1oNZyfjTaulVTFX4wRrj0YISqxLuNRyhy/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet18-gem-full\u003c/td\u003e\n\t\t\t\u003ctd\u003e77.8\u003c/td\u003e \u003ctd\u003e35.3\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1bHVsnb6Km2npBsGK9ylI1vuOuc3WLKJb/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e70.1\u003c/td\u003e\u003ctd\u003e61.8\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1BbANLPVPxWDau2RP0cWTSS3FybbyUPL1/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet18-gem-partial\u003c/td\u003e\n\t\t\t\u003ctd\u003e76.5\u003c/td\u003e \u003ctd\u003e34.2\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1R66NYeLlxBIqLviUVL9XPZkrtmyMn_tU/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e71.6\u003c/td\u003e \u003ctd\u003e65.3\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1IH0d_ME2kU3pagsKhx5ZfRfyWriErajn/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet18-netvlad-random\u003c/td\u003e\n\t\t\t\u003ctd\u003e83.9\u003c/td\u003e \u003ctd\u003e43.6\u003c/td\u003e \n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/19OcEe2ckk-D8drrmxpKkkarT_5mCkjnt/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e73.3\u003c/td\u003e \u003ctd\u003e61.5\u003c/td\u003e\n\t \t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1JlEbKbnWyCbR4zP1ZYDct3pYtuJrUmVp/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet18-netvlad-full\u003c/td\u003e\n\t\t\t\u003ctd\u003e86.4\u003c/td\u003e \u003ctd\u003e47.4\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1kwgyDEfRYtdaOEimQQlmj77rIR2tH3st/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e-\u003c/td\u003e\u003ctd\u003e-\u003c/td\u003e\n\t\t\t\u003ctd\u003e-\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet18-netvlad-partial\u003c/td\u003e\n\t\t\t\u003ctd\u003e86.2\u003c/td\u003e \u003ctd\u003e47.3\u003c/td\u003e \n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1KFwonDQYdvzTAIILsOMjmLRUR76jXXvB/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e81.6\u003c/td\u003e \u003ctd\u003e75.8\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1_Ozq2TdvwLAJUwy7YH9l69GsfOU-MlFZ/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t \t\u003c/tr\u003e\n\t \t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet50-gem-random\u003c/td\u003e\n\t\t\t\u003ctd\u003e77.9\u003c/td\u003e \u003ctd\u003e34.3\u003c/td\u003e \n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1f9be75EaG0fFLeNF0bufSre_efKH_ObU/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e69.5\u003c/td\u003e \u003ctd\u003e57.4\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1h9-av6qMn-LVapI5KA4cZhT5BKaZ79C6/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet50-gem-full\u003c/td\u003e\n\t\t\t\u003ctd\u003e82.0\u003c/td\u003e \u003ctd\u003e38.0\u003c/td\u003e \n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1quS9ZjOrXBqNDBhQzlSj8aeh3dBfP1GY/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e77.3\u003c/td\u003e \u003ctd\u003e69.7\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1pxU881eTcz_YdQthKz5yohU7WoLpXt8J/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet50-gem-partial\u003c/td\u003e\n\t\t\t\u003ctd\u003e82.3\u003c/td\u003e \u003ctd\u003e39.0\u003c/td\u003e \n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1esgXzRFvDFHrMnwwR3GlTnErXjFNrYV7/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e77.4\u003c/td\u003e \u003ctd\u003e72.0\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1uuIYJN4N7lQqqsN32pbZwjhz5Xvv3zr-/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet50-netvlad-random\u003c/td\u003e\n\t\t\t\u003ctd\u003e83.4\u003c/td\u003e \u003ctd\u003e45.0\u003c/td\u003e \n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1TkzlO-ZS42u6e783y2O3JZhcIoI7CEVj/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e74.9\u003c/td\u003e \u003ctd\u003e63.6\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1E_X2nrnLxBqvLfVfNKtorOGW_VmwOqSu/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet50-netvlad-full\u003c/td\u003e\n\t\t\t\u003ctd\u003e86.0\u003c/td\u003e \u003ctd\u003e50.7\u003c/td\u003e \n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/133uxEJZ0gK6XL1myhSAFC7wibZtWnugK/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e-\u003c/td\u003e\u003ctd\u003e-\u003c/td\u003e\n\t\t\t\u003ctd\u003e-\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e resnet50-netvlad-partial\u003c/td\u003e\n\t\t\t\u003ctd\u003e85.5\u003c/td\u003e \u003ctd\u003e48.6\u003c/td\u003e \n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1GCbE4gzcRXMH8ETD2YCPo0I3suAXDr-y/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\t\u003ctd\u003e80.9\u003c/td\u003e \u003ctd\u003e76.9\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://drive.google.com/file/d/1krf0A6CeW8GqLqHWZ7dlSNJ9aTJ4dotF/view?usp=sharing\"\u003e[Link]\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\u003c/table\u003e\n\u003c/details\u003e\n\n\nIf you find our work useful in your research please consider citing our paper:\n```\n@inProceedings{Berton_CVPR_2022_benchmark,\n    author    = {Berton, Gabriele and Mereu, Riccardo and Trivigno, Gabriele and Masone, Carlo and\n                 Csurka, Gabriela and Sattler, Torsten and Caputo, Barbara},\n    title     = {Deep Visual Geo-localization Benchmark},\n    booktitle = {CVPR},\n    month     = {June},\n    year      = {2022},\n}\n```\n\n\n## Acknowledgements\nParts of this repo are inspired by the following great repositories:\n- [NetVLAD's original code](https://github.com/Relja/netvlad) (in MATLAB)\n- [NetVLAD layer in PyTorch](https://github.com/lyakaap/NetVLAD-pytorch)\n- [NetVLAD training in PyTorch](https://github.com/Nanne/pytorch-NetVlad/)\n- [GeM layer](https://github.com/filipradenovic/cnnimageretrieval-pytorch)\n- [Deep Image Retrieval](https://github.com/naver/deep-image-retrieval)\n- [Mapillary Street-level Sequences](https://github.com/mapillary/mapillary_sls)\n- [Compact Convolutional Transformers](https://github.com/SHI-Labs/Compact-Transformers)\n\nCheck out also our other repo [_CosPlace_](https://github.com/gmberton/CosPlace), from the CVPR 2022 paper \"Rethinking Visual Geo-localization for Large-Scale Applications\", which provides a new SOTA in visual geo-localization / visual place recognition.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgmberton%2Fdeep-visual-geo-localization-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgmberton%2Fdeep-visual-geo-localization-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgmberton%2Fdeep-visual-geo-localization-benchmark/lists"}