Papers › Mutual Mean-Teaching: Pseudo Label Refinery for Unsupervised Domain Adaptation on...

Mutual Mean-Teaching: Pseudo Label Refinery for Unsupervised Domain Adaptation on Person Re-identification

6 Jan 2020ICLR 2020 1arXiv:2001.01526archive 2025-07-28

Yixiao Ge, Dapeng Chen, Hongsheng Li

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.

PaperPDFConference PDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2001.01526")

Code

Syntology Ran 8 of 8 code samples harvested from 2 repositories linked to this paper; 0 have no recorded run. Of those that ran: 4 ran · our draft was wrong; 2 ran · fixture could not drive it; 2 ran with no contract checked.

By repository: official repository: 5 samples from 1 repository, 5 ran; community (archive-listed): 3 samples from 1 repository, 3 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

yxgeee/MMT officialmentioned in paperpytorch report
thuml/Transfer-Learning-Library mentioned on GitHubpytorch report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

8 samples harvested; 8 ran; 0 honoured the contract we drafted; 0 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

4ran · our draft was wrong
2ran · fixture could not drive it
2ran

Licence: 0 of the 8 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 2 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

SoftTripletLoss yxgeee/MMT/mmt/loss/triplet.py official repository ran MIT (permissive) · 77655601851dfb98 · report
_batch_hard yxgeee/MMT/mmt/loss/triplet.py official repository ran · our draft was wrong fingerprinted MIT (permissive) · a892681d64bca3d8 · report
cosine_dist yxgeee/mmt/mmt/loss/triplet.py official repository ran · fixture could not drive it fingerprinted MIT (permissive) · be7455cd22c595af · report
euclidean_dist yxgeee/mmt/mmt/loss/triplet.py official repository ran · fixture could not drive it fingerprinted MIT (permissive) · cea0110f146a2f16 · report
euclidean_dist yxgeee/MMT/mmt/loss/triplet.py official repository ran · our draft was wrong fingerprinted MIT (permissive) · e54804982d1e6d22 · report
SoftTripletLoss thuml/Transfer-Learning-Library/tllib/vision/models/reid/loss.py community (archive-listed) ran MIT (permissive) · 2b2f338ec8c4411b · report
hard_examples_mining thuml/Transfer-Learning-Library/tllib/vision/models/reid/loss.py community (archive-listed) ran · our draft was wrong fingerprinted MIT (permissive) · abcdc8564dc985ca · report
pairwise_euclidean_distance thuml/Transfer-Learning-Library/tllib/vision/models/reid/loss.py community (archive-listed) ran · our draft was wrong fingerprinted MIT (permissive) · a0dc12123304a97f · report

Tasks

ClusteringPerson Re-IdentificationPseudo LabelUnsupervised Domain AdaptationUnsupervised Person Re-Identification

1 archive task tag without a task page not shown.

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Unsupervised Domain Adaptation Duke to MSMT MMT mAP 23.3 #6 of 13 Archive leaderboard report
Unsupervised Domain Adaptation Duke to MSMT MMT rank-1 50.1 #6 of 13 Archive leaderboard report
Unsupervised Domain Adaptation Duke to MSMT MMT rank-10 69.8 #6 of 13 Archive leaderboard report
Unsupervised Domain Adaptation Duke to MSMT MMT rank-5 63.9 #6 of 13 Archive leaderboard report
Unsupervised Domain Adaptation Duke to Market MMT mAP 71.2 #7 of 26 Archive leaderboard report
Unsupervised Domain Adaptation Duke to Market MMT rank-1 87.7 #7 of 26 Archive leaderboard report
Unsupervised Domain Adaptation Duke to Market MMT rank-10 96.9 #7 of 26 Archive leaderboard report
Unsupervised Domain Adaptation Duke to Market MMT rank-5 94.9 #7 of 26 Archive leaderboard report
Unsupervised Domain Adaptation Market to Duke MMT mAP 65.1 #7 of 25 Archive leaderboard report
Unsupervised Domain Adaptation Market to Duke MMT rank-1 78.0 #7 of 25 Archive leaderboard report
Unsupervised Domain Adaptation Market to Duke MMT rank-10 92.5 #7 of 25 Archive leaderboard report
Unsupervised Domain Adaptation Market to Duke MMT rank-5 88.8 #7 of 25 Archive leaderboard report
Unsupervised Domain Adaptation Market to MSMT MMT mAP 22.9 #9 of 17 Archive leaderboard report
Unsupervised Domain Adaptation Market to MSMT MMT rank-1 49.2 #9 of 17 Archive leaderboard report
Unsupervised Domain Adaptation Market to MSMT MMT rank-10 68.8 #9 of 17 Archive leaderboard report
Unsupervised Domain Adaptation Market to MSMT MMT rank-5 63.1 #9 of 17 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VERI-Wild Large MMT R-1 40.2 #7 of 9 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VERI-Wild Large MMT R-10 - #7 of 9 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VERI-Wild Large MMT R-5 65.0 #7 of 9 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VERI-Wild Large MMT mAP 18.0 #7 of 9 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VERI-Wild Medium MMT R-1 47.7 #6 of 9 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VERI-Wild Medium MMT R-10 - #6 of 9 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VERI-Wild Medium MMT R-5 71.5 #6 of 9 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VERI-Wild Medium MMT mAP 23.6 #6 of 9 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VERI-Wild Small MMT R-1 55.6 #7 of 9 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VERI-Wild Small MMT R-10 - #7 of 9 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VERI-Wild Small MMT R-5 77.4 #7 of 9 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VERI-Wild Small MMT mAP 27.7 #7 of 9 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VeRi-776 MMT Rank-1 74.6 #10 of 14 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VeRi-776 MMT Rank-10 - #10 of 14 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VeRi-776 MMT Rank-5 82.6 #10 of 14 Archive leaderboard report
Unsupervised Domain Adaptation VehicleID to VeRi-776 MMT mAP 35.3 #10 of 14 Archive leaderboard report
Unsupervised Person Re-Identification DukeMTMC-reID->MSMT17 MMT-ResNet50 Top-1 (%) 50.0 #4 of 7 Archive leaderboard report
Unsupervised Person Re-Identification DukeMTMC-reID->MSMT17 MMT-ResNet50 mAP 23.5 #4 of 7 Archive leaderboard report
Unsupervised Person Re-Identification DukeMTMC-reID->Market-1501 MMT-ResNet50 Top-1 (%) 87.7 #8 of 8 Archive leaderboard report
Unsupervised Person Re-Identification DukeMTMC-reID->Market-1501 MMT-ResNet50 mAP 71.2 #8 of 8 Archive leaderboard report
Unsupervised Person Re-Identification Market-1501->DukeMTMC-reID MMT-ResNet50 Rank-1 78.0 #2 of 7 Archive leaderboard report
Unsupervised Person Re-Identification Market-1501->DukeMTMC-reID MMT-ResNet50 Rank-10 88.8 #2 of 7 Archive leaderboard report
Unsupervised Person Re-Identification Market-1501->DukeMTMC-reID MMT-ResNet50 Rank-5 92.5 #2 of 7 Archive leaderboard report
Unsupervised Person Re-Identification Market-1501->DukeMTMC-reID MMT-ResNet50 mAP 65.1 #2 of 7 Archive leaderboard report
Unsupervised Person Re-Identification Market-1501->MSMT17 MMT-ResNet50 Rank-1 49.2 #2 of 7 Archive leaderboard report
Unsupervised Person Re-Identification Market-1501->MSMT17 MMT-ResNet50 mAP 22.9 #2 of 7 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

1x1 ConvolutionAverage PoolingBatch NormalizationBottleneck Residual BlockConvolutionGlobal Average PoolingKaiming InitializationMax PoolingReLUResidual BlockResidual ConnectionTriplet Loss

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections