目录

一、配置环境

二、设置数据集路径

三、修改配置文件参数

四、数据集分类与读取

五、运行训练命令


一、配置环境

按照readme说明书,anaconda终端输入

conda create -n aqatrack python=3.8
conda activate aqatrack
bash install.sh

最后一行Windows系统会报错,缺少一些whl文件之类的,后续在终端会陆续补齐的。此时,打开PyCharm,建一个项目aqatrack,路径选aqatrack主干文件的根目录,不选的话,会得到一个全新的文件夹,在github下载的东西会嘲笑这个愚蠢的人类不知道PyCharm的使用规则。

选现有环境【建议配置都按开源项目的readme里的安装】

二、设置数据集路径

在README文件里复制代码

python tracking/create_default_local_file.py --workspace_dir . --data_dir ./data --save_dir ./output

python tracking/create_default_local_file.py --workspace_dir . --data_dir ./data --save_dir ./output

替换点,在终端运行配置路径的命令,记得把里面的点换成自己 的绝对路径,python tracking/create_default_local_file.py --workspace_dir . --data_dir ./data --save_dir ./output,注意:这里是反斜杠---也可以用两个正斜杠\\,看个人习惯,成功运行后终端无报错。

lib/train/admin/local.py  # paths about training
lib/test/evaluation/local.py  # paths about testing

查看两个路径文件:在lib.train.admin和lib/test/evaluation下会生成local.py文件里路径部分会自动修改成你设置的路径,如果终端运行配置路径的命令报错缺少模块,缺什么补什么,用pip+阿里镜像源:

pip install torch -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

在原有的代码上的修改主要有添加路径、导入库、添加数据集逻辑语句,根目录下添加的就只有读取数据集的脚本,后文有详细说明,尽量不修改或者添加根目录下面的其他脚本,目的是不打乱原有的逻辑,侵入性最小化。

在lib.train.admin下的environment.py,有数据集的地方都要添加自己的数据集名称。用不到的数据集都用Ctrl+/ 注释。

三、修改配置文件参数

在\AQATrack-main\AQATrack-main\experiments\aqatrack下有4个yaml文件,AQATrack-ep100-got-256
AQATrack-ep100-got-384
AQATrack-ep150-full-256
AQATrack-ep150-full-384

  • ep100 / ep150 → 训练了 100 个 epoch 或 150 个 epoch

  • got → 指在 GOT-10k 数据集上训练/验证

  • 256 / 384 → 输入图像尺寸(如 256×256 或 384×384 像素)

256是基础,384是骨干,got指的是特殊数据集got的版本,不需要用got数据集的一般用256即可,384 分辨率更高,理论上能保留更多细节,跟踪小目标或精度要求高时更有优势,但计算量和显存占用更大。

每一轮采样率根据需要调整,一般不动。

23行-添加数据集名称,29行-更改采样的比例

TRAIN:
  DATASETS_NAME:
  - LASOT
  - GOT10K_vottrain
  - COCO17
  - TRACKINGNET
  - 这里添加自己的数据集名称,如果不需要用前几个数据集,直接Ctrl+/注释即可
  DATASETS_RATIO:
  - 1
  - 1
  - 1
  - 1
  - 1 这里是比例,用几个数据集就写几个,可以设置0-1范围的数字
  SAMPLE_PER_EPOCH: 15000

66行-Batch Size按2的幂次来训练,从高到底的试,32-24-16-8-4-2,按最大的来运行最快,oom就往下调-oom指报错出现out of memory,意思是显存溢出,不足以支撑。

74行-显卡数量,多个显卡可以跑更快,有几个写几个,用 nvidia-smi 可查看

80行-验证次数VAL_EPOCH_INTERVAL:20,一般不修改

四、数据集分类与读取

(1)lib.train.data_specs里面添加分好类的数据集txt文件

【这块分类的代码让deepseek去写,喂给他路径,以及分类的要求,注意给deepseek说明不需要起始帧范围】

(2)lib.train.dataset里面的__init__.py文件里面导入类:

from .lasot import Lasot
from .got10k import Got10k

这里加入引入数据集名字的类from .ootb import OOTB

(3)lib.train.dataset里面需要补充的一个ootbdataset.py文件,这个ootbdataset.py可以喂给lasotdataset.py文件让D师傅学习格式再根据自己的数据集手搓一个

(4)lib.train下属的base_functions.py里同样在文件开头导入数据集类

# 在现有导入语句后添加
from lib.train.dataset import OOTB, OOTB_lmdb  # 假设存在这些类

修改 names2datasets 函数在32行添加数据集名称,在81行添加数据集支持,代码如下

  # 添加 OOTB 数据集支持
        if name == "OOTB":
            if settings.use_lmdb:
                print("Building OOTB from lmdb")
                # 假设 OOTB_lmdb 需要的参数
                datasets.append(OOTB_lmdb(settings.env.ootb_lmdb_dir, split='train', image_loader=image_loader))
            else:
                print("Building OOTB dataset")
                # 假设 OOTB 需要的参数:数据目录和分割
                datasets.append(OOTB(settings.env.ootb_dir, split='train', image_loader=image_loader))

以上,参数修改完成,可以开始训练了。

五、运行训练命令

python tracking/train.py --script seqtrack --config seqtrack_b256 --save_dir . --mode single`

参数 含义

--script seqtrack 选择 seqtrack 算法脚本

--config seqtrack_b256 使用 batch size=256 的配置

--save_dir . 模型保存在当前目录

--mode single 单GPU训练模式(GPU数量>1可改为 --mode multiple)

或者运行python D:/VideoX-master/SeqTrack/lib/train/run_training.py --script seqtrack --config seqtrack_b256 --save_dir . --mode single  

遇到安装包缺失的情况就用pip+阿里源,问deepseek或者csdn,总有办法,别气馁,别驼背~

文件内容里面出现的陌生词汇:tensorboard-记录欠拟合、过拟合问题的训练曲线,有些warning可以忽略,只要不影响模型训练的都当看不见~~

补充:

测试的修改lib.test:

lib.test.evaluation里面修改

(1)datasets里面改

dataset_dict = dict(
    otb=DatasetInfo(module=pt % "otb", class_name="OTBDataset", kwargs=dict()),
    nfs=DatasetInfo(module=pt % "nfs", class_name="NFSDataset", kwargs=dict()),
    uav=DatasetInfo(module=pt % "uav", class_name="UAVDataset", kwargs=dict()),

(2)environment里面有两个类EnvSettings和EnvSettings_ITP

这里面添加数据集,照着其他数据集的格式写就行

(3)读取数据集的文件生成参考latsotdataset的读取方式,依旧,deepseek手搓

lib.tracking.test_epoch的46行添加数据集名字,78行epoch=xxx,训练权重,名字

训练过程中train.trainers下的base_trainer.py里面96-98修改条件语句可以调整训练轮数,保存最后10轮或每10轮保存一次,可以修改权重。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐