本文主要是记录一下是怎么使用GOT10K toolkit对跟踪器进行评估,以及使用python版本的OTB工具包画出最后的结果图。中间也是遇到很多地方不懂,记录下小白磕磕绊绊的过程。
GOT10K toolkit在不同数据集上对跟踪器进行评估
GOT-10k Python Toolkit是一个很强大的工具包,该工具包对目前主要用到的跟踪基准测试集均提供非官方的数据下载接口以及跟踪的实现:OTB (2013/2015), VOT (2013~2018), DTB70, TColor128, NfS (30/240 fps), UAV (123/20L), LaSOT and TrackingNet benchmarks。 (ILSVRC VID and YouTube-BoundingBox (comming soon!))
下面我们将介绍该如何使用:
1下载安装
推荐使用方法
pip install --upgrade got10k
2定义我们需要测试的跟踪器
from got10k.trackers import Tracker
class IdentityTracker(Tracker):
def __init__(self):
super(IdentityTracker, self).__init__(
name='IdentityTracker', # tracker name
is_deterministic=True # stochastic (False) or deterministic (True)
)
def init(self, image, box):
self.box = box
def update(self, image):
return self.box
用该工具包定义自己需要测试的跟踪器时,只需要简单的定义IdentityTracker类里面的init和update函数即可。
- init函数:接收的是测试视频序列当中的初始帧以及初始帧的bbox。
- update函数:接收的是后续帧,返回的是更新后的bbox。
3在GOT10K上运行对不同跟踪器的评估
from got10k.experiments import ExperimentGOT10k
# ... tracker definition ...
# instantiate a tracker
tracker = IdentityTracker()
# setup experiment (validation subset)
experiment = ExperimentGOT10k(
root_dir='data/GOT-10k', # GOT-10k's root directory
subset='val', # 'train' | 'val' | 'test'
result_dir='results', # where to store tracking results
report_dir='reports' # where to store evaluation reports
)
experiment.run(tracker, visualize=True)
# report tracking performance
experiment.report([tracker.name])
如果是其他的数据集,只需要稍微修改一下:
experiments = [
# ExperimentVOT('data/VOT2019', version=2019)
# ExperimentGOT10k('data/GOT-10k', subset='test'),
ExperimentOTB('data/OTB', version=