{"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-11930","title":"SupScene: Scene-Structured Overlap Supervision for Image Retrieval in Unconstrained SfM","arxiv_id":"2601.11930","date":"2026-01-17","proceeding":null,"authors":["Xulei Shi","Maoyu Wang","Yuning Peng","Guanbo Wang","Xin Wang","Yifan Liao","Qi Chen","Pengjie Tao"],"abstract":"Image retrieval is a critical step for reducing the quadratic cost of image matching in unconstrained Structure-from-Motion (SfM). Unlike generic image retrieval, however, the relevant goal of SfM is to identify geometrically matchable image pairs rather than merely semantically similar images. Prevailing methods are largely trained under anchor-centric tuple guidance, which organizes the training around isolated tuples and under-utilizes the dense, graded overlap structure naturally established within a SfM scene. In this work, we present SupScene, a scene-structured training framework that samples connected local subgraphs from SfM overlap graphs and jointly supervises all valid within-subgraph pairwise relations. To explicitly align the trained descriptor with geometric co-visibility, we further introduce an overlap-ordered objective that combines multi-similarity optimization with a continuous relative-overlap ranking term. In addition, the proposed framework is instantiated with a lightweight Structural Context Probe Pooling (SCPP) head that aggregates complementary structural responses into a compact global descriptor. Extensive experimental results on multiple benchmarks demonstrate that our method can significantly improve overall retrieval performance and enhance the completeness of downstream SfM reconstructions. Code and models are available at https://github.com/Suxilan/SupScene.","url_abs":"https://arxiv.org/abs/2601.11930","url_pdf":"https://arxiv.org/pdf/2601.11930","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.11930","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2601.11930"}},"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/Suxilan/SupScene","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":7},"by_repo_kind":{"found_in_text":{"samples":7,"ran":0,"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":"eebc551941038211","entry":"build_aggregator","repo":"Suxilan/SupScene","repo_kind":"found_in_text","path":"supscene/encoder.py","file_url":"https://github.com/Suxilan/SupScene/blob/HEAD/supscene/encoder.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":"eebc551941038211"}},{"code_sha256_prefix":"8b0cb7354017c623","entry":"build_backbone","repo":"Suxilan/SupScene","repo_kind":"found_in_text","path":"supscene/encoder.py","file_url":"https://github.com/Suxilan/SupScene/blob/HEAD/supscene/encoder.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":"8b0cb7354017c623"}},{"code_sha256_prefix":"3815a558b0c23b86","entry":"build_deploy_head","repo":"Suxilan/SupScene","repo_kind":"found_in_text","path":"supscene/encoder.py","file_url":"https://github.com/Suxilan/SupScene/blob/HEAD/supscene/encoder.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":"3815a558b0c23b86"}},{"code_sha256_prefix":"e43a1e82e4ef4cc4","entry":"distill_loss","repo":"Suxilan/SupScene","repo_kind":"found_in_text","path":"supscene/losses/distill_loss.py","file_url":"https://github.com/Suxilan/SupScene/blob/HEAD/supscene/losses/distill_loss.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":"e43a1e82e4ef4cc4"}},{"code_sha256_prefix":"a189ad1a4ec4c31d","entry":"make_pad_collate","repo":"Suxilan/SupScene","repo_kind":"found_in_text","path":"supscene/datasets/gl3d_subgraph_dataset.py","file_url":"https://github.com/Suxilan/SupScene/blob/HEAD/supscene/datasets/gl3d_subgraph_dataset.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":"a189ad1a4ec4c31d"}},{"code_sha256_prefix":"92deb9e160910a3d","entry":"read_lines","repo":"Suxilan/SupScene","repo_kind":"found_in_text","path":"supscene/datasets/scenegraph.py","file_url":"https://github.com/Suxilan/SupScene/blob/HEAD/supscene/datasets/scenegraph.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":"92deb9e160910a3d"}},{"code_sha256_prefix":"57f3af6031fd4352","entry":"resolve_scene_dirs","repo":"Suxilan/SupScene","repo_kind":"found_in_text","path":"supscene/datasets/gl3d_subgraph_dataset.py","file_url":"https://github.com/Suxilan/SupScene/blob/HEAD/supscene/datasets/gl3d_subgraph_dataset.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":"57f3af6031fd4352"}}]},"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}