/AIC22-MCVT

The 2nd place solution of track1 (City-Scale Multi-Camera Vehicle Tracking) in the NVIDIA AI City Challenge at CVPR 2022 Workshop.

Primary LanguageC++MIT LicenseMIT

Multi-Camera Vehicle Tracking System for AI City Challenge 2022

The 2nd place solution of track1 (City-Scale Multi-Camera Vehicle Tracking) in the NVIDIA AI City Challenge from team 59 (BOE Technology Group Co., Ltd)

Environment

  • OS: Ubuntu 20.04
  • GPU Compute Capability: 7.5
  • CUDA: 11.4.2
  • Python: 3.8.10
  • PyTorch: 1.10.0a0+3fd9dcf
  • OpenCV: 4.5.3 (Compilation from the source code opencv-4.5.3, opencv_contrib-4.5.3)
  • Ohter dependencies are in the requirements.txt

You can run the command below to get our docker image that built based on the pytorch:21.09-py3 from NVIDIA NGC.

docker pull wangzhen95/deeplearning:v1.3

Data Preparation

Make sure the data structure is like:

├── AIC22-MTMC
    ├── datasets
    │   └── AIC22_Track1_MTMC_Tracking
    ├── detector
    |   └── yolov5_2022
    |       └── weights
    |           └── yolov5x6.pt
    └── reid
        └── reid_model
            ├── resnet101_ibn_a_2.pth
            ├── resnet101_ibn_a_3.pth
            └── resnext101_ibn_a_2.pth

Running the code

  • Modify absolute paths in config/aic_all.yml, config/aic_reid1.yml, config/aic_reid2.yml, config/aic_reid3.yml:
CHALLENGE_DATA_DIR: '/xxx/AIC22-MCVT/datasets/AIC22_Track1_MTMC_Tracking/'
DET_SOURCE_DIR: '/xxx/AIC22-MCVT/datasets/algorithm_results/detection/images/test/S06/'
DATA_DIR: '/xxx/AIC22-MCVT/datasets/algorithm_results/detect_merge/'
REID_SIZE_TEST: [384, 384]    # 384, 256
ROI_DIR: '/xxx/AIC22-MCVT/datasets/AIC22_Track1_MTMC_Tracking/test/S06/'
CID_BIAS_DIR: '/xxx/AIC22-MCVT/datasets/AIC22_Track1_MTMC_Tracking/cam_timestamp/'
USE_RERANK: True
USE_FF: True
SCORE_THR: 0.1
MCMT_OUTPUT_TXT: 'track1.txt'
  • Run the docker image:
docker run -it --gpus=all --ipc=host -v/xxx/AIC22-MCVT:/xxx/AIC22-MCVT -w /xxx/AIC22-MCVT wangzhen95/deeplearning:v1.3 /bin/bash
  • Then run:
bash ./run_all.sh

The final results will locate at path ./matching/track1.txt

Reproduce based on detection and Re-ID results

If you want rapidly reproduce our results, you can directly download algorithm_result from our google drive.

  • Then put it in AIC22-MCVT/datasets and modify absolute paths in config/aic_all.yml

  • Run bash ./run_mcvt.sh

The final results will locate at path ./matching/track1.txt

Citation

@InProceedings{Li_2022_CVPR,
    author    = {Li, Fei and Wang, Zhen and Nie, Ding and Zhang, Shiyi and Jiang, Xingqun and Zhao, Xingxing and Hu, Peng},
    title     = {Multi-Camera Vehicle Tracking System for AI City Challenge 2022},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
    month     = {June},
    year      = {2022},
    pages     = {3265-3273}
}