{"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/synthseg-domain-randomisation-for","title":"SynthSeg: Segmentation of brain MRI scans of any contrast and resolution without retraining","arxiv_id":"2107.09559","date":"2021-07-20","proceeding":null,"authors":["Benjamin Billot","Douglas N. Greve","Oula Puonti","Axel Thielscher","Koen van Leemput","Bruce Fischl","Adrian V. Dalca","Juan Eugenio Iglesias"],"abstract":"Despite advances in data augmentation and transfer learning, convolutional neural networks (CNNs) difficultly generalise to unseen domains. When segmenting brain scans, CNNs are highly sensitive to changes in resolution and contrast: even within the same MRI modality, performance can decrease across datasets. Here we introduce SynthSeg, the first segmentation CNN robust against changes in contrast and resolution. SynthSeg is trained with synthetic data sampled from a generative model conditioned on segmentations. Crucially, we adopt a domain randomisation strategy where we fully randomise the contrast and resolution of the synthetic training data. Consequently, SynthSeg can segment real scans from a wide range of target domains without retraining or fine-tuning, which enables straightforward analysis of huge amounts of heterogeneous clinical data. Because SynthSeg only requires segmentations to be trained (no images), it can learn from labels obtained by automated methods on diverse populations (e.g., ageing and diseased), thus achieving robustness to a wide range of morphological variability. We demonstrate SynthSeg on 5,000 scans of six modalities (including CT) and ten resolutions, where it exhibits unparalleled generalisation compared with supervised CNNs, state-of-the-art domain adaptation, and Bayesian segmentation. Finally, we demonstrate the generalisability of SynthSeg by applying it to cardiac MRI and CT scans.","url_abs":"https://arxiv.org/abs/2107.09559v4","url_pdf":"https://arxiv.org/pdf/2107.09559v4.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":"synthseg-domain-randomisation-for","repo_url":"https://github.com/BBillot/SynthSeg","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"synthseg-domain-randomisation-for","repo_url":"https://github.com/BBillot/SynthSR","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"synthseg-domain-randomisation-for","repo_url":"https://github.com/CIG-UCL/polaffini","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"synthseg-domain-randomisation-for","repo_url":"https://github.com/coradlut/bi-jros","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"},{"task_slug":"transfer-learning","task_name":"Transfer Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2107.09559","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2107.09559"}},"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/BBillot/SynthSeg","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/BBillot/SynthSR","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/coradlut/bi-jros","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/CIG-UCL/polaffini","reach":{"status":"ok","spdx":"NOASSERTION"}}],"summary":{"unverified":6},"by_repo_kind":{"listed":{"samples":6,"ran":0,"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":"b149f1adf50c5f3c","entry":"blurring_sigma_for_downsampling","repo":"BBillot/SynthSR","repo_kind":"listed","path":"ext/lab2im/edit_tensors.py","file_url":"https://github.com/BBillot/SynthSR/blob/HEAD/ext/lab2im/edit_tensors.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":"b149f1adf50c5f3c"}},{"code_sha256_prefix":"0c981ce8cb47950c","entry":"conv_enc","repo":"BBillot/SynthSR","repo_kind":"listed","path":"ext/neuron/models.py","file_url":"https://github.com/BBillot/SynthSR/blob/HEAD/ext/neuron/models.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":"0c981ce8cb47950c"}},{"code_sha256_prefix":"eeef681f0970de5c","entry":"discriminator_block","repo":"BBillot/SynthSR","repo_kind":"listed","path":"SynthSR/fine_tuning_with_adversary.py","file_url":"https://github.com/BBillot/SynthSR/blob/HEAD/SynthSR/fine_tuning_with_adversary.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":"eeef681f0970de5c"}},{"code_sha256_prefix":"cdbfcddd4e30d17c","entry":"make_discriminator","repo":"BBillot/SynthSR","repo_kind":"listed","path":"SynthSR/fine_tuning_with_adversary.py","file_url":"https://github.com/BBillot/SynthSR/blob/HEAD/SynthSR/fine_tuning_with_adversary.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":"cdbfcddd4e30d17c"}},{"code_sha256_prefix":"7053f37198d52faf","entry":"sobel_kernels","repo":"BBillot/SynthSR","repo_kind":"listed","path":"ext/lab2im/edit_tensors.py","file_url":"https://github.com/BBillot/SynthSR/blob/HEAD/ext/lab2im/edit_tensors.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":"7053f37198d52faf"}},{"code_sha256_prefix":"ccdf75b227c739c8","entry":"unet","repo":"BBillot/SynthSR","repo_kind":"listed","path":"ext/neuron/models.py","file_url":"https://github.com/BBillot/SynthSR/blob/HEAD/ext/neuron/models.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":"ccdf75b227c739c8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}