![0a053b9b9298e56dff60eb75e1cee223.png](https://i-blog.csdnimg.cn/blog_migrate/67a75da6cc9bac6e32387c0bb18d3f5d.jpeg)
原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。
其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。
- 书的购买链接
- 书的勘误,优化,源代码资源
1. 导言
目标跟踪是机器视觉中一类被广为研究的重要问题,分为单目标跟踪与多目标跟踪。前者跟踪视频画面中的单个目标,后者则同时跟踪视频画面中的多个目标,得到这些目标的运动轨迹。
基于视觉的目标自动跟踪在智能监控、动作与行为分析、自动驾驶等领域都有重要的应用。例如,在自动驾驶系统中,目标跟踪算法要对运动的车、行人、其他动物的运动进行跟踪,对它们在未来的位置、速度等信息作出预判。
目标跟踪算法可以进行轨迹特征的自动分析和提取,以弥补视觉目标检测的不足,有效的去除错误的检测,增加遗漏的检测,为进一步的行为分析提供基础。相对于多目标跟踪算法,视觉单目标跟踪算法研究的更为广泛,当前解决的相对更好。典型的如Mean shift算法,用卡尔曼滤波、粒子滤波进行状态预测,TLD等基于在线学习的跟踪,KCF等基于相关性滤波的算法等。
对于单目标跟踪算法的测试视频来说,存在一个先验假设是目标总是在摄像机视场范围内,因此即使把矩形框固定在初始位置,有时候仍然能得到一个看起来还好的跟踪结果(如图1)。
![86cb717b346d1e89def7993fcde301ed.png](https://i-blog.csdnimg.cn/blog_migrate/77f1550073cb61eadda9f468c93a97df.jpeg)
多目标跟踪问题没有上述的先验假设,一般情况下,多目标跟踪的对象位置变化很大,跟踪对象可以从场景入口进入,从出口离开,跟踪目标个数不固定。另外,多目标跟踪问题通常追踪给定类型的多个对象,同类对象具有一定的外观轮廓相似性,如下图跟踪场景:
![8660663419377145415fdc34bc63331e.png](https://i-blog.csdnimg.cn/blog_migrate/5dc203cb480910255a92829e59d4075c.jpeg)
相对来说,多目标跟踪问题更加复杂,除了单目标跟踪中存在的物体形变、背景干扰等因素。通常还需要解决以下一些问题:
- 跟踪目标的自动初始化和自动终止,即处理新目标的出现,老目标的消失
- 跟踪目标的运动预测和相似度判别,即准确的区分每一个目标
- 跟踪目标之间的交互和遮挡处理
- 跟丢目标再次出现时,如何进行再识别问题
多目标跟踪任务需要解决比单目标跟踪更多的问题和难点,如何有效地解决这些问题对多目标跟踪算法有重要意义。在这篇文章中,SIGAI将和大家一起对一些经典的视觉多目标跟踪算法进行回顾和归纳,以理解视觉多目标跟踪算法的框架和当前主流算法的框架和基本原理,如果对本文的观点持有不同的意见,欢迎向我们的公众号发消息一起讨论。
2. 视觉多目标跟踪算法的分类
多目标跟踪问题最早出现在雷达信号中目标运动轨迹的跟踪,如同时跟踪飞过来的多架敌人的飞机和多枚导弹。这些算法后来被借鉴用于机器视觉领域的多目标跟踪任务,随着计算机视觉领域的深入研究,近年来研究者对多目标跟踪算法从不同的方面进行了扩展。比如通过扩展单目标跟踪算法来支持多目标的情况,更多的工作从整个视频场景出发,对所有的目标轨迹做了统一的考虑。根据不同的分类标准,多目标跟踪算法有不同的分类方法。比如按照预测校正的跟踪和按照关联方式的跟踪,按照离线方式的关联跟踪和按照在线方式的跟踪,按照确定性推导的跟踪算法和按照概率统计最大化的跟踪等。
按照轨迹形成的时间顺序,多目标跟踪可以分为在线方式的跟踪算法以及离线形式的跟踪过程。如果跟踪的顺序是逐帧方式的:即为在线方式的目标跟踪方法。在线多目标跟踪与人眼实时跟踪目标过程类似,是对每个目标的状态进行估计,然后考虑整体状态的合理性进行约束。这个过程也可以简化为:获得每帧图像检测结果,把检测结果同已有的跟踪轨迹进行关联。如果跟踪算法运行是在视频已经获取结束,所有检测结果都已经提前获取情况下,这种跟踪方法为离线形式的多目标跟踪。离线多目标跟踪算法把检测结果集合作为观察,把轨迹看作检测集合的一种划分,因此跟踪问题转化为子集优化的过程。
按照跟踪算法形式化表示和优化框架过程,多目标跟踪可以分为确定性推导的跟踪和概率统计最大化的跟踪算法(如图3)。
![b5b29c7353dac8d6abb30ad504c0c214.png](https://i-blog.csdnimg.cn/blog_migrate/8bb9da90fc4c9de947b4882ce6371a00.jpeg)
在确定性推导的多目标跟踪框架中,我们把检测和轨迹和匹配看作为二元变量,通过构
造一个整体的目标函数,我们求变量的最佳值,使得目标函数最优,从而得到检测和轨迹的最佳匹配。这种整体的目标函数可以构造为二部图匹配的匹配代价,网络流的代价和,或者直接构造为机器学习中的分类问题进行优化计算。在概率统计最大化的多目标跟踪方法中,检测和轨迹的关系通过概率模型进行形式化,例如基于贝叶斯推导的卡尔曼滤波和粒子滤波,基于构造马尔科夫图模型,通过样本构造学习模型参数,在跟踪过程中计算概率最大化的轨迹结果,而对马尔科夫图模型的一个直接的公式化方法就是构造能量函数,因此能量最小化也是一些多目标跟踪算法常用的方式。
在一些情况下,这两种方法的区分不是非常明确的。比如机器学习算中,也可以采用统计学习方法进行建模,而能量最小化过程的推导实际是一个确定性的步骤。
上述对于多目标跟踪算法的分类,对于帮助理解不同的跟踪算法具有重要作用,而真正决定算法性能的可能并不是这些跟踪算法框架,而是一些更加基础的内容,比如如何构造检测结果的表观模型才能反应目标的特征,采用什么样的特征才能使得同一个目标更像,不同目标差异较大。又比如,如何判断检测结果是不是非常准确,如果不准确的话,特征匹配该如何计算匹配相似度。
对于特征表示的研究,目前广泛采用深度学习的方法,基于深度学习的多目标跟踪算法我们后续介绍。下面我们对经典的多目标跟踪算法进行概要的介绍。
3. 经典视觉多目标跟踪算法介绍
3.1 多假设多目标跟踪算法
多假设跟踪算法(MHT)是非常经典的多目标跟踪算法,由Reid在对雷达信号的自动跟踪研究中提出,本质上是基于Kalman滤波跟踪算法在多目标跟踪问题中的扩展。
定义在k时刻之前的检测为
![5d8ed16228e0882e9137efdcfc028f10.png](https://i-blog.csdnimg.cn/blog_migrate/5d2a6cb938362018e7fc7c2b3f831617.jpeg)
其中公式右侧第一项表示基于前期假设集合和当前假设的观察似然概率,即在历史关联的基础上,当关联
如何对第一项和第二项进行建模?MHT采用了二个概率模型:
- 用均匀分布和高斯分布对关联对应的检测观察建模.
- 用泊松分布对当前假设的似然概率建模
前者表示,当观测是来自一个轨迹T时,它符合T的高斯分布,否则观测是一个均匀分布的噪声。后者表示,在误检和新对象出现概率确定的情况下,出现当前关联的可能性可以通过泊松分布和二项分布的乘积表示。在以上假设下,关联假设的后验分布是历史累计概率密度的连乘,转化为对数形式,可以看出总体后验概率的对数是每一步观察似然和关联假设似然的求和。因此,选择最佳的关联假设,转化为观察似然和关联假设似然累计求和的最大化。在进行具体实现和优化的时侯,I.J.Cox等人提出了一种基于假设树的优化算法,如图4所示。
![7687762632bdf46f255897071134b12d.png](https://i-blog.csdnimg.cn/blog_migrate/083060463b20d204cb9bdcbf73914d42.png)
图4: 左图为k-3时刻三个检测观察和两条轨迹的可能匹配。对于这种匹配关系,可以继续向前预测两帧,如图右。得到一种三层的假设树结构,对于假设树根枝干的剪枝,得到k-3时刻的最终关联结果。
对于k时刻的关联对数似然概率,可以认为是k时刻之前关联观察似然概率的对数求和,由于任何时刻都可能存在多种假设关联,因此到k时刻的假设构成了一种组合假设树的层次关系。例如图4左边表示的是2个轨迹和3个观测之间可能形成的关联假设,可能存在的假设有{观测23=>轨迹1,观测22=>轨迹2, 观测21=>新轨迹}或者{观测22=>轨迹1,观测21=>轨迹2, 观测23=>新轨迹},因此产生2个假设分支。图4右侧是从这2个关联假设出发的三层假设树关系,可以看出随着假设层数的增多,关联假设出现组合爆炸的可能。因此进行必要的剪枝减少假设空间的数目是必须的步骤。那么如何选择最佳的关联呢?I.J.Cox采用了2个步骤来实现。首先,限制假设树的层数为3层。其次,是对每个分支的叶节点概率对数进行求和,最大的分支进行保留,即选择边缘概率最大的那个分支假设作为最后选择的关联。可以把这种选择方法简单的表示为:
![92c0fba29eddee068cf5baf4c17a8a02.png](https://i-blog.csdnimg.cn/blog_migrate/d5e173d60f6f14ec2965c882c161d16c.png)
采用基于均匀分布、泊松分布以及高斯分布的模型,可以高效快速计算选择k-3时优化的假设关联。这种基于似然概率对数累加的方法虽然方便迅速,但是存在一个主要的限制,即假定观测关联符合高斯模型,并且在每一步选择关联假设之后,需要利用Kalman滤波更新轨迹状态。通过对MHT基本公式(3-1)的扩展,可以建立不同的概率模型描述这种多假设关联的全局概率,例如Kim等人在ICCV2015和ECCV2018通过归一化的最小均方差优化算法引入表观模型来扩展MHT算法,取得不错的多行人跟踪结果[2,3]。
3.2 基于检测可信度的粒子滤波算法
如果不限定检测观测为高斯分布,一种采用概率统计的多目标跟踪框架是基于检测可信度的粒子滤波算法[4]。
这个算法分为两个步骤:
- 对每一帧的检测结果,利用贪心匹配算法与已有的对象轨迹进行关联。
- 利用关联结果,计算每个对象的粒子群权重,作为粒子滤波框架中的观察似然概率。
整体的跟踪过程采用粒子滤波框架,如图5中所示。
![b62256bfa8fa1dea71d7cf7c9b393a33.png](https://i-blog.csdnimg.cn/blog_migrate/8cff32f9510f6b41f20649a58deb6c89.jpeg)
图5: 基于检测匹配的联合粒子滤波多目标跟踪算法流程对于每一帧的检测结果(图左)。可以计算与轨迹的匹配矩阵,本方法采用结合匹配结果设计粒子滤波算法(图中),计算跟踪结果(图右)。
下面我们详细说明这两步:
第一步:利用贪心匹配算法关联当前帧检测和已有的对象轨迹。匹配亲和度计算如下:
![6f69f78033a7fd37b5e7b7ccb4404c68.png](https://i-blog.csdnimg.cn/blog_migrate/56bb347bdfbb0102e3402a4d93976450.jpeg)
其中tr表示一个轨迹,d是某一个检测,他们的匹配亲和度计算包含三个部分:在线更新的分类学习模型
计算出匹配亲和度矩阵之后,可以采用二部图匹配的Hungarian算法计算匹配结果。不过作者采用了近似的贪心匹配算法,即首先找到亲和度最大的那个匹配,然后删除这个亲和度,寻找下一个匹配,依次类推。贪心匹配算法复杂度是线性,大部分情况下,也能得到最优匹配结果。
第二步:采用粒子滤波框架,计算每个跟踪对象的粒子权重,计算公式如下:
![722cba893b051757a8d0d4d87f9b896e.png](https://i-blog.csdnimg.cn/blog_migrate/48933fdd73fedf6219b19547d1df72a3.jpeg)
其中tr表示需要跟踪的对象轨迹,p是某个粒子。指示函数I(tr)表示第一步关联中,轨迹tr是不是关联到某个检测结果,当存在关联时,计算与关联的检测d*的高斯密度
![5a70de8cef1a240add02d17730df2ece.png](https://i-blog.csdnimg.cn/blog_migrate/e3dfe356d7bc9f022bbdbfdc19c81a9d.jpeg)
当轨迹tr有检测匹配时,
结合检测可信度的粒子滤波算法对轨迹的初始化采用了感兴趣区域的简单启发式策略。即,进入图像区域边框时,初始化对象;当连续多帧没有关联到检测时终止跟踪。在一些典型数据集上,基于检测可信度的粒子滤波算法可以得到不错的结果,如下表:
![c2240f1d8748fcd97b893be9c379180c.png](https://i-blog.csdnimg.cn/blog_migrate/e2dea2688760f05765de8bcd0576f23f.jpeg)
3.3 基于最小代价流优化的多目标跟踪算法
上述两个算法是基于贝叶斯概率模型的在线多目标跟踪算法。与他们不同,采用最小代价流优化的多目标跟踪算法是基于确定性优化的离线多目标跟踪算法[6]。
定义某条轨迹为
![2c2b5acbc09121c2578c127329fe9f4e.png](https://i-blog.csdnimg.cn/blog_migrate/ccefee1a9dfbef4f4f8fc37f5c2795a8.jpeg)
考虑T={
![8e371b281d5701bf663f6a370788d84c.png](https://i-blog.csdnimg.cn/blog_migrate/4965c8a997555ff391c5c95dc2302af1.jpeg)
上式中,右侧第一项表示轨迹的存在概率对数,第二项表示为在轨迹存在的条件下,检测是真的概率,把每条轨迹展开为检测的链接表示,那么上式可以表示为:
![586f594efd745eb5760fcd02bec88686.png](https://i-blog.csdnimg.cn/blog_migrate/124de726d4146af1308c39d3767b2504.jpeg)
这里新的变量为{
![a4c33a3357343c03750a8f145ddecf5b.png](https://i-blog.csdnimg.cn/blog_migrate/4c8c4f181fc05d8ca7cca78861f6ca3a.jpeg)
由于满足链接只返生在不同检测和同一条轨迹之间,并且轨迹之间互斥,因此满足关系:
![08aad921d0a13a600074a3d5d7f1ccde.png](https://i-blog.csdnimg.cn/blog_migrate/fa7c626fbae3d36c7a82e5c59235de89.jpeg)
仔细观察发现,这里所求解的实际上网络流优化问题中满足代价最小的多个流,如图6。
![24edf36e0d4c89889b7706710db5f00e.png](https://i-blog.csdnimg.cn/blog_migrate/3745539e2d8b6008d2238b7ddd70fb36.jpeg)
图6: 最小代价流描述的检测划分方法,以产生全局最优的多目标跟踪算法。图中表示三帧图像中,分别有2, 4, 3个检测结果时,所产生的网络最小代价流[6]。
这里还有两个问题,网络流中边的代价怎么计算以及轨迹的数目怎么确定。
第一个问题,边的代价根据跟踪中轨迹生成概率、终止概率、相似概率、误检率计算:
![25de3e23f4f818625731a31055557f57.png](https://i-blog.csdnimg.cn/blog_migrate/85b1ff71750fab7edf87ac9b4b0f7ec0.jpeg)
第二个问题,轨迹数目通过迭代比较的方法确定。注意到检测节点代价Ci的值是一个负数,所以轨迹对应的网络流代价也可能小于0。因此,通过遍历不同轨迹数目,可以确定一个全局代价最小的解。这种方式带来算法的低效率,后续很多工作做了相关优化[7, 8]。
3.4 基于马尔科夫决策的多目标跟踪算法
不同于之前基于概率模型的在线多目标跟踪算法,Xiang等人采用了马尔科夫决策过程来推导每个轨迹的生成,称为MDP跟踪算法[9]。这是一种基于机器学习的确定性推导在线目标跟踪算法。
作者把目标跟踪看作为状态转移的过程,如图7。转移的过程用马尔科夫决策过程(MDP)建模。一个马尔科夫决策过程包括下面四个元素:(S, A, T(.),R(.))。其中S表示状态集合,A表示动作集合,T表示状态转移集合,R表示奖励函数集合。一个决策是指根据状态s确定动作a, 即 π: S↦A。一个对象的跟踪过程包括如下决策过程:
- 从Active状态转移到Tracked或者Inactive状态:即判断新出现的对象是否是真。
- 从Tracked状态转移到Tracked或者Lost状态:即判断对象是否是持续跟踪或者暂时处于丢失状态。
- 从Lost状态转移到Lost或者Tracked或者Inactive状态:即判断丢失对象是否重新被跟踪,被终止,或者继续处于丢失状态。
![9bc1753d58829cc5de80d36bfd0ef5b3.png](https://i-blog.csdnimg.cn/blog_migrate/1e093905a370cc16b69401da371351d9.jpeg)
作者设计了三个奖励函数来对上述三种决策进行建模:
第一个奖励函数是:
![f8637c1904f9109053847f86e0e0c1d1.png](https://i-blog.csdnimg.cn/blog_migrate/927089e2b57601d21e33c6c2a845630b.jpeg)
即判断新出现的对象是否为真,y(a)=1时表示转移到跟踪状态,反之转移到终止状态。这是一个二分类问题,采用2类SVM模型学习得到。这里用了5维特征向量:包括x-y坐标、宽、高和检测的分数。
第二个奖励函数是:
![ad630e97e4ae67b24e4366cdb6360f6f.png](https://i-blog.csdnimg.cn/blog_migrate/ed6748cfc31760bd907dad959c378e6e.png)
这个函数用来判断跟踪对象下一时刻状态是否是出于继续跟踪,还是处于丢失,即跟踪失败。这里作者用了5个历史模板,每个模板和当前图像块做光流匹配,emedFB表示光流中心偏差,
第三个奖励函数是:
![492c4d857d40671246b7cc19e3673646.png](https://i-blog.csdnimg.cn/blog_migrate/c0c004c14ab1212e71185636e7a59e6a.jpeg)
这个函数用来判断丢失对象是否重新跟踪,或者终止,或者保持丢失状态不变。这里当丢失状态连续保持超过
表2中是本算法和其他算法在MOT2015测试数据集中运行结果比较,相对其他经典在线跟踪算法,MDP算法具有一定的优势。
![97b572327a89c5e80b9d0fee8e9bb639.png](https://i-blog.csdnimg.cn/blog_migrate/6792f250cfde8888aa2951857924d4e0.jpeg)
表2: 采用马尔科夫决策过程的多目标在线跟踪算法在MOT2015中的评测结果
3.5 基于局部流特征的近似在线多目标跟踪算法
上面介绍的基于马尔科夫决策的在线多目标跟踪是对于当前帧的图像和检测结果,进行即时的轨迹状态更新。在另一类在线跟踪方法中,跟踪状态的最终结果与当前帧有一个小的帧差,这种方法称为近似在线多目标跟踪算法,MHT算法实际就是一种近似在线多目标跟踪算法。这里介绍的NOMT跟踪算法,是采用能量函数最小化设计的近似在线跟踪,对比MHT算法,没有高斯分布的假设,因此应用范围更广泛一些。
NOMT算法的主要思想是,对于当前时刻t,往回看 帧,在t帧和t- 帧之间构造轨迹小段组(tracklets),利用这些轨迹小段组和之前的跟踪目标进行匹配关联,由于轨迹小段包含了比单个检测更加丰富的信息,因此这种关联比目标轨迹直接匹配检测集合更加可靠。同时,此时的匹配包含了 帧信息,因此如果t帧之前的匹配存在错误,在后续的关联中具有纠正。
![161201a39a6f3037e9d2ec4ace6afe6b.png](https://i-blog.csdnimg.cn/blog_migrate/26ef6a039f310bc9a159adcc5fdfaa57.jpeg)
图8: 采用近似在线多目标跟踪NOMT算法的示意图[10]。对于t时刻的关联结果,允许在后续的关联中进行验证,对于错误的关联可以进行改正,从而增强整体跟踪的准确性。
错误的机会,基本的思想如图8中所示。
形式化的表示中,定义
![f6cbc4809616cccc84c37fad54585149.png](https://i-blog.csdnimg.cn/blog_migrate/da4bef68b1f6c4f160e66524fc68991d.png)
其中x就是要求的假设对应的下标。找到使3-15式最小的x,就完成了t帧的推导。如图9所示是详细的过程。
![1d7549570ff7e456b6d11a1c5c820165.png](https://i-blog.csdnimg.cn/blog_migrate/e942a093e5aaff3f7446e5fc53bc6410.jpeg)
对应于一般的马尔科夫随机场,公式3-15也分为两个部分,第一部分是每个节点自身的势函数,表示的是一个轨迹小段和跟踪目标匹配的代价,第二部分定义为随机场的边的势能函数,表示2个跟踪目标m,l匹配两个轨迹小段时的互斥性。
这里节点势能函数定义为:
![3a07eb8e86b2bf4e310a8eb20db02637.png](https://i-blog.csdnimg.cn/blog_migrate/c3c6075f1844230849f005c9e6483745.png)
这个公式包含三项,分别表示轨迹小段中每个检测与跟踪目标的匹配代价,轨迹小段内部每两个检测的匹配代价,以及轨迹小段和跟踪目标之间的表观距离。这里的匹配代价计算作者采用了基于局部光流的匹配划分计算方法,称为ALFD特征。
边的势能函数定义为:
![c9ef6fb27903eaf4ebe291f64f750832.png](https://i-blog.csdnimg.cn/blog_migrate/d19c1fe328706fe201c11f10a245d40c.png)
这里的函数d(.f)表示f时刻的检测,函数o表示重叠率,函数I是表示是否同一个检测。参数α,β分别是两种互斥性的权重,显然后者的权重要大很多,论文中作者分别设为(0.5, 100)。定义好能量函数,计算每两个检测之间的ALFD特征之后,这个函数就可以求解了。利用概率图模型中的联合树算法可以帮助求解公式3-15,找出最优的关联假设。
下表是NOMT算法在MOT2015中的跟踪评测结果:
![62d91d7fac1420f21d271b4c76c69f29.png](https://i-blog.csdnimg.cn/blog_migrate/4931945fed2232d636e802c74f364f90.jpeg)
相比与过去的传统的在线算法,NOMT算法的优点是借助了历史信息和时间片段中的轨迹段信息,因此性能相对较好,但是必须明确的是NOMT具有小的时间延迟( =10),但是在实际应用中,这个延迟几乎是可以忽略的。
4. 视觉多目标跟踪算法在线资源
以上我们讨论了一些非常经典的多目标跟踪算法,这一节我们列举一些开放的多目标跟踪算法的数据集和资源。相对于单目标跟踪而言,多目标跟踪涉及的问题更多,其数据的标定和算法评测也更加复杂,因此开放的数据和代码要相对少很多[11]。表4列出了多目标跟踪算法中常见的公共评测数据集和他们的下载地址。
![5fd8a12a3ee264ebbd6404ba6c9716f3.png](https://i-blog.csdnimg.cn/blog_migrate/2f891e00cc41ecb4787d835fc26fa114.jpeg)
http://www.cvg.rdg.ac.uk/PETS2009/a.html
![a4bd919b845ce827cf75fe3acea19d9c.png](https://i-blog.csdnimg.cn/blog_migrate/e121ab482aced7dca327115092574b5d.jpeg)
http://www.pets2007.net/
![ed095086e0ea8b79ead685e96260b24a.png](https://i-blog.csdnimg.cn/blog_migrate/dd1e8fa7d5565c0297d395eeb2441b00.jpeg)
http://groups.inf.ed.ac.uk/vision/ CAVIAR/CAVIARDATA1/
![46b3bdf0dc4b21989038b4d0415655c7.png](https://i-blog.csdnimg.cn/blog_migrate/28c9d5079645ee8ada56e644783d83e0.jpeg)
http://www-nlpir.nist.gov/projects/tv2008/
![e059d194dc18dc3b122de56ef8baf50f.png](https://i-blog.csdnimg.cn/blog_migrate/dc8c4bcca59fec0da5641650c2983fe8.jpeg)
http://www.d2.mpi-inf.mpg.de/datasets
![b620a45e61d734614a9b184afe9b517b.png](https://i-blog.csdnimg.cn/blog_migrate/24d216259fa27f0ff15448b280f5069b.jpeg)
http://www.vision.caltech.edu/Image_Datasets/ CaltechPedestrians/
![66da010eca227286a0585adb064e5310.png](https://i-blog.csdnimg.cn/blog_migrate/d4a8160357bf8762fbe102845a9e2391.jpeg)
http://www.eecs.qmul.ac.uk/~andrea/avss2007_d.html
![a0db4f1b777a555f828d1760599a6972.png](https://i-blog.csdnimg.cn/blog_migrate/6a9042af9476498b981f2d69bc892d87.jpeg)
www.vision.ee.ethz.ch/~aess/dataset/
![7e77f6daaf90674a78c0d9d1b0581fa8.png](https://i-blog.csdnimg.cn/blog_migrate/ad3f0e2e77b6883afa02e79da9615d22.jpeg)
www.vision.ee.ethz.ch/datasets/
![22fe89a0f8384e59c338bdf7da7a47aa.png](https://i-blog.csdnimg.cn/blog_migrate/7514bebba06e029fe8f3209208182ce6.jpeg)
http://www.robots.ox.ac.uk/ActiveVision/Research/Projects/2009bbenfold_headpose/project.html#datasets
![ac4dfdd6235d68ecc4a5ee016aaeac33.png](https://i-blog.csdnimg.cn/blog_migrate/a522d800236fed987a45fea678f84781.jpeg)
http://www.cvlibs.net/datasets/kitti/eval_tracking.php
![9697c65be903198cd12e36d0c8722ad0.png](https://i-blog.csdnimg.cn/blog_migrate/918b4b072d3e25ad9485e7580a0a7ce5.jpeg)
https://motchallenge.net/data/2D_MOT_2015/
![c81c8eafa7ff27fb2537b1b56f37572f.png](https://i-blog.csdnimg.cn/blog_migrate/7af7771a2d909f0f4290796142cde637.jpeg)
https://motchallenge.net/data/MOT16/
![119ab88751eb62081fc3bcd4e02c1609.png](https://i-blog.csdnimg.cn/blog_migrate/61e22bc013f46a514b829f54ce52a146.jpeg)
https://motchallenge.net/data/MOT17/
表 4: 多目标跟踪算法中常用的公共评测数据集
其中KITTI是自动驾驶平台上车辆、行人等不同目标类型的数据集,包含了跟踪、检测、分割等多种任务。MOT2015,MOT2016 及 MOT2017 包含了过去常用的一些视频序列及作者新增加的一些高清视频,是目前主要的多目标跟踪评测数据集。
表 5 中列出了近年来主要国际会议和期刊论文中开放源码的多目标跟踪算法。需要说明的是,表 4 和表 5 中只列出了我们所搜集到的资源和代码,未来一定有更多的资源开放出来。另外其他未引用的常用资源也请读者补充。
5. 视觉多目标跟踪小结
相比单目标跟踪问题,多目标跟踪面临更多的子问题,主要的区别在于跟踪对象不再确定不变,因此必须考虑对象之间的交互,新对象的进入和离开视场对象的跟踪终止。由于解决这些问题的角度不同,多目标跟踪算法的形式也是各种各样。尽管算法思路相差较大,但是主要的算法框架和其中的关键部分基本类似。在线多目标跟踪中,基本的算法流程仍然是基于状态预测更新的框架;而离线多目标跟踪中,基于图模型的构造和求解是主要的框架。两种类型中,如何有效的设计和学习检测之间的匹配亲和度,或者轨迹与观测的一致性是非常关键的步骤。深度学习是解决这个问题的非常有效的工具,在最新的多目标跟踪算法中已经表现出明显的优势,深度学习的进一步应用是多目标跟踪领域发展的必然趋势,在下一篇文章中,我们将对此进行介绍。
Authors: Choi and Savarese
Publications: ECCV2010
Web Link:
https://www.eecs.umich.edu/vision/mttproject.html
Authors:Milan et al.
Publications: TPAMI2014
Web Link:
http://research.milanton.de/contracking/
Authors: Andriyenko et al.
Publications: CVPR2012
Web Link:
http://research.milanton.de/dctracking/
Authors: Milan et al.
Publications: CVPR2013
Web Link:
https://bitbucket.org/amilan/dctracking
Authors: Zamir et al.
Publications: ECCV2012
Web Link:
http://crcv.ucf.edu/projects/GMCP-Tracker/
Authors: Berclaz et al.
Publications: TPAMI2011
Web Link:
http://cvlab.epfl.ch/software/ksp
Authors: Zhang et al.
Publications: TPAMI2014
Web Link:
http://visionlab.tudelft.nl/spot
Authors: Pirsiavash et al.
Publications: CVPR2011
Web Link:
http://www.ics.uci.edu/~dramanan/
Authors: Rodriguez et al.
Publications: ICCV2009
Web Link:
http://www.mikelrodriguez.com/crowd-tracking-matlab-application
Authors: Possegger et al.
Publications: CVPR2014
Web Link:
https://www.tugraz.at/institute/icg/research/team-bischof/lrs/downloads/occgeo/
Authors: Yoon et al.
Publications: CVPR2016
Web Link:
https://cvl.gist.ac.kr/project/scea.html
Authors: Yu et al.
Publications: CVPR2016
Web Link:
https://sites.google.com/view/shoou-i-yu/home
Authors: Chari et al.
Publications: CVPR2015
Web Link:
https://github.com/viseshchari/TrackingNetFlow
Authors: Dehghan et al.
Publications: CVPR2015
Web Link:
https://cvl.gist.ac.kr/project/rmot.html
Authors: Zhang,et al.
Publications: ECCV2016
Web Link:
http://shunzhang.me.pn/papers/eccv2016/
Authors: Xiang et al.
Publications: ICCV2015
Web Link:
http://cvgl.stanford.edu/projects/MDP_tracking/
Authors: Lenz et al.
Publications: ICCV2015
Web Link:
http://www.cs.toronto.edu/boundTracking/
Authors: Solera et al.
Publications: ICCV2015
Web Link:
http://www.francescosolera.com/images/github
表 5: 近年来开放代码的多目标跟踪算法及代码地址
参考文献
[1] D. Reid. An algorithm for tracking multiple targets. IEEE Transactions on Automatic Control, 1979.
[2] C. Kim, F. Li, A. Ciptadi, and J. Rehg. Multiple Hypothesis Tracking Revisited. In ICCV, 2015.
[3] C. Kim, F. Li, and J. M. Rehg, Multi-object Tracking with Neural Gating Using Bilinear LSTM, in ECCV 2018.
[4] M. D. Breitenstein, F. Reichlin, B. Leibe, E. Koller-Meier, and L. Van Gool. Robust tracking-by-detection using a detector confidence particle filter. In ICCV, 2009.
[5] M. D. Breitenstein, F. Reichlin, B. Leibe, E. K. Meier, and L. V. Gool, Online Multi-Person Tracking-by-Detection from a Single, Uncalibrated Camera, TPAMI, 2010.
[6] L. Zhang, Y. Li, and R. Nevatia, Global Data Association for Multi-Object Tracking Using Network Flows, in CVPR, 2008.
[7] H. Pirsiavash, D. Ramanan, and C. F. Charless. Globally-optimal greedy algorithms for tracking a variable number of objects. In CVPR, 2011.
[8] P. Lenz, A. Geiger, and R. Urtasun. FollowMe: Efficient Online Min-Cost Flow Tracking with Bounded Memory and Computation. In ICCV, 2015.
[9] Y. Xiang, A. Alahi, S. Savarese. Learning to Track: Online Multi-Object Tracking by Decision Making. In ICCV, 2015.
[10] W. Choi. Near-Online Multi-target Tracking with Aggregated Local Flow Descriptor. In ICCV, 2015.
[11] W. Luo, J. Xing, A. Milan, X. Zhang, W. Liu, X. Zhao, and T. Kim,Multiple Object Tracking: A Literature Review. arXiv:1409.7618 (2014).
推荐阅读
[1]机器学习-波澜壮阔40年【获取码】SIGAI0413.
[2]学好机器学习需要哪些数学知识?【获取码】SIGAI0417.
[3] 人脸识别算法演化史【获取码】SIGAI0420.
[4]基于深度学习的目标检测算法综述 【获取码】SIGAI0424.
[5]卷积神经网络为什么能够称霸计算机视觉领域?【获取码】SIGAI0426.
[6] 用一张图理解SVM的脉络【获取码】SIGAI0428.
[7] 人脸检测算法综述【获取码】SIGAI0503.
[8] 理解神经网络的激活函数 【获取码】SIGAI2018.5.5.
[9] 深度卷积神经网络演化历史及结构改进脉络-40页长文全面解读【获取码】SIGAI0508.
[10] 理解梯度下降法【获取码】SIGAI0511.
[11] 循环神经网络综述—语音识别与自然语言处理的利器【获取码】SIGAI0515
[12] 理解凸优化 【获取码】 SIGAI0518
[13] 【实验】理解SVM的核函数和参数 【获取码】SIGAI0522
[14]【SIGAI综述】行人检测算法 【获取码】SIGAI0525
[15] 机器学习在自动驾驶中的应用—以百度阿波罗平台为例(上)【获取码】SIGAI0529
[16]理解牛顿法【获取码】SIGAI0531
[17] 【群话题精华】5月集锦—机器学习和深度学习中一些值得思考的问题【获取码】SIGAI 0601
[18] 大话Adaboost算法 【获取码】SIGAI0602
[19] FlowNet到FlowNet2.0:基于卷积神经网络的光流预测算法【获取码】SIGAI0604
[20] 理解主成分分析(PCA)【获取码】SIGAI0606
[21] 人体骨骼关键点检测综述 【获取码】SIGAI0608
[22]理解决策树 【获取码】SIGAI0611
[23] 用一句话总结常用的机器学习算法【获取码】SIGAI0611
[24] 目标检测算法之YOLO 【获取码】SIGAI0615
[25] 理解过拟合 【获取码】SIGAI0618
[26]理解计算:从√2到AlphaGo ——第1季 从√2谈起 【获取码】SIGAI0620
[27] 场景文本检测——CTPN算法介绍 【获取码】SIGAI0622
[28] 卷积神经网络的压缩和加速 【获取码】SIGAI0625
[29] k近邻算法 【获取码】SIGAI0627
[30]自然场景文本检测识别技术综述 【获取码】SIGAI0627
[31] 理解计算:从√2到AlphaGo ——第2季 神经计算的历史背景 【获取码】SIGAI0704
[32] 机器学习算法地图【获取码】SIGAI0706
[33] 反向传播算法推导-全连接神经网络【获取码】SIGAI0709
[34] 生成式对抗网络模型综述【获取码】SIGAI0709.
[35]怎样成为一名优秀的算法工程师【获取码】SIGAI0711.
[36] 理解计算:从根号2到AlphaGo——第三季 神经网络的数学模型【获取码】SIGAI0716
[37]【技术短文】人脸检测算法之S3FD 【获取码】SIGAI0716
[38] 基于深度负相关学习的人群计数方法【获取码】SIGAI0718
[39] 流形学习概述【获取码】SIGAI0723
[40] 关于感受野的总结 【获取码】SIGAI0723
[41] 随机森林概述 【获取码】SIGAI0725
[42] 基于内容的图像检索技术综述——传统经典方法【获取码】SIGAI0727
[43] 神经网络的激活函数总结【获取码】SIGAI0730
[44] 机器学习和深度学习中值得弄清楚的一些问题【获取码】SIGAI0802
[45] 基于深度神经网络的自动问答系统概述【获取码】SIGAI0803
[46] 反向传播算法推导——卷积神经网络 【获取码】SIGAI0806
[47] 机器学习与深度学习核心知识点总结 写在校园招聘即将开始时 【获取 码】SIGAI0808
[48] 理解Spatial Transformer Networks【获取码】SIGAI0810
[49]AI时代大点兵-国内外知名AI公司2018年最新盘点【获取码】SIGAI0813
[50] 理解计算:从√2到AlphaGo ——第2季 神经计算的历史背景 【获取码】SIGAI0815
[51] 基于内容的图像检索技术综述--CNN方法 【获取码】SIGAI0817
[52]文本表示简介 【获取码】SIGAI0820
[53]机器学习中的最优化算法总结【获取码】SIGAI0822
[54]【AI就业面面观】如何选择适合自己的舞台?【获取码】SIGAI0823
[55]浓缩就是精华-SIGAI机器学习蓝宝书【获取码】SIGAI0824
[56]DenseNet详解【获取码】SIGAI0827
[57]AI时代大点兵国内外知名AI公司2018年最新盘点【完整版】【获取码】SIGAI0829
[58]理解Adaboost算法【获取码】SIGAI0831
[59]深入浅出聚类算法 【获取码】SIGAI0903
[60]机器学习发展历史回顾【获取码】SIGAI0905
[61]网络表征学习综述【获取码】SIGAI0907