OTB100/2015 matlab toolkit的使用

其实很早之前就已经写过关于otb这个数据集测试的博客: OTB官方评估代码python版本–评估自己跟踪器,对比其他跟踪器, 不过当时比较紧急没有时间使用matlab版本的工具箱来实现画图,虽然那个python版本的也能够做到,好多人也成功使用,但是还是很多人想用matlab画图,所以我抽空把这部分写一下,力争仔细一步步看完小白也能够成功测试tracker的结果。
好,废话不多说。


官网的工具箱一般都是在这里下载:
在这里插入图片描述
但是里面的代码部分有点小bug,而且真值文件只有51个,不能测试OTB2015或者叫做OTB100。这里放上我整理好直接可以用的供大家下载(开通的付费下载,有需用的请我喝杯咖啡,谢谢了):
https://mbd.pub/o/bread/mbd-YpqWlplu

1. 预先准备

  1. 我的测试环境是matlab2017a, ubuntu18.04。因为现在大家都只跑OPE了,所以本代码就不支持TRE和SRE了。(如果平台是windows,可能里面的路径分隔符需要改一下,其他的如果有也可以底下评论)
  2. 你的结果文件里面需要的是100个(如果是OTB100)以序列名为命名的txt文件,里面的bbox的格式为xywh, OTB50或者CVPR13的序列名也保持和下面的一致(如果不一致运行会报错), 如果是pysot-toolkit跑出来的就直接可以用我这个:
    otb100 = ['Basketball', 'Biker', 'Bird1', 'Bird2', 'BlurBody', 'BlurCar1', 'BlurCar2', 'BlurCar3', 'BlurCar4',
              'BlurFace', 'BlurOwl', 'Board', 'Bolt', 'Bolt2', 'Box', 'Boy', 'Car1', 'Car2', 'Car24', 'Car4',
              'CarDark', 'CarScale', 'ClifBar', 'Coke', 'Couple', 'Coupon', 'Crossing', 'Crowds', 'Dancer', 'Dancer2',
              'David', 'David2', 'David3', 'Deer', 'Diving', 'Dog', 'Dog1', 'Doll', 'DragonBaby', 'Dudek', 'FaceOcc1',
              'FaceOcc2', 'Fish', 'FleetFace', 'Football', 'Football1', 'Freeman1', 'Freeman3', 'Freeman4', 'Girl',
              'Girl2', 'Gym', 'Human2', 'Human3', 'Human4', 'Human5', 'Human6', 'Human7', 'Human8', 'Human9', 'Ironman',
              'Jogging.1', 'Jogging.2', 'Jump', 'Jumping', 'KiteSurf', 'Lemming', 'Liquor', 'Man', 'Matrix', 'Mhyang',
              'MotorRolling', 'MountainBike', 'Panda', 'RedTeam', 'Rubik', 'Shaking', 'Singer1', 'Singer2', 'Skater',
              'Skater2', 'Skating1', 'Skating2.1', 'Skating2.2', 'Skiing', 'Soccer', 'Subway', 'Surfer', 'Suv',
              'Sylvester', 'Tiger1', 'Tiger2', 'Toy', 'Trans', 'Trellis', 'Twinnings', 'Vase', 'Walking', 'Walking2',
              'Woman']
              
    otb50 = ['Basketball', 'Biker', 'Bird1', 'BlurBody', 'BlurCar2', 'BlurFace', 'BlurOwl', 'Bolt', 'Box', 'Car1',
             'Car4', 'CarDark', 'CarScale', 'ClifBar', 'Couple', 'Crowds', 'David', 'Deer', 'Diving', 'DragonBaby',
             'Dudek', 'Football', 'Freeman4', 'Girl', 'Human3', 'Human4', 'Human6', 'Human9', 'Ironman', 'Jump',
             'Jumping', 'Liquor', 'Matrix', 'MotorRolling', 'Panda', 'RedTeam', 'Shaking', 'Singer2', 'Skating1',
             'Skating2.1', 'Skating2.2', 'Skiing', 'Soccer', 'Surfer', 'Sylvester', 'Tiger2', 'Trellis', 'Walking',
             'Walking2', 'Woman']
    
    cvpr13 = ['Basketball', 'Bolt', 'Boy', 'Car4', 'CarDark', 'CarScale', 'Coke', 'Couple', 'Crossing', 'David',
              'David2', 'David3', 'Deer', 'Dog1', 'Doll', 'Dudek', 'FaceOcc1', 'FaceOcc2', 'Fish', 'FleetFace',
              'Football', 'Football1', 'Freeman1', 'Freeman3', 'Freeman4', 'Girl', 'Ironman', 'Jogging.1', 'Jogging.2',
              'Jumping', 'Lemming', 'Liquor', 'Matrix', 'Mhyang', 'MotorRolling', 'MountainBike', 'Shaking', 'Singer1',
              'Singer2', 'Skating1', 'Skiing', 'Soccer', 'Subway', 'Suv', 'Sylvester', 'Tiger1', 'Tiger2', 'Trellis',
              'Walking', 'Walking2', 'Woman']
    
  3. 我在results/results_OPE底下放了一个SiamBAN在OTB100上的结果作为demo和参考,如果你跑出来遇到anno和你tracker预测的某个序列下帧结果长度不一致的问题,那就是你跑的有问题,以这里面的为准。你解压后直接运行perfPlot.m就能出来SiamBAN的结果,可以发现和论文里面是一致的:
    请添加图片描述
    在这里插入图片描述

2. 具体使用步骤

  • 按照第一步里面的要求准备好结果文件后,设想这里的文件夹为SiamBAN,里面有100个txt结果,你需要把整个文件夹拷贝到results/results_OPE下面

  • 修改util/configTrackers.m里面的tracker,有多个的话一样的,比如我这里就是(关键name要和results_OPE下的文件夹名一样,namePaper后面的名字是到时候会显示在图中的名字):

    trackers = {
    struct(‘name’,‘SiamBAN’,‘namePaper’,‘SiamBAN’)};

  • 去到perfPlot.m的【62行】,根据自己的需要选择是configSeqs_OTB100, configSeqs_OTB50还是configSeqs_CVPR13。perfPlot.m最下面有画每个属性的图的代码,我目前注释掉了,有需要的可以去掉注释。然后点击运行perfPlot.m就可以出来结果啦

使用中注意的地方:

  1. 如果遇到改了名字结果图中还是原来的tracker的名字,只需要去perfMat/overall下面删掉缓存的.mat文件,其实.mat文件名里面的1alg中的1就是configTrackers.m中tracker的数量,前后运行两次tracker数量不一样的时候是不会出现这个问题的,因为文件保存的名字不一样
    在这里插入图片描述
  2. 如果遇到图中有些位置结果挤不下了,就可以点击下图中的这个按钮,进去后可以拉伸调整位置
    在这里插入图片描述
    【PS】:官方的代码需要rankingType = 'AUC’时能得到正确的success plot;rankingType = 'threshold’时能得到正确的precision plot,而这里改过以后就不需要运行两次了,运行一次就可以直接出来正确的success plot和precision plot

一些其他trackers的结果

我把cvpr2013的论文里面的结果也放在results/results_OPE下面了,注意运行他们的时候选成configSeqs_CVPR13,然后修改util/configTrackers.m里面的tracker就可以一键运行出来,和官网上的几乎一样(个别小数点后两位不一样应该就是结果本身的问题,转化过程中没有误差):
官网图片success
官网图片precision
大家相比较话可以自行选择对应的tracker加入图中。
请添加图片描述
请添加图片描述

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

laizi_laizi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值