VQA - Visual Genome 浅析

最近准备研究VQA方向,于是对相关的数据和工作做了一些survey。

对于任何一个AI相关的任务,最重要的一点就是数据。由斯坦福Li Fei-Fei(Paper中就是这么写的,而不是Fei-Fei Li)提出的Visual Genome就是一个非常重要而且非常好用的数据集。

这篇博客将会整理总结Visual Genome这份数据集的官方Paper。其中融入了我的一些理解,如果有错请帮忙勘误,并多多包涵。谢谢


论文名称:Visual Genome

副标题: Connecting Language and Vision Using Crowdsourced Dense Image Annotations.

作者: Ranjay Krishna · Yuke Zhu · Oliver Groth · Justin Johnson · Kenji Hata · Joshua Kravitz · Stephanie Chen · Yannis Kalantidis · Li-Jia Li · David A. Shamma · Michael S. Bernstein · Li Fei-Fei

地址: https://arxiv.org/abs/1602.07332

摘要

近年来,在深度学习的推动下,人工智能的三大方向(CV、Speech、NLP)取得了很多进展。在很多task上,AI的水平都达到甚至超越了人类baseline。

然而,在AI学术界存在的很多争论。其中有一个声音认为:现行的很多benchmark、challenge等竞赛的项目,都只是在一个特定数据集上进行着尽可能全面的“模式识别”,而不是在真正实现一个“强人工智能”。

现今很多Deep Learning模型也确实都是在把自己打造成一个“特征机器”,用各种难以解释的统计模型,将人工智能问题以拟合函数的角度来进行。

造成这个问题的很大一部分原因,就是因为现今数据集的目标大多是让AI学会“认识(Recognition)”,而非教会AI如何“认知(Cognition)”。

Li Fei-Fei团队认为:认知的核心任务不仅仅是进行识别,更重要的是要在一个视觉世界中进行推理:

Cognition is core to tasks that involve not just recognizing, but reasoning about our visual world.

当然,Li Fei-Fei团队主要的领域是Computer Vision,所以这里提到的是visual world。但是这个论点在其他领域中也是成立的。

例如在自动问答(Question Answering)领域,很多人将这个任务拆解成为通过ranking算法对经过retrieve得到的candidate answer进行排序的任务。或者直接利用大量经过低维度特征抽取(Word Embedding等)后的数据训练的生成模型来逼近答案数据的真实分布,从而以生成的方式教会AI如何直接“说出”答案。

但事实上,这些算法的核心思想仍然是对模型的拟合和对损失函数的优化。距离“强”智能、和“机器认知”还有一定的距离。

想要在认知任务上取的成功,则势必要对数据进行细粒度、广范围的标注。这样模型才能利用这些数据去理解对象之间的关系(relationships)、交互(interactions),甚至是理解整个世界:

To achieve success at cognitive tasks, models need to understand the interactions and relationships between objects in an image.

这种对认知能力的处理,能让复杂问题的解答成为可能。

例如当输入一张图片和一个问题“What vehicle is the person riding?”,机器不但需要识别图片中的对象,更要能识别出对象之间的关系:riding(man, carriage)、pulling(horse, carriage),最终才能产生正确的答案:“The person is riding a horse-drawn carriage.”

于是,Li Fei-Fei团队设计了这样一个数据集:它不但包括了图像本身,更包括了图像内对象之间的关系等众多数据(包括objects、attributes、relationship等)。并希望通过这些数据能够推动“认知”这一问题在CV领域的发展。

Visual Genome一共包括了108K张图片,平均每张图片内包含了35个object,和26个attributes,以及21对object之间的relationship pair

除此之外,作者们还将其中所有的object、attributes、relationships和在region descriptions与question answer pairs中的名词短语都映射到了WordNet synset上。从而让打通了从CV到Knowledge乃至NLP之间的连接通道。

1. 介绍

CV的最终目标是构造一台机器能够完全理解一个视觉场景:它应该能够识别物体(object detection)、描述他们的属性(describe their attributes),并且能够识别object之间的relationships。

对场景的理解将会帮助例如图像搜索、VQA、机器人的交互系统等。而想要达成这些成就,海量数据是必不可少的。

下图显示了现今的model能够识别出场景中的物体,但是还不能解释物体之间的交互和关系:

近年来,有很多利用“下一代数据集”来进行训练和测试机器进行认知场景理解(cognitive scene understanding)和推理任务(reasoning tasks)的工作。其中最著名的莫过于MS-COCO和VQA。

MS-COCO包括了300K张从Filckr上收集的真实图片。每张图片都对80个物体classes(仅当图中出现)进行了像素的segmentation。并且每张图片还包含了5个相互独立的、由用户产生的描述场景的句子

VQA则对MS-COCO数据标注了共计614K个与每张图像相关的question answer pairs。

这两个数据集对object detection、segmentation和summary-level image captioning和简单的VQA都很大的帮助。但用这些数据集训练的模型缺乏对场景内物体的更深层次的理解。

例如对上面那张图片,MS-COCO上的state-of-the-art的结果只能产生这种level的描述文本:“two men are standing next to an elephant.”

但如果模型能够由更深层次的理解,显然能够根据图片中物体之间的关系,产生出更丰富的描述语句。

作者认为,想要让图片理解的更透彻,必须要在现有的数据集中添加三个要素:

  • 一个从视觉概念到文本的基本信息
  • 对每张图片都包括对图片内多个区域的完整的descriptions和QAs的数据集
  • 对图片中的每一个元素都有的一个形式化的表述方式

正是出于这个意图,Li Fei-Fei团队构建了Visual Genome数据集。

Visual Genome数据集发布的第一个版本包括了108,077张图片。这些图片是YFCC100M和MS-COCO的交集。

而Visual Genome与其他传统数据集的主要区别,就是它将图片内对关系(relations)和属性(attributes)的标注看作是重中之重。

因为在图片场景的高层次理解问题中,识别物体和他们之间的关系尤为重要,甚至会影响对图像解读的正确性。例如“a dog chasing a man” v.s. “a man chasing a dog”。

所以,为了完成“从视觉概念到文本的基本信息”这个任务,Visual Genome数据集首先对图像内对象的关系和属性有着详尽的标注。

除此之外,一个图像场景内应该包含了非常丰富的信息,显然不能只用一句话概括。而现存的诸如Flicker 30K和MS-COCO等数据集只关注在high-level description(尽管MS-COCO为每张图片提供多个description,但这些description是由多个不同用户提出的high-level description)。

所以,Visual Genome提供了对每场图片中场景的完整的description set。同时,受到VQA数据集的启发,基于图片的descriptions,对每张图片平均标注了17个question answer pairs。这使得同时利用NLP领域的description和CV领域的图像进行联合训练,来解决region-based question answers问题成为可能。

由于标注数据跨越了NLP(descriptions)和CV(images)两大领域,所以Visual Genome成为第一个对图像和文本提供了形式化表述的数据集。

例如对于上面的图片,可以将“holding”关系与“woman”和"food"对象形式化地表述为holding(woman,food)

在这个框架下,可以将所有的object和他们之间的关系组成一个"Scene Graph"。

除此之外,所有的图像中的objects、attributes和relationships都被映射到了一个WordNet ID(即synset ID)中。这个映射将Visual Genome中的一切内容关联到了一起,甚至可以用来在多张具有共性的图片之间训练与上下文有关的模型。

下图是一个Visual Genome的典型例子。

在这个例子中展示了三个区域的文本描述(A man and a woman sit on a park bench along a river; Park bench is made of gray weathered wood; The man is almost bald)和他们对应的区域图(region graphs,即每句话上面的那个小graph)。

如果将图中所有的概念用关系连接起来,会得到一个描述整张图片的graph。例如对区域描述“a man and a woman sit on a park bench along a river”莱索,这些连接对象的关系例如sitson(man, bench), infrontof(man, river)和siteson(woman, bench)等。

下图是另一个例子

下面的graph是这张图片的scene graph。其中包含了很多objects (child, instructor, helmet, etc),这些object都被用bounding boxes标记出来(图片中没显示而已)。这些objects拥有它们自己的attributes: large, green, behind, etc. 最后,这些objects通过他们之间的关系被连接在一起:wears(child, helmet), wears(instructor, jacket), etc.

2. Visual Genome Data Representation

Visual Genome数据集中包括了七个主要的组成部分(components): region descriptions, objects, attributes, relationships, region graphs, scene graphs,和question answer pairs.

作者首先收集了大量的描述文本和QA pairs,而且这些原始文本数据没有长度和词表限制。然后从description文本中抽取objects, attributes和relationships。然后将这些objects, attributes和relationships组成scene graphs, 以此来作为整张图片的形式化表示(formal representation)

下图是一个例子

Visual Genome数据集中的每一张图片都包括一些区域描述(region descriptions),这些description用来描述图片的局部。同时作者还收集了两类question answer pairs (QAs): freeform QAs和region-based QAs.

其中freeform QAs就是指针对整张图片,询问多个区域或者全局的信息。而region-based QAs就是指,问题的答案往往只隐藏在特定一个区域中。

2.1 Multiple regions and their descriptions

对现实世界中的图片来说,一个简单的总结句并不能完整的描述图片和其中各个对象之间的交互关系。为了弥补这个问题,最自然的方法就是为图片中的每个区域都写一些描述信息。

在Visual Genome中,作者收集了不同的人工编写的图片区域描述(image region descriptions),并且将每个区域都用包围盒(bounding box)定位。例如下图:

这张图显示了图片中被包围盒定位的三个区域和对应的人工编写的descriptions。

注意:这些描述有的只包含对特定对象的attribute,例如yellow fire hydrant。而有些则包含了对象之间的交互信息,例如man jumping over fire hydrant则包含了两个对象:manfire hydrant

这种“冗余”标注的特性,使得将整个图像的各种信息连接成一个scene graph成为可能。

2.2 Multiple objects and their bounding boxes

数据集中的每张图片平均包括了35个objects,并且都用一个紧密的包围盒指出其位置(对图片的bounding box标注如下图)。除此之外,每一个object都被映射到了WordNet中的synset ID。

比如说,man 被映射到了 man.n.03 (the generic use of the word to refer to any human being)。 而person 被映射到了person.n.01 (a human being)。而这两个概念虽然都可以映射到person.n.01上(因为它是man.n.03的上位词),但作者并没有将这些synsets做standardize的操作。因为作者认为可以通过WordNet Ontology很容易地完成这项任务。

也就是说,图片中对object的标注可能出现“一物多名”的情况。(例如 man, person, human等),但这个问题可以用WordNet Ongology解决。

2.3 A set of attributes

Visual Genome中的每幅图像平均包括了26个attributes。每一个对象都有0到多个attributes与它们相连。

这些attributes包括了color (e.g. yellow ), states (e.g. standing ), etc. 对属性的标注如下图:

就像从region description中抽取object的方法一样,作者也从描述中抽取了这些objects的attributes。

例如在上图中,从"yellow fire hydrant"抽取出attribute yellow for the fire hydrant。并且与object一起,映射到了WordNet上。例如 yello被映射到了yellow.s.01 (of the color intermediate between green and orange in the color spectrum; of something resembling the color of an egg yolk).

2.4 A set of relationships

Relationships将两个object连接在一起。这些relationship可以是actions (e.g. jumping over), 相对空间位置(e.g. is behind), 描述性的动词 (e.g. wear), 介词 (e.g. with), 比较级 (e.g. taller than), 或者介词短语 (e.g. drive on). 例如,从region description "man jumping over fire hydrant"中,可以抽取两个objects manfire hydrant之间的relationship jumping over(如下图)

这些关系连接着“主语(subject)”和“宾语(object)”。在这个case中,主语是man,他在执行relationship jumping over,而宾语则是fire hydrant。每一个relationship也都映射到了一个WordNet的synset ID上。例如jumping对应到了jump.a.1 (moving forward by leaps and bounds)

平均来说,每张图片包含了21个relationships。

2.5 A set of region graphs

通过对每一个region description抽取object, attributes和relationships,并将它们整合在一起,可以得到对每一个region的graph representation。形如上面Figure 4的“region graph”部分。

2.6 One scene graph

Region graph能表示一张图片中的几块区域的信息,作者进一步将这些region graphs组成了一张用来表示整张图片信息的scene graph(如上面的Figure 3)。

Scene graph是一张图中包含了从region description中抽取的所有objects, attributes和relations的并集。

做到了这一步,就可以将图中的多个粒度的信息整合到一起。

例如在Figure 4中,最左边的region description告诉我们“fire hydrant is yellow”,而中间的region description告诉我们“man is jumping over the fire hydrant”,将它们放在一起,我们就能知道“man is jumping over a yellow fire hydrant”。

2.7 A set of question answer pairs

在Visual Genome数据集中,主要包括两种形式的QA:基于整张图片的freeform QAs,和基于特定图片内特定regions的region-based QAs

对于每张图片,作者收集了6中不同类型的question:what, where, how, when, whowhy。例如在Figure 4中,Q. What is the woman standing next to?是一个freeform QA。上面问题类型列表中的每一个问题在每张图片至少被提出一次。

region-based QAs则是通过给定region description提出。例如对于region yello fire hydrant,将会得到region-based QA: Q. what color is the fire hydrant? A. Yellow.

Region based QAs完全基于单一description,所以它能够被用来单独研究模型针对特定区域的region description进行QA能力。

Related Work

Still in progress...

Friskit

继续阅读此作者的更多文章