OTB測試之Visual Tracker Benchmark v1.0全過程配置流程---後續
還是看原文比較好:
問題 1
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'的圖了
本人感覺看完我這個文件,就能傻瓜式的跑benchmark了!!!!!