{"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/around-the-world-in-80-timesteps-a-generative","title":"Around the World in 80 Timesteps: A Generative Approach to Global Visual Geolocation","arxiv_id":"2412.06781","date":"2024-12-09","proceeding":"CVPR 2025 1","authors":["Nicolas Dufour","David Picard","Vicky Kalogeiton","Loic Landrieu"],"abstract":"Global visual geolocation predicts where an image was captured on Earth. Since images vary in how precisely they can be localized, this task inherently involves a significant degree of ambiguity. However, existing approaches are deterministic and overlook this aspect. In this paper, we aim to close the gap between traditional geolocalization and modern generative methods. We propose the first generative geolocation approach based on diffusion and Riemannian flow matching, where the denoising process operates directly on the Earth's surface. Our model achieves state-of-the-art performance on three visual geolocation benchmarks: OpenStreetView-5M, YFCC-100M, and iNat21. In addition, we introduce the task of probabilistic visual geolocation, where the model predicts a probability distribution over all possible locations instead of a single point. We introduce new metrics and baselines for this task, demonstrating the advantages of our diffusion-based approach. Codes and models will be made available.","url_abs":"https://arxiv.org/abs/2412.06781v1","url_pdf":"https://arxiv.org/pdf/2412.06781v1.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":"around-the-world-in-80-timesteps-a-generative","repo_url":"https://github.com/nicolas-dufour/plonk","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"photo-geolocation-estimation","task_name":"Photo geolocation estimation"},{"task_slug":"regression-1","task_name":"regression"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/photo-geolocation-estimation-on","task":"Photo geolocation estimation","dataset":"OpenStreetView-5M","model":"Plonk","rank_in_archive_order":1,"of":2,"metrics":{"Geoscore":"3767"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2412.06781","atlas_url":"https://app.syntology.ai/?focus=2412.06781","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2412.06781"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/nicolas-dufour/plonk","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":7},"by_repo_kind":{"official":{"samples":7,"ran":0,"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":0,"samples":[{"code_sha256_prefix":"bf7bd88c3962121e","entry":"div_fn","repo":"nicolas-dufour/plonk","repo_kind":"official","path":"plonk/models/module.py","file_url":"https://github.com/nicolas-dufour/plonk/blob/HEAD/plonk/models/module.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bf7bd88c3962121e"}},{"code_sha256_prefix":"f40268cef591d658","entry":"div_fn","repo":"nicolas-dufour/plonk","repo_kind":"official","path":"plonk/pipe.py","file_url":"https://github.com/nicolas-dufour/plonk/blob/HEAD/plonk/pipe.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f40268cef591d658"}},{"code_sha256_prefix":"f75f50c4b155ad69","entry":"get_parameter_names","repo":"nicolas-dufour/plonk","repo_kind":"official","path":"plonk/models/module.py","file_url":"https://github.com/nicolas-dufour/plonk/blob/HEAD/plonk/models/module.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f75f50c4b155ad69"}},{"code_sha256_prefix":"f53c97e87381e3c9","entry":"log_sinh","repo":"nicolas-dufour/plonk","repo_kind":"official","path":"plonk/models/losses.py","file_url":"https://github.com/nicolas-dufour/plonk/blob/HEAD/plonk/models/losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f53c97e87381e3c9"}},{"code_sha256_prefix":"ddaff92468a926de","entry":"output_and_div","repo":"nicolas-dufour/plonk","repo_kind":"official","path":"plonk/models/module.py","file_url":"https://github.com/nicolas-dufour/plonk/blob/HEAD/plonk/models/module.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ddaff92468a926de"}},{"code_sha256_prefix":"6c88267e812e1dd3","entry":"wandb_init","repo":"nicolas-dufour/plonk","repo_kind":"official","path":"plonk/train_random.py","file_url":"https://github.com/nicolas-dufour/plonk/blob/HEAD/plonk/train_random.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6c88267e812e1dd3"}},{"code_sha256_prefix":"66e90c706c64895c","entry":"wandb_init","repo":"nicolas-dufour/plonk","repo_kind":"official","path":"plonk/train_von_fisher.py","file_url":"https://github.com/nicolas-dufour/plonk/blob/HEAD/plonk/train_von_fisher.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"66e90c706c64895c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}