视觉想象力是人类与生俱来的。AI能有类似的能力吗?比如:给定一个故事情节,如何让机器发挥想象力,“脑补”画面?看看AliAILabs感知实验室的同学是如何解决这个问题的。一、背景——视觉想象1.1什么是视觉想象?视觉想象是人脑的一项重要功能。它可以将一些抽象的概念形象化,然后用这些视觉想象来思考。如图1最左边一栏所示,当我们想到:一只黄色的鸟,翅膀棕白相间,喙尖尖的,我们脑海中可能会想象出一幅黄色鸟的画面。这是视觉想象。我们的目标是让AI逐渐具备这种能力。图1:第一行文字描述的AI“想象”的图片[1]。1.2人工智能对视觉想象力的影响?如果人工智能具有视觉想象力,它将更好地理解人类的需求,并对一些传统行业产生颠覆性影响。这里有两个例子。图2是语义图像搜索领域的一个案例。我们在google中搜索manholdingfishandwearhatonwhiteboat,可能返回的结果质量为(a),引擎只是零星地理解我们的搜索意图。而当机器具有一定的视觉想象力时,它的搜索结果可能是(b),这将大大提高我们的信息检索效率,而这些信息是承载在图像中的。图2:具有视觉想象力的AI将对语义图像搜索产生重要影响[2]。另一个例子是语义图像生成领域。试想一下:当我们用语言描述一个场景时,机器会利用其庞大的经验数据自动生成场景。如图3所示,如果我们描述一个具有不同外貌特征的人,机器会自动想象出这个人的外貌,这将颠覆刑侦等领域(比如被害人对罪犯的描述)。图3:AI拥有视觉想象力后,将对语义图像的生成产生重要影响[3]。2.选题——站在巨人的肩膀上2.1领域的痛点在哪里?我们将重点转移到文本到图像合成领域。在该领域,针对简单的单一主体的图像生成,例如:鸟、花、人脸等,基于GAN思想的一系列算法已经取得了一些可喜的结果,如图1所示。但是,当文本中包含多个相互关联的对象时,生成的效果会大大降低,如下左图所示。这主要是由于过于灵活、非结构化的文本造成的。图4:当前的生成算法很难生成包含多个交互的对象,例如左侧的StackGan算法[4]。右边的sg2im算法在一定程度上有潜力解决这个问题[5]。因此,约翰逊等人。来自斯坦福大学CV组的人在CVPR2018[5]中提出了将text-to-image的生成拆分成几个更可控的子问题的想法。这使用了他们在CVPR2015中提出的一种新的场景表达方式——场景图(SceneGraph)和语义合成(SemanticLayout)[2]。图5:场景图和语义构成图[6]。场景图是包含三个元素的有向图:实体、属性和关系。它可以看作是语义模式下的结构化表达。场景图中的每个实体在图像中都会有一个对应的bbox。如果不看图片本身,只看图片中所有的bbox就构成了一张图片的语义合成,所以语义合成可以看作是一种具有普遍意义的图像的结构化表达。表1:结构名称及其模态对照表。2.2如何解决?——我们眼中的大框架站在大牛的肩膀上。在我们看来,从文本到图像的生成大致分为以下几个子任务:表2:从文本生成图像任务任务列表中拆分出来的子任务。为了达到信息可控生成和逐步升级的目的,整个过程大致可以分为以上几个子任务。每个子任务都有相应的工作,这里不再详述。2.3论文的重点论文的重点是子任务3:如何从场景图生成场景构图?这个任务很重要,因为从这个任务出发,可以将结构化语义状态的信息“想象”为图像的结构表达,是赋予机器视觉想象力的关键。3.论文的动机和贡献3.1当前问题★3.1.1最近工作和组合爆炸问题图6:sg2im使用图卷积网络,将整个场景图作为输入生成语义合成整体[5]。最接近的工作来自StanfordJohnson等人发表的sg2im算法[5]。在CVPR2018中(如图6所示)。他们首先使用图卷积网络为每个实体嵌入特征,然后使用这些特征通过对象布局网络生成语义组合。他们采用的生成方式是从场景图整体到语义构成整体。场景图作为一个整体将包含多个实体和关系。这些实体和关系的组合形成了一个具有很多变化的场景图,使得模型很难有效地表达如此多的变化,最终导致语义组合学习效果不理想。我们称之为组合爆炸问题。★3.1.2语义组合评价指标的缺失另一大挑战是:如何直接自动评价语义组合生成的质量?以往的工作大多采用间接自动评价的方式对语义合成生成的图像进行评分,使用Inceptionscore或Imagecaptioningscore。这样做,无法评估语义组合的生成。很大程度上只是评估最终的GAN网络是否有效。许多作品还加入了人工评分。虽然给出了评分结果,但几乎不可能完全复现,这极大地阻碍了该领域的发展。3.2Seq-SG2SL的动机Seq-SG2SL是我们提出的从场景图生成语义组合的框架,用于组合爆炸问题。本节不讲框架本身,先讲个故事。故事背景:教师需要通过看建筑图纸来教学生如何建造建筑物。图7图7:上图为建筑图纸示意图,下图为完成房间示意图(图片来自网络)。A老师教快课。他指着一叠厚厚的图纸对同学们说:“看,这是以前的图纸,上面有按照图纸建造的楼房的地址。如果你拿着这些图纸看那些楼房,应该能够体会到这栋楼是什么,你是怎么建起来的,以后我给你一个新的蓝图,你就能盖楼了。同学们按照A老师的方法,纷纷去学。A老师在考试的时候,发现几乎没有同学能按照图纸搭建大楼。A老师气呼呼地说:“这门课上得快,可这些学生太无知了,他们不会举一反三。”B老师教慢课。他对学生们说:“我给你们画图,今天教你们怎么建客厅,明天教你们怎么建厨房。我们的目标是先学会各个房间的施工套路,然后再教。”你怎么把它们串起来搭建一个完整的房间。最后,我会教你如何搭建一个建筑物。看看这些图纸,别着急,我会告诉你每个部分对应于实际建筑的哪一部分,虽然整栋楼看起来不一样,但是这些部分很常规,掌握了之后就可以盖楼了。”果然,在B老师的悉心指导下,同学们都很快通过了考试,就连笨笨的小元芳也学会了看图纸、盖房子。.故事中,A老师的学生虽然是快班,也很聪明,但是建筑千变万化,学生很难通过这些图来学习共性。至于B老师的学生,虽然整体学习速度比较慢,记忆力也不好,但是B老师通过教授一些盖房子的基础知识,把这些共同点教给了学生。结果笨鸟先飞了。场景图好比建筑图,语义组合好比建筑物。A老师的教学方式其实遇到了组合爆炸的问题。B老师通过教授最基本的搭建操作,避免了组合爆炸的问题。受此启发,我们提出了一个新的视角来看待从场景图生成语义组合的问题。语义构成是一个结果,我们要学习的不应该是直接的结果,而是产生这个结果的过程。通过学习更多的基本单元来解决组合爆炸问题。3.3SLEU的动机为了解决缺乏直接自动评估指标的问题,我们提出了一个新的指标:语义布局评估替补,简称SLEU。该指标的灵感来自于著名的机器翻译指标BLEU。其背后的逻辑是这样的:1)为了完成自动化评估,必须要有一个真值。2)SLEU旨在衡量生成的语义组合与基本事实之间的差异。因此,遵循以上逻辑,我们对比了机器翻译指标BLEU的设计,将BLEU的基本概念从1D扩展到2D,提出了SLEU。3.4论文的贡献1)提出了一个新的框架Seq-SG2SL,将语义合成视为一系列过程叠加的结果。与以前的方法不同,人工智能学习生成过程而不是结果。这种序列到序列的学习方法可以解决组合爆炸问题。2)提出了一种直接自动评价语义合成生成质量的指标SLEU,将解决该领域结果的可重复性问题,为不同合成生成方法的直接比较提供依据。4.方法简述4.1Seq-SG2SL框架图8:Seq-SG2SL框架。什么决定了语义组合?关系。因此,场景图中的关系三元组(subject-predicate-object)决定了语义组合中主宾对应的两个bbox。subject和object对应的bboxes分别称为visualsubject和visualobject。因此,生成语义组合的过程可以分解为一系列基本动作段,每个基本动作段称为砖动作代码段(BACS)。每个BACS执行的操作是将一个视觉主体和一个视觉客体放入语义组合中,分别调整它们的类别、位置和大小。每个BACS都由其在场景图中对应的关系三元组精确确定。关系三元组是主谓宾顺序连接,三个词组成一个基本的语义片段,我们称之为语义片段(SF)。如图8,treebysidewalk是一个SF,图中对应的BACSSequence所示的10个代码(c0002...h14)是一个BACS,这10个代码的执行结果就是树中的树最右边的布局图和sidewalk两个bboxes。一系列的SF串联在一起,形成一个SF序列(SFsequence)。该SF序列对应于将对应的各BACS串联而成的序列(BACS序列)。这两个序列就像两种语言。我们需要做的就是让机器学习从SF语言“翻译”成BACS语言。当然,为了保留场景图中的有向图信息,我们额外维护了一个节点序列(Nodesequence),主要是判断序列中哪些实体属于同一个实体,直接将场景中的实体联系起来graph通过节点序列的属性传递给语义构成中的bbox。这样,整个Seq-SG2SL框架就灵活多变了。回想一下,这个过程是不是像我们之前讲过的老师教学生根据设计图盖房子的故事。我们在设计图(场景图)中看到了一个部分(一个SF),然后我们去学习建筑中对应的部分(语义布局)是如何构建的(学习一个BACS),最后综合起来教给学生build整个建筑。这是不是很直观,符合客观规律?我们不要求我们的学生(模特)是天才般的,但我们需要我们的老师传授方法才能取得好成绩。框架的主要思想说完了,感兴趣的读者可以阅读论文了解详情。4.2SLEUIndicator在介绍SLEU之前,我们希望读者熟悉什么是机器翻译中的BLEUIndicator。BLEU的基础是n-gram。n-gram是指在文本中连续出现的n个词(词),是一种基于(n-1)阶马尔可夫链的概率语言模型。简单的说,它假设当前第n个词出现的概率只取决于它前面的(n-1)个词,和前面的词无关。在机器翻译中,BLEU评价的基本单位是词,一个unigram表示一个词,评价翻译的充分性,较长的n-gram表示一个词序列,评价翻译的流畅性。BLEU的思想是将句子拆分成n-gram,评估局部相似度,然后对整体翻译效果打分。对于机器翻译,最小的可整除单位是词。对于语义组合生成的问题,最小的可整除单位是什么?这是一种关系。因此,对于语义组合生成,我们的unigram变成了一种关系。评估充分性是评估单个关系是否匹配;评价流畅度就是评价n个关系是否会同时匹配。我们还做了一个n阶马尔可夫链的假设,即一个关系的出现只依赖于不超过(n-1)个其他关系,与更多的关系无关。由于场景图和语义构成中的对象是一一对应的,所以不存在精确率和召回率的概念。我们把对单一关系的评价称为unigramaccuracy,对多个关系的评价称为n-gramaccuracy。具体的设计这里就不细说了,把关系看成unigram是我们的核心思想。我们的工作就是设计这个概念,将BLEU的概念从1D扩展到2D。有兴趣的读者可以参考论文,指标的实现也将开源。5.实验结果预览图9:Seq-SG2SL框架在测试集上展示的部分结果。上图是在测试集上使用Seq-SG2SL生成的一些结果。第一行是输入,第二行是生成的语义组合,第三行是参考语义组合及其对应的图像。可以看出,我们的结果可用于具有多种关系的复杂场景的合成生成。这里只是做一个介绍,更多的量化分析在论文中进行了阐述,主要包括与baseline算法的对比,以及一些在具体设计上必要的实验。由于它只是一个介绍,这里将不描述结论和未来的工作。有兴趣的读者可以直接阅读论文。本文是对被ICCV2019录用的论文《Seq-SG2SL:基于序列到序列学习的由场景图生成语义构图的算法》的介绍,不涉及论文的全部内容,只是侧重于我们对一些问题的思考。虽然以论文为背景,但写作试图以更科学的形式逐步展现给读者,希望能对后续的研究和应用场景有所启发。本文由@源方撰写,成果是几位小伙伴@风月@唯特@明杨的共同结晶,我们来自阿里AILabs感知实验室。如果您对研究感兴趣,或者对业务方向有灵感,欢迎您来信:[boren.lbr@alibaba-inc.com],我们很乐意与您探讨。论文下载链接:https://arxiv.org/abs/1908.06592参考文献:[1]Qiaoetal.,MirrorGAN:LearningText-To-ImageGenerationbyRedescription,CVPR2019.[2]Johnson等人,使用场景图进行图像检索,CVPR2015.[3]https://github.com/SummitKwan/transparent_latent_gan[4]Zhang等人,StackGan:文本到具有堆叠生成对抗网络的逼真图像合成,ICCV2017。[5]Johnson等人,从场景图生成图像,CVPR2018。[6]Krishna等人,视觉基因组:连接语言和视觉使用
