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.yamlpairwise.yaml)
  • train_config.yaml — exact training config of the run
  • metrics.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, 64pm subsample); edit cfg.DATASET.ROOT in the scripts to match your copy of the data.
  • The scripts write tracklet files under scripts/eval_outputs/ and call submodules/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.
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for deepsworld/mctr-mmptrack