视觉目标跟踪算法——SRDCF算法解读

时间:2021-10-10 02:34:25

首先看下MD大神2015年ICCV论文:Martin Danelljan, Gustav Häger, Fahad Khan, Michael Felsberg. "Learning Spatially Regularized Correlation Filters for Visual Tracking." ICCV (2015).

【code: https://www.cvl.isy.liu.se/research/objrec/visualtracking/regvistrack/

一、相关滤波跟踪算法原理回顾

相关跟踪的核心就是滤波器filters的求解,从MOSSE到KCF再到SRDCF,滤波器的模型越来越复杂,计算速度越来越慢,使得相关滤波在计算速度上的优势越来越不明显。

视觉目标跟踪算法——SRDCF算法解读视觉目标跟踪算法——SRDCF算法解读

如上述公式所示,我们希望找到一个滤波器模板,可将样本进行滤波操作,得到响应结果,通过响应就能找到跟踪目标所在位置。因此问题就在怎么找到这个滤波器。转换成数学的线性规划或者二分类问题,就是求解高维映射下的岭回归问题。

二、存在问题

    传统的相关滤波方法,通过滤波器求解响应最高位置,即为跟踪目标所在位置,公式求解通过傅里叶变换转到频率域可极大简化运算速度,甚至实现算法的实时性。但在傅里叶变换过程中,会将处理的图像窗口边缘进行循环拼接,这就导致边缘处不连续,便产生边缘效应。

三、SRDCF解决思路

主要贡献:

1、在KCF/DCF基础上改善了boundary effects,加入惩罚项[spatial
regularization function that penalizes(惩罚) filter
coefficients residing outside the target region].

2、不同的scale搜索,处理尺度的问题(暴力的分为指定个尺度,依次匹配)。

3、在求解corelation filters时,利用iterative Gauss-Seidel method在线学习。

4、融合多种特征:利用HOG(31维特征)和CN(11维特征)共计42维特征。

主要在于第一点:SRDCF将图像信号x尽量取大一些的尺寸,保留目标更多的真实信息,然后再通过一个空间权值系数w来惩罚距离目标中心比较远的样本。

    对上述公式进行求解,作者用的Gauss-Seidel来迭代求解,我觉得这个迭代方法很一般,速度很慢,SRDCF计算速度在4fps左右,达不到实时跟踪的要求,不如ADMM(可参考知乎《交替方向乘子法(ADMM)算法的流程和原理是怎样的?》)。故就不做详细说明了。

视觉目标跟踪算法——SRDCF算法解读

视觉目标跟踪算法——SRDCF算法解读

四、公式推导(引自知乎用户)

视觉目标跟踪算法——SRDCF算法解读

    接着如下:

视觉目标跟踪算法——SRDCF算法解读

由第一帧的groundtruth可以计算第一帧的情况:

视觉目标跟踪算法——SRDCF算法解读

随后进行迭代。

五、效果与待解决问题

正则项 www 用二次函数来构造:

w(m,n)=μ+η(m/P)2+η(n/Q) 2

1.P×QP\times QP×Q 表示目标尺寸

2.w的最小值 μ=0.1

3.正则化影响因子 η=3

视觉目标跟踪算法——SRDCF算法解读

视觉目标跟踪算法——SRDCF算法解读

4.实际上频域下的 w只有几个值有较大的幅值,如下图所示。为保证 wˆ的稀疏特性,设置阈值来移除较小的值,结果包含约10个非零值。

5.HOG特征,cell大小为 4×44,特征大小为 M×N(M=N)

6.样本区域是目标区域的 4^2

7.初始尺度的样本M=50

8.学习率 γ=0.025,Gauss-Seidel迭代次数 NGS=4

9.在普通台式机matlab环境下5FPS

六、ADMM求解SRDCF

参见文章《相关滤波跟踪算法中ADMM的使用》,代码可下载。

视觉目标跟踪算法——SRDCF算法解读

最后,给出代码下载地址和搜罗的各路大神对算法解读的文章,供大家参考学习。