{"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/fine-grained-cross-view-geo-localization-1","title":"Fine-Grained Cross-View Geo-Localization Using a Correlation-Aware Homography Estimator","arxiv_id":"2308.16906","date":"2023-08-31","proceeding":"NeurIPS 2023 11","authors":["Xiaolong Wang","Runsen Xu","Zuofan Cui","Zeyu Wan","Yu Zhang"],"abstract":"In this paper, we introduce a novel approach to fine-grained cross-view geo-localization. Our method aligns a warped ground image with a corresponding GPS-tagged satellite image covering the same area using homography estimation. We first employ a differentiable spherical transform, adhering to geometric principles, to accurately align the perspective of the ground image with the satellite map. This transformation effectively places ground and aerial images in the same view and on the same plane, reducing the task to an image alignment problem. To address challenges such as occlusion, small overlapping range, and seasonal variations, we propose a robust correlation-aware homography estimator to align similar parts of the transformed ground image with the satellite image. Our method achieves sub-pixel resolution and meter-level GPS accuracy by mapping the center point of the transformed ground image to the satellite image using a homography matrix and determining the orientation of the ground camera using a point above the central axis. Operating at a speed of 30 FPS, our method outperforms state-of-the-art techniques, reducing the mean metric localization error by 21.3% and 32.4% in same-area and cross-area generalization tasks on the VIGOR benchmark, respectively, and by 34.4% on the KITTI benchmark in same-area evaluation.","url_abs":"https://arxiv.org/abs/2308.16906v1","url_pdf":"https://arxiv.org/pdf/2308.16906v1.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":"fine-grained-cross-view-geo-localization-1","repo_url":"https://github.com/xlwangdev/hc-net","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"homography-estimation","task_name":"Homography Estimation"},{"task_slug":"geo-localization","task_name":"geo-localization"}],"methods":[{"method_slug":"align","method_name":"ALIGN"},{"method_slug":"gps","method_name":"GPS"},{"method_slug":"speed","method_name":"SPEED"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2308.16906","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2308.16906"}},"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/xlwangdev/hc-net","reach":{"status":"ok"}}],"summary":{"ran":7,"ran_fixture":1,"ran_draft_wrong":2,"unverified":2},"by_repo_kind":{"official":{"samples":12,"ran":10,"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":12,"samples":[{"code_sha256_prefix":"2461c47ca2c7ed13","entry":"calculate_distance","repo":"xlwangdev/hc-net","repo_kind":"official","path":"models/utils/Mercator.py","file_url":"https://github.com/xlwangdev/hc-net/blob/HEAD/models/utils/Mercator.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2461c47ca2c7ed13"}},{"code_sha256_prefix":"d3319e3d34ca90ca","entry":"drop_connect","repo":"xlwangdev/hc-net","repo_kind":"official","path":"models/efficientnet_pytorch/utils.py","file_url":"https://github.com/xlwangdev/hc-net/blob/HEAD/models/efficientnet_pytorch/utils.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d3319e3d34ca90ca"}},{"code_sha256_prefix":"fffde0cd7aeb3dca","entry":"get_BEV","repo":"xlwangdev/hc-net","repo_kind":"official","path":"demo_gradio.py","file_url":"https://github.com/xlwangdev/hc-net/blob/HEAD/demo_gradio.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fffde0cd7aeb3dca"}},{"code_sha256_prefix":"0b193933d333fed8","entry":"get_real_lonlat","repo":"xlwangdev/hc-net","repo_kind":"official","path":"models/utils/Mercator.py","file_url":"https://github.com/xlwangdev/hc-net/blob/HEAD/models/utils/Mercator.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0b193933d333fed8"}},{"code_sha256_prefix":"0f19764694310039","entry":"is_valid_gps_format","repo":"xlwangdev/hc-net","repo_kind":"official","path":"demo_gradio.py","file_url":"https://github.com/xlwangdev/hc-net/blob/HEAD/demo_gradio.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0f19764694310039"}},{"code_sha256_prefix":"43f7bbeaecd3684f","entry":"kitti_transform","repo":"xlwangdev/hc-net","repo_kind":"official","path":"models/utils/augment.py","file_url":"https://github.com/xlwangdev/hc-net/blob/HEAD/models/utils/augment.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"43f7bbeaecd3684f"}},{"code_sha256_prefix":"e1a5097078dafec9","entry":"project_with_scale","repo":"xlwangdev/hc-net","repo_kind":"official","path":"models/utils/Mercator.py","file_url":"https://github.com/xlwangdev/hc-net/blob/HEAD/models/utils/Mercator.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e1a5097078dafec9"}},{"code_sha256_prefix":"f15a49337e69e937","entry":"round_filters","repo":"xlwangdev/hc-net","repo_kind":"official","path":"models/efficientnet_pytorch/utils.py","file_url":"https://github.com/xlwangdev/hc-net/blob/HEAD/models/efficientnet_pytorch/utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f15a49337e69e937"}},{"code_sha256_prefix":"dbc0ca08d119a5a0","entry":"round_repeats","repo":"xlwangdev/hc-net","repo_kind":"official","path":"models/efficientnet_pytorch/utils.py","file_url":"https://github.com/xlwangdev/hc-net/blob/HEAD/models/efficientnet_pytorch/utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"dbc0ca08d119a5a0"}},{"code_sha256_prefix":"3e556e6b3e1fabe2","entry":"train_transform","repo":"xlwangdev/hc-net","repo_kind":"official","path":"models/utils/augment.py","file_url":"https://github.com/xlwangdev/hc-net/blob/HEAD/models/utils/augment.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3e556e6b3e1fabe2"}},{"code_sha256_prefix":"e8404847f1ddcb0b","entry":"load_model","repo":"xlwangdev/hc-net","repo_kind":"official","path":"demo_gradio.py","file_url":"https://github.com/xlwangdev/hc-net/blob/HEAD/demo_gradio.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e8404847f1ddcb0b"}},{"code_sha256_prefix":"e65397c0c91da387","entry":"validate_process","repo":"xlwangdev/hc-net","repo_kind":"official","path":"evaluate.py","file_url":"https://github.com/xlwangdev/hc-net/blob/HEAD/evaluate.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e65397c0c91da387"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}