多用于图像检索、分类

3.2.1.4 视觉单词模型

视觉词袋(BoVW,Bag of Visual Words)模型,是“词袋”(BoW,Bag of Words)模型从自然语言处理与分析领域向图像处理与分析领域的一次自然推广。对于任意一幅图像,BoVW模型提取该图像中的基本元素,并统计该图像中这些基本元素出现的频率,用直方图的形式来表示。通常使用“图像局部特征”来类比BoW模型中的单词,如SIFT、SURF、HOG等特征,所以也称视觉词袋模型。图像BoVW模型表示的直观示意图如图所示。

图3-3 图像表示为视觉单词模型

利用BoVW模型表示图像,获得图像的全局直方图表示,主要有四个关键步骤:

Step 1:图像局部特征提取(Image Local Features Extrication)。根据具体应用考虑,综合考虑特征的独特性、提取算法复杂性、效果好坏等选择特征。利用局部特征提取算法,从图像中提取局部特征。

Step 2:视觉词典构造(Visual Dictionary Construction)。一般是从图像库中选取一部分来自不同场景或类别的图像来组成训练图像集,并提取其局部特征,然后对训练图像的所有局部特征向量通过适当的去冗余处理得到一些有代表性的特征向量,将其定义为视觉单词。通常所采用的处理方法是对训练图像的所有局部特征向量进行聚类分析,将聚类中心定义为视觉单词。所有视觉单词组成视觉词典,用于图像的直方图表示。

Step 3:特征向量量化(Feature Vector Quantization)。BoVW模型采用向量量化技术实现。现对图像局部特征的编码。向量量化结果是将图像的局部特征向量量化为视觉单词中与其距离最相似的视觉单词。向量量化过程实际上是一个搜索过程,通常采用最近邻搜索算法,搜索出与图像局部特征向量最为匹配的视觉单词。

Step 4:用视觉单词直方图表示图像,也称为量化编码集成(Pooling)。一幅图像的所有局部特征向量被量化后,可统计出视觉词典中每个视觉单词在该图像中出现的频数,得到一个关于视觉单词的直方图,其本质是上一步所得量化编码的全局统计结果,是按视觉单词索引顺序组成的一个数值向量(各个元素的值还可以根据一定的规则进行加权)。该向量即为图像的最终表示形式。

3.2.1.5 非结构图像数据的结构化描述

图像数据的结构化描述,可以用图像稀疏特征学习的统一框架进行表示。图像稀疏特征学习问题,是在提取图像局部特征的基础上,采用学习方法实现对图像的稀疏表示,最终以一个稀疏向量的形式来表示图像,描述图像的视觉内容。其本质仍然是一个图像特征提取问题:以图像局部特征集为数据源提取可以表征其信息的单个稀疏特征(向量)。在机器学习或稀疏表示研究领域,也称之为特征学习或稀疏学习问题。图像原始数据或图像局部特征数据本身都是高维的,它们从不同的层次(像素层、比像素高一级的特征层)对图像内容进行了描述,但往往都不是稀疏的。高维度和稀疏性是形成图像有效特征表示的重要属性。基于图像局部特征的稀疏学习的实现过程可用图3-4示意。

图3-4 稀疏学习的实现过程

具体地,选取图像库中的全部或部分图像作为训练图像,提取底层局部特征,通过词典学习方法(如聚类方法或基于稀疏学习的方法)得到超完备视觉词典,然后以此视觉词典作为编码码本,对库图像的局部特征进行特征编码,如采用向量量化编码、稀疏编码或局部编码等方法,得到每幅库图像的局部稀疏编码矩阵,进一步进行特征集成,如采用Sum Pooling、MaxPooling等集成函数或SPM空间集成策略,就可得到图像库中每幅图像的稀疏特征(即全局稀疏表示);另一方面,应用系统的输入图像的局部特征被提取,并利用训练好的视觉词典对其进行相同的特征编码和特征集成操作,就可得到输入图像的全局稀疏特征。

【其他文献】

图像视觉特征与视觉单词构造-2016年 - 百度文库 https://wenku.baidu.com/view/072358f15ff7ba0d4a7302768e9951e79b89699f.html

视觉词袋模型(BOVW) - 一双拖鞋走天下 - 博客园 https://www.cnblogs.com/chensheng-zhou/p/5056547.html

视觉词典BOW小结 - Darlingqiang的博客 - CSDN博客 https://blog.csdn.net/darlingqiang/article/details/81358531

视觉SLAM之词袋(bag of words) 模型与K-means聚类算法浅析(1) - jason来自星星 - 博客园 https://www.cnblogs.com/zjiaxing/p/5548265.html

计算机视觉课程作业 基于词袋模型的图像分类算法 - 蒋_X_X Blog - CSDN博客 https://blog.csdn.net/baidu_28563321/article/details/46348439

视觉单词模型、词袋模型BoW的更多相关文章

  1. 第十九节、基于传统图像处理的目标检测与识别(词袋模型BOW+SVM附代码)

    在上一节.我们已经介绍了使用HOG和SVM实现目标检测和识别,这一节我们将介绍使用词袋模型BOW和SVM实现目标检测和识别. 一 词袋介绍 词袋模型(Bag-Of-Word)的概念最初不是针对计算机视 ...

  2. 计算机视觉中的词袋模型(Bow,Bag-of-words)

    计算机视觉中的词袋模型(Bow,Bag-of-words) Bag-of-words 读 'xw20084898的专栏'的blogBag-of-words model in computer visi ...

  3. 词袋模型bow和词向量模型word2vec

    在自然语言处理和文本分析的问题中,词袋(Bag of Words, BOW)和词向量(Word Embedding)是两种最常用的模型.更准确地说,词向量只能表征单个词,如果要表示文本,需要做一些额外 ...

  4. NLP基础——词集模型(SOW)和词袋模型(BOW)

    (1)词集模型(Set Of Words): 单词构成的集合,集合自然每个元素都只有一个,也即词集中的每个单词都只有一个. (2)词袋模型(Bag Of Words): 如果一个单词在文档中出现不止一 ...

  5. DBoW2 词袋模型笔记

    DBoW算法用于解决Place Recognition问题,ORB-SLAM,VINS-Mono等SLAM系统中的闭环检测模块均采用了该算法.来源于西班牙的Juan D. Tardos课题组. 主要是 ...

  6. 词袋模型(BOW,bag of words)和词向量模型(Word Embedding)概念介绍

    例句: Jane wants to go to Shenzhen. Bob  wants to go to Shanghai. 一.词袋模型 将所有词语装进一个袋子里,不考虑其词法和语序的问题,即每个 ...

  7. 词袋模型(BOW, bag of words)

    词集模型:单词构成的集合,每个单词只出现一次. 词袋模型:把每一个单词都进行统计,同时计算每个单词出现的次数. 在train_x中,总共有6篇文档,每一行代表一个样本即一篇文档.我们的目标是将trai ...

  8. R+NLP︱text2vec包——BOW词袋模型做监督式情感标注案例(二,情感标注)

    要学的东西太多,无笔记不能学~~ 欢迎关注公众号,一起分享学习笔记,记录每一颗"贝壳"~ --------------------------- 在之前的开篇提到了text2vec ...

  9. 视觉SLAM之词袋(bag of words) 模型与K-means聚类算法浅析

    原文地址:http://www.cnblogs.com/zjiaxing/p/5548265.html 在目前实际的视觉SLAM中,闭环检测多采用DBOW2模型https://github.com/d ...

随机推荐

  1. C语言 · 反置数

    算法训练 反置数   时间限制:1.0s   内存限制:512.0MB      问题描述 一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数.如果一个整数的末尾是以0结尾 ...

  2. <股市高手和你想的不一样>读书笔记

    书在这里 在股市中挖掘真正有成长潜力的好企业,是成功投资者的关键 股票被低估的时候,才值得买 我们买股票,就是买这家公司的未来 公司的成长性要重点看两个方面,一个方面要看该公司近三年的成长趋势,另外一 ...

  3. 聊聊Java中的拆箱和装箱操作

    在刷谷歌面试题的过程中,发现一道有意思的题目,以前没有特别注意,忽略了一些东西,特此记录. 题目要求输出以下代码的结果: public class MyTest { public static voi ...

  4. sqoop 从sqlserver2008 导入数据到hadoop

    今天终于开始上手导入数据到hadoop了,哈哈,过程蛮崎岖的,和官方文档的还不太一样. OK,let's go!试验对象是我第一个名为ST_Statistics的一张表,我要把我表里的数据导入到hdf ...

  5. 理解ThreadPoolExecutor源代码(二)execute函数的巧妙设计和阅读心得

    ThreadPoolExecutor.execute()源代码提供了大量凝视来解释该方法的设计考虑.以下的源代码来自jdk1.6.0_37 public void execute(Runnable c ...

  6. UK 更新惊魂记

    本文前提是.由于更easy安装各种webserver.数据库,redis缓存.mq等软件,笔者使用Ubuntu Kylin作为开发系统已经好长时间了. 而今天(2015-07-23)下午2时许,系统提 ...

  7. Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用

    一. 在res/values 文件下定义一个attrs.xml 文件.代码如下: <?xml version="1.0" encoding="utf-8" ...

  8. 性能优化系列二:JVM概念及配置

    一.虚拟机组成 虚拟机主要由三部分组成:编译器(执行引擎),堆与栈. 1. 编译器 编译器分为即时编译器与解释器. 即时编译器将代码编译成本地代码存于code区.因此它快,但它有内存限制! 解释器逐行 ...

  9. Java如何打印异常的堆栈?

    在Java编程中,如何打印异常的堆栈? 此示例显示如何使用异常类的printStack()方法打印异常的堆栈. package com.yiibai; public class PrintStackT ...

  10. unity之UI ------------------------GUI的样式改写

    Unity3D 设置OnGUI中的字体样式.字体颜色.字体大小等 2014-02-06  寂寞无聊...  转自 3dC 转藏到我的图书馆   微信分享:   1:字体样式 从系统盘,如C:\Wind ...