前言
OTB官方一直不更新支持OTB100的测试,而且网上几乎都是关于OTB50的配置,所以一气之下自己开始配置OTB100的测试环境。
本文主要针对于修改groundtruth_rect.txt、configSeq。基本上搞定这两方面之后,后面的configTracker修改、运行跟踪器以及画图网上其他地方都有很详细的阐述,这里不再进行表述。
OTB100前期数据配置
-
进行OTB100代码的修改,生成新的数据图
-
网上搜寻其他跟踪器的测试结果:KCF、ECO、
SiamFC
、DaSiamRPN
、SRDCF、SiamRPN
失败 -
在网上下载代码跑一遍
-
将OTB工具改为适合OTB100测试的形式
-
思路:将原序列删除,直接转换为OTB100。则对应的
groundtruth_rect.txt
首字母大写;configSeq.m
中的序列路径也要都变成首字母大写 -
将OTB100中各个序列中的
groundtruth_rect.txt
变成“序列名称.txt”,放入文件./anno
-
编写代码,实现将
groundtruth_rect.txt
直接转换成想要的形式,代码如下,无需转换首字母大小写:import os dirs=os.listdir('OTB2015') for i in dirs: if i[-4:]=='json': continue name='OTB2015/'+i+'/groundtruth_rect.txt' with open(name,'r') as f1: #i=i[0].lower()+i[1:] tofile='anno/'+i+'.txt' with open(tofile,'w') as f2: f2.write(f1.read)
-
-
修改OTB工具中
configSeqs.m
文件,添加OTB2013中没有的序列路径-
寻找
seqVTD
、seqIVI
的序列含义,以此验证是否需要将特定序列添入其中。- 代码中寻找相关消息:序列放在哪里都不影响,所以可以直接将序列路径添加到
configSeqs.m
- 代码中寻找相关消息:序列放在哪里都不影响,所以可以直接将序列路径添加到
-
寻找OTB2015比OTB2013多出的序列:官网上有
-
编写代码将序列路径一并写出:
-
将多出的序列放在一个文件夹内
-
编写代码,将结果存储在
all.txt
import os dirs=os.listdir("OTB2015") tofile='all.txt' str1='' for i in dirs: path='OTB2015/'+i+'/img/' endframe=len(os.listdir(path)) str="struct('name','{}','path','./data_seq/{}/img/','startFrame',1,'endFrame',{},'na',4,'ext','jpg','init_rect',[0,0,0,0]),...".format(i,i,endframe) str1=str+'\n'+str1 with open(tofile,'w') as f: f.write(str1) f.close()
-
-
-
-
-