Picking Deep Filter Responses for Fine-Grained Image Recognition

1. Introduction

作为一个新兴的研究课题,细粒度识别旨在区分属于同一基本类别的数百个子类别。它位于基本类别分类(例如,在Pascal VOC [8]中分类自行车,船,汽车等等)和个体实例的识别(例如人脸识别)之间。没有经验的人可以立即识别自行车或马匹等基本类别,因为它们在视觉上非常不相似,而在没有具体专家指导的情况下,他/她很难从黑鸟中区分乌鸦。事实上,细粒度的子类通常共享相同的部分(例如,所有的鸟应该具有翅膀,腿等),并且经常被这些部分的纹理和颜色特性的微妙差异所区分(例如辨别鸟类时只有乳房颜色计数)。因此,定位和描述对象和相应的部分对于细粒度识别至关重要。

为了实现准确的对象和局部定位,大多数现有工作在训练和测试阶段都明确要求对象级别甚至局部级别的注释[3],[28],[33]。然而,这种要求在实际应用中是苛刻的。有些工作考虑到更合理的设置,即仅在训练阶段需要对象/部分等级注释,但不在测试时间[15],[32]。然而,即使使用这种设置,在训练阶段仍然需要昂贵的注释,并且对于大规模识别问题特别困难。因此,一个有希望的研究方向是使我们免于繁琐和主观的手动注释,我们称之为自动局部发现。然而,自动发现局部是一个经典的先有鸡先有蛋问题,即没有准确的外观模型,不能发现局部的示例,并且没有局部的示例就无法学习精确的外观模型。一些开创性的工作开始考虑这个问题[21],[27]。然而,这些方法需要从头开始训练网络[27],或者遭受复杂的优化[21],性能有限。


作为我们的第一个贡献,我们提出了一种用于细粒度识别的自动局部检测策略(第3节),在训练和测试阶段都不需要任何对象/部分级别的注释。我们的检测方法由两个主要贡献组成。首先,我们提出了一种基于深度滤波器选择性的检测器学习的新型初始化方法。如图1所示,其显示了CUB-200-2011中某些滤波器的一些顶级响应块。 可以发现一些过滤器用作部件检测器并且响应特定的部件(例如,鸟的头部)。然而,这些检测器很弱,其中大多数与我们的任务无关。我们的初始化方法的主要观点是精心挑选具有显着和一致的响应的深度滤波器。其次,我们提出通过迭代的每个类别的正样本挖掘和正则化的部件模型再训练来学习一组检测器。我们按类别挖掘新的正样本,并考虑到正样本的多样性和可靠性,为每个正样本引入正规化项学习到的检测器倾向于发现有助于基于部件识别的判别性和一致的块。


特征表示是细粒度识别的另一个关键问题。近来,卷积神经网络(CNN)被广泛应用于特征提取。然而,细粒度表示存在两个问题。第一是传统的CNN表示需要固定大小的矩形作为输入,这不可避免地包括背景信息。然而,背景不太可能在细粒度识别中发挥重要作用,因为所有子类别都具有相似的背景(例如,所有的鸟类通常栖息在树上或在天空中飞行)。第二个是检测和分类之间的差距。由于大的姿态变化和部分遮挡,检测可能是不可靠的,并且失去了用于识别的关键细节。
为了解决上述问题,作为我们的第二个贡献,我们提出了一种适合细粒度表示的新特征(第4节)。我们认为CNN的深度滤波器响应是局部描述符,并通过Spatially Weighted Fisher Vector(SWFV-CNN)进行编码。关键的一点是,并不是所有的滤波器响应对于识别同样重要。我们的目标是突出显示对于识别至关重要的响应,并折扣那些不那么有帮助的答案。为此,我们提出一种选择策略,它有选择地基于部分显着性图选择描述符,这表示像素属于前景部分的可能性。实验结果表明,SWFV-CNN性能优于传统CNN,与传统CNN互补,进一步提升性能。


Framework overview. 

我们提出的框架的概述如图2所示。我们的方法包括两个选择步骤。第一步旨在挑选深度过滤器,其对特定的模式有着显着和一致地响应。基于这些滤波器,我们精心选择语义相似的正样本,并训练一组判别性检测器。我们使用迭代过程,在选择正样本和训练分类器之间交替,同时在每个步骤应用交叉验证,以防止分类器过度拟合初始正样本。
训练得到的检测器用于发现用于识别的部件。第二步是通过Fisher Vector的空间加权组合来选择CNN滤波器,我们称之为SWFV-CNN。我们用零件显着性映射计算空间权重,指示像素属于前景部分的可能性。
部分显着图用于对每个Fisher Vector进行加权,并将其汇总成最终的图像表示,
它考虑了Fisher Vector本身的重要性。
本文的其余部分安排如下。
秒。 2描述了关于细粒度分类的相关工作。
我们提出的零件发现策略的细节详见第二节。 3。
 在第4,我们描述我们提出的空间重视FV-CNN。
实验结果和讨论见第二节。 5。
秒。 6结束语。

2. Related Works

细粒度识别是一个具有挑战性的问题,最近成为一个热门话题。
 以下,我们组织我们关于细粒度识别的讨论
有两项任务:部分定位和特征表征。
由于细粒度数据集通常会提供边界框和部分地标的额外注释[18],[19],[26],大多数作品或多或少依赖于这些注释。
早期的作品假设注释在训练和测试时都可用。其中最强的监督设置是使用对象和部分等级注释[1],[17],[28]。
显然,这种设置是苛刻的,更合理的设置只是假定物体边界盒的可用性。
Chai等[3]引入了改进分割和部分的技术
同步分割和检测定位精度。
Gavves等人[10]提出了一种监督对准方法,其检索用于测试图像的最近邻训练图像,并将来自这些相邻训练图像的部分位置退回到测试图像。
以后的作品只需要在培训期间进行注释,并且在测试时不需要注释知识。
这些方法在训练过程中对象和部分的层次进行监督。
 张等人[32]推广了R-CNN [11]框架,以检测零件以及整个对象。
布兰森等人[2]在姿态归一化空间中训练强监督模型。此外,Krause等人[15]提出了一种在培训时间只需要对象级别注释的方法,并且在零件级别是完全无监督的。
最近,出现了一些新的作品,其目的在于更广泛的条件,例如没有预期任何关于细粒度物体的位置的信息,既不在训练期间也不在测试时间。
这种无监督的水平是进行细粒度识别的一大步
适合广泛部署。
 Xiao等[27]提出使用两个具有深卷积网络的注意力模型,一个用于选择某个对象的相关补丁,另一个用于定位歧视部分。
西蒙等人[21]提出将具有星座模型的部件定位,将CNN纳入可变形部件模型[9]。
我们的方法属于最后一个设置,在培训和测试阶段都没有任何对象/部分级别的注释。与以前的作品不同[21],[27],我们通过精心选择积极来学习一组歧视性检测器
样品和迭代更新零件模型。

2.2. Feature Representation

对于图像的描述,CNN功能在大量基准测试[11],[20],[31]等方面取得了突破。
与传统描述符不同,传统的描述符明确地编码本地信息并将其聚合成全局表示,CNN特征直接表示全局信息,可以减轻手动设计特征提取器的需求。虽然没有专门设计来模拟子类别的差异,
CNN特征捕获这些信息[7]。
大多数作品直接选择CNN的输出作为特征表示[2],[15],[27],[32]。
 然而,CNN功能仍然保留了大量的全球空间信息。
如[31]所示,可以重构来自第五个最大化池的激活以形成与原始图像非常相似的图像。
对翻译和轮换不变性的要求很弱
MAX-池。
尽管最大汇总有助于改善对小规模变形的不变性,但是对于较大规模的变形的不变性可能会受到保留的全局变量的破坏
空间信息。
为了解决这个问题,Gong等[12]提出通过无序的VLAD池来聚合完全连接的层的特征。
考虑到更深层次更具体的领域特异性,并且潜在地较少可转移
比较浅层,Cimpoi等[6]来自卷积层的池特征,并且对纹理识别实现了相当大的改进。
我们的方法将深CNN滤波器的响应作为局部描述符(与SIFT类似),并通过Fisher Vector对这些响应进行编码。
与以前在全球编码CNN描述符的作品不同[6],[12],我们
将每个响应反映回原始图像并分别编码每个部分。最重要的是,我们提出了一种选择策略,根据其识别的重要性有条件地选择响应,并通过空间对其进行编码
Fisher向量的加权组合。


你可能感兴趣的:(细粒度目标识别)