赞
踩
图像检索在实际应用中主要是针对大量的、动态的、无标签的数据。在这种情况下,如果数据库每增加一张图片就要对模型进行重新训练或者微调的方法就表现出效率低、可扩展性差的问题。有研究已经证实,用于图像分类的卷积神经网络(CNN),已经在大数据集上进行训练的话,就可以作为图像检索的特征提取器。其中最成功的方法是对卷积层的输出进行编码,因为卷积层保留了图像的空间信息。在这篇文章中,我们在这种空间信息的基础之上,提出一种基于预测目标图像语义信息的卷积层局部响应(local-aware)的编码方法。最后,我们使用类激活图(Class Activation Maps---CAMs)来获得图像中最具有辨识能力的区域。CAMs 是通过网络的输出信息来获得的,因此不需要增加额外的信息,这是我们方案的其中一个优点。此外,在第一次快速查询之后的无监督重排(re-ranking)阶段,我们使用CAMs生成对目标的建议。我们在图像检索的两个公开数据集(Oxford5k和Paris6k)上进行了实验,结果表明,我们使用在 ImageNet 上预训练模型进行迁移学习的方法超过了当前最好的图像检索模型。我们的开源代码在Class-Weighted Convolutional Features for Image Retrieval。
基于内容的图像检索(CBIR),特别是目标检索(实例检索)是计算机视觉中一个很活跃的领域。给定一张包含感兴趣目标的图像(视觉查询),检索的目的是在大规模的数据集中检索出与要查询目标相似的一系列经过排序的图像。该问题已经有很多解决方式:从学习高效的图像表达[16,19]并构建不错的码本(codebooks)[2,17],到利用扩展查询(query expansion)[6,12,27]或空间验证(spatial verification)[17,26]来快速检索出第一组相近的结果。
在大规模数据集上训练的卷积神经网络可以从一个数据集迁移到另一个数据集[29]。这种迁移学习能力对图像检索来说特别重要,因为图像检索主要针对的是大量的、变化的、无标签的数据。因此,每当有新图像增加就重新训练一次 CNN 在实际生产中并不具有很好的扩展能力。
很多研究都使用预训练的 CNN 来进行特征提取,然后在自定义的数据集上做微调就可以获得不错的特征。例如,[4]和[8]使用的是全连接层的输出信息,但是最近的很多研究都表明卷积层的输出含有图像的空间信息,因此在目标检索领域会有更好的表达性能[3]。根据这一观点,一些研究者就将图像中感兴起区域与卷积层的输出特征进行结合[3,14,21,28]。最近也有一些研究使用相似性作为损失来微调 CNNs,例如排序(ranking)[9]或匹配(pairwise)相似性,进而可以提升检索的性能。然而,这种微调方式有一个不太好的地方:需要花费大量的精力来对大规模的数据集进行收集、标注、清洗,这样可行性就不高了。
在这篇文章中,我们使用图像的语义信息以及网络的输出信息,将图像编码成密集的表达。在此之前,已有学者对图像检索中的语义信息进行研究,如[30]提出一种结合语义信息和局部特征的方法来实现快速检索的倒序排列。同样地,[7]将图像的弱语义信息进行结合。然而,这些方法大都没有将图像区域和图像中的目标联系起来,因为这通常需要借助其他复杂的方式,如目标检测。在这篇文章中,我们使用图像中的类别信息对卷积特征进行加权。我们的目的是证明CNN输出信息的可迁移性,不仅仅是特征,还有对图像中最具代表性区域的关注能力。最后,我们使用类激活图(CAMs)来生成从网络的卷积层提取到的卷积特征的语义感知(semantic-aware)权重。
这篇文章的主要研究内容如下:首先,通过CAMs获得的图像语义信息,将图像表示成具有空间特性的加权卷积特征。其次,我们使用CAMs对给定目标的表达(object mapping)来快速计算感兴趣区域,便于后期重排的实现。最后,我们使用提取到的特征,在 Oxford5k 和 Paris6k 数据集上进行实验,并获得了比目前图像检索算法更好的检索结果。
CNNs 在图像分类领域的成功,使得图像检索领域开始使用从 CNNs 中获得特征的方法来代替传统人工选择特征的方法。例如,[4]使用从全连接层中提取的特征,[25]提出一种对局部分析的扩展(an extension to local analysis),实现从图像中一组固定比例的区域中提取特征。
之后,有研究表明从卷积层获得的特征保留了图像的空间信息,可以得到对检索更有效的信息。受这一研究的启发,一些研究者开始关注如何使用不同的方法来让卷积特征能够关注图像中的感兴趣区域。例如,RMAC [28]和 BoW[15] 使用固定的网格域(grid of regions),[25]考虑使用随机域(random regions),SPoC 假设有关联的内容是位于图像的中心。这些方法表明关注图像中的局部区域可以有效提升检索性能。然而,这些区域的计算带有一定的经验性和随机性。而我们在本文中是基于图像内容来获得局部区域。
本文根据图像的内容提取了图像中感兴趣区域的特征,在此之前也有一些学者做了这方面的研究。例如,[9,24]对每个查询目标都训练了一个网络(a region proposal network)。然而,这种方法却不具有很好的扩展性,因为这是一个需要在查询时运行的计算密集过程,既要用来训练,又要用于在查询时分析大规模数据。也有一些研究使用额外的网络来预测图像中的感兴趣区域。例如,[22]使用eye gaze生成的显著图(saliency maps)来对卷积特征进行加权。然而,这种方法需要再另外计算显著图,这就需要重复计算数据集的索引。[14]中的 CroW 也提出了另外的方法,该方法将卷积层所有通道的特征图进行结合,进而建立一种空间加权特征。这就使得具有显著性区域的特征的权重增加,而没有显著性区域的权重减小。这种加权方式在一次单向传播中就可以计算出。下节我们将阐述利用预测的类别信息生成CAMs的方法,并得到卷积层特征的语义感知(semantic-aware)空间权重。
本章首先回顾了类激活图的内容,之后对我们提出的将图像进行密集表达的方案进行了阐述。
类激活图(CAMs)[31]最初是作为一种表示图像中的相关像素的方法,它经常被用来预测图像的类别。大部分的图像分类网络都可以直接计算出 CAMs。概括地说,就是将最后的全连接层替换为全局平均池化层(GAP)和线性分类器。同时为了解决因去掉全连接层而带来的准确率下降的问题,会在GAP(CAM层)之前再增加一层卷积层。因为在分类器之前是GAP层,所以可以在不用进行任何修改的前提下提取 CAMs。
给定类别 ,对最后一层卷积层的特征图,使用线性分类器学到的权重进行加权求和,就可得出 CAMs。确切地说,是根据下式进行计算第 类的CAM:
其中, 表示 GAP 层之前的卷积层的第 个特征图; 表示第 个特征图和第 类连接的权重。注意,因为我们在分类器之前使用了一层全局平均池化层,因此 CAM 的结构就不受输入图片尺寸的影响。
根据给定的 CAM ,可以计算出目标的位置边框[31]。首先根据 CAM 热度图的全局强度值(标准化之后)设定一个阈值,然后将低于该阈值的值设置为0。感兴趣区域指的是包含最多连接元素(the largest connected element)的边框。
image encoding pipeline 如图 1 所示。
如图 1 所示,该方案主要有三个阶段:特征和 CAM 提取(features and CAMs extraction),特征加权和池化(feature weighting and pooling),描述聚合(descriptor aggregation)。
Features and CAMs Extraction:输入图像经过前向传播可以得到特定卷积层的输出,该层输出有 个特征图,尺寸为 。同样在一次前向传播中,我们也可以计算出 CAMs ,表示特定类别的判别区域。之后,将 CAMs 归一化到[0,1],并且 resize 到和特定卷积层特征图一样的大小。
Feature Weighting and Pooling:在这一阶段,对特征进行加权和池化可以获得图像的密集表达。对于一个给定的类 ,我们将特征图与其对应的 CAM 相乘,得到加权的空间特征。之后使用求和池化(sum-pooling)将特征图降维得到一个 维特征向量。我们的目的是获得目标的范围,而不是它们与其他部分差别最大的部分,因此我们使用求和池化而不是最大池化。此外,[3,14]也说明了如果使用 PCA 和白化(whitening)的话,使用求和池化效果更好。最后,我们使用 CroW[14] 提出的通道加权方法(channel weighting)来降低通道的冗余、增加稀有特征的贡献。准确的说,我们先计算每个通道的非 0 值占整个特征图面积的比例,用 表示:
之后用反向通道的稀疏性的 log [14]来计算 :
最后,就可以计算出固定长度的类向量 :
Descriptor Aggregation:最后,对 个类向量求和,就可得到每个图片 的特征表达 。也就是说,我们先根据[14,28]分别使用了 正则化、PCA 白化和 正则化。然后我们利用特征聚合技术,对多个特征表达进行求和得到单一向量,最后再进行 正则化。
剩下的内容就是选择合适的类来生成图像的特征表达。我们将预训练的网络迁移到其他的数据集上,因此我们定义了下面的两种方式:
我们的实验是在 Oxford5k Buildings [17]和 Paris6k Buildings[18] 数据集上进行的,这两个数据集都有 55 幅查询图像,每幅图像都对感兴趣区域进行了标注。我们还考虑使用 Oxford105k 和 Paris106k 数据集来测试在大规模场景中的检索情况。这两个数据集是对Oxford5k Buildings 和 Paris6k Buildings 的补充[17]。实验将图像的最短边 resize 到720,同时长宽比同原始图像。我们使用从卷积层提取到的感兴趣区域进行检索性能的评估。当对 Oxford5k 进行测试时,使用在 Paris6k 的 PCA 降维方式,反之亦然。我们使用余弦距离(cosine similarity metric)计算每幅图像的相似性得分,并按照从高到低的顺序排列。最后采用平均精度均值(mAP)计算每种方法的准确率。
本节我们比较了从不同网络获得的 CAMs,如 DenseNet-161 [11] ,ResNet-50 [10], DecomposeMe [1] 和 VGG-16 [31]。这些网络得到的 CAM 如图 2 所示。
每个模型的准确率如表 1.a 所示。
如图 2 所示,VGG 模型更关注特定的目标或者这些目标与其他部分差别最大的区域,而不是像其他网络一样关注图像的全局信息。此外,描述的长度是 512(ResNet-50 是 2048)。还可以看到,VGG-16 的性能是这些网络中最好的,因此,在接下来的实验中,我们使用在 ImageNet 数据集[23]上预训练的 VGG-16 模型。我们从VGG网络最后的卷积层(conv5_1, conv5_2, conv5_3)中提取特征,而经验表明使用 conv5_1 获得的特征的效果最好。[31]说明,使用 CAM 调整过的模型在分类任务上的性能比原始的 VGG-16 效果更差,我们发现这种现象也同样发生在图像检索领域。对于 Oxford5k 数据集,分别执行最大池化和求和池化,其相对差异分别是 14.8% 和 15.1%。
3.2 节阐述的模型有两个参数可调:类向量的个数 和用来构建 PCA 矩阵的类的数目 。用来计算的输入矩阵是 维,其中, 表示数据集中图像的数量, 表示卷积层的特征图数量。
OnA 和 OfA 的性能比较如图 4 所示,其中图 4 是以 为横坐标,以 为纵坐标。
如表 1.a 所示,基本的 mAP 值是采用求和池化、通道加权和 PCA 获得的。我们提出的方案在没有增加很大计算量的同时性能得到了提升,如表 1.b 所示。
在 OfA 阶段,参数 的性能似乎与数据集有关,增加 值,在 Paris6k 上 mAP 有较高的提升,而在 Oxford5k 数据集上却几乎不变。然而,在 OnA 阶段,我们可以看到较小的 (<10)就可以在两个数据集上获得不错的结果。增加 的值,会使模型性能有小规模的提升,但仅仅是在 Oxford5k 数据集上。此外,如果知道哪些内容是相关的,就可以减少在构建描述时需要的类向量,同时还可以提升模型的性能。我们还发现增加 的值并没有给模型的效果带来提升,这说明类的(目标的)随机性并没有带来有价值的信息。
为了提升 OfA 阶段的性能,同时没有 OnA 阶段的限制,我们建议限制 的大小。因为数据集的相似性较高,所以我们先计算 55 个 Paris6k 查询中最具有代表性的类,然后利用根据出现概率而排序的类列表,得到 Oxford5k 的图像表达。结果如图 5 所示。
首先,通过增加 的值,我们学到了一种更好的 PCA 降维方式。当我们对每幅图像都使用相同的类时,PCA 会寻找一种更好的表示空间。其次,我们发现 OfA 和 OnA 的 mAP 值均有所提升,因为在 OfA 时我们没有出现类的不匹配现象,在 OnA 时 PCA 提供了一种更好的降维方式。
本文与其他先进的检索算法的性能比较如表2所示。
我们的方案都使用预训练的 VGG-16 网络在 Oxford5k 和 Paris6k 数据集上完成检索任务,并且设置 为1, 为64。
在 Paris6k 数据集上,我们的模型在 OnA 中获得了最好的结果,而与 OfA 的结果却有很大的不同。这表明选择图像相关内容的重要性。此外, OfA 方案具有很好的扩展性,在 Oxford105k 数据集上性能超过其他算法,而在 Paris106k 上仅仅落后于 RMAC[28]。如果我们只需要检索出特定的内容(如建筑物),那么按照 4.3 节介绍的方法对可能的类进行过滤,OfA方案会得到更好的结果。在 Oxford5k 数据集上,Razavian 等人的方法[21]获得了最好的结果,该方法对数据集中的所有图像都进行了不同尺寸的空间搜索。然而,该方法在特征提取方面花费的精力比本文的方法多很多,因为它们输入给 CNN 32个裁剪后的图像,尺寸为576x576。同样在 Oxford5k 数据集上,OnA 方法通过使用更密集的特征描述,在性能上排第三位。
图像检索普遍是利用一些后处理的方法来提升第一次的查询准确率,如扩展查询和重排[14,15,28]。
Query Expansion:[5,6]介绍了很多不同的扩展查询方式,我们使用[14]介绍的最简单、最快速的方式,即先对 top ranked QE 进行求和,再进行 正则化。
Local-aware Re-Ranking:根据[17]中的描述,通过对检索到的 top-R 图像进行局部分析,可以提高第一次基于图像特征的快速查询结果。这种重排方式的实现,需要借助查询目标与 top-R 图像中目标的位置的细节匹配程度。有很多方式都可以获得目标的位置,例如,R-MAC[28] 使用快速的空间搜索和近似最大池化来定位。BoW[15] 利用带有变化边框的滑动窗方法来实现重排。而我们则使用3.1节介绍的类激活图的方法来对图像中的目标进行定位。我们使用预测的最可能的类来生成目标图像的感兴趣区域,如图2所示。为了得到这些区域,我们首先根据 CAM 热度图的强度值,凭经验设置了一系列的阈值。确切地说,我们设置五个阈值阈值,分别为 CAM 最大值的1%,10%,20%,30%和40%,然后计算目标的边界框。之后,对计算得到的每个空间区域都经过聚合操作得到特征表达,然后利用余弦距离计算其与查询图像的得分,保留得分最高的特征表达。我们之所以使用不止一个阈值,是为了要适应不同图像的维度的差异。我们发现,只使用前 top-2 类的平均热度图有助于提升生成的区域的质量。这可能是因为大部分的建筑物不仅仅是由一种类组成。
本节将我们的重排和扩展查询方式与其他的比较先进的方法进行了比较:CroW 将扩展查询应用在初始化查询之后,BoW 和 R-MAC 是先使用了一次空间重排。top-images 的数量根据任务的不同而有所差别。对比结果如表 2.b 所示。在第一次查询时,我们设 为1, 为64。而在重排阶段,我们将 降为6,这是因为完成第一次查询之后,我们已经拥有了一些相关图像,并且我们的目的是通过查看特定区域来实现更为细致的比较。此外,降低 的值也带来计算上的便利。如表 2.b 所示,用过一次简单的扩展查询,我们提出的方法获得了不错的结果。而增加一步重排,就可以在 Oxford5k 数据集上获得很大的提升。而在 Paris6k 数据集上使用重排并没有带来效果的提升,这是因为相关的图像在第一次查询时就已经在top QE。
在这篇文章中我们提出一种关注图像语义信息的图像表达的构建方式。为此,我们利用预训练的 CNN 网络和类激活图从图像中提取最具有判别能力的区域,并且对对应的卷积特征进行加权。经过实验证明,我们提出的图像表示方法有助于提升检索性能。和使用随机或固定的网格域将特征结合来进行图像表示的方法相比,我们的方法效果更好。
参考文献:Class-Weighted Convolutional Features for Visual Instance Search
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。