Bag of Feature 图像检索(python)

目录

一、Bag of Feature介绍

1.1 Bag of Words 模型

1.2 Bag of Feature算法

1.3 Bag of Feature 算法步骤

1.3.1 特征提取

1.3.2 构造“视觉单词”

1.3.3 TF-IDF计算权重

二、Bag of Feature进行图像检索

2.1 SIFT提取特征

2.2 图像索引

2.3 搜索图像

2.4 问题解决


Bag of Feature 是一种图像特征提取方法,它借鉴了文本分类的思路(Bag of Words),从图像抽象出很多具有代表性的「关键词」,形成一个字典,再统计每张图片中出现的「关键词」数量,得到图片的特征向量。

一、Bag of Feature介绍

1.1 Bag of Words 模型

「Bag of Words」 是文本分类中一种通俗易懂的策略。一般来讲,如果我们要了解一段文本的主要内容,最行之有效的策略是抓取文本中的关键词,根据关键词出现的频率确定这段文本的中心思想。比如:如果一则新闻中经常出现「iraq」、「terrorists」,那么,我们可以认为这则新闻应该跟伊拉克的恐怖主义有关。而如果一则新闻中出现较多的关键词是「soviet」、「cuba」,我们又可以猜测这则新闻是关于冷战的。

这里所说的关键词,就是「Bag of words」中的 words ,它们是区分度较高的单词。根据这些 words ,我们可以很快地识别出文章的内容,并快速地对文章进行分类。

「Bag of Feature」也是借鉴了这种思路,只不过在图像中,我们抽出的不再是一个个「word」,而是图像的关键特征「Feature」,所以研究人员将它更名为「Bag of Feature」。

1.2 Bag of Feature算法

从对Bag of Words的介绍中,我们也可以看到,「Bag of Feature」的本质是提出一种图像的特征表示方法

按照「Bag of Feature」算法的思想,首先我们要找到图像中的关键词,而且这些关键词必须具备较高的区分度。实际过程中,通常会采用「SIFT」特征。

有了特征之后,我们会将这些特征通过聚类算法得出很多聚类中心。这些聚类中心通常具有较高的代表性,比如,对于人脸来说,虽然不同人的眼睛、鼻子等特征都不尽相同,但它们往往具有共性,而这些聚类中心就代表了这类共性。我们将这些聚类中心组合在一起,形成一部字典(CodeBook)

对于图像中的每个「SIFT」特征,我们能够在字典中找到最相似的聚类中心,统计这些聚类中心出现的次数,可以得到一个向量表示(或直方图表示),如下面的图片所示。这些向量就是所谓的「Bag」。这样,对于不同类别的图片,这个向量应该具有较大的区分度,在此基础上,我们可以训练出一些分类模型,并用其对图片进行分类。

1.3 Bag of Feature 算法步骤

Bag of Feature用于图像检索的步骤:

  1. 对数据集做SIFT特征提取
  2. 根据SIFT特征提取结果,采用k-means算法对图像库中的特征点进行训练,生成类心,构造单词表。
  3. 根据IDF原理,计算每个视觉单词的权,生成Bof
  4. 对图像进行检索

1.3.1 特征提取

对数据集里的图像进行SITF特征提取,SIFT原理和之前的文章有详细讲解,这里不再介绍。这些典型实例可以通 过分析训练图像集确定,并被视为视觉单词。所有这些视觉单词构成的集合称为视觉词汇,有时也称为视觉码本。对于给定的问题、图像类型,或在通常情况下仅需 呈现视觉内容,可以创建特定的词汇。
实验第一步是提取所有图像的特征,称之为“视觉词汇”,将他们聚集在一起,此时他们还是未分类的。

1.3.2 构造“视觉单词”

“视觉词典(visual vocabulary)”的构造的过程就是一个图像分类的过程。这里我们用的图像分类方法是K-means聚类方法。

K-means聚类步骤:

  1. 随机初始化 K 个聚类中心
  2. 重复下述步骤直至算法收敛:
    对应每个特征,根据距离
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值