MCTR — Multi Camera Tracking Transformer (MMPTracking checkpoints)
Checkpoints that reproduce the MMPTrack validation results of
MCTR: Multi Camera Tracking Transformer, Alexandru Niculescu-Mizil, Deep Patel, Iain Melvin. arXiv:2408.13243 · code
MCTR is an end-to-end multi-camera multi-object tracker: a DETR-style detector per camera view, a shared set of track embeddings updated every frame, and soft probabilistic track↔detection association trained with differentiable losses. A single finetuned checkpoint per environment serves both reported variants:
- MCTR — outputs the per-view detection boxes (
scripts/trackeval_mmptrack.py) - MCTR-TB — outputs the track-head predicted boxes (
scripts/trackeval_trackbox_mmptrack.py)
Each checkpoint is finetuned on one environment (fixed number of cameras / clips), so there is one model per scene: cafe, industry, lobby, office, retail.
Contents
| Scene | Cameras | File | Size (GB) | SHA-256 (first 16) |
|---|---|---|---|---|
| cafe | 4 | cafe/mctr_cafe_epoch99.pth |
0.23 | 069d9a899211d902 |
| industry | 4 | industry/mctr_industry_epoch99.pth |
0.23 | 7f59c4e85afadad6 |
| lobby | 4 | lobby/mctr_lobby_epoch99.pth |
0.23 | 4421777c62f7c076 |
| office | 5 | office/mctr_office_epoch99.pth |
0.25 | 36db4869e9246262 |
| retail | 6 | retail/mctr_retail_epoch99.pth |
0.26 | f5ba93e1c4a5085f |
Each scene folder contains:
mctr_<scene>_epoch99.pth— the finetuned checkpoint (epoch 99 of a 100-epoch finetune of the 2-stage training protocol:pairwise_init.yaml→pairwise.yaml)train_config.yaml— exact training config of the runmetrics.json— provenance + metrics (paper reference and reproduction)
The .pth is a torch.save dict with keys cfg (yacs config of the run), state_dict
(the PAIRWISE model, already de-module.-prefixed), loss, epoch. It is loaded by
main_pairwise._build_model in the training repo with strict=True; the camera count and
clip set are fixed by the embedded config.
Usage
git clone https://github.com/necla-ml/mctr && cd mctr && make pull
mamba env create -f mcmot39 # conda env from the repo
mamba activate mcmot39 # conda activate mcmot39
# point the eval scripts at the MMPTracking dataset root you use, then:
python scripts/trackeval_mmptrack.py /path/to/mctr_cafe_epoch99.pth # MCTR
python scripts/trackeval_trackbox_mmptrack.py /path/to/mctr_cafe_epoch99.pth # MCTR-TB
Notes:
- The eval scripts hardcode the dataset root
/net/mlfs02/data/projects/shared/datasets/MMPTracking/and the MMPTracking clip layout (per-scene folders,64pmsubsample); editcfg.DATASET.ROOTin the scripts to match your copy of the data. - The scripts write tracklet files under
scripts/eval_outputs/and callsubmodules/trackeval/scripts/run_mot_challenge.py(HOTA/CLEAR/Identity, no preproc). - Inference is online, frame-by-frame, batch size 1 (
keep_prob=0.9); ~233 MB model, roughly linear cost in the number of cameras.