{"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/graph-matching-with-bi-level-noisy","title":"Graph Matching with Bi-level Noisy Correspondence","arxiv_id":"2212.04085","date":"2022-12-08","proceeding":"ICCV 2023 1","authors":["Yijie Lin","Mouxing Yang","Jun Yu","Peng Hu","Changqing Zhang","Xi Peng"],"abstract":"In this paper, we study a novel and widely existing problem in graph matching (GM), namely, Bi-level Noisy Correspondence (BNC), which refers to node-level noisy correspondence (NNC) and edge-level noisy correspondence (ENC). In brief, on the one hand, due to the poor recognizability and viewpoint differences between images, it is inevitable to inaccurately annotate some keypoints with offset and confusion, leading to the mismatch between two associated nodes, i.e., NNC. On the other hand, the noisy node-to-node correspondence will further contaminate the edge-to-edge correspondence, thus leading to ENC. For the BNC challenge, we propose a novel method termed Contrastive Matching with Momentum Distillation. Specifically, the proposed method is with a robust quadratic contrastive loss which enjoys the following merits: i) better exploring the node-to-node and edge-to-edge correlations through a GM customized quadratic contrastive learning paradigm; ii) adaptively penalizing the noisy assignments based on the confidence estimated by the momentum teacher. Extensive experiments on three real-world datasets show the robustness of our model compared with 12 competitive baselines. The code is available at https://github.com/XLearning-SCU/2023-ICCV-COMMON.","url_abs":"https://arxiv.org/abs/2212.04085v3","url_pdf":"https://arxiv.org/pdf/2212.04085v3.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":"graph-matching-with-bi-level-noisy","repo_url":"https://github.com/Thinklab-SJTU/ThinkMatch","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"graph-matching-with-bi-level-noisy","repo_url":"https://github.com/xlearning-scu/2023-iccv-common","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"graph-matching-with-bi-level-noisy","repo_url":"https://github.com/Lin-Yijie/Graph-Matching-Networks/tree/main/COMMON","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"},{"task_slug":"graph-learning","task_name":"Graph Learning"},{"task_slug":"graph-matching","task_name":"Graph Matching"}],"methods":[{"method_slug":"contrastive-learning","method_name":"Contrastive Learning"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/graph-matching-on-pascal-voc","task":"Graph Matching","dataset":"PASCAL VOC","model":"COMMON","rank_in_archive_order":15,"of":31,"metrics":{"matching accuracy":"0.8267"},"uses_additional_data":false},{"leaderboard":"/sota/graph-matching-on-spair-71k","task":"Graph Matching","dataset":"SPair-71k","model":"COMMON","rank_in_archive_order":2,"of":8,"metrics":{"matching accuracy":"0.8454"},"uses_additional_data":false},{"leaderboard":"/sota/graph-matching-on-willow-object-class","task":"Graph Matching","dataset":"Willow Object Class","model":"COMMON","rank_in_archive_order":1,"of":23,"metrics":{"matching accuracy":"0.9910"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2212.04085","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2212.04085"}},"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/Lin-Yijie/Graph-Matching-Networks/tree/main/COMMON","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/xlearning-scu/2023-iccv-common","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Thinklab-SJTU/ThinkMatch","reach":null}],"summary":{"ran_draft_wrong":4,"ran_fixture":2,"ran_violates":1},"by_repo_kind":{"official":{"samples":4,"ran":4,"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":7,"samples":[{"code_sha256_prefix":"1cfec25a3287ee2a","entry":"bilinear_interpolate","repo":"Lin-Yijie/Graph-Matching-Networks","repo_kind":"official","path":"COMMON/src/feature_align.py","file_url":"https://github.com/Lin-Yijie/Graph-Matching-Networks/blob/HEAD/COMMON/src/feature_align.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":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"1cfec25a3287ee2a"}},{"code_sha256_prefix":"bc40b9897e027ece","entry":"concat_features","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"bc40b9897e027ece"}},{"code_sha256_prefix":"14ce6d363f8affbb","entry":"feature_align","repo":"Lin-Yijie/Graph-Matching-Networks","repo_kind":"official","path":"COMMON/src/feature_align.py","file_url":"https://github.com/Lin-Yijie/Graph-Matching-Networks/blob/HEAD/COMMON/src/feature_align.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"14ce6d363f8affbb"}},{"code_sha256_prefix":"7863f6e6d53c2ec2","entry":"interp_2d","repo":"Lin-Yijie/Graph-Matching-Networks","repo_kind":"official","path":"COMMON/src/feature_align.py","file_url":"https://github.com/Lin-Yijie/Graph-Matching-Networks/blob/HEAD/COMMON/src/feature_align.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"7863f6e6d53c2ec2"}},{"code_sha256_prefix":"a81be531136a1b00","entry":"lexico_iter","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"a81be531136a1b00"}},{"code_sha256_prefix":"f12ddebef47d400e","entry":"normalize_over_channels","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"f12ddebef47d400e"}},{"code_sha256_prefix":"98bba89c2a19a3bb","entry":"softmax","repo":"Lin-Yijie/Graph-Matching-Networks","repo_kind":"official","path":"COMMON/src/lap_solvers/ILP.py","file_url":"https://github.com/Lin-Yijie/Graph-Matching-Networks/blob/HEAD/COMMON/src/lap_solvers/ILP.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":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"98bba89c2a19a3bb"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}