![f35875c61dd9d75eff2b135ce4bccf41.png](https://img-blog.csdnimg.cn/img_convert/f35875c61dd9d75eff2b135ce4bccf41.png)
在image captioning任务中,常规的encoder-decoder框架都是利用检测网络,如CNN提取特征,然后直接送到decoder端进行解码生成句子。文章《Auto-Encoding Scene Graphs for Image Captioning》引入了场景图模型,并利用自己提出的SGAE模型,对共享字典在文本语料库上进行预训练,然后在caption模型中作为初始化,目的是引入语料库中的先验知识。
![34040973b0c0fa0f240a195c33ecded7.png](https://img-blog.csdnimg.cn/img_convert/34040973b0c0fa0f240a195c33ecded7.png)
论文地址: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端共享的字典当中。
![6e4082e7fc23353152c6062ceb1cea7a.png](https://img-blog.csdnimg.cn/img_convert/6e4082e7fc23353152c6062ceb1cea7a.png)
GCN网络
为了处理从句子中得到的场景图信息,本文使用了GCN网络。
![9e57b29a2ac663b3e24bb522d0ef49cf.png](https://img-blog.csdnimg.cn/img_convert/9e57b29a2ac663b3e24bb522d0ef49cf.png)
1.Relation Embedding
场景图中给定一个关系三元组
![95659c77a78a91c029a48c7d8b12a224.png](https://img-blog.csdnimg.cn/img_convert/95659c77a78a91c029a48c7d8b12a224.png)
2.Attribute Embedding
场景图中给定一个目标
![f482dd4512f989802e223d9842b1cdab.png](https://img-blog.csdnimg.cn/img_convert/f482dd4512f989802e223d9842b1cdab.png)
3.Objecting Embedding
在场景图中,因为
![2e565b67b07e3c8ef4917aa3609c3dab.png](https://img-blog.csdnimg.cn/img_convert/2e565b67b07e3c8ef4917aa3609c3dab.png)
MGCN网络
为了处理从图像得到的场景图信息,本文提出了一个MGCN (Muti-modal Graph Convolution)的网络。网络结构及处理过程如下:
首先,使用了Faster-RCNN 对图像做目标检测提取feature信息, 又利用了MOTIFS模型提取了检测目标之间的关系。利用本文自己提出了一个fc-ReLU-fc-softmax 结构提取目标的属性信息。然后将得到各类型feature和各自的label 利用下面的公式进行了融合得到
![a7c9b064686faff946ca1b72a8d5fb5a.png](https://img-blog.csdnimg.cn/img_convert/a7c9b064686faff946ca1b72a8d5fb5a.png)
最后再利用类似于GCN网络中的4个公式
字典
本文利用文本中的知识预训练出一个具有先验知识的字典,在后面的任务中直接使用这个训练好的字典,对上下文产生的词嵌入向量进行转换重建。这样,模型在为图像产生caption的时候相当于利用到了大量文本语料库中的知识,能产生更符合人类习惯描述的句子。
![a0100d7254c77cd84e437b27f1515c70.png](https://img-blog.csdnimg.cn/img_convert/a0100d7254c77cd84e437b27f1515c70.png)
这个字典是一个
![6bc5266cf2624722f22727130fe69e34.png](https://img-blog.csdnimg.cn/img_convert/6bc5266cf2624722f22727130fe69e34.png)
实验结果
1.消融实验
作者在MS-COCO数据集上做了模型的消融实验:
![82a93ba2cb0b70f0f9d9bbe9560d7ee6.png](https://img-blog.csdnimg.cn/img_convert/82a93ba2cb0b70f0f9d9bbe9560d7ee6.png)
Base是传统的caption 模型,直接把图像特征做attention变换送入到编码器,无其他变换。Base+MGCN使用了基础模型和图卷积网络,就是说把物体之间的关系及属性也都融合到特征当中。Base+D w/o GCN是文本库中的单词做完词嵌入之后之间送入D中,不做GCN操作。Base+D是和上面的相比,单词做完词向量之后,在经过GCN转换,送入D中。SGAE则是全都用上的结果
2.语料实验
作者还利用不同的语料库分别对字典D做了训练,结果有比较大的差距。
![e9802e439d9e68fff80bd30db8180dff.png](https://img-blog.csdnimg.cn/img_convert/e9802e439d9e68fff80bd30db8180dff.png)
BASE是什么都不用;Web采用VG数据集里面的caption 语料库;SGAE采用的是COCO数据集里面caption中的语料库。
3.句子重构实验
作者还使用了不同方法得到的scene graph做了最后句子重构实验
![f2ae7f8d2c19fb075987586917e410f4.png](https://img-blog.csdnimg.cn/img_convert/f2ae7f8d2c19fb075987586917e410f4.png)
结论
作者利用场景图信息,改进了目前常用的Encode-Decoder框架,其中,提出的无监督的学习方法SGAE,通过预训练一个在Encoder端和Decoder端共享的字典,充分利用了在语料库中学到的知识,在最后在为图像生成描述的时候能产生更符合人类语言习惯的句子。
![66ce1e1880759a0978b382a9054a543b.png](https://img-blog.csdnimg.cn/img_convert/66ce1e1880759a0978b382a9054a543b.png)
扫码识别关注,获取更多论文解读