生活随笔
收集整理的這篇文章主要介紹了
OTB100/2015 matlab toolkit的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
其實很早之前就已經寫過關于otb這個數據集測試的博客: OTB官方評估代碼python版本–評估自己跟蹤器,對比其他跟蹤器, 不過當時比較緊急沒有時間使用matlab版本的工具箱來實現畫圖,雖然那個python版本的也能夠做到,好多人也成功使用,但是還是很多人想用matlab畫圖,所以我抽空把這部分寫一下,力爭仔細一步步看完小白也能夠成功測試tracker的結果。
好,廢話不多說。
官網的工具箱一般都是在這里下載:
但是里面的代碼部分有點小bug,而且真值文件只有51個,不能測試OTB2015或者叫做OTB100。這里放上我整理好直接可以用的供大家下載(開通的付費下載,有需用的請我喝杯咖啡,謝謝了):
https://mbd.pub/o/bread/mbd-YpqWlplu
1. 預先準備
我的測試環境是matlab2017a, ubuntu18.04。因為現在大家都只跑OPE了,所以本代碼就不支持TRE和SRE了。(如果平臺是windows,可能里面的路徑分隔符需要改一下,其他的如果有也可以底下評論)你的結果文件里面需要的是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']
我在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就可以出來結果啦
使用中注意的地方:
如果遇到改了名字結果圖中還是原來的tracker的名字,只需要去perfMat/overall下面刪掉緩存的.mat文件,其實.mat文件名里面的1alg中的1就是configTrackers.m中tracker的數量,前后運行兩次tracker數量不一樣的時候是不會出現這個問題的,因為文件保存的名字不一樣
如果遇到圖中有些位置結果擠不下了,就可以點擊下圖中的這個按鈕,進去后可以拉伸調整位置
【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加入圖中。
總結
以上是生活随笔為你收集整理的OTB100/2015 matlab toolkit的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。