README.md
November 1, 2023 ยท View on GitHub
ReST ๐ (ICCV2023)
ReST: A Reconfigurable Spatial-Temporal Graph Model for Multi-Camera Multi-Object Tracking
Cheng-Che Cheng1ย Min-Xuan Qiu1ย Chen-Kuo Chiang2ย Shang-Hong Lai1ย
1National Tsing Hua University, Taiwan ย 2National Chung Cheng University, Taiwan
News
- 2023.8 Code release
- 2023.7 Our paper is accepted to ICCV 2023!
Introduction
ReST, a novel reconfigurable graph model, that first associates all detected objects across cameras spatially before reconfiguring it into a temporal graph for Temporal Association. This two-stage association approach enables us to extract robust spatial and temporal-aware features and address the problem with fragmented tracklets. Furthermore, our model is designed for online tracking, making it suitable for real-world applications. Experimental results show that the proposed graph model is able to extract more discriminating features for object tracking, and our model achieves state-of-the-art performance on several public datasets.

Requirements
Installation
-
Clone the project and create virtual environment
git clone https://github.com/chengche6230/ReST.git conda create --name ReST python=3.8 conda activate ReST -
Install (follow instructions):
- torchreid
- DGL (also check PyTorch/CUDA compatibility table below)
- warmup_scheduler
- py-motmetrics
- Reference commands:
# torchreid git clone https://github.com/KaiyangZhou/deep-person-reid.git cd deep-person-reid/ pip install -r requirements.txt conda install pytorch torchvision cudatoolkit=9.0 -c pytorch python setup.py develop # other packages (in /ReST) conda install -c dglteam/label/cu117 dgl pip install git+https://github.com/ildoonet/pytorch-gradual-warmup-lr.git pip install motmetrics
-
Install other requirements
pip install -r requirements.txt -
Download pre-trained ReID model
Datasets
- Place datasets in
./datasets/as:
./datasets/
โโโ CAMPUS/
โ โโโ Garden1/
โ โ โโโ view-{}.txt
โ โโโ Garden2/
โ โ โโโ view-HC{}.txt
โ โโโ Parkinglot/
โ โ โโโ view-GL{}.txt
โ โโโ metainfo.json
โโโ PETS09/
โ โโโ S2L1/
โ โ โโโ View_00{}.txt
โ โโโ metainfo.json
โโโ Wildtrack/
โ โโโ sequence1/
โ โ โโโ src/
โ โ โโโ annotations_positions/
โ โ โโโ Image_subsets/
โ โโโ metainfo.json
โโโ {DATASET_NAME}/ # for customized dataset
โโโ {SEQUENCE_NAME}/
โ โโโ {ANNOTATION_FILE}.txt
โโโ metainfo.json
- Prepare all
metainfo.jsonfiles (e.g. frames, file pattern, homography) - Run for each dataset:
Checkpython ./src/datasets/preprocess.py --dataset {DATASET_NAME}./datasets/{DATASET_NAME}/{SEQUENCE_NAME}/outputif there is anything missing:/output/ โโโ gt_MOT/ # for motmetrics โ โโโ c{CAM}.txt โโโ gt_train.json โโโ gt_eval.json โโโ gt_test.json โโโ {DETECTOR}_test.json # if you want to use other detector, e.g. yolox_test.json - Prepare all image frames as
{FRAME}_{CAM}.jpgin/output/frames.
Model Zoo
Download trained weights if you need, and modify TEST.CKPT_FILE_SG & TEST.CKPT_FILE_TG in ./configs/{DATASET_NAME}.yml.
| Dataset | Spatial Graph | Temporal Graph |
|---|---|---|
| Wildtrack | sequence1 | sequence1 |
| CAMPUS | Garden1 Garden2 Parkinglot | Garden1 Garden2 Parkinglot |
| PETS-09 | S2L1 | S2L1 |
Training
To train our model, basically run the command:
python main.py --config_file ./configs/{DATASET_NAME}.yml
In {DATASET_NAME}.yml:
- Modify
MODEL.MODEto 'train' - Modify
SOLVER.TYPEto train specific graphs. - Make sure all settings are suitable for your device, e.g.
DEVICE_ID,BATCH_SIZE. - You can also directly append attributes after the command for convenience, e.g.:
python main.py --config_file ./configs/Wildtrack.yml MODEL.DEVICE_ID "('1')" SOLVER.TYPE "SG"
Testing
python main.py --config_file ./configs/{DATASET_NAME}.yml
In {DATASET_NAME}.yml:
- Modify
MODEL.MODEto 'test'. - Select what input detection you want, and modify
MODEL.DETECTION.- You need to prepare
{DETECTOR}_test.jsonin./datasets/{DATASET_NAME}/{SEQUENCE_NAME}/output/by your own first.
- You need to prepare
- Make sure all settings in
TESTare configured.
DEMO
Wildtrack
Acknowledgement
Citation
If you find this code useful for your research, please cite our paper
@InProceedings{Cheng_2023_ICCV,
author = {Cheng, Cheng-Che and Qiu, Min-Xuan and Chiang, Chen-Kuo and Lai, Shang-Hong},
title = {ReST: A Reconfigurable Spatial-Temporal Graph Model for Multi-Camera Multi-Object Tracking},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2023},
pages = {10051-10060}
}