陸萍 董虎勝
摘 要 由于生成對抗網絡能夠比較好地捕捉訓練數據的內在分布,進而生成近乎以假亂真的數據,在最近幾年中受到了廣泛的關注。但是生成對抗網絡仍存在模型過于自由,生成對象不可控的不足。本文對引入了條件約束的生成對抗網絡模型進行了研究,并設計了基于輪廓約束的建筑圖片生成模型。由于在模型訓練時使用了外形輪廓進行引導,生成的圖像能夠做到可控可預測。實驗結果表明該模型具有非常優秀的圖像合成效果。
關鍵詞 生成對抗網絡,條件約束,圖像合成
0引言
在機器學習領域中,生成模型占有著重要的地位,它通過學習數據的內在分布獲取假設分布的模型參數,進而能夠使用學習到的模型采樣出符合該分布的樣本。但是使用傳統的生成學習算法通常需要對數據的分布進行假設,進而使用最大似然估計、馬爾科夫鏈等方法學習模型參數,但受到樣本數的限制,學習到的模型在性能上受到了一定的制約。與這些方法相比,生成對抗網絡(Generative Adversarial Net, GAN)采用了零和博弈的思想來學習真實的數據分布,通過生成器(Generator)與判別器(Discriminator)的對抗來優化提高模型的生成能力與判別能力,因此無需假設數據的分布就可以很好地學習到數據的內在分布。近年來在圖像生成與圖像合成等方向上,GAN模型得到了廣泛的應用和深入的研究。
但是GAN模型在訓練時采用了“粗放”式的訓練方式,所有訓練樣本被不加約束的送入模型訓練,這使得GAN模型在用于圖像生成時具有不可控制的不足,生成的圖像自由度過高且不可預測。而條件約束的GAN模型由于引入標簽約束,因此能夠比較好的避免該問題。本文對條件GAN(Conditional GAN, CGAN)模型進行了研究,并基于CGAN設計了引入輪廓約束的建筑圖片生成模型。
1 GAN模型
GAN模型包含了兩個基本結構:生成器
和判別器
。生成器
的輸入為隨機噪聲
,輸出是與真實訓練數據具有相同結構的樣本
。判別器
接收來自于真實訓練集的樣本
與
,并盡力對它們進行分類。如果輸入樣本為
,則置其標簽為0;如果輸入為真實樣本
,則置其標簽為1。在訓練階段,
努力地讓自己生成的數據與來自真實訓練集的樣本表現一致,而
則盡力地區分出當前樣本是由生成器生成的還是取自于真實訓練集。這種相互對抗并迭代優化的過程會使得不論是生成器
還是判別器
的性能都能夠得到不斷提升,最終
將無法正確地判別數據的來源,也就是
的分類概率將趨于1/2。此時可以認為生成器
學習到了真實數據的分布,由其生成的樣本一般能夠取得“以假亂真”的效果。
若假設噪聲
服從概率為
的分布,真實訓練樣本
服從概率為
的分布,GAN模型的學習目標可以表達為如下的函數形式:
式中
與
分別指代判別器分類概率的數學期望,從式中可知GAN模型的訓練實際上是一個min-max的博弈過程。
2 CGAN模型
在GAN模型中不需要對訓練數據的分布作假設,使用了從數據中直接采樣并訓練的方法,在理論上能夠完全逼近真實數據分布。但是GAN也存在模型過于自由的缺點,使用訓練好的GAN模型生成數據時存在不可控與不可預測的不足。特別是在圖像數據的生成中,像素分布空間巨大,使用GAN模型生成的圖像在類別上隨機,有時會生成大量與需要無關的結果。為了對GAN模型進行約束,可以在GAN模型訓練中添加引導變量
(也稱為條件變量),在使用
作為標簽來約束GAN模型中的生成器
和判別器
后,就可以獲得在指定類別的數據。這種添加了約束條件的GAN模型也被稱為條件GAN(Conditional GAN, CGAN)模型,它的目標可以被表達為如下的函數:
從上式可知CGAN與原始GAN模型的差異僅在于模型中引入了條件約束變量
,但是這樣的改進使得的模型具有了類別的約束,訓練后的生成器
能夠生成指定條件的數據。與GAN相同,CGAN在訓練中也采用了交替迭代優化
和
的方式。
3 本文圖像生成模型
根據對CGAN模型的分析,本文設計了根據指定輪廓生成建筑圖像的CGAN模型,該模型接收如圖1所示的輪廓圖(左)和建筑圖(右),其中輪廓圖用作為訓練樣本
,建筑圖作為模型引導條件
。在創建CGAN模型時,采用了UNet架構設計了生成器,使用8個卷積層與8個反卷積層從輪廓圖中生成偽樣本。在設計判別器時,采用了5卷積層配合Sigmoid層的網絡結構。


在生成器
中接收用訓練輪廓圖,首先通過8個卷積層進行卷積運算。這些卷積層的卷積核被統一設置為[4, 4,
,
]尺寸,其中
為輸入的通道數,
為輸出通道數,卷積設置移動步長均為2。在該部分使用的激活函數均為Leaky ReLU函數,且在每層中均使用了批歸一化處理方法來增強模型的收斂性能。在接收256×256×3的輸入圖像后,各卷積層輸出的特征圖(feature map)尺寸分別為:128×128×64、64×64×128、32×32×256、16×16×512、8×8×512、4×4×512、2×2×512、1×1×512。由于采用了UNet結構,接下來的8層反卷積結構中執行了對應的類逆向處理,使用的反卷積核大小為[4, 4,
,
],步長為2。但是在該過程中使用了ReLU激活函數,且將各前一個反卷積層的輸出與對應卷層積的輸出作了拼接(concatenation)運算。在最后一個反卷積層中使用的是
激活函數,這樣在將輸出結果加上1再乘127.5后即可轉換為Uint8的像素值。
本文在判別器
的結構設計上較生成器簡化了很多,其接收的數據為輸入圖像及其標簽在通道維度上作拼接運算后的結果。在經過5個卷積層后,輸出的結果被送入
層獲得分類輸出概率。在每個卷積層中使用的卷積核均為[4, 4,
,
]的結構,步長值為2,且每層均應用了批歸一化處理與Leaky ReLU激活函數。各層輸出的特征圖大小分別為:128×128×64、64×64×128、32×32×256、32×32×512、32×32×1。
4 實驗
應用上節描述的CGAN圖像生成模型,本文使用圖1所示的訓練樣本(輪廓圖)及對應標簽(建筑圖)對設計的模型進行了訓練與測試。訓練使用的建筑圖像數據集facade由https://phillipi.github.io/pix2pix/下載獲得,該數據集中收集了600張歐式建筑及其對應的輪廓圖。由于這些圖像大小不統一,實驗中將它們的尺寸統一為256×256像素大小,并隨機選擇了300張圖像用作為訓練集,剩余作為測試集。實驗使用的硬件環境為Nvidia GTX 1080顯卡,軟件環境為PyTorch。
實驗中在訓練集上迭代約10萬次后判別器趨于收斂,模型分類概率基本維持在0.5左右浮動。此時生成器生成的圖像如圖2所示,其中由左至右分別為訓練輪廓圖、生成圖像與原建筑圖像,可以看出此時生成的圖像已經基本上較好地逼近了用作為標簽的原建筑圖像。

利用訓練好的生成模型在測試集上測試時獲得了如圖3所示的生成效果,可以看出在測試集上模型基本表現出了良好的生成效果,基本上還原了輪廓圖中的建筑外觀。

5 結束語
本文對具有條件約束的對抗生成網絡CGAN模型進行了研究,并基于PyTorch深度學習框架設計了建筑圖像生成模型。實驗中使用了facade數據集中的圖像進行了模型的訓練,實驗結果表明CGAN模型在引入了條件約束和引導后能夠獲得優秀的圖像生成性能。
參考文獻
[1] Goodfellow Ian, Pouget-Abadie Jean,Mirza Mehdi et al. Generative adversarial nets[C]//Advances in neural information processing systems, 2014:2672-2680.
[2] Mirza, Mehdi and Osindero, Simon. Conditional generative adversarial nets[J]. arXiv preprint arXiv:1411.1784, 2014.
[3] 孫全,曾曉勤.基于生成對抗網絡的圖像修復[J],計算機科學,2018,45(12):229-234,261.
[4] Bousmalis Konstantinos, Silberman Nathan, Dohan David et al. Unsupervised pixel-level domain adaptation with generative adversarial networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition, 2017, 3722--3731
[5] Isola Phillip, Zhu Jun-Yan, Zhou Tinghui et al. Image-to-image translation with conditional adversarial networks [C]// Proceedings of the IEEE conference on computer vision and pattern recognition. 2017, 1125--1134.
作者信息:
陸萍(1979-), 女,江蘇太倉人,副教授/碩士, 研究方向為數字圖像處理
董虎勝(1981.04-),男,江蘇泗洪人,講師,研究方向為機器學習與計算機視覺
基金項目:江蘇省高等院校國內高級訪問學者計劃資助項目(2018GRFX052);江蘇省2019年青藍工程骨干教師培養對象