一、前言
此示例说明如何使用自定义的功能包工作流创建基于内容的图像检索 (CBIR) 系统。
基于内容的图像检索 (CBIR) 系统用于查找在视觉上与查询图像相似的图像。CBIR系统的应用可以在许多领域找到,例如基于网络的产品搜索,监控和视觉位置识别。用于实现CBIR系统的常用技术是视觉词袋,也称为特征袋[1,2]。功能包是一种适用于从文档检索世界中检索图像的技术。与文档检索中使用实际单词不同,功能包使用图像特征作为描述图像的视觉单词。
图像特征是CBIR系统的重要组成部分。这些图像特征用于衡量图像之间的相似性,并且可以包括全局图像特征,例如颜色、纹理和形状。图像特征也可以是局部图像特征,例如加速鲁棒特征 (SURF)、梯度直方图 (HOG) 或局部二进制模式 (LBP)。功能袋方法的好处是,可以自定义用于创建视觉单词词汇表的特征类型以适应应用程序。
图像搜索的速度和效率在CBIR系统中也很重要。例如,在少于 100 个图像的小型图像集合中执行暴力搜索可能是可以接受的,其中查询图像中的特征与集合中每个图像的特征进行比较。对于较大的集合,暴力搜索是不可行的,必须使用更有效的搜索技术。要素包提供了一种简洁的编码方案,以使用一组稀疏的视觉单词直方图来表示大量图像。这可以通过倒排索引数据结构实现紧凑存储和高效搜索。
计算机视觉工具箱提供了一个可自定义的功能包框架来实现图像检索系统。以下步骤概述了该过程:
-
选择要检索的图像要素
-
创建功能包
-
为图像编制索引
-
搜索相似图片
在此示例中,您将通过以下步骤创建用于搜索花卉数据集的图像检索系统 [3]。该数据集包含 3670 种不同类型花的大约 5 张图像。
下载此数据集,以便在此示例的其余部分使用。
请注意,从 Web 下载数据集可能需要很长时间,具体取决于您的互联网连接。以下命令将在这段时间内阻止 MATLAB。或者,您可以使用 Web 浏览器先将集下载到本地磁盘。如果您选择该路由,请将上面的“url”变量重新指向您下载的文件。
二、步骤1 - 选择要检索的图像特征
用于检索的要素类型取决于集合中的图像类型。例如,如果搜索由场景(海滩、城市、高速公路)组成的图像集合,则最好使用全局图像功能,例如捕获整个场景颜色内容的颜色直方图。但是,如果目标是在图像集合中查找特定对象,则围绕对象关键点提取的局部图像特征是更好的选择。
让我们从查看其中一张图像开始,了解如何解决问题。
在此示例中,目标是使用查询图像中的颜色信息在数据集中搜索相似的花朵。基于颜色空间布局的简单图像特征是一个很好的起点。
三、步骤 2 - 创建功能包
定义特征类型后,下一步是使用一组训练图像学习视觉词汇。下面显示的代码从数据集中随机选取图像子集进行训练,然后使用“自定义提取器”选项进行训练。
设置为 false 以加载预训练的包功能。设置为 false,因为训练过程需要几分钟时间。示例的其余部分使用预训练来节省时间。
四、步骤 3 - 为图像编制索引
创建后,可以对整个花卉图像集编制索引以进行搜索。索引过程使用步骤 1 中的自定义提取器函数从每个图像中提取特征。提取的特征被编码为可视词直方图,并添加到图像索引中。
由于索引步骤处理数千张图像,因此此示例的其余部分使用保存的索引来节省时间。您可以通过设置为 true 在本地重新创建索引。
五、步骤 4 - 搜索相似图像
最后一步是使用该函数搜索相似的图像。
对应于图像集中与查询图像类似的图像。
六、结论
此示例演示了如何自定义以及如何使用和创建基于颜色特征的图像检索系统。通过进一步自定义 中使用的功能,可以将此处显示的技术扩展到其他功能类型。
七、程序
使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)
打开下面的“example.mlx”文件,点击运行,就可以看到上述效果。
程序下载:基于matlab创建基于颜色特征的图像检索系统资源-CSDN文库