ICCV2013跟踪算法MCCF原理及代码解析

文章和代码下载地址:

Galoogahi H K, Sim T, Lucey S. Multi-channel Correlation Filters.

代码下载地址:http://www.hamedkiani.com/mccf.html

相关滤波可以表示为一个求解岭回归问题:

\min_{w}\sum_{i}(f(x_{i})-y_{i})^{2}+\lambda ||w||^{2}

y_{i}表示期望相应,\lambda表示正则系数防止过拟合。这个公式怎么来的可以查阅MOSSE,CSK及KCF的文章,在此就不赘述了。

一、引言

为了更好的表示训练样本的信息,大牛牛们引入了各种各样的特征表示,如KCF用了HOG特征,CN用了颜色特征等。但是特征的引入不可避免的会带来计算量的增加,如HOG特征是31个维度的,每个维度单独计算的话,那么计算量要增加31倍。所以这些牛们就要想办法加速,KCF使用核函数来加速计算,CN则用PCA降维的方法。

而本文所讲的MCCF方法就是计算基于HOG特征相关滤波器的一种方法。不管是使用核函数还是使用PCA降维,不可避免的都会造成特征信息的丢失,举个例子,31维的HOG特征经过核函数后变成了一维的特征,而CN所用的颜色特征通过PCA也从11维变成了2维。我们是可以通过低维数据来表示高维特征,但是特征信息不可避免的会丢失一些,因为毕竟不是原来的特征了。

好了可以引入本文的处理方法了,MCCF采取的策略不是将特征降维的思想,而是设计多维特征的并行计算。在求解滤波器的过程每个特征通道都是相互独立的。作者把每个像素点对应的31个通道当做一个整体来计算,大大增加了其运算速度。此后作者提出的CFLB和BACF算法通过ADMM迭代进一步增加了滤波器的求解速度。我觉得MCCF的思路比KCF使用核函数要好,毕竟信息一点都没有丢失,个人看法哈,不喜勿喷。

二、MCCF

文归正传,现在开始讲MCCF算法。

首先作者把前面提到的滤波器求解的岭回归方程表示成如下方式:

E(h)=\frac{1}{2}\sum_{i=1}^{N}\sum_{i=1}^{D}||y_{i}(j)-h^Tx_i[\Delta \tau _j]||_2^2+\frac{\lambda }{2}||h||_2^2

这个公式所表达的意思和前面那个一模一样,作者把卷积用循环移位后的x[\Delta _j]h的点乘来表示,很直观很有意思。D为输入训练滤波器图像的大小,N表示输入了多少张图片。作者原文中训练跟踪眼球的滤波器用了很多张图片,所以N值较大。而我们在实际的跟踪中只用第一帧训练,输入图片只有一张或者仿射扰动产生几张,所以N也可以不要,就一个求和就行。

多通道的MCCF表示如下:

E(h)=\frac{1}{2}\sum_{i=1}^{N}\sum_{i=1}^{D}||y_{i}(j)-\sum_{k=1}^{K}h^{(k)T}x_i^{(k)}[\Delta \tau _j]||_2^2+\frac{\lambda }{2}\sum_{k=1}^{K}||h^{(k)}||_2^2

转到频域:

E(\hat{h})=\frac{1}{2}\sum_{i=1}^{N}||\hat{y}_i-\hat{X}_i\hat h||_2^2+\frac{\lambda }{2}||\hat h||_2^2

前面说过N可以不要,后面N就省去了哈。\hat y没啥好说的,简单傅里叶变换。\hat X是一个多维特征变换过来的大小为D\times KD的整合矩阵:\hat X = [diag{({\hat x_1})^{\rm{T}}},...,diag{({\hat x_K})^{\rm{T}}}]\hat h = [\hat h_1^{\rm{T}},...,\hat h_K^{\rm{T}}]是一个大小为KD整合矩阵。发现没有其实就是每个通道分别算一遍然后把他们拼在一起。既然这样就把这K个独立的通道绑在一起,这样的绑法:

{\cal V}(a(j)) = {[conj({a_1}(j)),...,conj({a_K}(j))]^{\rm{T}}}

conj为复共轭,用来表明这是相关而不是卷积,有没有无所谓,可以不用管。然后从每个像素点对应计算:

E({\cal V}(\hat h(j))) = \frac{1}{2}||\hat y(j) - {\cal V}{(\hat x(j))^{\rm{T}}}{\cal V}(\hat h(j))||_2^2 + \frac{\lambda }{2}||{\cal V}(\hat h(j))||_2^2\;\;\;\;\;j = 1,...,D

每个像素点的解为

{\cal V}{(\hat h(j))^*} = \frac{​{​{\cal V}(\hat x(j))\hat y(j)}}{​{​{\cal V}(\hat x(j)){\cal V}{​{(\hat x(j))}^{\rm{T}}} + \lambda I}}

就这样运算量从O({D^3}{K^3}+ND^2K^2)降到了O({D}{K^3}+NDK^2)D是图片大小远远大于特征维度K,所以运算量减少的真的不是一点点,MCCF就介绍到这吧,没写明白的地方欢迎指正。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值