相关滤波目标跟踪学习笔记(三)——KCF算法公式理解
KCF算法特点:
1、通过循环移位产生了大量的虚拟样本;
2、利用循环矩阵可以在傅里叶域对角化的性质,大大减少了运算量,提高了运算速度;
3、核函数的运用,提高了分类器的性能;
4、采用HOG特征,相对于灰度特征和颜色特征,准确度更高;
目标跟踪算法分为两大类,一个生成法,一个判别法。KCF算法属于判别法,采用岭回归的方法建模,这里不得不说一下岭回归,岭回归是在最小二乘法的基础上改进的,是为了解决最小二乘法中复共线性导致的方差较大的问题,岭回归是在最小二乘法的基础上增加了惩罚项λ,得到岭回归的简单闭式解如式②。由于大X是由小x循环移位得到的,所以大X为循环矩阵,利用循环矩阵可转化为傅里叶域对角线形式(式⑦)的性质,在傅里叶域进行求解,避免了空间域矩阵求逆的过程,简化了计算。考虑到非线性情况,KCF算法引入了核函数(对于线性不可分问题,我们可以将样本映射到高维空间,在高维空间对样本进行分类。这时引入了核函数,核函数的优点使我们不必知道映射函数的具体形式,也不用计算具体的映射值,只需要在原空间进行内积运算,避免了高维的复杂运算),采用核函数后,将对ω的求解转化为对α的求解,可得解式⑥,文中证明大K为循环矩阵,利用循环矩阵的性质进一步化简得到式⑧,也就是我们的最终要求的变量值。利用式⑧,就可以进行我们的样本训练了。
个人对KCF算法的理解,如有错误请指正!
推荐几个比较好的文章:
1、KCF目标跟踪方法分析与总结:
http://www.cnblogs.com/YiXiaoZhou/p/5925019.html
2、KCF论文阅读笔记:
http://blog.****.net/u011285477/article/details/53861850
3、KCF目标跟踪算法笔记:
http://blog.****.net/zengdong_1991/article/details/61429376
推荐阅读
-
相关滤波目标跟踪学习笔记(三)——KCF算法公式理解
-
计算机视觉中,究竟有哪些好用的目标跟踪算法(下)-快速变形主要因为CF是模板类方法。容易跟丢这个比较好理解,前面分析了相关滤波是模板类方法,如果目标快速变形,那基于HOG的梯度模板肯定就跟不上了,如果快速变色,那基于CN的颜色模板肯定也就跟不上了。这个还和模型更新策略与更新速度有关,固定学习率的线性加权更新,如果学习率太大,部分或短暂遮挡和任何检测不准确,模型就会学习到背景信息,积累到一定程度模型跟着背景私奔了,一去不复返。如果学习率太小,目标已经变形了而模板还是那个模板,就会变得不认识目标。(举个例子,多年不见的同学,你很可能就认不出了,而经常见面的同学,即使变化很大你也认识,因为常见的同学在你大脑里面的模型在持续更新,而多年不见就是很久不更新) 快速运动主要是边界效应(Boundary Effets),而且边界效应产生的错误样本会造成分类器判别力不够强,下面分训练阶段和检测阶段分别讨论。 训练阶段,合成样本降低了判别能力。如果不加余弦窗,那么移位样本是长这样的: 除了那个最原始样本,其他样本都是“合成”的,100*100的图像块,只有1/10000的样本是真实的,这样的样本集根本不能拿来训练。如果加了余弦窗,由于图像边缘像素值都是0,循环移位过程中只要目标保持完整那这个样本就是合理的,只有目标中心接近边缘时,目标跨越边界的那些样本是错误的,这样虽不真实但合理的样本数量增加到了大约2/3(padding= 1),即使这样仍然有1/3(3000/10000)的样本是不合理的,这些样本会降低分类器的判别能力。再者,加余弦窗也不是“免费的”,余弦窗将图像块的边缘区域像素全部变成0,大量过滤掉分类器本来非常需要学习的背景信息,原本训练时判别器能看到的背景信息就非常有限,我们还加了个余弦窗挡住了背景,这样进一步降低了分类器的判别力(是不是上帝在我前遮住了帘。不是上帝,是余弦窗)。 检测阶段,相关滤波对快速运动的目标检测比较乏力。相关滤波训练的图像块和检测的图像块大小必须是一样的,这就是说你训练了一个100*100的滤波器,那你也只能检测100*100的区域,如果打算通过加更大的padding来扩展检测区域,那样除了扩展了复杂度,并不会有什么好处。目标运动可能是目标自身移动,或摄像机移动,按照目标在检测区域的位置分四种情况来看: 如果目标在中心附近,检测准确且成功。 如果目标移动到了边界附近但还没有出边界,加了余弦窗以后,部分目标像素会被过滤掉,这时候就没法保证这里的响应是全局最大的,而且,这时候的检测样本和训练过程中的那些不合理样本很像,所以很可能会失败。 如果目标的一部分已经移出了这个区域,而我们还要加余弦窗,很可能就过滤掉了仅存的目标像素,检测失败。 如果整个目标已经位移出了这个区域,那肯定就检测失败了。 以上就是边界效应(Boundary Effets),推荐两个主流的解决边界效应的方法,但速度比较慢,并不推荐用于实时场合。