在pycharm上成功训练、测试跑出跟踪结果
下一步就是利用OTB提供的工具箱绘制不同跟踪算法之间的跟踪成功率对比图,详细步骤参考如下目标跟踪评估绘图(2):Windows10环境OTB100数据集配置,绘制成功率和精确度曲线图,绘制目标跟踪框图,并与其他算法比较_otb100数据集下载-CSDN博客
首先要将得到的txt格式的跟踪结果转换成mat格式,转换代码如下
import os
import scipy.io as scio
import numpy as np
# 1 首先,将jogging.1.txt,jogging.2.txt,Skating2.1.txt,Skating2.2.txt修改成
# jogging-1.txt,jogging-2.txt,Skating2-1.txt,Skating2-2.txt
# 2 打开tiger1.txt文件,并删除前5行行数据,只留下349行数据
file = 'D:\\000MyFiles\Tracking\\txt_to_mat-OTB--master\\ThisWork' #3 修改.txt文件的地址
savefile = 'D:\\000MyFiles\Tracking\\txt_to_mat-OTB--master\\ThisWorkmat\\' # 4 修改.mat文件的存放地址
if not os.path.exists(savefile):
os.mkdir(savefile)
pathlist = os.listdir(file)
# print(pathlist)
for i in range(len(pathlist)):
path = os.path.join(file, pathlist[i])
for j in range(len(pathlist[i])):
if pathlist[i][j] == '.':
save = pathlist[i][:j]
print(save)
break
savepath = savefile + save + '_ThisWork.mat' ##5 修改 .mat文件转换后的算法名
f = open(path)
data = f.readlines()
result = []
for j in range(len(data)):
x = data[j].split(',')
x[3] = float(x[3][:-1])
x[0] = float(x[0])
x[1] = float(x[1])
x[2] = float(x[2])
result.append(x)
res = {}
res['res'] = result
res['type'] = 'rect'
Mat = {'res': res['res'], 'type': 'rect', 'len': len(res['res']), 'annoBegin': 1, 'startFrame': 1}
M = np.array([Mat])
Mat2 = {'__header__': 'b', '__version__': 1.0, '__globals__': [], 'results': M}
scio.savemat(savepath, Mat2)
# print(data)
接下来按照上面链接中给出的步骤操作,得到了对比图,但跟踪成功率出现了不小的下降!从0.579下降到了0.564。
问题出现在工具箱中anno文件夹中的两个txt文件,即Jogging-1,Jogging-2。Jogging-1中的标注框数据是OTB100中Jogging-2的,Jogging-2中的标注框数据是OTB100中Jogging-1的。
将Jogging-1改名为Jogging-2,Jogging-2改名为Jogging-1就可以顺利解决!