The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification

论文:https://arxiv.org/pdf/2002.04264.pdf
代码:https://github.com/PRIS-CV/Mutual-Channel-Loss

1 总体思路

目标细粒度分类,由于子类别间的差异很小且类内差异很大,难度较普通图像分类更大。图1所示为细粒度图像分类数据集CUB-200[1]中的两个物种,加州鸥和北极鸥,从竖直方向的图片对比可以看出,两个不同物种长相非常相似,而从对比水平方向可知,同一物种由于姿态,背景以及拍摄角度的不同,存在较大的类内差异。 因此,要想顺利的对两个极为相似的物种进行细粒度分类,最重要的是在图像中找到能够区分这两个物种的区分性的区域块(discriminative part),并能够对这些有区分性的区域块的特征进行较好的表示。
The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification

图1 (a) 加州鸥

The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification

图1 (b) 北极鸥

由于深度卷积网络能够学习到非常鲁棒的图像特征表示,对图像进行细粒度分类的方法,大多都是以深度卷积网络为基础的,这些方法大致可以分为以下四个方向:

  • 基于常规图像分类网络的微调方法;
  • 基于细粒度特征学习(fine-grained feature learning)的方法;
  • 基于目标块的检测(part detection)和对齐(alignment)的方法;
  • 基于视觉注意机制(visual attention)的方法

以上内容引用自:https://zhuanlan.zhihu.com/p/53611407

本文作者另辟蹊径,没有采用上述四种方法,而是从损失函数入手,保持网络结构不变,设计了一种称为MC-loss(multi-channel loss)的损失函数。

2 MC-loss

作者提出的整体识别结构如下图所示,结合了交叉熵损失和MC-loss
The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification

图2

总体损失为交叉熵损失和MC-loss的加权和:
The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification

上面公式中出现的F表示输入图像通过卷积网络后提取的特征。对于一副输入图像, F ∈ R N × H × W F \in R^{N \times H \times W} FRN×H×W,N表示channel数量,H和W表示特征图的高和宽。

在MC-loss中,作者定义 N = c × ξ N = c \times \xi N=c×ξ c c c表示数据集中的总类别数, ξ \xi ξ表示用于表示每一个类的channel数, ξ \xi ξ是一个超参数,但一般应大于2。

对于一个给定的目标类别 i i i,其特征可以表示为 F i ∈ R ξ × W H , i = 0 , 1 , ⋯   , c − 1 F_i \in R^{\xi \times WH},i = 0,1,\cdots,c-1 FiRξ×WH,i=0,1,,c1 F i F_i Fi可以表示为:
The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification
获取各类别的特征后,特征集 F = { F 0 , F 1 , ⋯   , F c − 1 } F = \{F_0,F_1,\cdots,F_{c-1}\} F={F0,F1,,Fc1}送入图2所示的两个分支分别计算两项损失。交叉熵损失 L C E ( F ) L_{CE}(F) LCE(F)鼓励网络提取有助于全局目标类别判别的特征。 L M C ( F ) L_{MC}(F) LMC(F)则是关注不同的局部判别块的特征。

MC-loss 由两部分组成,分别为 L d i s ( F ) L_{dis}(F) Ldis(F) L d i v ( F ) L_{div}(F) Ldiv(F)
The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification
The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification

图3

2.1 L d i s ( F ) L_{dis}(F) Ldis(F)

L d i s ( F ) L_{dis}(F) Ldis(F)中的dis表示 discriminality component。如上面所示,作者设计用 ξ \xi ξ个channel的特征表示一个类别,discriminality component要求这些特征关注某个特定的类别并且每个channel的特征要足够有判别力

L d i s ( F ) L_{dis}(F) Ldis(F)可以表示成:
The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification
GAP表示Global Average Pooling,全局平均池化;
CCMP表示Cross-Channel Max Pooling,跨channel最大池化;
CWA表示Channel-Wise Attention,给定每个channel的重要性。 M i = d i a g ( M a s k i ) M_i = diag(Mask_i) Mi=diag(Maski) M a s k i ∈ R ξ Mask_i \in R^{\xi} MaskiRξ是一个由0和1组成的mask,有 ⌈ ξ 2 ⌉ \lceil \frac{\xi}{2} \rceil 2ξ个1, ⌊ ξ 2 ⌋ \lfloor \frac{\xi}{2} \rfloor 2ξ个0。

CWA:
CWA即使用Mask进行channel-attention,每次训练迭代中有一部分的channel不参与,迫使每一个channel都去学习足够有判别力的特征。相当于channel维度的dropout操作。CWA仅在训练过程中存在,推理时不使用。

CCMP
CCMP表示跨通道的最大池化操作,即在WH个空间位置选取各channel的最大值,即选取每一个空间位置上各channel的最大**值。当然也可以使用跨通道平均池化,但平均池化等价于对各channel的**值进行平均,不利于细粒度分类。

GAP
GAP是在空间维度进行平均池化,得到各类的预测结果。

总体来说,discriminality component通过CWA迫使每个channel学习到的特征足够有判别力,通过CCMP选取各channel的最大响应,然后通过GAP获取各类别的预测结果。总体训练目标是使得各类别的 ξ \xi ξ个channel学习得到的特征足够有能力进行类别判断

2.2 L d i v ( F ) L_{div}(F) Ldiv(F)

L d i v ( F ) L_{div}(F) Ldiv(F)表示diversity component,相当于计算各channel特征间的距离,从而得到所有channel的总体相似度。作者使用的方法相比于普遍使用的欧氏距离和KL散度计算量更小。

diversity component的目的是同一类别的 ξ \xi ξ个channel应该关注图像的不同区域,而不应该是同一类别的所有channel都关注最有判别力的区域,相当于空间注意力机制。具体的实现为:

The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification先对特征的每一位置进行softmax操作,将其变为预测的类别。然后选取一个类别的 ξ \xi ξ个channel中各空间位置的最大值,然后在空间位置上求和,得到各类别的预测概率在所有channel内的和。然后对各类别求均值,值越大表示模型对于所有类别,不同的channel都关注到了图像的不同区域。

L d i v ( F ) L_{div}(F) Ldiv(F)的物理意义表示模型对于数据集的所有类别,不同的channel都关注到了图像的不同区域,即取值越大越好

L d i v ( F ) L_{div}(F) Ldiv(F)的取值上限为 ξ \xi ξ,表示不同channel的特征注意到了图像的不同区域。 L d i v ( F ) L_{div}(F) Ldiv(F)的取值下限为1,表示不同channel的特征注意到了图像的同一区域。如下图所示:

The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification

2.3 总结MC-Loss

MC-Loss通过 L d i s ( F ) L_{dis}(F) Ldis(F)使得一个类别的 ξ \xi ξ个channel都尽可能学习关于该类别的有判别力的特征,如图3(b)中一组 ξ \xi ξ个channel的特征都变成了同一颜色;通过 L d i v ( F ) L_{div}(F) Ldiv(F)使得各个channel都关注图像的不同空间位置,如图3(b)中一组 ξ \xi ξ个channel的特征的不同位置都有了颜色加深的区域。总体实现了如下图所示的结果:

The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification

3 实验

4 代码分析