VOT中的EAO评判指标

文章目录


看VOT竞赛报告时,经常会看到一个奇怪的现象,精度A和鲁棒性R的排名都靠前,而EAO,即期望平均覆盖率却不靠前,vice versa,这是怎么回事呢,这篇文章就来说说EAO的计算方法。
VOT中的EAO评判指标

 

1.期望覆盖率

1.1 A和R

看上图,今年的VOT18结果,看看EAO第一的LADCF,A和R都不是第一且都不如第二的MFT但是EAO却排第一,很奇怪吧,之前认为EAO是根据A和R计算出来的,其实不是,只是相关而已。先看看A和R,这两者在VOT13中已经提出,其中A就是精度计算,具体来说就是统计每帧预测的bounding box与gt的交并比,然后平均一下得到单个视频的A,而R则被认为是与A相关性最小的一个度量,从鲁棒性的角度衡量算法性能,具体来说就是计算每个视频跟丢的次数,然后算个失败率,这个值和次数正相关,具体计算方法没有提但是单看排名的话,失败次数和失败率是等价的,失败次数即某帧预测的bb与gt的交集为0则判定失败,然后VOT tool会在5帧之后重新初始化跟踪器。EAO则不是直接用A和R计算的。

1.2 理想EAO

EAO的概念最早在VOT15提出,提出的目的也是希望一个好的跟踪器同时拥有好的A和R,如果直接用A和R的两个数加权和则有失公允,所以需要重新定义。
假设有N s N_sNs​帧长的一个视频,那么一个跟踪器在这段视频上的覆盖率精度op为每一帧op的均值,op就是bb与gt的交并比用ϕ \phiϕ表示,即
VOT中的EAO评判指标
那么一个理想的EAO就是把N s N_sNs​从1到一个期望的极大值对应的ϕ N s \phi_{N_s}ϕNs​​求个平均,就是期望平均覆盖率,恰如其名,等价于下图的曲线下面积
VOT中的EAO评判指标
举个栗子,假如一个跟踪器从第一帧开始跟,N s = 1 N_s = 1Ns​=1,那么显然op为1,ϕ \phiϕ也为1,N s = 2 N_s = 2Ns​=2时,第一帧op为1,第二帧op为0.6,那么ϕ = 0.8 \phi = 0.8ϕ=0.8,假如这个N s N_sNs​极大值就是2,那么EAO就是0.9。一般的,对于短时跟踪器,ϕ N s \phi_{N_s}ϕNs​​随着N s N_sNs​增长而降低,也就呈现出图上的曲线,这个是可以反映A和R的,A从计算op上就体现了,R的体现后面再说。

1.3 标准EAO

在VOT中EAO计算并不是从N s = 1 : N m a x N_s = 1:N_maxNs​=1:Nm​ax的,而是N s = N l o w : N h i g h N_s = N_{low}:N_{high}Ns​=Nlow​:Nhigh​,我把它称为标准EAO,即
VOT中的EAO评判指标
N l o w N_{low}Nlow​和N h i g h N_{high}Nhigh​简单的说就是一个典型视频长度的范围,这些长度的视频占所有视频的概率是0.5,图上看就是概率分布最中间的部分,具体的下面再说。
VOT中的EAO评判指标
最后看看著名的EAO图怎么花的,很简单横坐标是排名,纵坐标是算出来的标准EAO,EAO极大值是1,rank极大值也是一,所以排名越往右上的EAO性能越好。
VOT中的EAO评判指标

2.实际计算

2.1估算EAO

实际计算理想EAO是很麻烦的事情,因为需要找到很多足够长的视频来确保能够体现跟踪器的综合性能,然后对这么多视频都要测出N s N_sNs​在一个范围内的各个平均覆盖率值。这里需要注意每一段视频不能重复初始化,只能在第一帧初始化,中间跟丢了就是跟丢了。所以OTB那样的测试方法就是只测了N s N_sNs​等于每个视频长度的覆盖率精度而已,没有计算其他N s N_sNs​值的覆盖率。
VOT是这样算的,因为VOT在跟丢后会重新初始化,这样就把一个视频按失败点可以分成若干段,不用另外初始化了,这样就扩充了视频的个数,节省了计算量,对这些视频的帧数做一个统计,算一个分布图,由于这个是离散的,那么用KDE的方法插值成连续的,然后找到最高点,两边的边界就是同时满足P ( N l o w ) = P ( N h i g h ) P(N_{low})=P(N_{high})P(Nlow​)=P(Nhigh​)且∫ N l o w N h i g h P ( N s ) d N s = 0.5 \int_{N_{low}}^{N_{high}} P(N_s)dN_s = 0.5∫Nlow​Nhigh​​P(Ns​)dNs​=0.5的离最高点最近的值,如图所示。
VOT中的EAO评判指标
然后对于分割出来的N个视频,对每一个N s = N l o w : N h i g h N_s = N_{low}:N_{high}Ns​=Nlow​:Nhigh​计算N个视频的平均覆盖率,计算的时候剔出那些因为帧数超过原视频极限的视频。比如说,一段a帧的视频是从A帧长的视频里分出来的,a<A,但是如果此时计算的a<N s N_sNs​<A,那么这个视频仍要继续算覆盖率,后面>a帧的部分因为跟丢了覆盖率都按0算,如果N s N_sNs​>A,那么这个视频就剔出不统计了,还有一种情况,N s N_sNs​ < a,那么只算到N s N_sNs​为止的覆盖率。通过剪枝或者补零的方式计算所有符合条件的ϕ N s \phi_{N_s}ϕNs​​,最后再求一个平均即得到了估计的标准EAO,就是VOT报告的EAO了。

2.2 EAO与R的关系

之前说过R为鲁棒性,反映为跟丢的次数。讨论极限情况,每一帧的op都为1,A跟踪器和B跟踪器的差别仅在R上,A跟丢1次,B没有跟丢,A即使丢了,初始化后的op仍始终为1,即两者的精度是相同的,鲁棒性不同,来看EAO,假设A在中间帧i跟丢了,所以被分成了2个视频,前一个视频的ϕ \phiϕ显然为0.5,后一个为1,那么EAO为0.75,而B的EAO为1,这就反映了R。以此类推,跟丢的次数越多,被分成的视频就越多,跟丢点越靠前越不利,因为后面大部分的帧的op都算成0了。所以跟丢越多EAO越低。但是EAO和R不等价,很容易看出来,当R相同时,比如都跟丢了一次,但是明显跟丢点在靠前位置的跟踪器的EAO会更低。所以这也反映了VOT这种计算方法的不合理处,这样也导致了文章开头出现的现象。
欢迎与我探讨~

上一篇:机器学习-贝叶斯方法


下一篇:python数据分析——图表