{"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/surpassing-real-world-source-training-data","title":"Surpassing Real-World Source Training Data: Random 3D Characters for Generalizable Person Re-Identification","arxiv_id":"2006.12774","date":"2020-06-23","proceeding":null,"authors":["Yanan Wang","Shengcai Liao","Ling Shao"],"abstract":"Person re-identification has seen significant advancement in recent years. However, the ability of learned models to generalize to unknown target domains still remains limited. One possible reason for this is the lack of large-scale and diverse source training data, since manually labeling such a dataset is very expensive and privacy sensitive. To address this, we propose to automatically synthesize a large-scale person re-identification dataset following a set-up similar to real surveillance but with virtual environments, and then use the synthesized person images to train a generalizable person re-identification model. Specifically, we design a method to generate a large number of random UV texture maps and use them to create different 3D clothing models. Then, an automatic code is developed to randomly generate various different 3D characters with diverse clothes, races and attributes. Next, we simulate a number of different virtual environments using Unity3D, with customized camera networks similar to real surveillance systems, and import multiple 3D characters at the same time, with various movements and interactions along different paths through the camera networks. As a result, we obtain a virtual dataset, called RandPerson, with 1,801,816 person images of 8,000 identities. By training person re-identification models on these synthesized person images, we demonstrate, for the first time, that models trained on virtual data can generalize well to unseen target images, surpassing the models trained on various real-world datasets, including CUHK03, Market-1501, DukeMTMC-reID, and almost MSMT17. The RandPerson dataset is available at https://github.com/VideoObjectSearch/RandPerson.","url_abs":"https://arxiv.org/abs/2006.12774v2","url_pdf":"https://arxiv.org/pdf/2006.12774v2.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":"surpassing-real-world-source-training-data","repo_url":"https://github.com/VideoObjectSearch/RandPerson","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"domain-generalization","task_name":"Domain Generalization"},{"task_slug":"generalizable-person-re-identification","task_name":"Generalizable Person Re-identification"},{"task_slug":"large-scale-person-re-identification","task_name":"Large-Scale Person Re-Identification"},{"task_slug":"person-re-identification","task_name":"Person Re-Identification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2006.12774","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2006.12774"}},"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/VideoObjectSearch/RandPerson","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":9},"by_repo_kind":{"official":{"samples":9,"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":"0017f2853f599c52","entry":"create","repo":"VideoObjectSearch/RandPerson","repo_kind":"official","path":"trainCode/Source/ablation/resgap.py","file_url":"https://github.com/VideoObjectSearch/RandPerson/blob/HEAD/trainCode/Source/ablation/resgap.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":"0017f2853f599c52"}},{"code_sha256_prefix":"69ea352f5395ae77","entry":"extract_cnn_feature","repo":"VideoObjectSearch/RandPerson","repo_kind":"official","path":"trainCode/Source/reid/evaluators.py","file_url":"https://github.com/VideoObjectSearch/RandPerson/blob/HEAD/trainCode/Source/reid/evaluators.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":"69ea352f5395ae77"}},{"code_sha256_prefix":"eb7f07431afdd0dd","entry":"extract_features","repo":"VideoObjectSearch/RandPerson","repo_kind":"official","path":"trainCode/Source/reid/evaluators.py","file_url":"https://github.com/VideoObjectSearch/RandPerson/blob/HEAD/trainCode/Source/reid/evaluators.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":"eb7f07431afdd0dd"}},{"code_sha256_prefix":"0a142becb970cf02","entry":"hsv2rgb","repo":"VideoObjectSearch/RandPerson","repo_kind":"official","path":"generateCode/cc1_createCorlor.py","file_url":"https://github.com/VideoObjectSearch/RandPerson/blob/HEAD/generateCode/cc1_createCorlor.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":"0a142becb970cf02"}},{"code_sha256_prefix":"6b0a9fa66ce45bb1","entry":"pattern1","repo":"VideoObjectSearch/RandPerson","repo_kind":"official","path":"generateCode/cc2_createTexture.py","file_url":"https://github.com/VideoObjectSearch/RandPerson/blob/HEAD/generateCode/cc2_createTexture.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":"6b0a9fa66ce45bb1"}},{"code_sha256_prefix":"4364a43a064f6abc","entry":"pattern2","repo":"VideoObjectSearch/RandPerson","repo_kind":"official","path":"generateCode/cc2_createTexture.py","file_url":"https://github.com/VideoObjectSearch/RandPerson/blob/HEAD/generateCode/cc2_createTexture.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":"4364a43a064f6abc"}},{"code_sha256_prefix":"cf997e855309b9ea","entry":"pre_tlift","repo":"VideoObjectSearch/RandPerson","repo_kind":"official","path":"trainCode/Source/ablation/evaluators_cos.py","file_url":"https://github.com/VideoObjectSearch/RandPerson/blob/HEAD/trainCode/Source/ablation/evaluators_cos.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":"cf997e855309b9ea"}},{"code_sha256_prefix":"301798273c5a9549","entry":"readCSV2List","repo":"VideoObjectSearch/RandPerson","repo_kind":"official","path":"generateCode/generate_human_by_img/create_human_by_img.py","file_url":"https://github.com/VideoObjectSearch/RandPerson/blob/HEAD/generateCode/generate_human_by_img/create_human_by_img.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":"301798273c5a9549"}},{"code_sha256_prefix":"4dae998527dcec5d","entry":"set_seed","repo":"VideoObjectSearch/RandPerson","repo_kind":"official","path":"trainCode/Source/ablation/main_softmax_ce_loss_steplr.py","file_url":"https://github.com/VideoObjectSearch/RandPerson/blob/HEAD/trainCode/Source/ablation/main_softmax_ce_loss_steplr.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":"4dae998527dcec5d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}