写在前面
SPADE作为目前Label to Image的守门员,非常值得学习,前几天复现了一下他的模型现在来分享一下运行方法。
为什么Pix2PixHD和SPADE都不用RGB作为输入
可以参考这篇博客https://editor.csdn.net/md/?articleId=123459193 其实这是为了把单通道的语义图label进行one-hot编码再给生成器
如何运行SPADE
我这里以512 * 512 大小的图片为例子 (1)我偏要用RGB图片作为输入 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
写在后面
这是我总结的GAN相关论文的解析。希望本文对大家学习SPADE有所帮助。
|