相关性跟踪的核心是滤波器filters的求解,从MOSSE到KCF再到SRDCF,滤波器的模型越来越复杂,计算速度越来越慢,相关性滤波在计算速度上的优势越来越明显例如,新算法CFLB、BACF等采用空间约束来解决边界效应,而SRDCF、STRCF等采用空间正则来解决边界效应。 解决这些边界效应的措施都使相关跟踪面临着实时性的挑战。 ADMM将一个大的优化问题分成可以同时求解的多个子问题,通过子问题的迭代可以快速得到滤波器的近似解。
baseline ADMM ADMM解决了以下格式的最小化问题:
该公式的拉格朗日公式如下
重复步骤如下。
example SRDCF SRDCF原文使用的是CJ dsg (高斯系列)求解器。 CJdsg ) gauss-seidel )求解器也是一种迭代方法,其缺点是比ADMM慢23333333。 SRDCF将以下公式最小化:
这里的是我们需要的过滤器,也是ADMM迭代的变量之一。 通过baseline公式,我们发现ADMM需要重复两个变量,需要约束。 变量不够的话可以建立辅助变量。 如果没有约束,就设定约束。 因此,情况如下:
该公式的拉格朗日公式如下
重复步骤如下。
子问题的解决很简单吗,哈哈。
子问题的求解:
转换为傅立叶域:
其中,和都是d维。 寻求指导:
子问题的求解:
因为没有参与卷积,所以不变换为傅立叶域,直接求出诱导:
至此,SRDCF的ADMM迭代算法全部求解。
2019.04.15更新,SRDCFwithADMM代码如下(注:本工程参考了ICCV2017目标跟踪算法BACF的相关代码) ) ) )。
1、代码下载地址:
SRDCFwithADMM_ADMM代码-机器学习代码类资源-CSDN下载
2、打开Demo更改数据集路径运行
3、运行结果:
4、向run_SRDCFwithADMM.m提供OTB数据集接口,可以在OTB数据集上测试结果。
2019.05.17更新,终于逼到了一个deadline。 以前SRDCF的ADMM迭代是简化版,便于大家理解。 目前,给出了详细的推导过程(这个推导过程是参考文章BACF而来的),另外还diss了233333,只做了博客,做科学研究对模仿这个词真心敏感。 )
承担上述内容:
结构辅助变量,它表示傅立叶变换,是离散傅立叶变换的2D表达式,l是图像的大小。
拉格朗日公式如下
这里为了简化省略了d频道的表现。
子问题g的求解:
转换为傅立叶域:
其中,和都是d维。 寻求指导:
分母是d维,因此使用Sherman-Morrison formula加速运算。
此处的变量定义为。
子问题f的求解:
f不参与的卷积不转换为傅立叶域,直接向f求导:
至此,SRDCF的ADMM迭代算法全部求解。
代码的简单解决:
%子问题g的求解g_f=() (1/) t*mu ) ) bsxfun ) ) times,yf,model_xf ) ) ) ()1/mu ) l_f ) h_f )…bsxfu (S_xx .* yf ) )-- ()1/mu ) bsxfun ) @times,model_xf,S_lx ) ) ) bsxfun ) @times,model_xf,s %子问题f的求解h_h=ifft2((mu*g_f ) l_f ); h=argmin_h(ww,mu,H_h ); 其中argmin_h.m定义如下:
函数h=arg min _ h (w1,mu,x ) LHD=1./(w1.^2) mu ); %lefthandh=Zeros(size(x ); % computetforeachchannelfori=1: size (x,3 ) h ) :I )=lhd.* ) :I ); endend [References]
[1]博客参考:用ADMM解决大型机器学习问题- BreezeDeus -博客圈
[2] s.Boyd.alternatingdirectionmethodofmultipliers (滑动)。
[3] s.boy de tal.distributedoptimizationandstatisticallearningviathealternatingdirectionmethodofmultipliers,2010。