計算機視覺中,Visual tracker benchmark是一個相當於比較標準一般的存在,可以對比每個算法在相同的基準之下的性能。這個在CVPR 2013的時候發表的,下面是原文鏈接:
Online Object Tracking: A Benchmark (CVPR 2013)
http://faculty.ucmerced.edu/mhyang/papers/cvpr13_benchmark.pdf
官方鏈接:
http://cvlab.hanyang.ac.kr/tracker_benchmark/index.html
在2015年的時候數據集由原來的50個序列擴充到現在的100個。
現在多數使用的是Benchmark V1.0來運行測試所有tracking的結果,在官網下載完代碼之後,裏面已經存在了關於各種tracker在不同數據集上的結果了。
想要驗證自己的tracker在這個基準上的結果,說來非常的簡單。
直接的方法:
首先將代碼先拷到benchmark_v1.0/tackers/這個文件夾下,你會發現裏面已有好幾個算法的代碼文件夾了。
這邊注意了,我就是這樣的,沒有注意把代碼拷貝進去之後要自己寫一個調用函數,benchmark在運行的時候調用我們的算法的函數,就是每個tracker文件夾當中的run_trackers名字,這個一定要有,格式也很簡單,參照其他的算法應該很容易就能寫出來了。
第二步是:到benchmark_v1.0/util/configTrackers.m這個函數中,在trackers1這個結構體中添加上你的代碼的名字,比如:struct(‘name’,’KCF’,’namePaper’,’KCF’),…。
如果只想運行自己的算法結果,就把整個文件代碼註釋掉,重寫:
function trackers=configTrackers
trackers=[{struct('name','算法名字','namePaper','算法名字')}];
第三步是:運行main_running.m函數。這個時候就是等待了,等待過程還是很漫長的,這個根據自己的算法的運行速度。等所有結果跑完了之後,結果就保存在results文件夾裏面,可以打開看一下,會有各個序列集對應自己算法名字的結果文件存在。
PS:這邊如果提示error,所有序列集都是error的話,就是你以前配置錯誤了,跑出來結果是空的,這個時候去results文件夾裏面把以前錯誤的結果刪除掉,重新運行就沒問題了。
第四步是:運行perfPlot.m函數,根據你運行出來的結果畫出可視化的曲線。如果這邊報錯問價找不到什麼的,點到錯誤的地方把路徑修改一下就應該沒有什麼問題的。
這個過程當中你可能會遇到一些問題:第一個會是路徑的問題,這個需要你更改的路徑有configTrackers.m和configSeqs.m裏面的路徑,對應修改就可以了。還有一點就是在修改configTrackers.m的時候,你可能添加一個自己的tracker到已知的結構體當中會遇到運行main_running函數時出現錯誤,這個時候嘗試單獨把自己的tracker作爲一個結構體,把其他的算法都註釋掉,只剩下自己的tracker然後試試,因爲這個時候其他的tracker結果都已經保存下來了,只需要自己的tracker的結果出來就好了。
其他的應該就沒什麼問題了!
————————————————————————————————————————————