【技术向】VOT中的EAO是如何计算的

文章目录

  • 1.期望覆盖率
      • 1.1 A和R
      • 1.2 理想EAO
      • 1.3 标准EAO
  • 2.实际计算
      • 2.1估算EAO
      • 2.2 EAO与R的关系

看VOT竞赛报告时,经常会看到一个奇怪的现象,精度A和鲁棒性R的排名都靠前,而EAO,即期望平均覆盖率却不靠前,vice versa,这是怎么回事呢,这篇文章就来说说EAO的计算方法。
【技术向】VOT中的EAO是如何计算的_第1张图片

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_s Ns帧长的一个视频,那么一个跟踪器在这段视频上的覆盖率精度op为每一帧op的均值,op就是bb与gt的交并比用 ϕ \phi ϕ表示,即
2
那么一个理想的EAO就是把 N s N_s Ns从1到一个期望的极大值对应的 ϕ N s \phi_{N_s} ϕNs求个平均,就是期望平均覆盖率,恰如其名,等价于下图的曲线下面积
3
举个栗子,假如一个跟踪器从第一帧开始跟, N s = 1 N_s = 1 Ns=1,那么显然op为1, ϕ \phi ϕ也为1, N s = 2 N_s = 2 Ns=2时,第一帧op为1,第二帧op为0.6,那么 ϕ = 0.8 \phi = 0.8 ϕ=0.8,假如这个 N s N_s Ns极大值就是2,那么EAO就是0.9。一般的,对于短时跟踪器, ϕ N s \phi_{N_s} ϕNs随着 N s N_s Ns增长而降低,也就呈现出图上的曲线,这个是可以反映A和R的,A从计算op上就体现了,R的体现后面再说。

1.3 标准EAO

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

2.实际计算

2.1估算EAO

实际计算理想EAO是很麻烦的事情,因为需要找到很多足够长的视频来确保能够体现跟踪器的综合性能,然后对这么多视频都要测出 N s N_s Ns在一个范围内的各个平均覆盖率值。这里需要注意每一段视频不能重复初始化,只能在第一帧初始化,中间跟丢了就是跟丢了。所以OTB那样的测试方法就是只测了 N s N_s Ns等于每个视频长度的覆盖率精度而已,没有计算其他 N s N_s Ns值的覆盖率。
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 NlowNhighP(Ns)dNs=0.5的离最高点最近的值,如图所示。
【技术向】VOT中的EAO是如何计算的_第3张图片
然后对于分割出来的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 N s N_s Nsa帧的部分因为跟丢了覆盖率都按0算,如果 N s N_s Ns>A,那么这个视频就剔出不统计了,还有一种情况, N s N_s Ns < a,那么只算到 N s N_s Ns为止的覆盖率。通过剪枝或者补零的方式计算所有符合条件的 ϕ 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这种计算方法的不合理处,这样也导致了文章开头出现的现象。
欢迎与我探讨~

你可能感兴趣的:(目标跟踪)