文章目录

  • 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的计算方法。

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ϕ表示,即

那么一个理想的EAO就是把N s N_sNs​从1到一个期望的极大值对应的ϕ N s \phi_{N_s}ϕNs​​求个平均,就是期望平均覆盖率,恰如其名,等价于下图的曲线下面积

举个栗子,假如一个跟踪器从第一帧开始跟,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,即

N l o w N_{low}Nlow​和N h i g h N_{high}Nhigh​简单的说就是一个典型视频长度的范围,这些长度的视频占所有视频的概率是0.5,图上看就是概率分布最中间的部分,具体的下面再说。

最后看看著名的EAO图怎么花的,很简单横坐标是排名,纵坐标是算出来的标准EAO,EAO极大值是1,rank极大值也是一,所以排名越往右上的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的离最高点最近的值,如图所示。

然后对于分割出来的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这种计算方法的不合理处,这样也导致了文章开头出现的现象。
欢迎与我探讨~

VOT中的EAO评判指标相关推荐

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

    文章目录 1.期望覆盖率 1.1 A和R 1.2 理想EAO 1.3 标准EAO 2.实际计算 2.1估算EAO 2.2 EAO与R的关系 看VOT竞赛报告时,经常会看到一个奇怪的现象,精度A和鲁棒性 ...

  2. 神经网络各种评判指标

    神经网络评判指标及关系 一. IOU 1. 什么是IOU(IntersecTIon over Union) 二. 什么是准确率,精确率,召回率 1. 基本概念 2. 准确率(Accuracy) 3. ...

  3. 混淆矩阵(confusion matrix)是什么?以及能从混淆矩阵中衍生出来的指标FPR、TPR、FDR、ACC、PPV、NPV分别是什么?对应的概念及公式是什么?

    混淆矩阵(confusion matrix)是什么?以及能从混淆矩阵中衍生出来的指标FPR.TPR.FDR.ACC.PPV.NPV分别是什么?对应的概念及公式是什么? 目录

  4. ML之ME/LF:机器学习之风控业务中常用模型评估指标PSI(人群偏移度指标)的的简介、使用方法、案例应用之详细攻略

    ML之ME/LF:机器学习之风控业务中常用模型评估指标PSI(人群偏移度指标)的的简介.使用方法.案例应用之详细攻略 目录 PSI(稳定度指标)的简介 1.如何计算PSI? (1).PSI计算过程

  5. ML之ME/LF:机器学习中常见模型评估指标/损失函数(LiR损失、L1损失、L2损失、Logistic损失)求梯度/求导、案例应用之详细攻略

    ML之ME/LF:机器学习中常见模型评估指标/损失函数(LiR损失.L1损失.L2损失.Logistic损失)求梯度/求导.案例应用之详细攻略 目录 常见损失函数求梯度案例 1.线性回归求梯度 2.L ...

  6. ML之ME/LF:机器学习中回归预测模型评估指标(MSE/RMSE/MAE)简介、使用方法、代码实现、案例应用之详细攻略

    ML之ME/LF:机器学习中回归预测模型评估指标(MSE/RMSE/MAE)简介.使用方法.代码实现.案例应用之详细攻略 目录 回归预测问题中评价指标简介 RMSE 标准差SD MSE函数

  7. ML之ME/LF:机器学习中的模型评估指标/损失函数(连续型/离散型)的简介、损失函数/代价函数/目标函数之间区别、案例应用之详细攻略

    ML之ME/LF:机器学习中的模型评估指标/损失函数(连续型/离散型)的简介.损失函数/代价函数/目标函数之间区别.案例应用之详细攻略 目录 损失函数的简介 损失函数/代价函数/目标函数之间区别 损失 ...

  8. 分布式CAP理论:为什么CAP理论中的三个指标不能同时满足呢?

    文章目录 前言 分布式系统的特点 分布式系统技术是用来解决什么问题的呢? CAP代表什么含义 一致性(Consistency) 可用性(Availability) 分区容错性(Partition To ...

  9. inodesusedpercent_Linux系统中常用的监控指标整理

    今天小编要跟大家分享的文章是关于Linux系统中常用的监控指标整理.正在从事Linux相关工作的小伙伴们来和小编一起看一看吧,希望能够对大家有所帮助! 1. Linux运维基础采集项 做运维,不怕出问 ...

最新文章

  1. 使用visualVM launcher的一些注意事项
  2. python项目实战:绘制一朵漂亮的玫瑰花
  3. c语言中枚举类型的长度,C中的枚举类型数据的大小是多少?
  4. 在Project中引用zedgraph控件
  5. python 对象引用,可变性,垃圾回收
  6. 【机器学习】流程模板
  7. 一种基于flex的可视化多层流量切分界面的实现
  8. 从《程序设计引导和在线实践》开始
  9. PLC通讯智能网关-不用PLC编程,实现西门子PLC与罗克韦尔(AB)PLC之间数据通讯
  10. atom markdown转换PDF 解决AssertionError: html-pdf: Failed to load PhantomJS module
  11. win10关闭计算机休眠,小编教您win10怎么关闭休眠 win10关闭系统休眠方法
  12. 梦幻西游动画效果展示
  13. 基于C++的P2P穿透文件传输
  14. 程序员工作压力大,为什么还这么多人想做程序员?是因为喜欢吗?
  15. 【键盘】jQuery+CSS3模拟键盘事件(精)
  16. 软件工程课程第二次任务——需求分析与原型设计
  17. 冥土追魂(暴力枚举)
  18. conda创建虚拟环境后文件夹中只有conda-meta文件夹,无法将环境添加到pycharm中
  19. 投影分带方法(我国的6°、3°分法)
  20. HTTP常见状态码404、400、500等对应的错误原因

热门文章

  1. java实现给一个年份,判断其所属生肖年并输出。。。
  2. 物联网开发笔记(48)- 使用Micropython开发ESP32开发板之控制OLED ssd1306屏幕
  3. python 输入参数 获取不到_求助篇python3-re应用-数据无法获取
  4. [腾讯校招] 微信红包
  5. jme示例代码中的素材在哪
  6. 电脑无法使用typec耳机
  7. Java实现excel 2003、2007导入功能
  8. 请尊重一个姑娘的努力 (文/杨熹文)
  9. layui后台管理框架应用
  10. Sping Mvc 学习笔记(一)