SpikeTrack

April 2, 2026 · View on GitHub

The official implementation for the CVPR 2026 paper SpikeTrack: A Spike-driven Framework for Efficient Visual Tracking.

[Models(GoogleDrive)] [Models(HuggingFace)] [Raw Results] [Training logs] [SFR EXCEL]

Install the environment

conda create -n spiketrack python=3.12
conda activate spiketrack
bash install.sh

Set project paths

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

Data Preparation

Put the tracking datasets in ./data. It should look like this:

${PROJECT_ROOT}
 -- data
     -- lasot
         |-- airplane
         |-- basketball
         |-- bear
         ...
     -- got10k
         |-- test
         |-- train
         |-- val
     -- coco
         |-- annotations
         |-- images
     -- trackingnet
         |-- TRAIN_0
         |-- TRAIN_1
         ...
         |-- TRAIN_11
         |-- TEST
     -- .......    

Training

Download pre-trained backbone SDTV3 (5.1M for spiketrack-small / 19M for spiketrack-base) and put it under $PROJECT_ROOT$/pretrained_models .

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python tracking/train.py --script spiketrack --config spiketrack_b256_t1 --save_dir . --mode multiple --nproc_per_node 8

Replace --config with the desired model config under experiments/spiketrack.

Evaluation

Download the model weights from Google Drive

Put the downloaded weights on $PROJECT_ROOT$/ckpt

Change the corresponding values of lib/test/evaluation/local.py to the actual benchmark saving paths

Some testing examples:

  • LaSOT or other off-line evaluated benchmarks (modify --dataset correspondingly)
python tracking/test.py spiketrack spiketrack_b256_t3 --dataset lasot --threads 16 --num_gpus 4 --checkpoint_path ./ckpt/spiketrack_b256_t3.pth.tar  --inference_mode True
python tracking/analysis_results.py # need to modify tracker configs and names
  • GOT10K-test (online-server for evaluation)
python tracking/test.py spiketrack spiketrack_b256_t3 --dataset got10k_test --threads 16 --num_gpus 4 --checkpoint_path ./ckpt/spiketrack_b256_t3.pth.tar  --inference_mode True
python lib/test/utils/transform_got10k.py --tracker_name spiketrack --cfg_name spiketrack_b256_t3
  • TrackingNet (online-server for evaluation)
python tracking/test.py spiketrack spiketrack_b256_t3 --dataset trackingnet --threads 16 --num_gpus 4 --checkpoint_path ./ckpt/spiketrack_b256_t3.pth.tar  --inference_mode True
python lib/test/utils/transform_trackingnet.py --tracker_name spiketrack --cfg_name spiketrack_b256_t3

Video Demo

python tracking/run_video_demo.py spiketrack spiketrack_b256_t1  --ckpt_path ./ckpt/spiketrack_b256_t1.pth.tar  

Draw a box for the object you want to track, and then press the space bar.

How to calculate Spike Firing Rate ?

for example get the avg SFR on GOT-10K:

STEP 1:

python tracking/test.py spiketrack spiketrack_b256_t3 --dataset got10k_test --threads 16 --num_gpus 4 --checkpoint_path ./ckpt/spiketrack_b256_t3.pth.tar  --inference_mode True --save_sfr True

you will get the avg SFR (json format) of each sequence in ./tracking/spiketrack_b256_t3/search and ./tracking/spiketrack_b256_t3/template.

STEP 2:

python tracking/get_avg_sfr.py # need to modify folder address of the JSON file

this script will calculate the average SFR of all JSON files in the folder, so you can get the average SFR of the got10k_test set.

note:if you modify the quantization limits in the neuron (the default value in this work is [0, 4]), then you need to modify the hook function for SFR.

Acknowledgments

  • Thanks for the SeqTrack and PyTracking library, which helps us to quickly implement our ideas.

Citation

If our work is useful for your research, please consider citing:

@misc{zhang2026spike,
      title={SpikeTrack: A Spike-driven Framework for Efficient Visual Tracking}, 
      author={Qiuyang Zhang and Jiujun Cheng and Qichao Mao and Cong Liu and Yu Fang and Yuhong Li and Mengying Ge and Shangce Gao},
      year={2026},
      eprint={2602.23963},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2602.23963}, 
}

Contact

If you have any question, feel free to email qyzhang@tongji.edu.cn. ^_^