{"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/constructing-and-exploring-intermediate","title":"Constructing and Exploring Intermediate Domains in Mixed Domain Semi-supervised Medical Image Segmentation","arxiv_id":"2404.08951","date":"2024-04-13","proceeding":"CVPR 2024 1","authors":["Qinghe Ma","Jian Zhang","Lei Qi","Qian Yu","Yinghuan Shi","Yang Gao"],"abstract":"Both limited annotation and domain shift are prevalent challenges in medical image segmentation. Traditional semi-supervised segmentation and unsupervised domain adaptation methods address one of these issues separately. However, the coexistence of limited annotation and domain shift is quite common, which motivates us to introduce a novel and challenging scenario: Mixed Domain Semi-supervised medical image Segmentation (MiDSS). In this scenario, we handle data from multiple medical centers, with limited annotations available for a single domain and a large amount of unlabeled data from multiple domains. We found that the key to solving the problem lies in how to generate reliable pseudo labels for the unlabeled data in the presence of domain shift with labeled data. To tackle this issue, we employ Unified Copy-Paste (UCP) between images to construct intermediate domains, facilitating the knowledge transfer from the domain of labeled data to the domains of unlabeled data. To fully utilize the information within the intermediate domain, we propose a symmetric Guidance training strategy (SymGD), which additionally offers direct guidance to unlabeled data by merging pseudo labels from intermediate samples. Subsequently, we introduce a Training Process aware Random Amplitude MixUp (TP-RAM) to progressively incorporate style-transition components into intermediate samples. Compared with existing state-of-the-art approaches, our method achieves a notable 13.57% improvement in Dice score on Prostate dataset, as demonstrated on three public datasets. Our code is available at https://github.com/MQinghe/MiDSS .","url_abs":"https://arxiv.org/abs/2404.08951v1","url_pdf":"https://arxiv.org/pdf/2404.08951v1.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":"constructing-and-exploring-intermediate","repo_url":"https://github.com/mqinghe/midss","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"},{"task_slug":"image-segmentation","task_name":"Image Segmentation"},{"task_slug":"medical-image-segmentation","task_name":"Medical Image Segmentation"},{"task_slug":"segmentation","task_name":"Segmentation"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"},{"task_slug":"semi-supervised-medical-image-segmentation","task_name":"Semi-supervised Medical Image Segmentation"},{"task_slug":"transfer-learning","task_name":"Transfer Learning"},{"task_slug":"unsupervised-domain-adaptation","task_name":"Unsupervised Domain Adaptation"}],"methods":[{"method_slug":"aware","method_name":"AWARE"},{"method_slug":"copy-paste","method_name":"Copy-Paste"},{"method_slug":"mixup","method_name":"Mixup"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2404.08951","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.08951"}},"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/MQinghe/MiDSS","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_honours":2,"ran":14,"unverified":2},"by_repo_kind":{"official":{"samples":18,"ran":16,"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":"3fb68ed6809a8085","entry":"sigmoid_rampup","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/utils/ramps.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/utils/ramps.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":2,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3fb68ed6809a8085"}},{"code_sha256_prefix":"543991aebf9b218a","entry":"SoftLable","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/dataloaders/custom_transforms.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/dataloaders/custom_transforms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"543991aebf9b218a"}},{"code_sha256_prefix":"a17610fbc65c8591","entry":"ToMultiLabel","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/dataloaders/custom_transforms.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/dataloaders/custom_transforms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a17610fbc65c8591"}},{"code_sha256_prefix":"214e4ee9afcfa0e3","entry":"cosine_rampdown","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/utils/ramps.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/utils/ramps.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"214e4ee9afcfa0e3"}},{"code_sha256_prefix":"c9896e2a9e9768ef","entry":"count_params","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/networks/unet.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/networks/unet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c9896e2a9e9768ef"}},{"code_sha256_prefix":"271f6a7053a24e6c","entry":"dice","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/utils/metrics.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/utils/metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"271f6a7053a24e6c"}},{"code_sha256_prefix":"9f3489c005e0165d","entry":"dice_loss","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/utils/losses.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/utils/losses.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9f3489c005e0165d"}},{"code_sha256_prefix":"4953e4d45e6de492","entry":"dice_loss1","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/utils/losses.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/utils/losses.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4953e4d45e6de492"}},{"code_sha256_prefix":"842fb3864257695c","entry":"distance_transform","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/utils/metrics.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/utils/metrics.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"842fb3864257695c"}},{"code_sha256_prefix":"75e298e708abee58","entry":"encode_segmap","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/dataloaders/utils.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/dataloaders/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"75e298e708abee58"}},{"code_sha256_prefix":"f8c429b95e4ae707","entry":"entropy_loss","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/utils/losses.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/utils/losses.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f8c429b95e4ae707"}},{"code_sha256_prefix":"e8452d0c9dc7deb4","entry":"get_SGD","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/train_MNMS.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/train_MNMS.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e8452d0c9dc7deb4"}},{"code_sha256_prefix":"26ea400f0a8a65f4","entry":"get_cosine_schedule_with_warmup","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/train_MNMS.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/train_MNMS.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"26ea400f0a8a65f4"}},{"code_sha256_prefix":"f1e67bfcea91df50","entry":"recursive_glob","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/dataloaders/utils.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/dataloaders/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f1e67bfcea91df50"}},{"code_sha256_prefix":"d2923c3e5c5d5484","entry":"to_multilabel","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/dataloaders/custom_transforms.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/dataloaders/custom_transforms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d2923c3e5c5d5484"}},{"code_sha256_prefix":"069a755a80d803f2","entry":"untransform","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/dataloaders/utils.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/dataloaders/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"069a755a80d803f2"}},{"code_sha256_prefix":"ca40feece5ce04cb","entry":"cal_dice","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/utils/metrics.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/utils/metrics.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":"ca40feece5ce04cb"}},{"code_sha256_prefix":"069122bd5268cc56","entry":"linear_rampup","repo":"MQinghe/MiDSS","repo_kind":"official","path":"code/utils/ramps.py","file_url":"https://github.com/MQinghe/MiDSS/blob/HEAD/code/utils/ramps.py","link_basis":"harvester_set","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":"069122bd5268cc56"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}