StyleMapGAN之celeba_hq 风格迁移 - 图像编辑 测试——测试实验记录【二】

举报
墨理学AI 发表于 2022/01/12 00:22:32 2022/01/12
【摘要】 🥇 版权: 本文由【墨理学AI】原创、在CSDN首发、感谢查阅❤️ 如果文章对你有帮助、欢迎一键三连 接上篇博文: StyleMapGAN | 测试实验记录【一】 声明:本博文...
  • 🥇 版权: 本文由【墨理学AI】原创、在CSDN首发、感谢查阅
  • ❤️ 如果文章对你有帮助、欢迎一键三连

接上篇博文: StyleMapGAN | 测试实验记录【一】


声明:本博文按照官方readMe步骤,对测试实验过程进行简洁记录,认真整理,仅供参考


StyleMapGAN 基于 StyleGAN2 改进


论文题目

Exploiting Spatial Dimensions of Latent in GAN for Real-time Image Editing

所运行代码 + paper

本博文记录StyleMapGAN 预训练模型 在 celeba_hq 测试数据上的 生成效果

  • 环境搭建参考上一篇博文即可

celeba_hq 测试数据 + 预训练模型准备


作者把相关下载链接和解压逻辑已经在 download.sh 中整理完毕,真的非常 Nice
直接傻瓜式操作,复制命令一路下载即可【看网速,差不多半小时的样子】

# Download raw images and create LMDB datasets using them
# Additional files are also downloaded for local editing

bash download.sh create-lmdb-dataset celeba_hq

# Download the pretrained network (256x256)
bash download.sh download-pretrained-network-256 celeba_hq

# Download the pretrained network (1024x1024 image / 16x16 stylemap / Light version of Generator)
bash download.sh download-pretrained-network-1024 ffhq_16x16


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

1-2

1-3

整个项目 + 以上命令下载解压的数据 ,总共就 占用 20G 存储


du -sh

20G     .


  
 
  • 1
  • 2
  • 3
  • 4
  • 5

项目数据部分目录结构

1-5


Generate images test of celeba_hq 数据集


Reconstruction

Reconstruction Results are saved to expr/reconstruction.

# CelebA-HQ
python generate.py --ckpt expr/checkpoints/celeba_hq_256_8x8.pt --mixing_type reconstruction --test_lmdb data/celeba_hq/LMDB_test


  
 
  • 1
  • 2
  • 3

单卡 GPU 占用 11073MiB

2-1

interpolation

W interpolation Results are saved to expr/w_interpolation


# CelebA-HQ
python generate.py --ckpt expr/checkpoints/celeba_hq_256_8x8.pt --mixing_type w_interpolation --test_lmdb data/celeba_hq/LMDB_test


  
 
  • 1
  • 2
  • 3
  • 4

单卡 GPU 占用 8769MiB

2-2

Local editing

Local editing Results are saved to expr/local_editing. We pair images using a target semantic mask similarity. If you want to see details, please follow preprocessor/README.md.

# Using GroundTruth(GT) segmentation masks for CelebA-HQ dataset.
python generate.py --ckpt expr/checkpoints/celeba_hq_256_8x8.pt --mixing_type local_editing --test_lmdb data/celeba_hq/LMDB_test --local_editing_part nose




  
 
  • 1
  • 2
  • 3
  • 4
  • 5

2-3-0

单卡 GPU 占用 8793MiB

2-3

重建得到的 nose

2-5

synthesized_image 生成的鼻子如下【也有少许失败样例】

2-4

Random Generation

Random Generation Results are saved to expr/random_generation. It shows random generation examples.

python generate.py --mixing_type random_generation --ckpt expr/checkpoints/celeba_hq_256_8x8.pt



  
 
  • 1
  • 2
  • 3

2-5

Style Mixing

Style Mixing Results are saved to expr/stylemixing. It shows style mixing examples.

python generate.py --mixing_type stylemixing --ckpt expr/checkpoints/celeba_hq_256_8x8.pt --test_lmdb data/celeba_hq/LMDB_test


  
 
  • 1
  • 2

单卡 GPU 占用 8769MiB

  • 粗修复结果: 135_coarse.png

2-6-2

  • 细修复结果: 135_fine.png

2-6-3

Semantic Manipulation

Semantic Manipulation Results are saved to expr/semantic_manipulation. It shows local semantic manipulation examples.

# CelebA-HQ
python semantic_manipulation.py --ckpt expr/checkpoints/celeba_hq_256_8x8.pt --LMDB data/celeba_hq/LMDB --svm_train_iter 10000



  
 
  • 1
  • 2
  • 3
  • 4

单卡 GPU 占用 6455MiB


生成【化妆】效果如下

2-7

运行输出如下【运行5分钟左右】

latent_code_shape (64, 8, 8)
positive_train: 5867, negative_train:3134, positive_val:651, negative_val:348
Training boundary. 2021-07-09 10:36:17.187714
/home/墨理/anaconda3/envs/torch15/lib/python3.7/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=10000).  Consider pre-processing your data with StandardScaler or MinMaxScaler.
  % self.max_iter, ConvergenceWarning)
Finish training. 2021-07-09 10:37:23.516691
validate boundary.
Accuracy for validation set: 914 / 999 = 0.914915
classifier.coef_.shape (1, 4096)
boundary.shape (64, 8, 8)
30000 images, 30000 latent_codes
Heavy_Makeup 18


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

我所运行的代码+数据+模型发布


大家参考博文,应该很容易就能够完成博文所示的测试效果


下载数据+代码,通常也不会有太大问题

这里 { 墨理 } 整理了自己 StyleMapGAN 运行的相关代码和基本测试数据 ,非免费提供


主要是整理代码,上传云盘,一顿操作,总共 18 G,前后也折腾了2个小时,敬请理解

  • 索要该代码前置条件
订阅本博客任一付费专栏,即可私信或者添加 墨理  维新{ bravePatch } 向博主索要这份整理后的代码;

  
 
  • 1

tree -L 5 ,该分享的完整项目目录结构如下

 tree -L 5
.
├── assets
│   ├── teaser.jpg
│   └── teaser_video.jpg
├── data
│   └── afhq
│       ├── LMDB_test
│       │   ├── data.mdb
│       │   └── lock.mdb
│       ├── LMDB_train
│       │   ├── data.mdb
│       │   └── lock.mdb
│       ├── LMDB_val
│       │   ├── data.mdb
│       │   └── lock.mdb
│       ├── local_editing
│       └── raw_images
│           ├── test
│           │   └── images
│           ├── train
│           │   └── images
│           └── val
│               └── images
├── demo
│   ├── static
│   │   └── components
│   │       ├── css
│   │       │   ├── image-picker.css
│   │       │   ├── main.css
│   │       │   └── main.scss
│   │       ├── img
│   │       │   ├── afhq
│   │       │   ├── celeba_hq
│   │       │   ├── eraser.png
│   │       │   └── lsun
│   │       └── js
│   │           ├── agh.sprintf.js
│   │           ├── image-picker.min.js
│   │           └── main.js
│   └── templates
│       ├── index.html
│       └── layout.html
├── demo.py
├── download.sh
├── expr
│   ├── checkpoints
│   │   ├── afhq_256_8x8.pt
│   │   ├── celeba_hq_256_8x8.pt
│   │   └── ffhq_1024_16x16.pt
│   ├── checkpoints_afhq
│   │   ├── afhq_256_8x8.pt
│   │   ├── ffhq_1024_16x16.pt
│   │   ├── small_ffhq_16x16_5M.pt
│   │   └── small_ffhq_32x32_2_5M.pt
│   ├── local_editing
│   │   └── celeba_hq
│   │       └── nose
│   │           ├── mask
│   │           ├── mask_ref
│   │           ├── mask_src
│   │           ├── reference_image
│   │           ├── reference_reconstruction
│   │           ├── source_image
│   │           ├── source_reconstruction
│   │           └── synthesized_image
│   ├── semantic_manipulation
│   │   ├── afhq_256_8x8_inverted.npy
│   │   └── Heavy_Makeup
│   │       └── afhq_256_8x8_Heavy_Makeup_boundary.npy
│   └── stylemixing
│       └── afhq
│           ├── 124_coarse.png
│           ├── 124_fine.png
│           ├── 135_coarse.png
│           ├── 135_fine.png
│           ├── 136_coarse.png
│           ├── 136_fine.png
│           ├── 162_coarse.png
│           ├── 162_fine.png
│           ├── 173_coarse.png
│           ├── 173_fine.png
│           ├── 7_coarse.png
│           └── 7_fine.png
├── generate.py
├── install.sh
├── LICENSE
├── metrics
│   ├── calc_inception.py
│   ├── fid.py
│   ├── inception.py
│   ├── __init__.py
│   ├── local_editing.py
│   ├── README.md
│   └── reconstruction.py
├── NOTICE
├── preprocessor
│   ├── pair_masks.py
│   ├── prepare_data.py
│   └── README.md
├── README.md
├── semantic_manipulation
│   ├── 0_neg_indices.npy
│   ├── 0_pos_indices.npy
│   ├── 10_neg_indices.npy
│   ├── 10_pos_indices.npy
│   ├── 11_neg_indices.npy
│   ├── 11_pos_indices.npy
│   ├── 12_neg_indices.npy
│   ├── 12_pos_indices.npy
│   ├── 13_neg_indices.npy
│   ├── 13_pos_indices.npy
│   ├── 14_neg_indices.npy
│   ├── 14_pos_indices.npy
│   ├── 15_neg_indices.npy
│   ├── 15_pos_indices.npy
│   ├── 16_neg_indices.npy
│   ├── 16_pos_indices.npy
│   ├── 17_neg_indices.npy
│   ├── 17_pos_indices.npy
│   ├── 18_neg_indices.npy
│   ├── 18_pos_indices.npy
│   ├── 19_neg_indices.npy
│   ├── 19_pos_indices.npy
│   ├── 1_neg_indices.npy
│   ├── 1_pos_indices.npy
│   ├── 20_neg_indices.npy
│   ├── 20_pos_indices.npy
│   ├── 21_neg_indices.npy
│   ├── 21_pos_indices.npy
│   ├── 22_neg_indices.npy
│   ├── 22_pos_indices.npy
│   ├── 23_neg_indices.npy
│   ├── 23_pos_indices.npy
│   ├── 24_neg_indices.npy
│   ├── 24_pos_indices.npy
│   ├── 25_neg_indices.npy
│   ├── 25_pos_indices.npy
│   ├── 26_neg_indices.npy
│   ├── 26_pos_indices.npy
│   ├── 27_neg_indices.npy
│   ├── 27_pos_indices.npy
│   ├── 28_neg_indices.npy
│   ├── 28_pos_indices.npy
│   ├── 29_neg_indices.npy
│   ├── 29_pos_indices.npy
│   ├── 2_neg_indices.npy
│   ├── 2_pos_indices.npy
│   ├── 30_neg_indices.npy
│   ├── 30_pos_indices.npy
│   ├── 31_neg_indices.npy
│   ├── 31_pos_indices.npy
│   ├── 32_neg_indices.npy
│   ├── 32_pos_indices.npy
│   ├── 33_neg_indices.npy
│   ├── 33_pos_indices.npy
│   ├── 34_neg_indices.npy
│   ├── 34_pos_indices.npy
│   ├── 35_neg_indices.npy
│   ├── 35_pos_indices.npy
│   ├── 36_neg_indices.npy
│   ├── 36_pos_indices.npy
│   ├── 37_neg_indices.npy
│   ├── 37_pos_indices.npy
│   ├── 38_neg_indices.npy
│   ├── 38_pos_indices.npy
│   ├── 39_neg_indices.npy
│   ├── 39_pos_indices.npy
│   ├── 3_neg_indices.npy
│   ├── 3_pos_indices.npy
│   ├── 4_neg_indices.npy
│   ├── 4_pos_indices.npy
│   ├── 5_neg_indices.npy
│   ├── 5_pos_indices.npy
│   ├── 6_neg_indices.npy
│   ├── 6_pos_indices.npy
│   ├── 7_neg_indices.npy
│   ├── 7_pos_indices.npy
│   ├── 8_neg_indices.npy
│   ├── 8_pos_indices.npy
│   ├── 9_neg_indices.npy
│   ├── 9_pos_indices.npy
│   └── list_attr_celeba_hq.txt
├── semantic_manipulation.py
├── training
│   ├── dataset_ddp.py
│   ├── dataset.py
│   ├── __init__.py
│   ├── lpips
│   │   ├── base_model.py
│   │   ├── dist_model.py
│   │   ├── __init__.py
│   │   ├── networks_basic.py
│   │   ├── pretrained_networks.py
│   │   └── weights
│   │       ├── v0.0
│   │       │   ├── alex.pth
│   │       │   ├── squeeze.pth
│   │       │   └── vgg.pth
│   │       └── v0.1
│   │           ├── alex.pth
│   │           ├── squeeze.pth
│   │           └── vgg.pth
│   ├── model.py
│   ├── op
│   │   ├── fused_act.py
│   │   ├── fused_bias_act.cpp
│   │   ├── fused_bias_act_kernel.cu
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   │   ├── fused_act.cpython-37.pyc
│   │   │   ├── __init__.cpython-37.pyc
│   │   │   └── upfirdn2d.cpython-37.pyc
│   │   ├── upfirdn2d.cpp
│   │   ├── upfirdn2d_kernel.cu
│   │   └── upfirdn2d.py
│   └── __pycache__
│       ├── dataset.cpython-37.pyc
│       ├── __init__.cpython-37.pyc
│       └── model.cpython-37.pyc
├── train.py
└── wget-log

53 directories, 167 files


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225

致谢


9-5


文章来源: positive.blog.csdn.net,作者:墨理学AI,版权归原作者所有,如需转载,请联系作者。

原文链接:positive.blog.csdn.net/article/details/118608309

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。