Awesome
SIFTrack
Selective Information Flow for Transformer Tracking
<p align="center"> <img width="85%" src="./Images/Methodology.png" alt="Framework"/> </p>Environment
Our experiments are conducted with Ubuntu 18.04.6 and CUDA 11.4 (python=3.8).
Preparation
-
Download the pre-trained MAE ViT-Base weights and place the file into the
pretrained_models
directory under SIFTrack project path. -
Download the training datasets ( GOT-10k, TrackingNet, LaSOT, COCO2017) and testing dataset (UAV123) to your disk.
Organized directory should look like: ``` --GOT10k/ |--test |--train |--val --TrackingNet/ |--TRAIN_0 |... |--TEST --LaSOT/ |--airplane-1 |... |--zebra-20 --COCO/ |--annotations |--images --UAV123/ |--anno |--data_seq ```
-
Run the following command to set paths for this project
python tracking/create_default_local_file.py --workspace_dir . --data_dir ./data --save_dir ./output
After running this command, you can also modify paths by editing these two files
lib/train/admin/local.py # paths about training lib/test/evaluation/local.py # paths about testing
Training
-
Multiple GPU training
python tracking/train.py --script siftrack --config vitb_256_mae_ce_all_dataset --save_dir ./output --mode multiple --nproc_per_node 4 --use_wandb 1
Replace
--config
with the desired model config underexperiments/siftrack
. We use wandb to record detailed training logs. -
Single GPU training
python tracking/train.py --script siftrack --config vitb_256_mae_ce_all_dataset --save_dir ./output --mode single --use_wandb 1
-
For GOT-10k Training, set the --config to vitb_256_mae_ce_got10k.
Evaluation
-
Make sure you have prepared the trained model or download the model weights from Google Drive (Put the downloaded weights on
$PROJECT_ROOT$/output/checkpoints/train/siftrack
)-
GOT10K-test
python tracking/test.py siftrack vitb_256_mae_ce_got10k --dataset got10k_test --threads 0 --num_gpus 1 python lib/test/utils/transform_got10k.py --tracker_name siftrack --cfg_name vitb_256_mae_ce_got10k
Then upload
$PROJECT_ROOT$/output/test/tracking_results/siftrack/vitb_256_mae_ce_got10k/got10k_submit.zip
to the online evaluation server. -
TrackingNet
python tracking/test.py siftrack vitb_256_mae_ce_all_dataset --dataset trackingnet --threads 0 --num_gpus 1 python lib/test/utils/transform_trackingnet.py --tracker_name siftrack vitb_256_mae_ce_all_dataset
Then upload
$PROJECT_ROOT$/output/test/tracking_results/siftrack/vitb_256_mae_ce_all_dataset/trackingnet_submit.zip
to the online evaluation server.
-
-
LaSOT
python tracking/test.py siftrack vitb_256_mae_ce_all_dataset --dataset lasot --threads 0 --num_gpus 1
Then evaluate the raw results using the official MATLAB toolkit.
- UAV123
python tracking/test.py siftrack vitb_256_mae_ce_all_dataset --dataset uav --threads 0 --num_gpus 1 python tracking/analysis_results.py
- UAV123
Acknowledgments
- Our work is implemented using OSTrack. Thanks for their excellent open-source works
Citation
If our paper or code contributes to your research, please consider citing our work:
@article{KUGARAJEEVAN2025125381,
title = {Selective Information Flow for Transformer Tracking},
author = {Janani Kugarajeevan and Kokul Thanikasalam and Amirthalingam Ramanan and Subha Fernando},
journal = {Expert Systems with Applications},
volume = {259},
pages = {125381},
year = {2025},
doi = {https://doi.org/10.1016/j.eswa.2024.125381},
url = {https://www.sciencedirect.com/science/article/pii/S0957417424022486}
}