文章和代码下载地址:
Martin Danelljan, Gustav Häger, Fahad Khan, Michael Felsberg. "Learning Spatially Regularized Correlation Filters for Visual Tracking." ICCV (2015). [paper] [project]
一、创新点:
1、加入了空间正则来解决边界效应
2、使用Gauss-Seidel函数来求解滤波器
二、原理:
相关滤波的响应图可以通过如下公式计算
S是响应图,x是检测图像片,f是滤波器。然后S峰值的位置就是检测目标的中心。那么相关滤波的一个关键步骤就是如何求解滤波器f,传统相关跟踪器通过如下公式来求解f,
表示每个样本的权重,y表示期望的gaussion响应,加号后面的是一个正则项,用来防止过拟合。
一般的训练-检测过程就是:先用公式(2)训练第t帧的滤波器f,然后用训练好的f通过公式(1)来检测t+1帧目标位置,接着用t+1帧的结果再进行训练,如此往复对目标进行连续跟踪。
存在问题(边界效应):当我们使用公式(2)求解滤波器f时,一般将其通过FFT转换到频率域来高速计算。但是FFT会将图像信号x进行循环拼接,导致这些信号在拼接处并不是连续的(也可以认为这些信号并不是真实存在的),这就是产生边界效应。
解决方法:SRDCF将图像信号x尽量取大一些的尺寸,保留目标更多的真实信息,然后再通过一个空间权值系数w来惩罚距离目标中心比较远的样本,
这个惩罚函数w是一个中间小,周围大的矩阵,表示如下:
形象地解释一下:我们知道加号后面正则项是防止过拟合的,如果一个样本离目标中心越远, 那么加号后面的值越大,就是说该样本和历史同位置的样本就训练出来该位置的滤波器可以差异越大,就是说离得越远的样本对训练滤波器影响越小。(这是我的理解,可能表达得不是那么明白,欢迎留言讨论)
后面就是对公式(3)的求解了,作者用的Gauss-Seidel来迭代求解,我觉得这个迭代方法很一般,速度很慢,SRDCF计算速度在4fps左右,达不到实时跟踪的要求,不如ADMM。故就不做详细说明了。
这篇博文给出了SRDCF的ADMM解法:相关滤波跟踪算法中ADMM的使用_博博有个大大大的Dream-CSDN博客_admm算法
DeepSRDCF就是采用了深度特征的SRDCF,其它的没有区别:
Martin Danelljan, Gustav Häger, Fahad Khan, Michael Felsberg. "Convolutional Features for Correlation Filter Based Visual Tracking." ICCV workshop (2015). [paper] [project]
SRDCFdecon在SRDCF的基础上,改进了样本和学习率问题。选择保存以往样本(图像块包括正,负样本),在优化目标函数中添加样本权重参数和正则项,采用交替凸搜索,首先固定样本权重,高斯-塞德尔方法迭代优化模型参数,然后固定模型参数,凸二次规划方法优化样本权重。
Martin Danelljan, Gustav Häger, Fahad Khan, Michael Felsberg. "Adaptive Decontamination of the Training Set: A Unified Formulation for Discriminative Visual Tracking." CVPR (2016). [paper] [project]