《Python计算机视觉》学习之图像检索

本文介绍了使用Python进行图像检索的BOW模型实验,包括特征点提取、K-Means聚类学习视觉词典、量化特征、构建TF-IDF直方图以及倒排索引。实验结果显示,通过匹配视觉单词频度,能够找到背景相似但前景不同的图像。
摘要由CSDN通过智能技术生成

利用文本挖掘技术对基于图像视觉内容进行图像搜索。
矢量空间模型,是用来表示和搜索文本文档的模型。矢量包含每个单词出现的次数,而在其他地方包含很多0元素。我们忽略单词出现的顺序及位置(研究表明,单词顺序不一定会影响到我们的阅读)。该模型也被称为BOW(Bag of words)表示模型。

一、BOW模型实验步骤

1.1 用sift方法提取特征点
1.2 学习“特征词典”
我们从一个训练集中提取特征描述子,利用K-Means聚类算法得到的视觉单词是聚类质心。
K-Means算法:首先先初始化N个聚类中心(下图是N=3)。重复下面步骤直至算法收敛:对应每个特征,最小化每个特征 xi 与其相对应的聚类中心 mk之间的欧式距离,将该特征赋予给某个类别。对每个类别的特征集重新计算其的聚类中心。
在这里插入图片描述
1.3 针对输入特征集,根据视觉词典进行量化
K-Means算法得到的聚类中心称为codevector。对于输入特征,量化的过程是将该特征映射到距离其最接近的 codevector ,并实现计数。
1.4 把输入图像,根据TF-IDF转化成视觉单词(visual words)的频率直方图
TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力。也就是我们TF-IDF的思想计算一个视觉单词在该图片中出现的频率,据此得到一张图片的视觉单词的频度直方图。
词w在文档d中的词频TF(Term Frequency),即词w在文档d中出现次数count(w, d)和文档d中总词数size(d)的比值:TF(w,d) = count(w, d) / size(d)。
词w在整个文档集合中的逆向文档频率IDF(Inverse Document Frequency),即文档总数n与词w所出现文件数docs(w, D)比值的对数:IDF = log(n / docs(w, D))。
TF-IDF模型根据TF和IDF为每一个文档d和由关键词w[1]…w[k]组成的查询串q计算一个权值,用于表示查询串q与文档d的匹配度:TF-IDF(q, d) = sum { i = 1…k | TF(w[i], d) * IDF(w[i]) }。
在这里插入图片描述
1.5 构造特征到图像的倒排表,通过倒排表快速索引相关图像
倒排索引是指由属性值来确定记录的位置。在本实验中,我们构造视觉单词(特征)到图像的倒排表,便于我们通过找到相似的特征,再找到相关图现象
1.6 根据索引结果进行直方图匹配

二、实验结果分析

首先载入图像列表,特征列表(分别包含图像文件名和SIFT特征文件)及词汇。

from PCV.geometry import homography
from PCV.tools.imtools import get_imlist

# load image list and vocabulary
#载入图像列表
imlist = get_imlist('first1000/')
nbr_images = len(imlist)
#载入特征列表
featlist = [imlist[i][:-3
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值