SPADE(GauGAN)代码运行方法

写在前面

SPADE作为目前Label to Image的守门员,非常值得学习,前几天复现了一下他的模型现在来分享一下运行方法。

为什么Pix2PixHD和SPADE都不用RGB作为输入

可以参考这篇博客https://blog.csdn.net/iiiiiiimp/article/details/123459193
其实这是为了把单通道的语义图label进行one-hot编码再给生成器
在这里插入图片描述

如何运行SPADE

我这里以512 * 512 大小的图片为例子,label默认为单通道8bit大小。
(1)我偏要用RGB的label图片作为输入
SPADE不能像Pix2PixHD那样使用参数--label_nc 0直接将RGB送给网络,但是我之前试了一下把--label_nc的参数设置255然后加上--contain_dontcare_label是可以运行的。参考了https://github.com/NVlabs/SPADE/issues/137

python train.py --name 名字 --dataset_mode custom --load_size 512 --crop_size 512 --display_winsize 512 --label_nc 255 --contain_dontcare_label --label_dir 路径/train_label --image_dir 路径/train_img  --no_instance

(2)只有label作为输入

python train.py --name 名字 --dataset_mode custom --load_size 512 --crop_size 512 --display_winsize 512 --label_nc 类别数 --label_dir 路径/train_label --image_dir 路径/train_img  --no_instance

(3)label和intance作为输入
--no_instance改为--instance_dir即可

python train.py --name 名字 --dataset_mode custom --load_size 512 --crop_size 512 --display_winsize 512 --label_nc 类别数 --label_dir 路径/train_label --image_dir 路径/train_img  --instance_dir 路径/train_inst

(4)如果输入图片的宽高不相等
例如我这里图片是720 * 576
这先计算720/576 = 1.25,然后把这个1.25作为 --aspect_ratio的参数

python train.py --name 名字 --dataset_mode custom --preprocess_mode none --load_size 720  --crop_size 720 --display_winsize 720  --aspect_ratio 1.25  --label_nc 类别数 --label_dir 路径/train_label --image_dir 路径/train_img --instance_dir 路径/train_inst

可能遇到的问题

如果训练效果可以,而测试效果如下这种很模糊,就把test.py里面的model.eval()注释掉就行。参考了https://github.com/NVlabs/SPADE/issues/96

(2022/04/28更)如何控制合成风格

如果使用训练时使用了超参--use_vae,那么测试时使用--use_vae每次运行生成的图片都会有不同的风格,但如何像论文第一页那种控制风格呢?
运行test.py前把pix2pix_dataset.py中__getitem__函数的

image = Image.open(image_path)

改为

image = Image.open( self.image_paths[0])

其中self.image_paths[0]中的0表示使用使用测试集图片的第0张图片去编码,如果想使用测试集图片的第1张图片去编码,改为1就行了。

(2022/07/30更)--contain_dontcare_label参数

--contain_dontcare_label表示的是是否包含不关心的类别,citycapes中不关心的类别为第一类,也就是没有标签,默认值为0。
但是SPADE中的不关心类别默认为255。
在这里插入图片描述
但是在SPADE的官方代码中,citycapes数据集并没有设置--contain_dontcare_label,所以是unlabel类型也当成一个类型去处理的。
在这里插入图片描述
但是在OASIS的citycapes数据集,这是把-1当作不关心的类别处理的。
在这里插入图片描述

写在后面

这是我总结的GAN相关论文的解析。希望本文对大家学习SPADE有所帮助。

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值