在博客园 “一只有恒心的小菜鸟” 找来多目标跟踪的综述,很棒,太受用了,学习一下!
其他blog
http://blog.csdn.net/syoung9029/article/details/57101687
多目标跟踪
http://blog.csdn.net/syoung9029/article/details/57101125
多目标跟踪 综述(一)
http://www.cnblogs.com/YiXiaoZhou/p/6013360.html
多目标跟踪 综述(二)
http://www.cnblogs.com/YiXiaoZhou/p/6016759.html
多目标跟踪 综述(三)
http://www.cnblogs.com/YiXiaoZhou/p/6018855.html
下面就我所看的上述内容,再总结一下。
目标跟踪又包括单目标跟踪和多目标跟踪。
单目标跟踪:通过目标的表观建模或者运动建模,以处理光照、形变、遮挡等问题。
多目标跟踪,即Multiple Object Tracking(MOT),也称为Multiple Target Tracking(MTT)。
多目标跟踪问题较单目标跟踪要复杂的多,除了单目标跟踪遇到的问题外,还需要目标间的关联匹配。另外在多目标跟踪任务中经常会碰到 目标的频繁遮挡、轨迹开始终止时刻未知、目标太小、表观相似、目标间交互、低帧率等等问题。
多目标跟踪的主要任务:给定一个图像序列,找到图像序列中运动的物体,并将不同帧中的运动物体一一对应(Identity),然后给出不同物体的运动轨迹。
研究的物体种类:任意,但研究最多的是“行人跟踪”。
了解一些基本术语
了解以下的基本术语对于理解相关的目标跟踪论文是有很大的帮助的。
目标:在一幅图像中,明显区别于周围环境的闭合区域
检测:给出目标在图像中的位置的过程
检测方法:检测方法很多,比如模板匹配。而对于视频中运动目标的检测,可以通过帧间差分法、背景减除法、光流法等实现。
跟踪:在连续图像序列中完成对目标的检测,并把物理意义下的同一目标相关联的过程
检测响应(detection response):检测过程的输出量。又名检测假设(detection hypotheses)、检测观测量(detection observations)
轨迹(Trajectory):MOT系统的输出量,一条轨迹对应这一个目标在一个时间段内的位置序列
小段轨迹(Tracklet):形成Trajectory过程中的轨迹片段。完整的Trajectory是由属于同一物理目标的Tracklets构成的。
数据关联:数据关联是多目标跟踪任务中经常使用的典型的处理方法,用于解决目标间的匹配问题,这里的目标可以是detection responses,也可以是tracklets。
注:所谓的“物理目标”,就是具有相同物理意义的目标,比如两幅图像都出现了“张三”、“李四”,那么两个“张三”就是同一物理目标,虽然有可能两幅图像中“张三”的形状、表观都发生了很大的变化。
MTT的形式化表达
具体的形式化描述如下:
MTT的任务是一个后验概率问题,根据检测响应结果找到目标的轨迹。有2种实现方法。
probabilistic inference:方法适合online tracking,每一幅图像的处理仅和之前的结果有关,类似于Hidden Markov Model,操作分为两个步骤:预测和更新。这类方法有粒子滤波(Praticle Filter)、蒙特卡洛模拟退火(MCMC)等。
deterministic optimization:利用了当前帧的前后帧信息进行最优化求解,具体的方法包括二分图匹配、动态规划、最小流\最大割方法和最大权重独立集等方法。
MTT方法的分类
不同的分类角度对应着不同的分类结果。
1、初始化的角度/数学的角度
主要强调的是目标是如何获得的,可以分为:
Detection Based Tracking (DBT)
Detection Free Tracking (DFT)
区别:
DBT是指在跟踪之前每一幅图像中目标都是detected,也就是说MOT过程包含一个独立的detection过程。这种方法性能比较依赖于detectors的好坏。
DFT需要人工标定第一帧图像中的目标,之后的过程中边检测目标,边跟踪目标。
二者的优缺点比较:
DFT和DBT相比较,DBT使用的更多。主要原因在于DFT需要人工标定目标,对于非第一帧出现的目标或者中间帧消失的目标没办法处理。而DFT相对于DBT的优点在于对目标类型事先要求不高,由人工指定,而DBT的目标类型则由分类器决定。
2、处理过程的角度
数据的处理方式可以分为Online tracking和offline tracking。
online tracking:更适用于实际情况,视频一般是序列化得到的。
offline tracking:更可能得到全局最优解。
所以许多方法采用的是在较小的时间片段内使用offline tracking的方法进行折衷。
总结:起始可以发现不同的分类之间是存在交叉的,比如DFT就是online tracking的过程。当然DBT也存在online tracking方式,比如两帧关联。另外,实际应用中,一般大多数online tracking方法都是probability inference方法,而deterministinc optimization对应着offline tracking。
Note:在实际应用时,泛化的MTT,一般DBT方法要求预先训练好的detector,这就导致跟踪目标的类型时确定的。而最近有学者研究针对于任意类型目标的MTT方法,比如在第一帧中人工标定一个目标,然后在前几帧中检测出了该目标类似的所有目标,使用这些目标训练分类器,后续类似于DBT过程,这样MTT方法就可以针对于不同的视频数据处理了。
好了,前面介绍了什么是MTT问题,MTT问题面临的难点,以及MTT的一般形式化表达和方法的分类。接下来,介绍一下一般的MTT方法都包含哪些component,以保证提出模型、考虑问题更加全面。
一般MTT方法都会包含5个components,分别是:
Appearance Model(外观模型),Motion Model(运动模型),Interaction Model(交互模型), Exclusion Model (排除模型)和Occlusion Mode(遮挡模型)。
注意:在这里与我之前写的论文笔记- Understanding and Diagnosing Visual Tracking Systems一文中所提出来的model不同哦!那篇笔记涉及的是单目标跟踪,提出的component有:
Motion Model、Feature Extractor、Observation Mode(观察模型)l、Model Updater、Ensemble Post-processor等5个。哈哈,都是5个哟!
下面分别对MTT方法中所涉及的5大模型做解释。
Appearance Model
即表观模型,这里既包含目标的视觉表示,也包括目标间相似性、相异性的度量。
视觉表示肯定是基于图像特征了。这里先介绍一些特征。
point feature, 比如Harris角点、SIFT角点、SURF角点等等
Color/intensity(强度) features, 比如最简单的模板、颜色直方图等。(补充:颜色直方图为常用的颜色特征,通过计算每种颜色在图像颜色空间中的比例从而代替了计算每种颜色在图像空间中的位置,对于在空间中没有清晰边缘的目标描述性较强。)
Optical flow, 光流特征,蕴含了时域信息
Gradient/pixel-comparison features, 基于梯度的特征,典型的如HOG特征
Region covariance matrix features, 该特征对于光照和尺度变换相对鲁棒
Depth, 即深度信息,对于视频这种3D数据作用还是蛮大的
others,针对于具体应用的特征,比如对于行人的步态特征等
总之呢,每个特征都不是万能的,有优点也有缺点,比如:
Color histogram简单,容易计算相似性,但其仅仅是统计信息,丢失了区域像素的位置信息。 Points features对于平面内变换非常有效,但对于遮挡和out-of-plane变化就无能无力了。
HOG等梯度特征显然对光照比较鲁棒,但对于遮挡和形变效果很差。
Region covariance matrix鉴别能力很强,但计算太复杂。
Depth则很难获得精确值。等等。
其实呢,SIFT,Haar,HOG特征属于纹理特征。纹理特征对于目标的描述具有很强的描述能力和光照不变性。然而,在目标跟踪过程中,被跟踪目标跟可能发生纹理的改变,能否选择合适的纹理特征则是跟踪效果好坏的关键。而近来很火的CNN特征属于结构性特征。结构性特征是通过深度神经网络训练得到的从简单到复杂具有结构性的特征,深度神经网络就是借鉴了动物视觉皮层的构造,以人为例,人的视觉系统的信息处理是分级的。从低级的 V1 区提取较底层类似于边缘特征,到 V2 区的产生由边角等特征组合而成的形状等特征,再到更高层,以致整个目标。可以说视知觉的过程是一个由底层基础特征到高层结构性特征抽象的过程,随着抽象的层级越来越高,展现出来的特征越具有高层次的表示,面对跟踪任务中变化的目标可以用底层到高层的特征就行描述。
接下来介绍一些目标表示方法。
此外,还有一些其他的方法。比如协方差矩阵表示、基于梯度的表示方法和词袋表示方法等。
上图的部分单词释义:Concatenating(连接)、Summation(求和)、Cascading(级联)。
Motion Model
该成分主要考虑时域上的运动特性,比如速度的渐变等。
该模型主要采用的方式有两种:匀变速模型和变速模型。
匀变速模型
该模型认为速度除了噪声干扰,应该是保持均匀变化的,比如加速度为0。除了加速度为0,还可以考虑加速度非零情况。
非匀变速模型
有些获取的视频并不能保证每帧之间的速度是渐变的,比如低帧高速运动的物体中速度突然发生改变,那么显然匀变速假设就不合理了,所以也有非匀变速模型的提出。
Interaction Model
同一运动场景中的目标,往往运动轨迹会相互影响,比如晨跑中跑步的人往往倾向于扎堆,但又保持距离,随着跑步过程,相距很近的人慢慢的节奏就调整一致等等。
interaction Model包括两种典型的模型: social force model和crowd motion pattern model。
这两种模型介绍如下:
social force model:
该模型认为每个个体受到两部分作用:自身作用和外部作用。
自身作用:1. fidelity,首先目标的目的地不会发生改变;2. constancy,其次个体的速度一般不会发生跳变,包括大小和方向
环境作用:1. attraction,首先同一类的个体往往距离很近;2. repulsion,其次每个目标都会有相应的舒适距离,不能太近;3. coherence,靠近的目标往往速度会比较相近。
这几个fidelity、constancy、attraction、repulsion、coherence都可以用相应的数学公式描述,而这些个公式的算术组合就可以构成interaction model。
crowd motion pattern models:
该模型一般适用于过拥挤的环境,这种情况下,目标往往非常集中以至目标太小,表观等特征根本起不到作用,这时候就场景中特有的运动模式就起到了关键作用了。如果目标受到多方作用的话,可以将多方加权进行综合考虑。
Exclusion Model
这部分主要是指:
1、一个目标只能出现在一条轨迹上
2、 一条轨迹只能对应一个目标,也就是说多个目标不能出现在同一段轨迹上
Occlusion Handling
遮挡问题是多目标跟踪中的难点。处理遮挡问题的方法包括:
1、Part-to-whole,即将目标分解成若干个部件,当目标被部分遮挡时,还可以通过部件的匹配来推测整体目标的匹配
2、Hypothesize-and-test,假设检验的方法根据观测值去估计目标在其他未被检测区域是否会发生遮挡的概率,可以说是一种MAP方法
3、Detection-of-occlusion, 有些学者通过直接对遮挡的样本进行训练,然后使用分类器去检测并判断遮挡区域。
上述4点是最常用的处理遮挡问题的方法,当然还有其他的一些方法,比如在实际应用中也会根据相机位置和区域中心坐标来判断谁被遮挡了,有时这些策略也会联合使用。
多目标跟踪的评价指标
http://www.cnblogs.com/YiXiaoZhou/p/5937980.html
这个网址的内容是根据论文:Evaluating Multiple Object Tracking Performance: The CLEAR MOT Metrics写的笔记。2008年的,文章还是蛮旧的啦。
对于多目标追踪问题,我们认为一个理想的评价指标应该满足下述三点要求:
1、所有出现的目标都要能够及时找到
2、找到的目标位置要尽可能可真实目标位置一致
3、保持追踪一致性,避免跟踪目标的跳变 each object should be assigned a unique track ID which stays constant throughout the sequence.
这三点要求给了设计MOT评价metric的启发:
1、metrics应该能够评价tracker输出结果和真实结果location上的误差精度
2、metrics应该要能够反映出tracker长时间持续追踪目标结构的能力,即追踪到正确的目标轨迹的能力
另外,关于metric的一般要求:
1、metric参数(包括可调节的阈值等)要尽可能的少,才能使评估过程简单直接,实验结果可对比性较强
2、metric要尽可能的直观,易理解,特别是要容易区分不同类型的误差
3、metric应具有较强的适应性,对于MOT的评价指标而言要能够适应2D和3D的不同情况
4、metric的个数要尽可能的少,尽量少的指标却具有很高的表达能力
论文根据上述的criteria提出了一种MOT问题系统、客观的评价过程。
常用的数据集和已经存在的公布代码的方法
常用的数据集:MOTChallenge、KITTI、OTB、VOT等。使用公用的数据集比较好,这样可以直接对比别人的实验结果,不用自己重复实验了。
公开代码的方法:
就目前来说,公布的跟踪器代码太多了,大部分可以通过github找到。
Future directions
1、MOT with video adaptation
大多数基于检测的MOT方法,往往适用范围依赖于离线学习获得的检测器,所以找到一个通用性更好,即适用于任何数据的MOT方法是一个研究热点。
2、Balance between crowd density and completeness of objection representation
往往在密集环境中目标都很小,以至于传统的表观表示方法鉴别能力很弱,如何才能找到一个对于小目标物体依然具有较强鉴别能力的表示方法仍是个研究方向。
3、MOT under multiple cameras.
多视角的数据能够恢复立体视觉,更加符合生物视觉
4、Multiple 3D object tracking.
3D目标追踪,多目视觉能构建3D环境,但构建不了3D目标。
5、MOT with scene understanding
结合场景理解的目标跟踪问题,比如场景的语义信息。个人感觉这个很有发展空间。
6、MOT with other computer vision tasks.
多个视觉任务相互结合,相辅相成。比如步态识别,姿势识别和目标跟踪放在一起处理,信息共享,效果可能也不错。当然,这个结合性很强啦,因为要把多个视觉任务放在一起处理嘛!