【目标跟踪: 相关滤波器 四】相关滤波

原创 2017年01月02日 21:53:18

相关滤波

为本篇博文表述方便,特将前几篇中几个重要的公式在此一并贴出,不懂的可以去看前几篇博文。

w=(XTX+λI)1XTy(1)

w=(XHX+λI)1XHy(2)

α=(K+λI)1y(3)

A+B=C(a+b)(4)

AB=C(F1(F(a)F(b)))(5)

XT=Fdiag(F(x))FH(6)

X1=Fdiag(F(x))1FH(7)

F(Xy)=F(x)F(y)(8)

线性相关滤波

首先考虑一维样本,即一行(N个)图像像素,每个样本只有一维特征,当使用线性岭回归时,其解为式(1),其中的X本质上是一个列向量。当引入循环矩阵之后,每个样本的特征被对应的扩展为由所有样本组成的循环向量,即X成为一个N×N的矩阵,其图形化表示如下图所示。
这里写图片描述
循环矩阵是联系样本时域空间与频域空间的纽带,引入循环矩阵之后,线性岭回归的解为式(2),其XHX项可做如下简化:

XHX=Fdiag(F(x))FHFdiag(F(x))FH=Fdiag(F(x))diag(F(x))FH=Fdiag(F(x)F(x))FH

可以看出,XHX项也是循环矩阵,其中F(x)F(x)项在信号处理领域称为自相关(auto-correlation)。考虑到单位矩阵I是对角阵,F是酉矩阵,根据循环矩阵的性质,则可继续简化如下:
w=(XHX+λI)1XHy=(Fdiag(F(x)F(x))FH+λI)1Fdiag(F(x))FHy=(Fdiag(F(x)F(x)+λ)FH)1Fdiag(F(x))FHy=Fdiag(F(x)F(x)+λ)1FHFdiag(F(x))FHy=Fdiag(F(x)F(x)F(x)+λ)FHy

根据式(8)对将w转换到频域得:
F(w)=(F(x)F(x)F(x)+λ)F(y)=F(x)F(y)F(x)F(x)+λ(9)

式(9)即为所求的线性岭回归的解,由于该解在频域空间,而且涉及到样本频谱的相关运算,故该算法通常又被称作“相关滤波”,该解被称作“相关滤波器”。可以看出,该解的求解过程巧妙的借用了DFT把时域内矩阵的乘法与求逆运算转换到频域,变成了矩阵元素之间的对位运算。时域内求解w的时间复杂度为O(N3),当使用FFT时,该求解过程的时间复杂度则为O(NlogN),在计算速度上有质的提升,而这也是相关滤波器能实现高速跟踪的核心所在。

核相关滤波

考虑使用核岭回归的情况,首先要构造核矩阵K,而且为了充分利用循环矩阵的性质实现快速计算,核矩阵K必须是循环矩阵。
根据核函数的定义:Kij=κ(xi,xj)=φ(xi),φ(xj),其中xi表示第i个样本。在由一维样本x生成的循环矩阵X中,xi泛化为X的第i行元素。则K的第i行元素为:Ki=κ(xi,x)=φ(xi),φ(x),即X的所有行元素与第i行元素在由映射函数φ()定义的希尔伯特空间中的内积。K的每一行元素都是遍历了X中的所有元素生成的,只是顺序有所不同,故核矩阵K必定是循环矩阵。
根据循环矩阵的性质,对式(3)进行简化:

α=(K+λI)1y=(Fdiag(F(kxx))FH+λI)1y=Fdiag(F(kxx)+λ)1FHy

其中,kxx表示由一维样本x生成的自相关核向量,根据式(8),则有:
F(α)=(1F(kxx)+λ)F(y)=F(y)F(kxx)+λ(10)

常见的具有内积形式的核函数都可满足要求,如线性函数,多项式函数,径向基函数,其核向量的时域与频域表达式分别如下:

1.线性核函数

{kxz=κ(x,z)=xTzF(kxz)=F(x)F(z)(11)

其中,z表示待检测样本,x表示训练样本,F(x)F(z)项在信号处理领域称为互相关(cross-correlation),kxz表示xz的互相关核,一般在样本z的检测阶段采用,而在样本的训练阶段,如式(10)所示,则取样本x的自相关核,即kxx形式。此处为避免样本的混淆,统一采用kxz表示核向量。

2.多项式核函数

kxz=κ(x,z)=(xTz+a)bF(kxz)=(F(x)F(z)+a)b(12)

3.径向基核函数

径向基核函数形式为kxz=κ(x,z)=h(xz2),通常使用高斯核函数代替

kxz=κ(x,z)=exp(1σ2(x2+z22xTz))F(kxz)=F(exp(1σ2(x2+z22F1(F(x)F(z)))))(13)


考虑使用线性核函数的情况,将其代入式(10)得:

F(α)=F(y)F(x)F(x)+λ

由于αw在对偶空间的表示,二者存在以下关系:
w=i=1Nαiφ(xi)=i=1Nαixi=XTα

根据式(6)对w展开得:
w=(Fdiag(F(x))FH)Tα=Fdiag(F(x))FHα

根据式(8)对将其转换到频域得:
F(w)=(F(x))F(α)=F(x)F(y)F(x)F(x)+λ

与式(9)对比发现,当采用线性核函数时,该滤波器与常规的线性滤波器是完全等价的。由此说明,线性相关滤波是核相关滤波的一类特殊情况。在下文对相关滤波的论述中,统一采用核相关滤波的形式。

快速检测

在样本检测阶段,每个样本的回归值由下式唯一确定:

f(z)=(Kxz)Tα(14)

其中,α为由x的自相关核kxx训练出来的在希尔伯特空间的分类面,Kxz为由xz的互相关核kxz生成的循环矩阵。f(z)包含了基础样本每一个循环移位情况对应的相关值,该响应中最大值位置即为当前检测样本与训练样本最相似的位置。同样,为实现高速计算,将式(14)转换到频域空间,对其化简得:
f(z)=(Fdiag(F(kxz))FH)Tα=Fdiag(F(kxz))FHα=F1((F(kxz))F(α))=F1(F(kxz)F(α))(15)

式(15)即为所要求的快速检测表达式,可以看出,该式同样将矩阵的乘法运算转换成了矩阵元素的对位乘法运算,算法的时间复杂度由O(n2)降为O(nlogn)

相关滤波在二维样本上的推广

前文对相关滤波原理的研究与推导仅仅局限于一维样本的情况,而实际应用中,对图像样本进行回归分类尤为常见,故非常有必要将相关滤波算法推广到二维样本的情况。
对于图像,一维样本特指图像的一行像素,二维样本则指整个图像。对于长度为N的一维样本在行方向上的循环位移构成N×N的循环矩阵,其可视化形式如下图所示。
这里写图片描述
对于M×N的二维样本,其原本就是矩阵,需要在行和列两个方向上分别进行循环位移,其广义循环矩阵其实是M2×N2的矩阵,其可视化形式如下图所示,
这里写图片描述
为方便宏观上观察,目标图像每次位移固定的像素数,图中(0,0)号示样表示原始样本。
然而,通过研究上文中一维样本的相关滤波原理,可以发现:虽然在原理的推导过程中,一维样本需要转化为循环矩阵,然而在该算法的最终原理公式中,如式(10)~(13)、(15)所示,并没有涉及该样本的循环矩阵形式,所有参与计算的变量仍然是样本的基础形态,此过程中起着重要作用的部分就是DFT。

DFT有两个重要性质分别是“周期性”与“平移性”,一维样本的循环位移相当于在时域内对样本进行了周期扩展与位移,由该样本生成的循环矩阵的每一行元素的频谱都具有完全一致的功率谱,而且该特性同样适用于二维样本,其表现形式如下图所示。
这里写图片描述这里写图片描述
实际上,DFT本身就已经隐式的对样本进行了循环位移的操作。而FFT不仅大大降低了算法的时间复杂度,而且通过对原始样本的变换,使得相关滤波器在频域中包含了样本形态的“无限可能”,也使得相关滤波算法很容易的推广到二维样本。

此处仅选取式(10)、(13)、(15)这三个核心公式进行推广,其中为表述简洁方便,用上标(^)表示该元素的傅立叶变换,如X^=F(X)。 式(10)可重新表示为

A^=Y^K^XX+λ(16)

其中,A表示α的二维扩展,表现为矩阵的形式,实际应用中通常仅使用其频域形式A^,宏观上可以称之为“相关滤波器”;Y表示样本标签y的二维扩展;KXX表示训练样本的自相关核kxx的二维扩展。
式(13)可重新表示为:
KXZ=exp(1σ2(X2+Z22F1(X^Z^)))(17)

其中,X表示训练样本矩阵,X^表示训练样本矩阵经二维DFT后的结果矩阵的共轭,Z表示检测样本矩阵,KXZ表示训练样本与检测样本的互相关核矩阵。在训练阶段Z可以取为训练样本X,求得KXX表示训练样本的自相关核矩阵。

式(15)可重新表示为:

R=F1(K^XZA^)(18)

其中, R表示滤波响应矩阵,矩阵中最大值的位置即为当前样本中目标所在位置。以上三个公式是核相关滤波跟踪算法的核心所在。


基础理论部分到此为止,后续博文重点介绍该算法的实现

版权声明:本文为博主原创文章,转载请注明出处

相关文章推荐

Python·Jupyter Notebook各种使用方法记录·持续更新

Python·Jupyter Notebook各种使用方法记录·持续更新标签(空格分隔): PythonPythonJupyter Notebook各种使用方法记录持续更新 一 Jupyter Not...

跟踪算法牛人主页收集

0,Online Object Tracking: A Benchmark cvpr2013 综述      http://visual-tracking.net/#      http://cvl...

相关滤波追踪算法1

Visual Object Tracking using Adaptive Correlation Filters 一文发表于2010的CVPR上,是笔者所知的第一篇将correlation filt...

相关滤波跟踪(MOSSE)

相关滤波跟踪(MOSSE) 在信号处理中,有这么一个概念——相关性(correlation),用来描述两个因素之间的联系。而相关性又分为cross-correlation(互相关,两个信号之间的联系...

【目标跟踪】KCF高速跟踪详解

详细讲解KCF高速跟踪算法的推导过程。

基于相关滤波跟踪原理 from An Experimental Survey on Correlation Filter-based Tracking

基于相关滤波器的跟踪算法,典型的算法有KCF、DSST、STC、SAMF等。这些算法的大致框架相差不大。 文章中作者对近年来基于相关滤波方法的视觉跟踪的有关研究进行了总结,通过一个统一的框架,总结了1...

MOSSE 目标跟踪 解析

MOSS (Minimum Output Sum of Squared Error filter)(2010) 这篇文章是最早将相关的思想用到目标跟踪领域的。 相关滤波的思想:越是相关的两个目标相关值...

信号处理——傅里叶变换

离散信号x[n]x[n]的傅里叶变换为: X(Ω)=Σ+∞n=−∞x[n]e−jnΩX(\Omega)= \Sigma_{n=- \infty}^{+\infty}x[n]e^{-jn\Omega}...

计算机视觉之跟踪算法——相关滤波器Correlation Filter

ASEF相关滤波器:Average of Synthetic Exact Filters David S. Bolme, Bruce A. Draper, J. Ross Beveridge C...

追踪算法KCF体验

本文使用KCF的opencv版本实现。 对应论文:High-Speed Tracking with Kernelized Correlation Filters 编译环境:VS2015 + win7 ...
  • hjl240
  • hjl240
  • 2016-07-23 10:22
  • 8936
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)