2022.04.05更新
更正了第1节 第t帧上的accuracy 公式的错误
2018.09.30更新:
在VOT2015部分补充R score的定义
上一篇博文简单介绍了vot-toolkit的使用方法。当然,那只是操作层面的东西,更重要的是我们通过这个工具得到的各种图表以及图表中的数据。而想要完整地评价一个tracker的性能,其指标必然不会过于简单,所以就有了这篇文章。我想通过梳理VOT2013到VOT2016评价指标的变化,呈现一个更加清晰的思路,让各位对VOT的认识更加深刻。
这篇文章先对VOT进行总体概述,再按照时间顺序分别叙述,循序渐进。
首先简单介绍VOT是什么:
VOT (Visual Object Tracking) 是一个针对单目标跟踪的测试平台,从2013年发展到现在,已经成为单目标跟踪领域主流的三大平台之一(另外两个是OTB、ALOV)。
作为一个测试平台,VOT有着自己的评价指标,并且指标在发展过程中不断完善,每年VOT都会有新的评价指标出现,或是对现有的评价体系进行改进。
1. VOT评价指标的核心
VOT认为,对一个tracker的评价应该具备三个要素:
(1). 评价方法(Performance measures);
(2). 数据集(Datasets);
(3). 评价系统(Evaluation systems)
其中,第一点和第三点是不同的,评价方法侧重于这个评价体系的思路,而评价系统侧重于具体操作,即如何搭建一个可用的测试平台。接下来,对这三点具体阐述:
(1). 评价方法:VOT认为,仅仅根据测试出的数据对trackers进行排名不够精准,对于两个或多个tracker,它们通过测试得出的数据可能会不完全相等,但是在实际情况下它们的表现是相同(performing equally well)的,即实验数据不等同于实际表现,为了更加精准地测出tracker的实际表现,VOT认为应该通过一种算法判定:什么情况下tracker的表现可以视作相同,这被称作tracker equivalence;
(2). 数据集:VOT认为,数据集只有规模大是完全不行的,一个可靠的数据集应该测试出tracker在不同条件下的表现,例如部分遮挡(partial occlusion)、光照变化(illumination changes)等。由此,VOT提出,应该对每一个序列都标注出该序列的视觉属性(visual attributes),以对应上述的不同条件,VOT2013共提出了六种视觉属性:
- 相机移动(camera motion,即抖动模糊)
- 光照变化(illumination change)
- 目标尺寸变化(object size change)
- 目标动作变化(object motion change,和相机抖动表现形式类似,都是模糊)
- 未退化(non-degraded)。
除此之外,VOT认为序列中的每一帧都需要进行视觉属性的标注,即使是同一序列,不同帧的视觉属性也不同,这么做可以对tracker进行更精准的评价。
(3). 评价系统:在VOT提出之前,比较流行的评价系统是让tracker在序列的第一帧进行初始化,之后让tracker一直跑到最后一帧。然而tracker可能会因为其中一两个因素导致其在开始的某些帧就跟丢(fail),所以最终评价系统只利用了序列的很小一部分,造成浪费。而VOT提出,评价系统应该在tracker跟丢的时候检测到错误(failure),并在failure发生的5帧之后对tracker重新初始化(reinitialize),这样可以充分利用数据集。之所以是5帧而不是立即初始化,是因为failure之后立即初始化很可能再次跟踪失败,又因为视频中的遮挡一般不会超过5帧,所以会有这样的设定。
这是VOT的一个特色机制,即重启(reset/reinitialize)。但重启之后的一部分帧是不能用于评价的,这些帧被称作burn-in period,大量实验结果表明,burn-in period大约为初始化之后(包括第一帧的初始化和所有重启)的10帧。
接下来介绍VOT最重要的两个评价指标:Accuracy和Robustness
Accuracy
Accuracy用来评价tracker跟踪目标的准确度,数值越大,准确度越高。它借用了IoU(Intersection-over-Union,交并比)定义,某序列第t帧的accuracy定义为:
ϕ t = A t G ∩ A t T A t G ∪ A t T \phi_t=\dfrac{A_t^G \cap\ A_t^T}{A_t^G \cup\ A_t^T} ϕt=AtG∪ AtTAtG∩ AtT
其中 A t G A_t^G AtG代表第 t t t帧ground truth对应的bounding box, A t T A_t^T AtT 代表第 t t t帧tracker预测的bounding box。
更详细一些,定义 Φ t ( i , k ) \Phi_t(i,k) Φt(i,k)为第 i i i个tracker在第 k k k 次重复(repetition,tracker会在一个序列上重复跑多次)中在第 t t t 帧上的accuracy。设重复次数为 N r e p N_{rep} Nrep,所以 第 t t t 帧上的accuracy定义为:
Φ t ( i ) = 1 N r e p ∑ k = 1 N r e p Φ t ( i , k ) \Phi_t(i)=\frac{1}{N_{rep}}\sum_{k=1}^{N_{rep}} \Phi_t(i,k) Φt(i)=Nrep1k=1∑NrepΦ