我是靠谱客的博主 优雅盼望,最近开发中收集的这篇文章主要介绍PyTorch实现"StarGAN:使用单一模型执行多个域的图像转换"。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

转载自:https://ptorch.com/news/116.html

PyTorch实现StarGAN:用于多域图像到图像转换的统一生成对抗网络。StarGAN可以灵活地使用一个单一的发生器和鉴别器将输入图像转换为任何想要的目标域。你可以在这里查看StarGAN的演示视频。本项目源码PyTorch实现"StarGAN:使用单一模型执行多个域的图像转换"。

StarGAN:使用单一模型执行多个域的图像转换

作者

Yunjey Choi, Minje Choi, Munyoung Kim, Jung-Woo Ha, Sung Kim, 和韩国大学的Jaegul Choo, Clova AI Research (NAVER), 香港科技大学新泽西学院的Clova AI Research(NAVER)

结果

CelebA的面部属性转移

这些图像由在CelebA数据集上训练的StarGAN生成。 CelebA的面部属性转移

RaFD上的表情合成

图像由在RaFD数据集上训练的StarGAN生成。 RaFD上的表情合成

CelebA上的表情合成

这些图像由在CelebARaFD数据集上训练的StarGAN生成。 CelebA上的表情合成

模型描述

在单个数据集中进行训练

StarGAN的概况,包括两个模块,一个鉴别器d和发电机G ^。

  • (a) D学会区分真实图像和虚假图像,并将真实图像分类到相应的域。
  • (b) G同时输入图像和目标域标签并生成假图像。目标域标签被空间复制并与输入图像连接。
  • (c) G尝试从给定原始域标签的假图像重建原始图像。
  • (d) G尝试生成与真实图像不可区分的图像,并且可以通过D将其分类为目标域。

pytorch在单个数据集中进行训练StarGAN

使用多个数据集进行训练

StarGAN在与CelebARaFD进行训练时的概述。

  • (a)〜(d)显示了使用CelebA的训练过程,
  • (e)〜(h)显示了使用RaFD的训练过程。
  • (a),(e)鉴别器D学习区分真实图像和伪造图像,并仅将已知标签的分类误差最小化。
  • (b),(c),(f),(g)当掩模向量(紫))为[1,0]时,发生器G学习专注于CelebA标签(黄)),忽略RaFD标签(绿))来执行图像到图像的转换,反之亦然,当掩码矢量是[0,1]时。
  • (d),(h) G试图生成与真实图像无法区分且由D归类为属于目标域的图像。

pytorch使用多个数据集进行训练StarGAN

环境配置

  • Python 3.5+
  • PyTorch 0.2.0
  • TensorFlow 1.3+ (可选张量板)

快速开始

1.克隆存储库

$ git clone https://github.com/yunjey/StarGAN.git
$ cd StarGAN/

2.下载数据集

(i)CelebA数据集

$ bash download.sh

(ii)RaFD数据集

由于RaFD不是公共数据集,因此您必须首先请求访问Radboud Faces数据库网站的数据集。然后,您需要创建文件夹结构,如此处所述。

3.训练StarGAN

(i)与CelebA一起训练

$ python main.py --mode='train' --dataset='CelebA' --c_dim=5 --image_size=128 
                 --sample_path='stargan_celebA/samples' --log_path='stargan_celebA/logs' 
                 --model_save_path='stargan_celebA/models' --result_path='stargan_celebA/results'

(ii)RaFD训练

$ python main.py --mode='train' --dataset='RaFD' --c_dim=8 --image_size=128 
                 --num_epochs=200 --num_epochs_decay=100 --sample_step=200 --model_save_step=200 
                 --sample_path='stargan_rafd/samples' --log_path='stargan_rafd/logs' 
                 --model_save_path='stargan_rafd/models' --result_path='stargan_rafd/results'

(iii)使用CelebA + RaFD进行训练

$ python main.py --mode='train' --dataset='Both' --image_size=256 --num_iters=200000 --num_iters_decay=100000 
                 --sample_path='stargan_both/samples' --log_path='stargan_both/logs' 
                 --model_save_path='stargan_both/models' --result_path='stargan_both/results'

4.测试StarGAN

(i)CelebA面部属性转移

$ python main.py --mode='test' --dataset='CelebA' --c_dim=5 --image_size=128 --test_model='20_1000' 
                 --sample_path='stargan_celebA/samples' --log_path='stargan_celebA/logs' 
                 --model_save_path='stargan_celebA/models' --result_path='stargan_celebA/results'

(ii)RaFD上的面部表情综合

$ python main.py --mode='test' --dataset='RaFD' --c_dim=8 --image_size=128 
                 --test_model='200_200' --rafd_image_path='data/RaFD/test' 
                 --sample_path='stargan_rafd/samples' --log_path='stargan_rafd/logs' 
                 --model_save_path='stargan_rafd/models' --result_path='stargan_rafd/results'

(iii)CelebA的脸部表情综合

$ python main.py --mode='test' --dataset='Both' --image_size=256 --test_model='200000' 
                 --sample_path='stargan_both/samples' --log_path='stargan_both/logs' 
                 --model_save_path='stargan_both/models' --result_path='stargan_both/results'

引文

如果这项工作对您的研究有用,请引用我们的arXiv论文。

@article{choi2017stargan,
 title = {StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation},    
 author = {Choi, Yunjey and Choi, Minje and Kim, Munyoung and Ha, Jung-Woo and Kim, Sunghun and Choo, Jaegul},
 journal= {arXiv preprint arXiv:1711.09020},
 Year = {2017}
}


原创文章,转载请注明 :PyTorch实现"StarGAN:使用单一模型执行多个域的图像转换"。 - pytorch中文网
原文出处: https://ptorch.com/news/116.html
问题交流群 :168117787

最后

以上就是优雅盼望为你收集整理的PyTorch实现"StarGAN:使用单一模型执行多个域的图像转换"。的全部内容,希望文章能够帮你解决PyTorch实现"StarGAN:使用单一模型执行多个域的图像转换"。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部