计算机视觉——图像检索与识别

一.Bag-of-words模型

进行图像检索的时候,我们可以用穷举的方法,但是一一匹配效率太过低,工作量过大,于是参考文本信息检索的模型,提取特征点进行降维处理。在文本信息检索中,BOW模型假定对于一个文档,忽略它的单词顺序和语法、句法等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的,不依赖于其它单词是否出现。也就是说,文档中任意一个位置出现的任何单词,都不受该文档语意影响而独立选择的。

BoW(Bag of Words)词袋模型最初被用在文本分类中,将文档表示成特征矢量。它的基本思想是假定对于一个文本,忽略其词序和语法、句法,仅仅将其看做是一些词汇的集合,而文本中的每个词汇都是独立的。简单说就是讲每篇文档都看成一个袋子(因为里面装的都是词汇,所以称为词袋,Bag of words即因此而来),然后看这个袋子里装的都是些什么词汇,将其分类。如果文档中猪、马、牛、羊、山谷、土地、拖拉机这样的词汇多些,而银行、大厦、汽车、公园这样的词汇少些,我们就倾向于判断它是一篇描绘乡村的文档,而不是描述城镇的。
在这里插入图片描述
基础流程
1.特征提取
将描述子空间量化成一些典型实例,并将图像中的每个描述子指派到其中的某个实例中。对图像库里的图像进行SITF特征提取,SIFT原理和方法这里不再介绍。这些典型实例可以通 过分析训练图像集确定,并被视为视觉单词。所有这些视觉单词构成的集合称为视觉词汇,有时也称为视觉码本。对于给定的问题、图像类型,或在通常情况下仅需 呈现视觉内容,可以创建特定的词汇。
第一步是提取所有图像的特征,称之为“视觉词汇”,将他们聚集在一起,此时他们还是未分类的。

在这里插入图片描述

2.对特征进行聚类,得到一部字典( visual vocabulary )
由于第一步得到的特征很多,也可能有很多特征是相似的。所以第二步需要将第一步得到的特征进行聚类。
用K-Means聚类的方法,将特征进行分类。并将聚类中心点记录到视觉词典,方便后期图像的检索。

在这里插入图片描述
K-means算法流程:
1.随机初始化 K 个聚类中心
2.重复下述步骤直至算法收敛:
1.对应每个特征,根据距离关系赋值给某个中心/类别
2.对每个类别,根据其对应的特征集重新计算聚类中心
3. 针对输入的特征集,根据词典量化
利用最短距离原则。
在这里插入图片描述
利用单词表的中词汇表示图像。利用SIFT算法,可以从每幅图像中提取很多个特征点,这些特征点都可以用单词表中的单词近似代替,通过统计单词表中每个单词在图像中出现的次数,可以将图像表示成为一个n维数值向量。但是考虑到很大概率实际会发生这种情况:

通常,在每篇文本中,如“这”“和”“是”这类词出现的概率比较大,但是他们对于区别不同的文本并没有多大的作用,所以在单词计数时会忽略掉这些常用词,这些常用词称为停用词。于是我们为了提高匹配的精度,给每个特征点都赋上权重。

通过单词计数来构建文档直方图向量v,从而建立文档索引。通常,在单词计数时会忽略掉一些常用词,如“这”“和”“是”等,这些常用词称为停用词。由于每篇文档长度不同,故除以直方图总和将向量归一化成单位长度。对于直方图向量中的 每个元素,一般根据每个单词的重要性来赋予相应的权重。通常,数据集(或语料库)中一个单词的重要性与它在文档中出现的次数成正比,而与它在语料库中出现的次数成反比。
4. 把输入图像转化成视觉单词的频率直方图
通过tf-idf对频数表加上权重,生成最终的bof。
这里的单词权重的定义,还有需要注意的地方:将不同图像都具有的特征对应的权重调 小,即
弱化共性特征,排除干扰
在这里插入图片描述
根据索引结果进行直方图匹配

# -*- coding: utf-8 -*-
import pickle
from PCV.localdescriptors import sift
from PCV.imagesearch import imagesearch
from PCV.geometry import homography
from PCV.tools.imtools import get_imlist

# load image list and vocabulary
#载入图像列表
imlist 
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值