基准集 所遇到问题的一些解决

在这里插入图片描述关于基准集下 几个文件夹的作用,* ‘.\results\results_SRE_CVPR13’ '.\results\results_TRE_CVPR13’所有跟踪结果的存放目录

  • ‘.\anno’ 注释文件(边界框和属性)的目录

  • '.\initOmit’包含由于遮挡或目标超出视野而被省略的用于跟踪初始化的帧的注释 的目录

  • ‘.\results’ 跟踪结果的存放目录

  • ‘.\rstEval’ 包含了很多用于计算跟踪性能或者画出结果的脚本的目录

  • ‘.\trackers’ 包含了很多跟踪器代码的目录

  • ‘.\tmp’ 用来存放临时结果或者日志文件的目录

  • ‘.\util’ 包含主函数里用到的脚本的目录

  • main_running.m用于跟踪测试的主函数

              -Note that OPE is the first trial of TRE
    
                OPE是TRE的第一个试验
    
              -It also has the function to validate the results.
    
                还具有验证结果的功能
    
  • perfPlot.m用于画图的主函数

调用genPerfMat.m来生成用于plot的值

  • drawResultBB.m用于画每个帧上不同跟踪器的边界框的主函数

*.\figs\overall\ 最终曲线图存放

*. \perfMat\overall\ 存每个tracker对每个dataset的平均结果重叠率以及平均结果误差率

*.tmp\imgs\ 存 每个帧上不同tracker跟踪到的boundingbox

!!!重点来啦!!!

*.results\results_OPE_CVPR13\ 存这种tracker对这种datasets的跟踪结果,例:CarDark_VR.mat

这个.mat的数据结构是这样的 1×段数cell

每个元胞的结构1×1 struct是这样的:
得到的结果就是如下所示;

在这里插入图片描述

在这里插入图片描述据说是接口问题 ,将跑通的代码在基准集上测试【BCAF以及Siamesefc】发现了上述问题的报错!
还有一个是生成的数据文件。.mat文件没有办法在cvpr2013中保存结果。
嗯嗯 博哥就直接解决了 真的是优秀 优秀的人都善良 真的是太优秀了 哎 做跟踪的可以看博主大大大博客,可以说是很认真的一个娃娃了。
1.util文件:里面包含各种重要的函数
2.trackers文件:里面包含各种你需要对比的跟踪算法;要简单了解可以看trackers.txt文件
3.tmp文件:用来存放临时结果或者日志文件的目录;
4.rstEval文件: 包含了很多用于计算跟踪性能或者画出结果的脚本的目录;
5.results文件:存储的每个trackers的跟踪结果的mat文件和perfMat不一样,这个是相对于bounding box的跟踪框数据。
6.perfMat文件:存储最终用于画图的mat文件。
7 initOmit文件 包含由于遮挡或目标超出视野而被省略的用于跟踪初始化的帧的注释 的目录;
8.figs文件:存储的是一些实验跑出的图片,就是各种属性的准确度或者成功率图。
9.anno文件:主要存储的是数据集的bounding box。
10 main_running.m是用来在测试集上跑跟踪代码的,跑出的结果存在results文件夹中;
11 perfPlot.m用来把测试结果画出图来,就是benchmark网上的图的效果,如果你第一次下载tracker_benchmark_v1.0的测试代码,可以先运行perfPlot.m就可以直接画出漂亮的图。只不过这些图是已有的跟踪算法和测试结果,作者都保存在results文件夹里面了;
12drawResultBB.m用于画每个帧上不同跟踪器的边界框的主函数。
这时候就可以在MATLAB中打开main_running.m(下文用main表示)了,但在运行之前,需要进行一些修改。
如果是其他程序生成的数据 用于在matlab上跑效果 比如我目前理解的是把C++生成的.exe文件放在MATLAB里 自己建一个对应的run_tracker.m文件 接口留好 就可以,因为otb里有部分tracker就是这样的。

主要是后来博哥删除了生成的那个文件夹还有一些其他多余的算哒生成的数据 这样就减少 如果是将其他算法也plot就再添加就行!
然后大概到第51哥视频时又出现了这个问题:
main_running (line 61)
rect_anno = dlmread([pathAnno s.name ‘.txt’]);
感觉跟上个差不多 我决定要自力更生了 去找找有没有别人解决的
不能老问博哥。。。。暴风哭泣!!

1 在调用main.m跑TRE和SRE时,因为会生成相应的.mat数据文件,如果跑完以后发现自己算法生成的.mat文件有问题,那么要把该文件删除,待找到错误原因后,重新生成相应的.mat文件。因为程序中写的是如果已经存在了.mat文件,例如已经存在car4_STC.mat文件,即使该文件中的数据有错误,但是重新跑时会默认该文件中的数据写完,不会重新写入数据

问题 2

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

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

evalType=‘OPE’;

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

evalTypeSet = ‘OPE’;

140行:

for j=1:length(evalTypeSet)

end

需要注释掉;因为只跑OPE所以不用循环了

142行修改为:

 evalType = evalTypeSet;%SRE, TRE, OPE

(3)做完上述(1)(2)后 调用perfPlot.m画出来的曲线图只有成功率图,而并没有精确度图

这时需要做的是:

将105行修改为:

rankingType = ‘threshold’;(如果参数是源程序中的‘AUC’的话 跑出来的图是只有成功率图(success)而没有精度图(precision))

修改完后 再跑一遍perfPlot.m,此时得到的图像既有success又有precision

问题 3

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

问题 4

我在跑TRE时,查看我的算法生成的.mat文件,发现有些数据并没有写进去,本来每个.mat文件中有20组数据,可是得到的结果中有的数据是空的,例如:

这个错误的原因我没有找到,但是并不影响后面的工作。因为我想要的只是OPE结果,而每个.mat文件中的第一列数据就是OPE的数据,而我跑出来的结果没有缺失第一列数据的所以并没有影响。(我猜测是跟踪框出边界了)

问题 5

(1)在大部分论文中附上的跟踪结果图都是只有5、6个算法的结果,而调用完drawResultBB.m得到的结果图中有好多算法的结果,很混乱(因为太多了),怎么办?

这时就需要人为的去标定 限定5、6种算法去画图,具体步骤:

在drawResultBB.m文件的15行后面加上:

trks = configTrcakers;

Aaa = [1 2 3 4 (选中的算法的编号)…];

trks = trks(Aaa );

这样的话程序只会跑Aaa中的几个算法。

同样的方法适用于选择想要的序列去跑(但是这种做法有点学术造假的嫌疑)

(2)得到的曲线图,在benchmark中默认的是前10名算法的结果,如果在和所有的算法跑时你的算法并没有进到前10名,怎么办?

这个问题最好的解决方法是继续优化算法,在理论程序上下功夫,以达到算法效果提高的目的。但是,有个小技巧(也有作弊的嫌疑),就是和(1)的解决方法一样,选择几个菜的算法,数目固定在10个,这样的话你的算法肯定在前10名里边!!!!

问题 6

文章中把数据集分为了11类,包括(illumination variation、low resolution等),但是可能你的算法可能并不具备所有方面的能力,例如:out of view 超出视野 你的算法并不具有再检测的能力,这样造成在做综合测评时(perfplot.m),会影响整体成绩,所以可以不测试这项(这样做不算作弊,这个可以直接在论文中明说)

具体操作:

继续用’out of view’来做例子

1 在perfplot.m文件的第9行:

attName={‘illumination variation’ ‘out-of-plane rotation’ ‘scale variation’ ‘occlusion’ ‘deformation’ ‘motion blur’ ‘fast motion’ ‘in-plane rotation’ ‘out of view’ ‘background clutter’ ‘low resolution’};

这个顺序是固定的,而’out of view’是倒数第三个

将该项删掉:

attName={‘illumination variation’ ‘out-of-plane rotation’ ‘scale variation’ ‘occlusion’ ‘deformation’ ‘motion blur’ ‘fast motion’ ‘in-plane rotation’ ‘background clutter’ ‘low resolution’};

2 文件夹…/anno/att下的一系列txt文件,是11中属性分类的标志,顺序是按照attName中的顺序

例如:basketball.txt文件中的是1,1,0,1,1,0,0,0,0,1,0

数字是1的说明basketball是属于该类的,比如说basketball属于光照变化、平面外旋转、遮挡、变形、背景复杂5项。按照attName的顺序对号入座即可

接着1中的操作,因为’out of view’是倒数第三个,那么需要把att下的每一个txt文件中的倒数第三个数字删掉

例如:

Basketball.txt就变成 1,1,0,1,1,0,0,0,1,0

按照1、2操作完后,再跑perfplot.m,会发现得到的一系列图中没有’out of view’的图了

关键是我在用otb 原算法画图时 并不能出mat数据 据说下载时数据直接有的 但是实际上并没有 plot不出来显示mat文件不存在!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值