{"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-12530","title":"XRefine: Attention-Guided Keypoint Match Refinement","arxiv_id":"2601.12530","date":"2026-01-18","proceeding":null,"authors":["Jan Fabian Schmid","Annika Hagemann"],"abstract":"Sparse keypoint matching is crucial for 3D vision tasks, yet current keypoint detectors often produce spatially inaccurate matches. Existing refinement methods mitigate this issue through alignment of matched keypoint locations, but they are typically detector-specific, requiring retraining for each keypoint detector. We introduce XRefine, a novel, detector-agnostic approach for sub-pixel keypoint refinement that operates solely on image patches centered at matched keypoints. Our cross-attention-based architecture learns to predict refined keypoint coordinates without relying on internal detector representations, enabling generalization across detectors. Furthermore, XRefine can be extended to handle multi-view feature tracks. Experiments on MegaDepth, KITTI, and ScanNet demonstrate that the approach consistently improves geometric estimation accuracy, achieving superior performance compared to existing refinement methods while maintaining runtime efficiency. Our code and trained models can be found at https://github.com/boschresearch/xrefine.","url_abs":"https://arxiv.org/abs/2601.12530","url_pdf":"https://arxiv.org/pdf/2601.12530","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":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2601.12530","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2601.12530"}},"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/boschresearch/xrefine","reach":null}],"summary":{"ran":5,"ran_fixture":4,"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"found_in_text":{"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":"9bc6940bb75b6d1d","entry":"Attention","repo":"boschresearch/xrefine","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/boschresearch/xrefine/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"9bc6940bb75b6d1d"}},{"code_sha256_prefix":"930151c5ed168381","entry":"Encoder","repo":"boschresearch/xrefine","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/boschresearch/xrefine/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"930151c5ed168381"}},{"code_sha256_prefix":"75e74b3bae8a59b9","entry":"ScoreMapHead","repo":"boschresearch/xrefine","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/boschresearch/xrefine/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"75e74b3bae8a59b9"}},{"code_sha256_prefix":"d7762819066d27ef","entry":"SpatialArgmax2d","repo":"boschresearch/xrefine","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/boschresearch/xrefine/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"d7762819066d27ef"}},{"code_sha256_prefix":"1de4aeb42e432889","entry":"SpatialSoftArgmax2d","repo":"boschresearch/xrefine","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/boschresearch/xrefine/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"1de4aeb42e432889"}},{"code_sha256_prefix":"5cdfb1f5402be866","entry":"color_normalization","repo":"boschresearch/xrefine","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/boschresearch/xrefine/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"5cdfb1f5402be866"}},{"code_sha256_prefix":"6b8c99d076ca8bfd","entry":"create_meshgrid","repo":"boschresearch/xrefine","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/boschresearch/xrefine/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6b8c99d076ca8bfd"}},{"code_sha256_prefix":"6c29c5eb23e27131","entry":"extract_patches","repo":"boschresearch/xrefine","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/boschresearch/xrefine/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6c29c5eb23e27131"}},{"code_sha256_prefix":"4b609a223e47bff4","entry":"extract_patches_from_map","repo":"boschresearch/xrefine","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/boschresearch/xrefine/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"4b609a223e47bff4"}},{"code_sha256_prefix":"280074519239086e","entry":"retrieve_sub_pixel_precision","repo":"boschresearch/xrefine","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/boschresearch/xrefine/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"280074519239086e"}},{"code_sha256_prefix":"7d70f7cdfc77c863","entry":"SimpleJointAttnTuner","repo":"boschresearch/xrefine","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/boschresearch/xrefine/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"7d70f7cdfc77c863"}},{"code_sha256_prefix":"6c46b7ff90e0d3c3","entry":"XRefine","repo":"boschresearch/xrefine","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/boschresearch/xrefine/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6c46b7ff90e0d3c3"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.CV","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}