本書是一本使用深度學(xué)習(xí)生成圖像和視頻的實用指南。書中深入淺出地介紹了基于TensorFlow生成圖像的基本原理。本書有三部分共10章,第一部分介紹使用TensorFlow生成圖像的基本知識,包括概率模型、自動編碼器和生成對抗網(wǎng)絡(luò)(GAN);第二部分通過一些應(yīng)用程序案例介紹具體的圖像生成模型,包括圖像到圖像轉(zhuǎn)換技術(shù)、風(fēng)格轉(zhuǎn)換和人工智能(AI)畫家案例;第三部分介紹生成對抗網(wǎng)絡(luò)的具體應(yīng)用,包括高保真面孔生成、圖像生成的自我關(guān)注和視頻合成。本書內(nèi)容詳盡、案例豐富,通過閱讀本書,讀者不僅可以理解基于TensorFlow生成圖像的基本原理,還可以真正掌握圖像生成的技能。本書適合圖像處理、計算機(jī)視覺和機(jī)器學(xué)習(xí)等專業(yè)的本科生、研究生及相關(guān)技術(shù)人員閱讀參考。
Soon Yau Cheong是一名人工智能顧問,也是Sooner.ai公司的創(chuàng)始人,曾與NVIDIA和高通等行業(yè)巨頭合作,在人工智能的各個領(lǐng)域提供咨詢服務(wù),如深度學(xué)習(xí)、計算機(jī)視覺、自然語言處理和大數(shù)據(jù)分析。
冒燕,男,1978年5月生,武漢理工大學(xué)講師,博士學(xué)歷,主要從事光纖傳感及醫(yī)學(xué)OCT系統(tǒng)成像等技術(shù)等研究。發(fā)表論文30余篇,其中SCI/EI檢索論文15篇。獲得授權(quán)國家發(fā)明專利4項,省部級科技獎勵5項,參與編寫出版著作2本。
目 錄
第1篇 TensorFlow生成圖像的基本原理
第1章 開始使用TensorFlow生成圖像 2
1.1 技術(shù)要求 2
1.2 理解概率 2
1.2.1 概率分布 3
1.2.2 預(yù)測置信度 4
1.2.3 像素的聯(lián)合概率 4
1.3 用概率模型生成人臉 7
1.3.1 創(chuàng)建面孔 7
1.3.2 條件概率 9
1.3.3 概率生成模型 10
1.3.4 參數(shù)化建模 12
1.4 從零開始構(gòu)建PixelCNN模型 13
1.4.1 自回歸模型 14
1.4.2 PixelRNN 14
1.4.3 使用TensorFlow 2構(gòu)建PixelCNN模型 14
1.5 本章小結(jié) 21
第2章 變分自編碼器 22
2.1 技術(shù)要求 22
2.2 用自編碼器學(xué)習(xí)潛在變量 22
2.2.1 編碼器 23
2.2.2 解碼器 26
2.2.3 構(gòu)建自編碼器 28
2.2.4 從潛在變量生成圖像 29
2.3 變分自編碼器 31
2.3.1 高斯分布 31
2.3.2 采樣潛在變量 33
2.3.3 損失函數(shù) 36
2.4 用變分自編碼器生成人臉 38
2.4.1 網(wǎng)絡(luò)體系結(jié)構(gòu) 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 本章小結(jié) 45
第3章 生成對抗網(wǎng)絡(luò) 46
3.1 技術(shù)要求 46
3.2 了解GAN的基本原理 47
3.2.1 GAN的架構(gòu) 47
3.2.2 價值函數(shù) 48
3.2.3 GAN訓(xùn)練步驟 51
3.3 構(gòu)建深度卷積GAN(DCGAN) 53
3.3.1 結(jié)構(gòu)指南 53
3.3.2 建立Fashion-MNIST的DCGAN 55
3.3.3 訓(xùn)練我們的DCGAN 58
3.4 訓(xùn)練GAN的挑戰(zhàn) 60
3.4.1 無信息損失和度量 60
3.4.2 不穩(wěn)定性 61
3.4.3 梯度消失 61
3.4.4 模式崩塌 62
3.5 建立Wasserstein GAN(WGAN) 63
3.5.1 理解Wasserstein損失 64
3.5.2 實現(xiàn)1-Lipschitz約束 65
3.5.3 重組訓(xùn)練步驟 66
3.5.4 實施梯度懲罰(WGAN-GP) 68
3.5.5 調(diào)整CelebA的WGAN-GP 71
3.6 本章小結(jié) 73
第2篇 深度生成模型的應(yīng)用
第4章 圖像到圖像的翻譯 76
4.1 技術(shù)要求 76
4.2 條件GAN 77
4.2.1 實現(xiàn)條件DCGAN 78
4.2.2 條件GAN的變體 82
4.3 使用pix2pix進(jìn)行圖像翻譯 84
4.3.1 丟棄隨機(jī)噪聲 85
4.3.2 U-Net作為生成器 85
4.3.3 損失函數(shù) 88
4.3.4 實現(xiàn)PatchGAN判別器 88
4.3.5 訓(xùn)練pix2pix 90
4.4 CycleGAN的非成對圖像翻譯 91
4.4.1 未配對的數(shù)據(jù)集 91
4.4.2 循環(huán)一致性損失 92
4.4.3 構(gòu)建CycleGAN模型 93
4.4.4 分析CycleGAN 95
4.5 用BicycleGAN實現(xiàn)圖像翻譯多樣化 96
4.5.1 理解體系結(jié)構(gòu) 97
4.5.2 實現(xiàn)BicycleGAN 99
4.6 本章小結(jié) 104
第5章 風(fēng)格遷移 105
5.1 技術(shù)要求 105
5.2 神經(jīng)風(fēng)格遷移 106
5.2.1 利用VGG提取特征 107
5.2.2 內(nèi)容重構(gòu) 109
5.2.3 用Gram矩陣重建風(fēng)格 111
5.2.4 執(zhí)行神經(jīng)風(fēng)格遷移 113
5.3 改進(jìn)風(fēng)格遷移 114
5.3.1 使用前饋網(wǎng)絡(luò)進(jìn)行快速風(fēng)格遷移 116
5.3.2 不同的風(fēng)格特征 117
5.3.3 使用歸一化層控制風(fēng)格 117
5.4 實時任意風(fēng)格轉(zhuǎn)換 118
5.4.1 實現(xiàn)自適應(yīng)實例歸一化 119
5.4.2 風(fēng)格遷移網(wǎng)絡(luò)架構(gòu) 120
5.4.3 任意風(fēng)格遷移訓(xùn)練 123
5.5 基于風(fēng)格的GAN簡介 126
5.6 本章小結(jié) 131
第6章 人工智能畫家 132
6.1 技術(shù)要求 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 空間自適應(yīng)歸一化(SPADE) 140
6.3.3 實際應(yīng)用GauGAN 146
6.4 本章小結(jié) 153
第3篇 高級深度生成技術(shù)
第7章 高保真人臉生成 156
7.1 技術(shù)要求 156
7.2 ProGAN概述 156
7.2.1 像素歸一化 158
7.2.2 使用小批量統(tǒng)計增加圖像變化 159
7.2.3 均衡學(xué)習(xí)率 160
7.3 ProGAN的建立 162
7.3.1 生成器塊的建立 162
7.3.2 判別器塊的建立 164
7.3.3 逐步發(fā)展網(wǎng)絡(luò) 165
7.3.4 損失函數(shù) 169
7.3.5 存在的問題 169
7.4 實際應(yīng)用StyleGAN 171
7.4.1 風(fēng)格化生成器 172
7.4.2 實現(xiàn)映射網(wǎng)絡(luò) 173
7.4.3 添加噪聲 174
7.4.4 AdaIN的實現(xiàn) 174
7.4.5 建造生成器塊 175
7.4.6 StyleGAN的訓(xùn)練 176
7.5 本章小結(jié) 177
第8章 圖像生成的自注意力機(jī)制 178
8.1 技術(shù)要求 178
8.2 譜歸一化 179
8.2.1 了解譜范數(shù) 179
8.2.2 譜的歸一化實現(xiàn) 180
8.3 自注意力模塊 181
8.3.1 計算機(jī)視覺的自注意力 181
8.3.2 自注意力模塊的實現(xiàn) 183
8.4 建立SAGAN 185
8.4.1 構(gòu)建SAGAN生成器 186
8.4.2 條件批量歸一化 187
8.4.3 構(gòu)建判別器 189
8.4.4 訓(xùn)練SAGAN 190
8.5 實現(xiàn)BigGAN 191
8.5.1 縮放GAN 191
8.5.2 跳過潛在向量 192
8.5.3 共享類嵌入 193
8.5.4 正交歸一化 195
8.6 本章小結(jié) 196
第9章 視頻合成 197
9.1 技術(shù)要求 197
9.2 視頻合成概述 198
9.2.1 理解人臉視頻合成 198
9.2.2 DeepFake概述 199
9.3 實現(xiàn)人臉圖像處理 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 構(gòu)建編碼器 208
9.4.2 構(gòu)建解碼器 209
9.4.3 訓(xùn)練自編碼器 210
9.5 人臉互換 212
9.6 用GAN改進(jìn)DeepFake 214
9.7 本章小結(jié) 216
第10章 總結(jié)與展望 217
10.1 GAN的回顧 217
10.1.1 優(yōu)化和激活功能 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夠強(qiáng)嗎 221
10.2.3 使用現(xiàn)有的模型構(gòu)建你的模型 221
10.2.4 理解模型的局限性 222
10.3 圖像處理 222
10.3.1 圖像修整 222
10.3.2 圖像壓縮 224
10.3.3 圖像超分辨率 225
10.4 文本轉(zhuǎn)圖像 225
10.5 視頻重定向 227
10.5.1 人臉再現(xiàn) 228
10.5.2 姿勢轉(zhuǎn)換 229
10.5.3 運動轉(zhuǎn)移 230
10.6 神經(jīng)渲染 231
10.7 本章小結(jié) 233