第 9 章

测试与提交脚本

·约 4 分钟

训练完模型后,需要在各个数据集上跑测试、分析结果,部分数据集还需要在线提交评测。这里介绍实验室里积累的自动化脚本。

脚本包内容下载
测试脚本批量测试 + 结果汇总 + 数据集定义下载
GOT-10k 自动提交Selenium 自动化在线评测提交下载

1. 批量测试脚本

训练一个跟踪器通常会保存多个 epoch 的权重,需要逐个测试找到最优 epoch。手动改配置、跑测试、跑分析、存结果,重复几十次非常痛苦。

multi_test.py 自动化了这个流程:

修改 YAML 中的 epoch → 跑 test.py → 跑 analysis_results.py → 保存结果到 ep{N} 文件夹

核心用法:

from multi_test import TrackingTester, wait_for_vram

# 等显存空闲再开始(别人在跑实验时不抢卡)
wait_for_vram(threshold_gb=1, interval_sec=300)

# 初始化测试器
tester = TrackingTester(
    tracker_name="ostrack",
    tracker_param="dinov3l_384_lora_film"
)

# 批量测试 epoch 296-300 在 NFS 数据集上
tester.test_epoch_range(296, 300, "nfs")

脚本会自动:

  • 跳过已有结果的 epoch(断点续测)
  • 修改 analysis_results.py 中的数据集和 tracker 配置
  • 把每个 epoch 的结果(.txt 文件)归档到 nfs_ep0296/、nfs_ep0297/ 等文件夹

如果某个 epoch 的 _result.txt 损坏了,可以用修复功能:

tester.repair_epoch_range(296, 300, "nfs")

不同数据集的区别

本地评测数据集(OTB、LaSOT、NFS、UAV123 等)直接用 multi_test.py,跑完 analysis_results.py 就能看到指标。

GOT-10k 需要额外一步——把结果文件转成官方格式再提交:

# demo-z.py 里的流程
# [2/4] 跑测试
python3 ./tracking/test.py ostrack dinov3l_384_got10k_lora_film --dataset_name got10k_test

# [3/4] 转换结果格式
python3 ./lib/test/utils/transform_got10k.py --tracker_name ostrack --cfg_name dinov3l_384_got10k_lora_film

TrackingNet 类似,也需要 transform 后打包 zip 再上传。multi_test_trackingnet.py 专门处理这个流程。

2. 结果汇总脚本

跑完一批 epoch 后,用 result_summary.py 生成汇总报告:

from result_summary import ResultSummarizer

analyzer = ResultSummarizer(
    tracker_name="ostrack",
    tracker_param="dinov3l_384_lora_film"
)

# 汇总 epoch 296-300 在 NFS 上的结果
analyzer.run_analysis(296, 300, "nfs")

输出一份 Markdown 报告,包含:

  • 每个 epoch 的 AUC / OP50 / OP75 / Precision / Norm Precision
  • 各项指标的最优 epoch
  • 综合评分推荐(AUC×0.6 + OP50×0.4)
  • 性能趋势分析

3. GOT-10k 自动提交

GOT-10k 和 TrackingNet 是在线评测数据集——跑完测试后要把结果上传到官方网站,由服务器算指标。

手动提交的步骤:打开网站 → 登录 → 选 zip 文件 → 填写方法名 → 提交 → 等结果。批量提交几十个 epoch 时,这个流程同样很痛苦。

got10k_auto_submit.py 用 Selenium 自动化了整个提交过程:

# 自动登录 GOT-10k 评测网站
# 自动上传每个 epoch 的 zip 文件
# 自动填写方法名(tracker_ep{N})
# 自动等待服务器处理完成

提交地址:http://got-10k.aitestunion.com/

注意事项:

  • 需要先在 GOT-10k 网站注册账号(用 edu 邮箱)
  • 脚本用 Chrome + ChromeDriver,首次运行会自动下载
  • 提交有频率限制,脚本内置了等待间隔