这是视觉问答论文阅读的系列笔记之一,本文有点长,请耐心阅读,定会有收获。如有不足,随时欢迎交流和探讨。
Popularized as ‘bottom-up’ attention [2], bounding box (or region) based visual features have recently surpassed vanilla grid-based convolutional features as the de facto standard for vision and language tasks like visual question answering (VQA). However, it is not clear whether the advantages of regions (e.g. better localization) are the key reasons for the success of bottom-up attention. In this paper, we revisit grid features for VQA and find they can work surprisingly well-running more than an order of magnitude faster with the same accuracy (e.g. if pre-trained in a similar fashion). Through extensive experiments, we verify that this observation holds true across different VQA models (reporting a state-of-the-art accuracy on VQA 2.0 test-std, 72.71), datasets, and generalizes well to other tasks like image captioning. As grid features make the model design and training process much simpler, this enables us to train them end-to-end and also use a more flexible network design. We learn VQA models end-to-end, from pixels directly to answers, and show that strong performance is achievable without using any region annotations in pre-training. We hope our findings help further improve the scientific understanding and the practical application of VQA. Code and features will be made available.
基于边界框(或区域)的视觉特征已广为“自下而上”的关注[2],最近已经超过了基于vanilla 网格的卷积特征,成为视觉和语言任务(如视觉问题解答(VQA))的事实上的标准。但是,尚不清楚区域的优势(例如更好的本地化)是否是自下而上获得成功的关键原因。在本文中,我们重新审视了VQA的网格特征,发现它们可以令人惊讶地以良好的运行速度运行,并且精度相同(例如,如果以相似的方式进行预训练),可以更快地运行一个数量级。通过广泛的实验,我们验证了该观察结果在不同的VQA模型中均适用(在VQA 2.0 test-std上报告了最新的准确性,即72.71)数据集,并且可以很好地推广到其他模型图像字幕之类的任务。由于网格特征使模型的设计和训练过程变得更加简单,这使我们能够端到端对其进行训练,并使用更灵活的网络设计。我们从像素直接到答案,端到端地学习了VQA模型,并表明在不进行任何预训练的情况下,无需使用任何区域注释就可以实现强大的性能。我们希望我们的发现有助于进一步提高对VQA的科学理解和实际应用,下图是作者提出的模型和Bottom-up的比较,作者认为实际上,提取区域特征非常耗时,以至于大多数最新模型[BAN,MCAN]都可以直接在缓存的视觉特征上进行训练和评估。 这种做法不仅对模型设计施加了不必要的限制,而且还限制了现有视觉和语言系统的潜在应用。。
在作者的工作中,使用网格特性的VQA任务,没有使用区域。为了使自下而上的Bottom-up的变化最小,使用Faster R-CNN让特征具有更强的防御力, 正如作者所证明的,VQA可以在“单一”特征映射上操作,而不是一级检测器繁荣的“多”尺度的特征映射,下图是对作者提出框架的展示,左图:作者将自下而上的注意力使用的原始区域特征提取程序转换回同一层的ResNet网格特征提取程序,发现它对VQA非常有效。右图:我们构建了一个基于1×1 RoIPool的检测器,同时保持了网格特征的输出架构不变,得到的网格特征始终与区域特性保持一致,下面对这两个进行介绍。
Bottom-Up的注意方法使用Faster R-CNN检测模型。 该检测器在Visual Genome的干净版本上进行训练,具有数千个对象类别和数百个带有边界框(区域)注释的属性。
为了获得诸如VQA之类的任务的自下而上的注意特征,需要执行两个与区域相关的步骤:
1.区域选择(Region selection)
由于Faster R-CNN是两阶段检测器,因此区域选择在管道中发生两次。 第一种是通过区域提议网络,该网络会变形并选择突出的候选“锚点”作为兴趣区域(ROI)。 另一种选择是作为后处理,以按类的方式聚合前N个框。 在这两个步骤中,都使用非最大抑制(NMS),它使分类分数最高的区域保持不变,并去除了本地邻域中的其他近重复项。
2.区域特征计算(Region feature computation)
给定从第一阶段开始的区域(多达数千个),RoIPool操作[31]用于提取初始区域级特征。 然后,其他网络层将分别计算区域的输出表示。 最后,将经过两次选择的区域特征堆叠在一起,作为自底向上的特征来表示图像。
将区域特征转换为网格的最简单方法是查看是否可以直接以共享,完全卷积的方式计算同一网络层的输出,为此,我们仔细研究了原始自下而上关注所使用的特定Faster R-CNN架构。
Faster R-CNN是c4模型的变体,带有一个用于属性分类的额外分支。 它将ResNet 中的权重划分为两个独立的集合:给定输入图像,它首先使用ResNet的较低块(直到C4)计算特征图。 此特征图在所有区域之间共享。 然后,通过应用C5块分别执行每区域特征计算在14×14 RoIPool版本的功能上。 然后,将C5的输出作为每个Bottom-Up特征进行平均每个区域的最终矢量。 由于所有最终区域特征都来自C5,因此很容易将检测器转换回ResNet分类器,并采用与我们的输出网格特征相同的C5层。 图2(左)说明了转换过程。
如实验所示,直接使用转换后的C5输出效果已经非常好。 这样做会导致性能下降,这可能是因为Faster R-CNN已针对基于区域的对象检测进行了高度优化,而对于网格可能没有那么多。 因此,接下来看看是否可以对模型进行一些最小的调整以改善网格特征。
作者的想法是简单地使用1×1 RoIPool。 这意味着在Faster R-CNN中用单个矢量而不是三维张量来表示每个区域。 乍看起来,这似乎是违反直觉的,因为两个附加的空间尺寸(高度和宽度)对于表征2D对象的不同部分很有用–实际上,我们发现此修改会对VG上的对象检测性能产生负面影响。 但是重要的是,使用1×1 RoIPool区域还意味着,网格特征图上的每个向量都被迫仅覆盖一个空间区域的所有信息,这有可能导致更强大的网格特征。
但是,直接在原始模型上应用1×1 RoIPool是有问题的,这可能是因为C5由几个ImageNet预训练卷积层组成,这些卷积层最适合于特定空间尺寸的输入。 为了解决这个问题,我们遵循了对象检测的最新发展,并使用了直到C5的整个ResNet作为共享特征计算的骨干。 对于区域级计算,在顶部放置两个1024D全连接(FC)层,默认情况下接受矢量作为输入。
为了在使用C5合并的特征训练检测器时降低低分辨率的影响(C5的步幅为32,而C4的步幅为16),将stride-2的层替换为stride-1的层,其余层的放大倍数为 2。 对于网格特征提取,我们删除了该膨胀并将其转换回普通的ResNet。
图2(右)总结了作者对改进的网格所做的更改。 请注意,与原始模型(左)相比,仅在训练过程中对区域相关组件进行了必要的修改。 由于在特征提取过程中所有此类计算均被删除,因此作者的网格特征提取器在推理过程中保持不变。
从这一部分开始,作者报告比较区域和网格的实验结果。 选择VQA2.0作为感兴趣的主要任务,因为它目前是评估联合视觉和语言理解的主要基准,并且具有清晰的评估指标。为了进行分析,默认情况下,作者将Faster R-CNN与ResNet-50骨干网一起在ImageNet上进行预训练,主要结果总结在表1中。
为了了解这些不同数量的区域特征如何影响精度,我们对不同数量的特征N进行了实验,并在图3中显示了结果。
请注意,与以前的设置不同,作者使用trainval + vqa-eval进行训练。 在表2中报告了VQA准确性和推理时间细分。与直接使用卷积特征图的网格特征不同,区域特征涉及区域选择和区域特征计算的其他操作。 对于基于区域的模型,这些额外的操作花费了总推理时间的98.3%。 结果,将作者的网格特征作为输入的VQA模型比使用自下而上的区域特征的模型运行速度快48倍。
我们在图 4中,可视化了注意特征,Bottom-up的注意模块的输入图像,以及来自区域和网格的答案。
为什么网格特征起作用?
在表3中,显示了针对不同设置的基于网格的方法(ResNet-50 C5功能)的性能,发现有两个主要因素:1)输入图像大小; 2)预训练任务。 接下来,将研究这两个因素,并在vqa-eval集上报告结果。
1.Factor 1: Input Image Size
在ImageNet预训练模型的特征提取过程中,使用的标准图像尺寸为448×448,不考虑纵横比。 而使用VG检测的Bottom-up注意,默认尺寸为600×1000,同时保持宽高比不变。 因此,作者尝试了不同的组合,并在表4中报告了所有组合的结果。注意到,对于网格特征,较大的输入大小意味着VQA模型具有更多特征。
图5探索了预训练任务类型对最终表现的影响,同时将输入大小固定为600×1000。 结果报告在vqa-eval上。 将训练前的任务大致分为两种类型:对象检测(det)和图像分类(cls)
图5显示了属性损失权重对VQA准确性的影响。
表6:网格特征的概括。
表7 在VQA2.0测试设备集上具有网格特性的端到端训练的VQA模型的结果。
In this paper, we revisit grid features as an alternative to the widely used bottom-up region features [2] for vision and language tasks. We show they can in fact achieve on-par results in terms of accuracy over different VQA tasks and models and even on captioning. As a result of skipping the computationally expensive region-related bottlenecks in the pipeline, we see remarkable speed-ups – often more than an order of magnitude – to the existing systems that rely on regions. Our experiments show that rather than the ‘format’ of features (region vs. grids), the semantic content that features represent is more critical for their effectiveness. Such effective representation, per our experiment, can be achieved either by pre-training on an object and attribute datasets such as VG, or more importantly, by end-to-end training of grid features directly for the end-task. Note that while easy with grid-features, end-to-end training is not trivial with regions. Even with limited exploration in this direction, we already find that given more flexible design space, grid features pre-trained without any region-level annotations can in fact achieve strong performance on VQA. While we are aware that for tasks like referring expressions [19] where the output itself is a region, modeling region is likely unavoidable, but we hope our grid features can potentially offer new perspectives for vision and language research in general.
在本文中,作者将重新审视网格特征,以替代视觉和语言任务中广泛使用的自下而上区域特征。证明了他们实际上可以在不同VQA任务和模型甚至字幕上的准确性方面取得与众不同的结果。由于跳过了管道中与计算相关的昂贵区域瓶颈,因此,作者看到依赖于区域的现有系统的速度显着提高-通常超过一个数量级。实验表明,与特征的“格式”(区域与网格)相比,特征所代表的语义内容对其有效性更为关键。根据我们的实验,可以通过对对象数据集和属性数据集(例如VG)进行预训练来实现这种有效表示,更重要的是,可以直接针对最终任务对网格特征进行端到端训练。请注意,虽然使用网格功能很容易,但是端到端训练对于区域而言并非无关紧要。
作者提出了网格化的特征输入,速度要比区域特征要快,达到良好的效果,值得借鉴。