PyTorch实战CycleGan
·
PyTorch实战CycleGan
1.项目解读
CycleGan代码链接:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix,如果无法获取,评论区留言。
1.1实现效果
- 实现效果:对图片风格进行迁移,如下。我们只需要输入两种风格的图片就好了,本文例子从斑马迁移到马进行讲解。

1.2项目思想
传统Gan,网络定义结构如下,使用随机向量通过生成器生成图像,在用鉴别器鉴别生成的图像与真实图像。注意我们要定义两个损失。一个是实现让鉴别器误以为生成图像为真的loss,损失回传到G网络。另一个是让鉴别器进行真实判断,将生成图像判断为假,将真实图像判别为真的loss,损失回传到D网络。持续优化优化生成器和鉴别器网络,就能实现生成的图像和真实图像非常相似,但是做不到对一种风格迁移到另一种风格。

因为我们由斑马生成的“马”,能很容易的骗过鉴别器,因为真实的图像也是马,所以只用一个生成鉴别网络不行。
- 项目思想:先生成马,再还原马,使用两个生成网络,生成的马与真实的马构建鉴别损失,还原的马与最开始的斑马构建鉴别损失。因此,我们有两个生成网络,两个鉴别网络。

延续这种思路,我们也可以将最开始的斑马换成马。

1.3映射损失
- 此外这个项目还加入映射损失,即我生成器由马生成斑马,但是如果我直接输入斑马,那我应该生成和这张斑马一模一样的图像
1.4改进鉴别网络PatchGan
- 鉴别网络改进–PatchGAN,本来我们的鉴别网络只需要进行二分类,即判断图像是真or假,现在我们基于原始特征图的矩阵来判断。即计算卷积后矩阵中每一点的损失。那么真标签就为全1矩阵。如下图:

项目中的主要模块已经讲解完毕,下面我们来看代码
3.代码解读
3.1项目结构

3.1项目运行
你需要下载该项目的数据集,打开项目datasets文件夹,查看download_cyclegan_dataset.sh文件,查看查找URL,即为数据集地址或者你直接点击
http://efrosgans.eecs.berkeley.edu/cyclegan/datasets下载数据集horse2zebra.zip,解压放到datasets文件夹下:

此外你还需要pip 你所缺失的依赖包,一般是缺失
pip install dominate
pip install visidom
更多推荐

所有评论(0)