用于细粒度图像分类的通道交互网络

作者:Yu Gao, Xintong Han, Xun Wang, Weilin Huang∗, Matthew R. Scott

机构:码///long科技(深圳)

文章提出了什么问题?现有的方法关注的是那些关系密切的通道之间的信息,而忽视了通道之间的互补信息

文章用什么模型来解决问题?提出了一种网络框架CIN,包括两个模块(SCI,self-channel interaction),建模了各种通道之间的关系,以发现此类通道互补信息,和CCI(cross-channel interaction),学习图片之间的通道关系。CCI能够动态地识别两张对比图像的不同区域。允许模型为了更好的分类关注那些不同的区域。网络可以端到端地训练。

摘要

  细粒度图像分类由于类内微小的差异而具有挑战性。我们假定利用通道之间丰富的关系可以帮助捕获这些差异,因为不同的通道对应不同的语义。在这篇文章中,我们提出一个通道交互网络(CIN),它对图像内部和图像之间的通道交互进行了建模。对于单个图像,提出了一个自通道交互(SCI)模块来探索图像中的通道相关性。这允许模型从相关通道中学习互补特征,产生更强的细粒度特征。还有,给定一个图像对,我们引入一个对比通道交互(CCI)模块来通过一个度量学习框架对交叉样本通道交互进行建模,这允许CIN区分图像之间的细微视觉差异。我们的模型可以以端到端的方式高效训练,而不需要多个阶段的训练和测试。最后,在三个公开的benchmark上做客综合实验,证明提出的方法超过了SOTA。

Introduction

  细粒度图像分类在计算机视觉领域已经变成了一个重要topic。除了识别basicl-evel的经典图像分类之外,由于类间细微的差异,细粒度类别的识别更具挑战性,其中许多类别只能通过专注于有区别的局部部分来有效区分。例如,为了区分图1中的三种鸟,神经网络常常关注它们的翅膀和头部。

  从前的工作倾向于通过定位不同的局部来学习有区分度的特征,或者对高阶信息进行建模,这被证明对细粒度图像分类是有效的。在这篇文章中,我们重新思考了用卷积网络学习有区分度的特征的方法,提出了一个新的通道交互网络(CIN)。

  首先,不同的通道常常对应不同的视觉模式(Yosinski等人,2015)。如图1所示,多数通道在语义上和其他通道是互补的。基于这一观察,我们旨在发现每个通道的互补通道信息,然后将互补通道与原始通道聚合。这种互补信息可以协同地贡献于所提及的通道,使得通道更具辨别性。因此,我们提出了一个自通道交互(SCI)网络,该网络明确地建模了各种通道之间的关系,以发现此类通道互补线索。现有方法通常将通道/部分相互作用应用于直接分类(Lin、RoyChowdhury和Maji 2015;Yu等,2018)或尝试挖掘密切相关的线索(Wang等,2017;Yue等,2018),其中通道互补的线索没有被充分探索。

图1:通过我们的方法计算的通道激活 

  第二,人们倾向于通过关注两个图像的具体区别来区分它们。例如,当我们比较图1中的两幅图像A和B时,我们可以轻松地识别出两张图像翅膀部分地差异:A图中的鸟有黑色的翅膀,而B中的鸟翅膀上有红点。然而,当对比A和C时,更多的注意力要被放在头部区域上,即提高通道2对于图像A和C的重要性。最后,我们在样本中提出了一个新的对比通道交互机制,目标是捕获图像之间的细微差异。嵌入在我们框架中的度量学习是用于建模交叉样本通道的交互,被多数现有的方法所忽视。

  最后,我们联合优化SCI模块和CCI模块,如图2所示。网络可以端到端地被训练,这比一些两个阶段的方法例如HS-Net和DFL-CNN,NTS等等更加轻量。我们的主要贡献有:

1)我们提出了一个子通道交互(SCI)模块来对一张图像不同通道之间的交互进行建模。这可以为每个通道捕获通道互补信息,强化了每个通道学习到的有区分度的特征。结果得到一个阶段的轻量模型,训练更加高效。新的模型是灵活的,可以被整合到现有的网络中,以提升其性能。

2)我们提出一个新的对比通道交互(CCI)模块,学习图片之间的通道关系。CCI能够动态地识别两张对比图像的不同区域。允许模型为了更好的分类关注那些不同的区域。

3)最后,我们在三个公开数据集上评估我们的方法:CUB-200-2011,Stanford Cars和FGVC Aircraft,我们的方法能够比现有的SOTA获得更好的表现。

图2:我们的网络结构的Overview。为了强调差异,W_{AB}=\left |W_{A} - \eta W_{B} \right |, W_{BA}=\left |W_{B} - \gamma W_{A} \right |\eta,\gamma是学习得到的,从受对比图像中计算得到的编码信息控制的全连接层(fc)中学习得到。CCI模块在推导过程中会被移除,softmax loss也会被一个softmax层取代。

Related Work

Methodology

  在这一节中,我们为细粒度图像分类提出通道交互网络(CIN),在图2中给出图解。给定一个图像对,两张图像都是第一次被一个共享的backbone处理,例如ResNet50,生成一对卷积特征图。为了在特征图上计算每个通道的通道互补信息,设计了一个自通道交互模块(SCI)来对不同的通道之间的关联建模。接着我们将原始特征图中的特征和互补信息整合在一起。最后,设计了一个对比通道交互模块(CCI),采用对比loss来建模两张图像的通道关系。和现有方法对比,我们提出的CIN可以在一个阶段端到端地训练,也适用于其他卷积神经网络。

自通道交互

  注意到编码在特征通道中的丰富知识,如图1所示,我们想要探索各种通道之间的交互。目前的工作倾向于强调最不同的那些特征通道。然而,只关注最具差异的通道可能不能完全探索所有通道中的丰富信息。实际上,多数的通道彼此互补。为了细粒度分类,我们尝试计算通道间关系来抓取这些互补线索,接下来将它们编码到原始特征。因此我们提出了一个简单而有效的自通道交互模块(SCI)来达到这个功能,如图2所示。

  给定一个图像I,令X^{'} \in\mathbb{R}^{w\times h \times c}表示输入的经过backbone处理的特征图,其中w,h和c分别表示宽高和通道数目。我们首先将输入特征图X^{'}reshape到X \in \mathbb{R}^{c \times l}l=w \times h。SCI的输出被计算为:

  其中W \in \mathbb{R}^{c \times c}表示SCI的权值矩阵,可以按以下方法计算。首先,我们在XX^{T}之间进行一次双线性运算,获得一个双线性矩阵XX^{T}。接着给它添加一个负号,利用一个softmax函数来获得权值矩阵:

  其中\sum_{k=1}^{c}W_{ik}=1。值得注意的是Y_{i}(结果特征Y的第i个通道)是计算得到的X_{i}X的所有通道的交互,即Y_{i}=W_{i1}X_{1}+...+W_{ic}X_{c}

  根据W的定义,具有更大权重的通道倾向于和X_{i}语义上互补,如图3所示。参考通道X_{i}关注头部区域,因此通道强调互补的部分,像是翅膀和脚,有更高的权重,与此同时头部信息的通道有一个较小的权重。由于生成的特征Y可能会丢弃原始特征中的一些信息,因此我们从生成的特征和原始特征中聚合判别特征(Z):

  其中\phi表示一个3 \times 3的卷积层。

图3:一个例子,在SCI模块中,参考通道和所有的通道之间的关系。 

Discussions

  值得注意的是,我们的SCI模块可以形式化为(Wang等人,2017)中描述的非局部操作:

  其中f(X,X)=softmax(-XX^{T})\in\mathbb{R}^{c \times c}g(X)=x \in \mathbb{R}^{c \times l}。与原始的考虑空间维度交互的非局部块不同,我们的模块侧重于通道维度。更重要的是,非局部操作倾向于利用空间位置之间的正相关性,而SCI模块侧重于负相关性,这使我们的模型能够发现语义互补的信道信息。非本地操作类似于SE初始模块(Hu、Shen和Sun 2017)。它们突出了区别性特征,但没有充分利用补充线索,SCI模块更好地探索了补充线索,以增强通道特征,如图5所示。

  图5:在CUB数据集上的CCI模块可视化结果。(a)是原始图像;(b)是CCI得到的特征图。可以看出在不同图像对条件下突出的区域也不同。

  我们的方法与Yue等人2018年提出的CGNL和Zheng等人2019年提出的TSAN相关,也是计算通道之间的关联,但是在计算关联上有明显的不同:1)CGNL和TSAN探索通道的正相关,我们的CIN关注通道交互的负相关;2)CGNL计算空间关联,进一步利用一个低秩的Hadamard乘法;3)在TSAN中,作者进一步提出了一个适应性图像采样机制来强化细节信息,采用知识蒸馏来提取学习到的细节。3)在计算一张图像的通道关系之外,我们的方法的一个关键不同是进一步采用度量学习来建模样本间通道交互。

对比通道交互

  SCI模块能够计算有意义的判别特征。一个直接的方法是直接将特征用作分类,例如使用一个softmax分类器是最流行的选择。然而,一个普通分类器经常在细粒度分类中捕获细微差异上的表现不尽如人意。 (Cui等人2016)。为了减轻这个问题,MAMC(Sun等人2018)提出,强制不同对象部分之间的关联。它通过使用度量学习技术,引入了多注意力多类别约束,这启发了现在的工作。我们使用深度度量学习,通过引入SCI得到的特征的对比约束来计算丰富的交叉样本通道关联

  为了建模两个图像I_{A}I_{B}之间的交互,一个自然的想法是在SCI得到的Z_{A},Z_{B}上采用对比约束,接着计算它们的相似度。然而,传统的深度度量学习方法将一张图像变为学习到的嵌入空间上一个固定的点。结果是,这样一个通用的表征常常不能够捕获两张图象的细微差异。我们尝试以一个动态的模式,学习两张图象的交互。即通过对比对比图像计算出的特征通道,强调了通道的重要性。因此,我们提出了一个对比通道交互(CCI)模块来计算两幅图像之间的这种关系。如图2所示,我们认为图像I_{A}I_{B}的SCI权重矩阵之间的简单减法运算可以提取此类互信息,并生成CCI权重矩阵W_{AB}W_{BA}

  其中\eta,\gamma分别是通过一个全连接层\psi[Y_{A},Y_{B}],[Y_{B},Y_{A}]中学习到的权重,即\eta=\psi([Y_{A},Y_{B}]),\gamma=\psi([Y_{B},Y_{A}])\parallel表示绝对值。这两个权重表示考虑到了图像动态的相关信息量,以便更好地将自身与比较图像区分开来。我们使用减法运算来计算交互。我们还尝试了其他操作,如加法、乘法或串联,但获得的性能稍低。通过减法,CCI权重矩阵抑制了两幅图像之间的共性,并突出显示了两幅图像之间不同的通道关系。

  与SCI模块相似,CCI权值矩阵W_{AB},W_{BA}适用于特征值X_{A}X_{B}

  其中Y_{A}^{'}=W_{AB}X_{A},Y_{B}^{'}=W_{BA}X_{B}

  最后,一个对比loss被用于CCI模块计算出的特征,旨在将不同类别的样本推开,将正相关的样本拉近。假定每个batch包括N个图像对,即2N张图像。对比loss如下定义:

  除了对比loss之外,一个三元loss(Schroff等人2015)和其他度量学习的loss也可以被用在我们的框架中。我们最后选择了对比loss的原因是它很简单,在度量学习和人脸验证中表现很好。我们也尝试在CCI使用triplet loss,但是没能改善表现。特别地,\l定义如下:

  其中\beta是一个预定义的边缘,\left \| \cdot \right \|表示欧氏距离,h是一个全连接层,将特征转换到一个r维的空间。即H(Z)\in\mathbb{R}^{r},r在我们的实验中被设置为512。这里,y_{AB}表示一个图像对的标签是否相同,即y_{AB}为1表示图像I_{A},I_{B}来自同一个类别,反之说明这个图像对负相关。

  此外,我们使用softmax损失进行分类,该分类基于使用SCI的特征Z生成的预测。我们将softmax损耗表示为Lsoft。我们框架的总损失Ltotal定义如下:

  其中α是一个超参数,我们使用随机梯度方法来优化Ltotal。请注意,只有SCI模块在推导中用到,只需要一张图像。

Experiments

数据集:CUB-200-2011,Stanford Cars,FGVC aircraft

baseline:

1)MAMC(Sun,2018),使用多注意力多类别约束来强制不同对象的部分之间的关联

2)CGNL(Yue,2018),通过非局部操作捕获跨通道位置之间的依赖关系进行分类

3)HBP(Yu,2018),层次双线性池化框架,聚合多个跨层双线性特征

4)iSQRT-COV(Yu,2018),使用一个迭代矩阵平方根正则化来进行协变池化

5)RA-CNN(Fu,2017),递归地学习判别区域注意力,基于区域的多尺度特征表征

6)Boost-CNN(Moghimi,2016),一个新的增长策略来集合弱分类器,以改进表现

7)DT-RAM(Li,2017),一个动态计算时间模型,通过循环视觉注意力的增强学习

8)MA-CNN(Zheng,2017),多注意力卷积网络,包括卷积,通道分组和部分分类子网络

9)DFL-CNN(Wang,2018),通过学习一个卷积滤波器的bank来捕获具体类别判别。由于复杂的K-eans层初始化,表现可能不够稳定

10(patchNTS(Yang,2018),通过自注意力机制,有效地定位能提供有效信息的区域

以及一些需要额外信息的方法SJS(Ge,2017),HS-Net(Lam,2017),HSE(Chen,2018)

SCI 模块

  SCI通过探索渠道互动挖掘互补渠道,有助于学习更多的辨别特征。如表1所示,与仅ResNet-50(84.9%)相比,仅通过添加SCI模块,ResNet-50+SCI的性能提高了2.2%。此外,将交互模块从SCI切换到SE模块会导致性能显著下降(分别为87.1%和85.7%)。SE模块只关注最具辨别力的特征而忽略其他特征,而我们的SCI模块利用互补的通道知识来增强所有特征。与非局部块和ResNet-50+Pos-SCI(SCI权重矩阵W不带负号)分别对正空间和通道信息进行建模相比,我们的SCI模块获得了更好的性能。请注意,我们的SCI也优于CGNL(Yue et al.2018)(87.0%),后者对所有通道位置之间的相关性进行建模。事实上,SCI模块中探索的通道信息也涉及CGNL。渠道信息的主要区别在于,我们的SCI利用负相互作用来发现渠道方面的补充信息,而CGNL没有充分挖掘此类信息,并计算正相互作用来捕获密切相关的线索。这些结果表明:1)对于细粒度图像分类,通道维度中包含的信息与跨所有维度的复杂建模一样强大;2)与发现密切相关的通道信息相比,发现互补的通道线索可以充分利用通道交互。

CCI模块

  我们进一步研究了所提出的CCI模型的有效性。表1显示,与无对比损失的方法(ResNet-50+SCI)相比,CCI模块(ResNet-50+SCI+CCI)的性能提高了0.4%。为了进一步证明对比信道注意模块的特性,我们考虑了方法(RESNET-50+SCI+CONT),它明确地将对比损失应用于SCI模块计算的特征,即方程5中的ε=0和γ=0。如表1所示,与ResNet-50+SCI相比,ResNet-50+SCI+Cont的改善有限(分别为87.2%和87.1%)。原因可能是,与任何其他图像相比,常见的对比损失使用了图像的相同特征,这可能会降低聚焦两个图像之间明显差异的能力,而我们的CCI模块能够突出显示不同区域。结果证实,我们的CCI模块对两幅图像之间的关系具有很强的建模能力。

定性可视化

  为了更好地理解CIN模拟的图像内和图像间通道相互作用,我们在SCI和CCI模块中可视化了通道相关性和神经激活。图4显示了SCI模块对来自三个不同数据集的图像的可视化。第1列显示SCI之前随机选择的通道(假设为第i个通道)的激活情况。

  第2列到第4列是它的三个最互补的通道。换句话说,为了更好地理解CIN模拟的图像内和图像间通道相互作用,我们在SCI和CCI模块中可视化了通道相关性和神经激活。图4显示了SCI模块对来自三个不同数据集的图像的可视化。第1列显示SCI之前随机选择的通道(假设为第i个通道)的激活情况。第2列到第4列是它的三个最互补的通道。换句话说,这三个通道对应于方程式7中定义的SCI矩阵W第i行中具有最大值的通道。最后一列代表Yi,它是SCI之后的第i个频道。我们发现,对于一个参考通道,前三个互补通道往往捕获不同的语义。例如,在图4的第一个示例中,参考通道在翅膀周围有强烈的激活,其互补通道更多地集中在头部和尾部区域。因此,注意特征通道通过这种互补信息得到增强,并在其他辨别部位激活。请注意,在我们的SCI模块之后,激活跨越了大多数对象部分,这表明SCI有效地模拟了不同通道之间的交互,并将其互补但有区别的部分结合起来,以产生更多信息的特征。

  图5显示了CUB-200-2011数据集上CCI模块的结果。第2行显示了对比的注意激活,通过平均每个通道CCI后的所有特征图。“咸黑鸥”和“象牙海鸥”的头部相似,CCI后的特征对头部的反应较弱。与“鱼鸣”相比,头部附近的激活作用更强。对于其他两种鸟类来说,它们的外观差异很大,CCI模块对整个身体部位都有强烈的反应。这一结果表明,我们提出的CCI模块可以通过对图像对之间通道的交互进行建模来关注关键区别。

Conlusion

  我们提出了一种新的用于细粒度图像分类的通道交互网络(CIN)。我们的网络首先通过自通道交互(SCI)模块学习互补通道信息,并考虑通道之间的关系。它鼓励通过对比通道交互(CCI)模块拉近正对,同时推开负对,该模块利用样本之间的通道相关性。建议的网络可以在一个阶段内进行端到端的训练,无需边界框/零件标注。大量实验表明,与最先进的方法相比,CIN可以实现更高的性能。 

   

   

   

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值