一.图像检索技术分类
一般来说,有三种类型的图像搜索引擎:通过元数据搜索(search by meta-data),通过实例搜索(search by example),以及两者的混合方法。
A great example of a Search by Meta-Data image search engine isFlickr.
A great example of a Search by Example system is TinEye.
二.图像检索基本概述
在检索原理上,无论是基于文本的图像检索还是基于内容的图像检索,主要包括三方面:一方面对用户需求的分析和转化,形成可以检索索引数据库的提问;另一方面,收集和加工图像资源,提取特征,分析并进行标引,建立图像的索引数据库;最后一方面是根据相似度算法,计算用户提问与索引数据库中记录的相似度大小,提取出满足阈值的记录作为结果,按照相似度降序的方式输出。
为了进一步提高检索的准确性,许多系统结合相关反馈技术来收集用户对检索结果的反馈信息,这在CBIR(如下)中显得更为突出,因为CBIR实现的是逐步求精的图像检索过程,在同一次检索过程中需要不断地与用户进行交互。
三.任何CBIR系统的4基本个步骤
四.检索方法
关键词查找
浏览查找
特征输入查找
草图查找
五.程序实现
基于Python 2.7 and OpenCV 2.4.X(稍加修改也兼容opencv 3 )
数据集(dataset):我们将使用INRIA Holidays Dataset来获取图像数据集
步骤1:定义我们的图像描述符:HSI颜色空间直方图
步骤2:从我们的数据集中提取特性
步骤3:建立搜索器
步骤4:执行搜索
总结:我们使用了一种颜色直方图(HSI)来描述照片的颜色分布。然后,我们使用颜色描述子对数据集进行索引,从数据集中的每个图像中提取颜色直方图。为了比较图像,我们使用了chi-squared distance。然后,我们实现了接受查询图像并返回相关结果的过程。
正如你所看到的,与我们的图像搜索引擎互动的唯一方式是通过命令行——这不是很吸引人。故在下一篇文章中,我们将探讨如何在Python web框架中包装我们的图像搜索引擎,使之更容易使用。
参考博客:https://www.pyimagesearch.com/2014/12/01/complete-guide-building-image-search-engine-python-opencv/(附源码)
领取专属 10元无门槛券
私享最新 技术干货