#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="${PROJECT_DIR:-$(cd "${SCRIPT_DIR}/.." && pwd)}" PYTHON_BIN="${PYTHON_BIN:-/media/data/WWZ/HZY/miniconda3/envs/VLT/bin/python}" GPUS="${GPUS:-0,1,2,3}" TRACKER_NAME="${TRACKER_NAME:-atctrack}" TRACKER_PARAM="${TRACKER_PARAM:-atctrack_qwen_state}" DATASET_NAME="${DATASET_NAME:-lasot_lang}" CKPT_PATH="${CKPT_PATH:-${PROJECT_DIR}/checkpoints/ATCTrack_ep0015.pth.tar}" THREADS="${THREADS:-4}" NUM_GPUS="${NUM_GPUS:-4}" DEBUG="${DEBUG:-0}" SEQUENCE="${SEQUENCE:-}" SAVE_DIR="${SAVE_DIR:-${PROJECT_DIR}/output}" ROBERTA_MODEL_PATH="${ROBERTA_MODEL_PATH:-${PROJECT_DIR}/resource/pretrained_models/roberta-base}" DATASET_ROOT="${DATASET_ROOT:-${PROJECT_DIR}/../Dataset}" LASOT_LANG_DIR="${LASOT_LANG_DIR:-${DATASET_ROOT}/LaSOT/LaSOTBenchmark}" LASOT_TEST_DIR="${LASOT_TEST_DIR:-${LASOT_LANG_DIR}}" TNL2K_TEST_DIR="${TNL2K_TEST_DIR:-${DATASET_ROOT}/TNL2K/test}" OTB_LANG_DIR="${OTB_LANG_DIR:-${DATASET_ROOT}/otb_lang}" LASOT_EXTENSION_SUBSET_DIR="${LASOT_EXTENSION_SUBSET_DIR:-${DATASET_ROOT}/lasot_extension_subset}" # Test-time updater uses the external Qwen state server. Teacher is only needed for training labels. QWEN_UPDATER_BASE_URL="${QWEN_UPDATER_BASE_URL:-http://127.0.0.1:8001}" QWEN_UPDATER_TIMEOUT="${QWEN_UPDATER_TIMEOUT:-120}" QWEN_TEACHER_ENABLE="${QWEN_TEACHER_ENABLE:-false}" QWEN_TEACHER_MODEL="${QWEN_TEACHER_MODEL:-qwen3.5}" QWEN_TEACHER_BASE_URL="${QWEN_TEACHER_BASE_URL:-http://127.0.0.1:8001/v1}" QWEN_TEACHER_API_KEY="${QWEN_TEACHER_API_KEY:-sk-no-key-required}" export CUDA_VISIBLE_DEVICES="${GPUS}" export ATCTRACK_VLM_PROJECT_DIR="${PROJECT_DIR}" export SAVE_DIR export ROBERTA_MODEL_PATH export DATASET_ROOT export LASOT_LANG_DIR export LASOT_TEST_DIR export TNL2K_TEST_DIR export OTB_LANG_DIR export LASOT_EXTENSION_SUBSET_DIR export QWEN_UPDATER_BASE_URL export QWEN_UPDATER_TIMEOUT export QWEN_TEACHER_ENABLE export QWEN_TEACHER_MODEL export QWEN_TEACHER_BASE_URL export QWEN_TEACHER_API_KEY if [[ ! -f "${CKPT_PATH}" ]]; then echo "Checkpoint not found: ${CKPT_PATH}" >&2 exit 1 fi cd "${PROJECT_DIR}" cmd=( "${PYTHON_BIN}" tracking/test.py --tracker_name "${TRACKER_NAME}" --tracker_param "${TRACKER_PARAM}" --dataset_name "${DATASET_NAME}" --ckpt_path "${CKPT_PATH}" --threads "${THREADS}" --num_gpus "${NUM_GPUS}" --debug "${DEBUG}" ) if [[ -n "${SEQUENCE}" ]]; then cmd+=(--sequence "${SEQUENCE}") fi echo "PROJECT_DIR=${PROJECT_DIR}" echo "CKPT_PATH=${CKPT_PATH}" echo "DATASET_NAME=${DATASET_NAME}" echo "TRACKER_PARAM=${TRACKER_PARAM}" echo "GPUS=${GPUS}" echo "QWEN_UPDATER_BASE_URL=${QWEN_UPDATER_BASE_URL}" echo "QWEN_TEACHER_ENABLE=${QWEN_TEACHER_ENABLE}" echo "Running: ${cmd[*]}" "${cmd[@]}"