关于图像检索
一、Bag of features算法
此算法的思想是在我们先做一个数据集,然后找到图像中的关键词,这些关键词必须具备较高的区分度,最主要的操作就是提取sift特征,然后对这些特征点进行聚类算法,然后得到聚类中心,聚类中心就具有很高的代表性,这些聚类中心形成字典,然后自取一张图片,进行sift特征提取,就可以在字典里找到最相似的聚类中心,统计这些聚类中心出现的次数,然后就直方图表示出来,对于不同类别的图片,就可以训练处一些分类模型,然后就可以进行图片分类。
二、算法流程
1.收集数据集
2.提取sift特征
3.根据sift特征提取结果,进行聚类,得到一个字典
4.根据字典将图片表示成向量(直方图);
5.训练分类器或者用 KNN 进行检索
提取特征:
为了是图片具有较高的分辨度,使用sift特征提取,保证旋转不变性和尺度不变性,每个特征点都是128维的向量,将会提取很多的特征点
得到字典:
再次之前提取了很多的特征向量,然后就对这些特征向量进行k-means聚类,k值根据实际情况而定。聚类完成后,就得到了这 k 个向量组成的字典,这 k 个向量有一个通用的表达,叫 visual word。
三、实验过程
一:创建图像源:
二、基于Bag of features算法的图像检索
2.1
读取图片,提取特征
代码
import pickle
from PCV.imagesearch import vocabulary
from PCV.tools.imtools import get_iml