多目标跟踪笔记三:Global Data Association for Multi-Object Tracking Using Network Flows
Abstract
针对用于多目标跟踪的数据关联(data association),本文提出了一种基于网络流(network flow)的优化方法。将最大后验概率(maximum-a-posteriori:MAP)数据关联问题映射到满足轨迹上非重叠(non-overlap)约束的成本流网络(cost-flow network)。通过网络的最小成本流算法(a min-cost flow algorithm),可找到最优的数据关联。扩展该网络:包含一个显式遮挡模型(EOM),可用于处理存在长时间(long-term)目标间遮挡(inter-object occlusions)现象的跟踪。在原算法基础上,采用迭代法可求解基于EOM的网络。轨迹的初始化和终止以及潜在的假观测(potential false observations)都由该框架内在地建模。该方法效率高,并且不需要假设剪枝(hypotheses pruning)。在两个公开的行人数据集上,通过与之前的研究结果进行性能比较,说明了本方法的改进效果。
1. Introduction
目标检测和跟踪的鲁棒性对于许多计算机视觉任务都非常重要。我们讨论的方法是:将每帧图像的目标检测结果作为输入,然后将检测结果关联起来以寻找目标轨迹。并不是所有目标都能在每一帧中被检测到,并且可能存在错误检测,还有一些目标可能被其他目标遮挡;这些因素使得数据关联成为一项困难的任务。
一些方法,如[1,2],试图解决每一帧中的歧义。其他的,例如[3,4,5,6,7,8,9,10]则使用更多的全局信息。然而,这些备选方案的搜索空间随着帧数的增加呈指数级增长,这就需要严格限制搜索窗口以及进行假设剪枝。它们通常还假设所有的检测结果都是正确的,但实际上并不能保证总是正确。
我们提出了一种有效的全局数据关联方法,相比以前的方法,它可以为长的多的序列(窗口)找到最优解。在我们的方法中,数据关联被定义为给定一组目标检测结果作为输入观测值的MAP估计问题。将非重叠轨迹假设建模为成本流网络中的不相交流路径(disjoint flow path);观测似然和转换概率(observation likelihood and transition probabilities)被建模为流成本。采用最小成本流算法可得到全局最优轨迹关联。为处理长时间遮挡情形下的跟踪,通过向网络中添加遮挡节点和约束(只考虑目标之间的遮挡inter-object occlusions),建立显式遮挡模型(EOM)。在原最小成本流算法的基础上,采用迭代法求解基于EOM的网络的最小成本流(a minimal cost flow)。轨迹初始化、终止和目标遮挡推断是该方法的内在行为,因此可以从关联结果中推断出来这些信息。从跟踪结果推断遮挡和漏检的一个例子如图1所示。

本文的其余部分组织如下。相关工作将在第2节中讨论。第3节描述了MAP formulation和及其全局最优解。第4节介绍了显式遮挡模型(EOM)及其迭代求解方法。第5节中给出实现细节。实验结果见第6节。结论见第7节。
2. Related work
要跟踪多个目标,一种方法是逐帧(或在一个小的时间窗口内)做出数据关联决策,如[1,2]。虽然这种方法已经显示出不错的性能,但是在做出关联决策之前考虑更多的帧通常来说应该有助于更好地克服长时间遮挡和误检或漏检造成的歧义。
许多使用更多信息的全局方法已被尝试用来克服检测错误的影响。一种策略是通过整个序列一次优化一个轨迹;这在基于动态规划的方法中已被采用,如[5,6]。然后使用贪婪策略来组合这些轨迹并处理潜在的冲突。由于轨迹是单个分别优化的,这些方法很难对遮挡进行建模。另一种方法是同时优化多个轨迹;多假设跟踪(MHT:multi-Hypothesis Tracking)[3]和联合概率数据关联滤波器(JPDAF:Joint Probabilistic Data Association Filters)[4]是两个具有代表性的例子。此外,在[10]中,检测和轨迹假设的估计与二次布尔规划结合在一起。由于假设搜索空间是组合的(combinatorial),这类方法只能在有限的时间窗口内进行优化,还必须对假设进行剪枝。采样方法例如MCMC[9]同样被用来求解类似问题。在这些方法中,遮挡通常被建模为轨迹的合并和拆分(merging and splitting of trajectories)。
Tracklet Stitching[8]和基于线性规划(LP)的跟踪[7]是寻求在整个序列上同时优化所有轨迹的另外两种方法。[8]首先生成tracklets,它是由检测响应(detection responses)经保守分组形成的轨迹片段(fragments of tracks)。然后使用匈牙利划分算法连接tracklets。这种方法假设所有tracklets都对应于真实的目标轨迹,因此很难适用到原始检测结果,即每一帧中可能出现许多假警(false alarms)。[7]为每个对象轨迹构建一个子图集合,这些子图之间的边(edges)表示对象交互(object interactions)。然后通过线性规划和舍入近似地求解子图集上的多路径搜索问题。它需要假设目标间位置(inter-object positions)相对稳定、目标个数固定。
3. Our approach
我们定义数据关联为MAP问题。然后将MAP问题映射到成本流网络(a cost-flow network),并用最小成本流算法(a min-cost flow algorithm)求解。这样映射是基于寻找非重叠目标轨迹与在图中寻找边不相交路径(edge-disjoint paths)之间存在相似性;后者可以通过网络流算法得到有效的求解。我们首先提出构想,然后提供最小成本流求解方法。
3.1 非重叠约束下的MAP




3.2 最小成本流求解方法



图2 成本流网络的一个例子,包含3个时间步长和9个观测

• Construct the graph G(V, E, C, f) from observation set X
• Start with empty flow
• WHILE ( f(G) can be augmented )
– Augment f(G) by one.
– Find the min cost flow by the algorithm of [12].
– IF ( current min cost < global optimal cost )
Store current min-cost assignment as global optimum.
• Return the global optimal flow as the best association hypothesis
Algorithm 1:Find MAP trajectories by min-cost flow
算法1为数据关联提供了一个通用框架。该方法不同于单独优化各轨迹的方法,也不受困于假设空间组合激增的方法,它能够有效率地找到全局最优解。接下来,我们扩展我们的方法来处理长时间遮挡的跟踪。
4.Explicit Occlusion Model(EOM)
添加occlusion hypotheses


添加occlusion constraint


求解

通常,算法在迭代两轮之后就可以得到最优解。
多目标跟踪笔记三:Global Data Association for Multi-Object Tracking Using Network Flows的更多相关文章
- 论文笔记:Learning Dynamic Memory Networks for Object Tracking
Learning Dynamic Memory Networks for Object Tracking ECCV 2018Updated on 2018-08-05 16:36:30 Paper: ...
- 论文笔记之:Fully-Convolutional Siamese Networks for Object Tracking
gansh Fully-Convolutional Siamese Network for Object Tracking 摘要:任意目标的跟踪问题通常是根据一个物体的外观来构建表观模型.虽然也取得了 ...
- A Hybrid Data Association Framework for Robust Online Multi-Object Tracking(2017 IEEE Transactions on Image Processing)
A Hybrid Data Association Framework for Robust Online Multi-Object Tracking 一种用于鲁棒在线多目标跟踪的混合数据关联框架 摘 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- 构建高性能WEB站点笔记三
构建高性能WEB站点笔记三 第10章 分布式缓存 10.1数据库的前端缓存区 文件系统内核缓冲区,位于物理内存的内核地址空间,除了使用O_DIRECT标记打开的文件以外,所有对磁盘文件的读写操作都要经 ...
- Java IO学习笔记三
Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...
- JAVA WEB学习笔记(三):简单的基于Tomcat的Web页面
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- kvm虚拟化学习笔记(三)之windows kvm虚拟机安装
KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...
- iView学习笔记(三):表格搜索,过滤及隐藏列操作
iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...
随机推荐
- bzoj2186【SDOI2008】沙拉公主的困惑
2186: [Sdoi2008]沙拉公主的困惑 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 2363 Solved: 779 [id=2186& ...
- HDOJ 5383 Yu-Gi-Oh! 最大费用最大流
网络流裸题: 分两部分建图,求不要求满流的最大费用最大流..... Yu-Gi-Oh! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: ...
- Linux声卡驱动移植和測试
一.分析驱动程序,依据开发板改动代码 代码太长,就不贴了,几个注意点: 1. 查看开发板原理图和S3C2410的datasheet,UDA1341的L3MODE.L3DATA.L3CLOCK分别与S3 ...
- iOS中的枚举:enum, NS_ENUM, NS_OPTIONS的使用区别
1.enum可以声明一般类型和位掩码(bitmasked)类型 例如: enum Test{// 一般枚举 TestA, TestB, TestC, }; enum{// 匿名枚举 TestA, Te ...
- 防遗忘笔记,Fedora交叉编译window下的virt-iewer的汉化
1. 汉化代码里的资源 virtviewer使用的是gettex的方案是标准的linux里国际化的方案.按道理仅仅须要改动virtualviewer/po/zh_CN.po的文件. 编译. 然后确认在 ...
- 20170623_oracle基础知识_常见问题
1 如何配置网络服务?两种连接 Oracle 工具? 1) 打开Net Manager 2) 选择服务命名,点击“+ ”号 3 ) 网络服务名: remote协议:tcp/ip 主机名:ip地址 端 ...
- iOS开发基础:OC数组对象NSArray的常用方法
本文介绍了OC的数组对象的基本方法的使用: 因为OC的数组中存储的为对象类型,所以我们可以新建一个Person类,通过Person生成对象进行操作. 其中Person.h中的代码为: [objc] v ...
- 获取Access数据里所有表的名称和表的字段
-------------//获取Access数据库表名 public void GetTableName() { string connSt ...
- PCB SQL Server 代码创建DbLink
代码如下: ) ) ) ) ) SET @serverName = 'DbLinkName' --db链接名 SET @ip = '120.79.36.65' --需连接服务器的IP SET @dbN ...
- 最新省市区划分码code
爬取国家统计局省市区code 提供php爬取脚本以及json和sql https://github.com/zzDylan/area-code 觉得好用给个star,3q