目标跟踪学习系列九:Struck:Structured Output Tracking with Kernels头文件代码框架
来源:互联网 发布:mc java路径 编辑:程序博客网 时间:2024/06/01 09:32
我们先来看一下整个的头文件的构成:
其中:
config.h : 配置头文件,里面定义了一个类:class Config。主要定义的是特征的类型,核函数的类型等等。
Features.h:定义了一个Class Features 。里面定义了int 型的m_featureCount//特征计数Eigen::VectorXd m_featVec 存储特征的向量。其中使用了inline内联函数(inline 说明这个函数是内联的,在编译过程中内联函数会直接被源代码替换,提高执行效率 如果类中的某个函数会被调用很多次或者放在循环中,那么建议将这个函数声明为内联,可以提高程序的运行效率。现在的作用:一个可执行文件的cpp文件中一个函数只能被定义一次。如果你把函数定义在一个.h文件中并让两个cpp包含就会造成这个函数分别在两个cpp中被定义产生错误。但是inline函数是允许在多个cpp中多次定义的,就解决了这个问题。)。
HaarFeature.h:里面定义了一个Eval 函数(简单来说就是放在前面表示这个函数的返回值是const型,只能赋值给const型;放在后面就是函数是const型 总结见:http://www.cppblog.com/jukevin/archive/2008/12/27/70499.html)。声明了几个private的变量: FloatRect m_bb; //意思是说这个m_bb是Rect(x,y,width,height),并且里面是浮点型
std::vector<FloatRect> m_rects;// 这里也就是说这个Vector里面的每一个元素都是Rect
std::vector<float> m_weights;
float m_factor;
HaarFeatures.h:调用以上的两个头文件,继承features类,在里面定义了自己的 std::vector<HaarFeature> m_features; 同时还声明了自己的函数。
HistogramFeatures.h: 继承features类,定了了一个特征vector更新的向量。
ImageRep.h :定了class ImageRep,里面是一些图片表示的数据变量。
Kernels.h :定义了SMO需要用到的一些的核函数:包括:线性核函数,高斯核,多核等等。
LaRank.h: 定义了和支持向量相关的一些操作函数.都是一些重要的函数,比如说:通过overlap计算的重叠率从而得到Loss;process,processNew,optimize等重要的函数;以及removeSupportVector等等(详见后面)。
MultiFeatures.h,RawFeatures.h:都是 继承features类得到自己的类,用来进行特征的更新。
Rect.h: 定义了比较多的东西,包括要常用的各种类型的Rect。包括overlap的计算:取出两个xmin坐标中最大的为x0,取出xmax中最小的为x1.若是x1< x0 则表示没有重叠的部分(y也是一样的)。于是得到相交的面积:areaInt = (x1-x0)*(y1-y0); 并集的面积:((float)Area()+(float)rOther.Area()-areaInt);这样就清楚了。也就是来至于论文的equation(2)。
除此之外,在里面也定义了IsInside来判断patch块是不是在rother patch块里面。
sample.h : 里面是得到的样本的各种的操作,包括有得到image patch块的操作;包括有转化为Rect的操作,包括得到多个样本的操作里面还是采用了内联函数的方式。
samples.h : 里面定义了两个的静态函数:RadialSamples (), PixelSamples();应该是为了得到两个半径量级的以及像素量级的样本吧。
Tracke.h : 引入前面定义的一些的类,然后定义必须要的Tracking相关的初始化(Initialize),重置(Reset),跟踪(Track),调试(Debug)等。同时还有一些的包括学习,更新的一些函数,我将在CPP文件中详细的解释。
备注:
代码里面需要一些eigen 的基础,这个包挺好的有了它就可以像在MATLAB里面一样操作矩阵等等了!教程如下(改天自己写一个哈哈):http://eigen.tuxfamily.org/dox-2.0/TutorialCore.html
本小节结束!
iker 2014. 9月 25.
- 目标跟踪学习系列九:Struck:Structured Output Tracking with Kernels头文件代码框架
- 目标跟踪学习系列十:Struck:Structured Output Tracking with Kernels 代码调试
- 目标跟踪学习系列八:Struck:Structured Output Tracking with Kernels(2011 ICCV)
- Struck: Structured Output Tracking with Kernels
- Struck Structured Output Tracking with Kernels阅读笔记
- Struck: Structured Output Tracking with Kernels中用到的样本采样方法详解
- Struck: Structrued Output Tracking with Kernels 论文笔记
- 目标跟踪系列十一:Exploiting the Circulant Structure of Tracking-by-detection with Kernels代码思路
- 目标跟踪系列十二:Exploiting the Circulant Structure of Tracking-by-detection with Kernels代码关键记录
- structed_structured output tracking with kernels
- 目标跟踪系列十三:Exploiting the Circulant Structure of Tracking-by-detection with Kernels 公式详细的推导
- 运动目标跟踪(九)--Struck跟踪原理
- 目标跟踪学习系列七:Real-time compressIve tracking(压缩跟踪)学习
- Struck跟踪算法学习
- 目标跟踪学习系列二:semi-supervised online boosting for robust tracking 阅读
- 目标跟踪 Object tracking
- Exploiting the Circulant Structure of Tracking-by-detection with Kernels代码思路
- 目标跟踪学习系列五:Real-time visual tracking via online weighted multiple instance learning(WMIL)学习
- 一些网址
- JAVA基础
- KM算法
- Servlet 常用接口
- 程序员网站一览
- 目标跟踪学习系列九:Struck:Structured Output Tracking with Kernels头文件代码框架
- View扩展
- WPF中的数据模板(DataTemplate)
- 字符测试函数:C语言isxdigit()函数----判断字符是否为16进制数字
- OGRE中mesh文件信息解析及提取之一
- thinkphp重写模式
- Cococs2d-X 部分动作类的具体实现
- [Mongo]PyMongo安装和使用
- DOCTYPE