{"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/gomaa-geo-goal-modality-agnostic-active-geo","title":"GOMAA-Geo: GOal Modality Agnostic Active Geo-localization","arxiv_id":"2406.01917","date":"2024-06-04","proceeding":null,"authors":["Anindya Sarkar","Srikumar Sastry","Aleksis Pirinen","Chongjie Zhang","Nathan Jacobs","Yevgeniy Vorobeychik"],"abstract":"We consider the task of active geo-localization (AGL) in which an agent uses a sequence of visual cues observed during aerial navigation to find a target specified through multiple possible modalities. This could emulate a UAV involved in a search-and-rescue operation navigating through an area, observing a stream of aerial images as it goes. The AGL task is associated with two important challenges. Firstly, an agent must deal with a goal specification in one of multiple modalities (e.g., through a natural language description) while the search cues are provided in other modalities (aerial imagery). The second challenge is limited localization time (e.g., limited battery life, urgency) so that the goal must be localized as efficiently as possible, i.e. the agent must effectively leverage its sequentially observed aerial views when searching for the goal. To address these challenges, we propose GOMAA-Geo - a goal modality agnostic active geo-localization agent - for zero-shot generalization between different goal modalities. Our approach combines cross-modality contrastive learning to align representations across modalities with supervised foundation model pretraining and reinforcement learning to obtain highly effective navigation and localization policies. Through extensive evaluations, we show that GOMAA-Geo outperforms alternative learnable approaches and that it generalizes across datasets - e.g., to disaster-hit areas without seeing a single disaster scenario during training - and goal modalities - e.g., to ground-level imagery or textual descriptions, despite only being trained with goals specified as aerial views. Code and models are publicly available at https://github.com/mvrl/GOMAA-Geo/tree/main.","url_abs":"https://arxiv.org/abs/2406.01917v1","url_pdf":"https://arxiv.org/pdf/2406.01917v1.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":"gomaa-geo-goal-modality-agnostic-active-geo","repo_url":"https://github.com/mvrl/gomaa-geo","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"gomaa-geo-goal-modality-agnostic-active-geo","repo_url":"https://github.com/aleksispi/airloc","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"},{"task_slug":"zero-shot-generalization","task_name":"Zero-shot Generalization"},{"task_slug":"geo-localization","task_name":"geo-localization"}],"methods":[{"method_slug":"align","method_name":"ALIGN"},{"method_slug":"contrastive-learning","method_name":"Contrastive Learning"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2406.01917","atlas_url":"https://app.syntology.ai/?focus=2406.01917","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.01917"}},"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/aleksispi/airloc","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mvrl/gomaa-geo","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_fixture":2,"ran_draft_wrong":2,"ran":1,"unverified":2},"by_repo_kind":{"official":{"samples":7,"ran":5,"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":"30d7eec482ebf6b1","entry":"repeat_kv","repo":"mvrl/gomaa-geo","repo_kind":"official","path":"models/model_gemma.py","file_url":"https://github.com/mvrl/gomaa-geo/blob/HEAD/models/model_gemma.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":2,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"30d7eec482ebf6b1"}},{"code_sha256_prefix":"d61c483a3c2b3156","entry":"apply_rotary_pos_emb","repo":"mvrl/gomaa-geo","repo_kind":"official","path":"models/model_falcon.py","file_url":"https://github.com/mvrl/gomaa-geo/blob/HEAD/models/model_falcon.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d61c483a3c2b3156"}},{"code_sha256_prefix":"bac65c3dafaec040","entry":"apply_rotary_pos_emb","repo":"mvrl/gomaa-geo","repo_kind":"official","path":"models/model_gemma.py","file_url":"https://github.com/mvrl/gomaa-geo/blob/HEAD/models/model_gemma.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bac65c3dafaec040"}},{"code_sha256_prefix":"6228c931809de433","entry":"neg_log","repo":"mvrl/gomaa-geo","repo_kind":"official","path":"models/pretrain_model.py","file_url":"https://github.com/mvrl/gomaa-geo/blob/HEAD/models/pretrain_model.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":"6228c931809de433"}},{"code_sha256_prefix":"b99eea6376d1e212","entry":"rotate_half","repo":"mvrl/gomaa-geo","repo_kind":"official","path":"models/model_falcon.py","file_url":"https://github.com/mvrl/gomaa-geo/blob/HEAD/models/model_falcon.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b99eea6376d1e212"}},{"code_sha256_prefix":"b4acc4f0962c97ca","entry":"build_alibi_tensor","repo":"mvrl/gomaa-geo","repo_kind":"official","path":"models/model_falcon.py","file_url":"https://github.com/mvrl/gomaa-geo/blob/HEAD/models/model_falcon.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":"b4acc4f0962c97ca"}},{"code_sha256_prefix":"3665fea6427d655d","entry":"load_tf_weights_in_gpt2","repo":"mvrl/gomaa-geo","repo_kind":"official","path":"models/model_gpt.py","file_url":"https://github.com/mvrl/gomaa-geo/blob/HEAD/models/model_gpt.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":"3665fea6427d655d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}