原博文地址:http://www.cnblogs.com/nobadfish/articles/5244637.html

原论文名叫Byeond bags of features:Spatial Pyramid Matching for Recognizing Natural Scene Categories.

这篇文章的中心思想就是基于词袋模型+金字塔结构的识别算法。首先简单介绍词袋模型。

1.词袋模型

Bag of words模型也成为“词袋”模型,在最初多是用来做自然语言处理,Svetlana在进行图片分类时,使用了“词袋”模型。词袋模型的主要思想是利用每一个“word”的频率作为特征来分类,忽略它的单词顺序和语法、句法等要素。

在图像分类应用时,图像每一个提取出来的特征被当做一个单词来考虑,那么一张图片就是一篇文章的,只不过这个文章是由图片特征组成,在此我们并不考虑特征的前后顺序。

Bag Of Words 主要有两步,第一步基础特征提取,第二步,字典生成(高级特征),最后一步,分类器分类。

1.1基础特征提取

Svetlana在此篇论文中选取的基础特征是SIFT算子,每一个SIFT点会提取一个128维的特征向量。SIFT特征点的提取,和特征向量的计算在其他的博客有所介绍不赘述,本实验代码中提取SIFT特征的代码是用的vlfeat库的vl_sift函数。

1.2 字典生成

基础特征提取之后,我们就获得到了“word”,由于word之间有一定的信息冗余和噪音干扰,并且数据量往往很大,直接用来分类可能效果并不好。因此我们需要设计一些“bag”。在此我们是通过聚类实现的,本文中的聚类方法选择的是K-means算法构造,构造的“bag”数量为400。

生成“bag”之后,我们会将“word”在各个bag中的频率作为一幅图像的特征描述向量。如下图

1.3分类器

分类器选用的是比较简单的线性SVM分类器。

2.金字塔结构

对原始的词袋模型加入金字塔结构。

典型词袋模型只是在原图上进行直方图统计,在金字塔结构中,每一层都会将图像分成不同的区域,分别统计直方图。整个金字塔空间统计出的直方图向量则为最终的特征向量,可以用来分类。示意图如图,此图为3层金字塔结构的直方图统计。

最新文章

  1. C#的循环语句练习
  2. 01.Sencha ExtJS 6 - Generate Workspace and Application
  3. Linux inode && Fast Directory Travel Method(undone)
  4. zepto触摸事件解决方法
  5. MVC 微信支付
  6. Linux命令(5):cp命令
  7. js 判断url的?后参数是否包含某个字符串
  8. [FML]学习笔记一Cross-validation交叉验证
  9. 如何在TableView上添加悬浮按钮
  10. IIS网站发布容易出现的几个问题
  11. BZOJ 3211 花神游历各国 (树状数组+并查集)
  12. Base64编码的java实现
  13. 用C写一个web服务器(四) CGI协议
  14. Hibernate第四篇【集合映射、一对多和多对一】
  15. spring jdbc踩坑日记,new JdbcTemplate 为null导致UserDao一直为null
  16. vue 源码学习----build/config.js
  17. 精读《Scheduling in React》
  18. firewall centos
  19. UVA1479 Graph and Queries
  20. 通信技术以及5G和AI保障电网安全与网络安全

热门文章

  1. spring-redis-data的一个坑
  2. Unity笔记(2)自学第一天
  3. postgreSQL在Centos6下编译安装
  4. LR中日志参数的设置
  5. Filesystem Hierarchy Standard (Unix, Linux etc)
  6. Codeforces_758_D_(区间dp)
  7. 系统异常 NSException.h
  8. 10Java Server Pages 隐式对象
  9. 洛谷——P4071 [SDOI2016]排列计数(错排+组合数学)
  10. 字符串匹配「 KMP 算法 」