https://github.com/JananiKugaa/SIFTrack
https://github.com/JananiKugaa/SIFTrack
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/JananiKugaa/SIFTrack
- Owner: JananiKugaa
- License: mit
- Created: 2024-02-09T07:29:25.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-15T17:11:43.000Z (8 months ago)
- Last Synced: 2024-10-14T11:03:50.858Z (7 months ago)
- Language: Python
- Size: 1.63 MB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- Awesome-Visual-Object-Tracking - [code
README
# SIFTrack
[Selective Information Flow for Transformer Tracking](https://www.sciencedirect.com/science/article/pii/S0957417424022486)[[Models](https://drive.google.com/drive/folders/1dkHhUgew8SxncIo-fMbRTf_BZH7bTHqF?usp=sharing)][[Raw Results](https://drive.google.com/drive/folders/1HnIBMin7mnVrTmAvpkrhqo1befije315?usp=sharing)]
![]()
## 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](https://dl.fbaipublicfiles.com/mae/pretrain/mae_pretrain_vit_base.pth) and place the file into the `pretrained_models` directory under SIFTrack project path.
- Download the training datasets ( [GOT-10k](http://got-10k.aitestunion.com/downloads), [TrackingNet](https://github.com/SilvioGiancola/TrackingNet-devkit), [LaSOT](http://vision.cs.stonybrook.edu/~lasot/download.html), [COCO2017](https://cocodataset.org/#download)) and testing dataset ([UAV123](https://cemse.kaust.edu.sa/ivul/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 under `experiments/siftrack`. We use [wandb](https://github.com/wandb/client) 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](https://drive.google.com/drive/folders/1dkHhUgew8SxncIo-fMbRTf_BZH7bTHqF?usp=sharing) (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](http://got-10k.aitestunion.com/submit_instructions).
- 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](https://eval.ai/web/challenges/challenge-page/1805/overview).
- 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](https://github.com/HengLan/LaSOT_Evaluation_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
```
## Acknowledgments
* Our work is implemented using [OSTrack](https://github.com/botaoye/OSTrack). Thanks for their excellent open-source works## Citation
If our paper or code contributes to your research, please consider citing our work:```Bibtex
@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}
}
```