一、BOF图像检索
1.1简介
Bof,即Bag of features,中文翻译为“词袋”,是一种用于图像或视频检索的技术。而检索就要进行比对。两幅不同的图像如何比对,比对什么,这就需要提炼出每幅图像中精练的东西出来进行比较。正如超市中的条形码,就能很好的反映出一件商品的所有特征。因此概括的来说,bof就是生成每幅图像的“条形码”来进行检索。
1.2流程
1.特征提取:通过sift算法提取图像特征。
2.学习“视觉词典”。
3.针对输入特征集,根据视觉词典进行量化。
4.把输入图像,根据TF-IDF转化成视觉单词(visual words)的频率直方图。
5.构造特征到图像的倒排表,通过倒排表快速索引相关图像.根据索引结果进行直方图匹配。
二、代码
2.1sift特征匹配
# -*- coding: utf-8 -*
import pickle
from PCV.imagesearch import vocabulary
from PCV.tools.imtools import get_imlist
from PCV.localdescriptors import sift
# 要记得将PCV放置在对应的路径下
# 获取图像列表
imlist = get_imlist('D:/pycharm/untitled1/image/') # 存放数据集的路径
nbr_images = len(imlist) # 获取数据集的长度
# nbr_images = 300 # 可以是自己选择用多少张图片作为训练数据集
# 获取特征列表
featlist = [imlist[i][:-3] + 'sift'
for i in range(nbr_images)]
# 提取文件夹下图像的sift特征
for i in range(nbr_i

本文介绍了BOF(Bag of Features)图像检索技术,包括其简介和详细流程。通过SIFT特征匹配、构建视觉词典和量化图像特征,生成图像的“条形码”进行检索。代码部分涉及SIFT特征提取、数据库操作和图片检索。实验结果显示存在一定的误配,可能由于特征相似度高和数据集大小限制。
最低0.47元/天 解锁文章
1164

被折叠的 条评论
为什么被折叠?



