- Use an one-stage detector (YOLOv5) and three ReID models for vehicle detection and feature extraction.
- Use motion--based ByteTrack to against the similar appearence problem. Meanwhile, improve ByteTrack with some occlusion handling strategies.
- Use
Anomaly Masked Association
for mutli-cam tracklets association. The anomaly tracklets are detected based on vehicle motional information, time consumption bewtween two adjacent cameras, and so on. - Post-processing
Python 3.8 or later with dependencies listed in requirements.txt
. Run the below command for install dependencies:
pip install -r requirements.txt
-
Dataset
If you want to run the whole pipeline of our solution,please download the datasets from AI City Challenge 2022. When you download the dataset successfully, move the dataset to./datasets
. Make sure the directory tree like the below structure:-- ROOT | -- datasets | -- AIC22_Track1_MTMC_Tracking | -- test | -- ...
-
Intermidiate Results
Meanwhile, we provide the intermidiate results for reproducing rapidly, which includeDetection Boxes
andReID features
, you can download them from Google Drive or Baidu Drive (提取码:4dhe).Unzip the downloaded file, move the unzipped directory to
./datasets
. Make sure the directory tree like the below structure:-- ROOT | -- datasets | -- AIC22_Track1_MTMC_Tracking | -- test | -- ... | -- test_reproduce | -- detect_reid1 | -- detect_reid2 | -- detect_reid3 | -- detect_result | -- feature_merge
-
Models
In the solution, we use YOLOv5 for vehicle detection, and use three ReID models provided from the AI City Challenge 2021 winner. You can download all models form Google Drive or Baidu Drive (提取码:pfs6).Put the models to
./models
, and make sure the dicectory tree like the below structure:-- ROOT | -- models | -- reid | -- resnext101_ibn_a_2.pth | -- resnet101_ibn_a_3.pth | -- resnet101_ibn_a_2.pth | -- detector | -- yolov5 | -- yolov5x.pt
Open the configurations aic_all.yml
, aic_reidx.yml (x=1,2,3)
and aic_vis_mcmt.yml
, then set MAIN_DIR
as the project root path.
MAIN_DIR: ${PROJECT_ROOT}
-
Run the complete pipeline
./run_all.sh
-
Rapid Reproducing
Make sure the intermidate results downloaded, and run./run_mtmc.sh