【深度学习】In Defense of Grid Features for Visual Question Answering

Posted by ShawnD on February 19, 2022

Abstract

最近基于区域的 bottom-up 特征的表现在VQA 任务上已经超过了基于网格的卷积特征。然而,目前还不清楚是否是 region 的优势是 bottom-up attention 成功的关键原因。

这篇文章重新审视了VQA 中的网格特征,并且发现它工作地很好, 而且相同准确率下速度更快。

通过大量的实验证实了这一观察结果在不同的VQA模型、数据集上都是正确的,并且可以很好地推广到其他任务,比如 captioning。

由于网格特征使模型设计和训练过程更加简单,这使得我们能够端到端地训练它们,并使用更灵活的网络设计。

从像素直接到答案直接学习端到端VQA模型,并表明在训练前不使用任何区域标注也可以实现强大的性能。

Introduction

从预训练的目标检测器同一层中提取的网格特征可以和基于区域的方法在VQA上表现地一样好。

消融试验发现, bottom-up 注意力特征高准确率的关键影响因素是:

  • VG数据集中大规模的目标和属性标注
  • 用于计算特征的输入图像的高空间分辨率

对于特征格式本身,区域或网格,其对精度的影响最小。

使用ResNet-50骨干,我们发现总体运行时间从每幅图像0.89秒下降到0.02秒,快了40倍,精度略有提高。

请注意,使用区域特征的端到端训练是具有挑战性的,因为微调区域位置可能需要额外的标注,这在计算上是昂贵的,而且很难获得。网格特征可以很容易地针对最终目标进行优化(如正确回答问题),而无需额外的ground truth。网格特征 pipeline 还允许我们探索更有效的VQA设计

From Regions to Grids

在本节中,我们解释了我们获取与区域特征一样有效的网格特征的方法,前提是它们已经通过相同的任务进行了预训练。

第7节,我们展示了相同的预训练约束可以被取消,网格特征仍然可以通过对下游任务的端到端训练来缩小与区域之间的差距。

Bottom-Up Attention with Regions

Region selection 由于Faster R-CNN是两阶段检测器,因此在 pipeline 中区域选择发生了两次。第一种方式是通过 RPN,对主要候选 anchor 进行变形,选出感兴趣的区域(RoIs)。另一个选择是作为后处理完成的,以每个类的方式聚合前N个 bounding box。在这两个步骤中,都使用了非最大抑制(non-maximal suppression, NMS),它保留了分类得分最高的区域,并删除了该区域内的其他近似重复项。

Region feature computation 给定从第一阶段开始的区域(最多数千个),RoIPool操作用于提取初始的区域级特征。然后,其他网络层分别计算区域的输出表示。最后,将经过两轮选择的区域特征叠加在一起作为自底向上的特征来表示图像。

需要注意的是,由于VG数据集(例如数千个类)的复杂性和特定的Faster R-CNN检测器使用(下面将介绍),这两个步骤都需要大量计算。直接使用网格特征可以跳过或加速这些步骤,并提供显著的加速。

Grid Features from the Same Layer

将区域特征转换为网格的最简单方法是看看是否可以直接计算同一网络层的输出,但以共享的、全卷积的方式。

Faster R-CNN 是 c4 模型的变体, 其带有额外的分支用于属性分类。

它将 ResNet 的权重分为两个集合: 给定输入图像, 首先使用 到 C4 之前的 ResNet 计算特征图。

这个feature map在所有区域之间是共享的。

然后,分别对14个RoIPool-ed特征应用 C5块 进行区域特征计算。

然后,C5的输出被avgpool转化为每个区域的最终向量,作为自底向上的特征。

由于最终所有的区域特征都来自于C5,所以很容易将检测器转换回ResNet分类器,并将C5层作为输出的网格特征。

1 x 1 RoIPool for Improved Grid Features

接下来考虑如何提升网格特征。

一个想法是使用 1x1 RoIPool 。 这意味着将每个区域表征为一个向量, 而不是一个三维张量。乍一看,这似乎有悖于直觉,因为两个额外的空间维度(高度和宽度)确实有助于在2D中表征对象的不同部分,我们发现这种修改会对VG上的目标检测性能产生负面影响。但重要的是,使用 1x1 RoIPool区域也意味着网格特征图上的每个向量被强制覆盖一个空间区域的所有信息,这可能会生成更强的网格特征。

然而,在原始模型上直接应用1x1 RoIPool是有问题的,可能是因为C5由几个ImageNet预训练的卷积层组成,这些层在特定空间维度的输入上工作得最好。为了解决这个问题,我们遵循了最近在目标检测方面的发展,并使用整个直到C5的 ResNet作为共享特征计算的主干;对于区域级计算,在顶部放置两个1024D全连接(FC)层,默认接受矢量作为输入。

当使用 C5 池化后的特征训练检测器, 为了减少低分辨率的影响(C5 步长为 32, C4 步长为 16), 步长为2的层被替换为步长为1的层, 剩下的层使用系数为2的 dilate。

对于网格特征提取,我们去除这种dilation,并将其转换回正常的ResNet。

Conclusion

这篇文章重新审视网格特征,将其作为广泛应用于视觉和语言任务的自底向上区域特征的替代方案。

他们可以取得不同VQA 任务上, 不同模型上甚至image captioning 上取得相同的结果。

由于跳过了 pipeline 中与区域相关的计算成本高昂的瓶颈,我们看到了显著的加速,通常比依赖区域的现有系统的速度快一个数量级。

实验表明,比起特征的格式(regionvs, grids),特性表示的语义内容对于其有效性更为关键。

这种有效的表征可以通过在 目标和属性数据集上(如VG)预训练得到, 更重要的是, 可以通过直接对网格特征端到端地训练。

端到端地训练对于网格特征很容易, 对于区域特征并不简单。