局部特征与图像检索

Exploiting Local Features from Deep Networks for Image Retrieval 阅读笔记

摘要

这篇⽂章发表在CVPR 2015 workshop上,是来⾃于马⾥兰⼤学帕克学院Joe Yue-Hei Ng等⼈的⼯作。近期的很多研究⼯作表明,相⽐于全相连层的输出,卷积层的特征图谱(feature map)更适⽤于实例搜索。本篇⽂章介绍了如何将卷积层的特征图谱转化为“局部特征”,并使⽤VLAD将其编码为图像特征。另外,作者还进⾏了⼀系列的相关试验去观察不同卷积层的特征图谱对实例搜索准确率的影响。(摘自深度学习大讲坛)

两个问题

1、默认的,CNN一般用于分类任务,使用最后一层(或者说高层)的特征作为分类依据,主要原因是高层捕获了更多语义特征(整体特征),但是实例的局部特征(比如说纹理,颜色等)没有很好的保留。对于图像检索而言就有这样的问题:同一类别的两个外观不同的实例不能被区分。
局部特征与图像检索_第1张图片
2、一般的我们都会假设测试时输入图片和训练时的图片大小相同。但是每个卷积层的特征会一定程度地随输入图片尺度的不同而变化。

具体想法

1、卷积网络
实验是基于GoogLenet和OxfordNet(VGG-16),使用ImageNet上预训练的权值。CNN在这里的作用只是为了提取特征,且这里需要验证输入图片尺寸对卷积特征的影响,因此不需要全连接层。GoogLenet本就是全卷积网络,而Oxford需要将最后的全连接层去掉。
2、提取特征
输入图片 I ,首先缩放成 n×n ,进行前向传播,第 l 层的特征图 Ml 的维度为 nl×nl×dl 。为了简单表示,令 nls=nl×nl 。在特征图 Ml 的每个位置 (i,j) 1i,jnl ,可以获得 dl 维的特征向量 fli,jRdl 。这样第 l 层可以获得 nls 个特征向量,表示为 Fl={fl1,1,fl1,2,...,flnl,nl}Rdl×nls
3、VLAD编码
局部特征与图像检索_第2张图片
通过VLAD编码将第 l 层的卷积特征 Fl 转化成 dl×k 维的特征向量 vl (k为k-means聚类中心的数目,实验中k为100)。但是这样得到的VLAD描述子维度和相关性依然很高,因此需要进一步使用PCA降维(实验中降为128维)和白化操作(解相关)。

实验结果

局部特征与图像检索_第3张图片
1、不同卷积层特征对检索结果的影响:
可以看到,mAP先随着层深度的增加而提升,达到顶峰,在更高的层中,mAP又开始下降,说明了并不是越高层的特征对图像检索而言越好,反而是中间偏上层达到最佳效果。这也说明了图像检索与图像分类的不同之处!图像检索需要局部特征(低层特征),在如今网络结构越来越深的情况下,尤其需要注意,太高层的特征丢失了很多实例特征。
2、输入图片的尺寸对检索结果的影响:
根据前人的经验,应用多尺度(Multi-Scale)显著提高检索效果(如:MOP-CNN)。这里使用了两个尺度:scale1( n×n ),scale2( 2n×2n )。
实验结果表明,对于高分辨率图片,高层特征依然可以保留局部特征,直观上可以理解为是感受野的原因。同样一个局部细节,高分辨率图片需要更大的感受野来提取特征。

Correspondence visualization

这部分我是参考《Do Convnets Learn Correspondence?》这篇论文来理解的,通过特征非参数化重构图片。具体做法是将第 l 层的特征图 Ml 中每个特征向量 fli,jRdl 与原始图像块关联起来,图像块位于感受野的中央,大小为感受野的步长。
对于AlexNet(具体怎么算参考感受野的计算):
局部特征与图像检索_第4张图片
将原始图片中每个图像块用数据库中k近邻(图像块对应的特征向量得到的k近邻)的图像块像素的平均值进行替换。

你可能感兴趣的:(图像检索,论文阅读)