python 图像检索系统_python-计算机视觉 - 图像检索

本文介绍了如何使用Python构建基于BOW(Bag of Features)原理的图像检索系统。首先,通过SIFT算法创建视觉单词,接着利用K-means进行特征聚类和图像索引,最后展示代码运行过程和搜索结果的分析,讨论了字典大小、相似性测度函数和聚类时间等因素对检索效果的影响。

文章目录

一 . 环境安装

1.1 项目形式

1.2 一些要修改的地方

二 . 基于BOW图像检索原理

2.1 BOF(Bag of features)原理

2.2 创建视觉单词

2.2.1 SIFT算法提取特征,创建视觉单词词汇

2.2.2 建立视觉单词

2.2.3 建立图像索引

(1)建立数据库

(2)将图片添加到数据库

2.2.4 检索图像

(1)利用索引获取候选图像

(2)查询一幅图像

三. 代码运行

3.1 生成词汇

3.2 图像索引

3.3 搜索图像

四. 结果测试及分析

4.1 搜索结果:

4.2 结果分析

4.2.1 测试一

4.2.2 测试二

4.3 小结

一 . 环境安装

1.1 项目形式

要将项目和以下几个文件放在一起

7a822868e99e5d588c200d8d00888809.png

first1000 为1000张图片数据集;

1.2 一些要修改的地方

在anaconda文件夹中找到:

dc4f2a90574779670f405b79682b5875.png

可以看到一个sqlite3的包,说明anaconda2自带数据库包,不需要安装pysqlite库,所以需要更改PCV\imagesearch中的imagesearch.py文件第三行为from sqlite3 import dbapi2 as sqlite就行;

有关sift在之前的实验项目里直接使用即可;

二 . 基于BOW图像检索原理

2.1 BOF(Bag of features)原理

Bag-of-Features模型仿照文本检索领域的Bag-of-Words方法,把每幅图像描述为一个局部区域/关键点(Patches/Key Points)特征的无序集合。使用某种聚类算法(如K-means)将局部特征进行聚类,每个聚类中心被看作是词典中的一个视觉词汇(Visual Word),相当于文本检索中的词,视觉词汇由聚类中心对应特征形成的码字(code word)来表示(可看当为一种特征量化过程)。所有视觉词汇形成一个视觉词典(Visual Vocabulary),对应一个码书(code book),即码字的集合,词典中所含词的个数反映了词典的大小。图像中的每个特征都将被映射到视觉词典的某个词上,这种映射可以通过计算特征间的距离去实现,然后统计每个视觉词的出现与否或次数,图像可描述为一个维数相同的直方图向量,即Bag-of-Features。

Bag-of-Features更多地是用于图像分类或对象识别。在上述思路下对训练集提取Bag-of-Features特征,在某种监督学习(如:SVM)的策略下,对训练集的Bag-of-Features特征向量进行训练,获得对象或场景的分类模型;对于待测图像,提取局部特征,计算局部特征与词典中每个码字的特征距离,选取最近距离的码字代表该特征,建立一个统计直方图,统计属于每个码字的特征个数,即为待测图像之Bag-of-Features特征;在分类模型下,对该特征进行预测从实现对待测图像的分类。

从文本挖掘中获取灵感——矢量空间模型

矢量空间模型(也称BOW模型)是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值