/AIC21-MTMC

🏆The 1st place solution of track3 (City-Scale Multi-Camera Vehicle Tracking) in the NVIDIA AI City Challenge at CVPR 2021 Workshop.

Primary LanguagePythonMIT LicenseMIT

Requirements

Python 3.8 or later with all requirements.txt dependencies installed, including torch>=1.7. To install run:

$ pip install -r requirements.txt

Data Preparation

If you want to reproduce our results on AI City Challenge, please download the datasets from: (https://www.aicitychallenge.org/) and put it under the folder datasets. Make sure the data structure is like:

AIC21-MTMC google drive link

  • datasets
    • AIC21_Track3_MTMC_Tracking
      • unzip AIC21_Track3_MTMC_Tracking.zip
    • detect_provided (Including detection and corresponding Re-ID features)
  • detector
    • yolov5
  • reid
    • reid_model (Pre-trained reid model on Track 2)
      • resnet101_ibn_a_2.pth
      • resnet101_ibn_a_3.pth
      • resnext101_ibn_a_2.pth

Reproduce frome detect_provided

If you just want reproduce our results, you can directly download detect_provided:

cd AIC21-MTMC
mkdir datasets
cd datasets

Then put detect_provided folder under this folder and modify yml config/aic_mcmt.yml:

CHALLENGE_DATA_DIR: '/home/xxx/AIC21-MTMC/datasets/AIC21_Track3_MTMC_Tracking/'
DET_SOURCE_DIR: '/home/xxx/AIC21-MTMC/datasets/detection/images/test/S06/'
DATA_DIR: '/home/xxx/AIC21-MTMC/datasets/detect_provided'
REID_SIZE_TEST: [384, 384]
ROI_DIR: '/home/xxx/AIC21-MTMC/datasets/AIC21_Track3_MTMC_Tracking/test/S06/'
CID_BIAS_DIR: '/home/xxx/AIC21-MTMC/datasets/AIC21_Track3_MTMC_Tracking/cam_timestamp/'
USE_RERANK: True
USE_FF: True
SCORE_THR: 0.1
MCMT_OUTPUT_TXT: 'track3.txt'

Then run:

bash ./run_mcmt.sh

The final results will locate at path ./reid/reid-matching/tools/track3.txt

Reproduce on all pipeline

If you just want reproduce our results on all pipeline, you have to download:

detector/yolov5/yolov5x.pt
reid/reid_model/resnet101_ibn_a_2.pth
reid/reid_model/resnet101_ibn_a_3.pth
reid/reid_model/resnext101_ibn_a_2.pth

You can refer to Track2 to retrain the reid model.

Then modify yml:

config/aic_all.yml
config/aic_reid1.yml
config/aic_reid2.yml
config/aic_reid3.yml

Then run:

bash ./run_all.sh

The final results will locate at path ./reid/reid-matching/tools/track3.txt

Citation

If you find our work useful in your research, please consider citing:

@inproceedings{liu2021city,
  title={City-scale multi-camera vehicle tracking guided by crossroad zones},
  author={Liu, Chong and Zhang, Yuqi and Luo, Hao and Tang, Jiasheng and Chen, Weihua and Xu, Xianzhe and Wang, Fan and Li, Hao and Shen, Yi-Dong},
  booktitle={Proc. CVPR Workshops},
  year={2021}
}