关于Multi-Object Tracking 问题的解析
2014-12-23 16:17
155 查看
最近,看了不少CV大神在video analysis 中关于object detection 和object tracking 深入剖析的文章,这里,摘录一些关于multi-object tracking(MOT)的理解,自认为分析的比较全面,来和大家分享一下。
多目标跟踪的问题是这样的:有一段视频,视频是由 N 个 连续帧构成的。从第一帧到最后一帧,里面有多个目标,不断地有出有进,不断地运动。我们的目的是对每个目标,能跟其他目标区分开,能跟踪它在不同帧中的轨迹。最经典的应用就是路口监控中看到的行人了。
Multi-Object Tracking 目前应用的一个典型实例就是『足球事件检索』。事件是一个 high-level 概念,需要基于一些 low-level 信息来做。后者主要就是一些图像处理的东西了。两个 level 之间,会有一些中间层的信息,比如足球的走向。根据师兄的建议,可以考虑对足球场上的运动员进行多目标跟踪,在跟踪轨迹的基础上抽取一些有用的信息
,就能获得我们需要的结果。
Input: detection responses。现在拿来一段视频,我们先用 state-of-art detectors 把各帧中的人检测出来,包括位置、大小。当然,这个检测是有 noise 的,否则也就没必要用各种 MOT 方法来处理了。每个 detection 产生的结果就是 response,它还有一个可信度,比如80%可信,20%可信。
Output: Tracklets. 就是最终得到每个 target 的轨迹。
Challenges: Occlusions,similar appearance,complex motion,false alarms.这些问题基本上是每篇论文都在努力解决的。
Occlusions:有三种,被场景中的物体遮挡,被其他 target 遮挡,被自己遮挡(如变形,无法检测到),遮挡之后,本来应该检测到的 target 就检测不到了。解决的方法如根据 temporal 信息,估计出某一帧的某个位置有 target 被遮挡了。
Appearance:一是怎么把 target 与背景分开;二是怎么把不同的 target 分开。一般需要设计一个很好的外观模型,比如用 HOG、color histogram 等等。
Motion: 最简单的情况是匀速直线运动,这样我们很好预测下一帧中这个 target 在哪,但实际情况往往并不如此。比如可能来了个急转弯,可能突然转身往回走。解决之道,一般要设计更灵活、更复杂的运动模型。
False Alarms: detector 给出了 response,但实际上那个地方并没有 target,误检。这就要根据可信度,以及多种 refinement 方法来甄别了。
Approaches--目前比较有代表性的有两种:
1. Detection-based data association. 多目标跟踪,可以看作一个数据关联问题,连续两帧之间的tracklets or detections 做 link,形成 Longer tracklets。最经典的框架是Nevatia 他们在2008年 ECCV 发表的论文 Robust Object Tracking
by Hierarchical Association of Detection Responses 中提出的多层跟踪框架。low-level: 把连续帧中的 detection responses 连起来成为 short tracklets,并用阈值去掉 unsafe 的,剩下 reliable tracklets。mid-level: 对 low-level 得到的 tracklets,对每对tracklet 计算一算一个 link probability 或 affinity score,然后用
Hungarian 算法做 global optimal assignment,得到 longer tracklets.high-level:这里就是对 mid-level 得到的 tracklets 做 refine 了,比如做一个 entry-exit map,估计tracklets 的 start 和 end,对于没有 reach entry-exit points 的,做一个 completion;又如,寻找 moving group,并据此完善 group 中的 targets 的 tracklets。这是一个基础性的、开放的框架,人们可以在每个层次中不断添加使用新的方法,可以看到,此后的许多论文都是构建在这个框架上的。
2. Energy minimization. 很多问题都可以转化为一个能量最小化的问题:在解空间中,每个解都对应一个 cost或者说是 energy,我们要做的就是把这个 cost function 表示出来,并找到一个合适的方法求最优解。MOT 大神 Anton Milan 在2014年 PAMI 发表的
Continuous Energy Minimization for Multi-Target Tracking 就是一个典型。已知的是所有 detection responses,解空间就是这些个 responses 构成的所有可能的 tracklets 组合。每个组合都有一个 cost ,寻找一个最优的组合。本文清晰的阐述了 cost function 的构成,以及 minimization。它的牛掰之处是构造了一个连续的 cost function,这样容易求解;它用了
jump move,跳出局部最优,寻找全局最优。
Overview
目前,MOT 的研究中,大家都是直接使用目前最好用的 HOG or DPM detector,或者直接使用带有 detection 标记的 dataset,在 detection 方面不下功夫。
low-level 方面,可用的特征就那些,没什么改进的余地。
因此,目前的研究重点放在 mid-level, high-level 上,比如 ICIP14 的 AN ONLINE LEARNED HOUGH FOREST MODEL FOR MULTI-TARGET TRACKING 就是用 Hough Forest 来计算 tracklets 的 affinity score。又如,CVPR 12年的
Multi-Target Tracking by Online Learning of Non-linear Motion Patterns and Robust Appearance Models
,在 motion model、entry/exit map、moving groups 方面给出了很好的方法。对于足球场上的运动员跟踪,运动员与球场容易区分,不同队伍中的运动员容易区分,运动员之间也不太会发生 occlusion;但是,同一队伍中的运动员相似度就比行人大多了,这可能是个挑战。
多目标跟踪的问题是这样的:有一段视频,视频是由 N 个 连续帧构成的。从第一帧到最后一帧,里面有多个目标,不断地有出有进,不断地运动。我们的目的是对每个目标,能跟其他目标区分开,能跟踪它在不同帧中的轨迹。最经典的应用就是路口监控中看到的行人了。
Multi-Object Tracking 目前应用的一个典型实例就是『足球事件检索』。事件是一个 high-level 概念,需要基于一些 low-level 信息来做。后者主要就是一些图像处理的东西了。两个 level 之间,会有一些中间层的信息,比如足球的走向。根据师兄的建议,可以考虑对足球场上的运动员进行多目标跟踪,在跟踪轨迹的基础上抽取一些有用的信息
,就能获得我们需要的结果。
Input: detection responses。现在拿来一段视频,我们先用 state-of-art detectors 把各帧中的人检测出来,包括位置、大小。当然,这个检测是有 noise 的,否则也就没必要用各种 MOT 方法来处理了。每个 detection 产生的结果就是 response,它还有一个可信度,比如80%可信,20%可信。
Output: Tracklets. 就是最终得到每个 target 的轨迹。
Challenges: Occlusions,similar appearance,complex motion,false alarms.这些问题基本上是每篇论文都在努力解决的。
Occlusions:有三种,被场景中的物体遮挡,被其他 target 遮挡,被自己遮挡(如变形,无法检测到),遮挡之后,本来应该检测到的 target 就检测不到了。解决的方法如根据 temporal 信息,估计出某一帧的某个位置有 target 被遮挡了。
Appearance:一是怎么把 target 与背景分开;二是怎么把不同的 target 分开。一般需要设计一个很好的外观模型,比如用 HOG、color histogram 等等。
Motion: 最简单的情况是匀速直线运动,这样我们很好预测下一帧中这个 target 在哪,但实际情况往往并不如此。比如可能来了个急转弯,可能突然转身往回走。解决之道,一般要设计更灵活、更复杂的运动模型。
False Alarms: detector 给出了 response,但实际上那个地方并没有 target,误检。这就要根据可信度,以及多种 refinement 方法来甄别了。
Approaches--目前比较有代表性的有两种:
1. Detection-based data association. 多目标跟踪,可以看作一个数据关联问题,连续两帧之间的tracklets or detections 做 link,形成 Longer tracklets。最经典的框架是Nevatia 他们在2008年 ECCV 发表的论文 Robust Object Tracking
by Hierarchical Association of Detection Responses 中提出的多层跟踪框架。low-level: 把连续帧中的 detection responses 连起来成为 short tracklets,并用阈值去掉 unsafe 的,剩下 reliable tracklets。mid-level: 对 low-level 得到的 tracklets,对每对tracklet 计算一算一个 link probability 或 affinity score,然后用
Hungarian 算法做 global optimal assignment,得到 longer tracklets.high-level:这里就是对 mid-level 得到的 tracklets 做 refine 了,比如做一个 entry-exit map,估计tracklets 的 start 和 end,对于没有 reach entry-exit points 的,做一个 completion;又如,寻找 moving group,并据此完善 group 中的 targets 的 tracklets。这是一个基础性的、开放的框架,人们可以在每个层次中不断添加使用新的方法,可以看到,此后的许多论文都是构建在这个框架上的。
2. Energy minimization. 很多问题都可以转化为一个能量最小化的问题:在解空间中,每个解都对应一个 cost或者说是 energy,我们要做的就是把这个 cost function 表示出来,并找到一个合适的方法求最优解。MOT 大神 Anton Milan 在2014年 PAMI 发表的
Continuous Energy Minimization for Multi-Target Tracking 就是一个典型。已知的是所有 detection responses,解空间就是这些个 responses 构成的所有可能的 tracklets 组合。每个组合都有一个 cost ,寻找一个最优的组合。本文清晰的阐述了 cost function 的构成,以及 minimization。它的牛掰之处是构造了一个连续的 cost function,这样容易求解;它用了
jump move,跳出局部最优,寻找全局最优。
Overview
目前,MOT 的研究中,大家都是直接使用目前最好用的 HOG or DPM detector,或者直接使用带有 detection 标记的 dataset,在 detection 方面不下功夫。
low-level 方面,可用的特征就那些,没什么改进的余地。
因此,目前的研究重点放在 mid-level, high-level 上,比如 ICIP14 的 AN ONLINE LEARNED HOUGH FOREST MODEL FOR MULTI-TARGET TRACKING 就是用 Hough Forest 来计算 tracklets 的 affinity score。又如,CVPR 12年的
Multi-Target Tracking by Online Learning of Non-linear Motion Patterns and Robust Appearance Models
,在 motion model、entry/exit map、moving groups 方面给出了很好的方法。对于足球场上的运动员跟踪,运动员与球场容易区分,不同队伍中的运动员容易区分,运动员之间也不太会发生 occlusion;但是,同一队伍中的运动员相似度就比行人大多了,这可能是个挑战。
相关文章推荐
- 关于Gson解析Object对象问题
- 关于问题:无法解析类型java.lang.Object
- 关于android 的org.json类JsonObject解析值为null的出现的问题
- 关于json解析问题(JSONObject结合map的使用)
- 关于http协议接受解析中出现陌明奇妙的数字问题
- 关于PHP mail函数无法正常解析HTML邮件问题
- 关于ObjectDataSoucrce2个要注意的小问题.
- 关于Acegi配置文件中filterChainProxy的属性filterInvocationDefinitionSource的解析问题
- 关于高性能xml解析问题的再思考
- 关于(object sender, System.EventArgs e)中参数sender和e的问题。
- 关于Ibatis中的executeForObject方法使用时,需要考虑空的问题!
- 关于利用Schema解析XML,生成、编辑XML的节点问题
- 关于connecttonewobject返回-3的问题
- 关于各种无法解析的外部符号问题的相应解决方案
- 关于NSIS 写入注册表的问题, REG_MULTI_SZ 类型
- 关于PreparedStatement.setObject()的问题
- Spring的XML解析中关于DTD的路径问题-
- 用 SuperObject 解析淘宝上的 Json 数据 - 回复 "macrolen" 的问题
- 关于Microsoft TS 71-571 ,MCTS 中Windows CE 6.0下的几个考试问题解析(一)
- 关于 NSIS 写入注册表的问题, REG_MULTI_SZ 类型