OTB运行代码文件介绍
主要參考鏈接:
使用說明
【OTB使用介紹一】tracker_benchmark_v1.0小白使用配置OTB100
【OTB使用介紹二】對Visual Tracker Benchmark v1.0源碼進行介紹
錯誤說明
OTB 2013 使用教程
tracker_benchmark_v1.0的使用方法
OTB跑KCF算法錯誤合集
OTB(visual tracker benchmark) 的基礎環境配置()如何加自己的算法
這里對各種文件進行簡單介紹:
1.util文件:里面包含各種重要的函數 ,
- 主函數:main_running.m
- 畫圖函數:perfPlot.m
- 視頻圖像的可視化bounding boxes:drawResultBB.m
2.trackers文件:里面包含各種你需要對比的跟蹤算法;要簡單了解可以看trackers.txt文件
3.tmp文件:用來存放臨時結果或者日志文件的目錄;
運行drawResultBB.m得到tmp\imgs\ 存每個幀上不同tracker跟蹤到的boundingbox
4.rstEval文件: 包含了很多用于計算跟蹤性能或者畫出結果的腳本的目錄;
5.results文件:存儲的每個trackers的跟蹤結果的mat文件和perfMat不一樣,這個是相對于bounding box的跟蹤框數據。 results\results_OPE_CVPR13\ 存這種tracker對這種datasets的跟蹤結果,例:CarDark_VR.mat
6.perfMat文件:存儲最終用于畫圖的mat文件, \perfMat\overall\ 存每個tracker對每個dataset的平均結果重疊率以及平均結果誤差率
7 initOmit文件 包含由于遮擋或目標超出視野而被省略的用于跟蹤初始化的幀的注釋 的目錄;
8.figs文件:存儲的是一些實驗跑出的圖片,就是各種屬性的準確度或者成功率圖。\figs\overall\ 最終曲線圖存放
9.anno文件:主要存儲的是數據集的bounding box。
10. main_running.m是用來在測試集上跑跟蹤代碼的,跑出的結果存在results文件夾中;
11 perfPlot.m 用來把測試結果畫出圖來,就是benchmark網上的圖的效果,調用genPerfMat.m來生成用于plot的值
如果你第一次下載tracker_benchmark_v1.0的測試代碼,可以先運行perfPlot.m就可以直接畫出漂亮的圖。只不過這些圖是已有的跟蹤算法和測試結果,作者都保存在results文件夾里面了;
12drawResultBB.m用于畫每個幀上不同跟蹤器的邊界框的主函數。
原文:https://blog.csdn.net/devil_08/article/details/80002404
運行過程介紹
運行main_running.m函數。對于mainrunning函數是主函數,
運行完main_running.m函數,得到的結果是在文件夾results中的
放在哪個文件夾下,通過下面這行代碼決定
如果想畫各種精度曲線的話,就可以運行perfPlot.m文件,這個函數調用genPerMat函數得到需要的精度數據以及錯誤率(DP,OP),然后放到perfMat\overall\文件中,畫出來的圖保存在figs\overall\文件夾下。運行perfPlot.m會調用生成的結果results_SRE_CVPR13和results_TRE_CVPR13,以此畫出結果
畫各種tracker算法在圖像上的效果(bounding boxes),可以調用drawResultBB.m函數,就可以實現。
問題 1
1 在調用main.m跑TRE和SRE時,因為會生成相應的.mat數據文件,如果跑完以后發現自己算法生成的.mat文件有問題,
那么要把該文件刪除
待找到錯誤原因后,重新生成相應的.mat文件。因為程序中寫的是如果已經存在了.mat文件,例如已經存在car4_STC.mat文件,即使該文件中的數據有錯誤,但是重新跑時會默認該文件中的數據寫完,不會重新寫入數據
結果說明
這個是result文件夾的results_TRE_CVPR13里面的CSK的basketball.mat文件
點開第一個可以看到這些
其中res中的數據就是跟蹤算法運行的結果,725是basketball序列的幀數,第一行就是第一幀,4列表示的是(x, y ,w, h),這里x和y表示的是目標位置的中心,w和h就是目標框的寬和高。在后面將自己的代碼加入到OTB中時候,要特別注意不要把w和h寫反了。anno是人工標注的信息,也就是后面評價指標的參照數據。
問題 2
benchmark中 一共有三個指標 OPE、TRE和SRE,當前論文中需要列放的只是OPE結果圖,所以在畫曲線圖時只需要跑OPE即可,
說明
OPE是一次成功率,TRE(20次)和SRE(12次)都是多次的。其中TRE的第一次結果其實就是OPE的結果,所以你可以跑一次TRE和一次SRE就夠了。
即選擇TRE和SRE的話
- 能夠將視頻分割成20段,以驗證TRE。
- 若是SRE,則可以在空間改變初始位置,一共12組
說明
結果可在visual-tracking.net網頁上找到。 https://sites.google.com/site/trackerbenchmark/benchmarks/v10
在頁面中間,有一個指向tracker_benchmark_v1.0_results.zip文件的鏈接。 在文件中沒有單獨的OPE結果文件,但您可以從TRE結果中獲得結果。 如果在Matlab中加載TRE結果文件,則每個數據都包含多個序列運行。 FIRST結果與OPE相同,因此您可以使用數據進行評估。 例如,如果加載文件’david2_ASLA.mat’,您將得到一個變量’results’,即1x20 cell。 第一個單元格’結果{1}'是OPE結果。
選擇OPE,有以下地方可修改
步驟:
(1)
程序中的代碼表示在:main_running.m中的20行
%'OPE','SRE','TRE' 選擇不同的評價標準, 初始為TRE %這里你想得到什么結果就修改為什么評價標準evalType='OPE';(2)
然后調用perfPlot.m畫精度曲線圖,因為只需要得到OPE結果圖,所以在perfPlot.m的103行修改為
evalTypeSet = 'OPE';(3)
做完上述(1)(2)后 調用perfPlot.m畫出來的曲線圖只有成功率圖,而并沒有精確度圖,這時需要做的是:
將105行修改為:
這里原來是AUC,只能出成功率(success)圖,要想出精度(precision)圖的話,需要修改為threshold。這樣就可以兩種圖都出
(4)最后就是drawResultBB.m,這個得到的視頻中跟蹤算法的結果保存在tmp文件夾的img中。如圖所示
這個m文件的運行需要有SRE的結果,因此運行前,需要先選擇SRE并運行一下main文件。
之后就可以得到這樣的結果圖。
即在該文件夾中,有相應的mat文件。
或者更改路徑
pathRes = ‘.\results\results_TRE_CVPR17\MDNet’;% The folder containing the tracking results
關于drawResultBB.m中tracker對應顏色的問題
可以斷點運行觀看,我整理了前十個tracker lable
其中tracker排序是你在configTrackers.m文件中的tracker排序,對應的紅色是第一個tracker,綠色是第二個tracker,一次類推。
問題 3
在跑完perfplot.m后,如果生成的曲線圖不正確或者不理想,想要重新畫曲線圖,此時需要把文件夾…/perfMat/overall下的所有.mat文件刪除,原因和問題1中的一樣。
總結
以上是生活随笔為你收集整理的OTB运行代码文件介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 附加驱动管理软件 ubuntu_机械行业
- 下一篇: doa估计算法 matlab,一种未知信