This is an official pytorch implementation of the paper ATCTrack: Aligning Target-Context Cues with Dynamic Target States for Robust Vision-Language Tracking.
🔥 Updates
[8/2025] ATCTrack's code is available!
[6/2025] ATCTrack is accepted by ICCV25 Highlight!
📣 Overview
Our motivation & Core modeling approach
Vision-language tracking aims to locate the target object in the video sequence using a template patch and a language description provided in the initial frame. To achieve
robust tracking, especially in complex long-term scenarios that reflect real-world conditions as recently highlighted by
MGIT, it is essential not only to characterize the target features but also to utilize the context features related to the
target. However, the visual and textual target-context cues
derived from the initial prompts generally align only with
the initial target state. Due to their dynamic nature, target states are constantly changing, particularly in complex
long-term sequences. It is intractable for these cues to continuously guide Vision-Language Trackers (VLTs). Furthermore, for the text prompts with diverse expressions, our
experiments reveal that existing VLTs struggle to discern
which words pertain to the target or the context, complicating the utilization of textual cues.
ATCTrack_motivation
In this work, we present a novel tracker named ATCTrack, which can obtain multimodal cues Aligned with the dynamic target states
through comprehensive Target-Context feature modeling,
thereby achieving robust tracking. Specifically, (1) for the
visual modality, we propose an effective temporal visual
target-context modeling approach that provides the tracker
with timely visual cues. (2) For the textual modality, we
achieve precise target words identification solely based on
textual content, and design an innovative context words
calibration method to adaptively utilize auxiliary context
words. (3) We conduct extensive experiments on mainstream benchmarks and ATCTrack achieves a new SOTA
performance
Our ATCTrack is trained on LaSOT, TNL2K, RefCOCOg, OTB99-Lang, VastTrack, GOT-10k, and TrackingNet datasets.
Put these tracking datasets in ./data. It should look like:
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
Prepare pretrained backbone
The backbone and patch embedding of ATCTrack are initialized with pre-trained weights from Fast-iTPN, and we adopt RoBERTa-Base as our text encoder.
Please download the fast_itpn_base_clipl_e1600.pt, fast_itpn_large_1600e_1k.pt and roberta-base checkpoints and place them in ./resource/pretrained_models.
Train ATCTrack
You can run the following command to train the ATCTrack-B:
First, you need to set the paths for the various evaluation benchmarks in ./lib/test/evaluation/local.py, and prepare the model weights for evaluation.
Then, run the following command to perform evaluation on different benchmarks (taking atctrack_base as an example).
We would like to express our gratitude to the following open-source repositories that our work is based on: SeqtrackV2, AQATrack, Fast-iTPN.
Their contributions have been invaluable to this project.