目录
目录README.md

风格及语义引导的风景图片生成 GauGAN与Diffusion

GauGAN仓库地址(使用baseline完成):https://github.com/Jittor/JGAN/tree/master/models/gaugan

简介

本项目包含了第二届计图挑战赛计图 - 草图生成风景比赛的代码实现。

本项目的特点是:采用了GauGAN方法对mask和style进行处理,取得了fid=42.81, 总分0.554的效果。

SPADE 的主要创新点在于使用了新的 Spatially−Adaptive Normalization 层来取代传统的 Batch Normalization 层,以此解决了 pix2pix 等算法中会丢失部分输入语义分割图像信息的问题。主要的修改内容在于 $\gamma$和 $\beta$ 的计算不同。

image-20230625162045535

令$ h^i $表示深度卷积网络的第i层激活层,输入的batch size为N。令 $C^i $为当前卷积层的特征图通道数,$H^i $和$ W^i $是当前激活输出的尺寸高和宽。GauGAN使用的新的归一化层,空间自适应归一化层(Spatially-Adaptive normalization),其实现结构如下图所示。在每层归一化层,设置两层卷积层结构,对输入的语义标注图进行学习,得到归一化参数。

学习到的归一化参数与原始的BN操作对应,形式如下公式。

img

Gama和Beta由卷积层学习得到,而其余的miu和sigma是数据的均值和标准差,计算过程如下

img

增加编码器对特定风格的图像进行风格编码

img

网络结构方面,生成器采用堆叠多个 SPADE ResBlk 实现,其中每个 SPADE ResBlk 的结构如左侧所示, Spatially−Adaptive Normalization 层中的 γ 和 β 参数通过输入的语义分割图像计算得到。

image-20230625210821455

判别器和 pix2pixHD 一样采用常见的 Patch−GAN 形式。

img6

SPADE 算法的整体示意图来看,生成器的输入可以是一个随机张量,这样生成的图像也是随机的;同样,这个张量也可以通过一个 Image−Encoder 和一张风格图像计算得到,编码网络将输入图像编码成张量,这个张量就包含输入图像的风格,这样就能得到多样化的输出了。

安装

本项目主要运行在单张卡的 3090 上,200个 epoch 的训练周期一般为 4~5 天。

运行环境

  • ubuntu 20.04 LTS
  • python >= 3.7
  • jittor >= 1.3.0

安装依赖

可以进入任意目录执行以下命令安装依赖( jittor 框架请遵循官网给出的安装指导)

pip install -r requirements.txt

数据处理

数据目录我们没有上传,请遵循赛事公告进行下载。在本次比赛中,我们没有采取更多的数据预处理操作,裁剪、正则化等操作在项目代码中已经有所体现。

预训练模型我们采用的是 Jittor 框架自带的 vgg19 模型,无需额外下载,在代码运行的过程中会载入到内存里。

训练

生成测试集上的结果可以运行以下命令:

sh train.sh

此前需要修改train.sh,其内容为:

CUDA_VISIBLE_DEVICES="0" python train.py --input_path {训练数据集路径(即train_resized文件夹所在路径)}

测试

在单卡上进行测试:

sh test.sh

此前需要:

  1. 将label与img的映射关系(label_to_img.json)放置在gaugan目录下
  2. 修改test.sh,其内容为:
CUDA_VISIBLE_DEVICES="0" python test.py  \
--input_path {测试数据集路径(即labels文件夹所在路径),它提供label mask图} \
--img_path {训练数据集的图片路径(即train_resized/imgs文件夹所在路径,它提供ref图)}
--which_epoch {使用的模型的epoch数目}

致谢

原作者将论文的 pytorch 版本的源代码,迁移到了 Jittor 框架当中。其中借鉴了开源社区 Spectral Normalization 的代码,以及重度参考了原论文的官方开源代码:SPADE

Diffusion 部分参考了Semantic Image Synthesis via Diffusion Models在github上的开源库。

关于

Jittor实现的风景画生成网络

70.0 KB
邀请码