持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情
一、ECAGAN:基于通道注意力机制的文本生成图像方法
文章来源:计算机工程 2022年4月
引用格式:张云帆,易尧华,汤梓伟,王新宇.基于通道注意力机制的文本生成图像方法[J].计算机工程,2022,48(04):206-212+222.DOI:10.19678/j.issn.1000-3428.0062998.
1.1、主要创新
针对文本生成图像任务中生成图像细节缺失 及低分辨率阶段生成图像存在结构性错误(如鸟有两个头,缺少爪子)的问题 ,基于动态注意力机制生成对抗网络(DMGAN ),引入内容感知上采样模块和通道注意力卷积模块,提出一种新的文本生成图像方法 ECAGAN 。
主要创新点有:
采用基于内容感知的上采样方法,通过输入特征图计算得到重组卷积核,使用重组卷积核和特征图进行卷积操作,确保语义对齐性;
利用通道注意力机制学习特征图各个特征通道的重要程度,突出重要的特征通道,抑制无效信息,使生成图像的细节更丰富;
结合条件增强和感知损失函数辅助训练,增强训练过程的鲁棒性。
1.2、主要框架
主要结构仍是类似StackGAN++的三层堆叠式,网络结构可以分为低分辨率图像生成阶段和图像精炼阶段 ,低分辨率图像生成阶段的生成器生成 64×64 像素的低分辨率图像,图像精炼阶段的生成器生成 128×128 像素和 256×256像素的图像。
1.2.1、低分辨率图像生成阶段
文本编码器阶段与StackGAN、AttnGAN、DMGAN等等类似,通过文本编码器生成句子特征与单词特征,句子特征拼接随机噪声后经过FC输入到内容感知上采样模块 (CAUPBlock)中,对输入特征图进行上采样后形成第一阶段图像。
内容感知上采样模块 由自适应卷积核预测模块和内容感知特征重组模块组成:
自适应卷积 核预测模块中,特征图经过内容编码器,Reshape和归一化得到大小为 S H × S W × k u p 2 SH × SW × k^2_{up} S H × S W × k u p 2 的重组卷积核。内容感知特征重组模块 简单来说就是将特征图的各个区域与对应预测出的卷积核做点积。
结构图如下,特征图 R 输入之后在自适应卷积核预测模块 ψ 中
对输出特征图 R′的每一个区域 l′预测出卷积核 γ l γ_l γ l ,然后原特征图在内容感知特征重组模块 ξ 中和预测得到的卷积核进行点乘得到结果γ l ′ = ψ ( Z ( R l , k e n c o d e r ) ) R l ′ ′ = ξ ( Z ( R l , k u p ) , γ l ′ ) \begin{array}{l}
\gamma_{l^{\prime}}=\psi\left(Z\left(R_{l}, k_{\mathrm{encoder}}\right)\right) \\
R_{l^{\prime}}^{\prime}=\xi\left(Z\left(R_{l}, k_{\mathrm{up}}\right), \gamma_{l^{\prime}}\right)
\end{array} γ l ′ = ψ ( Z ( R l , k encoder ) ) R l ′ ′ = ξ ( Z ( R l , k up ) , γ l ′ ) ,其中Z ( R l , k u p ) Z(R_l,k_{up}) Z ( R l , k u p ) 表示特征图中点l周围的k u p × k u p k_{up}×k_{up} k u p × k u p 的子区域。
经过上采样之后得到特征图输入生成器,经过带通道注意力机制的卷积运算生成图像。
注意力卷积模块通过通道注意力对特征图进行加权,使生成图像细节更丰富,通道注意力的实现不再赘述,具体可以看原文。
1.2.2、图像精炼阶段
图像精炼阶段与AttnGAN 很相似,利用动态注意力层计算词向量中每个单词与图像子区域的相关性,然后根据相关性计算图像子区域的注意力权重,最后根据特征图的注意力权重控制特征图的更新,得到新的特征图然后进行上采样,放大图像。(三种能有效融合文本和图像信息的方法 其二 )
1.3、损失函数
生成器损失函数形式如下:
L G = ∑ ( L G i + λ 1 L p e r ( I i ′ , I i ) ) + λ 2 L C A + λ 3 L D A M S M L_{G}=\sum\left(L_{G_{i}}+\lambda_{1}
L_{\mathrm{per}}\left(I_{i}^{\prime}, I_{i}\right)\right)+\lambda_{2}
L_{\mathrm{CA}}+\lambda_{3} L_{\mathrm{DAMSM}} L G = ∑ ( L G i + λ 1 L per ( I i ′ , I i ) ) + λ 2 L CA + λ 3 L DAMSM
L G i L_{Gi} L G i 表示各级生成器损失函数;L p e r L_{per} L p er 表示感知损失函数 ;L C A L_{CA} L C A 表示条件增强损失函数 ;L D A M S M L_{DAMSM} L D A MSM 表示DAMSM模块损失函数。
L G i = − 1 2 E x ∼ p ϵ [ log a D i ( x i ^ ) ] ⏟ unconditional loss − 1 2 E x ∼ p σ , [ log a D i ( x ^ i , s ) ] ⏟ conditional loss L_{G_{i}}=\underbrace{-\frac{1}{2} E_{x \sim p_{\epsilon}}\left[\log
_{a} D_{i}\left(\widehat{x_{i}}\right)\right]}_{\text {unconditional loss }} \underbrace{-\frac{1}{2} E_{x \sim p_{\sigma},}\left[\log _{a}
D_{i}\left(\widehat{x}_{i}, s\right)\right]}_{\text {conditional loss
}} L G i = unconditional loss − 2 1 E x ∼ p ϵ [ log a D i ( x i ) ] conditional loss − 2 1 E x ∼ p σ , [ log a D i ( x i , s ) ]
L D i = − 1 2 E x ∼ p datu log a D i ( x i ) − 1 2 E x ∼ p σ i log a ( 1 − D i ( x i ^ ) ) ⏟ unconditional loss − 1 2 E x ∼ p datu log a D i ( x i , s ) − 1 2 E x ∼ p σ i log a ( 1 − D i ( x ^ i , s ) ) ⏟ conditional loss \begin{array}{l} L_{D_{i}}= \\ \underbrace{-\frac{1}{2} E_{x \sim
p_{\text {datu }}} \log _{a} D_{i}\left(x_{i}\right)-\frac{1}{2} E_{x
\sim p_{\sigma_{i}}} \log
_{a}\left(1-D_{i}\left(\widehat{x_{i}}\right)\right)}_{\text {unconditional loss }} \\ \underbrace{-\frac{1}{2} E_{x \sim p_{\text
{datu }}} \log _{a} D_{i}\left(x_{i}, s\right)-\frac{1}{2} E_{x \sim
p_{\sigma_{i}}} \log _{a}\left(1-D_{i}\left(\widehat{x}_{i},
s\right)\right)}_{\text {conditional loss }} \end{array} L D i = unconditional loss − 2 1 E x ∼ p datu log a D i ( x i ) − 2 1 E x ∼ p σ i log a ( 1 − D i ( x i ) ) conditional loss − 2 1 E x ∼ p datu log a D i ( x i , s ) − 2 1 E x ∼ p σ i log a ( 1 − D i ( x i , s ) )
L C A = D K L ( N ( μ ( s ) , Σ ( s ) ) ∥ N ( 0 , I ) ) \begin{array}{l}
L_{\mathrm{CA}}=D_{\mathrm{KL}}(\mathcal{N}(\boldsymbol{\mu}(\boldsymbol{s}),
\boldsymbol{\Sigma}(\boldsymbol{s})) \| \mathcal{N}(0, I))\end{array} L CA = D KL ( N ( μ ( s ) , Σ ( s )) ∥ N ( 0 , I ))
L p e r ( I ′ , I ) = 1 C i H i W i ∥ ϕ i ( I ′ ) − ϕ i ( I ) ∥ 2 2 \begin{array}{l}L_{\mathrm{per}}\left(I^{\prime},
I\right)=\frac{1}{C_{i} H_{i}
W_{i}}\left\|\phi_{i}\left(I^{\prime}\right)-\phi_{i}(I)\right\|_{2}^{2}
\end{array} L per ( I ′ , I ) = C i H i W i 1 ∥ ϕ i ( I ′ ) − ϕ i ( I ) ∥ 2 2
1.4、实验
二、CAE-GAN:基于Transformer交叉注意力的文本生成图像技术
文章来源:计算机科学 2022年2月
引用格式:谈馨悦,何小海,王正勇,罗晓东,卿粼波.基于Transformer交叉注意力的文本生成图像技术[J].计算机科学,2022,49(02):107-115.
2.1、主要创新
目前,主流的方法是通过预训练文本编码器来完成对输入文本描述的编码,但目前的方法在对文本描述进行编码时,并未考虑与对应图像的映射关系,忽略了语言空间与图像空间之间的语义鸿沟问题,导致初始阶段生成图像与文本语义的匹配度仍然较低,且图像质量也受到了影响 。
创新点:
通过交叉注意力编码器,将文本信息与视觉信息进行翻译和对齐,以捕捉文本与图像信息之间的跨模态映射关系,从而提升生成图像的逼真度和与输入文本描述的匹配度。
2.2、主要框架
如上图,文本首先经过交叉注意力编码器,生成交叉注意力特征向量f c f_c f c 和单词特征矩阵W,交叉注意力特征向量加入噪声后经过全连接、上采样等阶段形成初始图像特征,然后单词特征矩阵 W 输入到动态存储模块与初级图像特征进行融合,得到融合后的新图像特征,过程如下:
f c , W = C E ( s , F R ) F 0 = G 0 ( f c + z ) F 1 = G 1 ( D M ( F 0 , W ) ) F 2 = G 2 ( D M ( F 1 , W ) ) \begin{array}{l} \boldsymbol{f}_{c},
\boldsymbol{W}=C_{E}\left(\boldsymbol{s}, \boldsymbol{F}_{R}\right) \\
\boldsymbol{F}_{0}=G_{0}\left(\boldsymbol{f}_{c}+\boldsymbol{z}\right)
\\ \boldsymbol{F}_{1}=G_{1}\left(D M\left(\boldsymbol{F}_{0},
\boldsymbol{W}\right)\right) \\ \boldsymbol{F}_{2}=G_{2}\left(D
M\left(\boldsymbol{F}_{1}, \boldsymbol{W}\right)\right) \end{array} f c , W = C E ( s , F R ) F 0 = G 0 ( f c + z ) F 1 = G 1 ( D M ( F 0 , W ) ) F 2 = G 2 ( D M ( F 1 , W ) )
2.2.1、交叉注意力编码器
交叉注意力编码器用于对语言信息和视觉信息进行联合交叉编码和对齐。如下图所示:
主要包括文本特征提取、图像特征提取、交叉注意力编码和自注意力编码:
文本特征提取,使用双向LSTM 将原始文本编码成一个全局句子特征向量W和一个单词特征向量s;
图像特征提取,使用InceptionV3网络 提取图像特征f c f_c f c ;
交叉注意力 编码,主要用于构建语言特征与图像特征的内部联系,实现联合编码。单词特征向量s与图像特征f c f_c f c 分别经过线性层映射为q s , k s , v s , q v , k v , v v q_s,k_s,v_s,q_v,k_v,v_v q s , k s , v s , q v , k v , v v ,即q s , k s , v s = L i n e a r ( s ) , q v , k v , v v = ( f v ) q_s,k_s,v_s=Linear(s),q_v,k_v,v_v=(f_v) q s , k s , v s = L in e a r ( s ) , q v , k v , v v = ( f v ) ,然后计算交叉注意力分数score,然后得到注意力编码l c l_c l c
score = λ c q v k s T score = Softm ( score ) s c = dropout ( score ′ ) l = s c ⋅ v s , l c = N o r m a l i z a t i o n ( A 1 l + B 1 ) \begin{array}{l} \text { score }=\lambda_{c} \boldsymbol{q}_{v}
\boldsymbol{k}_{s}^{\mathrm{T}} \\ \text { score
}=\operatorname{Softm}(\text { score }) \\
\boldsymbol{s}_{c}=\operatorname{dropout}\left(\text { score }{
}^{\prime}\right) \\ \boldsymbol{l}=\boldsymbol{s}_{c} \cdot
\boldsymbol{v}_{s}
,l_c=Normalization(A_1l+B_1)\end{array} score = λ c q v k s T score = Softm ( score ) s c = dropout ( score ′ ) l = s c ⋅ v s , l c = N or ma l i z a t i o n ( A 1 l + B 1 )
自注意力编码,主要使用的还是自注意力机制 的那一套,不再赘述
q l , k l , v l = Linear ( l c ) s s = Dropout ( softm ( λ s q l k l T ) ) l c s = s s ⋅ v l f c = Normalization ( A 2 l c s + B 2 ) \begin{array}{l} \boldsymbol{q}_{l}, \boldsymbol{k}_{l}, \boldsymbol{v}_{l}=\text { Linear }\left(\boldsymbol{l}_{c}\right) \\
\boldsymbol{s}_{s}=\operatorname{Dropout}\left(\operatorname{softm}\left(\lambda_{s} \boldsymbol{q}_{l} \boldsymbol{k}_{l}^{\mathrm{T}}\right)\right) \\
\boldsymbol{l}_{c s}=\boldsymbol{s}_{s} \cdot \boldsymbol{v}_{l} \\
\boldsymbol{f}_{c}=\operatorname{Normalization}\left(A_{2}
\boldsymbol{l}_{c s}+B_{2}\right) \end{array} q l , k l , v l = Linear ( l c ) s s = Dropout ( softm ( λ s q l k l T ) ) l cs = s s ⋅ v l f c = Normalization ( A 2 l cs + B 2 )
2.2.2、动态存储模块
动态存储模块与DM-GAN 内部的动态记忆机制相似。
2.3、损失函数
整体损失函数L分为三部分,总的损失函数如下:
L = ∑ i L G i + τ 1 L C A + τ 2 L D A M S M L=\sum_{i} L_{G^{i}}+\tau_{1} L_{C A}+\tau_{2} L_{D A M S M} L = ∑ i L G i + τ 1 L C A + τ 2 L D A MSM
其中L G i L_{G^i} L G i 是生成器损失,L C A L_{CA} L C A 是条件损失函数,L D A M S M L_{DAMSM} L D A MSM 是深度注意力多模态相似度损失(与AttnGAN 相似)
L G i = − 1 2 [ E x ∼ p G i log D i ( x ) + E x ∼ p G i log D i ( x , s ) ] L C A = D K L ( N ( μ ( s ) ) ∥ N ( 0 , I ) ) \begin{aligned} L_{G^{i}} &=-\frac{1}{2}\left[E_{x \sim p G^{i}} \log
D_{i}(x)+E_{x \sim p G^{i}} \log D_{i}(x, s)\right] \\ L_{C A} &=D_{K
L}(N(\mu(s)) \| N(0, I)) \end{aligned} L G i L C A = − 2 1 [ E x ∼ p G i log D i ( x ) + E x ∼ p G i log D i ( x , s ) ] = D K L ( N ( μ ( s )) ∥ N ( 0 , I ))
判别器损失函数由条件损失和非条件损失组成:
L D i = − 1 2 [ L D + L C D ] L D = E x ∼ P data log D i ( x ) + E x ∼ p G i log ( 1 − D i ( x ) ) L C D = E x ∼ P data log D i ( x , s ) + E x ∼ p G i log ( 1 − D i ( x , s ) ) \begin{array}{l} L_{D^{i}}=-\frac{1}{2}\left[L_{D}+L_{C D}\right] \\
L_{D}=E_{x \sim P \text { data }} \log D_{i}(x)+E_{x \sim p G^{i}}
\log \left(1-D_{i}(x)\right) \\ L_{C D}=E_{x \sim P \text { data }}
\log D_{i}(x, s)+E_{x \sim p G^{i}} \log \left(1-D_{i}(x, s)\right)
\end{array} L D i = − 2 1 [ L D + L C D ] L D = E x ∼ P data log D i ( x ) + E x ∼ p G i log ( 1 − D i ( x ) ) L C D = E x ∼ P data log D i ( x , s ) + E x ∼ p G i log ( 1 − D i ( x , s ) )
2.4、实验
最后
💖 个人简介:人工智能领域研究生,目前主攻文本生成图像(text to image)方向
🔥 限时免费 订阅:文本生成图像T2I专栏
🎉 支持我:点赞👍+收藏⭐️+留言📝