目录
- C-COT:Continuous Convolution Operator Tracker
- 文章侧重点
- 连续卷积算子
- 目标追踪框架
- 初始化过滤器:
- 追踪流程
- ECO
- 文章侧重点
- 因式卷积因子
- 生成采样空间模型
- 模型更新策略
论文链接:C-COT:Beyond Correlation Filters: Learning Continuous
Convolution Operators for Visual Tracking + ECO: Efficient Convolution Operators for Tracking 提取码:qqzd
代码:python实现的eco——pytracking
参考博客:C-COT – 超越相关滤波:学习连续卷积算子(Continuous Convolution Operators)
https://zhuanlan.zhihu.com/p/67819411
C-COT:Continuous Convolution Operator Tracker
文章侧重点
- 因为梯度特征(HOG)、颜色空间的直方图、浅层卷积网络的深度特征是不同分辨率的特征,传统的KCF或者DCF算法无法将不同分辨率的特征通道进行融合。C-COT则基于深度特征+手工特征,提出连续卷积算子,在连续域实现多个分辨率特征的融合。
- C-COT的主要贡献在于提出一个理论框架,可以在连续空间域中学习一个具有判别力的卷积算子。文中重点阐述了理论框架与公式推导。
- 该框架与传统的相关滤波算法对比的优势在于:可以融合多分辨率(multi-resolution)的特征图【其实就是针对不同分辨率的特征训练不同的卷积滤波器,再在score map层面上加起来】;可以进行准确的像素定位,因为文中还将C-COT方法应用到特征点追踪(feature point tracking)benchmark上。
连续卷积算子
- 连续卷积算子的实现,实际是针对一维特征域:
- 首先,利用三次插值核函数将离散的特征插值得到连续的特征;
- 再将真值 y y y 映射为以目标估计为中心的高斯分布(为了能在连续域做相关性运算)
- 在连续域中训练一个连续卷积算子(也可以看作卷积滤波器),将连续域中的目标特征映射为目标置信函数(即对应特征是追踪目标的概率值)。
- 针对高维的特征:
- 分别训练不同的卷积滤波器
- 分别与连续域中的目标特征作卷积操作,得到不同分辨率下的score map
- 将这些score map按照对应的像素点加起来,得到最终的目标特征对应的置信函数,我们通过寻找图片区域中的最大置信分数来定位目标。
目标追踪框架
初始化过滤器:
即,利用待追踪序列的第一帧的信息,确定要追踪的目标,并用已知的追踪目标的特征初始化(训练)卷积滤波器的参数。
- 处理思路是首先提取第一帧中的特征 X X X;要通过在傅里叶域最小化泛函得到最佳的卷积滤波器的参数:利用公式5计算置信分数函数 s s s 的傅里叶系数。
- 处理步骤:
- 首先利用离散的傅里叶变换得到一个粗略的估计——即网格搜索方法:在空间的离散点处估计得分函数,找到最大值;
- 最大值作为傅里叶级数展开的初始值,进行5次标准牛顿迭代,得到粗略的卷积滤波器的参数估计。
追踪流程
- 从预训练好的深度网络中提取出多分辨率特征图;
- 在每一帧采样一个训练样本 x j x_j xj,采样的方法是以目标为中心,裁剪出目标边界框面积 5 2 5^2 52倍大的图片区域。越靠近当前帧的采样的训练样本的权重越大。最大的保存400帧历史帧。
- 应用多尺度估计,5个尺度,相对尺度因子1.02。最大化网格搜索后,进行 5 次牛顿迭代;
- 求解正规方程以训练滤波器,采用共轭梯度法进行迭代,在第一帧中,使用100次迭代找到滤波器系数 的初始估计,随后的帧中,用当前的滤波器初始化CG(共轭梯度),每帧五次迭代就足够。
ECO
文章侧重点
-
文章针对当前相关滤波追踪器存在的问题做如下总结:
- 模型参数量过大使得在线更新容易过拟合。 高维特征,尤其是深度特征使得目标外观模型的参数急剧上升。例如上文的C-COT连续更新的参数多达800,000个,同时在线更新的采样样本缺乏多样本,容易引起模型对目标的某一位置过拟合,尤其是当目标出现尺度变化、变形等问题时,根据历史帧预测目标框裁剪的样本本来就可能不精确。
- 在线更新的训练样本缺乏丰富的样本。由于当前的在线相关滤波追踪模型都有一个迭代优化算法来实现模型的在线更新以应对不同的挑战。那么数据对于更新的重要性不言而喻。
- 当前的模型的连续更新策略是逐帧更新,使得模型的鲁棒性降低了。 由于新出现的Siamese网络是不需要在线更新的,但仍保持了较高的追踪精度。但是我认为这不是在线更新造成的,主要还是采样样本的准确度问题,因为历史帧中采样的更新样本是根据历史帧中预测的目标框为中心裁剪出来的。所以当历史帧样本的不准确性使得当前的模型受到了影响,过拟合到目标的局部。设想一个问题,如果历史帧中用于在线更新的样本如groundtruth般准确,那么在线更新会达到较好的效果。
-
文章针对上述问题,基于C-COT做如下改进:
- 提出因式分解卷积算子,对C-COT中的卷积滤波器进行缩减,从而减少模型本身的参数。(对于512维的深度特征+512个卷积滤波器,可以将512个卷积滤波器减到64个,从而剔除了一些不重要的深度特征,降低模型参数。)
- 一个为在线更新设计的更加简洁的采样分布的生成模型,降低内存和时间复杂度;增加样本多样性。
- 保守模型更新策略,即降低更新频率,增大更新样本的多样性,继而增强鲁棒性,降低复杂性。
因式卷积因子
-
出发点: 出于对C-COT中卷积滤波器的观察,每个维度的特征对应一个滤波器;然而一部分训练好的卷积滤波器包含了微乎其微的能量,也就是说对最后目标定位的贡献很小,但它们仍消耗了训练时间和内存。
-
改进思路: 故采用类似主变量降维的思想,以深度特征为例,一共512维特征对应512个卷积滤波器,而因式卷积的思路就是用64个主要的卷积滤波器,利用一个线性对应矩阵 P P P , 线性组合之后可以还原这512个卷积滤波器的作用。
-
优点: 线性矩阵 P P P 可以在第一帧初始化。这样的设计使得内存开销大大降低,并且降低了在线更新的计算复杂度。
生成采样空间模型
- 出发点: 当前的相关滤波追踪器C-COT、SRDCF等的在线更新策略是在每一帧都添加一个训练样本,然后为这些历史帧赋予一个衰减的权重(离当前帧近的的帧权重大,离当前帧远的帧权重小)。然而这样的采样空间存在大量冗余的样本,因为相邻帧之间的外观大致相同。
- 改进思路:提出一个样本集合的概率生成模型。基于样本特征映射 x x x和相应输出置信度分数 y y y
模型更新策略
-
出发点:在C-COT中,这意味着在每个新样本添加后,通过迭代求解正态方程进行优化。基于迭代优化的DCF方法利用了损失函数在帧之间逐渐变化的特点。因此,过滤器的当前估计提供了迭代搜索的良好初始化。不过,在每一帧中更新过滤器会对计算负载产生严重影响。
-
改进思路:将训练样本建模为高斯混合模型,避免逐帧更新,只需在每个 N s N_s Ns帧中启动优化过程来更新过滤器。参数 N s N_s Ns决定过滤器更新的频率,其中 N s = 1 N_s= 1 Ns=1 对应于在每一帧中优化过滤器,就像在标准DCF方法中一样。在每个 N s N_s Ns帧中,我们执行固定数量的 N C G N_CG NCG共轭梯度迭代来优化模型。因此,每帧CG迭代的平均次数减少到 N C G / N s N_CG/N_s NCG/Ns。
-
优点:模型更新频率降低到 N s N_s Ns,当然节约了时间,并且可以避免模型的漂移问题,一定程度上改进效果,但是也不可以把Ns取得太大,否则会使得模型跟不上目标的变化。