摘要
细粒度的视觉识别具有挑战性,因为它高度依赖于各种语义部分的建模和细粒度的特征学习。基于双线性池的模型已被证明在细粒度识别方面是有效的,而以前的大多数方法忽略了层间部分特征交互和细粒度特征学习是相互关联、相互促进的这一事实。在本文中,我们提出了一个新的模型来解决这些问题。首先,提出了一种跨层的双线性池化方法来捕获层间零件特征关系,与其他基于双线性池化的方法相比,具有更好的性能。其次,我们提出了一个新的层次双线性池架构,整合多个跨层的双线性特征,以增强其表示能力。我们的公式是直观的,有效的,并取得了最先进的结果,在广泛使用的细粒度识别数据集。
1 Introduction
细粒度分类中利用局部特征的方法有较大局限性。
因此,使用图像级标签的分类方法。例如,Simon和Rodner[26]提出了一个星座模型,利用卷积神经网络(convolutional neural network, CNN)来寻找神经激活模式的星座。Zhang等人[36]提出了一种自动细粒度图像分类方法,该方法结合了深度卷积滤波器来进行与部件相关的选择和描述。这些模型将CNN作为局部检测器,在细粒度识别方面取得了很大的改进。与基于部件的方法不同,我们将不同卷积层的激活视为对不同部件属性的响应,而不是显式地对目标部件进行定位,而是利用跨层双线性池来捕获部件属性的层间交互,这被证明对细粒度识别非常有用。
也有研究[3,6,17,12]引入双线性池化框架对对象局部进行建模。虽然已经报告了一些有希望的结果,但进一步的改进还存在以下局限性。首先,现有的基于双线性池的模型大多只将最后一个卷积层的激活作为图像的表示,不足以描述对象的各个语义部分。其次,忽略了中间的卷积活动,导致细粒度分类的判别信息丢失,而这些信息对于细粒度的视觉识别具有重要意义。
众所周知,CNNs在传播过程中存在信息丢失。为了最大限度地减少对细粒度识别有用的信息损失,我们提出了一种新的层次双线性池结构来集成多个跨层的双线性特征,以增强其表示能力。为了充分利用中间卷积层的激活,在最终分类之前将所有跨层双线性特征连接起来。注意,不同卷积层的特征是互补的,它们有助于鉴别特征学习。因此,该网络从层间特征交互和细粒度特征学习的相互增强中获益。我们的贡献总结如下:
1.我们开发了一种简单但有效的跨层双线性池技术,该技术同时支持层间特性交互和以相互增强的方式学习细粒度表示。
2.提出了一种基于跨层双线性池的分层双线性池框架,将多个跨层双线性模块集成在一起,从中间卷积层获取互补信息,从而提高性能。
3.我们对三个具有挑战性的数据集(幼鸟、斯坦福汽车、fgvc飞机)进行了综合实验,结果证明了我们方法的优越性
本文的其余部分组织如下。第二部分是对相关工作的回顾。第3节介绍了提出的方法。第4节提供了实验和结果分析,第5节给出了结论。
2 Related Work
在接下来的文章中,我们将从与我们工作相关的两个有趣的角度简要回顾一下之前的工作,包括CNNs中的细粒度特征学习和特征融合。
2.1 Fine-Grained Feature Learning
1.为了更好地对细粒度类别的细微差异进行建模,Lin等人[17]提出了一种双线性结构,通过两个独立的CNNs来聚合成对的特征,该结构采用特征向量的外积来产生一个非常高维的二次展开特征。
2.Gao等人利用张量勾画出[23]来近似二阶统计量并降低特征维数。
3.Kong等人对协方差矩阵采用低秩近似,进一步降低了计算复杂度。
4.Yin等人通过迭代地将张量草图压缩应用到特征上来聚合高阶统计量。
5.[22]的工作以双线性卷积神经网络为基线模型,采用集成学习的方法进行加权。
6.在[16]中,提出了矩阵平方根归一化,并证明了它是对现有归一化的补充。
但是,这些方法只考虑了单个卷积层的特征,不足以捕捉对象的各种判别部分,也不足以模拟子类别间的细微差别。我们提出的方法通过将层间特征交互和细粒度特征学习以一种相互增强的方式结合起来,克服了这一局限性,因而更加有效。
2.2 Feature Fusion in CNNs
【3,7,19,33】研究CNN中不同卷积层的特征图有效性。
作者将每个卷积层作为不用对象部分的属性提取器,并以直观有效的方式对他们直降的交互进行建模。
3 Hierarchical Bilinear Model
在本节中,我们建立了一个层次双线性模型来克服上述限制。在提出我们的层次双线性模型之前,我们首先在3.1节中介绍了用于细粒度图像识别的分解双线性池的一般公式。在此基础上,我们在3.2节中提出了一种跨层的双线性池技术,联合学习不同卷积层的激活,捕获信息的跨层交互,从而获得更好的表示能力。最后,我们的层次双线性模型结合多个跨层双线性模块生成更精细的部分描述,以便更好地细粒度识别。
3.1 Factorized Bilinear Pooling
分解双线性池已被应用于视觉问题回答任务,Kim等人[11]提出了使用哈达玛乘积分解双线性池的多模态学习的有效注意机制。本文介绍了用于细粒度图像识别的分解双线性池技术的基本公式。假设一个图像I被CNN过滤了卷积层的输出特征图为X Rh w c,高h,宽w,通道c,我们将X上空间位置的c维描述符表示为X = [x1, x2,···,xc]T。
其中,Wi 为投影矩阵,Zi为双线性模型的输出。我们需要学习W = [W1,W2,···,Wo] ,得到一个o维输出z,根据[24]中的矩阵分解,Eq.(1)中的投影矩阵Wi可以分解成两个单秩向量
where Ui ∈ Rc and Vi ∈ Rc. Thus the output feature z ∈ Ro is given by
其中U Rc d和V Rc d是投影矩阵,P Rd o是类化矩阵,o是哈达玛积,d是决定节理嵌入维数的超参数。
3.2 Cross-Layer Bilinear Pooling
细粒度的子类别往往具有相似的外观,只能通过局部属性的细微差异来区分,例如鸟类的颜色、形状或喙长。双线性池是一种重要的细粒度识别技术。然而,大多数双线性模型只关注于从单个卷积层学习特征,而完全忽略了信息的跨层交互作用。单个卷积层的激活是不完全的,因为每个对象部分都有多个属性,这些属性对于区分子类别至关重要。
实际上在大多数情况下,我们需要同时考虑零件特征的多因素来确定给定图像的类别。因此,为了捕获更细粒度的部分特征,我们开发了一个跨层的双线性池方法,该方法将CNN中的每个卷积层视为部分属性提取器。然后将不同卷积层的特征通过元素乘的方式进行集成,建立部分属性的层间交互模型。根据公式(3)可以改写为:
其中,x和y表示在同一空间位置不同卷积层的局部描述符。
值得注意的是,不同卷积层的特征通过独立的线性映射扩展到高维空间。预计卷积激活和投影激活的编码是全局和目标的局部特征,如图3所示。这与人类由粗到细的感知高度一致:人类和非人类灵长类动物在识别局部细节特征[20]之前,往往先看到物体或场景的全局要点。例如,猕猴下颞叶皮层的神经元在感知人脸时是活跃的,它们对整个面部类别的编码要早于它们开始对更细微的信息进行编码,如身份或表情。
3.3 Hierarchical Bilinear Pooling
3.2节提出的跨层双线性池是直观有效的,在不增加训练参数的情况下,其表示能力优于传统的双线性池模型。这启发我们,利用不同卷积层之间的层间特征相互作用,有利于捕获细粒度亚层之间的鉴别部分属性。因此,我们扩展了跨层的双线性池来集成更多的中间卷积层,进一步增强了特征的表示速度。在这一节,我们提出一个广义的分层双线性模型,通过层叠多个跨层的双线性池模块来合并更多的卷积层特性。具体地,我们将跨层的双线性池模块划分为交互阶段和分类阶段,公式如下:
为了更好地进行层间特征交互,将跨层的双线性池模块的多个zint连接起来,得到HBP模型的交互特征。从而可以得到HBP模型的最终输出:
其中P为分类矩阵,U, V, S,…为卷积层特征向量x, y, z的投影矩阵,…分别。HBP框架的总体流程图如图1所示。
4 Experiments
在本节中,我们将评估HBP模型在细粒度记录方面的性能。第4.1节首先介绍了HBP的数据集和实现细节。在第4.2节中进行了模型配置研究,以调查每个组件的有效性。与最新方法的比较载于第4.3节。最后,在4.4节中,定性可视化被用来直观地解释我们的模型。
4.1 Datasets and Implementation Details
数据集:cub200-2011【30】,StandFordcars【15】,FGVC-Aircraft【21】
实验:使用ImageNet分类数据集预训练的VGG-16基线模型评估HBP,删除最后三个全连接层,也可以应用到Inception和ResNet中,输入图像大小448。我们的数据扩充遵循常用的做法,即训练时采用随机抽样(从512 S中裁剪448 448,其中S为最大的图像边)和水平翻转,推理时只进行中心裁剪。我们先通过logistic回归对分类器进行训练,然后使用批量为16,动量为0.9,权值衰减为5 10 4,学习率为10 3的随机梯度下降法对整个网络进行微调,并定期进行0.5的退火。
4.2 Configurations of Hierarchical Bilinear Pooling
跨层双线性池(CBP)有一个用户定义的投影维d。为了研究d的影响并验证所提框架的有效性,我们在cub200 -2011[30]数据集上进行了大量的实验,结果如图2所示。注意,我们利用FBP中的relu5 3、CBP中的relu5 2和relu5 3、HBP中的relu5 1、relu5 2和relu5 3得到了图2中的结果,我们还提供了以下图层选择的定量实验。在VGG-16[27]中,我们主要关注relu5 1、relu5 2和relu5 3,因为它们比较浅的层包含更多的部分语义信息。在图2中,我们将CBP的性能与一般分解的双线性池模型(即FBP)进行了比较。在此基础上,我们进一步探索了多层结合的HBP方法。最后,我们分析了超参数d的影响因素。从图2中我们可以得出以下重要结论:
首先,在相同的d下,我们的CBP明显优于FBP,这说明特征的层间相互作用可以增强识别能力。
其次,HBP进一步优于CBP,证明了中间卷积层激活对细粒度识别的有效性。这可以通过CNNs在传播过程中存在信息丢失来解释,因此在中间卷积层中可能丢失对细粒度识别至关重要的鉴别特征。与CBP相比,我们的HBP将更多的中间卷积层的特征相互作用考虑在内,因此具有更强的鲁棒性,因为HBP表现出了最好的性能。在接下来的实验中,HBP被用来与其他最先进的方法进行比较。
第三,当d从512到8192变化时,增加d可以提高所有模型的精度,HBP被d = 8192饱和。因此,d = 8192
然后,我们在cub200 -2011[30]数据集上提供定量实验来分析层的影响因素。表2的精度是在相同的嵌入维数下得到的(d = 8192)。我们考虑了CBP和HBP的不同层的组合。结果表明,该框架的性能增益主要来自层间交互和多层组合。由于HBP-3已经表现出了最好的性能,因此我们在4.3节的所有实验中都使用了relu5 1、relu5 2和relu5 3。
我们也比较了我们的跨层集成与基于超列[3]的有限元融合。为了进行公平的比较,我们将超列重新实现为relu5 3和relu5 2的特征连接,然后在相同的实验设置下进行分解双线性池(记作HyperBP)。从表3可以看出,我们的CBP得到的结果略好于拥有近1/2 pa- rameter的HyperBP,这再次表明我们的集成框架在捕获层间特征关系方面更有效。这并不奇怪,因为我们的CBP在某种程度上与人类的感知是一致的。与HyperBP算法相反,当对更多的卷积层激活[3]进行积分时,得到的结果更差,我们的HBP算法能够捕获中间卷积层中的互补信息,在识别精度上有明显的提高。
4.3 Comparison with State-of-the-art
结果cub- 200 - 2011。CUB数据集提供了边界框和鸟类部分的地面真相注释。我们使用的唯一监督信息是图像级类标签。cub200 -2011的分类精度如表4所示。表按行分为三部分:第一部分总结了基于注释的方法(使用对象包围框或部分注释);第二种是无监督的基于零件的方法;最后给出了基于池的方法的结果。
从表4的结果中,我们可以看到PN-CNN[2]使用了人类定义的边界框和地面真实部分的强大超视觉。SPDA- CNN[35]使用ground truth parts, B-CNN[17]使用具有非常高维特征表示(250K维)的边界框。与PN- CNN[2]、SPDA-CNN[35]和B-CNN[17]相比,即使不考虑bbox和部分干扰,所提出的HBP(relu5 3 + relu5 2 + relu5 1)也能取得较好的效果,证明了我们模型的有效性。与STN[9],使用更强的初始网络作为基准模型,得到一个相对ac -助理牧师的身份获得3.6%的家庭血压(relu5 3 + relu5 2 + relu5 1)。我们甚至超越RA-CNN[5]和MA-CNN[37],最近提议最先进的无监督部分原因的方法,相对精度,分别为2.1%和0.7%。与基于pool的B-CNN[17]、CBP[6]、LRBP[12]基线相比,我们主要受益的是较好的结果特征的层间交互和多层的集成。我们还超过了BoostCNN[22],它可以增强在多个尺度上训练的多个双线性网络。虽然HIHCA[3]提出了类似于用于细粒度识别的特征交互模型的思想,但是由于层间特征交互和鉴别特征学习的相互增强框架,我们的模型可以达到更高的精度。注意,HBP(relu5 3+relu5 2+relu5 1)表现优于CBP(relu5 3+relu5 2)和FBP(relu5 3),说明我们的模型能够捕捉到各层之间的互补信息。
斯坦福汽车的结果。Stanford Cars的分类精度如表5所示。不同的汽车零部件是有区别的、互补的,因此在这里,客体和零部件的国产化可能起着重要的作用。虽然我们的HBP没有显式的零件检测,但是在目前最先进的检测方法中,我们的检测结果是最好的。基于层间特征交互学习,我们甚至比PA-CNN[13]提高了1.2%的相对精度,这是使用人工定义的边界框。与无监督的基于零件的方法相比,我们可以观察到明显的改善。我们的HBP也优于基于池的方法BoostCNN[22]和KP[4]。
结果FGVC-Aircraft。由于细微的差异,不同的飞机模型很难被识别,例如,可以通过计算模型中的窗口数来区分它们。表6总结了fgvc飞机的分类精度。尽管如此,我们的模型仍然达到了最高水平所有方法中分类精度最高。与基于注释的MDTP[32]方法、基于部分学习的MA-CNN[37]方法和基于池的BoostCNN[22]方法相比,我们可以观察到稳定的改进,这突出了所提出的HBP模型的有效性和鲁棒性。
4.4 Qualitative Visualization
为了更好地理解我们的模型,我们在不同的数据集上可视化微调网络中不同层的模型响应。我们通过计算特征激活的平均幅度来得到激活图通道。在图3中,我们从三个不同的数据集中随机选取了一些图像,并将其可视化。
所有的可视化结果都表明,所提出的模型能够识别杂乱的背景,并倾向于在高度特定的场景中强烈地激活。项目1、项目2、项目3中突出的激活区域与幼仔头部、翅膀、胸部等语义部分密切相关;汽车前保险杠、车轮和车灯;飞机座舱、尾翼稳定装置和发动机。这些部分是区分类别的关键。更重要的是,我们的模型与人类感知高度一致,在感知场景或物体时解决细节问题。从图3可以看出,反褶积层(relu5 1, relu5 2, relu5 3)提供了目标对象的粗略定位。在此基础上,投影层(project5 1、project5 2、project5 3)进一步确定物体的本质部分,通过连续的交互和不同部分特征的整合来区分其类别。过程符合人类感知的而且性质[20]受完形格言:整个前部分,它还提供了一个直观的解释为什么我们的框架模型的分类不明确的部分检测和地方差异。
5 Conclusions
本文提出了一种分层的双线性池化方法,将层间交互和鉴别特征学习相结合,实现了多层特征的细粒度融合。提出的网络不需要边界框/部件注释,可以端到端的训练。在鸟类、汽车和飞机上的大量实验证明了我们的框架的有效性。未来,我们将在两个方向展开拓展研究。,如何有效地融合更多的层特性来获得多尺度的零件表示,以及如何合并有效的零件本地化方法来学习更好的细粒度表示。