三种能有效融合文本和图像信息的方法——特征拼接、跨模态注意、条件批量归一化

810 阅读3分钟

本文已参加「新人创作礼」活动,一起开启掘金创作之路。

当前T2I模型的一大限制就是如何有效地融合文本和图像信息?

目前常用的有特征拼接(features concatenation)、跨模态注意(cross-modal attention)和条件批量归一化(CBN,Condition Batch Normalization)

一、特征拼接

特征拼接就是简单的将文本模态进行简单线性变换,转换成图像模态需要的特征向量尺寸,然后将文本特征向量与图像特征向量进行拼接,在StackGANStackGAN++中用到过。

这种方法其实既没有充分利用到文本信息,也没有有效实现文本图像的信息融合。

二、跨模态注意

随着注意力机制的发展,跨模态注意力可以为图像的每个子区域计算一个单词的上下文向量,其首先在AttnGAN中得到应用,AttnGAN在单词的水平上实现了单词与图片中的某个子区域的映射,自动选择字级条件以生成图像的不同子区域。

在生成图像时,匹配图像子区域和最相关的单词,对输入图片的每一部分,匹配最相关的单词向量来约束其生成,增加图像的细粒度细节。如在AttnGAN中使用如下公式计算跨模态注意力:

cj=i=0T1βj,iei, where βj,i=exp(sj,i)k=0T1exp(sj,k)c_{j}=\sum_{i=0}^{T-1} \beta_{j, i} e_{i}^{\prime}, \text { where } \beta_{j, i}=\frac{\exp \left(s_{j, i}^{\prime}\right)}{\sum_{k=0}^{T-1} \exp \left(s_{j, k}^{\prime}\right)}

其中sj,i=hjTeis_{j, i}^{\prime}=h_{j}^{T} e_{i}^{\prime} 而β(i,j)表示 第i个单词对生成图像的第j个区域的重要程度。

然而,随着图像尺寸的增大,计算成本迅速增加。此外,自然语言描述采用高级语义,而图像的一个子区域相对较低。因此,它无法很好地探索高级语义来控制图像生成过程,尤其是对于具有多个对象的复杂图像效果很差。

三、条件批量归一化(CBN)

全称为:Condition Batch Normalization,是SD-GAN首先在文本生成图像中进行应用的,将其看作是在一般的特征图上的缩放和移位操作的一种特例,它的表示形式如下所示: BN(xc)=(γ+γc)xμ(x)σ(x)+(β+βc)\mathrm{BN}(x \mid c)=\left(\gamma+\gamma_{c}\right) \cdot \frac{x-\mu(x)}{\sigma(x)}+\left(\beta+\beta_{c}\right)

原理是:利用自然语言描述中的语言线索(linguistic cues)来调节条件批处理归一化,主要目的是增强生成网络特征图的视觉语义嵌入。它使语言嵌入能够通过上下缩放、否定或关闭等方式操纵视觉特征图,其可以从输入中获取到语句级和词级两个层次上的语言线索。

DF-GAN中,其采用了一系列叠加仿射变换按通道缩放和移动图像特征,也可以认为是一种条件批量归一化。

SSA-GAN中,其将CBN进行了进一步的发展,作者提出的语义空间条件批量规范化(S-SCBN)将掩码预测器输出的掩码图添加到SCBN中作为空间条件,