Papers › Where We Are and What We're Looking At: Query Based Worldwide Image Geo-localization...

Where We Are and What We're Looking At: Query Based Worldwide Image Geo-localization Using Hierarchies and Scenes

7 Mar 2023CVPR 2023 1arXiv:2303.04249archive 2025-07-28

Brandon Clark, Alec Kerrigan, Parth Parag Kulkarni, Vicente Vivanco Cepeda, Mubarak Shah

Determining the exact latitude and longitude that a photo was taken is a useful and widely applicable task, yet it remains exceptionally difficult despite the accelerated progress of other computer vision tasks. Most previous approaches have opted to learn a single representation of query images, which are then classified at different levels of geographic granularity. These approaches fail to exploit the different visual cues that give context to different hierarchies, such as the country, state, and city level. To this end, we introduce an end-to-end transformer-based architecture that exploits the relationship between different geographic levels (which we refer to as hierarchies) and the corresponding visual scene information in an image through hierarchical cross-attention. We achieve this by learning a query for each geographic hierarchy and scene type. Furthermore, we learn a separate representation for different environmental scenes, as different scenes in the same location are often defined by completely different visual features. We achieve state of the art street level accuracy on 4 standard geo-localization datasets : Im2GPS, Im2GPS3k, YFCC4k, and YFCC26k, as well as qualitatively demonstrate how our method learns different representations for different visual hierarchies and scenes, which has not been demonstrated in the previous methods. These previous testing datasets mostly consist of iconic landmarks or images taken from social media, which makes them either a memorization task, or biased towards certain places. To address this issue we introduce a much harder testing dataset, Google-World-Streets-15k, comprised of images taken from Google Streetview covering the whole planet and present state of the art results. Our code will be made available in the camera-ready version.

PaperPDFConference PDFCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2303.04249")

Code

Syntology Ran 17 of 23 code samples harvested from 1 repository linked to this paper; 6 have no recorded run. Of those that ran: 1 ran · our draft was wrong; 1 ran · fixture could not drive it; 15 ran with no contract checked.

By repository: found in paper text by Syntology: 22 samples from 1 repository, 16 ran; 1 identical to code first harvested elsewhere. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

AHKerrigan/GeoGuessNet found in paper text by Syntology report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

23 samples harvested; 17 ran; 0 honoured the contract we drafted; 6 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · our draft was wrong
1ran · fixture could not drive it
15ran
6unverified

Licence: 23 of the 23 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from AHKerrigan/GeoGuessNet. Some samples are identical code Syntology first harvested from another repository; for those, this paper's copy is not located and its licence is not recorded. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

Attention AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran no licence file found · pointer only · fcce1bfcb9c57d74 · report
BasicBlock AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran · metamorphic tier: deterministic fingerprinted no licence file found · pointer only · 6af89417fa2b417c · report
Bottleneck AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran · metamorphic tier: deterministic no licence file found · pointer only · 4c297125998e9871 · report
CustomAttention AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran no licence file found · pointer only · 89b1d7f03849a8a5 · report
DropPath AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran · metamorphic tier: deterministic fingerprinted no licence file found · pointer only · 43b361f444ae05e1 · report
FeedForward AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran · metamorphic tier: deterministic no licence file found · pointer only · 590640edb84dc18b · report
HighResolutionModule AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran · metamorphic tier: deterministic no licence file found · pointer only · aee0d8a9e306fcc3 · report
LayerScale AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran · metamorphic tier: deterministic no licence file found · pointer only · ec250b5a99a54dcc · report
MMFusion AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran no licence file found · pointer only · 5bb20805a30709ea · report
Mlp AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran · metamorphic tier: deterministic no licence file found · pointer only · ab28cb15a9f42269 · report
ObjectAttentionBlock2D AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran · metamorphic tier: deterministic fingerprinted no licence file found · pointer only · 3fa532ca5718369e · report
PatchEmbed AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran · metamorphic tier: deterministic no licence file found · pointer only · 9ced521ee7dbfe0d · report
SpatialGather_Module AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran fingerprinted no licence file found · pointer only · f6f97ab2a6fc1429 · report
SpatialOCR_Module AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran · metamorphic tier: deterministic fingerprinted no licence file found · pointer only · 5980b6f3f1da8043 · report
_ObjectAttentionBlock AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran · metamorphic tier: deterministic fingerprinted no licence file found · pointer only · 29769d426b3e38d8 · report
drop_path AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology ran · fixture could not drive it no licence file found · pointer only · e3aa4e8e74369506 · report
Block AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology unverified no licence file found · pointer only · 16488f5ead0b3722 · report
HighResolutionNet AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology unverified no licence file found · pointer only · 7393530e8c957991 · report
ModuleHelper AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology unverified no licence file found · pointer only · fab51dd250665c80 · report
Translocator AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology unverified no licence file found · pointer only · 2f5248c948b2923a · report
VisionTransformer AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology unverified no licence file found · pointer only · a53662872764fd3e · report
get_seg_model AHKerrigan/GeoGuessNet/networks.py found in paper text by Syntology unverified no licence file found · pointer only · 7bc0b40f12d74bb1 · report
conv3x3 identical code first harvested elsewhere ran · our draft was wrong licence of this copy not recorded · fac5364e2f53c6db · report

Tasks

Image-Based LocalizationMemorizationPhoto geolocation estimationgeo-localization

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Photo geolocation estimation GWS15k GeoDecoder City level (25 km) 1.5 #2 of 5 Archive leaderboard report
Photo geolocation estimation GWS15k GeoDecoder Continent level (2500 km) 50.5 #2 of 5 Archive leaderboard report
Photo geolocation estimation GWS15k GeoDecoder Country level (750 km) 26.9 #2 of 5 Archive leaderboard report
Photo geolocation estimation GWS15k GeoDecoder Region level (200 km) 8.7 #2 of 5 Archive leaderboard report
Photo geolocation estimation GWS15k GeoDecoder Street level (1 km) 0.7 #2 of 5 Archive leaderboard report
Photo geolocation estimation Im2GPS3k GeoDecoder City level (25 km) 33.5 #4 of 14 Archive leaderboard report
Photo geolocation estimation Im2GPS3k GeoDecoder Continent level (2500 km) 76.1 #4 of 14 Archive leaderboard report
Photo geolocation estimation Im2GPS3k GeoDecoder Country level (750 km) 61.0 #4 of 14 Archive leaderboard report
Photo geolocation estimation Im2GPS3k GeoDecoder Region level (200 km) 45.9 #4 of 14 Archive leaderboard report
Photo geolocation estimation Im2GPS3k GeoDecoder Street level (1 km) 12.8 #4 of 14 Archive leaderboard report
Photo geolocation estimation Im2GPS3k GeoDecoder Training Images 4.7M #4 of 14 Archive leaderboard report
Photo geolocation estimation YFCC26k GeoDecoder City level (25 km) 23.9 #3 of 6 Archive leaderboard report
Photo geolocation estimation YFCC26k GeoDecoder Continent level (2500 km) 69.0 #3 of 6 Archive leaderboard report
Photo geolocation estimation YFCC26k GeoDecoder Country level (750 km) 49.6 #3 of 6 Archive leaderboard report
Photo geolocation estimation YFCC26k GeoDecoder Region level (200 km) 34.1 #3 of 6 Archive leaderboard report
Photo geolocation estimation YFCC26k GeoDecoder Street level (1 km) 10.1 #3 of 6 Archive leaderboard report
Photo geolocation estimation YFCC26k GeoDecoder Training Images 4.7M #3 of 6 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

fail

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections