生活随笔
收集整理的這篇文章主要介紹了
OTB100/2015 matlab toolkit的使用
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
其實(shí)很早之前就已經(jīng)寫過(guò)關(guān)于otb這個(gè)數(shù)據(jù)集測(cè)試的博客: OTB官方評(píng)估代碼python版本–評(píng)估自己跟蹤器,對(duì)比其他跟蹤器, 不過(guò)當(dāng)時(shí)比較緊急沒有時(shí)間使用matlab版本的工具箱來(lái)實(shí)現(xiàn)畫圖,雖然那個(gè)python版本的也能夠做到,好多人也成功使用,但是還是很多人想用matlab畫圖,所以我抽空把這部分寫一下,力爭(zhēng)仔細(xì)一步步看完小白也能夠成功測(cè)試tracker的結(jié)果。
好,廢話不多說(shuō)。
官網(wǎng)的工具箱一般都是在這里下載:
但是里面的代碼部分有點(diǎn)小bug,而且真值文件只有51個(gè),不能測(cè)試OTB2015或者叫做OTB100。這里放上我整理好直接可以用的供大家下載(開通的付費(fèi)下載,有需用的請(qǐng)我喝杯咖啡,謝謝了):
https://mbd.pub/o/bread/mbd-YpqWlplu
1. 預(yù)先準(zhǔn)備
我的測(cè)試環(huán)境是matlab2017a, ubuntu18.04。因?yàn)楝F(xiàn)在大家都只跑OPE了,所以本代碼就不支持TRE和SRE了。(如果平臺(tái)是windows,可能里面的路徑分隔符需要改一下,其他的如果有也可以底下評(píng)論)你的結(jié)果文件里面需要的是100個(gè)(如果是OTB100)以序列名為命名的txt文件,里面的bbox的格式為xywh, OTB50或者CVPR13的序列名也保持和下面的一致(如果不一致運(yùn)行會(huì)報(bào)錯(cuò)), 如果是pysot-toolkit跑出來(lái)的就直接可以用我這個(gè):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']
我在results/results_OPE底下放了一個(gè)SiamBAN在OTB100上的結(jié)果作為demo和參考,如果你跑出來(lái)遇到anno和你tracker預(yù)測(cè)的某個(gè)序列下幀結(jié)果長(zhǎng)度不一致的問(wèn)題,那就是你跑的有問(wèn)題,以這里面的為準(zhǔn)。你解壓后直接運(yùn)行perfPlot.m就能出來(lái)SiamBAN的結(jié)果,可以發(fā)現(xiàn)和論文里面是一致的:
2. 具體使用步驟
-
按照第一步里面的要求準(zhǔn)備好結(jié)果文件后,設(shè)想這里的文件夾為SiamBAN,里面有100個(gè)txt結(jié)果,你需要把整個(gè)文件夾拷貝到results/results_OPE下面
-
修改util/configTrackers.m里面的tracker,有多個(gè)的話一樣的,比如我這里就是(關(guān)鍵name要和results_OPE下的文件夾名一樣,namePaper后面的名字是到時(shí)候會(huì)顯示在圖中的名字):
trackers = {
struct(‘name’,‘SiamBAN’,‘namePaper’,‘SiamBAN’)};
-
去到perfPlot.m的【62行】,根據(jù)自己的需要選擇是configSeqs_OTB100, configSeqs_OTB50還是configSeqs_CVPR13。perfPlot.m最下面有畫每個(gè)屬性的圖的代碼,我目前注釋掉了,有需要的可以去掉注釋。然后點(diǎn)擊運(yùn)行perfPlot.m就可以出來(lái)結(jié)果啦
使用中注意的地方:
如果遇到改了名字結(jié)果圖中還是原來(lái)的tracker的名字,只需要去perfMat/overall下面刪掉緩存的.mat文件,其實(shí).mat文件名里面的1alg中的1就是configTrackers.m中tracker的數(shù)量,前后運(yùn)行兩次tracker數(shù)量不一樣的時(shí)候是不會(huì)出現(xiàn)這個(gè)問(wèn)題的,因?yàn)槲募4娴拿植灰粯?br /> 如果遇到圖中有些位置結(jié)果擠不下了,就可以點(diǎn)擊下圖中的這個(gè)按鈕,進(jìn)去后可以拉伸調(diào)整位置
【PS】:官方的代碼需要rankingType = 'AUC’時(shí)能得到正確的success plot;rankingType = 'threshold’時(shí)能得到正確的precision plot,而這里改過(guò)以后就不需要運(yùn)行兩次了,運(yùn)行一次就可以直接出來(lái)正確的success plot和precision plot
一些其他trackers的結(jié)果
我把cvpr2013的論文里面的結(jié)果也放在results/results_OPE下面了,注意運(yùn)行他們的時(shí)候選成configSeqs_CVPR13,然后修改util/configTrackers.m里面的tracker就可以一鍵運(yùn)行出來(lái),和官網(wǎng)上的幾乎一樣(個(gè)別小數(shù)點(diǎn)后兩位不一樣應(yīng)該就是結(jié)果本身的問(wèn)題,轉(zhuǎn)化過(guò)程中沒有誤差):
官網(wǎng)圖片success
官網(wǎng)圖片precision
大家相比較話可以自行選擇對(duì)應(yīng)的tracker加入圖中。
總結(jié)
以上是生活随笔為你收集整理的OTB100/2015 matlab toolkit的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。