8000 GitHub - t2kien/SUTrack: [AAAI2025] SUTrack: Towards Simple and Unified Single Object Tracking
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

t2kien/SUTrack

 
 

Repository files navigation

SUTrack

SUTrack: Towards Simple and Unified Single Object Tracking
accepted by AAAI2025
Xin Chen, Ben Kang, Wanting Geng, Jiawen Zhu, Yi Liu, Dong Wang, Huchuan Lu

This is an official pytorch implementation of the paper SUTrack: Towards Simple and Unified Single Object Tracking, a new unified framework for single- and multi-modal object tracking.

Highlights

Unified Tracking Model

In this paper, we propose a simple yet unified single object tracking (SOT) framework, dubbed SUTrack. It consolidates five SOT tasks (RGB-based, RGB-Depth, RGB-Thermal, RGB-Event, RGB-Language Tracking) into a unified and simple model trained in a single session.

SUTrack_tasks

Simple architecture

SUTrack unifies different modalities into a unified representation and trains a Transformer encoder.

SUTrack_framework

Strong performance

RGB-based Tracking:

Tracker LaSOT (AUC) GOT-10K (AO) TrackingNet (AUC)
SUTrack 75.2 81.5 87.7
LoRAT 75.1 77.5 85.6
ODTrack 74.0 78.2 86.1
ARTrackV2 73.6 79.5 86.1
SeqTrack 72.5 74.8 85.5

Multi-Modal Tracking:

Tracker LasHeR (AUC) RGBT234 (MSR) VOT-RGBD22 (EAO) DepthTrack (F-score) VisEvent (AUC) TNL2K (AUC)
SUTrack 61.9 70.8 76.6 66.4 64.0 67.9
SeqTrackv2 61.0 68.0 74.8 62.3 63.4 62.4
OneTracker 53.8 64.2 72.7 60.9 60.8 58.0
SDSTrack 53.1 62.5 72.8 61.9 59.7 -
Un-Track - 62.5 72.1 61.0 58.9 -
ViPT 52.5 61.7 72.1 59.4 59.2 -

Efficient RGB-based Tracking:

Tracker LaSOT (AUC) GOT-10K (AO) TrackingNet (AUC) CPU Speed (FPS) AGX Speed (FPS)
SUTrack-T224 69.6 72.7 82.7 23 34
HiT 64.6 64.0 80.0 33 61
MixformerV2-S 60.6 - 75.8 30 -
HCAT 59.3 65.1 76.6 45 55
FEAR 53.5 61.9 - 60 38

Install the environment

conda create -n sutrack python=3.8
conda activate sutrack
bash install.sh
  • Add the project path to environment variables
export PYTHONPATH=<absolute_path_of_SUTrack>:$PYTHONPATH

Data Preparation

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

For RGB tracking:

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

For Multi-Modal tracking (RGB-T234 and otb_lang is only for evaluation, thus can be ignored for training):

${SUTrack_ROOT}
 -- data
     -- depthtrack
         -- train
             |-- adapter02_indoor
             |-- bag03_indoor
             |-- bag04_indoor
             ...
     -- lasher
         -- trainingset
             |-- 1boygo
             |-- 1handsth
             |-- 1phoneblue
             ...
         -- testingset
             |-- 1blackteacher
             |-- 1boycoming
             |-- 1stcol4thboy
             ...
     -- RGB-T234
         |-- afterrain
         |-- aftertree
         |-- baby
         ...
     -- visevent
         -- train
             |-- 00142_tank_outdoor2
             |-- 00143_tank_outdoor2
             |-- 00144_tank_outdoor2
             ...
         -- test
             |-- 00141_tank_outdoor2
             |-- 00147_tank_outdoor2
             |-- 00197_driving_outdoor3
             ...
         -- annos
     -- tnl2k
         -- train
             |-- Arrow_Video_ZZ04_done
             |-- Assassin_video_1-Done
             |-- Assassin_video_2-Done
             ...
         -- test
             |-- advSamp_Baseball_game_002-Done
             |-- advSamp_Baseball_video_01-Done
             |-- advSamp_Baseball_video_02-Done
             ...
     -- lasot
         |-- airplane
         |-- basketball
         |-- bear
         ...
     -- otb_lang
         -- OTB_videos
             |-- Basketball
             |-- Biker
             |-- Bird1
             ...  
         -- OTB_query_train
             |-- Basketball.txt
             |-- Bolt.txt
             |-- Boy.txt
             ...  
         -- OTB_query_test
             |-- Biker.txt
             |-- Bird1.txt
             |-- Bird2.txt
             ...  

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 .

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

Train SUTrack

The pretrained backbone models can be downloaded here [Google Drive][Baidu Drive]. Put the pretrained models in ./pretrained, it should be like:

${SUTrack_ROOT}
 -- pretrained
     -- itpn
         |-- fast_itpn_base_clipl_e1600.pt
         |-- fast_itpn_large_1600e_1k.pt
         |-- fast_itpn_tiny_1600e_1k.pt

Then, run the following command:

python -m torch.distributed.launch --nproc_per_node 4 lib/train/run_training.py --script sutrack --config sutrack_b224 --save_dir .

(Optionally) Debugging training with a single GPU

python tracking/train.py --script sutrack --config sutrack_b224 --save_dir . --mode single

Test and evaluate on benchmarks

SUTrack for RGB-based Tracking

  • LaSOT
python tracking/test.py sutrack sutrack_b224 --dataset lasot --threads 2
python tracking/analysis_results.py # need to modify tracker configs and names
  • GOT10K-test
  • < 7932 /ul>
    python tracking/test.py sutrack sutrack_b224 --dataset got10k_test --threads 2
    python lib/test/utils/transform_got10k.py --tracker_name sutrack --cfg_name sutrack_b224
    
    • TrackingNet
    python tracking/test.py sutrack sutrack_b224 --dataset trackingnet --threads 2
    python lib/test/utils/transform_trackingnet.py --tracker_name sutrack --cfg_name sutrack_b224
    
    • UAV123
    python tracking/test.py sutrack sutrack_b224 --dataset uav --threads 2
    python tracking/analysis_results.py # need to modify tracker configs and names
    
    • NFS
    python tracking/test.py sutrack sutrack_b224 --dataset nfs --threads 2
    python tracking/analysis_results.py # need to modify tracker configs and names
    

    SUTrack for Multi-Modal Tracking

    • LasHeR
    python ./RGBT_workspace/test_rgbt_mgpus.py --script_name sutrack --dataset_name LasHeR --yaml_name sutrack_b224
    # Through this command, you can obtain the tracking result. Then, please use the official matlab toolkit to evaluate the result. 
    
    • RGBT-234
    python ./RGBT_workspace/test_rgbt_mgpus.py --script_name sutrack --dataset_name RGBT234 --yaml_name sutrack_b224
    # Through this command, you can obtain the tracking result. Then, please use the official matlab toolkit to evaluate the result. 
    
    • VisEvent
    python ./RGBE_workspace/test_rgbe_mgpus.py --script_name sutrack --dataset_name VisEvent --yaml_name sutrack_b224
    # Through this command, you can obtain the tracking result. Then, please use the official matlab toolkit to evaluate the result. 
    
    • TNL2K
    python tracking/test.py sutrack sutrack_b224 --dataset tnl2k --threads 2
    python tracking/analysis_results.py # need to modify tracker configs and names
    
    • OTB99
    python tracking/test.py sutrack sutrack_b224 --dataset otb99_lang --threads 0
    python tracking/analysis_results.py # need to modify tracker configs and names
    
    • DepthTrack
    # The workspace needs to be initialized using the VOT toolkit first. 
    cd Depthtrack_workspace
    vot evaluate sutrack_b224
    vot analysis sutrack_b224 --nocache
    
    • VOT-RGBD22
    # The workspace needs to be initialized using the VOT toolkit first. 
    cd VOT22RGBD_workspace
    vot evaluate sutrack_b224
    vot analysis sutrack_b224 --nocache
    

    Model Zoo

    The trained models, and the raw tracking results are provided in the model zoo

    Contact

    Acknowledgments

    This work is based on our previous work SeqTrackv2, which is also a unified multi-modal tracker. We are also inspired by the works LoRAT and iTPN.

    This work is the final project of my PhD, and we have worked hard to ensure that it is concise, powerful, and easy to use. If you encounter any issues, please feel free to contact me via email, and I will do my best to help address common problems.

    We hope that SUTrack can serve as a clean and reliable baseline for the community. If this work proves helpful to your research, we kindly ask that you consider citing our paper.

    @inproceedings{sutrack,
      title={SUTrack: Towards Simple and Unified Single Object Tracking},
      author={Chen, Xin and Kang, Ben and Geng, Wanting and Zhu, Jiawen and Liu, Yi and Wang, Dong and Lu, Huchuan},
      booktitle=AAAI,
      year={2025}
    }
    

About

[AAAI2025] SUTrack: Towards Simple and Unified Single Object Tracking

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.7%
  • Shell 0.3%
0