计算机视觉 — BOF图像检索

本文详细介绍了BOF(Bag of Features)图像检索的原理,包括SIFT特征提取、K-means聚类构造视觉词典、IDF和TF-IDF算法的应用。通过实验展示了不同维度下检索效果,指出BOF算法在图像有明显特征时准确率较高,但也受到图像复杂度和K值选择的影响。
摘要由CSDN通过智能技术生成

计算机视觉 — BOF图像检索

1. BOF图像检索实验原理
1.1 基础概念
1.1.1 前景:Bag of Words
Bag of Words照字面上是将文字归类为包。即在寻找文本的主要内容时,抓取文本中的关键词,根据大概率的关键词来确定文本的中心思想,可用于文章分类。
在这里插入图片描述

1.1.2 Bag of Features
Bag of Featuresfeature为特征,即根据特征进行分类。
Bag of Feature 是一种图像特征提取方法,参考了Bag of Words的思路,把每幅图像描述为一个局部区域/关键点(Patches/Key Points)特征的无序集合。同时从图像抽象出很多具有代表性的「关键词」,形成一个字典,再统计每张图片中出现的「关键词」数量,得到图片的特征向量。

1.2 Bag of Feature 算法基本流程
大概分为四步:

  1. 提取图像特征;
  2. 对特征进行聚类,得到一部字典( visual vocabulary );
  3. 根据字典将图片表示成向量(直方图);
  4. 训练分类器或者用 KNN 进行检索(这一步严格来讲不属于「Bag of Feature」的范畴)。

1.3 基本步骤原理详解

1.3.1 提取图像特征–SIFT特征提取法
SIFT特征提取算法的特点:
FT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;
区分性(Distinctiveness)好,信息量丰富;
多量性,可以产生大量的SIFT特征向量;
高速性;
可扩展性,可以很方便的与其他形式的特征向量进行联合。
实验所要提取的特征必须具有较高的区分度,而且要满足旋转不变性以及尺寸不变性等,因此,根据以上SIFT算法的特点,我们通常都会采用SIFT特征提取法最为合适。

1.3.2 构造训练字典–K-means算法
K-means算法流程:

  • 随机初始化 K 个聚类中心
  • 重复下述步骤直至算法收敛: 对应每个特征,根据距离关系赋值给某个中心/类别 对每个类别,根据其对应的特征集重新计算聚类中心
  • 构造 提取完特征后,我们会采用一些聚类算法对这些特征向量进行聚类。最常用的聚类算法是 k-means。我们通过控制k的数量来确定聚类的数目,并且通过k-means收敛后,我们可以得到聚类的质心。k个质心就相当于词典里的词,我们称之为visual word(视觉单词),k即视觉单词数量。 步骤大致如下图:
    在这里插入图片描述
    在这里插入图片描述
    1.3.3 计算权值–IDF算法
    IDF原理
  • IDF 即逆向文件频率 (inverse document frequency, IDF) IDF的主要思想是:如果包含词条t的文档越少,
    IDF越大,则说明词条具有很好的类别区分能力。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。
  • 公式 IDF=log(语料库的文档总数/(包含词条w的文档数+1)) 分母加1,以避免分母为0

1.3.4 通过特征集根据视觉词典量化–TF-IDF算法
TF-IDF的基本概念

  • TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率).
    是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。总而言之,当 一个词语在一篇文章中出现次数越多, 同时在所有文档中出现次数越少, 越能够代表该文章。通过某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。

  • 公式 TF指的是当前文档的词频,
    在这里插入图片描述
    ,在这个公式中,分子表示的是该某一文档中出现的次数,分母表示在该文档中所有关键词出现的次数之和。
    为了归一化,将 nw 除以整个文档中单词的总数。
    逆向文档频率为:
    在这里插入图片描述
    1.4 Bag of Feature 的缺点
    Bag of Feature 在提取特征时不需要相关的 label 进行学习,因此是一种弱监督的学习方法。Bag of Feature 也存在一个明显的不足,那就是它完全没有考虑到特征之间的位置关系,而位置信息对于人理解图片来说,作用是很明显的。

2. BOF算法实现图像检索

1.构造不小于 100张图片的数据集

2.针对数据集,做SIFT特 征提取

3.根据SIFT特征提取结果,采用k-means算法学习“视觉词典.(visual vocabulary)”,其中维度至少满足4个量级(比如10, 50, 100, 1000, 5000 )

4.根据IDF原理,计算每个视觉单词的权

5.针对数据库中每张图片的特征集,根据视觉词典进行量化

以及TF-IDF解算。每张图片转化成特征向量

6.对于输入的检索图像(非数据库中图片),计算SIFT特征,.并根据TF-IDF转化成频率直方图/特征向量

7.构造检索图像特征到数据库图像的倒排表,快速索引相关候选匹配图像集

8.针对候选匹配图像集与检索图像进行直方图/特征匹配

2.1 实验基本数据集
1.生成sift特征文件
对每张图片生成相应的.sift文件,及视觉词汇,以便建立BOW模型。
在这里插入图片描述
2.2 实验结果展示

维度=100
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当维度为100时,结果1的检索效果不错,结果2的检索效果不太好。看了数据集发现,(台灯)这一类的图片是形状差别不大,背景也比较单一的十张照片,虽然各个图片亮度会有所不同,但从结果上看,亮度的变化对检索效果影响不大;(自行车)这一类的图片是背景差别比较大的十张图片,有的图片包括了整个自行车,有的图片只有自行车的部分,因此尽管自行车类有十张图片,但检索结果却只有两张自行车的图片,另外三张明显看出来是检索错误的。

维度=1000
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
结果1、结果2的检索结果都有了很大的变化。结果1、结果2检索出来的五张图片相互都没有太大关系,却被一起检索出来,说明维度变得更大后,检索效果更差了。
2.3 CODE:

# -*- coding
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值