{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/pigeon-predicting-image-geolocations","title":"PIGEON: Predicting Image Geolocations","arxiv_id":"2307.05845","date":"2023-07-11","proceeding":"CVPR 2024 1","authors":["Lukas Haas","Michal Skreta","Silas Alberti","Chelsea Finn"],"abstract":"Planet-scale image geolocalization remains a challenging problem due to the diversity of images originating from anywhere in the world. Although approaches based on vision transformers have made significant progress in geolocalization accuracy, success in prior literature is constrained to narrow distributions of images of landmarks, and performance has not generalized to unseen places. We present a new geolocalization system that combines semantic geocell creation, multi-task contrastive pretraining, and a novel loss function. Additionally, our work is the first to perform retrieval over location clusters for guess refinements. We train two models for evaluations on street-level data and general-purpose image geolocalization; the first model, PIGEON, is trained on data from the game of Geoguessr and is capable of placing over 40% of its guesses within 25 kilometers of the target location globally. We also develop a bot and deploy PIGEON in a blind experiment against humans, ranking in the top 0.01% of players. We further challenge one of the world's foremost professional Geoguessr players to a series of six matches with millions of viewers, winning all six games. Our second model, PIGEOTTO, differs in that it is trained on a dataset of images from Flickr and Wikipedia, achieving state-of-the-art results on a wide range of image geolocalization benchmarks, outperforming the previous SOTA by up to 7.7 percentage points on the city accuracy level and up to 38.8 percentage points on the country level. Our findings suggest that PIGEOTTO is the first image geolocalization model that effectively generalizes to unseen places and that our approach can pave the way for highly accurate, planet-scale image geolocalization systems. Our code is available on GitHub.","url_abs":"https://arxiv.org/abs/2307.05845v6","url_pdf":"https://arxiv.org/pdf/2307.05845v6.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"pigeon-predicting-image-geolocations","repo_url":"https://github.com/LukasHaas/PIGEON","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"photo-geolocation-estimation","task_name":"Photo geolocation estimation"}],"methods":[{"method_slug":"attention","method_name":"Attention"},{"method_slug":"clip","method_name":"CLIP"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"vision-transformer","method_name":"Vision Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/photo-geolocation-estimation-on-gws15k","task":"Photo geolocation estimation","dataset":"GWS15k","model":"PIGEOTTO","rank_in_archive_order":1,"of":5,"metrics":{"City level (25 km)":"9.2","Continent level (2500 km)":"85.1","Country level (750 km)":"65.7","Median Error (km)":"415.4","Region level (200 km)":"31.2","Street level (1 km)":"0.7"},"uses_additional_data":false},{"leaderboard":"/sota/photo-geolocation-estimation-on-im2gps","task":"Photo geolocation estimation","dataset":"Im2GPS","model":"PIGEOTTO","rank_in_archive_order":1,"of":11,"metrics":{"City level (25 km)":"40.9","Continent level (2500 km)":"91.1","Country level (750 km)":"82.3","Median Error (km)":"70.5","Reference images":"4.5M","Region level (200 km)":"63.3","Street level (1 km)":"14.8","Training images":"4.5M"},"uses_additional_data":false},{"leaderboard":"/sota/photo-geolocation-estimation-on-im2gps3k","task":"Photo geolocation estimation","dataset":"Im2GPS3k","model":"PIGEOTTO","rank_in_archive_order":6,"of":14,"metrics":{"City level (25 km)":"36.7","Continent level (2500 km)":"85.3","Country level (750 km)":"72.4","Median Error (km)":"147.3","Region level (200 km)":"53.8","Street level (1 km)":"11.3","Training Images":"4.5M"},"uses_additional_data":false},{"leaderboard":"/sota/photo-geolocation-estimation-on-yfcc26k","task":"Photo geolocation estimation","dataset":"YFCC26k","model":"PIGEOTTO","rank_in_archive_order":2,"of":6,"metrics":{"City level (25 km)":"25.8","Continent level (2500 km)":"79.0","Country level (750 km)":"63.2","Median Error (km)":"333.3","Region level (200 km)":"42.7","Street level (1 km)":"10.5","Training Images":"4.5M"},"uses_additional_data":false},{"leaderboard":"/sota/photo-geolocation-estimation-on-yfcc4k","task":"Photo geolocation estimation","dataset":"YFCC4k","model":"PIGEOTTO","rank_in_archive_order":1,"of":4,"metrics":{"City (25 km)":"23.7","Continent (2500 km)":"77.7","Country (750 km)":"62.2","Median Error (km)":"383.0","Region (200 km)":"40.6","Street (1 km)":"10.4"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2307.05845","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2307.05845"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/LukasHaas/PIGEON","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"ran":1,"unverified":1},"by_repo_kind":{"official":{"samples":2,"ran":1,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":2,"samples":[{"code_sha256_prefix":"b3cad4ecdab12eef","entry":"mae","repo":"LukasHaas/PIGEON","repo_kind":"official","path":"evaluation/metrics.py","file_url":"https://github.com/LukasHaas/PIGEON/blob/HEAD/evaluation/metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"b3cad4ecdab12eef"}},{"code_sha256_prefix":"0e34212e0b7290e0","entry":"create_dataset_split","repo":"LukasHaas/PIGEON","repo_kind":"official","path":"dataset_creation/finetune/finetune_dataset.py","file_url":"https://github.com/LukasHaas/PIGEON/blob/HEAD/dataset_creation/finetune/finetune_dataset.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"0e34212e0b7290e0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}