论文地址:https://arxiv.org/pdf/1404.7584.pdf
先随便写写记录下,有空再整理。
关于这篇文章,我只想用一组图表达我的心情。
难受。前一刻还跑通呢,调节一下,又不行了,半天一天的调bug。这边调好了,那边又出了新的。
实在不行,想着可能哪里被我不小心动了下,就用源码替换~额,源码也不顶用了。现在很怀疑是ubuntu下的MATLAB2016b有问题不稳定啊。
比如:calcSeqErrRobust.m的第100行errCenter(~idx)=-1;
调试到这,我的idx明明就是120*1 logical(也就是1),在我的渣win7的MATLAB2014a下,执行结果是标准的小可爱120*1 double啊。但在ubuntu下的MATLAB2016b执行此步生成的errCenter竟然TMD等于0!!!!。
好想骂脏话啊,但是我没有骂,哈哈哈。
核函数也就是一种函数,本质上跟其他常见的函数是一样的。作用就是隐含着一个从低维空间到高维空间的映射,而这个映射可以把低维空间中线性不可分的两类点变成线性可分的。计算样本在高维空间的内积。假如出于某些原因,我们要将样本从原始空间映射到高维空间(如在低维空间样本线性不可分,需要映射到高维空间产生线性可分的样本)
核函数的选择有一些基本经验:例如对文本数据通常采用线性核,情况不明时可先尝试czdhl核。线性核和czdhl核也是最为常用的核函数。
常用的:
半正定矩阵:定义1 设A是n阶方阵,如果对任何非零向量X,都有X’AX≥0,其中X‘’表示X的转置,就称A为半正定矩阵。
设A是n阶实对称矩阵,则下列的条件等价:
1.A是半正定的。
2.A的所有主子式均为非负的。
3.A的特征值均为非负的。
4.存在n阶实矩阵C,使A=C′C.
5.存在秩为r的r×n实矩阵B,使A=B′B.
正定、半正定矩阵的直觉代表一个向量经过它的变化后的向量与其本身的夹角小于等于90度。
类面可以用分类面两侧的两个点(两点中垂线是分类面)表示。如果叫这两个点(x+,y+),(x-,y-)的话,那么正类领地的所有点和(x+,y+)的内积都大于它们和(x-,y-)的内积;反之对负类领地也成立。数学家还发现,对于任意一群世界X中的点,(x+,y+)和(x-,y-)都能表示成它们的线性组合,对于一个新来的点,它和这两个点的内积就可以表示成所有点和所有其它点的内积的加权和。所以给定一些两个国家的点之后,我们可以计算两两点之间的内积,并把分类面表达成这些内积的线性加权和。后来人们把这些点的内积放在了一个矩阵里,并叫它核矩阵,核矩阵定义了世界的分类。在这个核矩阵里,矩阵里每个点的值是两个X世界点的线性内积,它定义的分类面在原来的X世界里是一条直线,所以这个核矩阵后来被成为线性核矩阵,而以两个点生成矩阵中每个点的映射被成为线性核函数。
问题 6
具体操作:
用’out of view’来做例子
1 文章中把数据集分为了11类,在perfplot.m文件的第9行:
attName={‘illumination variation’ ‘out-of-plane rotation’ ‘scale variation’ ‘occlusion’ ‘deformation’ ‘motion blur’ ‘fast motion’ ‘in-plane rotation’ ‘out of view’ ‘background clutter’ ‘low resolution’};
{{“光照变化”、“平面外旋转”、“尺度变化‘ ’遮挡‘ ’变形‘ ’运动模糊”、“快速运动”、平面内旋转、“超出视野”、“背景杂乱”、“低分辨率”}}
这个顺序是固定的,而’out of view’是倒数第三个
将该项删掉:
attName={‘illumination variation’ ‘out-of-plane rotation’ ‘scale variation’ ‘occlusion’ ‘deformation’ ‘motion blur’ ‘fast motion’ ‘in-plane rotation’ ‘background clutter’ ‘low resolution’};
2 文件夹../anno/att下的一系列txt文件,是11中属性分类的标志,顺序是按照attName中的顺序
例如:basketball.txt文件中的是1,1,0,1,1,0,0,0,0,1,0
数字是1的说明basketball是属于该类的,比如说basketball属于光照变化、平面外旋转、遮挡、变形、背景复杂5项。按照attName的顺序对号入座即可
接着1中的操作,因为’out of view’是倒数第三个,那么需要把att下的每一个txt文件中的倒数第三个数字删掉
例如:
Basketball.txt就变成 1,1,0,1,1,0,0,0,1,0
按照1、2操作完后,再跑perfplot.m,会发现得到的一系列图中没有’out of view’的图了
参考:
1.遇到的问题以及骚操作
1.KCF论文阅读笔记(较好)
2.KCF目标跟踪方法分析与总结(较好)
3.憨憨代码笔记(较好)
4目标跟踪算法——KCF入门详解
5.机器学习:核函数和核矩阵简介
6.http://www.p-chao.com/2017-01-19/%E5%9B%BE%E5%83%8F%E8%B7%9F%E8%B8%AA%EF%BC%88%E5%9B%9B%EF%BC%89kcf%E7%AE%97%E6%B3%95/
有个不错的憨憨代码笔记:https://blog.csdn.net/bitopyx/article/details/81948875