Learning to Track: Online Multi-Object Tracking by Decision Making

2024-02-20 17:18

本文主要是介绍Learning to Track: Online Multi-Object Tracking by Decision Making,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

来源:ICCV2015

创新点:把在线MOT的问题看作是Markov决策的过程(MDP),一个目标的生存期用一个MDP来建模。学习一个用于数据关联的相似性函数等价于学习一个MDP的策略。这个MDP策略的学习方式是强化学习,能够充分利用在线学习和离线学习在数据关联方面的优势。此外,所提框架可以利用现存的在线单目标跟踪的方法,将目标的birth/deathappearance/disappearance看成是MDP的状态转换过程。

任何数据关联算法的基础是检测与目标之间的a similarity function。为控制关联的歧义性,把不同线索(外观、运动和位置)联合起来计算相似性是非常有用的。之前的算法依赖于启发式地为相似性函数选择参数模型,并且通过交叉验证调整这些参数,这不利于特征数量的扩展,也不能保证模型的泛化能力。

最近倡导为MOT注入学习能力。在离线学习中,学习是在真正的跟踪开始之前进行,离线运用gt学习一个检测与轨迹间用于数据关联的similarity function。离线学习是静态的,在数据关联中,不能考虑动态的变化和目标的history。而这些信息在解决歧义的时候是非常重要的,尤其是当目标再次出现,需要重新分配missed或者occluded目标的时候。相反,在线学习在整个跟踪的过程中进行学习。通常的方法是根据跟踪结果构建正负训练样本,then,为数据关联训练a similarity function。在线学习能够利用特征和目标的历史信息。然而并没有gt标注。所以,在线方法当在跟踪结果中有错误的时候,可能从错误的训练样本中学习,并且这些错误可以累积,导致跟踪drift

在本文中,作者把在线MOT的问题看成了MDP做决定的问题,一个目标的生存期由一个MDP建模,多个目标的跟踪就用多个MDPs建模。学习一个用于数据关联的相似性函数等价于学习一个MDP的策略。策略学习以强化学习的方式进行,在进行数据关联时,能够从在线学习和离线学习中获益。第一,学习是离线进行的,所以可以用到gt。第二,当跟踪在训练序列中的目标时,学习会发生。所以,MDP可以基于目标的当前状态和历史信息做决定。特别地,当给定一个目标的gt轨迹和一个初始化的相似函数时,MDP将会尝试着跟踪目标,并且从gt中收集反馈信息。根据这一反馈,MDP更新the similarity function来改进跟踪结果。这个similarity function只有当MDP在数据关联中犯错误的时候才会进行更新,这使得可以收集难例训练样本学习这一相似性函数。当MDP能够成功的跟踪到目标时,训练结束。

除了学习策略的优势,所提框架能够处理目标的birth/deathappearance/disappearance,方法是将他们看作MDP中的状态转换。本文方法可以从在线SOT方法中获利,为控制目标的检测失败,在线学习并且更新一个目标的外观模型。

这篇关于Learning to Track: Online Multi-Object Tracking by Decision Making的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/728945

相关文章

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

简单的Q-learning|小明的一维世界(3)

简单的Q-learning|小明的一维世界(1) 简单的Q-learning|小明的一维世界(2) 一维的加速度世界 这个世界,小明只能控制自己的加速度,并且只能对加速度进行如下三种操作:增加1、减少1、或者不变。所以行动空间为: { u 1 = − 1 , u 2 = 0 , u 3 = 1 } \{u_1=-1, u_2=0, u_3=1\} {u1​=−1,u2​=0,u3​=1}

简单的Q-learning|小明的一维世界(2)

上篇介绍了小明的一维世界模型 、Q-learning的状态空间、行动空间、奖励函数、Q-table、Q table更新公式、以及从Q值导出策略的公式等。最后给出最简单的一维位置世界的Q-learning例子,从给出其状态空间、行动空间、以及稠密与稀疏两种奖励函数的设置方式。下面将继续深入,GO! 一维的速度世界 这个世界,小明只能控制自己的速度,并且只能对速度进行如下三种操作:增加1、减

error while loading shared libraries: libnuma.so.1: cannot open shared object file:

腾讯云CentOS,安装Mysql时: 1.yum remove libnuma.so.1 2.yum install numactl.x86_64

【POJ 3666】Making the Grade(简单DP)

首先可以明确一个方面,那就是如果将X改成Y,那么Y肯定是这N个数中的某一个(为什么仔细想想) 之后可以得到一个状态转移那就是dp[i][j]代表已经考虑了i位的情况下,结尾为j的最小更改数。 状态转移为dp[i][j] = min(dp[i-1][k] + abs(a[i] - b[j])) 这样的话可以写出一个初步的代码: #include<cstdio>#include<cst

java基础总结12-面向对象8(Object类)

1 Object类介绍 Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗

王立平--Object-c

object-c通常写作objective-c或者obj-c,是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言。它主要使用于MacOSX和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在gcc运作的系统写和编译,因为gcc含Objective-C的编译器。在MA