zoukankan      html  css  js  c++  java
  • Auto-Encoding Scene Graphs for Image Captioning

    原文地址

    时间:2018年

    Introduction

    end-to-end encoder-decoder模型存在一个问题:当将一张包括未见过的场景输入到网络中时,返回的结果仅仅就是一些显著的object,比如“there is a dog on the floor”,这样的结果与object detection几乎没有区别

    认知上的证据表明,基于视觉的语言并非是end-to-end的,而是与高层抽象的符号相关,如果我们将scene抽象成符号,生成过程就会十分清晰,比如对于这幅图片
    在这里插入图片描述
    scene abstraction是“helmet-on-human”和"road dirty",我们则可以生成"a man with a helmet in contryside"通过使用一个常识:country road is dirty,这种推断就是inductive bias

    本文将inductive bias融合到encoder-decoder中来进行image captioning,利用符号推理和端到端多模型特征映射互补,通过scene graph(G)来bridge它们,一个scene graph(G)是一个统一的表示,它连接了以下几个部分

    • objects(or entities)
    • their attributes
    • their relationships in an image(I) or a sentence(S),通过有向边表示

    key insight:the vector representations are expected to transfer the inductive bias from the pure language domain to the vision-language domain

    作者提出了Scene Graph Auto-Encoder(SGAE),作为一个句子重建网络,其过程是S → G → D → S 
    其中D是一个 可训练的字典,用来记录结点特征,SG使用现成的scene graph language parser[1],DS是一个可训练的RNN decoder,注意D是"juice"——即language inductive bias,在训练SGAE中得到,通过将D共享给encoder-decoder的pipline:IGDS,即可利用语言先验来指导端到端模型,具体的IG是一个visual scene graph detector[52],引入multi-modal GCN来进行GD的过程,来补足detection的不足之处,有趣的是,D可以被视作为一个working memory,用来从IS re-key encoded nodes,以更小的domain gap来得到一个更一般的表达,

    Contrubution

    • 一个先进的SGAE模型,可以学习language inductive bias的特征表达
    • 一个multi-model 图卷积网络,用来调节scene graph到视觉表达
    • 一个基于SGAE的 encoder-decoder image captioner with a shared dictionary guiding the language decoding

    Encoder-Decoder

    给一张图片I mathcal{I}I,我们需要生成一句话S = { w 1 , w 2 , . . . , w T },state-of-the-art的image captioner是如下形式
    在这里插入图片描述
    通常,encoder是一个卷积神经网络,map是一个attention mechanism,将feature编码到一个更加informative的空间中,decoder是一个RNN-based 语言decoder,来预测S,给定labelS ∗  I通过最小化交叉熵函数
    在这里插入图片描述
    或者通过强化学习最大化
    在这里插入图片描述
    这是目前几乎所有state-of-the-art的image captioning模型的基本架构,但它有 dataset bias,为了解决这个问题,我们使用language inductive bias,可以表示为
    在这里插入图片描述
    随后我们将使用SGAE来学习D,通过sentence self-reconstruction with the help of scene graphs,然后我们将encoder-decoder equip上SGAE作为全局的image captioner,特别的是我们使用D和Multi-model 图卷积网络来re-encode 图像的 features

    Auto-Encoding Scene Graphs

    本节介绍如何通过self-reconstructing学习D,如图所示
    在这里插入图片描述
    SGAE的过程如下
    在这里插入图片描述

    Scene Graphs

    SG,从sentence到scene graph,scene graph是一个元组G=(N,ε),其中Nε是边节点和边的集合,有三种N:目标结点o oo,属性结点a,以及关系结点r,记oi是第i个目标,ai,loi的第 l个属性,每个结点以d-维向量表示,作者的实验中d=1000,结点的特征是可训练的label embedding

    ε的有以下几种

    • 如果一个目标oi有属性ai,l,则oiai,l有一条有向边
    • 如果存在三元组关系<oirijoj>,则oirijrijoj均有两条边

    下图给了一个例子,其中包括七个结点六条边
    在这里插入图片描述
    使用[1]中的scene graph parser来得到G mathcal{G}G

    graph convolution network

    GX,将node embedding eo,ea,er转化成context-aware embedding XX包括三种d维 embedding:关系embedding xri,j for 关系结点ri,j,目标embedding for 目标结点oi,以及属性结点xaifor目标结点oi,作者使用d=1000,使用四个空间图卷积(spatial graph convolutions):gr,ga,gs,go来生成上述的embedding,这四个网络有一样的结构,相互独立的参数
    在这里插入图片描述
    Relationship Embedding xri,j
    对每个三元组<oirijoj>xri,j综合上下文信息
    在这里插入图片描述
    Attribute Embedding xai
    对一个object结点oixai综合它和它的所有属性
    在这里插入图片描述
    其中Naioi的属性个数

    Object Embedding xoi
    xoi需要综合oi在整个graph中的主客体关系
    在这里插入图片描述
    ojsbj(oi)表示oi是subject,oj是object,N r i = ∣ s b j ( i ) ∣ + ∣ o b j ( i ) ∣ 

    Dictionary

    这一步学习D并用它re-encodeR(X;D)X^的方法,核心观点是保留working memory来执行dynamic knowledge base for run-time inference。D的目标是embed language inductive bias到语言合成中。

    这个过程就是学习一个字典D=d1,d2,...,dKRd×K,文章设K=10,000,re-encode:
    在这里插入图片描述
    其中
    在这里插入图片描述
    是memory network中的核心操作
    使用[2]中的attention structure来reconstruction S

    Overall Model: SGAE-based Encoder Decoder

    在这里插入图片描述
    在这里插入图片描述

    Multi-modal Graph Convolution Network

    通过multi-modal图卷积网络将visual feature V转化成graph-modulated features V ′ ,此处的scene graph G是由image scene graph parser得到的,它包括一个object proposal detector(Faster-RCNN),一个attribute classifier(一个小的fc-ReLU-fc-Softmax network) 和一个relationship classifier(MOTIFS)。

    将检测到的label embeddingeoi和visual featurvoi融合在一起成为新的结点特征uoi
    在这里插入图片描述
    其余的embeddingurijuai按照类似的方法生成,image G 和 sentence G的不同在于前者simpler,nosier,如图所示
    在这里插入图片描述
    生成G之后,计算embedding和re-encode的过程与处理sentence G类似

    结论

    本文将 language inductive bias 融合到了image caption中,实现了more human-like的 language generation,主要方法是使用基于scene graph G的feature,学习并共享一个字典 D来re-encode这个feature。

    问题

    • pure language domain 和 vision-language domain 有啥区别
    • 有了边表示关系那关系结点是干啥的
      表示不同的关系,比如wear hold等等



    来源: https://blog.csdn.net/luo3300612/article/details/90042843

    欢迎转载,转载请保留页面地址。帮助到你的请点个推荐。

  • 相关阅读:
    Phar与Composer
    [转]一张图帮你搞定职业规划
    Yii2初谈
    阿里前端框架Alice是个不错的选择
    PHP的PSR系列规范都有啥内容
    最新微信公众平台js sdk整合PHP版
    何时该开始写测试代码
    我们太匆忙
    今日思考
    Scala确实是门好语言
  • 原文地址:https://www.cnblogs.com/jins-note/p/14311323.html
Copyright © 2011-2022 走看看