{"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/arxiv-2608-18915","title":"Simple, Safe, and Overlooked: Reclaiming Sustainable Domain Generalization with Statistical Color Matching","arxiv_id":"2608.18915","date":"2026-08-19","proceeding":null,"authors":["Sebastian Doerrich","Francesco Di Salvo","Shyam Nandan Rai","Marco Lents","Christian Ledig"],"abstract":"Hardware shifts, color variations, and changing patient characteristics between development and deployment routinely break trained medical image classifiers. Existing remedies fall short: standard color jittering provides insufficient diversity, while deep generative style transfer algorithms hallucinate features, destroy clinically relevant structures, and waste massive compute resources. To address this, we revisit classical statistical color matching and repurpose it as Colorist, a highly efficient data augmentation strategy that applies global mean-standard deviation matching directly in the RGB color space. We demonstrate that this training-free, fully interpretable approach safely generates structurally intact domain variations, outperforming deep generative models in structural fidelity and color alignment. Across out-of-distribution histopathology, peripheral blood, dermatology, and retinal datasets, it improves balanced accuracy by up to +9% over state-of-the-art domain generalization regularizers and by +13% over an unaugmented baseline. Moreover, by avoiding neural networks in the augmentation loop, Colorist preserves anatomical structure, minimizes carbon footprint, and integrates seamlessly into standard dataloaders. Together, these findings establish statistical matching as a safe, interpretable, yet overlooked alternative to deep architectures for clinical robustness. Source code is available at https://github.com/sdoerrich97/colorist.","url_abs":"https://arxiv.org/abs/2608.18915","url_pdf":"https://arxiv.org/pdf/2608.18915","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":null,"mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2608.18915"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/sdoerrich97/colorist","reach":null}],"summary":{"ran":10,"unverified":1},"by_repo_kind":{"found_in_text":{"samples":11,"ran":10,"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":11,"samples":[{"code_sha256_prefix":"d7117d90cedc026f","entry":"detect_input_type","repo":"sdoerrich97/colorist","repo_kind":"found_in_text","path":"colorist/_utils.py","file_url":"https://github.com/sdoerrich97/colorist/blob/HEAD/colorist/_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d7117d90cedc026f"}},{"code_sha256_prefix":"c5c811726f34dab1","entry":"hsd2rgb","repo":"sdoerrich97/colorist","repo_kind":"found_in_text","path":"colorist/_colorspaces.py","file_url":"https://github.com/sdoerrich97/colorist/blob/HEAD/colorist/_colorspaces.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"c5c811726f34dab1"}},{"code_sha256_prefix":"9d1e2203475dd35e","entry":"is_batch","repo":"sdoerrich97/colorist","repo_kind":"found_in_text","path":"colorist/_utils.py","file_url":"https://github.com/sdoerrich97/colorist/blob/HEAD/colorist/_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"9d1e2203475dd35e"}},{"code_sha256_prefix":"e93a92d20a3ca3a5","entry":"match_ehm","repo":"sdoerrich97/colorist","repo_kind":"found_in_text","path":"colorist/_matching.py","file_url":"https://github.com/sdoerrich97/colorist/blob/HEAD/colorist/_matching.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"e93a92d20a3ca3a5"}},{"code_sha256_prefix":"0f419b7b99012f49","entry":"match_histogram","repo":"sdoerrich97/colorist","repo_kind":"found_in_text","path":"colorist/_matching.py","file_url":"https://github.com/sdoerrich97/colorist/blob/HEAD/colorist/_matching.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"0f419b7b99012f49"}},{"code_sha256_prefix":"af4e6edf041bb8ab","entry":"match_mean_std","repo":"sdoerrich97/colorist","repo_kind":"found_in_text","path":"colorist/_matching.py","file_url":"https://github.com/sdoerrich97/colorist/blob/HEAD/colorist/_matching.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"af4e6edf041bb8ab"}},{"code_sha256_prefix":"646673756d45b19d","entry":"pil_to_numpy","repo":"sdoerrich97/colorist","repo_kind":"found_in_text","path":"colorist/_utils.py","file_url":"https://github.com/sdoerrich97/colorist/blob/HEAD/colorist/_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"646673756d45b19d"}},{"code_sha256_prefix":"8fde9de30458c1e1","entry":"pretrained_repo_id","repo":"sdoerrich97/colorist","repo_kind":"found_in_text","path":"colorist/_factory.py","file_url":"https://github.com/sdoerrich97/colorist/blob/HEAD/colorist/_factory.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"8fde9de30458c1e1"}},{"code_sha256_prefix":"f60e1c3a3d4336d2","entry":"rgb2hsd","repo":"sdoerrich97/colorist","repo_kind":"found_in_text","path":"colorist/_colorspaces.py","file_url":"https://github.com/sdoerrich97/colorist/blob/HEAD/colorist/_colorspaces.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"f60e1c3a3d4336d2"}},{"code_sha256_prefix":"d3f46f49bd67f80d","entry":"rgb2hsi","repo":"sdoerrich97/colorist","repo_kind":"found_in_text","path":"colorist/_colorspaces.py","file_url":"https://github.com/sdoerrich97/colorist/blob/HEAD/colorist/_colorspaces.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d3f46f49bd67f80d"}},{"code_sha256_prefix":"a40e34aa22bed554","entry":"create_color_transfer","repo":"sdoerrich97/colorist","repo_kind":"found_in_text","path":"colorist/_factory.py","file_url":"https://github.com/sdoerrich97/colorist/blob/HEAD/colorist/_factory.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"a40e34aa22bed554"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}