{"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/consensus-guided-correspondence-denoising","title":"Progressive Correspondence Pruning by Consensus Learning","arxiv_id":"2101.00591","date":"2021-01-03","proceeding":"ICCV 2021 10","authors":["Chen Zhao","Yixiao Ge","Feng Zhu","Rui Zhao","Hongsheng Li","Mathieu Salzmann"],"abstract":"Correspondence selection aims to correctly select the consistent matches (inliers) from an initial set of putative correspondences. The selection is challenging since putative matches are typically extremely unbalanced, largely dominated by outliers, and the random distribution of such outliers further complicates the learning process for learning-based methods. To address this issue, we propose to progressively prune the correspondences via a local-to-global consensus learning procedure. We introduce a ``pruning'' block that lets us identify reliable candidates among the initial matches according to consensus scores estimated using local-to-global dynamic graphs. We then achieve progressive pruning by stacking multiple pruning blocks sequentially. Our method outperforms state-of-the-arts on robust line fitting, camera pose estimation and retrieval-based image localization benchmarks by significant margins and shows promising generalization ability to different datasets and detector/descriptor combinations.","url_abs":"https://arxiv.org/abs/2101.00591v2","url_pdf":"https://arxiv.org/pdf/2101.00591v2.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":"consensus-guided-correspondence-denoising","repo_url":"https://github.com/sailor-z/clnet","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"consensus-guided-correspondence-denoising","repo_url":"https://github.com/weitong8591/ars_magsac","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"camera-pose-estimation","task_name":"Camera Pose Estimation"},{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"},{"task_slug":"retrieval","task_name":"Retrieval"}],"methods":[{"method_slug":"pruning","method_name":"Pruning"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2101.00591","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2101.00591"}},"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":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/weitong8591/ars_magsac","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sailor-z/clnet","reach":null}],"summary":{"ran":3,"ran_draft_wrong":1,"ran_fixture":2,"unverified":5},"by_repo_kind":{"listed":{"samples":11,"ran":6,"repositories":2}},"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":5,"samples":[{"code_sha256_prefix":"4a145d8c37c0d503","entry":"CLNet","repo":"weitong8591/ars_magsac","repo_kind":"listed","path":"networks/clnet.py","file_url":"https://github.com/weitong8591/ars_magsac/blob/HEAD/networks/clnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"4a145d8c37c0d503"}},{"code_sha256_prefix":"463923d13d63a36a","entry":"DGCNN_Block","repo":"weitong8591/ars_magsac","repo_kind":"listed","path":"networks/clnet.py","file_url":"https://github.com/weitong8591/ars_magsac/blob/HEAD/networks/clnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"463923d13d63a36a"}},{"code_sha256_prefix":"e57e5e70b4eb3eac","entry":"ResNet_Block","repo":"weitong8591/ars_magsac","repo_kind":"listed","path":"networks/clnet.py","file_url":"https://github.com/weitong8591/ars_magsac/blob/HEAD/networks/clnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"e57e5e70b4eb3eac"}},{"code_sha256_prefix":"7e6ccef29b8d6596","entry":"batch_episym","repo":"sailor-z/clnet","repo_kind":"listed","path":"model.py","file_url":"https://github.com/sailor-z/clnet/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"7e6ccef29b8d6596"}},{"code_sha256_prefix":"5f563da12002f5b8","entry":"knn","repo":"weitong8591/ars_magsac","repo_kind":"listed","path":"networks/clnet.py","file_url":"https://github.com/weitong8591/ars_magsac/blob/HEAD/networks/clnet.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5f563da12002f5b8"}},{"code_sha256_prefix":"bdf2881ce6634bf2","entry":"weighted_8points","repo":"sailor-z/clnet","repo_kind":"listed","path":"model.py","file_url":"https://github.com/sailor-z/clnet/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":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"bdf2881ce6634bf2"}},{"code_sha256_prefix":"7a593e756e0747b9","entry":"CLNet","repo":"sailor-z/clnet","repo_kind":"listed","path":"model.py","file_url":"https://github.com/sailor-z/clnet/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":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"7a593e756e0747b9"}},{"code_sha256_prefix":"b0f2e92a4fe787a1","entry":"DS_Block","repo":"sailor-z/clnet","repo_kind":"listed","path":"model.py","file_url":"https://github.com/sailor-z/clnet/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":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"b0f2e92a4fe787a1"}},{"code_sha256_prefix":"6ec2d760ebbf5880","entry":"GCN_Block","repo":"weitong8591/ars_magsac","repo_kind":"listed","path":"networks/clnet.py","file_url":"https://github.com/weitong8591/ars_magsac/blob/HEAD/networks/clnet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"6ec2d760ebbf5880"}},{"code_sha256_prefix":"3aedbef83814f80e","entry":"GCN_Block","repo":"sailor-z/clnet","repo_kind":"listed","path":"model.py","file_url":"https://github.com/sailor-z/clnet/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":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"3aedbef83814f80e"}},{"code_sha256_prefix":"98c6b55c0f2b83c0","entry":"get_graph_feature","repo":"weitong8591/ars_magsac","repo_kind":"listed","path":"networks/clnet.py","file_url":"https://github.com/weitong8591/ars_magsac/blob/HEAD/networks/clnet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"98c6b55c0f2b83c0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}