简介
介绍可用于实现多种非配对图像翻译任务的CycleGAN模型,并完成性别转换任务
原理
和pix2pix不同,CycleGAN不需要严格配对的图片,只需要两类(domain)即可,例如一个文件夹都是苹果图片,另一个文件夹都是橘子图片
使用A和B两类图片,就可以实现A到B的翻译和B到A的翻译
论文官方网站上提供了详细的例子和介绍,https://junyanz.github.io/CycleGAN/,例如苹果和橘子、马和斑马、夏天和冬天、照片和艺术作品等
以及论文的官方Github项目,https://github.com/junyanz/CycleGAN,使用PyTorch实现
CycleGAN由两个生成器G和F,以及两个判别器Dx和Dy组成
G接受真的X并输出假的Y,即完成X到Y的翻译;F接受真的Y并输出假的X,即完成Y到X的翻译;Dx接受真假X并进行判别,Dy接受真假Y并进行判别
CycleGAN的损失函数和标准GAN差不多,只是写两套而已
L G A N ( G , D Y , X , Y ) = E y ∼ p y [ log D Y ( y ) ] + E x ∼ p x [ log ( 1 − D Y ( G ( x ) ) ) ] L_{GAN}(G,D_Y,X,Y)=\mathbb{E}_{y\sim p_y}[\log D_Y(y)]+\mathbb{E}_{x\sim p_x}[\log(1-D_Y(G(x)))] LGAN(G,DY,X,Y)=Ey∼py[logDY(y)]+Ex∼px[log(1−DY(G(x)))]
L G