经典网络解读系列(四):GSPSG from TD for Improved Image Retrieval

       首先要说明的是,标题的题目是《Generating Semantically Precise Scene Graphs from Textual Descriptions for Improved Image Retrieval》的缩写。它是李飞飞团队2015年发表的一篇论文。严格来讲不应当放在经典网络解读系列当中,最近正好在做相关方面的研究,所以一并纳入了。关于这篇论文,网上的相关资料非常少,自己也是似懂非懂。将自己不成熟的理解写出来,希望能得到大家的指正和点拨。

文章任务:

        论文实现的功能是利用自然语言的场景描述(文本语句)转换为场景图。产生的场景图可以用于图像的检索。(此前已有相关的工作,即利用场景图进行图像的检索)。实验证明,在场景图中把属性和关系包含进来比单纯使用对象进行检索性能更好。同时,论文构建的场景图和人工构建的场景图几乎一样有效。(Recall@10 of 27.1% vs. 33.4%). 

背景介绍:

     从20世纪70年代开始,有关图像检索的研究就已开始,当时主要是基于文本的图像检索技术(Text-based Image Retrieval,简称TBIR),利用文本描述的方式描述图像的特征,如绘画作品的作者、年代、流派、尺寸等。到90年代以后,出现了对图像的内容语义,如图像的颜色、纹理、布局等进行分析和检索的图像检索技术,即基于内容的图像检索(Content-based Image Retrieval,简称CBIR)技术。

      Johnson等人使用场景图描述图像中的对象、属性以及对象之间的关系,并且证明,可以使用部分场景图在未注释的图像上进行语义图像检索。但是普通人是很难人工搭建场景图的。所以李飞飞团队尝试使用自然语言描述自动生成场景图。这样,普通人也可以通过语句进行图像检索。

      文章构建并评估了一个基于规则的场景图解析器和一个基于分类器的场景图解析器,该解析器从语法表示映射到场景图。 我们在流水线中使用这些解析器,首先将图像描述解析为场景图,然后将此场景图用作检索系统的输入。 实验表明,这样的管道胜过仅考虑描述对象的系统,并且在使用两个解析器的输出检索图像时,几乎与人工构建的场景图一样有效。


任务描述:

       图像检索系统来自Johnson等人在2015年的工作,它基于条件随机场(CRF),且与典型的CRFs并不相同。由于不是文章的重点,因此我并没有深入研究。感兴趣可以翻阅相关论文。

       关于句子解析成场景图的过程,使用S表示给定的句子,G(O,E)表示对应的场景图。给定物体类别的集合C,关系集合R,属性集合A。O={o[1],o[2],.......o[n]}是一个对象集合,里面的每一个o都是(c[i],A[i])的形式,即指定该对象的类别和属性。E中的任何一个元素符合o[i]*r[j]*o[k]的形式。比如  man ×  have  × pants

      数据集的准备:

     使用来自YFCC100m和Microsoft COCO的4999幅图像。有大量的工作人员参与数据集的准备。

      首先,每个工作人员被给出一张图片,并被要求写出一句话对其进行描述,同时他们可以看到之前的工作人员为这幅照片写的话。此外,他们还被要求描述一些没有被描述过的图像。我们通过实时BLEU评分评估新写的句子和此前的句子,保证句子的多样性。

     第二步,人们再次被呈现一幅图像和一个句子。他们被要求在句子中提到的图像中的所有物体周围绘制边界框,并描述它们的属性以及它们之间的关系。针对图像的每个句子重复该步骤,并且最终将局部场景图组合为每个图像的一个大场景图。

      通过这些工作,一方面增加了每幅图像的对象和关系的数量,还提供了句子和局部的场景图之间的映射,这给我们提供了句子--场景图对的语料库,可以用来训练解析器。

       数据集的预处理:

      工作人员被允许使用任何标签来描述物体,关系和属性,因此数据有很多变化。我们执行几个预处理步骤来规范数据。首先,我们删除所有标签中的前文和后文(此处存疑 article 具体含义是文章?)。然后,我们用lemmata(此处存疑,不知道是啥)替换标签中的所有单词,最后我们把连词连接起来的属性分成两个单独的属性,比如“red and green”  ---->'red'   'green'。整个数据集中类或类型出现少于30次的所有对象,关系和属性直接放弃掉。这一方面可以防止工作人员的失误,同时有利于训练。

       由于我们假定一个句子的场景图是完整的,即它捕获了句子的所有信息时,我们必须应用更严格的过滤。如果这个句子里一个对象,属性或关系由于出现的频率太低被丢弃,直接丢弃掉这个句子对应的局部场景图。

      如果一幅图像的句子全部被放弃,我们会丢弃这幅图像。尽管进行了过滤,每幅图像的平均物体,关系和属性数量仅下降了30-45%,我们只丢弃了大约9%的图像。

场景图解析器:

     要获得语句对应的场景图,首先把语句描述解析成依赖树,然后进行多次树变换获得语义图。最后使用我们构建的解析器(一个基于规则的解析器,一个基于分类的解析器)把语义图转换为场景图。

        我们实现了两个解析器:一个基于规则的解析器和一个基于分类器的解析器。 我们的两个解析器都运行在我们称之为语义图的语言表示上。 我们通过将图像描述解析为依赖树,然后进行多次树变换来获得语义图。 我们首先描述这些树转换,然后解释我们的两个解析器如何将语义图转换为场景图。    

场景描述到依赖树到语义图:

         使用Stanford Parser v3.5.2 处理语句,得到增强型依赖表示(依赖树)。但是,这种基本依赖树往往遵循句子的语言结构,执行三个额外的处理步骤来处理复杂的量化修饰,对代词、复数名词进行处理。 

         量化修饰词的处理:

         有些名词前面有量化的修饰,比如a dozen of 、a lot of 我们称这些名词为轻名词(light nouns)。这些修饰语在句法上看起来是名词短语的头部。依赖树的一个原则是,第一个单词应当是有实际内容的。轻名词和其他名词会被以相同的方式处理,所以我们需要对轻名词的结构做一下更改。经过这个过程,  both cars 和both of cars 有类似的结构,在这个结构中,单词car 作为开头(有实质内容)。

          代词的解析: 

          一些图像描述,比如“a bed with a pillow on it”,it 代指bed。我们需要把这个it解析成bed。我们在实践中发现文档级别的合作系统(Lee 等人在2013年的工作)在解析代词时过于保守,因此我们实现了一个由Hobbs算法的前三条规则(Hobbs,1978)所启发的内部代词解析器, 我们修改了在依赖树而不是选区树上的操作。 我们使用200个随机选择的含有代词的图像描述来评估这种方法。 我们的代词解析器的准确率为88.5%,明显高于Lee等人的推理系统达到的52.8%的准确率。

          复数名词的处理:

          具有多个复数名词的句子有集体分配的模糊性。举个例子,“three men are wearing jeans”意味着每个男生穿着一条牛仔裤。“three men are carrying a piano”意味着三个人配一架钢琴。前者往往是更常见的,所以我们只考虑前者。为了使依赖树生成的图和场景图更类似,我们根据节点数值修饰符的值复制图的节点。(five horses  复制5次)我们将每个节点复制的副本数目限制在20以下,因为我们的数据对应的场景图对于同一类别所包含的对象数目均少于20。如果复数名词没有数值修饰词(dogs),就只复制该点的一个副本。

          左图是原始的依赖树,右图是一系列树变换后得到的最终语义图。

          具体的实现过程,我还没有翻看源码,所以不是很清楚。此处存疑。


基于规则的解析器:

        基于规则的解析器直接从语义图中提取对象,关系和属性。我们使用Semgrex表达式总共定义了九种依赖模式。这些模式捕捉以下结构:

        形容词修饰语

        主谓宾结构和主谓结构

        Copular结构

        介词短语

        所有格

        被动

        名词的限定修饰语


         除了我们人工添加一些所有格,其他的对象、属性和关系均来自于语义图。举个例子,与主谓宾结构(subject-predicate-object)匹配。代表了两个男人骑两匹马。除此以外,我们手动的加两个所有格,代表了所有格结构(possesive)。

基于分类器的解析器:

        基于分类的解析器由两部分组成,首先提取所有候选对象和属性,然后预测对象之间的关系和所有对象的属性。

        首先是对象属性的提取:

        首先从语义图中提取所有的名词、形容词和不及物动词。但是我们并不能提取出来的对象和属性属于已知的对象和属性类型。而我们的图像检索系统只能检索已知的类型。所以我们要对提取出来的这些元素的类型进行预测。我们使用一个L2正则化的最大熵值分类器来实现此功能,它使用原始单词、引理(此处存疑)、100维的GloVe词向量作为特征。

         其次是关系的预测:

         我们认为这种关系的预测是成对关系的预测。 每一对(x1,x2),x1、x2是两个对象或者一个对象和一个属性。y代表两者的关系。他可能是训练数据中存在的任何关系,也可能是两种特殊的关系:x1是x2,或者关系维NONE(没关系)。我们注意到,对于存在关系的大多数对,x1和x2都属于同一个组成部分,即它们的最低共同祖先要么是两个对象中的一个,要么是它们之间的一个词。因此,我们只考虑满足此约束的对,以提高精度和限制预测的数量。我们再次使用L2-正则化最大熵分类器,它使用以下几种特征:

        对象特征:原始单词、引理、x1 x2预测出的类型。

      Lexicalized 特征(此处存疑): The word and lemma of each token between x1 and x2. If x1 or x2 appear more than once in the sentence because they replace a pronoun, we only consider the words in between the closest mentions of x1 and x2.

         语法特征:即在语义图中x1到x2的最短路径的各边的连接标签。我们只使用有至少一个属性的对象,目的是为了防止抽象的名词成为场景图的一部分,这会导致30%的句子没有提取出任何的关系或者属性,从而产生空的场景图。在这种情况下,我们将所有的对象都包含进场景图中。

训练部分看的有点懵,后续需要的话再写。

猜你喜欢

转载自blog.csdn.net/zlrai5895/article/details/80766483
td