ECCV2018 | 细粒度分类:多注意力多类别约束 Multi-Attention Multi-Class Constraint for Fine-grained Image Recognition

细分类简介

细粒度分类就是对同一类中不同的子类物体间的分类。 如下图,是不同公开数据集下例子。不同种类的鸟、车、飞机。
ECCV2018 | 细粒度分类:多注意力多类别约束 Multi-Attention Multi-Class Constraint for Fine-grained Image Recognition_第1张图片
由于不同物体姿态,视角,光照,遮挡等影响,往往造成子类之间物体差异偏小,类内物体差异偏大。基于深度学习的物体分类可以大致分为强监督和弱监督两大类。强监督指图片标注中将物体某些显著特征(术语叫做discriminative判别性,可以区分类别的)部位信息给出,弱监督则没有此类信息。本文所述方法是弱监督细粒度分类。
现有的基于深度学习的弱监督方法,主要思路是定位出判别性部位,取得判别性特征做辅助来分类。这属于mid-level学习。加强mid-level学习能力是当前工作的重点。其实这很符合人类辨别细粒度物体的流程。先看全局信息知道大类,然后根据经验把注意力放在一些关键部位来做出判断,这些部位就是网络要找的discriminative parts.

方法

现有的基于注意力的方法,主要是定位出判别性区域而忽略了这些区域之间的联系。另外,很多方法都是multi-stage的,不够高效;或者需要很复杂的一些初始化,工作量大。
本文提出的弱监督方法可以高效精确地获取判别区域。如下图所示,本文方法框架有两部分组成:1)压缩-多扩展one-squeeze multi-excitation(OSME)模块,轻微增加计算量(也不算太轻),从多个注意力区域提取特征。2)多注意力多类别约束multi-attention multi-class constraint(MAMC),加强注意力区域之间的通信。本文方法比其他方法具有端到端单阶段的优势。
ECCV2018 | 细粒度分类:多注意力多类别约束 Multi-Attention Multi-Class Constraint for Fine-grained Image Recognition_第2张图片

OSME

也是一种弱监督下的部件定位的注意力方法。先前工作总结:1)部件检测。往往将部件检测和特征提取分开,计算开销增大。2)软注意力,来自响应可视化。
如上图,我们的框架以ResNet50作为baseline, SEnet通过压缩-扩展操作对输出特征图再校准。为了产生P个特定注意力的特征图,我们从SEnet延伸,把一次扩展操作换成多次扩展操作。
在压缩操作中,我们聚合特征图空间产生通道级的描述子,和通道数一致。全局平均池化是一种简单高效的通道统计特征描述方法。
在扩展操作中,对通道描述子施加多个独立门机制,产生多个注意力图。门机制中是FC+Relu+FC+Sigmoid,由于sigmoid特性,其输出对通道间的非互斥关系进行了编码。我们利用其输出对起初Resnet50的输出进行再次加权,得到特定注意力图。
为了对每个特定注意力图进行特征提取,将这些特定注意力图展平成向量之后输入进FC层。
简单而言,本文通过对baseline输出全剧平均池化之后进行多次门操作获得P个特征向量。并认为这些特征向量是对不同非互斥部件/特征的聚类(这里还不能称为判别性特征)。

MAMC

下面解决的问题可以描述为,如何让以上模块产生的注意力特征指向类别,产生判别性注意力特征。先前方法总结: 1)把以上注意力特征合并进行softmax loss(指交叉熵损失函数),softmax loss不能掌握两两注意力特征之间的关系,2)递归搜索机制,会把初代误差迭代方放大。还要使用强化学习以及一些复杂的初始化方法。我们的方法在训练中增强两两部件之间的关系。这种方法就是多注意力多类别机制。以下就是度量学习的框架了。
训练集组织:我们有图像-类别对,为了刻画图片之间的注意力和同一子类内的注意力之间的关系,我们重新组织输入Batch(参考度量学习)。参考文章 Improved Deep Metric Learning with Multi-class N-pair Loss Objective中的N-pair采样方法。具体而言就是,每个batch中有N对图片,每对两张图片来自同一个子类,取一个图片为锚点(anchor),另一个为此anchor的正样本,然后给出他们所属类别。那么经过OSME模块,假设有P个excitation,那么每个样本就各自产生P个注意力特征向量。
ECCV2018 | 细粒度分类:多注意力多类别约束 Multi-Attention Multi-Class Constraint for Fine-grained Image Recognition_第3张图片
那么,每个batch就有2N个样本, 经过OMSE产生2N*P个特征向量,我们想对这些向量进行聚类。举例来说。我们选一个第i类的样本经过OSME模块的第P个分支,则其与第i类第P个特征区域有关。按照关系远近,我们可以把剩余特征向量分成4组:

  • 同注意力门同类别:sasc,就是其正样本同一个注意力门的特征向量
  • 同注意力门异类别;sadc
  • 不同注意力门同类别;dasc
  • 不同注意力门异类别;dadc
    我们通过度量学习框架探寻4组间关系。

sasc(same attention same class):

这是与所选anchor最为相似的特征向量,其负样本就是sadc并dasc并dadc.
在这里插入图片描述

sadc:

取自与anchor同意注意力门的不同各类特征,对应于不同子类的相同部位。负样本是dadc.
在这里插入图片描述

dasc:

取自anchor不同注意力门的同类,对应样本同一子类的不同部位。负样本是dadc.
在这里插入图片描述
我们就得到了三种正样本集合和三种负样本集合。我们希望锚点在嵌入空间中与正样本距离比负样本距离小一个阈值。以下是度量学习损失函数,m是阈值。就anchor与正样本的距离要比距负样本距离小至少一个m.
在这里插入图片描述
以上三个约束作用过程如下图。
首先把sasc推向锚点,满足第一个约束;然后sadc、dasc与dadc相比应该与锚点更近,把这二者推近,第2,3两种约束漫漫满足。
ECCV2018 | 细粒度分类:多注意力多类别约束 Multi-Attention Multi-Class Constraint for Fine-grained Image Recognition_第4张图片
本文方法结合近期度量学习成果( Improved deep metric learning with multi-class n-pair loss objective),使用N-pair loss 做loss
在这里插入图片描述

总loss是softmax loss 和n-pair loss:
在这里插入图片描述
以下是本方法在细分类benchmark上跑分以及与其他方法对比:
ECCV2018 | 细粒度分类:多注意力多类别约束 Multi-Attention Multi-Class Constraint for Fine-grained Image Recognition_第5张图片
水平有限,欢迎大家斧正

HongYuSuiXinLang
Zhejiang University
Email: [email protected]

你可能感兴趣的:(深度学习,细粒度分类)