{"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/arxiv-2601-00388","title":"Vision-Language Reasoning for Geolocalization: A Reinforcement Learning Approach","arxiv_id":"2601.00388","date":"2026-01-01","proceeding":null,"authors":["Biao Wu","Meng Fang","Ling Chen","Ke Xu","Tao Cheng","Jun Wang"],"abstract":"Recent advances in vision-language models have opened up new possibilities for reasoning-driven image geolocalization. However, existing approaches often rely on synthetic reasoning annotations or external image retrieval, which can limit interpretability and generalizability. In this paper, we present Geo-R, a retrieval-free framework that uncovers structured reasoning paths from existing ground-truth coordinates and optimizes geolocation accuracy via reinforcement learning. We propose the Chain of Region, a rule-based hierarchical reasoning paradigm that generates precise, interpretable supervision by mapping GPS coordinates to geographic entities (e.g., country, province, city) without relying on model-generated or synthetic labels. Building on this, we introduce a lightweight reinforcement learning strategy with coordinate-aligned rewards based on Haversine distance, enabling the model to refine predictions through spatially meaningful feedback. Our approach bridges structured geographic reasoning with direct spatial supervision, yielding improved localization accuracy, stronger generalization, and more transparent inference. Experimental results across multiple benchmarks confirm the effectiveness of Geo-R, establishing a new retrieval-free paradigm for scalable and interpretable image geolocalization. To facilitate further research and ensure reproducibility, both the model and code will be made publicly available.","url_abs":"https://arxiv.org/abs/2601.00388","url_pdf":"https://arxiv.org/pdf/2601.00388","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2601.00388","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2601.00388"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/aialt/geo-r","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_fixture":1,"unverified":10},"by_repo_kind":{"found_in_text":{"samples":11,"ran":1,"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":"3f31b48fd862935d","entry":"get_image_data_url","repo":"aialt/geo-r","repo_kind":"found_in_text","path":"src/open-r1-multimodal/local_scripts/create_vision_cot_data.py","file_url":"https://github.com/aialt/geo-r/blob/HEAD/src/open-r1-multimodal/local_scripts/create_vision_cot_data.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3f31b48fd862935d"}},{"code_sha256_prefix":"252870f138f5203f","entry":"evaluate_answer_similarity","repo":"aialt/geo-r","repo_kind":"found_in_text","path":"src/open-r1-multimodal/src/open_r1/grpo_jsonl.py","file_url":"https://github.com/aialt/geo-r/blob/HEAD/src/open-r1-multimodal/src/open_r1/grpo_jsonl.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"252870f138f5203f"}},{"code_sha256_prefix":"317605c76a72fc89","entry":"extract_choice","repo":"aialt/geo-r","repo_kind":"found_in_text","path":"src/open-r1-multimodal/src/open_r1/grpo_jsonl.py","file_url":"https://github.com/aialt/geo-r/blob/HEAD/src/open-r1-multimodal/src/open_r1/grpo_jsonl.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"317605c76a72fc89"}},{"code_sha256_prefix":"41c548a25e90eb39","entry":"extract_problem_solution","repo":"aialt/geo-r","repo_kind":"found_in_text","path":"src/open-r1-multimodal/local_scripts/prepare_hf_data.py","file_url":"https://github.com/aialt/geo-r/blob/HEAD/src/open-r1-multimodal/local_scripts/prepare_hf_data.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"41c548a25e90eb39"}},{"code_sha256_prefix":"e89f2eec0a18d4c2","entry":"format_reward","repo":"aialt/geo-r","repo_kind":"found_in_text","path":"src/open-r1-multimodal/src/open_r1/grpo.py","file_url":"https://github.com/aialt/geo-r/blob/HEAD/src/open-r1-multimodal/src/open_r1/grpo.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e89f2eec0a18d4c2"}},{"code_sha256_prefix":"a34f33d5ef7c45a9","entry":"get_vlm_module","repo":"aialt/geo-r","repo_kind":"found_in_text","path":"src/open-r1-multimodal/src/open_r1/grpo_rec.py","file_url":"https://github.com/aialt/geo-r/blob/HEAD/src/open-r1-multimodal/src/open_r1/grpo_rec.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a34f33d5ef7c45a9"}},{"code_sha256_prefix":"58ab41ce28a94c62","entry":"gpt4o_query","repo":"aialt/geo-r","repo_kind":"found_in_text","path":"src/open-r1-multimodal/local_scripts/create_vision_cot_data.py","file_url":"https://github.com/aialt/geo-r/blob/HEAD/src/open-r1-multimodal/local_scripts/create_vision_cot_data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"58ab41ce28a94c62"}},{"code_sha256_prefix":"cbe3d6234a75d8d8","entry":"initialize_tokenizer","repo":"aialt/geo-r","repo_kind":"found_in_text","path":"src/open-r1-multimodal/src/open_r1/grpo_jsonl.py","file_url":"https://github.com/aialt/geo-r/blob/HEAD/src/open-r1-multimodal/src/open_r1/grpo_jsonl.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"cbe3d6234a75d8d8"}},{"code_sha256_prefix":"bdcc94560fb87f30","entry":"load_image_from_path","repo":"aialt/geo-r","repo_kind":"found_in_text","path":"src/open-r1-multimodal/local_scripts/prepare_hf_data.py","file_url":"https://github.com/aialt/geo-r/blob/HEAD/src/open-r1-multimodal/local_scripts/prepare_hf_data.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bdcc94560fb87f30"}},{"code_sha256_prefix":"f029d6b5f19d2885","entry":"process_single_item","repo":"aialt/geo-r","repo_kind":"found_in_text","path":"src/open-r1-multimodal/local_scripts/create_vision_cot_data.py","file_url":"https://github.com/aialt/geo-r/blob/HEAD/src/open-r1-multimodal/local_scripts/create_vision_cot_data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f029d6b5f19d2885"}},{"code_sha256_prefix":"f7e2f7881b609401","entry":"qwen2_5vl_forward","repo":"aialt/geo-r","repo_kind":"found_in_text","path":"src/open-r1-multimodal/src/open_r1/qwen2_5vl_monkey_patch.py","file_url":"https://github.com/aialt/geo-r/blob/HEAD/src/open-r1-multimodal/src/open_r1/qwen2_5vl_monkey_patch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f7e2f7881b609401"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.CL","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}