(MTT)连续能量函数最小化方法

时间:2023-12-31 14:47:50

(MTT)连续能量函数最小化方法

Multitarget tracking
Multi-object tracking
连续能量函数

读“A.Milan,S. Roth, K. Schindler, 'continuous Energy Minimization for Multitarget Tracking[J]',TPAMI,2014.”笔记

当前追踪的主要策略是tracking-by-dection,即首先使用背景减除法或者分类器检测出前景运动目标,然后再对目标轨迹进行估计。

tracking-by-detection的优势:

  • 增强了针对目标漂移时轨迹检测的鲁棒性

  • 提高了追踪失败时的恢复率,也就是说这次没找到下次还能以很高的概率找到正确的轨迹。而比如meanshift、Kalman滤波等跟踪方法一旦目标跟踪失败,后续就很难再次正确跟踪了

而在目标跟踪中,多目标的跟踪问题比单目标的跟踪问题复杂得多。

单目标跟踪问题中可以在每一帧相对较小的区间内检测目标,然后将检测的结果连接起来就可以得到较好的跟踪结果

多目标跟踪中,首先目标个数较多,而且未知,这就使目标的匹配问题较复杂。另外多个目标之间还会相互影响,比如遮挡等,这使得目标之间并不是相互独立的。

目标跟踪方法可以大体归为两类

recursive methods:这类方法当前帧目标的状态仅有之前一帧或者若干帧信息确定。比如经典的Kalman滤波,粒子滤波

nonrecursive methods:这类方法则普遍在一个时间窗口内估计所有的轨迹,也就是说既利用了之前帧的信息也利用到了后续帧的信息。

对于解决现实问题,我们应首先建立模型,然后求解模型。而对于多目标跟踪问题1).输入数据包含噪声较大,需要相对鲁棒的模型,2).如果一个模型能够准确的刻画实际中状态,那么模型很快就会高度非凸,相当复杂难以获得最优解。

所以在nonrecursive的多目标跟踪问题solutions中,有部分方法是构建相对简单的模型以获得该模型最优解,而另外一部分方法则尽可能的构建贴合真实情况的模型,最终使用次优解作为输出。

本文就属于后一类,模型尽可能详细的反映出真实情况,对于非凸的模型,使用次优解代替最优解。论文结论表明,这种方法比构建相对简单模型以获得最优解的方法性能更好。

Notation:

(MTT)连续能量函数最小化方法

Notations.jpg

其中(MTT)连续能量函数最小化方法,即轨迹的长度。

模型

本文提出的模型包含6个部分,即最终轨迹上点与检测响应的紧密程度、前后帧间关联目标的表观相似性、目标的运动特性(同一个目标连续帧之间速度不可能突变)、目标间的相互遮挡问题(多个目标不能出现在同一个空间位置)、运动的持续性(大多数目标都有固定的起始和终止区域)、正则项(不能让轨迹多到每一个响应都是一个轨迹)

(MTT)连续能量函数最小化方法

其中(MTT)连续能量函数最小化方法分别对应于前面6中情况的能量,每种情况都使用的是连续函数,以方便求导。

跟踪位置和检测位置的贴合度

(MTT)连续能量函数最小化方法

其中,(MTT)连续能量函数最小化方法表示第t帧中检测到的目标的个数,(MTT)连续能量函数最小化方法表示检测到的响应是第g个目标的概率,(MTT)连续能量函数最小化方法近似表示目标区域的面积,这就表示如果目标检测和跟踪差别一样大,那么对较大目标的影响较小。(MTT)连续能量函数最小化方法主要用来惩罚对于‘证据’不足的样本。比如一个跟踪目标仅仅0.5可能性,那么这不靠谱的跟踪点当然要对目标影响少一点。但简单的(MTT)连续能量函数最小化方法并没有充分利用不同目标的‘证据’,而是对所有的跟踪点同样对待,其中甚至还包括遮挡位置估计出来的跟踪点。对于遮挡估计出来的点当然希望他最好不要影响我的能量函数,因为你本身就不大可靠,你要是再作用很大,很容易导致误差累计。所以将(MTT)连续能量函数最小化方法修正为与‘证据’有关的量。

(MTT)连续能量函数最小化方法

Note. 由于是直接刻画所有轨迹的能量函数,那么轨迹都是完整轨迹,即轨迹中间是包含对遮挡或检测丢失估计出来的响应的。

Dynamic Model

对于运动目标,其相邻帧间的运动应该是缓慢的、平滑的,所以可能通过限制速度矢量之间的关系刻画运动目标的动态模型

(MTT)连续能量函数最小化方法

Note. (MTT)连续能量函数最小化方法中涉及了时域信息。

Mutual Exlusion

同一时刻不同的目标不可能出现在同一空间位置上,而且MTT中一个目标属于切仅属于一个轨迹,因此应该对同一帧中相互靠近的跟踪点进行惩罚,禁止跟踪点出现重合的状况出现

(MTT)连续能量函数最小化方法

(MTT)连续能量函数最小化方法是指所有的帧,(MTT)连续能量函数最小化方法是和目标大小有关的量

Note. (MTT)连续能量函数最小化方法涉及到了跟踪点的空间相关性。

Trajectory Persistence

跟踪的过程中有可能出现一条轨迹被跟踪成若干段的现象,为了一定程度的缓和这种现象,可以给轨迹的出入口指定一定的区域,那么离这个区域越远的点越不可能作为轨迹的起始点或者终止点。论文中使用sigmod刻画一条轨迹的起始和终止点正确的概率。

(MTT)连续能量函数最小化方法

其中(MTT)连续能量函数最小化方法表示 (MTT)连续能量函数最小化方法距离标定区域最近边界的距离。 论文中soft entry margin 设为(MTT)连续能量函数最小化方法.

Note. (MTT)连续能量函数最小化方法加入了一定的先验知识。

Regularizer

必须对轨迹的数量和长度进行限制,轨迹的个数不可能任意多,那样每个检测都可以作为单独的轨迹了。。。同时每条轨迹不能太短,太短可能是因为噪声引起的,所以加上如下正则项

(MTT)连续能量函数最小化方法

Appearance Model

论文中刻画目标的方式和meanshift方法类似,都是使用直方图描述目标,然后再使用巴氏相关系数评估两个分布的相似度。

为了使目标函数可导,同时让直方图更加鲁棒,在统计直方图时使用了Gaussian平滑

(MTT)连续能量函数最小化方法

其中(MTT)连续能量函数最小化方法表示该目标的中心,(MTT)连续能量函数最小化方法是示性函数,用来限制目标范围内的点。

巴氏相关系数定义为

(MTT)连续能量函数最小化方法

这里(MTT)连续能量函数最小化方法指直方图的长度,论文中将RGB空间图像在每一个channel中都划分出16个bins。

这种描述方式能够很便捷的描述目标,但是对于遮挡或部分遮挡的图像估计出来的响应,获得的直方图肯定是相对不可靠的,所以要降低这种情况的考虑力度,可以通过响应的可见度来评判信赖程度。

(MTT)连续能量函数最小化方法

其中(MTT)连续能量函数最小化方法是关联响应对的可见度的几何平均值(MTT)连续能量函数最小化方法

显然相似度BC越高越好,也就是说AC越小越好。

另外,论文中说实践表明,直接使用AC没有采用软阈值化的方法好,采用软阈值化的方法能够更好的鉴别具有很大相似性的match和identity switch。

(MTT)连续能量函数最小化方法

遮挡

目标跟踪中一个很重要的问题就是遮挡,遮挡会导致跟踪中断、identity switch等问题。遮挡主要包含三种类型

  1. interobject occlusion:这是多目标跟踪中的问题,可能多个目标在运动过程中,会导致其他目标部分遮挡甚至完全遮挡。

  2. scene occlusion:在运动中,目标还有可能被场景中静态物体遮挡,比如行驶中的车辆可能被路标指示牌遮挡等。

  3. self-occlusion:在跟踪问题中,有些目标是非刚体物体,自身可能会出现旋转或者变形,称之为遮挡,比如在行人检测中行人的转体动作等。

本文方法主要考虑了相互遮挡的问题。一般刻画目标遮挡都是使用目标间相互重叠区域所占目标总体大小的比例描述遮挡程度(scene occlusion就是目标和scene的重叠区域),但是为了让目标函数可导,这里使用了二维高斯分布刻画目标,那么目标间的重叠区域就可以使用

(MTT)连续能量函数最小化方法

刻画,其中(MTT)连续能量函数最小化方法表示目标的高斯区域表述。(MTT)连续能量函数最小化方法是目标的区域中心,(MTT)连续能量函数最小化方法表示协方差矩阵

(MTT)连续能量函数最小化方法

两个高斯的乘积还是高斯,所以相互遮挡可以通过下面为归一化的高斯计算

(MTT)连续能量函数最小化方法

现在就要确定谁被遮挡了,也就是说判断谁比较靠近摄像头。文献[1]曾提出一种模型,这种模型认为摄像机一般都是俯视角度拍摄,所以可以通过目标的纵坐标来判定谁靠前。论文中也采用了这种模型,但是为了模型能够可导,论文中使用sigmoid函数去度量目标靠前的概率,比如相对于第i个目标,那么第j个目标在i之前的概率为(MTT)连续能量函数最小化方法.

那么,定义遮挡矩阵(MTT)连续能量函数最小化方法,(MTT)连续能量函数最小化方法表示目标i被目标j遮挡,且遮挡了(MTT)连续能量函数最小化方法的概率。不考虑一个区域被多个目标遮挡,那么就可以评估目标i的可见度(MTT)连续能量函数最小化方法。然后这个max函数又不可导了,所以又要使用指数函数近似,即目标i的可见度为

(MTT)连续能量函数最小化方法

模型求解

显然上述问题是一个非凸问题,那么就没办法直接得到最优解。所以本文提出了一种类似于蒙特卡洛的方法,在确定中引入随机量,使搜索状态有一定的可能性跳出局部最小值,以希望能够找到全局最优值。这里的方法和蒙特卡洛方法的不同在于不是完全随机的跳动,而是选择让目标函数值下降的路线随机跳动。

其算法过程如下:

(MTT)连续能量函数最小化方法

Algorithm.jpg

其中grow,shrink,add, remove.merge,split分别表示估计的生长,收缩,添加,移除,合并与分裂,示意图如下

(MTT)连续能量函数最小化方法

jumps.jpg

这里需要说明的是add过程,如果出现一个可靠都很高的检测响应却未曾划归为任何一个trajectory,那么可以先假设这是一个新轨迹的起点,新轨迹表示为

(MTT)连续能量函数最小化方法

将新轨迹添加到轨迹集合中。

Note.

1.算法在实现的过程中,每一个Jump move中都遍历了所有的轨迹,而在寻找move中最优值的过程中参数的选择使用的是贪婪法。

2.算法的初始化过程使用的是简单的Kalman滤波得到初始的轨迹段。

实验

  1. 关于参数的鲁棒性

    实验表明,算法对模型中6个分量的权重系数在一定区间具有很好的鲁棒性,结果如下图所示,其中(MTT)连续能量函数最小化方法减小时,目标函数值急剧下降反映出(MTT)连续能量函数最小化方法项的重要性,即目标间相互排斥的特性。

(MTT)连续能量函数最小化方法

parameter study.jpg
  1. 算法搜索策略的有效性

    对比了5中搜索策略

  • 找到使目标函数下降最大的move类型和trajectory,并执行move

  • 找到使目标函数下降最大的move类型,并对所有的轨迹执行该类型操作

  • 使用预定义的move顺序,但在每个move中仅仅选择下降最大的一个trajectory

  • 和论文中方法唯一不同点在于预定义的move顺序不同

  • 随机move,就是不保证每次move能量下降

实验结果表明,在所有的搜索策略中,文中给出的搜索策略最棒,而且和第4个搜索策略相比差异不大表明该搜索策略对预定义的move顺序要求不高。

  1. 模型的有效性

    这里对比了四种方法,添加occlusion model + appearance 、 添加occlusion model、不含occlusion model,extended Kalman Filter还有k-shortest paths方法。

    实验结果表明appearance是很有必要的,另外对于目标密度低的场景,occlusion model用处不大,但对于dense scene中的多目标追踪,occlusion explicitly reasoning能显著提升跟踪结果。

总结

该论文从运动的整体性出发,提出了一个整体的,比较贴合运动特征的能量函数,然后通过对该能量函数进行寻优得到较好的跟踪结果。

该能量函数首先考虑了与检测结果的关系,毕竟追踪是源于检测。其次对于跟踪中的响应依据实际运动的特性分别限制了表观相似性、运动一致性、运动目标互斥性,估计的持续性以及显示分析了目标之间的遮挡关系,当然还包括对模型的正则化项处理。

对于高度非凸的能量函数,论文给出了一种结合共轭梯度法寻找局部最优解和jump move寻找全局最优解的方法。

文章的展望

  1. 希望能够利用基于部件的检测提升算法

  2. 希望能够利用机器学习的方法自适应框架中参数的学习、甚至能量项的学习。


  1. B. Wu, R. Nevatia. Detection and tracking of multiple, partially occluded humans by Bayesian combination of edgelet based part detectors[J],IJCV,75(2),247-266