首先看下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解决思路
主要贡献:
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)算法的流程和原理是怎样的?》)。故就不做详细说明了。
四、公式推导(引自知乎用户)
接着如下:
由第一帧的groundtruth可以计算第一帧的情况:
随后进行迭代。
五、效果与待解决问题
正则项 www 用二次函数来构造:
w(m,n)=μ+η(m/P)2+η(n/Q) 2
1.P×QP\times QP×Q 表示目标尺寸
2.w的最小值 μ=0.1
3.正则化影响因子 η=3
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的使用》,代码可下载。