相关滤波
为本篇博文表述方便,特将前几篇中几个重要的公式在此一并贴出,不懂的可以去看前几篇博文。
w=(XTX+λI)−1XTy(1)
w=(XHX+λI)−1XHy(2)
α=(K+λI)−1y(3)
A+B=C(a+b)(4)
A⋅B=C(F−1(F(a)⊙F(b)))(5)
XT=F⋅diag(F∗(x))⋅FH(6)
X−1=F⋅diag(F(x))−1⋅FH(7)
F(Xy)=F∗(x)⊙F(y)(8)
线性相关滤波
首先考虑一维样本,即一行(N个)图像像素,每个样本只有一维特征,当使用线性岭回归时,其解为式(1),其中的 X 本质上是一个列向量。当引入循环矩阵之后,每个样本的特征被对应的扩展为由所有样本组成的循环向量,即 X 成为一个N×N的矩阵,其图形化表示如下图所示。
循环矩阵是联系样本时域空间与频域空间的纽带,引入循环矩阵之后,线性岭回归的解为式(2),其 XHX 项可做如下简化:
XHX=F⋅diag(F∗(x))⋅FH⋅F⋅diag(F(x))⋅FH=F⋅diag(F∗(x))⋅diag(F(x))⋅FH=F⋅diag(F∗(x)⊙F(x))⋅FH
可以看出,
XHX 项也是循环矩阵,其中
F∗(x)⊙F(x) 项在信号处理领域称为自相关(auto-correlation)。考虑到单位矩阵
I 是对角阵,
F 是酉矩阵,根据循环矩阵的性质,则可继续简化如下:
w=(XHX+λI)−1XHy=(F⋅diag(F∗(x)⊙F(x))⋅FH+λI)−1⋅F⋅diag(F∗(x))⋅FH⋅y=(F⋅diag(F∗(x)⊙F(x)+λ)⋅FH)−1⋅F⋅diag(F∗(x))⋅FH⋅y=F⋅diag(F∗(x)⊙F(x)+λ)−1⋅FH⋅F⋅diag(F∗(x))⋅FH⋅y=F⋅diag(F∗(x)F∗(x)⊙F(x)+λ)⋅FH⋅y
根据式(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=(F⋅diag(F(kxx))⋅FH+λI)−1⋅y=F⋅diag(F(kxx)+λ)−1⋅FH⋅y
其中,
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 表示
x 与
z 的互相关核,一般在样本
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(∥x−z∥2) ,通常使用高斯核函数代替
⎧⎩⎨⎪⎪⎪⎪⎪⎪kxz=κ(x,z)=exp(−1σ2(∥x∥2+∥z∥2−2xTz))F(kxz)=F(exp(−1σ2(∥x∥2+∥z∥2−2F−1(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=(F⋅diag(F(x))⋅FH)T⋅α=F⋅diag(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 为由
x 与
z 的互相关核
kxz 生成的循环矩阵。
f(z) 包含了基础样本每一个循环移位情况对应的相关值,该响应中最大值位置即为当前检测样本与训练样本最相似的位置。同样,为实现高速计算,将式(14)转换到频域空间,对其化简得:
f(z)=(F⋅diag(F(kxz))⋅FH)T⋅α=F⋅diag(F∗(kxz))⋅FH⋅α=F−1((F∗(kxz))∗⊙F(α))=F−1(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(∥X∥2+∥Z∥2−2F−1(X^∗⊙Z^)))(17)
其中,
X 表示训练样本矩阵,
X^∗ 表示训练样本矩阵经二维DFT后的结果矩阵的共轭,
Z 表示检测样本矩阵,
KXZ 表示训练样本与检测样本的互相关核矩阵。在训练阶段
Z 可以取为训练样本
X ,求得
KXX 表示训练样本的自相关核矩阵。
式(15)可重新表示为:
R=F−1(K^XZ⊙A^)(18)
其中,
R 表示滤波响应矩阵,矩阵中最大值的位置即为当前样本中目标所在位置。以上三个公式是核相关滤波跟踪算法的核心所在。
基础理论部分到此为止,后续博文重点介绍该算法的实现