{"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/self-paced-contrastive-learning-with-hybrid","title":"Self-paced Contrastive Learning with Hybrid Memory for Domain Adaptive Object Re-ID","arxiv_id":"2006.02713","date":"2020-06-04","proceeding":"NeurIPS 2020 12","authors":["Yixiao Ge","Feng Zhu","Dapeng Chen","Rui Zhao","Hongsheng Li"],"abstract":"Domain adaptive object re-ID aims to transfer the learned knowledge from the labeled source domain to the unlabeled target domain to tackle the open-class re-identification problems. Although state-of-the-art pseudo-label-based methods have achieved great success, they did not make full use of all valuable information because of the domain gap and unsatisfying clustering performance. To solve these problems, we propose a novel self-paced contrastive learning framework with hybrid memory. The hybrid memory dynamically generates source-domain class-level, target-domain cluster-level and un-clustered instance-level supervisory signals for learning feature representations. Different from the conventional contrastive learning strategy, the proposed framework jointly distinguishes source-domain classes, and target-domain clusters and un-clustered instances. Most importantly, the proposed self-paced method gradually creates more reliable clusters to refine the hybrid memory and learning targets, and is shown to be the key to our outstanding performance. Our method outperforms state-of-the-arts on multiple domain adaptation tasks of object re-ID and even boosts the performance on the source domain without any extra annotations. Our generalized version on unsupervised object re-ID surpasses state-of-the-art algorithms by considerable 16.7% and 7.9% on Market-1501 and MSMT17 benchmarks.","url_abs":"https://arxiv.org/abs/2006.02713v2","url_pdf":"https://arxiv.org/pdf/2006.02713v2.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":"self-paced-contrastive-learning-with-hybrid","repo_url":"https://github.com/yxgeee/SpCL","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"self-paced-contrastive-learning-with-hybrid","repo_url":"https://github.com/GJTNB/reading-memo","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"self-paced-contrastive-learning-with-hybrid","repo_url":"https://github.com/open-mmlab/OpenUnReID","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"clustering","task_name":"Clustering"},{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"},{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"},{"task_slug":"object","task_name":"Object"},{"task_slug":"pseudo-label","task_name":"Pseudo Label"},{"task_slug":"unsupervised-domain-adaptation","task_name":"Unsupervised Domain Adaptation"},{"task_slug":"unsupervised-person-re-identification","task_name":"Unsupervised Person Re-Identification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/unsupervised-domain-adaptation-on-duke-to-1","task":"Unsupervised Domain Adaptation","dataset":"Duke to MSMT","model":"SpCL","rank_in_archive_order":4,"of":13,"metrics":{"mAP":"26.5","rank-1":"53.1","rank-10":"70.5","rank-5":"65.8"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-duke-to","task":"Unsupervised Domain Adaptation","dataset":"Duke to Market","model":"SpCL","rank_in_archive_order":6,"of":26,"metrics":{"mAP":"76.7","rank-1":"90.3","rank-10":"97.7","rank-5":"96.2"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-market-to","task":"Unsupervised Domain Adaptation","dataset":"Market to Duke","model":"SpCL","rank_in_archive_order":6,"of":25,"metrics":{"mAP":"68.8","rank-1":"82.9","rank-10":"92.5","rank-5":"90.1"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-market-to-1","task":"Unsupervised Domain Adaptation","dataset":"Market to MSMT","model":"SpCl","rank_in_archive_order":7,"of":17,"metrics":{"mAP":"25.4","rank-1":"51.6","rank-10":"69.7","rank-5":"64.3"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-vehicleid-3","task":"Unsupervised Domain Adaptation","dataset":"VehicleID to VERI-Wild Large","model":"SPCL","rank_in_archive_order":9,"of":9,"metrics":{"R-1":"32.7","R-10":"-","R-5":"55.7","mAP":"16.6"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-vehicleid-2","task":"Unsupervised Domain Adaptation","dataset":"VehicleID to VERI-Wild Medium","model":"SPCL","rank_in_archive_order":9,"of":9,"metrics":{"R-1":"42.0","R-10":"-","R-5":"66.1","mAP":"21.5"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-vehicleid-1","task":"Unsupervised Domain Adaptation","dataset":"VehicleID to VERI-Wild Small","model":"SPCL","rank_in_archive_order":8,"of":9,"metrics":{"R-1":"48.8","R-10":"-","R-5":"72.8","mAP":"25.1"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-vehicleid","task":"Unsupervised Domain Adaptation","dataset":"VehicleID to VeRi-776","model":"SPCL","rank_in_archive_order":8,"of":14,"metrics":{"Rank-1":"80.4","Rank-5":"86.8","mAP":"38.9"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-person-re-identification-on-5","task":"Unsupervised Person Re-Identification","dataset":"DukeMTMC-reID","model":"SpCL","rank_in_archive_order":8,"of":13,"metrics":{"MAP":"65.3","Rank-1":"81.2","Rank-10":"92.2","Rank-5":"90.3"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-person-re-identification-on-4","task":"Unsupervised Person Re-Identification","dataset":"Market-1501","model":"SpCL","rank_in_archive_order":17,"of":23,"metrics":{"MAP":"72.6","Rank-1":"87.7","Rank-10":"96.9","Rank-5":"95.2"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2006.02713","atlas_url":"https://app.syntology.ai/?focus=2006.02713","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2006.02713"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/GJTNB/reading-memo","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/open-mmlab/OpenUnReID","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yxgeee/SpCL","reach":null}],"summary":{"ran":2,"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"official":{"samples":3,"ran":3,"repositories":1},"listed":{"samples":2,"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":"198515d7a87b4074","entry":"HM","repo":"yxgeee/SpCL","repo_kind":"official","path":"spcl/models/hm.py","file_url":"https://github.com/yxgeee/SpCL/blob/HEAD/spcl/models/hm.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"198515d7a87b4074"}},{"code_sha256_prefix":"94a0cbacdd9fae2e","entry":"HybridMemory","repo":"yxgeee/SpCL","repo_kind":"official","path":"spcl/models/hm.py","file_url":"https://github.com/yxgeee/SpCL/blob/HEAD/spcl/models/hm.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"94a0cbacdd9fae2e"}},{"code_sha256_prefix":"6bee8a7a58df869e","entry":"hm","repo":"yxgeee/SpCL","repo_kind":"official","path":"spcl/models/hm.py","file_url":"https://github.com/yxgeee/SpCL/blob/HEAD/spcl/models/hm.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6bee8a7a58df869e"}},{"code_sha256_prefix":"21c9ef17b1caacd1","entry":"HybridMemory","repo":"open-mmlab/OpenUnReID","repo_kind":"listed","path":"openunreid/models/losses/memory.py","file_url":"https://github.com/open-mmlab/OpenUnReID/blob/HEAD/openunreid/models/losses/memory.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":"21c9ef17b1caacd1"}},{"code_sha256_prefix":"669dde59f08f64b3","entry":"hm","repo":"open-mmlab/OpenUnReID","repo_kind":"listed","path":"openunreid/models/losses/memory.py","file_url":"https://github.com/open-mmlab/OpenUnReID/blob/HEAD/openunreid/models/losses/memory.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":"669dde59f08f64b3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}