Auto-Encoding Scene Graphs for Image Captioning 论文笔记

引言

本文主要是在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端共享的字典当中。

 

 

MGCN网络为了处理从图像得到的场景图信息,本文提出了一个MGCN (Muti-modal Graph Convolution)的网络。网络结构及处理过程如下:

首先,使用了Faster-RCNN 对图像做目标检测提取feature信息, 又利用了MOTIFS模型提取了检测目标之间的关系。利用本文自己提出了一个fc-ReLU-fc-softmax 结构提取目标的属性信息。然后将得到各类型feature和各自的label 进行了融合。

 

字典

本文利用文本中的知识预训练出一个具有先验知识的字典,在后面的任务中直接使用这个训练好的字典,对上下文产生的词嵌入向量进行转换重建。这样,模型在为图像产生caption的时候相当于利用到了大量文本语料库中的知识,能产生更符合人类习惯描述的句子。

 

实验结果

1.消融实验

作者在MS-COCO数据集上做了模型的消融实验:

 

Base: 传统的caption 模型,直接把图像特征做attention变换送入到编码器,无其他变换。

Base+MGCN:基模型+图卷积,就是说把物体之间的关系 属性也都融合到特征当中。

Base+D w/o GCN:文本库中的单词做完词嵌入之后之间送入D中,不做GCN操作。

Base+D:和上面的相比,单词做完词向量之后,在经过GCN转换,送入D中。

SGAE:全都用上

 

2.语料实验

作者还利用不同的语料库分别对字典D做了训练,结果有比较大的差距。

 

BASE:什么都不用

Web:采用VG数据集里面的caption 语料库

SGAE:采用的是COCO数据集里面caption中的语料库

 

3.句子重构实验

作者还使用了不同方法得到的scene graph做了最后句子重构实验

 

 

结论

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

 

posted @ 2022-03-22 16:28  EkkoMay  阅读(120)  评论(0编辑  收藏  举报