csk跟踪方法学习与探究

来源:互联网 发布:乡民闯江湖mac 编辑:程序博客网 时间:2024/05/21 06:44

文章名:
Exploiting the Circulant Structure of Tracking-by-detection with Kernels ,意思是探究带核跟踪检测的循环结构。
文章大致内容:利用相关滤波做物体跟踪的基础依据,利用循环矩阵的特性和傅立叶变换快速计算结果,利用核方法训练和跟踪目标。

为什么用相干滤波?
correlation filters,相关滤波,在信号处理里面,两种信号越相似,相关性就越强。在追踪物体时,一个物体在两个不同帧中的图像不可能完全相同(形变、亮度变化),但是从信号的角度讲,他们是相似的,所以他们在信号上相关性特别强。求法就是讲两个图像做滑动卷积运算,图像重合越大时,卷积效果越好。

为什么提出循环矩阵?
Circulant matrices,我们在做物体追踪的时候,已知物体上一个位置P0和上一幅图像,要求物体的下一个位置时,需要在P0附近做滑动卷积。在信号处理领域,滑动卷积相当于循环矩阵的点乘操作,也相当于傅立叶变换后的点乘操作,所以将卷积计算带到傅立叶变换来,计算比较快(无需滑动、遍历P0周围的每个子窗口)(原文:The motivation behind circulant matrices is that they encode the convolution of vectors, which is conceptually close to what we do when evaluating a classifier at many different subwindows.)
公式:
这里写图片描述

为什么用核方法?
既然有了相关性为依据,只要滑动卷积的时候,得到最大的响应就可以作为追踪的依据了,为什么还要引入核方法呢?Kernel Trick,核方法是一种模式识别的算法,目的是找出并学习一组数据的相互关系。核心思想是:将数据映射到高维空间,再用线性学习器在这个空间里分析处理。举个简单例子,做卷积操作后的数据,我们可以浅显的得到响应最大的位置,但是这个位置可能不止一个,也可能仅仅一个响应最大的地方不能代表这就是物体移动的重心位置(可能需要其他参考依据,比如重叠面积之类的),那么对得到的数据求得物体移动的位置,就是一个求解过程,他可能是线性的,也可能是非线性的,利用核方法,我们可以较好的求出来。

模型:
KRLS公式:
这里写图片描述
其中,左边是我们要训练得到的,y是跟踪时的输出,括号里的是核方法后的矩阵,I是单位矩阵.
又因为K也是循环矩阵(作者已证),得
这里写图片描述

核方程(高斯):
这里写图片描述

跟踪时输出公式:
这里写图片描述

实验步骤:
1.对第一帧数据,训练一个跟踪器
2.对其他帧数据,利用跟踪器计算位置、更新参数

训练:制造高斯形状的输出y,根据公式7求出参数,其中更新是加权更新
核方法:根据公式16,输入是原图像与新图像,其中原图像是加权更新的,新图像是原位置周围的窗口

检测:根据公式9,计算输出响应,响应最大的地方即为移动位置
PS:

预处理:
傅立叶变换是周期的,图像的边缘会产生噪声。解决办法是加一个cos窗口
这里写图片描述
边界附近的值将被加权为零,消除不连续。