基于内容的图像检索系统设计与实现
一、小组成员
- 孙宇超 2120161044
- 于立冬 2120161072
- 余非梧 2120161074
二、项目内容和意义
随着互联网技术的普及和发展,图片资源已成重要的信息载体,传统的基于关键字的信息检索技术已逐渐不能满足需求,因此,基于内容的图像检索技术成为当今的一个研究热点。文中在分析基于内容的图像检索方法基础上,针对图像检索特点设计了一种图像检索系统的模型,并简要介绍模型的系统实现方法和图像处理过程。由具体实例数据验证说明了系统的可用性,表明此系统具有一定应用价值与参考性。
三、目标和流程
我们的目标是设计一个基于内容的图像检索系统,使得在拥有一定数量的图像数据库时,根据用户自己提交的图像,返回一系列内容上与用户提交图像最相近的图像。
本系统流程示意图如下所示。
1.对数据库图片进行特征提取,并利用PCA算法进行降维。 2.使用K-means算法对特征进行聚类。 3.使用均值向量对一个类别进行表示。 4.根据用户输入的图片进行特征提取,并降维。 5.对于用户图片特征匹配距离最近的均值向量。 6.在均值向量对应的类内,进行遍历比较,找出最大的前k个。
四、原理与算法
1. 特征提取
特征提取使用了caffe框架下使用imagenet数据集训练的AlexNet网络,抽取其fc7层的data作为图片的特征表示。 目前,深度特征在表示图像内容上效果显著,AlexNet也是深度神经网络中比较有代表性的网络。在imagenet上的图像分类challenge上Alex提出的alexnet网络结构模型赢得了2012届的冠军。
2. PCA降维
AlexNet网络抽取出的fc7层特征有4096维,特征维度相对较高。较大数据维度会加大计算的复杂度,耗费更多的存储资源。并且,我们通过考察发现,4096维的特征中包含许多冗余的信息,这些冗余信息对于聚类没有帮助,甚至会影响最终的聚类效果,所以我们引入PCA算法将原本4096维的特征降低到128维。
3. 聚类
我们采用K-means算法对训练数据的特征进行聚类,得到50个聚类中心。我们利用这50个聚类中心的特征来分别表示每一个类别。
4. 检索
在检索时,我们先对待检索图片提取特征,然后以欧式距离检索各个类别的均值向量,确定待检索图片落在哪个类别中。在类别中,如果还有其他类别存在,重复此过程,直到落在图片集合中,按照待检图片与图片集合的距离,找出最近的k个。
5. 展示系统
使用了Django作为webserver搭建展示平台。
五、项目分工
- 孙宇超:算法设计、程序实现
- 于立冬:算法设计、数据收集分析与预处理
- 余非梧:算法设计、文档编写与PPT制作