Image Generation from Scene Graphs
Summary
图结构作为句子映射到图像的中间体,使含有多物体的句子的逻辑结构能够较完整地保留,从而使得模型能够理解复杂句子并生成相应的图像
首先将sentence用人工定义或预训练网络的方式映射为图结构,图结构经过一个GNN空域网络,使用GNN输出的向量计算出图像布局(scene layout),再由CRN细化
Research Objective
让CNN能够理解复杂句子并生成更准确的图像.
Problem Statement
目前sg2im领域的SOTA模型大多以GAN网络为基础,GAN网络的优势在于能够理解简单的句子并且生成的图像边缘较为细致,但模型生成的图像很难用量化的标准衡量,因此即使复杂句子经过模型输出的图像十分抽象以致于无法分辨物体,依然能有较高的性能指标.
Method(s)
网络主体分为四个部分
- Scene Graph. 输入为图结构,第一部分使用预定义或预训练的嵌入网络层将图结构转化为向量,类似于nlp领域的词向量算法
- Graph Convolution Network. 论文中采用GNN空域模型的思路, 对于每个节点的入度和出度有 V i s = { g s ( v i , v r , v j ) : ( o i , r , o j ) ∈ E } V i o = { g o ( v j , v r , v i ) : ( o j , r , o i ) ∈ E } \begin{aligned} &V_{i}^{s}=\left\{g_{s}\left(v_{i}, v_{r}, v_{j}\right):\left(o_{i}, r, o_{j}\right) \in E\right\}\\ &V_{i}^{o}=\left\{g_{o}\left(v_{j}, v_{r}, v_{i}\right):\left(o_{j}, r, o_{i}\right) \in E\right\} \end{aligned} Vis={gs(vi,vr,vj):(oi,r,oj)∈E}Vio={go(vj,vr,vi):(oj,r,oi)∈E}对于每条边有 v r ′ = g p ( v i , v r , v j ) v_{r}^{\prime}=g_{p}\left(v_{i}, v_{r}, v_{j}\right) vr′=gp(vi,vr,vj), 因此每个卷积层涉及三个维度上的计算
- Scene Layout. GNN输出为句子中每个物体的特征向量, 而要生成图像还需要将特征从图域映射到图像域. 图结构中每个节点对应的特征向量需要分别经过对应的Object layout网络从而预测每个物体的边界矿(bbox)和形状(mask), 最后叠加得到粗略图像
- Cascaded Refinement Network. 粗略图像经过CRN细化边缘
- Discriminators. 使用对抗生成网络训练一对判别器 D i m g D_{i m g} Dimg和 D o b j D_{obj} Dobj, 判断生成的目标与图像是否真实 一个判别器的目标是最大化目标函数 L G A N = E x ∼ p real log D ( x ) + E x ∼ p the log ( 1 − D ( x ) ) \mathcal{L}_{G A N}=\underset{x \sim p_{\text {real }}}{\mathbb{E}} \log D(x)+\underset{x \sim p_{\text {the }}}{\mathbb{E}} \log (1-D(x)) LGAN=x∼preal ElogD(x)+x∼pthe Elog(1−D(x))
- Training. 损失函数包含六部分, Box(定位损失), Mask(形状损失), Pixel(不明), D i m g D_{i m g} Dimg(图像真实度), D o b j D_{obj} Dobj, L A C o b j ( 目 标 真 实 度 ) \mathcal{L}_{A C}^{o b j}(目标真实度) LACobj(目标真实度)(目标分类损失)
Evaluation
在VG和COCO-STUFF上训练, 指标上不如基于GAN的SOTA, 但作者指出指标不合理, 最后结果由网民选票得出优于SOTA
Conclusion
作者应用GNN使得模型能够保留图像中多个物体的位置关系, 从而使生成的图像更符合人的认知, 相比于GAN方法:优势在于能够理解复杂的句子,劣势在于图像边缘较为粗糙