{"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/revisiting-weak-to-strong-consistency-in-semi","title":"Revisiting Weak-to-Strong Consistency in Semi-Supervised Semantic Segmentation","arxiv_id":"2208.09910","date":"2022-08-21","proceeding":"CVPR 2023 1","authors":["Lihe Yang","Lei Qi","Litong Feng","Wayne Zhang","Yinghuan Shi"],"abstract":"In this work, we revisit the weak-to-strong consistency framework, popularized by FixMatch from semi-supervised classification, where the prediction of a weakly perturbed image serves as supervision for its strongly perturbed version. Intriguingly, we observe that such a simple pipeline already achieves competitive results against recent advanced works, when transferred to our segmentation scenario. Its success heavily relies on the manual design of strong data augmentations, however, which may be limited and inadequate to explore a broader perturbation space. Motivated by this, we propose an auxiliary feature perturbation stream as a supplement, leading to an expanded perturbation space. On the other, to sufficiently probe original image-level augmentations, we present a dual-stream perturbation technique, enabling two strong views to be simultaneously guided by a common weak view. Consequently, our overall Unified Dual-Stream Perturbations approach (UniMatch) surpasses all existing methods significantly across all evaluation protocols on the Pascal, Cityscapes, and COCO benchmarks. Its superiority is also demonstrated in remote sensing interpretation and medical image analysis. We hope our reproduced FixMatch and our results can inspire more future works. Code and logs are available at https://github.com/LiheYoung/UniMatch.","url_abs":"https://arxiv.org/abs/2208.09910v2","url_pdf":"https://arxiv.org/pdf/2208.09910v2.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":"revisiting-weak-to-strong-consistency-in-semi","repo_url":"https://github.com/LiheYoung/UniMatch","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"medical-image-analysis","task_name":"Medical Image Analysis"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"},{"task_slug":"semi-supervised-semantic-segmentation","task_name":"Semi-Supervised Semantic Segmentation"},{"task_slug":"semi-supervised-change-detection","task_name":"Semi-supervised Change Detection"},{"task_slug":"semi-supervised-medical-image-segmentation","task_name":"Semi-supervised Medical Image Segmentation"}],"methods":[{"method_slug":"fixmatch","method_name":"FixMatch"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-42","task":"Semi-Supervised Semantic Segmentation","dataset":"ADE20K 1/16 labeled","model":"UniMatch","rank_in_archive_order":4,"of":5,"metrics":{"Validation mIoU":"31.5"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-41","task":"Semi-Supervised Semantic Segmentation","dataset":"ADE20K 1/32 labeled","model":"UniMatch","rank_in_archive_order":4,"of":5,"metrics":{"Validation mIoU":"28.1"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-coco-2","task":"Semi-Supervised Semantic Segmentation","dataset":"COCO 1/128 labeled","model":"UniMatch","rank_in_archive_order":6,"of":9,"metrics":{"Validation mIoU":"44.5"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-coco-1","task":"Semi-Supervised Semantic Segmentation","dataset":"COCO 1/256 labeled","model":"UniMatch","rank_in_archive_order":7,"of":9,"metrics":{"Validation mIoU":"38.9"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-coco-4","task":"Semi-Supervised Semantic Segmentation","dataset":"COCO 1/32 labeled","model":"UniMatch","rank_in_archive_order":5,"of":7,"metrics":{"Validation mIoU":"49.8"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-coco","task":"Semi-Supervised Semantic Segmentation","dataset":"COCO 1/512 labeled","model":"UniMatch","rank_in_archive_order":6,"of":8,"metrics":{"Validation mIoU":"31.9"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-coco-3","task":"Semi-Supervised Semantic Segmentation","dataset":"COCO 1/64 labeled","model":"UniMatch","rank_in_archive_order":6,"of":9,"metrics":{"Validation mIoU":"48.2"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-3","task":"Semi-Supervised Semantic Segmentation","dataset":"Cityscapes 100 samples labeled","model":"UniMatch (DeepLab v3+ with ResNet-101)","rank_in_archive_order":2,"of":13,"metrics":{"Validation mIoU":"73.0"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-2","task":"Semi-Supervised Semantic Segmentation","dataset":"Cityscapes 12.5% labeled","model":"UniMatch (DeepLab v3+ with ImageNet-pretrained ResNet-101, single scale inference)","rank_in_archive_order":7,"of":33,"metrics":{"Validation mIoU":"77.92%"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-1","task":"Semi-Supervised Semantic Segmentation","dataset":"Cityscapes 25% labeled","model":"UniMatch (DeepLab v3+ with ImageNet-pretrained ResNet-101, single scale inference)","rank_in_archive_order":8,"of":30,"metrics":{"Validation mIoU":"79.22%"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-8","task":"Semi-Supervised Semantic Segmentation","dataset":"Cityscapes 50% labeled","model":"UniMatch","rank_in_archive_order":10,"of":23,"metrics":{"Validation mIoU":"79.5%"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-22","task":"Semi-Supervised Semantic Segmentation","dataset":"Cityscapes 6.25% labeled","model":"UniMatch (DeepLab v3+ with ResNet-101 pretraind on ImageNet-1K)","rank_in_archive_order":8,"of":18,"metrics":{"Validation mIoU":"76.59"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-10","task":"Semi-Supervised Semantic Segmentation","dataset":"PASCAL VOC 2012 1464 labels","model":"UniMatch (DeepLab v3 with ResNet-101)","rank_in_archive_order":10,"of":17,"metrics":{"Validation mIoU":"81.2"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-28","task":"Semi-Supervised Semantic Segmentation","dataset":"PASCAL VOC 2012 183 labeled","model":"UniMatch (DeepLab v3+ with ResNet-101)","rank_in_archive_order":10,"of":16,"metrics":{"Validation mIoU":"77.20"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-9","task":"Semi-Supervised Semantic Segmentation","dataset":"PASCAL VOC 2012 25% labeled","model":"UniMatch (DeepLab v3+ with ResNet-101)","rank_in_archive_order":8,"of":27,"metrics":{"Validation mIoU":"80.43"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-29","task":"Semi-Supervised Semantic Segmentation","dataset":"PASCAL VOC 2012 366 labeled","model":"UniMatch (DeepLab v3+ with ResNet-101)","rank_in_archive_order":10,"of":15,"metrics":{"Validation mIoU":"78.80"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-30","task":"Semi-Supervised Semantic Segmentation","dataset":"PASCAL VOC 2012 732 labeled","model":"UniMatch (DeepLab v3+ with ResNet-101)","rank_in_archive_order":10,"of":16,"metrics":{"Validation mIoU":"79.90"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-27","task":"Semi-Supervised Semantic Segmentation","dataset":"PASCAL VOC 2012 92 labeled","model":"UniMatch (DeepLab v3+ with ResNet-101)","rank_in_archive_order":10,"of":17,"metrics":{"Validation mIoU":"75.20"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-4","task":"Semi-Supervised Semantic Segmentation","dataset":"Pascal VOC 2012 12.5% labeled","model":"UniMatch","rank_in_archive_order":4,"of":38,"metrics":{"Validation mIoU":"81.92%"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-semantic-segmentation-on-21","task":"Semi-Supervised Semantic Segmentation","dataset":"Pascal VOC 2012 6.25% labeled","model":"UniMatch (DeepLab v3+ with ResNet-101)","rank_in_archive_order":6,"of":19,"metrics":{"Validation mIoU":"80.94"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-change-detection-on-levir-cd-1","task":"Semi-supervised Change Detection","dataset":"LEVIR-CD - 10% labeled data","model":"UniMatch","rank_in_archive_order":4,"of":5,"metrics":{"IoU":"82"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-change-detection-on-levir-cd-2","task":"Semi-supervised Change Detection","dataset":"LEVIR-CD - 20% labeled data","model":"UniMatch","rank_in_archive_order":3,"of":4,"metrics":{"IoU":"81.7"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-change-detection-on-levir-cd-3","task":"Semi-supervised Change Detection","dataset":"LEVIR-CD - 40% labeled data","model":"UniMatch","rank_in_archive_order":3,"of":4,"metrics":{"IoU":"82.1"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-change-detection-on-levir-cd","task":"Semi-supervised Change Detection","dataset":"LEVIR-CD - 5% labeled data","model":"UniMatch","rank_in_archive_order":4,"of":5,"metrics":{"IoU":"80.7"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-change-detection-on-whu-10","task":"Semi-supervised Change Detection","dataset":"WHU - 10% labeled data","model":"UniMatch","rank_in_archive_order":2,"of":4,"metrics":{"IoU":"81.7"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-change-detection-on-whu-20","task":"Semi-supervised Change Detection","dataset":"WHU - 20% labeled data","model":"UniMatch","rank_in_archive_order":3,"of":4,"metrics":{"IoU":"81.7"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-change-detection-on-whu-40","task":"Semi-supervised Change Detection","dataset":"WHU - 40% labeled data","model":"UniMatch","rank_in_archive_order":3,"of":4,"metrics":{"IoU":"85.1"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-change-detection-on-whu-5","task":"Semi-supervised Change Detection","dataset":"WHU - 5% labeled data","model":"UniMatch","rank_in_archive_order":2,"of":4,"metrics":{"IoU":"80.2"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-medical-image-segmentation-on-3","task":"Semi-supervised Medical Image Segmentation","dataset":"ACDC 10% labeled data","model":"UniMatch","rank_in_archive_order":2,"of":5,"metrics":{"Dice (Average)":"89.92"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-medical-image-segmentation-on-2","task":"Semi-supervised Medical Image Segmentation","dataset":"ACDC 20% labeled data","model":"UniMatch","rank_in_archive_order":2,"of":4,"metrics":{"Dice (Average)":"90.47"},"uses_additional_data":false},{"leaderboard":"/sota/semi-supervised-medical-image-segmentation-on-4","task":"Semi-supervised Medical Image Segmentation","dataset":"ACDC 5% labeled data","model":"UniMatch","rank_in_archive_order":3,"of":4,"metrics":{"Dice (Average)":"87.61"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2208.09910","atlas_url":"https://app.syntology.ai/?focus=2208.09910","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2208.09910"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/LiheYoung/UniMatch","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":3,"ran":1,"unverified":5},"by_repo_kind":{"official":{"samples":9,"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":0,"samples":[{"code_sha256_prefix":"392d0834780485a1","entry":"ASPPConv","repo":"LiheYoung/UniMatch","repo_kind":"official","path":"model/semseg/deeplabv3plus.py","file_url":"https://github.com/LiheYoung/UniMatch/blob/HEAD/model/semseg/deeplabv3plus.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"392d0834780485a1"}},{"code_sha256_prefix":"6ef392f365cc5703","entry":"conv1x1","repo":"LiheYoung/UniMatch","repo_kind":"official","path":"model/backbone/resnet.py","file_url":"https://github.com/LiheYoung/UniMatch/blob/HEAD/model/backbone/resnet.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6ef392f365cc5703"}},{"code_sha256_prefix":"794a2ed91a5175bd","entry":"conv3x3","repo":"LiheYoung/UniMatch","repo_kind":"official","path":"model/backbone/resnet.py","file_url":"https://github.com/LiheYoung/UniMatch/blob/HEAD/model/backbone/resnet.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"794a2ed91a5175bd"}},{"code_sha256_prefix":"7c60f8e4d3bbd46f","entry":"setup_distributed","repo":"LiheYoung/UniMatch","repo_kind":"official","path":"util/dist_helper.py","file_url":"https://github.com/LiheYoung/UniMatch/blob/HEAD/util/dist_helper.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7c60f8e4d3bbd46f"}},{"code_sha256_prefix":"21e12abf73350be0","entry":"crop","repo":"LiheYoung/UniMatch","repo_kind":"official","path":"dataset/transform.py","file_url":"https://github.com/LiheYoung/UniMatch/blob/HEAD/dataset/transform.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"21e12abf73350be0"}},{"code_sha256_prefix":"9e96d1dddb1f71af","entry":"hflip","repo":"LiheYoung/UniMatch","repo_kind":"official","path":"dataset/transform.py","file_url":"https://github.com/LiheYoung/UniMatch/blob/HEAD/dataset/transform.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9e96d1dddb1f71af"}},{"code_sha256_prefix":"5717ec3a3f33f0a8","entry":"normalize","repo":"LiheYoung/UniMatch","repo_kind":"official","path":"dataset/transform.py","file_url":"https://github.com/LiheYoung/UniMatch/blob/HEAD/dataset/transform.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5717ec3a3f33f0a8"}},{"code_sha256_prefix":"1c0a6c3a9a739ec2","entry":"resnet50","repo":"LiheYoung/UniMatch","repo_kind":"official","path":"model/backbone/resnet.py","file_url":"https://github.com/LiheYoung/UniMatch/blob/HEAD/model/backbone/resnet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1c0a6c3a9a739ec2"}},{"code_sha256_prefix":"73ea75af76a62e43","entry":"xception","repo":"LiheYoung/UniMatch","repo_kind":"official","path":"model/backbone/xception.py","file_url":"https://github.com/LiheYoung/UniMatch/blob/HEAD/model/backbone/xception.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"73ea75af76a62e43"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}