Papers › FairMOT: On the Fairness of Detection and Re-Identification in Multiple Object Tracking

FairMOT: On the Fairness of Detection and Re-Identification in Multiple Object Tracking

4 Apr 2020arXiv:2004.01888archive 2025-07-28

Yifu Zhang, Chunyu Wang, Xinggang Wang, Wen-Jun Zeng, Wenyu Liu

Multi-object tracking (MOT) is an important problem in computer vision which has a wide range of applications. Formulating MOT as multi-task learning of object detection and re-ID in a single network is appealing since it allows joint optimization of the two tasks and enjoys high computation efficiency. However, we find that the two tasks tend to compete with each other which need to be carefully addressed. In particular, previous works usually treat re-ID as a secondary task whose accuracy is heavily affected by the primary detection task. As a result, the network is biased to the primary detection task which is not fair to the re-ID task. To solve the problem, we present a simple yet effective approach termed as FairMOT based on the anchor-free object detection architecture CenterNet. Note that it is not a naive combination of CenterNet and re-ID. Instead, we present a bunch of detailed designs which are critical to achieve good tracking results by thorough empirical studies. The resulting approach achieves high accuracy for both detection and tracking. The approach outperforms the state-of-the-art methods by a large margin on several public datasets. The source code and pre-trained models are released at https://github.com/ifzhang/FairMOT.

PaperPDFCodeCode 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="2004.01888")

Code

Syntology Ran 8 of 53 code samples harvested from 10 repositories linked to this paper; 45 have no recorded run. Of those that ran: 2 ran · honoured contract; 3 ran · our draft was wrong; 3 ran with no contract checked.

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

33 repositories listed; official and paper-mentioned ones first.

ifzhang/FairMOT officialmentioned in papermentioned on GitHubpytorch report
15534081591/FairMOT mentioned on GitHubmindsporeApache-2.0 report
Bangbangbanana/fairmot_mindspore mentioned on GitHubmindsporeApache-2.0 report
FlorentijnD/FairMOT mentioned on GitHubpytorchMIT report
HoganZhang/FairMOT mentioned on GitHubpytorchMIT report
IMBINGO95/FairMOT mentioned on GitHubpytorchMIT report
ankitsinghsuraj/mot20 mentioned on GitHubpytorchMIT report
cds-mipt/cds-tracking mentioned on GitHubpytorchMIT report
dhu-mmct/dhu-mmct mentioned on GitHubpytorchNOASSERTION report
dingwoai/FairMOT-BDD100K mentioned on GitHubpytorchMIT report
gsan2/FairMOT mentioned on GitHubpytorchMIT report
harsh2912/people-tracking mentioned on GitHubpytorchMIT report
lilin19890401/FairMOT mentioned on GitHubpytorchMIT report
microsoft/FairMOT mentioned on GitHubpytorchMIT report
microsoft/UDA mentioned on GitHubpytorch report
nemonameless/fairmot mentioned on GitHubpytorchMIT report
nolanzzz/MTMCT mentioned on GitHubpytorchMIT report
oljikeboost/PlayerTracking mentioned on GitHubpytorch report
ydhcg-bobo/stcmot mentioned on GitHubpytorch report
zengwbz/Face-Tracking-usingFairMOT mentioned on GitHubpytorchMIT report
ZJUT-ERCISS/zjut_mindvideo mindsporeApache-2.0 report
jingcjie/FairMOT-mindspore-jupyter mindsporenot reachable when probed 2026-09-17 — repositories for recent papers often appear after camera-ready 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

53 samples harvested; 8 ran; 2 honoured the contract we drafted; 45 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.

2ran · honoured contract
3ran · our draft was wrong
3ran
45unverified

Licence: 0 of the 53 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 10 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.

compute_bin_loss FlorentijnD/FairMOT/src/lib/models/losses.py community (archive-listed) ran · our draft was wrong MIT (permissive) · 65d7a40d70c53ed9 · report
compute_res_loss FlorentijnD/FairMOT/src/lib/models/losses.py community (archive-listed) ran · our draft was wrong fingerprinted MIT (permissive) · 7df13fb9e54d592b · report
format_dets_dict2dets_list ydhcg-bobo/stcmot/src/track.py community (archive-listed) ran · honoured contract MIT (permissive) · 45c712b6ea9b312b · report
get_color harsh2912/people-tracking/src/lib/tracking_utils/visualization.py community (archive-listed) ran · honoured contract fingerprinted MIT (permissive) · 0d2550860de1d622 · report
load_func lilin19890401/FairMOT/src/gen_labels_crowd.py community (archive-listed) ran MIT (permissive) · 82e6ffbe008d3cfa · report
merge 15534081591/FairMOT/src/config.py community (archive-listed) ran · our draft was wrong Apache-2.0 (permissive) · b9e24c3e3e0e88a7 · report
merge_outputs nemonameless/fairmot/src/detect.py community (archive-listed) ran MIT (permissive) · 41ded276da5308cd · report
read_mot_results zengwbz/Face-Tracking-usingFairMOT/src/lib/tracking_utils/io.py community (archive-listed) ran MIT (permissive) · 9a73f2c41ea25d0b · report
DataParallel FlorentijnD/FairMOT/src/lib/models/data_parallel.py community (archive-listed) unverified MIT (permissive) · ddb5a5004c8da97a · report
collate_fn dingwoai/FairMOT-BDD100K/src/lib/datasets/dataset/bdd100k.py community (archive-listed) unverified MIT (permissive) · 7ca75b6abf5efc06 · report
compute_rot_loss FlorentijnD/FairMOT/src/lib/models/losses.py community (archive-listed) unverified MIT (permissive) · 8accefa95d8419ec · report
convert_cv2_img_to_pil_img nolanzzz/MTMCT/feature_extractors/abd_net_extractor.py community (archive-listed) unverified MIT (permissive) · 35609759dcd23c82 · report
data_parallel FlorentijnD/FairMOT/src/lib/models/data_parallel.py community (archive-listed) unverified MIT (permissive) · 61bf3906cbd2ee87 · report
draw_bbox nolanzzz/MTMCT/util.py community (archive-listed) unverified MIT (permissive) · 5f61628f4d5e3b95 · report
draw_bboxes nolanzzz/MTMCT/util.py community (archive-listed) unverified MIT (permissive) · 4656cb39277d4392 · report
draw_ignore_regions cds-mipt/cds-tracking/src/gen_labels_detrac.py community (archive-listed) unverified MIT (permissive) · cafc915688ec9b1e · report
float3 harsh2912/people-tracking/src/lib/tracking_utils/utils.py community (archive-listed) unverified MIT (permissive) · 71977bd2dff971d7 · report
gen_labels cds-mipt/cds-tracking/src/gen_labels_detrac.py community (archive-listed) unverified MIT (permissive) · 3093599680093220 · report
get_camera_perspective cds-mipt/cds-tracking/src/aux_functions.py community (archive-listed) unverified MIT (permissive) · 4cdcf1e0374a3a59 · report
get_dataset FlorentijnD/FairMOT/src/lib/datasets/dataset_factory.py community (archive-listed) unverified MIT (permissive) · 541ce6c4361d61d6 · report
get_eval_result 15534081591/FairMOT/sdk_eval.py community (archive-listed) unverified Apache-2.0 (permissive) · c7ba403a1a392132 · report
get_feature_pickle_folder nolanzzz/MTMCT/clustering/multi_cam_clustering.py community (archive-listed) unverified MIT (permissive) · d06a6708707d888d · report
get_feature_pickle_path nolanzzz/MTMCT/clustering/multi_cam_clustering.py community (archive-listed) unverified MIT (permissive) · 45681b2c1a5d9cfb · report
get_frame_nos_track_results nolanzzz/MTMCT/clustering/multi_cam_clustering.py community (archive-listed) unverified MIT (permissive) · 0b062374daf8eacb · report
heappop nolanzzz/MTMCT/clustering/heapq.py community (archive-listed) unverified MIT (permissive) · 861194d214853027 · report
heappushpop nolanzzz/MTMCT/clustering/heapq.py community (archive-listed) unverified MIT (permissive) · 2dd32a0f4e7523b1 · report
heapreplace nolanzzz/MTMCT/clustering/heapq.py community (archive-listed) unverified MIT (permissive) · 81179724eab889ba · report
letterbox dingwoai/FairMOT-BDD100K/src/lib/datasets/dataset/bdd100k.py community (archive-listed) unverified MIT (permissive) · 90caac012650cd20 · report
load_classes harsh2912/people-tracking/src/lib/tracking_utils/utils.py community (archive-listed) unverified MIT (permissive) · 351075718e449c42 · report
load_model FlorentijnD/FairMOT/src/lib/models/model.py community (archive-listed) unverified MIT (permissive) · 42af9659af852ebd · report
map_clusters_track_indices_to_tracks nolanzzz/MTMCT/clustering/clustering_utils.py community (archive-listed) unverified MIT (permissive) · c672ace389f767d9 · report
map_idx_to_tracks nolanzzz/MTMCT/clustering/clustering_utils.py community (archive-listed) unverified MIT (permissive) · 297139b9ee516b1d · report
merge_outputs lilin19890401/FairMOT/src/detection_demo.py community (archive-listed) unverified MIT (permissive) · 5401cf8799c8bb5b · report
mot_decode FlorentijnD/FairMOT/src/lib/models/decode.py community (archive-listed) unverified MIT (permissive) · 9cfc15fd1dbd64f3 · report
parse_cli_to_yaml 15534081591/FairMOT/src/config.py community (archive-listed) unverified Apache-2.0 (permissive) · 96d37c643b26e9d8 · report
parse_cli_to_yaml 15534081591/FairMOT/modelarts/util/config.py community (archive-listed) unverified Apache-2.0 (permissive) · 738456e1b7388e7e · report
parse_data_cfg harsh2912/people-tracking/src/lib/tracking_utils/parse_config.py community (archive-listed) unverified MIT (permissive) · 5f1e6bf7cfe64409 · report
parse_model_cfg harsh2912/people-tracking/src/lib/tracking_utils/parse_config.py community (archive-listed) unverified MIT (permissive) · fd8f3444be894f66 · report
parse_yaml 15534081591/FairMOT/src/config.py community (archive-listed) unverified Apache-2.0 (permissive) · 96a9939953d5992d · report
parse_yaml 15534081591/FairMOT/modelarts/util/config.py community (archive-listed) unverified Apache-2.0 (permissive) · e88a5b49e162d3f1 · report
put_text cds-mipt/cds-tracking/src/aux_functions.py community (archive-listed) unverified MIT (permissive) · aaa08776c6849af2 · report
random_affine dingwoai/FairMOT-BDD100K/src/lib/datasets/dataset/bdd100k.py community (archive-listed) unverified MIT (permissive) · df92561bc5f7e909 · report
read_gt_txts dingwoai/FairMOT-BDD100K/src/track_bdd.py community (archive-listed) unverified MIT (permissive) · 56a63fa6e0a2dc6a · report
read_mot_results harsh2912/people-tracking/src/lib/tracking_utils/io.py community (archive-listed) unverified MIT (permissive) · 9eb3b334fd02b5d3 · report
read_results harsh2912/people-tracking/src/lib/tracking_utils/io.py community (archive-listed) unverified MIT (permissive) · 1958a4fce355d7a6 · report
read_results zengwbz/Face-Tracking-usingFairMOT/src/lib/tracking_utils/io.py community (archive-listed) unverified MIT (permissive) · 06869f0ca6ac6c89 · report
resize_image harsh2912/people-tracking/src/lib/tracking_utils/visualization.py community (archive-listed) unverified MIT (permissive) · 15af20c349fec967 · report
select_device lilin19890401/FairMOT/src/gen_wts.py community (archive-listed) unverified MIT (permissive) · 722ec979c0e8eafd · report
softmax nolanzzz/MTMCT/util.py community (archive-listed) unverified MIT (permissive) · 66744e8b3c8d06d3 · report
tlwhs_to_tlbrs harsh2912/people-tracking/src/lib/tracking_utils/visualization.py community (archive-listed) unverified MIT (permissive) · d1b59d059858d28c · report
unzip_objs harsh2912/people-tracking/src/lib/tracking_utils/io.py community (archive-listed) unverified MIT (permissive) · 261a9c5fae0c1b9f · report
valid_heap_node nolanzzz/MTMCT/clustering/clustering_utils.py community (archive-listed) unverified MIT (permissive) · a5e9dcaf8c7d4a82 · report
xyxy2xywh harsh2912/people-tracking/src/lib/tracking_utils/utils.py community (archive-listed) unverified MIT (permissive) · a43bd5ac31eb7191 · report

Tasks

FairnessMulti-Object TrackingMulti-Task LearningMultiple Object TrackingObjectObject DetectionObject Tracking

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Multi-Object Tracking 2DMOT15 FairMOT MOTA 60.6 #1 of 2 Archive leaderboard report
Multi-Object Tracking DanceTrack FairMOT AssA 23.8 #37 of 37 Archive leaderboard report
Multi-Object Tracking DanceTrack FairMOT DetA 66.7 #37 of 37 Archive leaderboard report
Multi-Object Tracking DanceTrack FairMOT HOTA 39.7 #37 of 37 Archive leaderboard report
Multi-Object Tracking DanceTrack FairMOT IDF1 40.8 #37 of 37 Archive leaderboard report
Multi-Object Tracking DanceTrack FairMOT MOTA 82.2 #37 of 37 Archive leaderboard report
Multi-Object Tracking HiEve FairMOT MOTA 35.0 #3 of 4 Archive leaderboard report
Multi-Object Tracking MOT16 FairMOT MOTA 74.9 #5 of 24 Archive leaderboard report
Multi-Object Tracking MOT17 FairMOT IDF1 72.3 #31 of 48 Archive leaderboard report
Multi-Object Tracking MOT17 FairMOT MOTA 73.7 #31 of 48 Archive leaderboard report
Multi-Object Tracking MOT20 FairMOT IDF1 67.3 #24 of 27 Archive leaderboard report
Multi-Object Tracking MOT20 FairMOT MOTA 61.8 #24 of 27 Archive leaderboard report
Multi-Object Tracking SportsMOT FairMOT AssA 34.7 #22 of 22 Archive leaderboard report
Multi-Object Tracking SportsMOT FairMOT DetA 70.2 #22 of 22 Archive leaderboard report
Multi-Object Tracking SportsMOT FairMOT HOTA 49.3 #22 of 22 Archive leaderboard report
Multi-Object Tracking SportsMOT FairMOT IDF1 53.5 #22 of 22 Archive leaderboard report
Multi-Object Tracking SportsMOT FairMOT MOTA 86.4 #22 of 22 Archive leaderboard report
Multiple Object Tracking SportsMOT FairMOT AssA 34.7 #19 of 19 Archive leaderboard report
Multiple Object Tracking SportsMOT FairMOT DetA 70.2 #19 of 19 Archive leaderboard report
Multiple Object Tracking SportsMOT FairMOT HOTA 49.3 #19 of 19 Archive leaderboard report
Multiple Object Tracking SportsMOT FairMOT IDF1 53.5 #19 of 19 Archive leaderboard report
Multiple Object Tracking SportsMOT FairMOT MOTA 86.4 #19 of 19 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

Introduced by this paper: FairMOT

DLAFairMOT

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