基于张量秩一分解的多目标跟踪方法
读‘X. Shi, H.Ling, J.Xing, W.Hu, Multi-target Tracking by Rank-1 Tensor Approximation[J],CVPR,2014’笔记
这篇文章利用了张量的秩一分解建模了多目标跟踪中的data association问题。
首先我们了解下张量的基本知识
张量
张量是向量的推广,阶张量表示为
,每一个元素表示为
.
张量的n模积:张量与矩阵
的n模积表示为
,得到的是新的张量
.
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152114810-947538952.png)
显然,当张量与向量进行n模积时,新的张量的阶数就减少一阶。
秩一张量:如果一个K阶张量能够表示成K个向量的外积,那么该向量称为秩一张量,即
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152115498-1035878526.png)
张量的近似秩一分解:对于K阶张量,寻找K个单位向量
和尺度因子
,使重构误差
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152116732-23702522.png)
最小,则称之为张量近似秩一分解。
令,那么上述最小化问题转化为
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152117310-620348318.png)
因为都是单位向量,所以
,于是
.
那么等价于
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152119295-1485087475.png)
这里表示点乘.
所以张量的近似秩一分解问题就转化为下面的最大化问题
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152120107-753482148.png)
Multi-Dimensioanl Assignment (MDA)
那么张量和多目标跟踪有毫子关系呢?我们先来看看多维数据关联的目标式
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152120545-817304981.png)
这里面呢其实是用来给不同的轨迹标号的,
表示第一帧中的第
个目标在该轨迹上。
将轨迹线表示成下面的形式更容易理解
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152122138-489747700.png)
就表示前后两帧中目标的关联,
。
考虑到关联匹配中都是非负变量,我们将(2)式写成类似于(1)式的形式
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152123201-1727367083.png)
这里的是对两帧之间的关联进行的重新编号,如下图所示。
![1477145036424.jpg enter description here](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152124138-1321613692.png)
所以(3)式和(1)式的不同点就在于约束条件的不同,张量的秩一分解中要求是单位向量,而(3)式中要求得到的满足对应的关联矩阵的每行每列的
单位范数。
文中给出了一种单位范数约束的张量近似迭代算法,如下
![1477145485732.jpg enter description here](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152130420-1530250303.png)
并且给出了算法的收敛性证明,我觉得这点很重要~
![1477145603758.jpg enter description here](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152131217-1923333732.png)
![1477145652159.jpg enter description here](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152132435-408150749.png)
而(3)式中要求的是行列分别单位化,所以这里对算法进行稍微的修改,在每一次更新后对
所对应的矩阵进行行列的
单位化,下面给出了具体算法,其实能发现算法5和算法4除了归一化方式不一样,其他都一毛一样。
![1477146182293.jpg enter description here](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152134498-1771244033.png)
这里
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152135154-1368466495.png)
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152135529-1814849506.png)
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152135795-1221371237.png)
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152136404-1746074178.png)
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152136654-1183093575.png)
基于张量近似的多目标跟踪算法
在实际应用中,对视频进行分批处理,当然批之间存在部分时间重叠,每一批使用算法5得到轨迹段,然后通过重复的点实现轨迹段的串接,形成更长的轨迹。
![1477146432065.jpg enter description here](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152137092-131276180.png)
张量的构建
算法已经有了,现在问题就是张量的构建问题了,其元素项
表示由连续的两帧轨迹假设组成的全局关联假设所对应的能量。
文中给了两种组织形式,分别类似于两帧匹配问题和网络流优化问题。
如果将轨迹的全局能量表示成局部两帧关联的能量之和,那么求解问题就转化为求解K个两帧匹配问题的最优解
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152138592-1992990288.png)
其中表示第i帧中目标的个数。
如果将轨迹的全局能量表示成局部两帧关联的能量之积,那么求解问题就和网络流的优化形式相似。
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152139435-1511725914.png)
关联假设的产生
实际应用中相邻帧之间的目标往往距离较近的才可能存在关联关系,所以为了降低张量的大小,可以对关联加上区域约束,即目标仅可能与一定范围内的下帧中目标产生关联。
对于目标的遮挡、进入和离开问题,论文中引入了虚拟目标的概念。虚拟目标没有实际的物理意义例如位置、表观等,其作用是将孤立的目标引导出去,避免干扰存在真实关联的目标。对每一帧中每个目标的检测,都在相邻帧中设置一个对应的虚拟目标。
算法的初始和终止
三种初始方案:
所有的局部关联
均等
权值初始化,按照关联的强度赋予不同的权重
决策初始化,先用匈牙利算法进行两帧关联,然后对结果进行扰动(这里要保证
, 0-1将使算法陷入静态点)
初始化之后必须行列规范化
两种终止方案:
满足最大迭代次数
相邻迭代能量变化微小
后续处理:
因为最终输出要求是0-1值,所以要对近似张量分解得到的结果进行二值处理,这个时候可以采用匈牙利算法寻找使全局轨迹概率最大的轨迹。
分析与总结
论文的主要创新点在于将MDA(multi-dimensional association)问题放到了张量的近似秩一分解的框架中,通过对张量的分解来获得相邻帧之间的关联关系。
由于标准的张量秩一分解中基向量要求规范化的,而在MDA问题中的约束是对应的关联矩阵行列都是
规范化的,所以论文中给出了一种迭代算法,并通过证明算法每一步都能够使目标函数上升推断出算法是收敛的(单调有界)。
接下来我们来看一看该模型是怎么包括MTT中待解决的几个要素的。
观测变量与状态变量。该模型直接使用的是观测变量,也就是说仅仅是将检测到的变量进行MDA,并不能保证跟踪结果的光滑等特性
动态模型。这部分内容主要包括运动的惯性问题,体现在张量的构建中,论文中给出的
体现了这部分内容
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152142060-889759169.png)
其中
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152142310-790747936.png)
其中分别表示该轨迹上k,k+1帧目标的速度矢量,显然第一项表示速度方向差异,第二项表示速度大小差异。
表观模型。显然相邻帧中同一目标应该是变化缓慢的,(4)式中
则表示的是表观相似性。
![](https://images2015.cnblogs.com/blog/1027162/201610/1027162-20161023152143935-170361706.png)
其中第一项计算的是直方图的交,第二项刻画的关联目标的面积大小相似性。
遮挡
轨迹开始与终止
论文中仅仅在两帧关联时添加了一个虚拟节点,用来处理遮挡、轨迹开始和轨迹终止。
个人觉得这里处理的太粗糙,没有考虑到目标被遮挡程度的问题,也没有说明什么情况下认为是漏检,什么情况下是轨迹终止,更重要的是没有说明什么情况下认为是轨迹的开始,因为不能保证第t帧结束的轨迹与第t+1帧的虚拟目标和第t+1帧新进入的目标谁的关联性更大。
Note. 论文中的算法可以并行处理。且算法中将的行列
规范化松弛成
规范化进行软决策,能够减少引入关联误差的风险。