Bag of word based image retrieval
主要参考维基百科Bag of Word
在DLP领域里,bow(bag of word)是一个稀疏的向量,向量的每个元素记录词的出现次数,相当于对每篇文章都关于词典做词的直方图统计。同样的道理用在computer vision领域,图像由一些基础的特征构成,每幅图像就是对这些特征的一个统计分布,在做图像分类时会假设相似图像他们的特征统计分布也符合一定的模型。于是从这句话里就可以把以bow模型的图像分类问题分解成以下几步:
1.1 特征检测; 1.2 特征描述;1.3 码本生成(bow向量)
2.1 生成模型(Generative model)2.2 判别模型(Discriminate model)
1. 基于BoW模型的图像表达
在这里可以给bow进行一个简单的定义:图像独立特征的统计表达。【Histogram representation based on independent features】
1.1 特征检测
Content based image indexing and retrieval(CBIR)对特征提取进行了详细的介绍,这里需要指出的是特征检测是一个很初级的概念,得到具有区别性的区域,我们通常能写出显示形式的特征已经涉及到了特征表达部分。
1.2 特征表达
对于特征区域进行描述的方法称为特征表达,一个好的描述子应该具有强度/旋转/尺度/放射变化不变性。比较出名的就是SIFT算子,将每个特征块转换为128维的特征向量,而每幅图像就是一系列SIFT特征向量的集合。
1.3 码本生成
在BoW最后一步就是把SIFT特征向量用一个码元表示,就像是一个word。由于特征向量128维度,每个维度哪怕量化为8bit,最后的马元组合数也是8的128次方,过于巨大,所以一般的方式是对所有图像的SIFT特征进行K-means聚类,K即是最后的码本集合大小,码元就是聚类的中心,图像上的SIFT采用最近邻的方式映射到聚类中心。最后整幅图像就被表达为SIFT聚类中心(码元)的统计分布。
- 关于聚类这一点,在NLP也有一定的体现,只是不是用k-means的方法,而是stemming word得到一个词干作为码元,进行词干的统计。
- 以单个单词构成的码本维度大概是170,000个,去掉废弃词统计为100,000左右,但stem后应该只有10K左右吧(根据自己实验里遇到的情况,不一定正确)。
- 图像的BoW可以自己人工设定,一般在1K量级,视情况而定。
2. 基于BoW模型的分离器学习和识别
在我们得到一幅图像的表达后,就会考虑其在这种特征空间下具有什么样的分布特性,并根据分布特性设计分类器实现分类和识别。对应BoW模型的分类方法主要分为生成模型和判别模型两大主流。
2.1 生成模型
朴素贝叶斯模型,因为其简单有效,常常被用来作为baseline的方法。
层次贝叶斯模型
由于朴素贝叶斯在一副图像包含了几个不同主题的情况下不能取得很好的效果,于是提出其他拓展,如潜语义分析 Probabilistic latent semantic analysis (pLSA)和主题模型 latent Dirichlet allocation (LDA)是比较著名的用作出来多主题的方法。
2.2 判别模型
由于图像被表达为BoW,所以适合适用于文档的判别模型都可以用来对图像的BoW进行分类。常见的有SVM和AdaBoost.
下一篇见BoW(SIFT/SURF/...)+SVM/KNN的OpenCV 实现
Bag of word based image retrieval的更多相关文章
- 基于内容的图片检索CBIR(Content Based Image Retrieval)简介
传统的图像检索过程,先通过人工对图像进行文字标注,再利用关键字来检索图像,这种依据图像描述的字符匹配程度提供检索结果的方法,简称“以字找图”,既耗时又主观多义.基于内容的图像检索客服“以字找图”方式的 ...
- 第十讲_图像检索 Image Retrieval
第十讲_图像检索 Image Retrieval 刚要 主要是图像预处理和特征提取+相似度计算 相似颜色检索 算法结构 颜色特征提取:统计图片的颜色成分 颜色特征相似度计算 色差距离 发展:欧式距离- ...
- 【Paper Reading】Deep Supervised Hashing for fast Image Retrieval
what has been done: This paper proposed a novel Deep Supervised Hashing method to learn a compact si ...
- SpringBoot集成文件 - 如何基于POI-tl和word模板导出庞大的Word文件?
前文我们介绍了通过Apache POI通过来导出word的例子:那如果是word模板方式,有没有开源库通过模板方式导出word呢?poi-tl是一个基于Apache POI的Word模板引擎,也是一个 ...
- {ICIP2014}{收录论文列表}
This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...
- ### Paper about Event Detection
Paper about Event Detection. #@author: gr #@date: 2014-03-15 #@email: forgerui@gmail.com 看一些相关的论文. 1 ...
- (转) Awesome Deep Learning
Awesome Deep Learning Table of Contents Free Online Books Courses Videos and Lectures Papers Tutori ...
- 自然语言19_Lemmatisation
QQ:231469242 欢迎喜欢nltk朋友交流 https://en.wikipedia.org/wiki/Lemmatisation Lemmatisation (or lemmatizatio ...
- word2vec代码解释
以前看的国外的一篇文章,用代码解释word2vec训练过程,觉得写的不错,转过来了 原文链接 http://nbviewer.jupyter.org/github/dolaameng/tutorial ...
随机推荐
- JPQL 模糊查询,查询条件拼接(like使用)
@Transactional public List<ViewCorplist2> findAllCorpsLikeK(String kw) { System.out.println(kw ...
- 树莓派安装CentOS
1.下载并安装,这里使用的是 centos系统地址:http://mirror.centos.org/altarch/7/isos/armhfp/ 下载CentOS-Userland-7-armv7h ...
- sharepoint services
I have got solution for authentication to share point web service I have use fedAuth Cookie and rtfa ...
- redis的安装和使用【2】redis的java操作
修改redis.conf# 配置绑定ip,作者机子为192.168.100.192,请读者根据实际情况设置bind 192.168.100.192#非保护模式protected-mode no保存重启 ...
- R中矩阵运算
# 数据产生 # rnorm(n, mean = 0, sd = 1) 正态分布的随机数(r 代表随机,可以替换成dnorm, pnorm, qnorm 作不同计算.r= random = 随机, d ...
- 洛谷——P2420 让我们异或吧
P2420 让我们异或吧 题目描述 异或是一种神奇的运算,大部分人把它总结成不进位加法. 在生活中…xor运算也很常见.比如,对于一个问题的回答,是为1,否为0.那么: (A是否是男生 )xor( B ...
- 关于Linux字符集的查看及修改
一·查看字符集 字符集在系统中体现形式是一个环境变量,其查看当前终端使用字符集的方式可以有以下几种方式: 1.[root@ ~]# echo $LANG en_US.UTF-8 ...
- subprocess操作命令
import subprocess 一. run()方法 --->括号里面传参数,主要有cmd, stdout, shell, encoding, check 1.直接传命令 2.命令带参数要以 ...
- Java基础学习总结(82)——Java泛型实例教程
1.为什么需要泛型 泛型在Java中有很重要的地位,网上很多文章罗列各种理论,不便于理解,本篇将立足于代码介绍.总结了关于泛型的知识.希望能给你带来一些帮助. 先看下面的代码: List list = ...
- 【tomcat】如何修改tomcat的默认项目
我们知道,在Tomcat安装.配置.启动成功后在浏览器地址栏输入http://localhost:8080会访问到Tomcat的默认主页. 然后我们打开Tomcat的webapps目录时,会发现里面有 ...