CVPR 2019 | 基于场景图信息的图像描述生成方法

在image captioning任务中,常规的encoder-decoder框架都是利用检测网络,如CNN提取特征,然后直接送到decoder端进行解码生成句子。文章《Auto-Encoding Scene Graphs for Image Captioning》引入了场景图模型,并利用自己提出的SGAE模型,对共享字典在文本语料库上进行预训练,然后在caption模型中作为初始化,目的是引入语料库中的先验知识。

CVPR 2019 | 基于场景图信息的图像描述生成方法_第1张图片

论文地址:
https://arxiv.org/abs/1812.02378

引言

本文主要是在image caption 任务中引入了场景图模型。利用图卷积网络(GCN),将图中检测得到的object和其自身的attribute,以及其他object之间的关系融合在一起作为网络的输入。另外,作者受到利用working memory保存动态知识库的启发,提出了一个共享字典的结构,先在文本语料库上进行预训练,最后为图像生成的描述时,利用在语料库中学到的先验知识生成更语义更丰富的句子。

数据集

本文基于MS-COCO和VG数据集,对这两个数据集的数据都进行了预处理。对于caption进行了去除空格、全部转换为小写、限制最长句子为16,并删除了出现少于5次的单词,最后词表为10369。
对于VG数据集,只保留出现2000次以上的 object、attributes和relationships。预处理后训练集内只剩下305 类objects、103种属性 和 64 种关系。

模型

本论文整体模型如下图,作者在常规的Encode-Decoder 模型中嵌入了一个自己提出的结构SGAE,即 Scene Graph Auto-Encoder。将图像通过检测网络得到的object和其自身的attribute,以及其他object之间的关系等feature, 生成场景图,再通过图卷积网络处理后作为网络的输入,送到已经利用SGAE结构预训练好的在Encoder 端和Decoder端共享的字典当中。
CVPR 2019 | 基于场景图信息的图像描述生成方法_第2张图片

GCN网络

为了处理从句子中得到的场景图信息,本文使用了GCN网络。
CVPR 2019 | 基于场景图信息的图像描述生成方法_第3张图片

1.Relation Embedding

场景图中给定一个关系三元组 < o i − r i j − o j > <o_{i}-r_{i j}-o_{j}> <oirijoj>,则:

2.Attribute Embedding

场景图中给定一个目标 o i o_{i} oi和它的属性 a i , 1 : N a i a_{i, 1} : N a_{i} ai,1:Nai,则:
CVPR 2019 | 基于场景图信息的图像描述生成方法_第4张图片

3.Objecting Embedding

在场景图中,因为 o i o_{i} oi在一个关系对中既可以作为头实体“subject”也可以作为尾实体“object”,也可以出现在不同的关系对中,所以公式处理的时候要把它出现的所有关系都加进去,则:
CVPR 2019 | 基于场景图信息的图像描述生成方法_第5张图片

MGCN网络

为了处理从图像得到的场景图信息,本文提出了一个MGCN (Muti-modal Graph Convolution)的网络。网络结构及处理过程如下:
首先,使用了Faster-RCNN 对图像做目标检测提取feature信息, 又利用了MOTIFS模型提取了检测目标之间的关系。利用本文自己提出了一个fc-ReLU-fc-softmax 结构提取目标的属性信息。然后将得到各类型feature和各自的label 利用下面的公式进行了融合得到 u o i u_{o_{i}} uoi,同理可得到 u a i , u r i j u_{a_{i}}, u_{r_{i j}} uai,urij

最后再利用类似于GCN网络中的4个公式 f o , f s , f a , f r f_{o},f_{s},f_{a},f_{r} fo,fs,fa,fr 对检测目标,相应属性及其之间的关系进行向量嵌入送入后续网络当中。

字典

本文利用文本中的知识预训练出一个具有先验知识的字典,在后面的任务中直接使用这个训练好的字典,对上下文产生的词嵌入向量进行转换重建。这样,模型在为图像产生caption的时候相当于利用到了大量文本语料库中的知识,能产生更符合人类习惯描述的句子。
CVPR 2019 | 基于场景图信息的图像描述生成方法_第6张图片
这个字典是一个 d × K d \times K d×K维的矩阵,给定一个词嵌入向量,可以用下面公式进行重构,其中 α = s o f t m a x ( D T x ) {\alpha}={softmax}({D}^{T} \boldsymbol{x}) α=softmax(DTx)
CVPR 2019 | 基于场景图信息的图像描述生成方法_第7张图片

实验结果

1.消融实验

作者在MS-COCO数据集上做了模型的消融实验:
CVPR 2019 | 基于场景图信息的图像描述生成方法_第8张图片
Base是传统的caption 模型,直接把图像特征做attention变换送入到编码器,无其他变换。Base+MGCN使用了基础模型和图卷积网络,就是说把物体之间的关系及属性也都融合到特征当中。Base+D w/o GCN是文本库中的单词做完词嵌入之后之间送入D中,不做GCN操作。Base+D是和上面的相比,单词做完词向量之后,在经过GCN转换,送入D中。SGAE则是全都用上的结果

2.语料实验

作者还利用不同的语料库分别对字典D做了训练,结果有比较大的差距。
CVPR 2019 | 基于场景图信息的图像描述生成方法_第9张图片
BASE是什么都不用;Web采用VG数据集里面的caption 语料库;SGAE采用的是COCO数据集里面caption中的语料库。

3.句子重构实验

作者还使用了不同方法得到的scene graph做了最后句子重构实验
CVPR 2019 | 基于场景图信息的图像描述生成方法_第10张图片
X \mathcal{X} X是从句子直接得到的scene graph; X ^ \widehat{\mathcal{X}} X X \mathcal{X} X再经过字典重构得到的scene graph;SGAE是作者提出的模型,这个scene graph是从图像中得到的。

结论

作者利用场景图信息,改进了目前常用的Encode-Decoder框架,其中,提出的无监督的学习方法SGAE,通过预训练一个在Encoder端和Decoder端共享的字典,充分利用了在语料库中学到的知识,在最后在为图像生成描述的时候能产生更符合人类语言习惯的句子。


CVPR 2019 | 基于场景图信息的图像描述生成方法_第11张图片
扫码识别关注,获取更多论文解读

你可能感兴趣的:(CVPR 2019 | 基于场景图信息的图像描述生成方法)