win11运行ostrack目标跟踪

复现过程(win11)

代码地址:[botaoye/OSTrack: ECCV 2022] Joint Feature Learning and Relation Modeling for Tracking: A One-Stream Framework (github.com)

论文地址:[2203.11991] Joint Feature Learning and Relation Modeling for Tracking: A One-Stream Framework (arxiv.org)

第一步:

1.创建并激活环境

2.执行bash install.sh

windows下注意:直接使用bash会出现'sh' 不是内部或外部命令,也不是可运行的程序或批处理文件。

解决办法:conda install m2-base

第二步:配置环境

1.虚拟环境进入ostrack目录

2.执行命令:

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

解释:

  • --workspace_dir .: 指定工作空间目录为当前目录(.)。
  • --data_dir ./data: 指定数据目录为当前目录下的 data 文件夹。
  • --save_dir ./output: 指定保存目录为当前目录下的 output 文件夹。

3.执行命令后,按运行结果local.py新建文件夹如图所示,并将模型放入

image-20240722141102653 image-20240722141149980 image-20240722141212939
第三步:实现demo(与DCPT相同)

1.如图配置并运行video_demo.py

image-20240722141257782

运行成功:

image-20240722141332672

第四步:运行测试(otb100)(与DCPT相同)

1.修改tracking/test.py 如图

image-20240622161942174

遇到错误1:

raise Exception('Could not read file {}'.format(path)) Exception: Could not read file /data/otb/BlurCar1/groundtruth_rect.txt

错误原因1:

groundtruth_rect.txt格式与读取格式不对应

解决方法1:

修改lib/test/utils/load_text.py 如下图:

image-20240622162245107

遇到错误2:

Exception: Could not read file /data/otb/Human4/groundtruth_rect.txt

错误原因2:

代码数据集文件名与实际文件名不符合

解决方法2:

修改实际文件夹名字或者修改lib/test/evaluation/otbdataset.py 如下图:

image-20240622164314583

同样JoggingSkating2也如此操作

运行成功:

image-20240623121144158

2.运行tracking/analysis_results.py(这个代码的作用还没搞懂,不清楚是否与tracking/test.py生成的结果有关系)

出现错误ImportError: cannot import name 'common_texification' from 'matplotlib.backends.backend_pgf' (D:\Software\anaconda3\envs\Pytorch_py39\lib\site-packages\matplotlib\backends\backend_pgf.py)

错误原因:matplotlib版本不兼容问题Common_texification removed from matplotlib 3.8.0

解决办法:pip install matplotlib==3.7

运行结果如图:

image-20240623094643325

第五步:测试FLOPs和速度(与DCPT相同)

1.运行命令行python tracking/profile_model.py 没问题

2.直接运行tracking/profile_model.py

出现问题:FileNotFoundError: [Errno 2] No such file or directory: 'experiments/DCPT/DCPT_Gate.yaml'

解决如图:

image-20240623102056478

运行结果:

image-20240623102159698

第六步:训练(只用got10k中GOT-10k_Train_split_01数据)

1.修改:experiments/ostrack/vitb_256_mae_ce_32x4_ep300.yaml文件

image-20240722154221314

image-20240722142011258

2.修改tracking/train.py如图

image-20240722142431497

image-20240722142143870

3.got10k数据集放置如下所示

image-20240722142612015 image-20240722142648303

4.运行tracking/train.py或者lib/train/run_training

出现问题1:

image-20240722143451569

debug找错误:(如图位置打断点开始调试)

image-20240722143640360

单步调试得到如图所示:

image-20240722144149547

点击左边红框进入txt文件查看。(当时上午没看出啥问题,下午想到了。self.sequence_list相当于是由seq_ids决定的)

写一段python代码将如下图的txt文件中的数字从小到大重新排序,验证想法。

image-20240722144653383

排序的python代码如下:

# 读取文件内容
with open('got10k_train_full_split.txt', 'r') as file:
    lines = file.readlines()

# 将每行的数字转换为整数,并排序
numbers = [int(line.strip()) for line in lines]
numbers.sort()

# 将排序后的数字写入新的文件
with open('sorted_numbers.txt', 'w') as file:
    for number in numbers:
        file.write(f'{number}\n')

排序结果如图所示:

image-20240722145623539

由此得思路正确。

运行代码,还是同样的错误;添加如图的两行代码查看具体的索引值。

image-20240722151134523

再次运行,查看错误如下图所示:

image-20240722151401228

可以验证思路基本正确,上面修改got10k_vot_train_split.txt后已经变为我们所需的索引值,下面那个1249推测是验证集的索引值,打开相应文件查看如下图,确实如此,因此将其做对应修改。

image-20240722151759391

修改后运行代码,未出现IndexError: list index out of range,成功解决错误。

解决方法(任选其一):

(1)将下图两个文件内数字修改成自己所需的数据集序列部分。

image-20240722152139730

(2)

"D:\deeptrack\OSTrack\lib\train\dataset\got10k.py"中的该行代码

self.sequence_list = [self.sequence_list[i] for i in seq_ids]注释。

image-20240722152448110

出现问题2:

image-20240722153149400

解决办法:

(1)将该行代码注释

image-20240722153400125

(2)将作者的模型删掉

image-20240722153636542

最后成功运行,如下图所示(只训练了一轮来验证是否成功训练):

image-20240722162213852

参考资料:

OSTrack 代码阅读记录-CSDN博客

  • 46
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值