{"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/mutual-mean-teaching-pseudo-label-refinery-1","title":"Mutual Mean-Teaching: Pseudo Label Refinery for Unsupervised Domain Adaptation on Person Re-identification","arxiv_id":"2001.01526","date":"2020-01-06","proceeding":"ICLR 2020 1","authors":["Yixiao Ge","Dapeng Chen","Hongsheng Li"],"abstract":"Person re-identification (re-ID) aims at identifying the same persons' images across different cameras. However, domain diversities between different datasets pose an evident challenge for adapting the re-ID model trained on one dataset to another one. State-of-the-art unsupervised domain adaptation methods for person re-ID transferred the learned knowledge from the source domain by optimizing with pseudo labels created by clustering algorithms on the target domain. Although they achieved state-of-the-art performances, the inevitable label noise caused by the clustering procedure was ignored. Such noisy pseudo labels substantially hinders the model's capability on further improving feature representations on the target domain. In order to mitigate the effects of noisy pseudo labels, we propose to softly refine the pseudo labels in the target domain by proposing an unsupervised framework, Mutual Mean-Teaching (MMT), to learn better features from the target domain via off-line refined hard pseudo labels and on-line refined soft pseudo labels in an alternative training manner. In addition, the common practice is to adopt both the classification loss and the triplet loss jointly for achieving optimal performances in person re-ID models. However, conventional triplet loss cannot work with softly refined labels. To solve this problem, a novel soft softmax-triplet loss is proposed to support learning with soft pseudo triplet labels for achieving the optimal domain adaptation performance. The proposed MMT framework achieves considerable improvements of 14.4%, 18.2%, 13.1% and 16.4% mAP on Market-to-Duke, Duke-to-Market, Market-to-MSMT and Duke-to-MSMT unsupervised domain adaptation tasks. Code is available at https://github.com/yxgeee/MMT.","url_abs":"https://arxiv.org/abs/2001.01526v2","url_pdf":"https://arxiv.org/pdf/2001.01526v2.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":"mutual-mean-teaching-pseudo-label-refinery-1","repo_url":"https://github.com/yxgeee/MMT","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"mutual-mean-teaching-pseudo-label-refinery-1","repo_url":"https://github.com/thuml/Transfer-Learning-Library","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"clustering","task_name":"Clustering"},{"task_slug":"person-re-identification","task_name":"Person Re-Identification"},{"task_slug":"pseudo-label","task_name":"Pseudo Label"},{"task_slug":null,"task_name":"Triplet"},{"task_slug":"unsupervised-domain-adaptation","task_name":"Unsupervised Domain Adaptation"},{"task_slug":"unsupervised-person-re-identification","task_name":"Unsupervised Person Re-Identification"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"average-pooling","method_name":"Average Pooling"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"bottleneck-residual-block","method_name":"Bottleneck Residual Block"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"global-average-pooling","method_name":"Global Average Pooling"},{"method_slug":"kaiming-initialization","method_name":"Kaiming Initialization"},{"method_slug":"max-pooling","method_name":"Max Pooling"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-block","method_name":"Residual Block"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"triplet-loss","method_name":"Triplet Loss"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/unsupervised-domain-adaptation-on-duke-to-1","task":"Unsupervised Domain Adaptation","dataset":"Duke to MSMT","model":"MMT","rank_in_archive_order":6,"of":13,"metrics":{"mAP":"23.3","rank-1":"50.1","rank-10":"69.8","rank-5":"63.9"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-duke-to","task":"Unsupervised Domain Adaptation","dataset":"Duke to Market","model":"MMT","rank_in_archive_order":7,"of":26,"metrics":{"mAP":"71.2","rank-1":"87.7","rank-10":"96.9","rank-5":"94.9"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-market-to","task":"Unsupervised Domain Adaptation","dataset":"Market to Duke","model":"MMT","rank_in_archive_order":7,"of":25,"metrics":{"mAP":"65.1","rank-1":"78.0","rank-10":"92.5","rank-5":"88.8"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-market-to-1","task":"Unsupervised Domain Adaptation","dataset":"Market to MSMT","model":"MMT","rank_in_archive_order":9,"of":17,"metrics":{"mAP":"22.9","rank-1":"49.2","rank-10":"68.8","rank-5":"63.1"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-vehicleid-3","task":"Unsupervised Domain Adaptation","dataset":"VehicleID to VERI-Wild Large","model":"MMT","rank_in_archive_order":7,"of":9,"metrics":{"R-1":"40.2","R-10":"-","R-5":"65.0","mAP":"18.0"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-vehicleid-2","task":"Unsupervised Domain Adaptation","dataset":"VehicleID to VERI-Wild Medium","model":"MMT","rank_in_archive_order":6,"of":9,"metrics":{"R-1":"47.7","R-10":"-","R-5":"71.5","mAP":"23.6"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-vehicleid-1","task":"Unsupervised Domain Adaptation","dataset":"VehicleID to VERI-Wild Small","model":"MMT","rank_in_archive_order":7,"of":9,"metrics":{"R-1":"55.6","R-10":"-","R-5":"77.4","mAP":"27.7"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-domain-adaptation-on-vehicleid","task":"Unsupervised Domain Adaptation","dataset":"VehicleID to VeRi-776","model":"MMT","rank_in_archive_order":10,"of":14,"metrics":{"Rank-1":"74.6","Rank-10":"-","Rank-5":"82.6","mAP":"35.3"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-person-re-identification-on-3","task":"Unsupervised Person Re-Identification","dataset":"DukeMTMC-reID->MSMT17","model":"MMT-ResNet50","rank_in_archive_order":4,"of":7,"metrics":{"Top-1 (%)":"50.0","mAP":"23.5"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-person-re-identification-on-1","task":"Unsupervised Person Re-Identification","dataset":"DukeMTMC-reID->Market-1501","model":"MMT-ResNet50","rank_in_archive_order":8,"of":8,"metrics":{"Top-1 (%)":"87.7","mAP":"71.2"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-person-re-identification-on","task":"Unsupervised Person Re-Identification","dataset":"Market-1501->DukeMTMC-reID","model":"MMT-ResNet50","rank_in_archive_order":2,"of":7,"metrics":{"Rank-1":"78.0","Rank-10":"88.8","Rank-5":"92.5","mAP":"65.1"},"uses_additional_data":false},{"leaderboard":"/sota/unsupervised-person-re-identification-on-2","task":"Unsupervised Person Re-Identification","dataset":"Market-1501->MSMT17","model":"MMT-ResNet50","rank_in_archive_order":2,"of":7,"metrics":{"Rank-1":"49.2","mAP":"22.9"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2001.01526","atlas_url":"https://app.syntology.ai/?focus=2001.01526","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2001.01526"}},"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/yxgeee/MMT","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/thuml/Transfer-Learning-Library","reach":null}],"summary":{"ran":2,"ran_draft_wrong":4,"ran_fixture":2},"by_repo_kind":{"official":{"samples":5,"ran":5,"repositories":1},"listed":{"samples":3,"ran":3,"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":"77655601851dfb98","entry":"SoftTripletLoss","repo":"yxgeee/MMT","repo_kind":"official","path":"mmt/loss/triplet.py","file_url":"https://github.com/yxgeee/MMT/blob/HEAD/mmt/loss/triplet.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":"77655601851dfb98"}},{"code_sha256_prefix":"2b2f338ec8c4411b","entry":"SoftTripletLoss","repo":"thuml/Transfer-Learning-Library","repo_kind":"listed","path":"tllib/vision/models/reid/loss.py","file_url":"https://github.com/thuml/Transfer-Learning-Library/blob/HEAD/tllib/vision/models/reid/loss.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":"2b2f338ec8c4411b"}},{"code_sha256_prefix":"a892681d64bca3d8","entry":"_batch_hard","repo":"yxgeee/MMT","repo_kind":"official","path":"mmt/loss/triplet.py","file_url":"https://github.com/yxgeee/MMT/blob/HEAD/mmt/loss/triplet.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a892681d64bca3d8"}},{"code_sha256_prefix":"be7455cd22c595af","entry":"cosine_dist","repo":"yxgeee/mmt","repo_kind":"official","path":"mmt/loss/triplet.py","file_url":"https://github.com/yxgeee/mmt/blob/HEAD/mmt/loss/triplet.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"be7455cd22c595af"}},{"code_sha256_prefix":"cea0110f146a2f16","entry":"euclidean_dist","repo":"yxgeee/mmt","repo_kind":"official","path":"mmt/loss/triplet.py","file_url":"https://github.com/yxgeee/mmt/blob/HEAD/mmt/loss/triplet.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cea0110f146a2f16"}},{"code_sha256_prefix":"e54804982d1e6d22","entry":"euclidean_dist","repo":"yxgeee/MMT","repo_kind":"official","path":"mmt/loss/triplet.py","file_url":"https://github.com/yxgeee/MMT/blob/HEAD/mmt/loss/triplet.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e54804982d1e6d22"}},{"code_sha256_prefix":"abcdc8564dc985ca","entry":"hard_examples_mining","repo":"thuml/Transfer-Learning-Library","repo_kind":"listed","path":"tllib/vision/models/reid/loss.py","file_url":"https://github.com/thuml/Transfer-Learning-Library/blob/HEAD/tllib/vision/models/reid/loss.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"abcdc8564dc985ca"}},{"code_sha256_prefix":"a0dc12123304a97f","entry":"pairwise_euclidean_distance","repo":"thuml/Transfer-Learning-Library","repo_kind":"listed","path":"tllib/vision/models/reid/loss.py","file_url":"https://github.com/thuml/Transfer-Learning-Library/blob/HEAD/tllib/vision/models/reid/loss.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a0dc12123304a97f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}