文章目录
KCF,TPAMI,2015
核相关滤波的典型算法
code:https://github.com/uoip/KCFpy
当然,KCF已经集成到cv2中了,可以直接调用
讲KCF的博客非常多了,我这里就当做一个笔记了。强力推荐阅读以下原文,写的非常有逻辑。看再多的博客,也不如看一下论文,而且论文写的还是比较容易理解的。
KCF
前三section不是核心
4 BUILDING BLOCKS
4.1 Linear Regression
给出岭回归的目标函数和解的形式:
上标H表示Hermitian transpose,是考虑了复数的转置,如果X为实矩阵,则对应的就是转置
4.2 Cyclic Shifts
介绍循环移位,对于一个向量x,乘以一个permutation matrix,起到交换x中元素位置的作用。permutation matrix定义如下:
对1维向量的可视化表示如下:
对2维图片的表示如下:
可以看到,这个操作大致就是做平移。
可以对信号做多次平移,然后把所有的平移信号表示成为一个矩阵
注意:这种平移会产生失真,例如[1,2,3,4]平移一次变为[2,3,4,1],这其实造成了边缘的扭曲。补救办法如下。做padding,[1,2,3,4]先padding为[0,0,0,1,2,3,4,0,0,0],然后平移为[0,0,1,2,3,4,0,0,0,0]
4.3 Circulant Matrices
对x进行平移,就得到了循环矩阵,矩阵记为X,基于x构建循环矩阵的操作记为C(x):
循环矩阵有个性质,对循环矩阵X,可以表示为一个对角形式:
其中F是固定的,被称为DFT matrix,与x无关, x ^ \hat{x} x^表示对x求离散傅里叶变换(DFT)
4.4 Putting It All Together
那么有了上述性质,如果将循环矩阵作为岭回归训练的输入,那么闭式解也可以用DFT表示:
其中,圆圈内加点这个操作表示element product,两个向量做元素积。
5 NON-LINEAR REGRESSION
那么,可不可以做岭回归的时候不用X,而是用它的一种非线性变换之后的特征呢?这就引入了核函数。
5.1 Kernel Trick – Brief Overview
核函数的几个特征如下:
1)闭式解w是是用核函数表示的,但要训练的变量变成了 α \alpha α