【计算机视觉 5】、图像检索

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

从20世纪70年代开始,有关图像检索的研究就已开始,当时主要是 基于文本的图像检索技术 (Text-based Image Retrieval,简称 TBIR),利用文本描述的方式描述图像的特征,如绘画作品的作者、年代、流派、尺寸等。到90年代以后,出现了对图像的内容语义,如图像的颜色、纹理、布局等进行分析和检索的图像检索技术,即 基于内容的图像检索 (Content-based Image Retrieval,简称 CBIR)技术。

因此按描述图像内容方式的不同可以分为两类:

基于文本的图像检索(TBIR, Text Based Image Retrieval)
基于内容的图像检索(CBIR, Content Based Image Retrieval)

一、基于内容的图像检索(CBIR)

随着图像数据快速增长,针对基于文本的图像检索方法日益凸现的问题,在1992年美国国家科学基金会就图像数据库管理系统新发展方向达成一致共识,即表示索引图像信息的最有效方式应该是基于图像内容自身的。自此,基于内容的图像检索技术便逐步建立起来,并在近十多年里得到了迅速的发展。
  
 CBIR 利用计算机对图像进行分析,建立图像特征矢量描述(SIFT特征提取 )并存入图像特征库,当用户输入一张查询图像时,用相同的特征提取方法(SIFT)提取查询图像的特征得到查询向量,然后在某种相似性度量准则下计算查询向量到特征库中各个特征的相似性大小,最后按相似性大小进行排序并顺序输出对应的图片。

基于内容的图像检索技术将图像内容的表达和相似性度量交给计算机进行自动的处理,克服了采用文本进行图像检索所面临的缺陷,并且充分发挥了计算机长于计算的优势,大大提高了检索的效率,从而为海量图像库的检索开启了新的大门。

二、矢量空间模型(BOW表示模型、Bag of Words)

矢量空间模型 是一个用于表示和搜索文本文档的模型。它基本上可以应用于任何对象类型,包括图像。该名字来源于用矢量来表示文本文档,这些矢量是由文本词频直方图构成的。矢量包括了每个单词出现的次数,而且在其他别的地方包含很多 0 元素。由于其忽略了单词出现的顺序及位置,该模型也被称为 BOW 表示模型(Bag of Words)。

通过单词计数来构建文档直方图向量 v,从而建立文档索引。通常,在单词计数时会忽略掉一些常用词,如 “这” “和” “是” 等,这些常用词称为 停用词 。由于每篇文档长度不同,故除以直方图总和将向量归一化成单位长度。对于直方图向量中的每个元素,一般根据每个单词的重要性来赋予相应的权重。通常,数据集(或语料库)中一个单词的重要性与它在文档中出现的次数成正比,而与它在语料库中出现的次数成反比。

最常用的权重是 tf-idf (term frequency-inverse document frequency,词频-逆向文档频率),单词 w 在文档 d 中的词频是:
请添加图片描述

nw是单词 w 在文档 d 中的出现的次数。为了归一化,将n_w除以整个文档中单词的数。
逆向文档频率为:

请添加图片描述

∣D∣是在语料库 D DD 中文档的数目,分母是语料库中包含单词 w 的文档数 d 。将两者相乘可以得到矢量 v 中对应元素的 tf-idf权重

1.视觉单词

为了将文本挖掘技术应用到图像中,我们首先需要建立视觉等效单词,通常采用SIFT局部描述子技术。它的思想是将描述子空间量化成一些典型实例,并将图像中的每个描述子指派到其中的某个实例中。这些典型实例可以通过分析训练图像集确定,并被视为视觉单词。所有这些视觉单词构成的集合称为 视觉词汇 ,有时也称为 视觉码本 。对于给定的问题、图像类型,或在通常情况下仅需要呈现视觉内容,可以创建特定的词汇。

从一个训练图像集提取特征描述子,利用一些聚类算法可以构建出视觉单词。聚类算法中最常用的是 KMeans算法。视觉单词并不高端,只是在给定特征描述子空间中的一组向量集,在采用 KMeans进行聚类时得到的视觉单词是聚类质心。用视觉单词直方图来表示图像,则该模型便称为 BOW 模型。

2.Bag of features原理

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

3.Bag of features 图像检索流程

1 特征提取
2 学习 “视觉词典(visual vocabulary)”
3 针对输入特征集,根据视觉词典进行量化
4 把输入图像转化成视觉单词(visual words)的频率直方图
5 构造特征到图像的倒排表,通过倒排表快速索引相关图像
6 根据索引结果进行直方图匹配

4.对输入特征集进行量化

训练得到的字典,是为了这一步对图像特征进行量化。对于一幅图像而言,我们可以提取出大量的「SIFT」特征点,但这些特征点仍然属于一种浅层(low level)的表达,缺乏代表性。因此,这一步的目标,是根据字典重新提取图像的高层特征。

具体做法是,对于图像中的每一个「SIFT」特征,都可以在字典中找到一个最相似的 visual word,这样,我们可以统计一个 k 维的直方图,代表该图像的「SIFT」特征在字典中的相似度频率。

我们匹配图片的「SIFT」向量与字典中的 visual word,统计出最相似的向量出现的次数,最后得到这幅图片的直方图向量

在上述介绍中,在矢量空间模型中提到了单词权重,在文本检索中,不同单词对文本检索的贡献有差异,所以在将输入图像转换为频率直方图时需要根据TF-IDF赋予权值。具体流程在上述视觉单词模块中提及。

某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。

倒排表是一种逆向的索引方法,构造倒排表可以快速索引图像。倒排索引,通过搜索要查询的关键字,查询到跟该关键字相关的所有文档。倒排表可以获得是各视觉单词出现在图像库的哪些图像中。

最后,根据索引的结果进行直方图匹配,就完成了图像索引

三、实验

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
图像检索是指在图像库中根据用户的需求查找相应的图像。基于深度学习的图像检索算法近年来得到了快速发展,取得了优秀的检索效果。 本文将介绍一种基于深度学习的图像检索算法,该算法主要基于卷积神经网络(CNN)和循环神经网络(RNN)进行图像特征提取和相似度计算。该算法的主要步骤包括图像预处理、CNN特征提取、RNN编码和相似度计算。 首先,对于输入的图像,需要进行预处理操作,包括图像缩放、裁剪、归一化等。预处理后的图像可以作为CNN的输入。 其次,使用预训练的CNN模型(如VGG、ResNet等)对输入的图像进行特征提取。CNN模型通常包含多个卷积、池化和全连接层,可以有效地提取图像的局部和全局特征。在本算法中,我们将CNN的中间层输出作为图像的特征表示。 接着,将CNN提取的特征输入到RNN中进行编码。RNN是一种递归神经网络,可以对序列数据进行建模。在本算法中,我们将CNN提取的特征序列作为RNN的输入,通过RNN编码得到图像的最终特征表示。 最后,使用余弦相似度计算两个图像之间的相似度。余弦相似度是一种常用的相似度计算方法,可以衡量两个向量之间的夹角余弦值,值越大表示两个向量越相似。在本算法中,我们将图像的特征向量作为余弦相似度的输入,得到两个图像之间的相似度分数。 在实验中,我们使用了一个包含数千张图像的数据集进行评估。实验结果表明,本算法可以在较短的时间内实现高效的图像检索,并且具有较好的检索效果。同时,在实验中,我们还比较了不同的CNN模型和RNN结构对检索效果的影响,得到了一些有价值的结论。 代码实现方面,我们使用了Python编程语言和深度学习框架TensorFlow。代码主要分为数据预处理、CNN特征提取、RNN编码和相似度计算四个部分。具体实现细节可以参考代码仓库(链接待补充)。 总的来说,基于深度学习的图像检索算法是一种非常有前景的研究方向,可以为图像检索领域带来更加高效和精确的解决方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值