双线性特征在学习细粒度图像表达上取得了很好的效果,但逐对计算卷积通道之间的信息交互会带来极大的计算代价,使得这样有较强表达能力的操作无法在深层的神经网络中被多次使用,从而限制了其应用的有效性和广泛性。
因此,我们设计了一种深度双线性转换模块,能够深层地将双线性表达应用在卷积神经网络中,来学习细粒度图像特征。深度双线性转换模块主要通过引入基于部位表达的语义分组信息,对组内的特征进行双线性操作和组间特征进行整合来得到低维的双线性表达,从而在深度神经网络中多次叠加使用双线性操作。我们提出的深度双线性模型在三个常用的细粒度图像分类任务上取得了明显的提高,下文中我们将详细介绍研究背景、实现细节以及实验结果。
细粒度图像分类(fine-grained image recognition)旨在区分同一个大类(比如鸟类、汽车、飞机等)里面不同小类的图像之间细微的差别。这类问题的数据通常有两个特点:
1)较强的结构性,比如所有的鸟类样本都由鸟头、鸟翅、鸟尾等部位组成,所有的汽车样本都由车头、车轮、车门等部件组成;
2)复杂的细节特征,比如呆头伯劳鸟(Loggerhead Shrike,图1左)与南灰伯劳鸟(Great Grey Shrike,图1右)相比,区别仅仅在于眼周围的黑色条纹比较粗,这就要求算法的特征表达可以捕捉到这样的细节。
基于这两个特性,目前最好的细粒度分类方法主要可以分为两类:基于部位检测的表达学习和基于双线性的精细特征学习。

针对以上问题,我们提出了“利用基于部位的语义信息,得到一种低维而高效的双线性表达”的构想,让能够表达丰富细节的双线性特征能够很深地集成到卷积神经网络中,因此提出了深度双线性网络(Deep Bilinear Transformation Network, DBT-Net)网络结构。

我们通过设计一种语义分组的约束将卷积特征的各个通道进行分组。由于卷积特征的每一个通道对特定语义的图像模式响应比较高,描述某一个语义的所有卷积通道的响应会集中在相应的空间区域。因此我们设计了一种语义分组约束,要求同一个语义组内的卷积通道两两之间有尽可能大的空间交叠,而不同组件的通道尽可能没有交叠。这种逐对的分组约束可以使后续的分组双线性操作更好地捕捉针对每个语义块的细节特征。图3展示了通过这种约束优化后的卷积通道组内和组间逐对的信息交互,黄色高亮代表交互的数值比较大,紫色代表交互比较小。
图3:组内和组间逐对的信息交互示意图
我们设计的深度双线性转换模块可以很容易地集成到深度卷积神经网络的结构中。比如可以将其插入到传统残差块(ResNet Bottleneck Block)的第一个卷积层和第二个卷积层之间来得到能够融合双线性特征的残差块。如图4所示,我们在传统残差块的第一个卷积上施加语义分组的约束,将其变成语义分组层(SG),同时在后面插入一个分组双线性操作(GB),并利用残差链接将通过分组双线性操作之前和之后的特征加起来。这样的双线性特征再通过3X3的卷积操作来进一步学习丰富的细节特征。

实验结果
为了验证我们提出的深度双线性转换的有效性,我们在三个常用的细粒度分类数据集上进行了实验,分别是 CUB-200-2011 鸟类数据集,Stanford-Car 汽车数据集和 FGVC-Aircraft 飞机数据集。表1显示了在 CUB-200-2011 数据集上(输入图像分辨率为224)深度双线性残差块在不同阶段融合的效果比较。我们可以看出,在最后一层使用分组双线性表达会带来一定的提升(1.1%),而将这种结构深层次的融入卷积神经网络之中可以带来进一步的提升,比如再将 ResNet-50 后两个阶段的残差块都变成深度双线性残差块会达到85.1%的分类精度。


表3显示了不同方法在三个常用细粒度图像分类任务上的实验结果比较(输入图像分辨率为448)。实验表明我们提出的深度双线性网络可以在同样使用 ResNet-50 作为基础网络,而且特征维度很低的情况下达到好的效果。我们将提出的深度双线性应用到 ResNet-101 上,可以观察到进一步的提升。

本文我们通过引入语义信息,提出了基于语义分组的双线性转换,大大降低了双线性特征的维度,使得双线性操作可以被深层次地融入到卷积神经网络中。我们设计的深度双线性网络在三个常用的细粒度图像分类任务上取得了明显的提高。在后续的工作中,我们会研究深度双线性转换在底层特征的应用。此外,我们还将把矩阵归一化操作引入到深度双线性转换中,进一步增强其表达能力。
了解更多技术细节,请查看论文:
Learning Deep Bilinear Transformation for Fine-grained Image Representation
论文链接:https://papers.nips.cc/paper/8680-learning-deep-bilinear-transformation-for-fine-grained-image-representation.pdf
代码链接:https://github.com/researchmm/DBTNet