OTB运行代码文件介绍

主要参考链接:

使用说明
【OTB使用介绍一】tracker_benchmark_v1.0小白使用配置OTB100

【OTB使用介绍二】对Visual Tracker Benchmark v1.0源码进行介绍

错误说明
OTB 2013 使用教程
tracker_benchmark_v1.0的使用方法
OTB跑KCF算法错误合集
OTB(visual tracker benchmark) 的基础环境配置()如何加自己的算法

链接

这里对各种文件进行简单介绍:

1.util文件:里面包含各种重要的函数 ,

  • 主函数:main_running.m
  • 画图函数:perfPlot.m
  • 视频图像的可视化bounding boxes:drawResultBB.m

2.trackers文件:里面包含各种你需要对比的跟踪算法;要简单了解可以看trackers.txt文件
3.tmp文件:用来存放临时结果或者日志文件的目录;
运行drawResultBB.m得到tmp\imgs\ 存每个帧上不同tracker跟踪到的boundingbox

4.rstEval文件: 包含了很多用于计算跟踪性能或者画出结果的脚本的目录;
5.results文件:存储的每个trackers的跟踪结果的mat文件和perfMat不一样,这个是相对于bounding box的跟踪框数据。 results\results_OPE_CVPR13\ 存这种tracker对这种datasets的跟踪结果,例:CarDark_VR.mat

6.perfMat文件:存储最终用于画图的mat文件, \perfMat\overall\ 存每个tracker对每个dataset的平均结果重叠率以及平均结果误差率

7 initOmit文件 包含由于遮挡或目标超出视野而被省略的用于跟踪初始化的帧的注释 的目录;
8.figs文件:存储的是一些实验跑出的图片,就是各种属性的准确度或者成功率图。\figs\overall\ 最终曲线图存放

9.anno文件:主要存储的是数据集的bounding box。
10. main_running.m是用来在测试集上跑跟踪代码的,跑出的结果存在results文件夹中;

11 perfPlot.m 用来把测试结果画出图来,就是benchmark网上的图的效果,调用genPerfMat.m来生成用于plot的值

扫描二维码关注公众号,回复: 12648301 查看本文章

如果你第一次下载tracker_benchmark_v1.0的测试代码,可以先运行perfPlot.m就可以直接画出漂亮的图。只不过这些图是已有的跟踪算法和测试结果,作者都保存在results文件夹里面了;
12drawResultBB.m用于画每个帧上不同跟踪器的边界框的主函数。

原文:https://blog.csdn.net/devil_08/article/details/80002404

运行过程介绍

运行main_running.m函数。对于mainrunning函数是主函数,
运行完main_running.m函数,得到的结果是在文件夹results中的
放在哪个文件夹下,通过下面这行代码决定

finalPath = ['./results/results_' evalType '_CVPR13/'];

如果想画各种精度曲线的话,就可以运行perfPlot.m文件,这个函数调用genPerMat函数得到需要的精度数据以及错误率(DP,OP),然后放到perfMat\overall\文件中,画出来的图保存在figs\overall\文件夹下。运行perfPlot.m会调用生成的结果results_SRE_CVPR13和results_TRE_CVPR13,以此画出结果
画各种tracker算法在图像上的效果(bounding boxes),可以调用drawResultBB.m函数,就可以实现。

问题 1
1 在调用main.m跑TRE和SRE时,因为会生成相应的.mat数据文件,如果跑完以后发现自己算法生成的.mat文件有问题,
那么要把该文件删除

待找到错误原因后,重新生成相应的.mat文件。因为程序中写的是如果已经存在了.mat文件,例如已经存在car4_STC.mat文件,即使该文件中的数据有错误,但是重新跑时会默认该文件中的数据写完,不会重新写入数据

结果说明
这个是result文件夹的results_TRE_CVPR13里面的CSK的basketball.mat文件
在这里插入图片描述
点开第一个可以看到这些
在这里插入图片描述
其中res中的数据就是跟踪算法运行的结果,725是basketball序列的帧数,第一行就是第一帧,4列表示的是(x, y ,w, h),这里x和y表示的是目标位置的中心,w和h就是目标框的宽和高。在后面将自己的代码加入到OTB中时候,要特别注意不要把w和h写反了。anno是人工标注的信息,也就是后面评价指标的参照数据。

问题 2

benchmark中 一共有三个指标 OPE、TRE和SRE,当前论文中需要列放的只是OPE结果图,所以在画曲线图时只需要跑OPE即可,

说明
OPE是一次成功率,TRE(20次)和SRE(12次)都是多次的。其中TRE的第一次结果其实就是OPE的结果,所以你可以跑一次TRE和一次SRE就够了。
即选择TRE和SRE的话

  • 能够将视频分割成20段,以验证TRE。
  • 若是SRE,则可以在空间改变初始位置,一共12组
    说明
    结果可在visual-tracking.net网页上找到。 https://sites.google.com/site/trackerbenchmark/benchmarks/v10
    在页面中间,有一个指向tracker_benchmark_v1.0_results.zip文件的链接。 在文件中没有单独的OPE结果文件,但您可以从TRE结果中获得结果。 如果在Matlab中加载TRE结果文件,则每个数据都包含多个序列运行。 FIRST结果与OPE相同,因此您可以使用数据进行评估。 例如,如果加载文件’david2_ASLA.mat’,您将得到一个变量’results’,即1x20 cell。 第一个单元格’结果{1}'是OPE结果。

选择OPE,有以下地方可修改
步骤:
(1)

程序中的代码表示在:main_running.m中的20行

%'OPE','SRE','TRE' 选择不同的评价标准, 初始为TRE 
%这里你想得到什么结果就修改为什么评价标准
 evalType='OPE';

(2)

然后调用perfPlot.m画精度曲线图,因为只需要得到OPE结果图,所以在perfPlot.m的103行修改为

evalTypeSet = 'OPE';

(3)

做完上述(1)(2)后 调用perfPlot.m画出来的曲线图只有成功率图,而并没有精确度图,这时需要做的是:
将105行修改为:

rankingType = 'threshold';%AUC, threshold

这里原来是AUC,只能出成功率(success)图,要想出精度(precision)图的话,需要修改为threshold。这样就可以两种图都出

(4)最后就是drawResultBB.m,这个得到的视频中跟踪算法的结果保存在tmp文件夹的img中。如图所示
在这里插入图片描述
这个m文件的运行需要有SRE的结果,因此运行前,需要先选择SRE并运行一下main文件。
之后就可以得到这样的结果图。

pathRes = '.\results\results_SRE_CVPR17\';% The folder containing the tracking results

即在该文件夹中,有相应的mat文件。
或者更改路径

pathRes = ‘.\results\results_TRE_CVPR17\MDNet’;% The folder containing the tracking results

关于drawResultBB.m中tracker对应颜色的问题

可以断点运行观看,我整理了前十个tracker lable

在这里插入图片描述

其中tracker排序是你在configTrackers.m文件中的tracker排序,对应的红色是第一个tracker,绿色是第二个tracker,一次类推。

问题 3
在跑完perfplot.m后,如果生成的曲线图不正确或者不理想,想要重新画曲线图,此时需要把文件夹…/perfMat/overall下的所有.mat文件删除,原因和问题1中的一样。

猜你喜欢

转载自blog.csdn.net/qq_37602161/article/details/89016884