摘要
近年来,在深度学习的推动下,人工智能的三大方向(CV、Speech、NLP)取得了很多进展。在很多task上,AI的水平都达到甚至超越了人类baseline。
然而,在AI学术界存在的很多争论。其中有一个声音认为:现行的很多benchmark、challenge等竞赛的项目,都只是在一个特定数据集上进行着尽可能全面的“模式识别”,而不是在真正实现一个“强人工智能”。
现今很多Deep Learning模型也确实都是在把自己打造成一个“特征机器”,用各种难以解释的统计模型,将人工智能问题以拟合函数的角度来进行。
造成这个问题的很大一部分原因,就是因为现今数据集的目标大多是让AI学会“认识(Recognition)”,而非教会AI如何“认知(Cognition)”。
Li Fei-Fei团队认为:认知的核心任务不仅仅是进行识别,更重要的是要在一个视觉世界中进行推理:
当然,Li Fei-Fei团队主要的领域是Computer Vision,所以这里提到的是visual world。但是这个论点在其他领域中也是成立的。
例如在自动问答(Question Answering)领域,很多人将这个任务拆解成为通过ranking算法对经过retrieve得到的candidate answer进行排序的任务。或者直接利用大量经过低维度特征抽取(Word Embedding等)后的数据训练的生成模型来逼近答案数据的真实分布,从而以生成的方式教会AI如何直接“说出”答案。
但事实上,这些算法的核心思想仍然是对模型的拟合和对损失函数的优化。距离“强”智能、和“机器认知”还有一定的距离。
想要在认知任务上取的成功,则势必要对数据进行细粒度、广范围的标注。这样模型才能利用这些数据去理解对象之间的关系(relationships)、交互(interactions),甚至是理解整个世界。
这种对认知能力的处理,能让复杂问题的解答成为可能。
例如当输入一张图片和一个问题“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.”
但如果模型能够由更深层次的理解,显然能够根据图片中物体之间的关系,产生出更丰富的描述语句。
作者认为,想要让图片理解的更透彻,必须要在现有的数据集中添加三个要素:
正是出于这个意图,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”莱索,这些连接对象的关系例如sits_on(man, bench), in_front_of(man, river)和sites_on(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
则包含了两个对象:man
和fire 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 man
和fire 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
, who
和why
。例如在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能力。
3. Related Work
这一节中,作者介绍了一些数据集和model。
3.1. Datasets
下面的表格介绍了一些现有的数据集与Visual Genome的对比。
Caltech 101是最早的人工构建的数据集之一。它包含了101个对象类别。每个类别包含了15-30张图片。它的最大的问题在于图片缺乏varibility。Caltech 256将类别增加到了256种,并且弥补了Caltech 101的一些缺点。然而每一个类别内的样本数量仍然比较少。LabelMe的每一个类别包含了多个对象。同时还提供了一个用来让别人标注的web接口。这个接口能够用来帮助构建image segmentation的数据集。Lotus Hill dataset包含了对象(vehicles, man0made objects, animals, etc.)的垂直分解(hierachical decomposition)和segmentations。但是数据集中只有一小部分可以免费使用(freely available)。SUN与LabelMe和Lotus Hill类似,也是一个目标检测的数据集,只是数据量更大。80 Million Tiny Images则是一个更大的数据集,它包括了使用WordNet synsets作为query而检索到的小图片(32×32 pixels)。不过由于这个数据集没有经过人工验证,所以包含了一些错误。YFCC100M则是另一个非常大的数据集,包含了100 million张图片,它包含了人工和机器生成的tags。
Pascal VOC 将研究领域从分类推向到物体检测。其中包含了20个semantic categories和11,000张图片。ImageNet则使用了WordNet的synsets使用众包的方式拿到了14 million张图片。 并由此产生了ILSVRC Challenge,其中包括好多Computer Vision任务。同时,ILSVRC和PASCAL都提供了针对目标检测、图像分类、图像分割、人类检测(person layout)、动作分类(action classification)等任务的基准测试。MS-COCO数据集包含了328,000张图片和对应的描述语句,以及对80个对象类别的segmentation。曾经最大的基于图像的QA数据集:VQA包含了204,721张图片。每张图片都配有三个question-answer对。 他们收集了一个包含614,163个freeform question和6.1M个ground truth answers(每个问题有10个answers),并且提供了一个baseline方法。
Visual Genome旨在抹平这些数据集之间的鸿沟,不但收集了大量图片种对象的标注,同时还包括了scene graphs,region descriptions和针对image regions的question answer pairs。每张图片平均包括35个objects,要比其他数据库高出一个数量级。同时每张图片还包括了平均26个attributes和21个relationship。最后,相对于其他VQA数据集,这个数据集种包含了1.7 million的question answer pairs。
3.2. Image Descriptions
Visual Genome 的一个主要贡献是对一张图片中的多个区域编写的描述。但除了Visual Genome以外,还有其他一些数据集有类似的功能。这些有图片描述的数据集主要可以分成两类:检索经人工生成captions得到的、和直接生成全新的captions的。
第一类数据集通常会使用一个similarity metrics来评价图片特征和对应的句子。另一种方法则是将句子和图片投影到一个公共的向量空间或者三元组的空间之中。第二类方法通常使用RNN来生成全新的caption。最新的工作也用到了visual attention模型。
这些方法最大的缺点就是,生成的caption通常只描述了图片中的一个方面。这个问题在Flickr 30K和MS-COCO中更为严重。这些数据集通常只会标注非常general的内容,所以会有大量的冗余(多张主体类似,但细节有区别的图片通常标注的caption都差不太多)。这些图片通常只会关注于图片的主体区域,忽略图像中其他的区域和之间的交互信息。
而Visual Genome则收集了不只是sene-level的描述信息,还收集了大量更低level的描述。
3.3. Objects
目标检测是CV领域中一个最基础的task。应用范围从照片软件中的人脸识别,到自动驾驶系统中识别其他车辆。这需要将object分类到不同的category,并且在图像中定位到特定对象。
Visual Genome将对象视为用来构建视觉场景(visual scene)的核心的组件。之前的数据集主要是进行人脸识别和行人识别。PASCAL VOC和ILSVRC则是将研究拓广到目标检测。但是这些数据集中的图像比较符号化,而且并没有捕捉到这些对象经常出现的场景的原本特质(原句:But the images in these datasets are iconic and do not capture the settings in which these objects usually co-occur)。为了解决这个问题,MS-COCO标注了真实世界中的一些句子,来捕捉对象的上下文信息。然而MS-COCO并没能描述图片中所有objects的信息,它们只包括了80个对象类别。
在现实世界中,这些已经存在的数据集中的图片都包含了不知一个对象类别。Visual Genome的任务就是去收集图像中出现的所有视觉元素(visual elements),并且产生了33,877个不同的categories。
3.4. Attributes
Attributes的出现能够让我们来描述、对比并且更容易地分类对象。尽管有一些object之前没有见过,但是由于attribute的存在,使得我们能够推断出它的信息。
Attribute被定义成部位(e.g. "has legs"),形状(e.g. "spherical")或者材料(e.g. "furry"),它能够用来将对象分配到新的类别中。Attributes也能在fine-grain recognition任务中有很好的作用。
在Visual Genome中,作者使用了一个泛化的形式(generalized formulation),但同时又将其扩展成为一种基于对象而非图像的attributes。同时还扩展了多种类型的attributes,例如尺寸(e.g. "small"),姿势(e.g. "bent"),状态(e.g. "transparent"),感情(e.g. "happy")等等。
3.5. Relationships
关系抽取是NLP和information extraction中一个传统的任务。有基于句法特征的、依存树的、神经网络等方法。它们被用来在句子中抽取两个实体之间的关系。然而在CV领域,很少有工作研究去predicting relationships。但事实上,relationships常常被“间接”地用在其他CV的task中。为对象之间关系进行建模能够improve到场景分类(scene categorization),而对象之间的三维空间信息能够帮助物体检测。一对对象之间相互的形容词和介词能够用来对视觉关系(visual relationship)进行建模,并且能帮助object localization。
在很多以前的视觉认知(visual congnitive tasks)的任务上,Relationship也展示了它们的作用。通过relationship的意义空间(meaning space),能够提升从图像到句子之间映射的性能。
Relationship在结构化表示任务中被称为scene graph。其中带有attribute的结点是对象,而对象之间的relationship则是边。这种表示方式能够用来从图像产生句子,并且帮助图像搜索。Visual Genome中使用了与这个scene graph类似的表达方式,并且将之前其他的工作都考虑其中。
近年来,relationship以针对对象之间关系的QA的形式再一次被人们所关注,这些问题询问两个对象之间是否涉及到了某种关系。例如“do dogs eat ice cream?”。这种关系是高阶认知任务中所必备的。作者们也收集了大量的数据来尝试通过切实理解对象之间的相互作用来提升一些任务的性能。
3.6. Question Answering
VQA任务是一个最近被提出的除了对象识别和图像标注以外,用以测试计算机视觉系统理解图像能力的标准任务。最近一段时间有一些VQA benchmark任务被提出。DAQUAR数据集是第一个toy-sized QA benchmark。它基于NYU Depth v2室内场景(indoor scene)的RGB-D图片。而最新的数据集,例如收集了QA pairs的MS-COCO,是通过NLP工具自动生成、或者由人工编写的。
之前的数据集中,大多数问题都只是基于简单识别的任务。而且识别的物体都是图片中的主体部分。而且答案通常都非常短。例如DAQUAR中任务的90%的回答,和VQA数据集中89%的答案都是只包含了一个dancing的对象名、属性名、或者数量词。这些限制了它们的多样性,而且会难以抓住图像中的长尾信息。
给定一些可用的数据集,即可以用一些模型来处理QA任务。这些模型从SVM分类器和概率推断,到循环神经网络和卷积神经网络。Visual Genome的目标是去通过多种多样的问题类型和很长的问题答案来捕捉图片中的细节。这些问题应该能覆盖很多视觉任务,包括最简单的感知,到复杂的推理。
Visual Genome中的QA数据集包括了1.7 million QAs,目前是最大的数据集。
3.7. Knowledge Representation
视觉世界中的知识表达是一种能够用来处理从动作识别到普通QA等视觉任务的基本能力。然而,要回答“想要了解整个物理世界所需要直到的知识的下限是什么”(what is the minimal viable set of knowledge needed to understand about the physical word)仍然是一个很难的任务。而在后续的研究中发现,概念和它们关系的基本元素之中,确实存在多元化的表示。(原句:It was later proposed that there be a certain plurality to concepts and their related axioms)。这些工作被用来对物理过程进行建模,或者将一系列动作建模成故事脚本:这两个工作都不能使用单独的一张图片来进行描绘,但对图片中的故事来说至关重要。
更近的工作,NELL通过从网页上学习基于概率的霍恩子句。DeepQA则提出了一种使用了100中不同技术的概率模型来解决QA问题。其他方法诸如将马尔科夫逻辑网络(Markov logic networks)作为知识表示来在知识库的构建过程中进行统计推断。
Visual Genome的工作最类似于利用图像中的relationship来学习common-sense。我们可以将Visual Genome的scene graph理解成为一张图像的密集(dense)的知识表达。这类似于NLP中的knowledge base。
4. Crowsourcing Strategies
Visual Genome实际上是通过Amazon Mechanical Turk(AMT)上的众包工人们收集并且验证的。这一节中将会介绍构建这个数据集的pipeline。其中的每一个组件(region descriptions, objects, attributes, relationships, region graphs, scene graphs, questions and answers)都包含了很多个task stages。作者们使用了多种不同的策略来确保数据的准确性并且增加每一个组件的diversity。
4.1. Crowd Workers
Visual Genome使用了Amazon Mechanical Turk(AMT)作为标注的主要来源。大约33,000位不同的worker参与到了数据集的标注中。这个数据集经过6个月的收集,和长达15个月的迭代测试。大约在AMT上启动了800,000个Human Intelligence Tasks(HITs)。
(其他统计略)
4.2. Region Descriptions
Visual Genome的主要目标是让认知CV任务的研究成为可能。想要在图像理解上更进一步,就需要研究图像scene graph表达上的各个对象之间的relationship。然而,作者们发现,如果直接让woker标注scene graph,那么数据就倾向于变得非常简单。这样会经常出现一些常见的标注,例如wearing(man, shirt) 而不是图像中的主要物体。
为了克服这个问题,作者们发现,如果让worker直接用文本描述图片,那么worker倾向于从图片中的主体部分开始写描述,然后一个接着一个地描述其他部分。
当一张全新的图片进入这个pipeline之后,它会被送给第一个worker进行标注。他会先话三个bounding boxes,然后对区域内的内容写三个descriptions。接下来图片会继续送到另一个worker来进行跟之前类似的标注。Workers被明确地鼓励去写之前没有写过的description。这个过程将会被不断重复,直到每张图片有50个区域进行了人工标注。为了防止workers们浏览之前标注过的全部description,只选择top 7个最相近的description。
Visual Genome通过BLEU来判断标注description之间的相似性。并且需要避免标注与下面两类数据相似:
最后,作者要求workers在画bounding boxes的时候必须满足一个要求:coverage(覆盖)。也就是说,包围盒必须完整地覆盖了描述中提到的所有对象。下图是一个标注的例子:
4.3. Objects
一旦一张图片中有50个区域被标注了description,下一步就是从描述中抽取visual objects。每一个描述都会被交给一个众包worker,他需要基于描述文本和图片包围盒中的事实来标注其中的object。
例如上面的Figure 4. 有这样一句描述“Woman in shorts is standing behind the man”。 一个worker应该能从其中抽取三个对象:woman, shorts和man。然后worker应该对其中的每一个object都画一个bounding box,并且要求这个包围盒满足两个条件:coverage和quality。Coverage和之前提到的要求一样,而quality则是指包围盒应该尽可能地紧密围绕着object,甚至严格紧密到“如果长款再减少1个像素,就不满足coverage要求”。当然,一个像素对于worker来说太难了,所以这个要求被放宽到了4个像素。
对于一张图片来说,不同的descriptions可能会用不同的词汇提到同一个object,例如man有时在另一个描述中被写成person. 所以可以通过这种方式来构建一个co-reference chains。也就是说,当每一个region description传输到一个worker时,他能看到一个之前产生的objects作为建议。这就使得worker可以选择一个之前画过的bounding box,并且标记成为了man,而不再需要新画一个box并且标记称为person。
最终,为了加快worker完成这项任务,作者们使用了斯坦福的dependency paeser来自动从句子中抽取名词,并传递给worker作为suggestions。然而parser总是设法去发现尽可能多的名词,所以有时候它会忽略掉复合名词。所以作者们没有完全依赖于这个自动的方法,而是将这个parser和众包任务相结合,在不损失精度的情况下尽可能增加效率。
4.4. Attributes,Relationships, and Region Graphs
一旦每个region description中的所有对象都被抽取出来,接下来可以去抽取这些region中所描述的attributes和relationships了。作者将每一个region description和在其中抽取的objects发给每一个worker,并且要求他们基于description,为objects添加一些attributes,或者将两个objects通过relationships连接起来。例如从描述“woman in shorts is standing behind the man”中,worker将会抽取出object "woman"的一个attribute "standing"。以及两个关系 in(woman,shorts) 和 behind(woman,man) 。然后将每一段region description中抽取到的objects、attributes和relationships拼在一起,组成一个region graph。有一些描述,例如“it is a sunny day”并不包含任何对象,所以也就没有对应的region graph。Workers被要求对这些description不要生成任何graphs。最后,将所有的region graphs通过在不同的region graphs中出现的co-referenced objects连接在一起,组成了scene graphs。
4.5. Scene Graphs
Scene graph就是从所有region descriptions抽取到的region graphs连接在一起得到的。作者将region graphs中表示相同object的结点merge在一起。例如,在两个不同的region graphs中出现的man和person可能表示了图片中的同一个对象。作者是通过两个bounding box之间交集超过并集的90%来判断是否是同一个对象的。然而这种假设可能会产生一些false positive。所以在merging两个对象时,会要求worker做一个确认,来判断这对objects是不是真的几乎重叠,并且确定是同一个object。同时,这里还对同一个object的多个bounding box做了一个combine:当两个bounding box的overlap的程度超过0.9,就将他们的交集作为新的bounding box。下图解释了这个过程:
4.6. Questions and Answers
为了产生QA pairs,作者要求AMT的workers针对一张图片去写一些questions和answers。为了确保质量,workers应该遵循下面的三条规则:
Visual Genome收集了两类QAs:freeform QAs和region-based QAs。对于freeform QA,要求worker要看图然后写八个关于这张图的QA pairs。为了鼓励diversity,作者强制workers在他们编写的8个pairs中必须包含至少6个Ws中的3个.对于region-based QA,要求worker基于给定的region写一个pair。所选的regions是那些拥有较大面积(通常超过5k像素)和用长短语描述(超过4个words)的。这将会用与标注8个freeform QAs相似的代价获得大约20个region-based pairs。宏观上来看,freeform QA更加diverse。而region-based QA倾向于用更低的代价获得更多factual QA pairs。
4.7. Verification
所以Visual Genome数据刚一完成标注就会立刻进入verification stage。这个stage将会帮助消除不正确的labeled objects, attributes和relationships。同时也会帮助删除一些QA pairs。这些QA pairs通常是“正确但是很模糊”(例如"This person seems to enjoy the sun.")、有主观色彩(例如"room looks dirty"),或者很武断的("Being exposed to hot sum like this may cause cancer")。
Verification通过两个不同的策略进行:majority voting和rapid judgements。数据集中的所有components都会用majority voting方法进行验证。即rang三个不同的workers来评价每个annotation并且基于它正确与否而投票。只有当最少两个worker认为它是正确的时候才会去加入到Visual Genome中。而rapid judgement方法只会被用来加速object的验证。(具体方法参考原文中所引用的论文)
4.8. Canonicalization
所有descriptions和QAs都是完全由worker产生的自由文本。对其内容没有任何限制(译注:词表可能会非常大)。例如,在标注过程中并不强制要求worker将man、person、boy等都统一标为man。为了减少歧义,作者将所有的objects,attributes,relationships和文本(region description 与QAs)中的名词短语都映射到了WordNet的synsets中。
例如,person,boy和man将会被分别映射到synset:person.n.01(a human being), male_child.n.01(a youthful male person)和man.n.03(the generic use of the word to refer to any human being) 。而刚好WordNet的层级结构使得这三种不同的表达最终都能整合到相同的概念person.n.01 (a human being) 上,这可以通过lowest common ancestor来实现。
(具体的mapping过程跟平常NLP的基本流程类似,就不赘述了)
(自动mapping的方法还是有可能产生一些错误,所以,again,又一次用到了AMT来纠正。此处矫正方法并不是直接让worker判断对错,而是将label和额外4个选项一起交给worker,让worker判断哪个更好)
5. Dataset Statistics and Analysis
5.1. Image Selection
Visual Genome数据集包含108,077张图片,它们是MS-COCO中的328,000张图片和YFCC100M的100million张图片的交集。这使得Visual Genome的annotations能用到YFCC的tags和MS-COCO的segmentations和全图标题(full image captions)。这些图像都是来自真实世界,没有抽象图标,而且是由Flickr用户上传的图像。
图像的分辨率从72像素宽到1280像素宽。平均宽度是500像素。如果使用跟ImageNet一样的方法,可以将Visual Genome的图像映射到972个ImageNet synsets中。而objects、attributes和relationships可以被mapping到超过18K个Network synsets中。
下面的图片显示了最常见的一些synsets:
在所有图片中,“ski”是最常见的synset(2612张图片)。然后是“ballplayer”和“racket”。Visual Genome偏向选择人的图片,不过这些图片内部的diversity也很大。
5.2. Region Description Statistics
Visual Genome中的一个主要组件就是region description。每张图片平均包括50个带有包围盒和描述短语的区域。下图是一个例子。
这张图只显示了50个description中的6个bounding box。这些描述表现出了很强的diversity,并且都能只关注在要给对象。
Region descriptions必须对所描述的个体对象有足够的特指(比如"A bag"),但是它们也需要足够的general来描述一个足够高层次的概念(e.g. "A man being chased by a bear")。定性地说,当一个region覆盖了足够大的面积的时候,它就倾向于general的描述。而当区域覆盖图片的一小部分的时候,就倾向于给出一个具体的描述。下图中展示了不同region的宽度和高度下的region的数量分布
从Figure 15 (a)中可以看出,大部分区域落在10%-15%的宽度。而有大量的区域覆盖了100%的图像宽度,这些区域通常是“sky”、“ocean”、“snow”、“mountains”等等。因为没法直接找到边界,所以就跨越了整张图片。Figure 15 (b)情况类似,但是不像宽度分布图那样有大量高度覆盖了整张图的情况。
下图展示了这些region description长度(word count)的分布。
Description的平均长度是5个words。最少1个词,最多12个词。下图是在region description中的最常见的短语,停用词已经被去掉了。
(后面的统计和实验实在太多了。。。。而且原文写的都很straightforward。。。我实在懒得翻译了了。。。就这样吧)
6 实验
到目前为止,我们已经介绍了Visual Genome数据集并分析了它的各个组件。 通过如此丰富的信息,可以解决许多感知和认知任务。 在本节中,我们的目标是使用尚未广泛研究的Visual Genome组件提供基线实验结果。
物体检测已经是一个研究得很好的问题(Everingham等人2010; Girshick等人2014; Sermanet等人2013; Girshick 2015; Ren等人2015b)。 类似地,区域图(region graphs)和场景图(scene graphs)已被证明可以改善语义图像检索(Johnson等人2015; Schuster等人2015)。 因此,我们关注其余组件,即属性,关系,区域描述和问题答案对。
6.3 生成图像的句子描述已经成为计算机视觉中的一项任务(Kiros等人2014; Mao等人2014; Karpathy和Fei-Fei 2015; Vinyals等人2015);然而,当前的最好的模型无法描述图像中捕获的所有不同事件,而只是提供图像的高级摘要。在本节中,我们将测试最先进的模型如何为图像细节添加标题。对于这两个实验,我们使用NeuralTalk模型(Karpathy和Fei-Fei 2015),因为它不仅提供了最先进的结果,而且显示出足够强大以预测简短描述。我们在视觉上训练NeuralTalk用于区域描述的Visual Genome数据集和用于完整句子描述的Flickr30K(Young等人2014)。由于在其他数据集上训练的amodel将生成完整的句子,并且不能与我们的区域描述进行比较(Chen等人2015),我们使用预定义的模板将我们的模型生成的所有区域描述转换为完整的句子(Hou等人,2002)。
Setup:对于训练,我们首先预处理区域描述; 我们删除所有非字母数字字符和小写字母,并从中删除多余的空格。 我们总共有5,406,939个区域描述。 我们最终得到了3,784,857个区域描述用于训练--- 811,040用于验证和测试。 请注意,我们确保来自同一图像的区域描述仅限于训练,验证或测试集。 我们把区域bbox提供给预训练的VGG 16层网络(Simonyan和Zisserman 2014)以获得每个区域的4096维特征向量。 然后,我们使用NeuralTalk(Karpathy和Fei-Fei 2015)模型来训练长期短期记忆(LSTM)网络(Hochreiter和Schmidhuber,1997),以生成区域描述。 我们使用rmsprop训练的学习率为0.001(Dauphin等人,2015)。 该模型在四天后收敛。
Testing:我们裁剪区域边界图像框ground truth并提取其4096维16层VGG网络(Simonyan和Zisserman 2014)特征。然后我们通过预训练的NeuralTalk模型提供这些向量以获得区域描述的预测了测试。
Results:表8显示了实验结果。我们计算了在生成的描述和它们的groundtruth描述之间的BLEU(Papineni et al.2002),CIDEr(Vedantam et al。2015a)和METEOR(Denkowski和Lavie 2014)得分(Chen et al.2015)。在所有情况下,在VisualGenome上训练的模型表现更好。此外,我们要求crowd workers评估生成的描述是否正确 - 我们分别获得了在Flickr30K和Visual Genome上训练的模型的1.6和43.03%。当模型训练我们的数据时,准确性的大幅提高是由于我们的数据集的特殊性。我们的地区描述较短,覆盖较小的图像区域。相比之下,Flickr30K数据是整个图像的一般描述,其中多个事件发生在图像的不同区域。对我们的数据进行训练的模型能够进行更有可能集中于所查看图像的特定部分的预测,而不是生成摘要描述。两种情况下客观上的低精度说明当前模型无法推断出复杂的图像。
图37 显示了区域的示例及其预测的描述。 由于许多例子都有简短的描述,预测的描述也如预期的那样短; 但是,这会导致模型无法为具有多个对象或具有独特对象的区域(即具有许多属性的对象)生成更多描述性短语。 虽然我们使用模板将区域描述转换为句子,但未来的工作可以探索更智能的方法来组合区域描述并生成将所有区域连接成一个连贯描述的段落。
图37通过在Visual Genome区域描述上训练的模型进行的区域描述生成实验的预测示例
第一列(左)中的区域准确描述了区域,第二列(右侧)中的区域不正确且与相应的无关区域
未来应用和方向:
我们分析了该数据集的各个组成部分,并提供了基线结果的实验,用于任务,如属性分类,关系分类,描述生成和问答。 但是,我们的数据集可以使用更多的应用程序和实验。 在本节中,我们将介绍数据集可以启用的一些潜在应用程序。
密集图像标题我们已经看到了许多图像标题文章(Kiros等人2014; Mao等人2014; Karpathy和Fei-Fei 2015; Vinyals等人2015),他们试图用单个标题描述整个图像。 但是,这些标题并没有详尽地描述场景的每个部分。 Visual Genome数据集启用的此应用程序的自然扩展是能够创建描述场景各个部分的密集caption模型。
图像理解虽然我们已经看到了大量的图像字幕(Kiros等人,2014)和问题回答(Antol等人,2015)模型,但是在创建更全面的评估指标以衡量这些模型的表现方面几乎没有什么工作。 此类模型通常使用BLEU,CIDEr或METEOR以及其他类似指标进行评估,这些指标无法有效衡量这些模型对图像的理解程度(Chen et al.2015)。 Visual Genome场景图可用作图像理解的度量。 生成的描述和答案可以与图像的ground truth场景图匹配,以评估其对应的模型。
整理
说了这么多,其实Visual Genome就是一个结合了多种信息源的数据集。其中包含了很多很多图片(108,077张),和很多region description和object和attribute和relationship和QA pairs。其中图像是MS-COCO和YFCC100M的交集,这就使得这些图片能同时使用MS-COCO和YFCC100M的部分标注信息。
想要了解这个数据集的结构,就要从数据集的产生开始说,作者使用亚马逊的众包标注服务,构建了一整套pipeline。标注过程分为多个stage,每一个stage都是又众包worker完成的简而言之,就是以下的过程:
不完全转载,加入了原论文后面部分的翻译。
转载自:http://friskit.me/2018/02/09/vqa-visual-genome-dataset/
感谢原作者 Botian Shi分享,他还有很多文章顶~