{"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/sthn-deep-homography-estimation-for-uav","title":"STHN: Deep Homography Estimation for UAV Thermal Geo-localization with Satellite Imagery","arxiv_id":"2405.20470","date":"2024-05-30","proceeding":null,"authors":["Jiuhong Xiao","Ning Zhang","Daniel Tortei","Giuseppe Loianno"],"abstract":"Accurate geo-localization of Unmanned Aerial Vehicles (UAVs) is crucial for outdoor applications including search and rescue operations, power line inspections, and environmental monitoring. The vulnerability of Global Navigation Satellite Systems (GNSS) signals to interference and spoofing necessitates the development of additional robust localization methods for autonomous navigation. Visual Geo-localization (VG), leveraging onboard cameras and reference satellite maps, offers a promising solution for absolute localization. Specifically, Thermal Geo-localization (TG), which relies on image-based matching between thermal imagery with satellite databases, stands out by utilizing infrared cameras for effective nighttime localization. However, the efficiency and effectiveness of current TG approaches, are hindered by dense sampling on satellite maps and geometric noises in thermal query images. To overcome these challenges, we introduce STHN, a novel UAV thermal geo-localization approach that employs a coarse-to-fine deep homography estimation method. This method attains reliable thermal geo-localization within a 512-meter radius of the UAV's last known location even with a challenging 11\\% size ratio between thermal and satellite images, despite the presence of indistinct textures and self-similar patterns. We further show how our research significantly enhances UAV thermal geo-localization performance and robustness against geometric noises under low-visibility conditions in the wild. The code is made publicly available.","url_abs":"https://arxiv.org/abs/2405.20470v2","url_pdf":"https://arxiv.org/pdf/2405.20470v2.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":"sthn-deep-homography-estimation-for-uav","repo_url":"https://github.com/arplaboratory/STHN","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"autonomous-navigation","task_name":"Autonomous Navigation"},{"task_slug":"homography-estimation","task_name":"Homography Estimation"},{"task_slug":"geo-localization","task_name":"geo-localization"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2405.20470","atlas_url":"https://app.syntology.ai/?focus=2405.20470","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.20470"}},"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/arplaboratory/STHN","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":7,"unverified":1},"by_repo_kind":{"official":{"samples":8,"ran":7,"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":"44bf5ced04fc8132","entry":"calc_overlap","repo":"arplaboratory/STHN","repo_kind":"official","path":"global_pipeline/h5_transformer.py","file_url":"https://github.com/arplaboratory/STHN/blob/HEAD/global_pipeline/h5_transformer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"44bf5ced04fc8132"}},{"code_sha256_prefix":"247429ce34fc3671","entry":"collate_fn","repo":"arplaboratory/STHN","repo_kind":"official","path":"global_pipeline/datasets_ws.py","file_url":"https://github.com/arplaboratory/STHN/blob/HEAD/global_pipeline/datasets_ws.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"247429ce34fc3671"}},{"code_sha256_prefix":"2d86f6c4f9c9d299","entry":"load_and_preprocess_satellite","repo":"arplaboratory/STHN","repo_kind":"official","path":"STHN_demo.py","file_url":"https://github.com/arplaboratory/STHN/blob/HEAD/STHN_demo.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2d86f6c4f9c9d299"}},{"code_sha256_prefix":"2ed2d9477dedd236","entry":"load_and_preprocess_thermal","repo":"arplaboratory/STHN","repo_kind":"official","path":"STHN_demo.py","file_url":"https://github.com/arplaboratory/STHN/blob/HEAD/STHN_demo.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2ed2d9477dedd236"}},{"code_sha256_prefix":"0b387e5979c78d55","entry":"mac","repo":"arplaboratory/STHN","repo_kind":"official","path":"global_pipeline/model/functional.py","file_url":"https://github.com/arplaboratory/STHN/blob/HEAD/global_pipeline/model/functional.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0b387e5979c78d55"}},{"code_sha256_prefix":"463b2f96158e03a8","entry":"sare_ind","repo":"arplaboratory/STHN","repo_kind":"official","path":"global_pipeline/model/functional.py","file_url":"https://github.com/arplaboratory/STHN/blob/HEAD/global_pipeline/model/functional.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"463b2f96158e03a8"}},{"code_sha256_prefix":"d15fdc91eec37e29","entry":"sare_joint","repo":"arplaboratory/STHN","repo_kind":"official","path":"global_pipeline/model/functional.py","file_url":"https://github.com/arplaboratory/STHN/blob/HEAD/global_pipeline/model/functional.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d15fdc91eec37e29"}},{"code_sha256_prefix":"f0db6d80ebf12bfa","entry":"path_to_pil_img","repo":"arplaboratory/STHN","repo_kind":"official","path":"global_pipeline/datasets_ws.py","file_url":"https://github.com/arplaboratory/STHN/blob/HEAD/global_pipeline/datasets_ws.py","link_basis":"harvester_set","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":"f0db6d80ebf12bfa"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}