This is the official repository for the winning submission to the 8th NVIDIA AI City Challenge (2024) Track 1: Multi-Camera People Tracking.
Note: Submissions that employ online tracking will be granted a 10% bonus to their HOTA scores.
The official dataset can be downloaded from the AI City Challenge website. You need to fill out the dataset request form to obtain the password to download them.
The dataset should be placed in the dataset
folder as follows:
dataset
├── train
├── val
└── test
conda create -n aic24 python=3.9 pytorch torchvision pytorch-cuda=11.8 -c pytorch -c nvidia
conda activate aic24
pip install -r requirements.txt
pip install -e track/aic_cpp
pip install openmim
mim install "mmengine>=0.6.0"
mim install "mmcv==2.0.1"
mim install "mmpose>=1.1.0"
pip3 install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
If you want to accelerate the speed of object detection, you may install torch2trt. See torch2trt.
Download our sampled dataset and unzip it under fast-reid
folder.
script/reid_train.sh
Download the pretrained weights from ByteTrack Yolox, LUPerson Resnet and Hrnet. Put all these pretrained weights in the ckpt_weight
folder.
You can choose between the accelerated method detailed in step 2.1, which utilizes torch2trt, or the standard method described in step 2.2 if you prefer not to use it.
python ./detection/utils/trt.py
script/fast_detection.sh
script/standard_detection.sh
Note: Based on the actual hardware conditions, you can modify the values of gpu_nums_per_iter
, cpu_nums_per_iter
, and scene_per_iter
in the shell script to achieve faster speeds or lower resource usage. In extreme cases, setting all three to 1 can accommodate the minimum hardware requirements. The same considerations regarding hardware configuration adjustments apply to the following scripts.
script/pose_estimation.sh
Download the weight from ReID model. Put this finetuned weight in the ckpt_weight
folder.
script/reid_infer.sh
script/run_track.sh
python3 track/generate_submission.py
The final result is located in result/track.txt
. You can compress it and upload it to the AIC24 evaluation system.
We appreciate the following github repos a lot for their valuable code base or datasets:
https://github.com/ifzhang/ByteTrack