大数据 爬虫Python AI Sql深度学习·神经网络·计算机视觉深度学习

## 【TPAMI重磅综述】 SIFT与CNN的碰撞:万字长文回

2018-06-05  本文已影响38人  机器学习算法工程师

翻译&编辑:李中梁

前言

本文是《SIFT Meets CNN: A Decade Survey of Instance Retrieval》的下篇。在上 篇中概述了图像检索任务极其发展历程,介绍了图像检索系统的基本架构和设计难点,详细展示了基于图像局部特征(以SIFT为代表)的检索流程以及关键环节的核心算法。

在下篇中将介绍基于CNN特征的图像检索系统的流程及关键问题,并在几个常见数据集上测试六个经典检索系统的性能。最后文章将对图像检索领域的发展趋势进行展望。

这篇刊登在 TPAMI 2018年5月刊上的综述《SIFT Meets CNN: A Decade Survey of Instance Retrieval》全面调研了十多年来图像检索任务中所使用的图像编码、检索算法,并对比了各种方法在各大数据集上的实验结果,旁征博引,内容详实。如果您刚接触图像检索领域,可以通过本篇文章摸清其概貌;如果您在领域内深耕多年,也可以在本文中查漏补缺,裨益良多。

TPAMI是计算机视觉领域顶级期刊,此文的质量也不必多言,我在此斗胆将这篇综述加以整理,翻译成文,若有不当之处还望指出。


标题:

当SIFT邂逅CNN:图像检索任务跨越十年的探索历程

作者:

Liang Zheng, Yi Yang, and Qi Tian


4 基于CNN的图像检索系统

基于CNN的图像检索方法近年来不断被提出,并且在逐渐取代基于手工检测器和描述符的方法。在这篇综述中,基于CNN的方法被分为三类:使用预训练的CNN模型,使用微调的CNN模型以及使用混合模型。前两类方法使用单向传递网络来提取全局特征,混合模型方法可能需要多个网络传递。如图2所示(译者注:由于图2在上篇中,因此摘取到本文中方便阅读)。

image

图2:基于SIFT特征与CNN特征的图像检索流程

4.1 使用预训练CNN模型的图像检索系统

由于预训练CNN模型是单通模式,因此这种方法在特征计算中非常高效。考虑到传输特性,它的成功在于特征提取和编码步骤。我们将首先描述一些常用的数据集和网络进行预训练,然后进行特征计算。

4.1.1 预训练的CNN模型
image

表2:可供使用的预训练CNN模型

流行的CNN网络结构。 AlexNet,VGGNet,GoogleNet以及ResNet这几个CNN网络适用于特征提取,详见表2.简单来说,CNN网络可以视为一系列非线性函数的集合,它由如卷积,池化,非线性等多个层组成。CNN是一个分层次的结构。自网络的底层到顶层,图像经过滤波器的卷积,同时这些图像滤波器的感受野随增长而增加。同一层的滤波器尺寸相同但是参数不同。AlxNet是这些网络中最早被提出的的,它有五个卷积层和三个全连接(FC)层。它的第一层大小96个11×11×3的滤波器,在第五层中有256个大小为3×3×192的滤波器。Zeiler等人观察到滤波器对某些视觉模式十分敏感,这些模式从底层的低级的图像纹理演变到顶层的高级的图像目标。对于低层次和简单的视觉刺激,CNN滤波器类似局部手工制作的特征中的检测器,但是对于高层次和复杂的刺激,CNN滤波器具有不同于SIFT类检测器的特质。AlxNET已被证明被新的的如具有最大数量参数的VGGNet超越。ResNet和GoogleNet分别赢得了ILSVRC 2014和2015的挑战,表明CNN网络的效果和网络层数成正比。如果要调研全部这些网络超出了本文的范围,我们建议读者参阅《Imagenet classification with deep convolutional neural networks》,《Return of the devil in the details: Delving deep into convolutional nets》和《Very deep convolutional networks for large-scale image recognition》中的细节。

用于预训练模型的数据集。 一些大规模的识别数据集被用于CNN网络的预训练。在其中,ImageNet数据集常被研究员拿来使用。它包含1000个语义类的120万个图像,并且通常被认为是具有普适性的。用于预训练模型的另一个数据集是PASES-205,它的数据规模是ImageNet的两倍但图像种类却要比ImageNet少五倍。它是一个以场景为主的数据集,描绘了各种室内场景和室外场景。在《Learning deep features for scene recognition using places database》中,混合了ImageNet和PASES-205的数据集也同样会被拿来用于模型的预训练。HybridNet在《Going deeper with convolutions》,《Deep residual learning for image recognition》,《Factors of transferability for a generic convnet representation》和《A practical guide to cnns and fisher vectors for image instance retrieval》中被用于实例检索任务的评估。

迁移问题。 最近的一些工作综合评估了各种CNN网络在实例检索任务中的表现,模型迁移是大家都比较关心的一个问题。在《Factors of transferability for a generic convnet representation》中将实例检索任务认为是距离原始数据集最远的(计算机视觉)目标。首先,在模型迁移过程中,从不同层提取的特征表现出不同的检索性能。实验表明高层网络的泛化能力要低于较低层的网络。例如,在ImageNet上预训练的网络AlexNet表明,FC6、FC7和FC8在检索精度上呈递减顺序。《Particular object retrieval with integral max-pooling of cnn activations》和《Good practice in cnn feature transfer》也指出,当使用适当的编码技术时,AlexNet和VGGNet的pool5层特征甚至优于FC6层特征。其次,当原始的训练集不同时,模型的准确率也会受到影响。例如,Azizpour等人指出HybridNet在Holidays数据集上展现出的性能要劣于PCA。他们同样发现在ImageNet上预训练的AlexNet模型在包含常见物体而非建筑场景图像的Ukbench数据集上的表现要好于PlacesNet和HybridNet(译者注:AlexNet,PlacesNet和HybridNet预训练模型使用的训练集不同)。因此,当使用预训练的CNN模型时,源和目标的相似度在实例检索中起着至关重要的作用。

4.1.2 特征提取

FC描述符。 最直接的想法就是网络的全连接层(FC layer)提取描述符,在AlexNet中就是FC6或FC7中的描述符。FC描述符是在与输入图像卷积的层之后生成的,具有全局表示性,因此可以被视为全局特征。它在欧几里德距离下产生较好的检索精度,并且可以使用指数归一化来提高检索精度。

中间局部特征。 许多最新的检索方法专注于研究中间层的描述符。在这种方法中,低层网络的卷积核用于检测局部视觉模式。作为局部检测器,这些滤波器具有较小的感受野并密集地应用于整张图像。与全局FC特征相比,局部检测器对于诸如截断和遮挡的图像变换更鲁棒,其方式类似于局部不变量检测器。

局部描述符与这些中间局部检测器紧密耦合,换而言之,它们是输入图像对这些卷积运算的响应。另一方面,在卷积运算后等到的激活图层可以看做是特征的集成,在这篇综述中将其称为“列特征”。例如,在AlexNet中第一层有 image 个检测器(卷积滤波器)。这些滤波器产生了 image 张大小为 image 的热力图(在最大池化后)。热力图中的每个像素点具有大小为 image 的感受野,同时记录了图像对滤波器的响应。因此列特征的大小是 image

,它可以看作是对原始图像中某个图像块的描述。该描述符的每个维度表示相应检测器的激活程度,并且在某种程度上类似于SIFT描述符。列特征最早出现在《Visual instance retrieval with deep convolutional networks》中,Razavian等人首先在分好块的特征图上进行最大池化,然后将它们连接在所有过滤器上,最终生成列特征。在《Hypercolumns for object segmentation and fine-grained localization》中,来自多层的列特征被连接形成“超列”(hypercolumn)特征。

4.1.3 特征编码与池化

当提取列特征时,图像由一组描述符表示。为了将这些描述符聚合为全局表示,目前采用了两种策略:编码和直接池合并(如图2所示)。
编码。 一组列特征类似于一组SIFT特征,因此可以直接使用标准编码方案。常用的方法就是VLAD和FV算法,两个算法的简要介绍可以参加本文3.3.2节。一个里程碑式的工作发布于《Exploiting local features from deep networks for image retrieval》,文中后首次将列特征用VLAD算法编码。这个想法后来扩展为CNN的微调。BoW编码同样也可以使用,具体工作可以参见《Hybrid multi-layer deep cnn/aggregator feature for image classification》。每个层内的列特征被聚集成一个BoW向量,然后跨层连接。《Bags of local convolutional features for scalable instance search》是固定长度表示的一个例外,这篇文章将列特征用大小为25K的码本量化,还采用了倒排索引结构来提升效率。

池化。 CNN特征与SIFT的主要区别在于前者在每个维度上都有明确的含义,也就是对输入图像的特定区域的滤波器响应。因此,除了上面提到的编码方案之外,直接池化技术也可以产生具有区分度的特征。

这方面的一项里程碑工作包括Tolias等人提出的最大卷积激活(MAC)。在没有扭曲或裁剪图像的情况下,MAC用单个前向传递来计算全局描述符。特别地,MAC计算每个中间特征映射的最大值,并将所有这些值串联在一个卷积层内。在其多区域版本中,使用积分图算法和最似最大算子进行快速计算。随后局部的MAC描述符随着一系列归一化和PCA白化操作被一起合并。我们在本次调研中也注意到了其他一些工作同样也采用了相似的思想,在中间特征映射上采用最大或平均池化,其中Razavian等人的《Visual instance retrieval with deep convolutional networks》是打开先河的工作。同时大家也发现最后一层卷积层(如VGGNet的pool5)在池化后达到的准确率要高于FC描述符以及其他卷积层。

除了直接特征池化,在池化之前给每个层内的特征图分配一些特定的权重也是有益的。在《Aggregating local deep features for image retrieval》中,Babenko等人提出“目标对象往往出现在图像中心”这样一个先验知识,并在总池化前对特征图施加一个2-D高斯掩膜。Xie等人在《Interactive: Inter-layer activeness propagation》中改进了MAC表示法,他们将高层语义和空间上下文传播到底层神经元,以提高这些底层激活神经元的描述能力。Kalantidis等人使用了一个更常规的加权策略,他们同时执行特征映射和信道加权以突出高激活的空间响应,同时减少异常突发情况的影响。

4.2 使用微调CNN模型的图像检索系统

虽然预先训练的CNN模型已经取得了令人惊叹的检索性能,但在指定训练集上对CNN模型进行微调也是一个热门话题。当采用微调的CNN模型时,图像级的描述符通常以端到端的方式生成,那么网络将产生最终的视觉表示,而不需要额外的显式编码或合并步骤。

image

表3:用于微调网络方法的实例检索级的数据集统计

4.2.1 用于微调网络的数据集

微调网络时使用的数据集对学习高区分度的CNN特征具有至关重要的作用。ImageNet仅提供了图像的类别标签,因此预训练的CNN模型可以对图像的类别进行分类,但却难以区分同一类的图像。因此要面向任务数据集进行CNN模型微调。

近年来用于微调网络方法数据集统计在表3中。数据集主要集中于建筑物和普通物体中。微调网络方向一个里程碑式的工作是《Neural codes for image retrieva》。这篇文章通过一个半自动化的方法收集地标数据集:在Yandex搜索引擎中自动地爬取流行的地标,然后手动估计排名靠前的相关图像的比例。该数据集包含672类不同的地标建筑,微调网络在相关的地标数据集,如Oxford5k和假日数据集上表现优异,但是在Ukbench数据集(包含有普通物体)上性能降低了。Babenko等人也在含有300个多角度拍摄的日常物品图像的多视图RGB-D数据集上对CNN模型进行了精细调整,以提高在Ukbench数据集上的性能。地标数据集后来被Gordo等人使用,他们使用基于SIFT匹配的自动清洗方法后再微调网络。在《Cnn image retrieval learns from bow: Unsupervised fine-tuning with hard examples》中,Radenovi等人利用检索和运动结构的方法来构建三维地标模型,以便将描述相同建筑的图像进行分组。使用这个标记的数据集,线性判别投影方法(在表5中表示为

image

)优于先前的白化方法。另一个名为** Tokyo Time Machine**的数据集使用谷歌街景时间机器工具来收集图像,谷歌提供的这个工具可以提供同一地点不同时间的图像。上述的大部分数据集主要关注了地标图像,而Bell等人则建立了一个由家具组成的产品数据集,通过开发众包流程来绘制现场的目标和相应产品之间的连接。对所得到的查询集进行微调也是可行的,但是这种方法可能不适合于新的查询类型。

4.2.2 微调的网络

用于微调的CNN结构主要分为两类:基于分类的网络和基于验证的网络。基于分类的网络被训练以将建筑分类为预定义的类别。由于训练集和查询图像之间通常不存在类重叠,因此在AlexNet中如FC6或FC7的学习到的嵌入特征用于基于欧氏距离的检索。该训练/测试策略采用在方框中,其中最后的FC层被修改为具有对应于地标数据集中类的数目的672个节点。在《Neural codes for image retrieval》中采用训练/测试策略,其网络最后的FC层被修改为672个节点,对应于地标数据集中类别数目。

验证网络可以使用孪生网络(siamese network)结合成对损失函数(pairwise loss)或三元损失函数(triplet loss),这种方法已经被更广泛地用于微调网络任务中。在《Learning visual similarity for product design with convolutional neural networks》中采用了基于AlexNet的孪生网络和对比损失函数。在《Cnn image retrieval learns from bow: Unsupervised fine-tuning with hard examples》中Radenovi´c等人提出用MAC成代替全连接层。更进一步地,可以通过建立的3维建筑模型挖掘训练对。基于共同观测的3D点云(匹配的SIFT特征)的数目来选择正例图像对,而CNN描述符中距离较小的那些图像对被认为是负例样本。这些图像输入到孪生网络中,并且用 image

正则后的MAC层输出计算对比损失函数。与《Cnn image retrieval learns from bow: Unsupervised fine-tuning with hard examples》同时进行的一项工作是《Deep image retrieval: Learning global representations for image search》,Gordo等人在Landmark数据库上对三元损失网络和区域提取网络进行微调。《Deep image retrieval: Learning global representations for image search》这项工作的的优越性在于物体其定位能力,它很好地在特征学习和提取步骤中排除了图像背景。在这两项工作中,微调模型在landmark,OxFoD5K、PARIS6K和Holidays数据集上表现出了最先进的精度,以及在UKBayes数据集上表现出良好的泛化能力(将表5)。在《Netvlad: Cnn architecture for weakly supervised place recognition》中,在最后一个卷积层中插入一个类似VLAD编码层,通过反向传播进行训练。与此同时,设计了一个新的三元损失函数来利用弱监督的Google Street View Time Machine数据。

4.3 基于CNN模型的混合式方法

混合式方法中使用多网络传递方式。许多图像块从输入图像中获得并被输入网络中进行特征提取,随后进行编码/池化。由于“检测器+描述符”的方式和基于SIFT的方法很相似,因此我们称其为“混合式”方法。这种方法的效率通常比单通传递要低。

4.3.1 特征提取

在混合方法中,特征提取过程包括图像块检测和描述符生成。对第一步而言,主要有三种区域检测器。第一种检测器是网格化图像块。例如,在《Multi-scale orderless pooling of deep convolutional activation features》中使用了两个尺寸滑动窗口的策略来生成图像块。在《Cnn features off-the-shelf: an astounding baseline for recognition》中首先对数据集进行裁剪和旋转,然后将其划分为不同尺度的图像块。第二类是具有不变性的关键点/区域检测器。例如高斯差分特征点在《Learning to compare image patches via convolutional neural networks》中使用。MSER区域检测器在《Descriptor matching with convolutional neural networks: a comparison to sift》中被使用。第三种是区域建议方法,它也同样提供了潜在对象可能的位置信息。Mopuri等人使用选择性搜索策略来提取图像块,而边缘区域方法在《Fisher encoded convolutional bag-of-windows for efficient image retrieval and social image tagging》中使用。在《Faster r-cnn features for instance search》中使用区域建议网络(RPN)来对目标进行定位。

《Descriptor matching with convolutional neural networks: a comparison to sift》证实了CNN一类的区域描述是有效的,并且在出模糊图像之外的图像匹配任务繁重要优于SIFT描述符。对于给定的图像块,混合CNN方法通常使用全连接层或池化的方法来整合CNN特征,相关文献对此均有研究。这些研究从多尺度的图像区域中提取4096维FC特征或目标建议区域。另一方面,Razavian等人还在最大池化后采用中间描述符来作为区域描述符。

上述方法采用预训练模型进行图像块特征提取。以手工检测器为基础,图像块描述符也可以通过有监督或无监督方式进行CNN训练学习,这相对于之前关于SIFT描述符学习的工作有所改进。Yi等人进一步提出了一种在单个流程中集成了区域检测器、方向估计和特征描述符结果的端到端学习方法。

4.3.2 特征编码与索引

混合方法的编码/索引过程类似于基于SIFT的检索,如同在小码本下的VLAD / FV编码或大码本下的倒排索引。

VLAD/FV编码过程紧随SIFT特征提取后,在上文已经详细描述过这样的流程,不再赘述。另一方面,有一些工作研究探索了图像块的CNN特征的倒排索引。同样,在SIFT方法流程中诸如HE之类的编码方法也被使用。除了上述提到的编码策略,我们注意到《Cnn features off-the-shelf: an astounding baseline for recognition》,《Visual instance retrieval with deep convolutional networks》,《Image classification and retrieval are one》这些工作提取每个图像的多个区域描述符进行多对多匹配,这种方法称为称为“空间搜索”。该方法提高了检索系统对平移和尺度变化的鲁棒性,但可能会遇到效率问题。另一种使用CNN最高层特征编码的策略是在基于SIFT编码(如FV)的最后面建立一个CNN结构(主要由全连接层组成)。通过在自然图像上训练一个分类模型,中间的全连接层可以被用来进行检索任务。

4.4 讨论

4.4.1 基于SIFT和CNN的方法间的关系

在本篇综述中,我们将现有的文献分为六个精细的类,表1和表5总结了六个类别的差异和代表性作品。我们的观察结果如下。

第一,混合方法可被视为从SIFT-到基于CNN的方法的过渡方法,除了将CNN特征提取为局部描述符之外,它在所有方面都类似于基于SIFT的方法。由于在图像块特征提取期间需要多次访问网络,因此特征提取步骤的效率可能会受到影响。

第二,单向CNN方法倾向于将SIFT和混合方法中的各个步骤结合起来。在表5中,“预训练单向网络”一类方法整合了特征检测和描述步骤;在“微调单向网络”中,图像级描述符通常是在端到端模式下提取的,因此不需要单独的编码过程。在《Deep image retrieval: Learning global representations for image search》中,集成了类似“PCA”层以减少区分维数,进一步完善了端到端的特征学习。

第三,出于效率上的考虑,特征编码的固定长度表示方法越来越流行。它可以通过聚集局部描述符(SIFT或CNN)、直接汇或端到端特征计算的方法来获得。通常,诸如PCA的降维方法可以在固定长度的特征表达中使用,ANN搜索方法(如PQ或哈希)可用于快速检索。

4.2.2 哈希与实例检索

哈希方法是最似最近邻问题的主流解决方案。它可以被分类类为局部敏感哈希(LSH)算法和哈希学习方法。LSH是数据无关的且常通过学习哈希来获得更优异的性能。对于学习哈希方法,最近的一项调研《A survey on learning to hash》将其归类为量化和成对相似性保留这两类。我们在3.3.2节已经详细讨论过量化方法热,不再赘述。成对相似性保留方法包括一些常用的手工设计哈希方法,如谱哈希,LDA哈希等。

近年来随着深度网络的发展,哈希方法也从手工设计的方式转变到受监督的训练方式。这些方法将原始图像作为输入,并在二值化之前生成学习的特征。然而,这些方法大多集中于图像分类式的检索任务,与本次调研所中讨论的实例图像检索不同。实例检索任务中,当可以收集到足够的训练数据时(例如建筑和行人和数据)时,深度散列方法可能是至关重要的。

5 实验比较

5.1 图像检索数据集

在本次调研中使用了五个流行的实例检索数据集,这些数据集的统计数据如表4所示。

image

表4:流行的实例检索数据集统计

Holidays数据集由Jégou等人从个人假日相册中收集,因此图像包含各种各样的场景。该数据库由500组1,491幅相似图像组成,每组图像有一条查询记录,共计500条。除了《Efficient representation of local geometry for large scale object retrieval》和《Learning a fine vocabulary》,大多数基于SIFT的方法手动地将图像旋转成直立方向。最近许多基于CNN的方法也使用了旋转版的Holidays数据集。在表5中这两个版本数据集上的结果用”/“间隔,旋转图像可以带来2%-3%的mAP值。

Ukbench数据集包括10,200种不同内容的图像,如物体、场景和CD封面。所有图像被分为2,550组,每个组有四个图像描述相同的物体/场景,在不同的角度,照明,形变,等情况下的表现。该数据集中的每个图像依次作为查询记录,因此有10,200条查询记录。

Oxford5k数据集用牛津11个地标名从Flickr网站爬取共计5062幅图像组建数据集。该数据集通过手绘边界框为每个地标的定义五个查询记录,从而总共存在55个感兴趣区域(ROI)查询记录。每个数据库图像被分配了好的还可以的垃圾的,或坏的四个标签之一。前两个标签表示与查询的感兴趣区域是匹配的,而“坏”表示不匹配。在糟糕的图像中,只有不到25%的对象是可见的,或者它们遭受严重的遮挡或变形,因此这些图像对检索精度影响不大。

Flickr100k数据集包括99,782张来Flickr网站145个最流行标签的高清图像。在文献中,通常将该数据集添加到Oxford5k中,以测试检索算法的可扩展性。

Paros6k数据集从11指定的巴黎建筑查询中爬出6,412中图像。每个地标有五个查询记录,因此这个数据集同样有55个带有边界框的查询记录。数据库图像使用和Oxford5k一样的四种类型的标签作为Oxford5k数据集标签。针对Oxford5k和Paris6k数据集有两个评估准则。对于基于SIFT的方法,被裁剪的区域通常用于查询。对于基于CNN的方法,有些工作采用的是全尺寸图像,有些工作采用的是将裁剪的ROI传入CNN或者用CNN提取全图特征后再裁剪得到ROI。使用完整的图像的方法可以提高mAP指标。详细的指标可以参见表5。

image

表5:一些有代表性的图像检索方法在六个数据集上的表现

5.2 评价指标

精准度-召回率。召回指的是返回的正确匹配数占数据库中总数或正确匹配数的比率,而精准度是指返回结果中真实匹配的那部分图像。给定一个集合含有

image 张返回的图像,假设其中有 image 张正确匹配的图像,而整个数据集中有 image 张正确匹配的图像,那么召回率 image 和精准度 image 分别计算为 image 和 image 。在图像检索中,给定一张待查询图像和返回列表,可以根据 image 这些点绘制精准度-召回率曲线,其中是 image

数据库中的图像数目。

平均准确率和平均精度。 为了更加清晰地记录图像检索系统的性能,我们使用平均准确率(average precision)对其进行衡量,它相当于精准度-召回率曲线下的面积。通常,较大的AP值意味着更高的精准度-召回率曲线,亦即更好的检索性能。由于图像检索数据集通常具有多个查询图像,所以对它们各自的AP值进行平均,以产生最终的性能评价,即平均精度(mean average precision, mAP)。传统地,我们使用mAP来评估检索系统在Oxford5k、Paris6k和Holidays数据集上的准确度。

N-S得分。 N-S得分专用于Ukbench数据集,它是以David Nistér 和Henrik Stewénius的名字来命名的。N-S得分其实等价于精准度或者召回率,因为在Ukbench数据集中的每个查询在数据库中都有四个正确的匹配项。N-S得分用总排名列表中前四中的真实匹配的平均数量来计算。

image

图6:多年来在Holidays(a), Ukbench(b), Oxford5k(c)数据集上的最优表现

5.3 比较与分析

5.3.1 多年来性能的改进

我们在图6中展示了过去十年图像检索精度的改善以及在表5中展示了一些有代表性的方法。实验结果通过在独立的数据集上建立的编码本来计算。我们可以清楚地看到,实例检索的领域一直在不断改进。10多年前提出的基线方法(HKM)在Holidays, Ukbench, Oxford5k, Oxford5k+Flickr100k以及Paris6k数据集上的准确率分别仅为59.7%, 2.85, 44.3%, 26.6%以及46.5%。从基线方法开始,通过引入高区分度编码本、空间约束和互补描述符,大规模编码本方法开始稳定地提升。对于中型编码本方法来说,随着Hamming嵌入及其改进的方法,在2008年至2010年间它见证了最显著的精度提升。从那时起,主要的改进来自特征融合的强度,特别是使用在Holiday和Ukbench数据集上提取的的颜色和CNN特征。

image

图7:特征维度对图像检索系统准确率的影响

image

表6:不同类别方法间的效率和准确度的比较

另一方面,基于CNN的检索模型在图像例检索中迅速显示出其优势。在2012年AlexNet刚提出时,当时的FC特征的性能与SIFT模型相比仍然远不能令人满意。例如,在ImageNet上预训练的AlexNet,其FC描述符在Holidays,Ukbench和Oxford5k数据集上的AP,N-S得分和mAP上的得分分别为 64.2%,3.42,43.3%。这些指标是要比《Contextual weighting for vocabulary tree based image retrieval》在Holidays和Ukbench数据集上的成绩低13.85%和0.14,比《Object retrieval and localization with spatially-constrained similarity measure and k-nn re-ranking》在Oxford5k上的成绩低31.9%。然而,然而,CNN网络结构和微调策略的进步,基于CNN的方法的性能迅速提高,在Holidays和Ukbench数据集上极具竞争力,并且在Oxford5k数据集上的指标略低,但它具的内存消耗更小。

5.3.2 准确率比较

不同数据集上不同类别的检索精度可以在图6,表5和表6中查看。从这些结果中,我们有三个发现。

第一,在基于SIFT的方法中,中等规模编码本对的表现要优于小规模编码本。一方面,由于大的沃罗诺伊方格,中等规模编码本的视觉词汇可以使相关匹配的召回率变高。HE方法的进一步集成在很大程度上提高了模型区分度,实现了匹配图像召回率和精度之间较好的平衡。另一方面,虽然小规模编码本中的视觉词具有最高的匹配召回率,但由于聚合过程和维度小,它们的图像区分能力没有显著提高。因此它的表现可以认为是不佳的。

第二,在基于CNN的方法中,微调的模型在特定任务(如地标/场景检索)中的表现要有很大优势,这些任务的数据一般和训练集数据分布相似。虽然这一观察是在预期之内,有趣的是我们发现在《Deep image retrieval: Learning global representations for image search》中提出的微调模型在通用检索(例如Ukbench数据集)上的表现极具竞争力,而它与训练集的数据分布并不同。事实上,Babenko等人在《Neural codes for image retrieval》中表明,在Landmarks数据集上进行微调的CNN特征会降低在Ukbench上的的准确率。《Deep image retrieval: Learning global representations for image search》这项工作的泛化能力可以归因于对区域提取网络的有效训练。相比之下,使用预先训练模型可以在Ukbench上表现出较高的精度,但在landmarks数据集上的表现中等。相似地,混合方法在所有的任务中的表现都相当,但它仍然可能遇到效率问题时。

第三,比较这六中方法,“CNN微调模型”和“SIFT中等编码本”方法具有最好的总体准确度,而“SIFT小编码本”类别具有相对较低的准确度。

image

图8:在 Oxford5k数据集上的存储代价和检索准确率

5.3.3 效率比较

特征计算时间。 在基于SIFT的方法中,主要的步骤就是局部特征的提取。通常情况下,根据图像的复杂度(纹理),CPU提取640×480大小图像的基于Hessian仿射区域的SIFT描述符需要1-2s。对于基于CNN的方法,在TitanX卡上通过VGG16网络对一个224×224和1024×768的图像进行单向传递分别需要0.082s和0.34 7s。据报道,四幅图像(最大边724像素)可以在1s内处理。预训练列特征的编码(VLAD或FV)的时间非常快。对于CNN混合方法,提取几十个区域的CNN特征可能需要几秒钟。总体而言,CNN预训练模型和微调模型在用GPU进行特征计算时的效率高。同样应该注意的是,当使用GPU进行SIFT提取时,也可以实现高效率。

检索时间。 最似最近邻搜索算法用于“SIFT大编码本”,“SIFT小编码本”,“CNN预训练模型”和“CNN微调模型”时都是相当高效的,这是因为倒排列表对于适当训练的大码本来说是简短的,并且因为后者三有一个紧凑的表示,用像PQ这样的ANN搜索方法来加速是可行的。中等规模编码本的效率较低,因为它的倒排索引与大码本相比包含更多的条目,并且汉明嵌入方法的过滤效果只能在一定程度上修正这个问题。如4.3节所述,混合方法的检索复杂度会因为多对多匹配策略的影响而变得低效率。

训练时间。 用AKM或HKM训练大型或中型编码本通常需要几个小时,使用小型编码本可以缩短训练时间。对于微调模型,Gordo等人在一块K40 GPU上花费了5天训练三元损失模型。可能在孪生网络或者分类模型上这会花费更少的时间,但是要比生成SIFT编码本的时间长得多。因此,在训练方面,使用直接池或小码本的效率更高。

存储代价。 表5和图8表明具有大码本的SIFT方法和紧凑方法在存储成本上都是高效的。还可以使用PQ或其他有效的量化/散列方法将紧凑表示压缩成紧凑编码,从而可以进一步减少它们的存储消耗。相比之下,使用中等码本的方法是最消耗内存的,因为二进制签名应该存储在倒排索引中。混合方法总要有混合存储成本,因为多对多策略需要存储每个图像的多个区域描述符,而其他一些方法则采用高效的编码方法。

空间验证与查询拓展。 空间验证通常和QE算法一起使用,可以使得检索结果排列表更加精准。RANSAC验证在《Object retrieval with large vocabularies and fast spatial matching》中提出,它的复杂度为

image ,其中 image 是匹配的特征数目,可以看出算法的复杂度较高。ADV方法的复杂度相对较小,为 image ,因为它能够避免不相关的Hough选票。《Hough pyramid matching: Speeded-up geometry re-ranking for large scale image retrieval》和《A vote-and-verify strategy for fast spatial verification in image retrieval》提出的方法最有效,复杂度仅为 image

,同时后一项工作进一步地输出QE的变换和内值。

从查询扩展的角度来看,由于提出了新的查询,搜索效率会受到影响。例如,由于新查询,AQE的搜索时间几乎增加了一倍。对于递归AQE和带尺度递归QE方法,搜索时间更加长了,因为要执行好几个新的搜索。其他QE变体所提出的改进只比执行另一搜索增加了边际成本,因此它们的复杂性类似于QE方法。

5.3.4 重要的参数

我们总结编码本大小对使用SIFT特征的大/中型码本的影响,以及维数对包括SIFT小编码本和基于CNN方法的紧凑表示的影响。

编码本规模。 图8展示了模型在Oxford5k上的mAP结果,对大规模编码本和中规模编码本的方法进行对比。有两点值得注意。第一,mAP值通常随着编码本增大而增加,但当码本足够大时aMP值可能达到饱和。这是因为更大的码本提高了匹配精度,但是如果它太大,匹配的召回率变低,导致性能饱和甚至损害性能。第二,当编码本规模变化时,使用中等规模编码本的方法表现更稳定。这可以归因于HE方法,它对更小的码本贡献更多,弥补了较低的基线方法的性能。

维数。 维数对紧凑向量的影响在图7中给出。我们的发现检索精度通常在较大的尺寸下较为稳定,而当维数低于256或128时精度迅速下降。我们第二个发现是关于区域提取的。这些方法在各种特征长度下都表现出非常出色的性能,这可能是由于它们在目标定位方面的优越能力。

5.3.5 讨论

我们简要地讨论何时使用CNN或SIFT以及其他相关方法。上文对两者特征进行了详细的比较。

一方面,表示向量长度固定的CNN方法几乎在所有的基准数据集上的性能都占有优势。具体而言,在两种情况下基于CNN的方法可以考虑优先使用。第一种是对于特定对象的检索(例如建筑物、行人),当提供的训练数据足够时,可以充分利用CNN网络嵌入学习的能力。第二种,对于常见的对象检索或类检索,预训练的CNN模型是有竞争力的。

另一方面,尽管基于CNN方法的通常是具有优势的,我们仍认为SIFT特征在某些情况下仍然具有优势。例如,当查询或一些目标图像是灰度图像时,CNN可能不如SIFT有效,因为SIFT是在灰度图像上计算而不诉诸于颜色信息。当物体颜色变化非常剧烈时也同样如此。另外,在小对象检索中或当查询对象被严重遮挡时,使用诸如SIFT之类的局部特征是更好的选择。在书籍/CD封面检索等应用中,由于丰富的纹理,我们也可以期待SIFT的良好性能。

6 未来的研究方向

6.1 面向通用任务的实例检索

图像检索一个非常重要的方向就是使用搜索引擎实现通用检索。为了实现这个目标需要解决两个重要问题。

第一,需要引入大规模图像数据集。虽然如表3所示展示了多个图像数据集,但这些数据集通常包含特定类型的实例,例如地标或室内物品。虽然Gordo等人在《Deep image retrieval: Learning global representations for image search》中使用的RPN结构除了在构建数据集之外,还在在Ukbench数据集上表现得富有竞争力,但如果在更通用的数据集上训练CNN能否带来进一步的改进,则仍然是未知数。因此,社区迫切需要大规模的图像数据集或一种可以以监督或非监督的方式生成这样一个数据集的有效方法。

第二,设计新的CNN网络和学习策略对于充分利用训练数据具有重要意义。先前有工作采用标准分类模型,成对损失或三重损失模型对CNN网络进行微调。Faster R-CNN在实例检索中的引入对更精确的对象定位来说是一个良好的开始。此外,在另一个检索任务中采用微调模型时,迁移学习方法也是非常重要。

6.2 面向专用任务的实例检索

另一方面,在专用实例检索中的研究也越来越多。例如地点检索,行人检索,车辆检索,标志检索等。在这些任务中的图像具有特定的先验知识。例如在行人检索任务中,循环神经网络(RNN)可以连接身体部分的描述符,在车辆检索任务中,在特征学习期间可以推断视图信息,同时牌照图像也可以提供关键信息。

同时,训练数据的收集过程可以进一步研究。例如,可以通过谷歌街景收集不同地点的训练图像。车辆图像可以通过监视视频或互联网图像来获取。在这些特定的数据集上探索新的学习策略以及研究迁移学习的效果将是有趣的。最后,紧凑向量编码或短编码也将在现实的检索任务设置中变得重要。

7 结语

本篇综述回顾了基于SIFT和CNN特征的实例检索方法。根据编码本的规模,我们将基于SIFT的方法分为三类:使用大,中,小规模的编码本。基于CNN的方法也被分为了三类:使用预训练模型,微调模型和混合模型的方法。在每个类别下都对先前的方法进行了全面的调研。从各种方法的演变可以看出,混合方法处于SIFT和CNN方法的过渡位置,紧凑编码方法越来越流行,并且实例检索正朝着端到端的特征学习和提取的方向发展。

通过在几个基准数据集上收集的实验结果,对六种方法进行了比较。我们发现CNN微调模型策略在不同的检索任务上都得到了较高准确率,并且在效率上也具有优势。未来的研究可能集中于学习更通用的特征表示或更特定场景的检索任务。

****-------------原文结束-------------****

写在最后

毋庸置疑,这是一篇极高水准的综述,本人斗胆将其翻译成文愿对大家有所帮助。

图像检索系统作为计算机视觉领域的一项关键技术,以其诱人的前景不断激励着一代代的科研工作者攻克难点,追求卓越。从文中我们可以看到,仅仅十多年的时间,图像检索方面的研究已经取得了不俗的成绩,尤其是近年来兴起的深度学习技术又为该领域的发展添加了助燃剂。

然而,我们也应该意识到挑战仍然是存在且巨大的。更加鲁棒的图像特征描述符,更加快速的检索算法都是我们需要继续研究的课题。同志们,任重道远啊!


欢迎与我交流

github:

https://github.com/keloli

blog:

https://www.jianshu.com/u/d055ee434e59


参考资料


微信:TonyJeemy520 加个人微信拉你进机器学习、深度学习交流群,请备注 : 来自简书
QQ交流群:651616387 请备注 : 来自简书
微信公众号:机器学习算法工程师 ----二维码见下图


扫码关注微信号:机器学习算法工程师,更多干货分享, 或加个人微信,拉你进机器学习、深度学习交流群

image
上一篇下一篇

猜你喜欢

热点阅读