StarGAN——官方 PyTorch 实现

StarGAN——官方 PyTorch 实现

StarGAN——官方 PyTorch 实现

***** 新功能:StarGAN v2 可在获得*****

该存储库提供了以下论文的官方 PyTorch 实现:

StarGAN:用于多领域图像到图像翻译的统一生成对抗网络
1,2、1,2、2,3、2、2,4、1,2    
1韩国大学,2 Clova AI Research,NAVER Corp.
3新泽西学院,4香港科技大学
摘要: 最近的研究表明,两个领域的图像到图像转换取得了显著的成功。然而,现有方法在处理两个以上领域时可扩展性和鲁棒性有限,因为每对图像域都必须独立构建不同的模型。为了解决这一限制,我们提出了 StarGAN,这是一种新颖且可扩展的方法,仅使用一个模型即可对多个域执行图像到图像的转换。StarGAN 的这种统一模型架构允许在单个网络中同时训练具有不同域的多个数据集。这使得 StarGAN 的转换图像质量优于现有模型,并且具有将输入图像灵活地转换到任何所需目标域的新功能。我们通过实证证明了我们的方法在面部属性转移和面部表情合成任务中的有效性。

依赖项

  • (Tensorboard 可选)

下载数据集

要下载 CelebA 数据集:  git clone https://github.com/yunjey/StarGAN.git cd StarGAN/ bash download.sh celeba

要下载 RaFD 数据集,您必须从请求访问该数据集。然后,您需要按照所述创建文件夹结构。

训练网络

要在 CelebA 上训练 StarGAN,请运行下面的训练脚本。请参阅查看 CelebA 数据集中可选属性的列表。如果您更改参数selected_attrs,也应c_dim相应地更改参数。  # Train StarGAN using the CelebA dataset python main.py --mode train --dataset CelebA --image_size 128 --c_dim 5 \ --sample_dir stargan_celeba/samples --log_dir stargan_celeba/logs \ --model_save_dir stargan_celeba/models --result_dir stargan_celeba/results \ --selected_attrs Black_Hair Blond_Hair Brown_Hair Male Young # Test StarGAN using the CelebA dataset python main.py --mode test --dataset CelebA --image_size 128 --c_dim 5 \ --sample_dir stargan_celeba/samples --log_dir stargan_celeba/logs \ --model_save_dir stargan_celeba/models --result_dir stargan_celeba/results \ --selected_attrs Black_Hair Blond_Hair Brown_Hair Male Young

要在 RaFD 上训练 StarGAN:  # Train StarGAN using the RaFD dataset python main.py --mode train --dataset RaFD --image_size 128 \ --c_dim 8 --rafd_image_dir data/RaFD/train \ --sample_dir stargan_rafd/samples --log_dir stargan_rafd/logs \ --model_save_dir stargan_rafd/models --result_dir stargan_rafd/results # Test StarGAN using the RaFD dataset python main.py --mode test --dataset RaFD --image_size 128 \ --c_dim 8 --rafd_image_dir data/RaFD/test \ --sample_dir stargan_rafd/samples --log_dir stargan_rafd/logs \ --model_save_dir stargan_rafd/models --result_dir stargan_rafd/results

要在 CelebA 和 RafD 上训练 StarGAN:  # Train StarGAN using both CelebA and RaFD datasets python main.py --mode=train --dataset Both --image_size 256 --c_dim 5 --c2_dim 8 \ --sample_dir stargan_both/samples --log_dir stargan_both/logs \ --model_save_dir stargan_both/models --result_dir stargan_both/results # Test StarGAN using both CelebA and RaFD datasets python main.py --mode test --dataset Both --image_size 256 --c_dim 5 --c2_dim 8 \ --sample_dir stargan_both/samples --log_dir stargan_both/logs \ --model_save_dir stargan_both/models --result_dir stargan_both/results

相同格式的文件夹结构并运行以下命令:  # Train StarGAN on custom datasets python main.py --mode train --dataset RaFD --rafd_crop_size CROP_SIZE --image_size IMG_SIZE \ --c_dim LABEL_DIM --rafd_image_dir TRAIN_IMG_DIR \ --sample_dir stargan_custom/samples --log_dir stargan_custom/logs \ --model_save_dir stargan_custom/models --result_dir stargan_custom/results # Test StarGAN on custom datasets python main.py --mode test --dataset RaFD --rafd_crop_size CROP_SIZE --image_size IMG_SIZE \ --c_dim LABEL_DIM --rafd_image_dir TEST_IMG_DIR \ --sample_dir stargan_custom/samples --log_dir stargan_custom/logs \ --model_save_dir stargan_custom/models --result_dir stargan_custom/results

使用预先训练的网络

要下载预训练模型检查点,请运行以下脚本。预训练模型检查点将被下载并保存到./stargan_celeba_128/models目录中。  $ bash download.sh pretrained-celeba-128x128

要使用预训练模型翻译图像,请运行下面的评估脚本。翻译后的图像将保存到./stargan_celeba_128/results目录中。  $ python main.py --mode test --dataset CelebA --image_size 128 --c_dim 5 \ --selected_attrs Black_Hair Blond_Hair Brown_Hair Male Young \ --model_save_dir='stargan_celeba_128/models' \ --result_dir='stargan_celeba_128/results'

StarGAN v2 - 官方 PyTorch 实现

StarGAN v2:面向多个领域的多样化图像合成
*、 *、 *、
在 CVPR 2020 中。(* 表示贡献相同)
论文:
视频:
摘要: 良好的图像到图像转换模型应学习不同视觉域之间的映射,同时满足以下属性:1)生成图像的多样性和 2)跨多个域的可扩展性。现有方法要么解决多样性有限,要么为所有域提供多个模型。我们提出了 StarGAN v2,这是一个解决这两个问题的单一框架,并且比基线显示出显着改进的结果。在 CelebA-HQ 和新的动物面孔数据集 (AFHQ) 上进行的实验验证了我们在视觉质量、多样性和可扩展性方面的优势。为了更好地评估图像到图像转换模型,我们发布了 AFHQ,这是具有大量域间和域内变化的高质量动物面孔。代码、预训练模型和数据集可在 clovaai/stargan-v2 上找到。

预告视频

单击图片即可观看预告视频。

TensorFlow 实现

找到。

软件安装

克隆此存储库:  git clone https://github.com/clovaai/stargan-v2.git cd stargan-v2/

安装依赖项:  conda create -n stargan-v2 python=3.6.7 conda activate stargan-v2 conda install -y pytorch=1.4.0 torchvision=0.5.0 cudatoolkit=10.0 -c pytorch conda install x264=='1!152.20180717' ffmpeg=4.0.2 -c conda-forge pip install opencv-python==4.1.2.30 ffmpeg-python==0.2.0 scikit-image==0.16.2 pip install pillow==7.0.0 scipy==1.2.1 tqdm==4.43.0 munch==2.5.0

数据集和预训练网络

我们提供了一个脚本来下载 StarGAN v2 中使用的数据集和相应的预训练网络。数据集和网络检查点将分别下载并存储在dataexpr/checkpoints目录中。

CelebA-HQ。要下载数据集和预先训练的网络,请运行以下命令:  bash download.sh celeba-hq-dataset bash download.sh pretrained-network-celeba-hq bash download.sh wing

AFHQ。要下载数据集和预训练网络,请运行以下命令:  bash download.sh afhq-dataset bash download.sh pretrained-network-afhq

生成插值视频

下载预训练网络后,您可以合成反映参考图像的多种风格(例如发型)的输出图像。以下命令将生成的图像和插值视频保存到目录中expr/results

CelebA-HQ。要生成图像和插值视频,请运行以下命令:  python main.py --mode sample --num_domains 2 --resume_iter 100000 --w_hpf 1 \ --checkpoint_dir expr/checkpoints/celeba_hq \ --result_dir expr/results/celeba_hq \ --src_dir assets/representative/celeba_hq/src \ --ref_dir assets/representative/celeba_hq/ref

要对自定义图片进行变换,首先需要手动裁剪图片,使脸部在整体中所占的比例与 CelebA-HQ 相似。然后运行以下命令进行额外的精细旋转和裁剪。目录中的所有自定义图片都inp_dir将对齐并存储在out_dir目录中。  python main.py --mode align \ --inp_dir assets/representative/custom/female \ --out_dir assets/representative/celeba_hq/src/female

AFHQ。要生成图像和插值视频,请运行以下命令:  python main.py --mode sample --num_domains 3 --resume_iter 100000 --w_hpf 0 \ --checkpoint_dir expr/checkpoints/afhq \ --result_dir expr/results/afhq \ --src_dir assets/representative/afhq/src \ --ref_dir assets/representative/afhq/ref

评估指标

要使用和评估 StarGAN v2 ,请运行以下命令:  # celeba-hq python main.py --mode eval --num_domains 2 --w_hpf 1 \ --resume_iter 100000 \ --train_img_dir data/celeba_hq/train \ --val_img_dir data/celeba_hq/val \ --checkpoint_dir expr/checkpoints/celeba_hq \ --eval_dir expr/eval/celeba_hq # afhq python main.py --mode eval --num_domains 3 --w_hpf 0 \ --resume_iter 100000 \ --train_img_dir data/afhq/train \ --val_img_dir data/afhq/val \ --checkpoint_dir expr/checkpoints/afhq \ --eval_dir expr/eval/afhq

请注意,评估指标是使用随机潜在向量或参考图像计算的,两者都由选择。在论文中,我们报告了使用不同种子数进行的 10 次测量的平均值。下表显示了潜在引导和参考引导合成的计算值。

数据集FID(潜在)LPIPS(潜在)FID(参考)LPIPS(参考)已用时间
celeba-hq13.73±0.060.4515±0.000623.84±0.030.3880±0.000149分51秒
afhq16.18±0.150.4501±0.000719.78±0.010.4315±0.000264分49秒

训练网络

要从头开始训练 StarGAN v2,请运行以下命令。生成的图像和网络检查点将分别存储在和expr/samples目录中expr/checkpoints。在单个 Tesla V100 GPU 上,训练大约需要三天时间。请参阅了解训练参数及其说明。  # celeba-hq python main.py --mode train --num_domains 2 --w_hpf 1 \ --lambda_reg 1 --lambda_sty 1 --lambda_ds 1 --lambda_cyc 1 \ --train_img_dir data/celeba_hq/train \ --val_img_dir data/celeba_hq/val # afhq python main.py --mode train --num_domains 3 --w_hpf 0 \ --lambda_reg 1 --lambda_sty 1 --lambda_ds 2 --lambda_cyc 1 \ --train_img_dir data/afhq/train \ --val_img_dir data/afhq/val

动物面部-HQ 数据集 (AFHQ)

我们发布了一个新的动物脸部数据集,Animal Faces-HQ (AFHQ),包含 15,000 张 512×512 分辨率的高质量图像。上图显示了 AFHQ 数据集的示例图像。该数据集包括猫、狗和野生动物三个领域,每个领域提供约 5000 张图像。通过拥有多个(三个)领域和每个领域中不同品种的不同图像,AFHQ 设置了一个具有挑战性的图像到图像转换问题。对于每个领域,我们选择 500 张图像作为测试集,并将所有剩余图像作为训练集。要下载数据集,请运行以下命令:  bash download.sh afhq-dataset

[更新:2021.07.01]我们使用高质量调整大小过滤(即 Lanczos 重采样)重建了原始 AFHQ 数据集。请参阅,该论文引起了人们对下采样的不良软件库情况的关注。我们感谢作者对更新后的 AFHQ 数据集的建议和贡献。如果您使用更新后的数据集,我们建议不仅引用我们的论文,还引用他们的论文。

与原始数据集的区别如下:

  • 我们使用 Lanczos 重采样而不是最近邻下采样来调整图像大小。
  • 大约 2% 的原始图像已被删除。因此,该集合现在有 15803 幅图像,而原始图像有 16130 幅。
  • 图像保存为 PNG 格式以避免压缩失真。这会使文件比原始文件大,但这是值得的。

要下载更新的数据集,请运行以下命令:  bash download.sh afhq-v2-dataset

执照

Read more

60个“特征工程”计算函数(Python代码)

60个“特征工程”计算函数(Python代码)

转自:coggle数据科学 近期一些朋友询问我关于如何做特征工程的问题,有没有什么适合初学者的有效操作。 特征工程的问题往往需要具体问题具体分析,当然也有一些暴力的策略,可以在竞赛初赛前期可以带来较大提升,而很多竞赛往往依赖这些信息就可以拿到非常好的效果,剩余的则需要结合业务逻辑以及很多其他的技巧,此处我们将平时用得最多的聚合操作罗列在下方。 最近刚好看到一篇文章汇总了非常多的聚合函数,就摘录在下方,供许多初入竞赛的朋友参考。 聚合特征汇总 pandas自带的聚合函数 * 其它重要聚合函数 其它重要聚合函数&分类分别如下。 def median(x):     return np.median(x) def variation_coefficient(x):     mean = np.mean(x)     if mean != 0:         return np.std(x) / mean     else:         return np.nan def variance(x):     return

By Ne0inhk
90w,确实可以封神了!

90w,确实可以封神了!

要说24年一定最热的技术,还得是AIGC! 前段时间阿里旗下的开源项目,登上GitHub热榜! AI大热,如今ChatGPT的优异表现,必然会出现各种细分场景应用的工具软件,和大量岗位项目! 山雨欲来风满楼,强人工智能的出现,所有科技公司已经开始巨量扩招此领域的人才。算法的岗位,近三个月已经增长68%!这件事在HR届也是相当震撼的。 目前各行各业都不景气的市场,人工智能岗位却一直保持常青!甚至同属AI边缘岗都比其他岗薪资高40%! 与此同时,AI算法岗上岸也不简单,竞争激烈,好公司核心岗位不用说,谁都想去。 所以事实就是,想要上岸,门槛也逐渐变高,项目经历、实习经历都很重要,越早明白这个道理就越能提前建立起自己的优势。 但我在b站逛知识区的时候,经常看到有些同学,因为一些客观原因导致无法参加实习,这种情况下,如果你想提升背景,增加项目经历的话,可以试试这个《CV/NLP 算法工程师培养计划》。 目前已经有上千位同学通过该计划拿到offer了,最新一期学员就业薪资最高能拿到78K!年薪94w! 优势就是有BAT大厂讲师带领,手把手带做AI真实企业项目(包含CV、NLP等

By Ne0inhk
再见nohup!试试这个神器,Python Supervisor!

再见nohup!试试这个神器,Python Supervisor!

👇我的小册 45章教程:() ,原价299,限时特价2杯咖啡,满100人涨10元。 作者丨Ais137 https://juejin.cn/post/7354406980784373798 1. 概述 Supervisor 是一个 C/S 架构的进程监控与管理工具,本文主要介绍其基本用法和部分高级特性,用于解决部署持久化进程的稳定性问题。 2. 问题场景 在实际的工作中,往往会有部署持久化进程的需求,比如接口服务进程,又或者是消费者进程等。这类进程通常是作为后台进程持久化运行的。 一般的部署方法是通过 nohup cmd & 命令来部署。但是这种方式有个弊端是在某些情况下无法保证目标进程的稳定性运行,有的时候 nohup 运行的后台任务会因为未知原因中断,从而导致服务或者消费中断,进而影响项目的正常运行。 为了解决上述问题,通过引入 Supervisor 来部署持久化进程,提高系统运行的稳定性。 3. Supervisor 简介 Supervisor is a client/

By Ne0inhk
第一本给程序员看的AI Agent图书上市了!

第一本给程序员看的AI Agent图书上市了!

AI Agent火爆到什么程度? OpenAI创始人奥特曼预测,未来各行各业,每一个人都可以拥有一个AI Agent;比尔·盖茨在2023年层预言:AI Agent将彻底改变人机交互方式,并颠覆整个软件行业;吴恩达教授在AI Ascent 2024演讲中高赞:AI Agent是一个令人兴奋的趋势,所有从事AI开发的人都应该关注。而国内的各科技巨头也纷纷布局AI Agent平台,如:钉钉的AI PaaS、百度智能云千帆大模型平台等等。 Agent 是未来最重要的智能化工具。对于程序员来说,是时候将目光转向大模型的应用开发了,率先抢占AI的下一个风口AI Agent。 小异带来一本新书《大模型应用开发 动手做 AI Agent》,这本书由《GPT图解》的作者黄佳老师创作,从0到1手把手教你做AI Agent。现在下单享受5折特惠! ▼点击下方,即可5折起购书 有这样一本秘籍在手,程序员们这下放心了吧,让我们先来揭开 Agent 的神秘面纱。 AI Agent 面面观

By Ne0inhk