{"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/federated-domain-generalization-for-image","title":"Federated Domain Generalization for Image Recognition via Cross-Client Style Transfer","arxiv_id":"2210.00912","date":"2022-10-03","proceeding":null,"authors":["Junming Chen","Meirui Jiang","Qi Dou","Qifeng Chen"],"abstract":"Domain generalization (DG) has been a hot topic in image recognition, with a goal to train a general model that can perform well on unseen domains. Recently, federated learning (FL), an emerging machine learning paradigm to train a global model from multiple decentralized clients without compromising data privacy, brings new challenges, also new possibilities, to DG. In the FL scenario, many existing state-of-the-art (SOTA) DG methods become ineffective, because they require the centralization of data from different domains during training. In this paper, we propose a novel domain generalization method for image recognition under federated learning through cross-client style transfer (CCST) without exchanging data samples. Our CCST method can lead to more uniform distributions of source clients, and thus make each local model learn to fit the image styles of all the clients to avoid the different model biases. Two types of style (single image style and overall domain style) with corresponding mechanisms are proposed to be chosen according to different scenarios. Our style representation is exceptionally lightweight and can hardly be used for the reconstruction of the dataset. The level of diversity is also flexible to be controlled with a hyper-parameter. Our method outperforms recent SOTA DG methods on two DG benchmarks (PACS, OfficeHome) and a large-scale medical image dataset (Camelyon17) in the FL setting. Last but not least, our method is orthogonal to many classic DG methods, achieving additive performance by combined utilization.","url_abs":"https://arxiv.org/abs/2210.00912v1","url_pdf":"https://arxiv.org/pdf/2210.00912v1.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":"federated-domain-generalization-for-image","repo_url":"https://github.com/JeremyCJM/CCST","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"CC0-1.0"}}],"tasks":[{"task_slug":"domain-generalization","task_name":"Domain Generalization"},{"task_slug":"federated-learning","task_name":"Federated Learning"},{"task_slug":"style-transfer","task_name":"Style Transfer"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2210.00912","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2210.00912"}},"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/JeremyCJM/CCST","reach":{"status":"ok","spdx":"CC0-1.0"}}],"summary":{"ran":1,"unverified":11},"by_repo_kind":{"official":{"samples":12,"ran":1,"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":"44b1906941c2c3ed","entry":"test_transform","repo":"JeremyCJM/CCST","repo_kind":"official","path":"style_transfer/AdaIN/CCST_OverallStyleTransfer.py","file_url":"https://github.com/JeremyCJM/CCST/blob/HEAD/style_transfer/AdaIN/CCST_OverallStyleTransfer.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"44b1906941c2c3ed"}},{"code_sha256_prefix":"2d434599536522ee","entry":"calc_mean_std","repo":"JeremyCJM/CCST","repo_kind":"official","path":"reconstruct_img/imagenet_reconstruct.py","file_url":"https://github.com/JeremyCJM/CCST/blob/HEAD/reconstruct_img/imagenet_reconstruct.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2d434599536522ee"}},{"code_sha256_prefix":"c72f36159b491762","entry":"calc_sum","repo":"JeremyCJM/CCST","repo_kind":"official","path":"style_transfer/AdaIN/CCST_SingleStyleTransfer.py","file_url":"https://github.com/JeremyCJM/CCST/blob/HEAD/style_transfer/AdaIN/CCST_SingleStyleTransfer.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c72f36159b491762"}},{"code_sha256_prefix":"b1dd5c49ef99e5a4","entry":"cast_to_image","repo":"JeremyCJM/CCST","repo_kind":"official","path":"reconstruct_img/imagenet_reconstruct.py","file_url":"https://github.com/JeremyCJM/CCST/blob/HEAD/reconstruct_img/imagenet_reconstruct.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b1dd5c49ef99e5a4"}},{"code_sha256_prefix":"f6256149c0715845","entry":"classifier","repo":"JeremyCJM/CCST","repo_kind":"official","path":"utils/rsc_utils_densenet.py","file_url":"https://github.com/JeremyCJM/CCST/blob/HEAD/utils/rsc_utils_densenet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f6256149c0715845"}},{"code_sha256_prefix":"95bbc26484035020","entry":"featurizer","repo":"JeremyCJM/CCST","repo_kind":"official","path":"utils/rsc_utils_densenet.py","file_url":"https://github.com/JeremyCJM/CCST/blob/HEAD/utils/rsc_utils_densenet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"95bbc26484035020"}},{"code_sha256_prefix":"9d5f72743fd7ee70","entry":"max_test","repo":"JeremyCJM/CCST","repo_kind":"official","path":"read_log.py","file_url":"https://github.com/JeremyCJM/CCST/blob/HEAD/read_log.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9d5f72743fd7ee70"}},{"code_sha256_prefix":"3c6e4c6321f0a002","entry":"train_fedprox","repo":"JeremyCJM/CCST","repo_kind":"official","path":"federated/fed_run.py","file_url":"https://github.com/JeremyCJM/CCST/blob/HEAD/federated/fed_run.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3c6e4c6321f0a002"}},{"code_sha256_prefix":"660e83a7dc5113e8","entry":"train_meta","repo":"JeremyCJM/CCST","repo_kind":"official","path":"federated/fed_run.py","file_url":"https://github.com/JeremyCJM/CCST/blob/HEAD/federated/fed_run.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"660e83a7dc5113e8"}},{"code_sha256_prefix":"69f7b99ec0fda254","entry":"update","repo":"JeremyCJM/CCST","repo_kind":"official","path":"utils/rsc_utils_densenet.py","file_url":"https://github.com/JeremyCJM/CCST/blob/HEAD/utils/rsc_utils_densenet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"69f7b99ec0fda254"}},{"code_sha256_prefix":"7114e27587038e77","entry":"validate","repo":"JeremyCJM/CCST","repo_kind":"official","path":"reconstruct_img/imagenet_reconstruct.py","file_url":"https://github.com/JeremyCJM/CCST/blob/HEAD/reconstruct_img/imagenet_reconstruct.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7114e27587038e77"}},{"code_sha256_prefix":"a5faead5c0894c58","entry":"validate","repo":"JeremyCJM/CCST","repo_kind":"official","path":"reconstruct_img/imagenet_reconstruct_lpips.py","file_url":"https://github.com/JeremyCJM/CCST/blob/HEAD/reconstruct_img/imagenet_reconstruct_lpips.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"CC0-1.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a5faead5c0894c58"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}