Print

发布时间: 2023-04-28
摘要点击次数:
全文下载次数:
DOI: 10.3969/j.issn.2096-8299.2023.02.012
2023 | Volume 39 | Number 2




    计算机与信息科学    




  <<上一篇 




  下一篇>> 





基于注意力机制的生成对抗网络古诗插图生成方法
expand article info 沈协伟, 魏为民
上海电力大学 计算机科学与技术学院, 上海 200090

摘要

古诗插图自动生成是非常具有挑战性的任务。提出了一种新的方法,通过使用注意力机制的生成对抗网络,输入古诗文字和草绘图,经由网络输出古诗插图。该模型在利用编码与解码的图片生成结构的同时,结合注意力机制,将图像色彩及轮廓特征进行了提取,生成器中加入了残差网络模块,增加了网络深度,同时提高了网络模型的效果,最终生成图像质量更高的古诗插图。实验结果表明,所提方法相较于对比方法,在图像质量和色彩渲染方面均有优势,输入的古诗和草图经过网络模型,生成了较为符合古诗意境的插图。

关键词

古诗插图; 图像生成; 注意力机制; 生成对抗网络; 残差网络模块

Generation Method of Ancient Poetry Illustrations Based on Attention Mechanism of Generative Adversarial Network
expand article info SHEN Xiewei, WEI Weimin
School of Computer Science and Technology, Shanghai University of Electric Power, Shanghai 200090, China

Abstract

It is a challenging task to realize the automatic generation of ancient poetry illustrations.This paper proposes a generation method using attention mechanism against network generation, which outputs ancient poetry illustrations through the network by inputting ancient poetry text and sketching.The model uses the image generation structure of encoding and decoding, and extracts the image color and contour features combined with the attention mechanism.The residual network module is added to the generator, which can increase the network depth, improve the effect of the network model, and finally generate ancient poetry illustrations with higher image quality.The experimental results show that the proposed method has advantages in image quality and color rendering compared with the comparison method.The input ancient poems and sketches can generate illustrations that are more consistent with the artistic conception of ancient poems through the network model.

Key words

ancient poetry drawing; image generation; attention mechanism; generative adversarial network; residual network module

古诗是中国古典文化的结晶, 在中华数千年的历史中有着深远的影响。随着机器学习的发展, 近年来, 自动生成古诗插图得到了较多的关注, 例如图像翻译模型Pix2Pix[1]、轮廓图提取模型DexiNet[2]、文字生成图像模型[3]等, 都可应用于古诗插图生成任务上。生成对抗网络(Generative Adversarial Networks, GAN)[4]是GOODFELLOW I在2014年提出的一种深度神经网络模型, 是近些年来比较热门的研究方向之一。LI D等人[5]使用了AttnGAN[6]和MirrorGAN[7]等模型来生成对应的古诗插图, Paint4Poem中的对比实验表明, AttnGAN和MirrorGAN在利用古诗生成插图中具有一定的效果。在使用AttnGAN模型生成古诗插图任务中, 此方法仅通过输入的古诗文字来生成古诗插图, 生成图像与诗的意境还有一定的差距。在使用Pix2Pix[1]模型生成古诗插图任务中, 先利用DexiNet[2]模型对原始图像进行预处理(将原始图预处理为轮廓草图), 将转换后的草图作为输入, 再通过Pix2Pix模型根据轮廓草图生成古诗插图, 但其生成的古诗插图在色彩搭配方面还有一定的提升空间。

为解决上述问题, 本文提出了一种使用注意力机制GAN生成方法, 在编码器和解码器中加入了残差网络模块, 通过输入古诗文字和草图, 经由网络输出古诗插图。

1 相关理论

1.1 注意力机制

神经网络中的注意力机制是模仿人类感官的关注部分, 而忽略其余部分的一种主次关注度机制[7]。人脑在工作时, 其实是有一定的注意力的, 例如我们在浏览器上搜索时, 大部分的注意力都集中在搜索结果的左上角。这说明大脑在处理信号时有一定权重划分, 而注意力机制的提出正是模仿了大脑的这种特性。具体注意力机制示意如图 1所示。

图 1 注意力机制示意

1.2 GAN

GAN模型由生成模型(Generative Model)、判别模型(Discriminative Model)两个部分组成。这两部分互相对抗从而得到效果较好的输出结果。GAN的两个网络部分一般采用深度神经网络、生成网络和判别网络。这两组网络交替训练: 判别器将真实图像的输入判别为真, 此时训练判别器; 随机噪声输入经由生成器生成的图像被判别器判定为假, 此时训练生成器。由于随机噪声作为输入, 可确保生成器提供不同的数据。判别器和生成器经过学习训练变得更加出色。经过足够数量的迭代, 生成器可以输出效果较好的图像。GAN模型如图 2所示。

图 2 GAN模型

1.3 深度注意力多模态相似模型

古诗文本中的每个词在图像中基本都有相应的表现[8], XU T等人提出了深度注意力多模态相似模型(Deep Attentional Multimodal Similarity Model, DAMSM)[6]。首先, 训练模型DAMSM, 实现编码任务。DAMSM将原始图像和古诗文字作为输入, 并提供关于两者相似度的反馈。经过卷积神经网络, 图像被映射成一组特定的特征。映射产生的特征和词嵌入具有相同的维数, 按照古诗文本中每个字对应的向量, 将注意力对应到每个特征上, 从而计算出加权平均值。训练时损失由图向量与词向量之间的距离计算得出, 通过最小化损失来训练DAMSM。将DAMSM在数据集上进行充分的预训练, 然后将其与判别器结合使用, 达到充分的优化效果。DAMSM模型示意如图 3所示。

图 3 DAMSM模型示意

2 改进后的网络模型和残差网络模块

2.1 改进后的网络模型

本文在AttnGAN和Pix2Pix模型的基础上进行了改进。通过引入残差网络模块PatchGAN和ResNet增加了网络深度, 提高了网络模型效果, 从而生成图像质量更高的古诗插图。

古诗插图总体模型的生成流程具体如图 4所示。

图 4 古诗插图生成流程

图 4中, H1虚线框所选部分为AttnGAN的单层主体部分, H2虚线框所选部分为Pix2Pix的单层主体部分, Fca表示全连接层, F0表示带重塑矩阵全连接和上采样模块, Fattn1和Fattn2表示注意力模块, En0、En1、En2为编码器, De0、De1、De2为解码器, D0、D1、D2表示判别器。F0经全连接和上采样模块得到64×64×3(通道为3、长宽各为64像素)的特征图。Fattn1是通过F0和文本特征作为输入计算出注意力值, F1、F2分别将前面的输入叠加连接, 经过2个残差层, 然后上采样得到128×128×3(通道为3、长宽各为128像素)和256×256×3(通道为3、长宽各为256像素)的特征图。将F0、F1、F2输出的值与经过DexiNet模型预处理后的轮廓草图进行连接操作后, 分别输入到对应的En(En - De是后续提及的UNet、AttnUNet、ResNet的总称)网络中, 经过De网络生成古诗插图。

判别器D用来区分图片是原始图像或是生成图像, 输入为轮廓草图、生成图像、语句特征三者的连接, 输出为“假(真)”, 并对生成模块(En, De)和判别器D进行交替训练。

2.2 马尔可夫鉴别器(PatchGAN)

为了将注意力限制在局部图像块的结构上, 使用了一个特种鉴别器架构, 称之为马尔可夫鉴别器(PatchGAN)[9], 是在指定块规模上的惩罚结构。该鉴别器尝试对图像中的每个N×N特征图的真假进行分类。在图像上卷积对应的感受野使用此鉴别器, 对得出的值求平均计算, 以提供判别器D的最终输出。N取值可以比图像的完整尺寸小得多, 且仍可以产生高质量的结果。此举会提升训练效果, 因为更小的PatchGAN具有更少的参数, 运行速度更快, 并且可以应用于任意大的图像, 达到较好的效果。具体PatchGAN模块示意如图 5所示。

图 5 PatchGAN模块示意

2.3 ResNet模型

ResNet[8]是在2015年由何凯明等人提出。其出现主要是由于网络的深度不断加深到一定程度, 训练变得困难, 效果变差, 因此残差网络的残差单元以跳层连接的形式将前面层的输出结果与单元输出进行累加, 然后再进行后续的激活操作。ResNet可以在主流的深度学习框架中轻松完成对应实现, 使用BP(Back Propagation)算法直接进行参数的更新。实验表明, 残差网络很好地解决了深度神经网络的梯度消失问题, 使得在神经网络达到很深的时候, 仍然能取得相当好的效果。ResNet单个模块示意如图 6所示。其中, Rulu表示修正线性激活函数。

图 6 ResNet模块示意

3 实验过程与分析

3.1 实验环境

本文的实验环境为: 基于Pytorch进行开发, 编程语言为Python3.7。服务器配置为: CPU为Intel(R) Core(TM) i7 - 10750H CPU@2.60 GHz, 32 G内存, 固态硬盘256 G, GPU为NVIDIA Tesla P100 - PCIE。

实验采用Paint4Poem项目提供的数据库, 共包含301张原图像, 经轮廓处理后获得301张草图, 实验数据大小为1.06 G。

3.2 实验设置

经过处理后每张图像的分辨率为512×512。本文选择在该数据集上进行训练和测试。使用Adam为优化器, batch_size(一次训练所选取的样本数)为10, 网络共迭代800个epoch(1个epoch等于使用训练集中的全部样本训练一次), 每隔100个epoch, 学习率减为原来的0.5, 其中学习率为0.002。

将古诗文本经由双向长短期记忆网络(Long Short - Term Memory, LSTM)得到词向量和诗句向量, 利用诗句向量生成一个低分辨率的图像h0, 如式(1)所示。其余后阶段图像hi(i=1, 2, 3, …)的计算方法如式(2)所示。

$ {h_0} = {F_0}\left( {z, {F^{{\rm{ca}}}}(\mathit{\boldsymbol{\bar e}})} \right) $ (1)

式中: F0(·)——初始上采样网络模块输出;

z——正态分布噪声;

Fca(·)——全连接层输出;

e——整个诗句向量。

$ {h_i} = {F_i}\left( {{h_{i - 1}}, F_i^{{\rm{attn }}}\left( {\mathit{\boldsymbol{e}}, {h_{i - 1}}} \right)} \right) $ (2)

式中: Fi(·)——第i个上采样网络模块输出;

Fiattn(·)——注意力计算网络模块输出;

e——每个词向量。

Gi表示第i个生成器G(网络是阶梯式生成方式, 每个生成器结构相似, 本网络结构中生成器为3个, i=0, 1, 2)。训练时需要最小化生成器Gi的损失。网络训练的损失${\mathcal{L} _{{{\rm{G}}_i}}}$是无条件损失与条件损失之和。无条件损失作用为确定图像的真实性, 条件损失作用为确定图像与句子的一致性。生成器损失函数公式如下

$ \begin{array}{c} {\mathcal{L}_{{{\rm{G}}_i}}} = \underbrace {\left[ { - \frac{1}{2}{E_{{{\hat x}_i}\sim{P_{{{\rm{G}}_i}}}}}\left( {\log \left( {{D_i}\left( {{{\hat x}_i}} \right)} \right.} \right.} \right]}_{无条件损失} + \\ \underbrace {\left[ { - \frac{1}{2}{E_{{{\hat x}_i}\sim{P_{{{\rm{G}}_i}}}}}\left( {\log \left( {{D_i}\left( {{{\hat x}_i}, \mathit{\boldsymbol{\bar e}}} \right)} \right.} \right.} \right]}_{条件损失} \end{array} $ (3)

式中: E(·)——分布函数的期望值;

${{{\hat x}_i}}$——生成图像;

PGi——Gi的样本分布;

${{{\hat x}_i}}$~PGi——从分布中取一样例${{{\hat x}_i}}$;

Di(·)——第i判别器输出。

生成图像的公式如下

$ {\hat x_i} = {{\mathop{\rm De}\nolimits} _i}\left( {{{{\mathop{\rm En}\nolimits} }_i}\left( {\lambda {h_i} + {w_i}} \right)} \right) $ (4)

式中:

Dei(·)——第i个De网络模块输出;

Eni(·)——第i个En网络模块输出;

λ——输入权重比;

wi——轮廓草图。

判别器损失函数公式如下

$ \begin{array}{l} {\mathcal{L}_{{{\rm{D}}_i}}} = \underbrace {\left[ { - \frac{1}{2}{E_{{x_i}\sim{P_{{\rm{dat}}{{\rm{a}}_i}{\rm{ }}}}}}\left( {\log \left( {{D_i}\left( {{x_i}} \right)} \right) - \frac{1}{2}{E_{{{\hat x}_i}\sim{P_{{{\rm{G}}_i}}}}}\left( {\log \left( {{D_i}\left( {{{\hat x}_i}} \right)} \right)} \right]} \right.} \right.}_{无条件损失} + \\ \underbrace {\left[ { - \frac{1}{2}{E_{{x_i}\sim{P_{{\rm{dat}}{{\rm{a}}_i}{\rm{ }}}}}}\left( {\log \left( {{D_i}\left( {{x_i}, \mathit{\boldsymbol{\bar e}}} \right)} \right) - \frac{1}{2}{E_{{{\hat x}_i}\sim{P_{{{\rm{G}}_i}}}}}\left( {\log \left( {{D_i}\left( {{{\hat x}_i}, \mathit{\boldsymbol{\bar e}}} \right)} \right)} \right]} \right.} \right.}_{条件损失} \end{array} $ (5)

式中: xi——原始图像;

Pdatai——真实分布;

xi~Pdatai——从真实分布中取样例xi

无条件损失判别器应判别为假, 条件损失判别器应判别为真, 训练时需要最小化判别器D的损失。

3.3 评价指标

实验采用图像生成中常用的性能指标, 包括Inception Score(IS)与Frechet Inception Distance(FID)。这是两个比较简单有效的常用衡量方法。

IS在评价生成模型的好坏时, 主要从两个方面去考量: 首先是生成的图像是否清晰, 清晰度高的表示生成图像的质量高; 其次是生成的图像是否具有多样性。IS的计算公式如下

$ {\mathop{\rm IS}\nolimits} (g) = \exp \left( {{E_{x \sim{P_g}}}({\mathop{\rm KL}\nolimits} (\mathit{\boldsymbol{p}}(y\mid x)\left\| {\mathit{\boldsymbol{p}}(y))} \right.)} \right) $ (6)

式中: g——通过生成器G生成的图像;

Pg——生成图像的样本分布;

x~Pg——从生成图像分布中取一样例x;

KL——p(y|x)和p(y)两者的KL散度;

p(y|x)——Inception网络输入为x时分类为y概率的向量;

p(y)——图像类别的边缘分布。

IS值越大越接近均匀分布, 表示生成模型的效果越好。

FID是用Inception模型输出的特征向量来计算真实图像与生成图像之间的距离。与IS不同的是, FID使用了Inception网络结构的倒数第2层作为全连接层, 输出的图像特征向量为2 048维。输出的向量用来计算距离。FID的计算公式如下

$ \begin{array}{l} {\mathop{\rm FID}\nolimits} (g, r) = \left\| {{\mu _g} - {\mu _r}} \right\|_2^2 + \\ {\mathop{\rm Tr}\nolimits} \left( {{\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}_g} + {\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}_r} - 2{{\left( {{\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}_g}{\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}_r}} \right)}^{\frac{1}{2}}}} \right) \end{array} $ (7)

式中: r——真实图像;

μg——生成图像的特征向量的均值;

μr——真实图像的特征向量的均值;

Σg——生成图像的特征向量的协方差矩阵;

Σr——真实图像的特征向量的协方差矩阵;

Tr(·)——矩阵的迹函数。

FID值代表图像距离, 用来衡量生成图像与真实图像的相似度, FID值越小, 表明生成图像的效果更好, 相似度越高; 当FID值为零时, 表示两图像相同。

3.4 结果分析

从数据集中随机抽取若干原始图像, 使用Pix2Pix、AttenGAN+U - Net、AttenGAN+Attn - U - Net与AttenGAN+ResNet等模型进行对比实验。图像使用IS和FID作为评价指标, 实验显示图像得到改善, 实验结果中IS指标如表 1所示, FID指标如表 2所示。其中, λ为诗句文字特征与图像特征的输入权重比。

表 1 不同模型及参数下图像IS值对比

下载CSV
模型 IS值
λ = 0.1 λ= 0.5 λ=1.0
Pix2Pix 2.24
AttenGAN+U-Net 2.26 2.42 2.60
AttenGAN+Attn-U-Net 2.31 2.47 2.69
AttenGAN+ResNet 2.28 2.45 2.68

表 2 不同模型及参数下图像FID值对比

下载CSV
模型 FID值
λ = 0.1 λ= 0.5 λ=1.0
Pix2Pix 0.98
AttenGAN+U-Net 0.96 0.93 0.91
AttenGAN+Attn-U-Net 0.96 0.92 0.90
AttenGAN+ResNet 0.88 0.84 0.81

表 1表 2可以看出, 随着λ变大, 语句文字特征输入权重增大, IS值逐渐增大, FID值逐渐减小, 生成图片效果变好。

随机抽选3组实验结果进行对比, 结果如图 7所示。实验数据显示, AttenGAN+ResNet模型epoch为700时综合表现效果最佳。随机抽选3张实验结果进行展示, 具体如图 8所示。

图 7 不同模型生成结果对比
图 8 epoch为700时AttenGAN+ResNet模型生成图像样例

4 结语

本文提出了一种古诗插图生成的改进方法。由于古诗生成的插图需要与诗意密切结合, 普通方法由古诗直接生成图像无法取得较好理解诗意的效果。在利用编码与解码的图片生成模型的同时, 结合注意力机制将图像轮廓及色彩进行提取, 对图片进行了更有效的渲染, 并使用了图片渐进式生成方式, 最终生成图像质量更高的插图。实验结果表明, 本文提出的方法在生成插图上有明显的优势, 在IS和FID指标上取得更好的分数, 获得更加逼真、高质量的图像, 内容更具多样性。

参考文献

  • [1]
    ISOLA P, ZHU J Y, ZHOU T, et al. Image-to-image translation with conditional adversarial networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. [S. l. ]: IEEE, 2017: 1125-1134.
  • [2]
    POMA X S, RIBA E, SAPPA A. Dense Extreme inception network: towards a robust cnn model for edge detection[C]//Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision. [S. l. ]: IEEE, 2020: 1923-1932.
  • [3]
    RONNEBERGER O, FISCHER P, BROX T. U-net: convolutional networks for biomedical image segmentation[C]//In ternational Conference on Medical Image Computing and Computer-assisted Intervention. Cham: Springer, 2015: 234-241.
  • [4]
    GOODFELLOW I, POUGET-ABADIE J, MIRZA M, et al. Generative adversarial networks[J]. Communications of the ACM, 2020, 63(11): 139-144.
  • [5]
    LI D, WANG S, ZOU J, et al. Paint4Poem: a dataset for artistic visualization of classical Chinese poems[EB/OL]. (2021-09-27)[2022-07-20]. https://arxiv.org/pdf/2109.11682.pdf.
  • [6]
    XU T, ZHANG P, HUANG Q, et al. AttnGAN: fine-grained text to image generation with attentional generative adversarial networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. [S. l. ]: IEEE, 2018: 1316-1324.
  • [7]
    QIAO T, ZHANG J, XU D, et al. MirrorGAN: learning text-to-image generation by redescription[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. [S. l. ]: IEEE, 2019: 1505-1514.
  • [8]
    HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. [S. l. ]: IEEE, 2016: 770-778.
  • [9]
    黄文明, 卫万成, 邓珍荣. 基于序列到序列神经网络模型的古诗自动生成方法[J]. 计算机应用研究, 2019, 36(12): 3539-3543.