{"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/probabilistic-warp-consistency-for-weakly","title":"Probabilistic Warp Consistency for Weakly-Supervised Semantic Correspondences","arxiv_id":"2203.04279","date":"2022-03-08","proceeding":"CVPR 2022 1","authors":["Prune Truong","Martin Danelljan","Fisher Yu","Luc van Gool"],"abstract":"We propose Probabilistic Warp Consistency, a weakly-supervised learning objective for semantic matching. Our approach directly supervises the dense matching scores predicted by the network, encoded as a conditional probability distribution. We first construct an image triplet by applying a known warp to one of the images in a pair depicting different instances of the same object class. Our probabilistic learning objectives are then derived using the constraints arising from the resulting image triplet. We further account for occlusion and background clutter present in real image pairs by extending our probabilistic output space with a learnable unmatched state. To supervise it, we design an objective between image pairs depicting different object classes. We validate our method by applying it to four recent semantic matching architectures. Our weakly-supervised approach sets a new state-of-the-art on four challenging semantic matching benchmarks. Lastly, we demonstrate that our objective also brings substantial improvements in the strongly-supervised regime, when combined with keypoint annotations.","url_abs":"https://arxiv.org/abs/2203.04279v2","url_pdf":"https://arxiv.org/pdf/2203.04279v2.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":"probabilistic-warp-consistency-for-weakly","repo_url":"https://github.com/PruneTruong/DenseMatching","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":null,"task_name":"Triplet"},{"task_slug":"weakly-supervised-learning","task_name":"Weakly-supervised Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2203.04279","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.04279"}},"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":"deterministic:regex_extraction","url":"https://github.com/PruneTruong/DenseMatching","reach":null}],"summary":{"ran":6,"ran_fixture":4,"ran_draft_wrong":2,"ran_honours":1,"unverified":2},"by_repo_kind":{"official":{"samples":15,"ran":13,"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":15,"samples":[{"code_sha256_prefix":"02a0560c27387518","entry":"BinaryCrossEntropy","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"02a0560c27387518"}},{"code_sha256_prefix":"2beec2454ea2317c","entry":"Correlation","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"2beec2454ea2317c"}},{"code_sha256_prefix":"5a05b45173a6074c","entry":"Norm","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"5a05b45173a6074c"}},{"code_sha256_prefix":"6e57a2cc4025f5f1","entry":"OneHotBinaryCrossEntropy","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"6e57a2cc4025f5f1"}},{"code_sha256_prefix":"270e207c18ad6449","entry":"OneHotCrossEntropy","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"270e207c18ad6449"}},{"code_sha256_prefix":"8324e64c71eefb52","entry":"SmoothCrossEntropy","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"8324e64c71eefb52"}},{"code_sha256_prefix":"beec515814429501","entry":"compute_global_correlation","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"beec515814429501"}},{"code_sha256_prefix":"a733bcc981152875","entry":"convert_flow_to_mapping","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"a733bcc981152875"}},{"code_sha256_prefix":"ff06c3e066c36e85","entry":"cost_volume_to_probabilistic_mapping","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"ff06c3e066c36e85"}},{"code_sha256_prefix":"8aa4dc35337276eb","entry":"featureL2Norm","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"8aa4dc35337276eb"}},{"code_sha256_prefix":"cce902f0bf3d2e38","entry":"gaussian2d","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"cce902f0bf3d2e38"}},{"code_sha256_prefix":"10c460b3e318cb5c","entry":"getBlurredGT_multiple_kp","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"10c460b3e318cb5c"}},{"code_sha256_prefix":"62ec77ea92e938ca","entry":"get_gt_correspondence_mask","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"62ec77ea92e938ca"}},{"code_sha256_prefix":"75412cba570e9371","entry":"ProbabilisticWarpConsistencyForGlobalCorr","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"75412cba570e9371"}},{"code_sha256_prefix":"8f15d60047a7169a","entry":"apply_gaussian_kernel","repo":"PruneTruong/DenseMatching","repo_kind":"official","path":"training/losses/probabilistic_warp_consistency_losses.py","file_url":"https://github.com/PruneTruong/DenseMatching/blob/HEAD/training/losses/probabilistic_warp_consistency_losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"LGPL-2.1","inline_ok":false,"mcp_get_code":{"code_sha256":"8f15d60047a7169a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}