2010年11月19日 ⁄ 技术, 科研 ⁄ 共 1296字 ⁄ 评论数 26 ⁄ 被围观 4,150 阅读+

由于自己以前发过一篇文章讲bow特征的matlab代码的优化的《Bag-Of-Words中K-Means聚类的效率优化》,其中的代码也用过Spatial Pyramid Code的代码里面的几个函数,不过大部分还是根据本地的需要,根据大数据量计算的需要自己整合修改的,经过不少同学的改错,现在已经基本没有错误了,注释没怎么写,以后慢慢补上,如果有什么问题可以交流。

下载地址是我的实验室的链接,希望不要盗链了:

代码下载链接:

github:PG_BOW_DEMO.zip,

百度网盘:PG_BOW_DEMO.zip

如果无法下载,当然可以再发邮件问我要,pagelee.sd at gmail.com。

另外在最新的一篇博文《一个用BoW|Pyramid BoW+SVM进行图像分类的Matlab Demo》详细讲了怎么结合SVM分类的问题和Matlab Demo,很直观,希望有用。

下面再次说一下基本的理解:

1、个人感觉Bag of Words/Bag of Features原理都差不多,个人还是当一个概念来理解的,可能bag of features涵盖的内容更加具体,特征更有代表性吧。

2、聚类的初始点可以自己选取,也可以随机选取,其实对于聚类的结果虽然有影响,但是最后用于分类的时候影响没那么明显。

-------------

最初的Bag of words,也叫做“词袋”,在信息检索中,Bag of words model假定对于一个文本,忽略其词序和语法,句法,将其仅仅看做是一个词集合,或者说是词的一个组合,文本中每个词的出现都是独立的,不依赖于其他词 是否出现,或者说当这篇文章的作者在任意一个位置选择一个词汇都不受前面句子的影响而独立选择的。

现在Computer Vision中的Bag of words来表示图像的特征描述也是很流行的。大体思想是这样的,假设有5类图像,每一类中有10幅图像,这样首先对每一幅图像划分成patch(可以是 刚性分割也可以是像SIFT基于关键点检测的),这样,每一个图像就由很多个patch表示,每一个patch用一个特征向量来表示,咱就假设用Sift 表示的,一幅图像可能会有成百上千个patch,每一个patch特征向量的维数128。

接下来就要进行构建Bag of words模型了,假设Dictionary词典的Size为100,即有100个词。那么咱们可以用K-means算法对所有的patch进行聚 类,k=100,我们知道,等k-means收敛时,我们也得到了每一个cluster最后的质心,那么这100个质心(维数128)就是词典里德100 个词了,词典构建完毕。

词典构建完了怎么用呢?是这样的,先初始化一个100个bin的初始值为0的直方图h。每一幅图像不是有很多patch么?我们就再次 计算这些patch和和每一个质心的距离,看看每一个patch离哪一个质心最近,那么直方图h中相对应的bin就加1,然后计算完这幅图像所有的 patches之后,就得到了一个bin=100的直方图,然后进行归一化,用这个100维德向量来表示这幅图像。对所有图像计算完成之后,就可以进行分 类聚类训练预测之类的了。

 

Bag of Words/Bag of Features的Matlab源码发布的更多相关文章

  1. GWO(灰狼优化)算法MATLAB源码逐行中文注解(转载)

    以优化SVM算法的参数c和g为例,对GWO算法MATLAB源码进行了逐行中文注解. tic % 计时器 %% 清空环境变量 close all clear clc format compact %% ...

  2. 层次分析法、模糊综合评测法实例分析(涵盖各个过程讲解、原创实例示范、MATLAB源码公布)

    目录 一.先定个小目标 二.层次分析法部分 2.1 思路总括 2.2 构造两两比较矩阵 2.3 权重计算方法 2.3.1 算术平均法求权重 2.3.2 几何平均法求权重 2.3.3 特征值法求权重 2 ...

  3. 群智能优化算法-测试函数matlab源码

    群智能优化算法测试函数matlab源代码 global M; creatematrix(2); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %画ackley图. %%%% ...

  4. 红外图像处理之直方图均衡的matlab源码与效果验证

    红外图像是热辐射成像,由于场景中的目标与背景的温差相对较小,红外图像的动态范围大.对比度 低, 信噪比也较可见光图像的低.为了能够从红外图像中正确地识别出目标,必须对红外图像进行增强处理.一般红外探测 ...

  5. Blahut-Arimoto algorithm Matlab源码

    For a discrete memoryless channel , the capacity is defined as where  and  denote the input and outp ...

  6. 偏微分方程数值解法的MATLAB源码

    原文出处http://wenku.baidu.com/view/df412e115f0e7cd184253653.html 因为不太喜欢百度文库的格式,所以写到个人博客里面方便使用 <ifram ...

  7. 非线性回归支持向量机——MATLAB源码

    支持向量机和神经网络都可以用来做非线性回归拟合,但它们的原理是不相同的,支持向量机基于结构风险最小化理论,普遍认为其泛化能力要比神经网络的强.大量仿真证实,支持向量机的泛化能力强于神经网络,而且能避免 ...

  8. Matlab 绘图全方位分析及源码

    Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数.此外,M ...

  9. ReactiveCocoa源码解析(二) Bag容器的代码实现

    今天博客我接着上篇博客的内容来,上篇博客我们详细的看了ReactiveSwift中的Observer已经Event的代码实现.接下来我们来看一下ReactiveSwift中的结构体Bag的实现.Bag ...

随机推荐

  1. inline-block元素之间出现间隙

    一.问题 这里部分的组成是一个input框和一个a按钮,然后a标签为了设置它的width和height我让他display:inline-block(行内元素以块级元素显示内容).神奇的一幕出现了,两 ...

  2. 将内容重定向到剪切板(clip.exe)

    Add-Type -Assembly PresentationCore[Windows.Clipboard]::SetText("abc中文def")先用 $output | Ou ...

  3. 关于64位Linux配置android开发环境出现 No such file or directory

    前几天在64位系统上部署android开发环境的时候出现了这种问题 /aapt: No such file or directory 通过谷老师,知道原理android SDK里面的程序全是32位的, ...

  4. C# 可访问一致性不一致

    出现原因,其中一个是返回参数的访问级别小于函数的访问级别, 也就是说当定义一个返回参数的方法的时候,如果返回参数的访问级别低于方法的访问级别就会出现这样的错误,这个是可以理解的,如果返回的参数不能被访 ...

  5. android3.2以上切屏禁止onCreate()

    一般切屏禁止onCreate()方法需要将activity加上属性: android:configChanges=”orientation|keyboardHidden” 但是在3.2以上就不起作用了 ...

  6. shell 获取当前ip

    HOST_IP=$(hostname --all-ip-addresses | awk '{print $1}')

  7. [Javascript] IIFE

    Javascript modules are a design pattern that allow you to encapsulate your code into smaller self ma ...

  8. C++使用Json作为数据包装格式的通信

    出处:http://adebugger.cn/2009/11/cpp-json-data-communication/ http://hi.baidu.com/tibelf/item/6be2accd ...

  9. 使用Git操作GitHub代码入门教程

    GitHub除了网页操作外,还可以借助本地客户端git(或github for windows)来增删修改远程代码.使用Git操作来连接GitHub可以通过Https或SSH方式,使用SSH方式可以免 ...

  10. tomcat中jsp编译

    tomcat运行的工程中,jsp替换文件后可能不起作用.原因是jsp也是需要编译的.编译后的文件存放在tomcat/work文件夹下.如果替换不起作用,可以将work文件夹下的内容删除掉,重新启tom ...