目 录
第1篇 TensorFlow生成图像的基本原理
第1章 开始使用TensorFlow生成图像 2
1.1 技术要求 2
1.2 理解概率 2
1.2.1 概率分布 3
1.2.2 预测置信度 4
1.2.3 像素的联合概率 4
1.3 用概率模型生成人脸 7
1.3.1 创建面孔 7
1.3.2 条件概率 9
1.3.3 概率生成模型 10
1.3.4 参数化建模 12
1.4 从零开始构建PixelCNN模型 13
1.4.1 自回归模型 14
1.4.2 PixelRNN 14
1.4.3 使用TensorFlow 2构建PixelCNN模型 14
1.5 本章小结 21
第2章 变分自编码器 22
2.1 技术要求 22
2.2 用自编码器学习潜在变量 22
2.2.1 编码器 23
2.2.2 解码器 26
2.2.3 构建自编码器 28
2.2.4 从潜在变量生成图像 29
2.3 变分自编码器 31
2.3.1 高斯分布 31
2.3.2 采样潜在变量 33
2.3.3 损失函数 36
2.4 用变分自编码器生成人脸 38
2.4.1 网络体系结构 38
2.4.2 面部重建 39
2.4.3 生成新面孔 40
2.4.4 采样技巧 40
2.5 控制面部属性 42
2.5.1 潜在空间运算 42
2.5.2 寻找属性向量 42
2.5.3 面部编辑 43
2.6 本章小结 45
第3章 生成对抗网络 46
3.1 技术要求 46
3.2 了解GAN的基本原理 47
3.2.1 GAN的架构 47
3.2.2 价值函数 48
3.2.3 GAN训练步骤 51
3.3 构建深度卷积GAN(DCGAN) 53
3.3.1 结构指南 53
3.3.2 建立Fashion-MNIST的DCGAN 55
3.3.3 训练我们的DCGAN 58
3.4 训练GAN的挑战 60
3.4.1 无信息损失和度量 60
3.4.2 不稳定性 61
3.4.3 梯度消失 61
3.4.4 模式崩塌 62
3.5 建立Wasserstein GAN(WGAN) 63
3.5.1 理解Wasserstein损失 64
3.5.2 实现1-Lipschitz约束 65
3.5.3 重组训练步骤 66
3.5.4 实施梯度惩罚(WGAN-GP) 68
3.5.5 调整CelebA的WGAN-GP 71
3.6 本章小结 73
第2篇 深度生成模型的应用
第4章 图像到图像的翻译 76
4.1 技术要求 76
4.2 条件GAN 77
4.2.1 实现条件DCGAN 78
4.2.2 条件GAN的变体 82
4.3 使用pix2pix进行图像翻译 84
4.3.1 丢弃随机噪声 85
4.3.2 U-Net作为生成器 85
4.3.3 损失函数 88
4.3.4 实现PatchGAN判别器 88
4.3.5 训练pix2pix 90
4.4 CycleGAN的非成对图像翻译 91
4.4.1 未配对的数据集 91
4.4.2 循环一致性损失 92
4.4.3 构建CycleGAN模型 93
4.4.4 分析CycleGAN 95
4.5 用BicycleGAN实现图像翻译多样化 96
4.5.1 理解体系结构 97
4.5.2 实现BicycleGAN 99
4.6 本章小结 104
第5章 风格迁移 105
5.1 技术要求 105
5.2 神经风格迁移 106
5.2.1 利用VGG提取特征 107
5.2.2 内容重构 109
5.2.3 用Gram矩阵重建风格 111
5.2.4 执行神经风格迁移 113
5.3 改进风格迁移 114
5.3.1 使用前馈网络进行快速风格迁移 116
5.3.2 不同的风格特征 117
5.3.3 使用归一化层控制风格 117
5.4 实时任意风格转换 118
5.4.1 实现自适应实例归一化 119
5.4.2 风格迁移网络架构 120
5.4.3 任意风格迁移训练 123
5.5 基于风格的GAN简介 126
5.6 本章小结 131
第6章 人工智能画家 132
6.1 技术要求 132
6.2 iGAN介绍 132
6.2.1 了解流形 134
6.2.2 图像编辑 135
6.3 基于GauGAN的分割图到图像的翻译 139
6.3.1 pix2pixHD介绍 139
6.3.2 空间自适应归一化(SPADE) 140
6.3.3 实际应用GauGAN 146
6.4 本章小结 153
第3篇 高级深度生成技术
第7章 高保真人脸生成 156
7.1 技术要求 156
7.2 ProGAN概述 156
7.2.1 像素归一化 158
7.2.2 使用小批量统计增加图像变化 159
7.2.3 均衡学习率 160
7.3 ProGAN的建立 162
7.3.1 生成器块的建立 162
7.3.2 判别器块的建立 164
7.3.3 逐步发展网络 165
7.3.4 损失函数 169
7.3.5 存在的问题 169
7.4 实际应用StyleGAN 171
7.4.1 风格化生成器 172
7.4.2 实现映射网络 173
7.4.3 添加噪声 174
7.4.4 AdaIN的实现 174
7.4.5 建造生成器块 175
7.4.6 StyleGAN的训练 176
7.5 本章小结 177
第8章 图像生成的自注意力机制 178
8.1 技术要求 178
8.2 谱归一化 179
8.2.1 了解谱范数 179
8.2.2 谱的归一化实现 180
8.3 自注意力模块 181
8.3.1 计算机视觉的自注意力 181
8.3.2 自注意力模块的实现 183
8.4 建立SAGAN 185
8.4.1 构建SAGAN生成器 186
8.4.2 条件批量归一化 187
8.4.3 构建判别器 189
8.4.4 训练SAGAN 190
8.5 实现BigGAN 191
8.5.1 缩放GAN 191
8.5.2 跳过潜在向量 192
8.5.3 共享类嵌入 193
8.5.4 正交归一化 195
8.6 本章小结 196
第9章 视频合成 197
9.1 技术要求 197
9.2 视频合成概述 198
9.2.1 理解人脸视频合成 198
9.2.2 DeepFake概述 199
9.3 实现人脸图像处理 201
9.3.1 从视频中提取图像 201
9.3.2 检测和定位人脸 202
9.3.3 面部特征的检测 203
9.3.4 面部对齐 204
9.3.5 面部扭曲 206
9.4 建立DeepFake模型 208
9.4.1 构建编码器 208
9.4.2 构建解码器 209
9.4.3 训练自编码器 210
9.5 人脸互换 212
9.6 用GAN改进DeepFake 214
9.7 本章小结 216
第10章 总结与展望 217
10.1 GAN的回顾 217
10.1.1 优化和激活功能 218
10.1.2 对抗损失 218
10.1.3 辅助损失 219
10.1.4 归一化 219
10.1.5 正则化 220
10.2 将你的技能付诸实践 221
10.2.1 不要相信你读到的一切 221
10.2.2 你的GPU够强吗 221
10.2.3 使用现有的模型构建你的模型 221
10.2.4 理解模型的局限性 222
10.3 图像处理 222
10.3.1 图像修整 222
10.3.2 图像压缩 224
10.3.3 图像超分辨率 225
10.4 文本转图像 225
10.5 视频重定向 227
10.5.1 人脸再现 228
10.5.2 姿势转换 229
10.5.3 运动转移 230
10.6 神经渲染 231
10.7 本章小结 233
展开