论文:用于细粒度视觉识别的分层双线性池

细粒度的视觉识别具有挑战性,因为它高度依赖于各种语义部分的建模和细粒度的特征学习。基于双线性池的模型已被证明在细粒度识别中是有效的,但以前的大多数方法忽略了一个事实,即层之间的一些特征交互和细粒度特征学习是相互关联和相互促进的。本文提出了一种新的模型来解决这些问题。首先,提出了跨层双线性池方法来捕捉层间零件的特征关系。与其他基于双线性池的方法相比,它具有更好的性能。其次,我们提出了一种新的分层双线性池结构,该结构集成了多个跨层双线性特征以增强其表示能力。我们的公式直观有效,在广泛使用的细粒度识别数据集上取得了最先进的结果。

在细粒度分类中使用局部特征的方法有很大的局限性。

因此,使用图像级标签的分类方法。例如,Simon和Rodner[26]提出了一个星座模型,使用卷积神经网络(CNN)来寻找神经激活模式的星座。张等[36]提出了一种自动的细粒度图像分类方法,结合深度卷积滤波器来选择和描述分量。这些模型使用CNN作为局部检测器,在细粒度识别方面有了很大的改进。与基于组件的方法不同,我们将不同卷积层的激活视为对不同组件属性的响应,而不是显式定位目标组件,而是使用跨层双线性池来捕捉组件属性的层间交互,这被证明对细粒度识别非常有用。

也有研究[3,6,17,12]引入双线性池框架来对本地对象建模。尽管已经报道了一些有希望的结果,但是进一步的改进仍然有以下限制。首先,现有的基于双线性池的模型大多只把最后一个卷积层的激活作为图像的表示,不足以描述对象的语义部分。其次,忽略了中间的卷积活动,导致细粒度分类的判别信息丢失,而这对于细粒度视觉识别具有重要意义。

众所周知,CNN存在信息丢失。为了最小化细粒度识别有用信息的损失,我们提出了一种新的分层双线性池结构来集成多个跨层双线性特征,以增强它们的表示能力。为了充分利用中间卷积层的激活,所有跨层双线性特征在最终分类前连接。注意,不同卷积层的特征是互补的,它们有助于鉴别特征学习。因此,网络受益于层间特征交互和细粒度特征学习的相互增强。我们的贡献总结如下:

1.我们开发了一种简单但有效的跨层双线性池技术,它支持层间特征的交互,并以相互促进的方式学习细粒度表示。

2.提出了一种基于跨层双线性池的分层双线性池框架,集成了多个跨层双线性模块,从中间卷积层获取互补信息,从而提高了性能。

3.我们在三个具有挑战性的数据集(雏鸟、斯坦福汽车和fgvc飞机)上进行了全面的实验,结果证明了我们方法的优越性。

本文的其余部分组织如下。第二部分是对相关工作的回顾。第3节介绍了提出的方法。第4节给出了实验和结果分析,第5节给出了结论。

在下一篇文章中,我们将从与我们的工作相关的两个有趣的角度简要回顾之前的工作,包括CNN中的细粒度特征学习和特征融合。

1.为了更好地对细粒度类别的细微差异进行建模,Lin等人[17]提出了一种双线性结构,通过两个独立的CNN聚合成对特征,这种结构利用特征向量的外积生成一个非常高维的二次展开特征。

2.高等[23]用张量来逼近二阶统计量,降低特征维数。

3.孔等人对协方差矩阵采用低秩逼近,进一步降低了计算复杂度。

4.Yin等人通过迭代地将张量草图压缩应用于特征来聚集高阶统计量。

5.[22]的工作以双线性卷积神经网络为基线模型,采用集成学习的方法对其进行加权。

6.在[16]中提出了矩阵的平方根归一化,并证明了它是对现有归一化的补充。

但是,这些方法只考虑了单一卷积层的特征,不足以捕捉对象的各种判别部分,也不足以模拟子类别之间的细微差异。我们的方法通过将层与层之间的特征交互和细粒度的特征学习以相互促进的方式结合起来,克服了这种限制,因此更有效。

3,7,19,33研究CNN中不同卷积层特征图的有效性。

作者将每个卷积层视为未使用对象部分的属性提取器,以直观有效的方式对它们的直接交互进行建模。

在本节中,我们建立一个分级双线性模型来克服上述限制。在提出我们的分层双线性模型之前,我们首先在3.1节中介绍了用于细粒度图像识别的分解双线性池的一般公式。在此基础上,我们在3.2节提出了跨层双线性池技术,联合学习不同卷积层的激活,捕获信息的跨层交互,从而获得更好的表示能力。最后,我们的分层双线性模型结合了多个跨层双线性模块,以生成更详细的部分描述,从而实现更好的细粒度识别。

双线性池的分解已经被应用到回答视觉问题的任务中,Kim等人[11]利用双线性池的Hadamard乘积分解提出了一种有效的多模态学习的注意机制。介绍了用于细粒度图像识别的分解双线性池技术的基本公式。假设一幅图像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]中的矩阵分解,等式中的投影矩阵Wi。(1)可以分解成两个单秩向量。

其中Ui ∈ Rc和Vi ∈ Rc。因此,输出特征z ∈ Ro由下式给出

其中U Rc d和V Rc d是投影矩阵,P Rd o是分类矩阵,o是Hadamard积,d是决定节理嵌入维数的超参数。

细粒度的子类别通常具有相似的外观,只能通过局部属性的细微差异来区分,如鸟类的颜色、形状或喙长。双线性池是一种重要的细粒度识别技术。然而,大多数双线性模型只注重从单个卷积层学习特征,完全忽略了信息的跨层交互。单个卷积层的激活是不完全的,因为每个对象部分都有多个属性,这些属性对于区域的分子分类非常重要。

事实上,在大多数情况下,我们需要考虑零件特征的多个因素来确定给定图像的类别。因此,为了捕捉一些更细粒度的特征,我们开发了跨层双线性池方法,将CNN中的每个卷积层都视为部分属性提取器。然后,通过元素乘法将不同卷积层的特征进行整合,建立了部分属性的层间交互模型。根据公式(3),它可以重写为:

3.2节提出的跨层双线性池直观有效,在不增加训练参数的情况下,其表示能力优于传统的双线性池模型。这启示我们,利用不同褶积层之间的层间特征的相互作用,有利于捕捉细粒度子层之间的区分属性。因此,我们扩展了跨层双线性池,以集成更多的中间卷积层,进一步提高了特征表示的速度。在本节中,我们提出了一个广义的分层双线性模型,通过级联多个跨层双线性池模块来组合更多的卷积层特征。具体来说,我们将跨层双线性池模块分为交互阶段和分类阶段,公式如下:

其中p是分类矩阵,U,V,S,…分别是卷积层特征向量x,y,z,…的投影矩阵。HBP框架的总体流程如图1所示。

在本节中,我们将评估HBP模型在细粒度记录中的性能。4.1节首先介绍HBP的数据集和实现细节。在第4.2节中,进行了模型配置研究,以调查每个组件的有效性。第4.3节给出了与最新方法的比较。最后,在4.4节中,定性可视化被用来直观地解释我们的模型。

数据集:cub200-201130,StandFordcars15,FGVC-Aircraft21。

实验:使用ImageNet分类数据集预训练的基线模型VGG-16对HBP进行评估,删除最后三个全连通层。也可以应用于Inception和ResNet,输入图像大小为448。我们的数据扩展遵循通常的做法,即在训练中使用随机抽样(从512 S中切割448 448,其中S是最大的图像边缘)和水平翻转,在推理中只使用中心切割。我们先用logistic回归训练分类器,然后用批量为16,动量为0.9,权值衰减为5 10 4,学习速率为10 3的随机梯度下降法对整个网络进行微调,并周期性退火为0.5。

跨层双线性池(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,证明激活中间卷积层对细粒度识别是有效的。这可以用细胞神经网络在传播过程中的信息丢失来解释,因此对于细粒度识别很重要的识别特征可能会在中间卷积层丢失。与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的结果比HyperBP的结果略好,接近1/2参数,这再次表明我们的集成框架在捕捉层之间的特征关系方面更有效。这并不奇怪,因为我们的CBP在某种程度上与人类的感知是一致的。与HyperBP算法相反,当整合更多卷积层激活时[3],结果更差。我们的HBP算法可以捕捉到中间卷积层的互补信息,识别精度明显提高。

结果cub- 200-2011。CUB数据集提供了边界框和鸟部分的地面真实注记。我们使用的唯一监控信息是图像级类标签。cub200 -2011的分类精度如表4所示。表格按行分为三部分:第一部分总结了基于标注的方法(使用对象包围盒或部分标注);第二种方法是无监督的基于部分的方法;最后,给出了基于池的方法的结果。

从表4的结果可以看出,PN-CNN[2]使用了人类定义的包围盒和强大的地面实部超级视觉。SPDA- CNN[35]使用地面真相部分,B-CNN [17]使用具有非常高维特征表示(250K维)的包围盒。与PN- CNN[2]、SPDA-CNN[35]和B-CNN[17]相比,提出的HBP(relu5 3+relu5 2+relu5 1)即使不考虑bbox和部分干扰也能取得更好的结果,证明了我们模型的有效性。与STN[9]相比,使用更强的初始网络作为基准模型,我们得到相对于ac-assistant pastor身份的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),这说明我们的模型能够捕捉到层间的互补信息。

斯坦福汽车公司的成果。斯坦福汽车的分类精度如表5所示。不同的汽车零部件是不同的,也是互补的,所以物体和零部件的本地化在这里可能会起到重要的作用。虽然我们的HBP没有明确的部分检测,但我们的检测结果是目前最先进的检测方法中最好的。基于层间特征的交互学习,我们甚至比使用人工定义的包围盒的PA-CNN[13]提高了1.2%的相对准确率。与无监督的基于部分的方法相比,我们可以观察到明显的改进。我们的HBP也优于基于池的方法BoostCNN[22]和KP[4]。

结果FGVC-飞机。由于细微的差异,不同的飞机模型很难识别,比如可以通过计算模型中的窗口数量来区分。表6总结了fgvc飞机的分类精度。尽管如此,我们的模型已经达到了最高水平,分类精度也是所有方法中最高的。与基于注释的MDTP[32]方法、基于部分学习的MA-CNN[37]方法和基于池的BoostCNN[22]方法相比,我们可以观察到稳步的改进,这突出了所提出的HBP模型的有效性和鲁棒性。

为了更好地理解我们的模型,我们在不同的数据集上可视化地微调网络中不同层的模型响应。通过计算特征激活的平均幅度,得到激活图通道。在图3中,我们从三个不同的数据集中随机选择了一些图像,并将它们可视化。

所有的可视化结果表明,所提出的模型可以识别杂乱的背景,并在高度特定的场景中被强烈激活。项目1、项目2和项目3中突出显示的活动区域与幼崽的头部、翅膀和胸部等语义部分密切相关。汽车前保险杠、车轮、车灯;飞机驾驶舱,尾部稳定器和发动机。这些部分是区分类别的关键。更重要的是,我们的模型与人类的感知高度一致,它解决了感知场景或物体时的细节问题。从图3可以看出,反卷积层(relu5 1,relu5 2,relu5 3)提供了目标物体的大致位置。在此基础上,投影层(project5 1,project5 2,project5 3)进一步确定物体的本质部分,通过不同部分特征的不断交互和整合来区分其类别。该过程符合人类感知和自然[20]受格式塔的格言影响:整个前面部分,它也提供了为什么我们的框架模型的分类不清楚,部分检测和局部差异的直观解释。

本文提出了一种分层双线性池方法,结合层间交互和判别特征的学习,实现多层特征的细粒度融合。所提出的网络不需要边界框/组件注释,并且可以被端到端地训练。在鸟类、汽车和飞机上的大量实验证明了我们框架的有效性。今后,我们将在两个方向上扩展我们的研究。如何有效整合更多图层特征获得多尺度零件表示,如何结合有效的零件定位方法学习更好的细粒度表示。