{"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/cluster-contrast-for-unsupervised-person-re","title":"Cluster Contrast for Unsupervised Person Re-Identification","arxiv_id":"2103.11568","date":"2021-03-22","proceeding":null,"authors":["Zuozhuo Dai","Guangyuan Wang","Weihao Yuan","Xiaoli Liu","Siyu Zhu","Ping Tan"],"abstract":"State-of-the-art unsupervised re-ID methods train the neural networks using a memory-based non-parametric softmax loss. Instance feature vectors stored in memory are assigned pseudo-labels by clustering and updated at instance level. However, the varying cluster sizes leads to inconsistency in the updating progress of each cluster. To solve this problem, we present Cluster Contrast which stores feature vectors and computes contrast loss at the cluster level. Our approach employs a unique cluster representation to describe each cluster, resulting in a cluster-level memory dictionary. In this way, the consistency of clustering can be effectively maintained throughout the pipline and the GPU memory consumption can be significantly reduced. Thus, our method can solve the problem of cluster inconsistency and be applicable to larger data sets. In addition, we adopt different clustering algorithms to demonstrate the robustness and generalization of our framework. The application of Cluster Contrast to a standard unsupervised re-ID pipeline achieves considerable improvements of 9.9%, 8.3%, 12.1% compared to state-of-the-art purely unsupervised re-ID methods and 5.5%, 4.8%, 4.4% mAP compared to the state-of-the-art unsupervised domain adaptation re-ID methods on the Market, Duke, and MSMT17 datasets. Code is available at https://github.com/alibaba/cluster-contrast.","url_abs":"https://arxiv.org/abs/2103.11568v4","url_pdf":"https://arxiv.org/pdf/2103.11568v4.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":"cluster-contrast-for-unsupervised-person-re","repo_url":"https://github.com/alibaba/cluster-contrast","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"cluster-contrast-for-unsupervised-person-re","repo_url":"https://github.com/wangguangyuan/ClusterContrast","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"cluster-contrast-for-unsupervised-person-re","repo_url":"https://github.com/2020132075/conmae","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"cluster-contrast-for-unsupervised-person-re","repo_url":"https://github.com/alibaba/cluster-contrast-reid","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"clustering","task_name":"Clustering"},{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"},{"task_slug":null,"task_name":"GPU"},{"task_slug":"person-re-identification","task_name":"Person Re-Identification"},{"task_slug":"unsupervised-domain-adaptation","task_name":"Unsupervised Domain Adaptation"},{"task_slug":"unsupervised-person-re-identification","task_name":"Unsupervised Person Re-Identification"},{"task_slug":"vehicle-re-identification","task_name":"Vehicle Re-Identification"}],"methods":[{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/unsupervised-person-re-identification-on-12","task":"Unsupervised Person Re-Identification","dataset":"MSMT17","model":"Cluster Contrast","rank_in_archive_order":10,"of":12,"metrics":{"Rank-1":"62","Rank-10":"76.7","Rank-5":"71.8","mAP":"33"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-person-re-identification-on-4","task":"Unsupervised Person Re-Identification","dataset":"Market-1501","model":"Cluster Contrast","rank_in_archive_order":10,"of":23,"metrics":{"MAP":"83","Rank-1":"92.9","Rank-10":"98","Rank-5":"97.2"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-person-re-identification-on-14","task":"Unsupervised Person Re-Identification","dataset":"PersonX","model":"Cluster Contrast","rank_in_archive_order":1,"of":1,"metrics":{"Rank-1":"94.4","Rank-5":"99.3","mAP":"84.7"},"uses_additional_data":false},{"leaderboard":"/sota/vehicle-re-identification-on-veri-776","task":"Vehicle Re-Identification","dataset":"VeRi-776","model":"Cluster Contrast","rank_in_archive_order":17,"of":17,"metrics":{"Rank-10":"92.8","Rank1":"86.2","Rank5":"90.5","mAP":"40.8"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2103.11568","atlas_url":"https://app.syntology.ai/?focus=2103.11568","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.11568"}},"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/alibaba/cluster-contrast","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/alibaba/cluster-contrast-reid","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/wangguangyuan/ClusterContrast","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/2020132075/conmae","reach":{"status":"ok"}}],"summary":{"ran":5,"ran_draft_wrong":2,"ran_honours":1,"unverified":6},"by_repo_kind":{"official":{"samples":12,"ran":6,"repositories":1},"listed":{"samples":2,"ran":2,"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":"10ba7332fd4a54eb","entry":"cm","repo":"alibaba/cluster-contrast","repo_kind":"official","path":"clustercontrast/models/cm.py","file_url":"https://github.com/alibaba/cluster-contrast/blob/HEAD/clustercontrast/models/cm.py","link_basis":"harvester_set","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":"10ba7332fd4a54eb"}},{"code_sha256_prefix":"fac5364e2f53c6db","entry":"conv3x3","repo":"alibaba/cluster-contrast","repo_kind":"official","path":"clustercontrast/models/resnet_ibn_a.py","file_url":"https://github.com/alibaba/cluster-contrast/blob/HEAD/clustercontrast/models/resnet_ibn_a.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fac5364e2f53c6db"}},{"code_sha256_prefix":"aa57815e101e6fa5","entry":"intdict2ndarray","repo":"alibaba/cluster-contrast-reid","repo_kind":"listed","path":"clustercontrast/utils/infomap_cluster.py","file_url":"https://github.com/alibaba/cluster-contrast-reid/blob/HEAD/clustercontrast/utils/infomap_cluster.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"aa57815e101e6fa5"}},{"code_sha256_prefix":"34b0da41b1dd21f0","entry":"l2norm","repo":"alibaba/cluster-contrast","repo_kind":"official","path":"clustercontrast/utils/infomap_cluster.py","file_url":"https://github.com/alibaba/cluster-contrast/blob/HEAD/clustercontrast/utils/infomap_cluster.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":"34b0da41b1dd21f0"}},{"code_sha256_prefix":"7e822f939fbe184f","entry":"process_dir","repo":"alibaba/cluster-contrast","repo_kind":"official","path":"clustercontrast/datasets/dukemtmcreid.py","file_url":"https://github.com/alibaba/cluster-contrast/blob/HEAD/clustercontrast/datasets/dukemtmcreid.py","link_basis":"harvester_set","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":"7e822f939fbe184f"}},{"code_sha256_prefix":"b91ea1291400178a","entry":"read_meta","repo":"alibaba/cluster-contrast-reid","repo_kind":"listed","path":"clustercontrast/utils/infomap_cluster.py","file_url":"https://github.com/alibaba/cluster-contrast-reid/blob/HEAD/clustercontrast/utils/infomap_cluster.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b91ea1291400178a"}},{"code_sha256_prefix":"c7f5d45660e6ec13","entry":"resnet101_ibn_a","repo":"alibaba/cluster-contrast","repo_kind":"official","path":"clustercontrast/models/resnet_ibn_a.py","file_url":"https://github.com/alibaba/cluster-contrast/blob/HEAD/clustercontrast/models/resnet_ibn_a.py","link_basis":"harvester_set","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":"c7f5d45660e6ec13"}},{"code_sha256_prefix":"93cbdbc352d644d9","entry":"resnet50_ibn_a","repo":"alibaba/cluster-contrast","repo_kind":"official","path":"clustercontrast/models/resnet_ibn_a.py","file_url":"https://github.com/alibaba/cluster-contrast/blob/HEAD/clustercontrast/models/resnet_ibn_a.py","link_basis":"harvester_set","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":"93cbdbc352d644d9"}},{"code_sha256_prefix":"5c5d2f6f3c01ba6c","entry":"build_pooling_layer","repo":"alibaba/cluster-contrast","repo_kind":"official","path":"clustercontrast/models/pooling.py","file_url":"https://github.com/alibaba/cluster-contrast/blob/HEAD/clustercontrast/models/pooling.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5c5d2f6f3c01ba6c"}},{"code_sha256_prefix":"f2fd62d39c9658d0","entry":"cm_hard","repo":"alibaba/cluster-contrast","repo_kind":"official","path":"clustercontrast/models/cm.py","file_url":"https://github.com/alibaba/cluster-contrast/blob/HEAD/clustercontrast/models/cm.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f2fd62d39c9658d0"}},{"code_sha256_prefix":"fbb5efeed7ebfd09","entry":"extract_cnn_feature","repo":"alibaba/cluster-contrast","repo_kind":"official","path":"clustercontrast/evaluators.py","file_url":"https://github.com/alibaba/cluster-contrast/blob/HEAD/clustercontrast/evaluators.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fbb5efeed7ebfd09"}},{"code_sha256_prefix":"962810c012a60817","entry":"extract_features","repo":"alibaba/cluster-contrast","repo_kind":"official","path":"clustercontrast/evaluators.py","file_url":"https://github.com/alibaba/cluster-contrast/blob/HEAD/clustercontrast/evaluators.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"962810c012a60817"}},{"code_sha256_prefix":"4560dc753fea5981","entry":"label_generator_kmeans","repo":"alibaba/cluster-contrast","repo_kind":"official","path":"clustercontrast/models/kmeans.py","file_url":"https://github.com/alibaba/cluster-contrast/blob/HEAD/clustercontrast/models/kmeans.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4560dc753fea5981"}},{"code_sha256_prefix":"b6d5887f94b1db25","entry":"pairwise_distance","repo":"alibaba/cluster-contrast","repo_kind":"official","path":"clustercontrast/evaluators.py","file_url":"https://github.com/alibaba/cluster-contrast/blob/HEAD/clustercontrast/evaluators.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b6d5887f94b1db25"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}