在上一篇《都在GAN什麼?系列(二)CycleGAN》裡我們主要介紹了2017年時被提出的兩個生成對抗網絡中的圖像轉譯模型:CycleGAN和Pix2Pix,只要設計師輸入相對應的草圖或者其它種類的對應圖(不同季節同樣地點的攝影圖、線圖、顏色標註圖等),這兩個模型都有辦法生成與標籤相對應的樣本,突破了原始GAN只能隨機生成新樣本的限制!
如果你還記得第一篇《都在GAN什麼?系列(一)StyleGAN》中討論的StyleGAN模型,你會發現CycleGAN和Pix2Pix的數據集比StyleGAN還多出了一個要求,那就是要準備成對的數據集。那麼,你是否想過我們要準備對應的數據是要來幹嘛呢?在GAN的計算機科學學術語境範疇裡,我們可以把這對應的數據當作為輸入」條件「。計算機根據輸入「條件」輸出對應的圖像。
穿越時光機回到GAN最初發展的那些年,我們發現在2014年原始GAN被提出之後,馬上就有人意識到人們無法控制GAN生成的樣本類型的這個缺陷而發明了GAN的另一個子模型:CGAN(條件生成對抗網絡)。
GAN衍生模型發展 © Alotaibi, 2020
實際上,CGAN就是上一篇圖像轉譯模型CycleGAN和Pix2Pix的基礎模型,接下來這篇,讓我們回歸基礎,一起來探討CGAN模型的理論和相關有趣的案例!
在這個章節裡我們將跟著GAN的發展時間軸,分為四個部分:GAN(2014), CGAN(2014), DCGAN(2016), PIX2PIX(2017)來討論CGAN的前後發展背景。
- 生成對抗網絡(簡稱GAN)是2014年由Ian Goodfellow等人發表用於訓練基於深度學習的生成模型的體系結構。
- GAN具有兩個網絡,生成器網絡和鑑別器網絡。
- 生成器(G)模型負責生成新的逼真的虛假圖像樣本,鑑別器(D)模型則負責判斷圖像是真實的還是虛假的。
- 這兩個網絡可以是神經網絡,從卷積神經網絡,遞歸神經網絡到自動編碼器。
- GAN在圖像合成方面很有效,它可以為目標數據集生成大量的圖像的新樣本。
「…通過根據附加信息對模型進行調節,可以指導數據生成過程。這種條件可以基於類別標籤...」
Conditional Generative Adversarial NetsAdversarial Networks
2014
原始GAN雖然能夠生出大量的新樣本,但卻沒有辦法控制想生成的樣本的類型。比如在一個包含各種單品的Fashion MNIST數據集的生成訓練裡,我們只想要生成T shirt,帽子,鞋子。如果想達到這樣的效果,我們可以怎麼辦呢?這實際上就是條件生成對抗網絡所要對抗的問題。
- 把額外條件(C) 增加到生成器模型和鑑別器模型裡,原始生成對抗網絡GAN則可以擴展為條件生成對抗網絡 (Conditional Generative Adversarial Network, 簡稱 CGAN)。
- 這個C條件可以是希望生成的標籤(比如Tshirt), 同時它也可以是任何種類的輔助信息,例如類標籤、圖像、語音等。
- 生成器G: 必須生成和條件C匹配的樣本。
- 判別器D: 不僅要判別圖像是否真實,還要判別圖像和條件C是否匹配(比如當C指定是T shirt的時候,如果生成器生成一張帽子的圖像,D的任務是把它判斷為假的圖像,因為這個帽子圖像不是我們想要的,我們想要的是類別為Tshirt的圖像)
cGAN生成的圖像雖有很多缺陷,譬如圖像邊緣模糊,生成的圖像解析度太低等,但是它為後面的Cycle-GAN和Pix2Pix開拓了道路,這兩個模型轉換圖像風格時對屬性特徵的處理方法均受cGAN啟發。
在2016年,Alec Radford,Luke Metz,Soumith Chintala等人提出了在GAN模型中使用卷積神經網絡(CNN) 的GAN衍生模型——DCGAN,這是GAN研究的一個重要裡程碑,因為在這之前所有的GAN用的都是最簡單的線型神經元,此架構變化也大大改善了訓練不穩定,模式崩潰和內部協變量轉換等問題!然而,這一個模型和CGAN將會擦出什麼樣的火花呢?
DCGAN的G和D的結構如下:
答案揭曉!Pix2Pix是基於CGAN和DCGAN結合的一個衍生結構,也是建築學界裡最被廣泛研究的深度學習模型。它使用跟原圖尺寸大小相同的對應圖片作為輸入條件,藉助cGAN完成一些paired data才能完成的任務,如把輪廓圖轉化成真實圖片,把mask轉化成真實圖,把黑白圖轉化成真實圖等,如下:
Pix2Pix案例 © Isola et al., 2017
1)改善GAN生成結果
C條件(或稱為類別標籤)可以提高訓練的穩定性,以及達到更快的訓練和提高生成圖像的素質。
下面比較兩組分別使用無條件GAN和條件GAN生成出來的服裝示例:
使用無條件GAN生成的100件服裝示例 © Brownlee, 2019
在第一組圖例裡,我們可以看到各種各樣的服裝,例如鞋子,毛衣和褲子。大多數項目雖然看起來合理但是它們並不完美,仔細觀察你會發現有些毛衣只有單袖,還有一些看起來很不成樣的鞋子。這都是因為訓練不穩定所造成的bug。
使用條件GAN生成100個服裝項目的示例 © Brownlee, 2019
第二組圖可以看到服裝按列組織。從左到右分別是「 T恤」,「褲子」,「套頭衫」,「禮服」,「外套」,「涼鞋」,「襯衫」,「運動鞋」,「包」和「踝靴」 。我們不僅可以看到隨機生成的衣服是合理的,而且它們也符合預期的類別。
Prisma © https://prisma-ai.com/
Prisma是一個開發於俄羅斯,使用神經網絡和人工智慧將藝術效果應用於圖像轉換的照片編輯應用程式。該應用程式由Alexey Moiseenkov,Oleg Poyaganov,Ilya Frolov,Andrey Usoltsev,Aram Hardy創建,並於2016年6月作為免費應用程式推出。該應用程式的創建基礎是DeepArt的開原始碼,而cGAN是在其中被使用的一種算法。
Prisma App Interface © https://prisma-ai.com/
支持Prisma App技術背後的研究論文是由Leon Gatys,Alexander Ecker和Matthias Bethge在2015年的機器學習會議上發表的 「A Neural Algorithm of Artistic Style」。
參考:https://arxiv.org/pdf/1508.06576.pdf
A Neural Algorithm of Artistic Style © Gathys et al., 2015
使用方法是用戶從本地上傳圖片後選擇各種 「濾鏡」 來變換圖片的藝術效果。之後,上載的圖像將被傳送回Prisma實驗室的伺服器中進行圖像渲染,其過程使用人工智慧的神經網絡來添加藝術效果,輸出的結果被傳送回用戶端的手機。與其他照片編輯應用程式直接在圖像上插入圖層來渲染圖像不同,Prisma通過處理圖像中的各個圖層並重新創建圖像。
Prisma © https://www.imobdevtech.com/Blog/prisma-art-inspired-photo-editing-app
Image generated by Prisma © https://uk.finance.yahoo.com/news/russian-app-uses-ai-repaint-172646370.html
受到Prisma和藝術家Robbie Barrat使用人工智慧生成Balenciaga時裝設計啟發,Facebook 軟體工程師 Jingwen (Jacqueline) Wang 在 2019年使用cGAN生成中國畫。
左:原始圖 中:邊緣圖 右:CGAN生成圖 © Wang, 2019
該訓練模型的目的是拍攝任意圖像並將其轉換為中國繪畫風格。為了達到此目的,他們使用了9000張從中文網站上抓取的山巒蜿蜒的河流的中國畫像作為訓練數據。接著,使用Canny算法提取圖像邊緣圖(edge map)以作為輸入」條件「。
左:原始圖 中:邊緣圖(edge map) 右:生成圖 © Wang, 2019
通過對中國畫數據集進行訓練,模型掌握了畫筆和顏色的使用方式,並且能夠生成甚至連人也難以與真實繪畫區分開的樣本。經由挑選,一些生成的樣本已經提交給杜克大學AI藝術競賽,並在其展覽期間展出。
使用cGAN生成的其它樣本© Wang, 2019
啟發Jacqueline的AI應用案例:AI生成Balenciaga時裝設計 © Schwab, 2018
(三)Suggestive Drawing Among Human and AI
作者Nono Martinex Alonso是一名畢業於哈佛大學的建築系碩士生,他在2017年發表的碩士畢業論文研究了機器與設計師之間循環的想法,以完善「設計過程」的概念。研究成果為開發一種基於cGAN Pix2Pix的啟發性繪畫環境。
Suggestive drawing platform by Nono© Alonso, 2017
在該環境中,人類可以與不同的機器人(bot)協同合作,把素描輸入為機器生成輸出的輸入」條件「,經由機器人的轉譯成為一個人機共作的繪畫。每個機器人都有特定的特徵,並且具有半自主行為。以下列出三個機器人例子:
Suggestive drawing platform by Nono © Alonso, 2017
(一)TEXTURER 紋理機器人
Texturer使用pix2pix-tensorflow從手繪草圖的邊緣生成帶紋理的圖形。通過在上下文菜單中選擇所需的模型,該機器人能夠處理不同的圖像。
Suggestive drawing platform by Nono © Alonso, 2017
(二)SKETCHER 素描機器人
同樣的,Sketcher機器人也使用了Pix2Pix CGAN 模型,這次,訓練數據包含了樹木和城市場景的手繪草圖。在以下GIF中,可以看到通過草繪輪廓就可以獲得一棵樹的手繪細節。在城市場景中,機器人會嘗試對它們進行水彩處理。
Suggestive drawing platform by Nono © Alonso, 2017
(三)COLORIZER 著色機器人
根據草繪輪廓進行有意義的顏色填充。
Suggestive drawing platform by Nono © Nono Martinez
(四)Architectural Visualisation with CGAN
來自卡迪夫大學的 Yick Hin Edwin Chan和Benjamin Spaeth為了模擬建築概念設計中的抽象和成像的循環過程,在今年發表的論文中提出了由兩個 pix2pix cGAN組成的Cyclic-GAN。第一個cGAN將草圖轉換為圖像,第二個cGAN將圖像轉換為草圖。
Architectural Visualisation with CGAN © Chan, Spaeth, 2020
根據作者,草圖繪製是建築師進行思考和進行空間推理的一種循環的過程(下圖)。在這過程中,建築師與他們的草圖互動,試圖尋求一種新的視覺線索,這些線索將激發一種新的看草圖的方式,最終引發新的想法。
Architectural Visualisation with CGAN © Chan, Spaeth, 2020
Cyclic-cGAN工作流程。
1.準備並選擇訓練數據。
2.訓練第一個cGAN:以草圖為輸入,以生成樣本作為輸出。
3.使用與第二步驟中相同的數據訓練集,以生成樣本為輸入並以草圖為輸出來訓練逆cGAN。
4.在第一次迭代中,使用訓練好的第一個cGAN用來從建築師準備的新穎草圖中生成圖像。
5.在第一個cGAN的輸出圖像的基礎上,使用經過訓練的逆cGAN生成草圖。
6.生成的草圖成為第一個cGAN生成另一個圖像的輸入
7.重複第5步和第6步,直到滿足停止條件(即出現一個相對定義的條件)。
作者提出,從實驗結果來看,Cyclic-cGAN能夠將輸入草圖轉換為圖像。通過刪除或突出顯示草圖特徵,Cyclic-cGAN可以鼓勵建築師在草圖中尋找新的含義。紅色虛線顯示的是建築師和機器所共同認為的主要特徵。
Architectural Visualisation with CGAN © Chan, Spaeth, 2020
CGAN作為最早的GAN衍生模型,把原始GAN中的概率全改為「條件」 概率。通過多個實驗,這項改善證明了只要訓練過程中加入特定條件(類標籤、圖像、語音等)便可以改善GAN訓練穩定性,以及讓使用者對生成結果擁有更大的控制能力。
在應用方面,在滿足具有優先條件的情況之下,CGAN可以被充分的發揮作用。只要能有辦法把優先條件轉譯成CGAN模型所能接受的數據格式,CGAN就有辦法替你生成對應的樣本。這也解釋了為何CGAN拓展出來的模型——上期所提到的CycleGAN和Pix2Pix成為建築師和設計師所趨之若鶩的AI模型。上文提到的Yick Hin Edwin Chan和Benjamin Spaeth的論文中便非常全面地解釋了為何他們認為CGAN可能在未來建築設計構想的整個過程中有所幫助。
當然,除了我們介紹過的CycleGAN和Pix2Pix之外呢,基於條件生成的GAN還有其它模型,例如 InfoGAN, ACGAN ,RoCGAN 等等。他們在不同的應用上有針對性地進行模型的改進和理論的拓展,從而得到理想的效果。小編認為,訓練這些模型有意思的地方在於它是一個雙方面的交流過程,它既能夠幫人類拓展創意,也依靠人類的創意來把它們應用在不同的情況上。
參考
(1) GAN
Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu et. al., Generative Adversarial Networks, 2014
https://arxiv.org/abs/1406.2661
(2) CGAN
Mehdi Mirza, Simon Osindero, Conditional Generative Adversarial Nets, 2014
https://arxiv.org/abs/1411.1784
(3) DCGAN
Alec Radford, Luke Metz, Soumith Chintala, Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks, 2016
https://arxiv.org/abs/1511.06434v2
(4) Pix2Pix
Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, Alexei A. Efros, Image-to-Image Translation with Conditional Adversarial Networks, 2017
https://arxiv.org/abs/1611.07004
(5) Prisma
https://prisma-ai.com/
(6) Chinese Brush Painting Generation
Jingwen (Jacqueline) Wang, Conditional Generative Adversarial Network (cGAN) for Chinese Brush Painting Generation, 2019
https://www.linkedin.com/pulse/conditional-generative-adversarial-network-cgan-chinese-wang/
(7) Suggestive Drawing Among Human and AI by Nono Martinez
https://nono.ma/suggestive-drawing(8) Architectural Visualisation with CGAN
Yick Hin Edwin Chan, A. Benjamin Spaeth, Architectural Visualisation with Conditional Generative Adversarial Networks (cGAN), 2020
http://papers.cumincad.org/data/works/att/ecaade2020_017.pdf
(9) Deep Generative Adversarial Networks for Image-to-Image Translation: A Review. Symmetry by Alotaibi, A., 2020
https://www.mdpi.com/2073-8994/12/10/1705/pdf
(10) LoGAN: Generating logos with a generative adversarial neural network conditioned on color by Mino, A., & Spanakis, G., 2018
https://www.researchgate.net/publication/328494719_LoGAN_Generating_Logos_with_a_Generative_Adversarial_Neural_Network_Conditioned_on_color
(11) Using a Generative Adversarial Network (GAN) to Create Novel Artistic Images by Pydi, A., 2019
https://towardsdatascience.com/using-a-generative-adversarial-network-gan-to-create-novel-artistic-images-e06c65ff43ad
(12) How to Develop a Conditional GAN (cGAN) From Scratch by Brownlee, J., 2019
https://machinelearningmastery.com/how-to-develop-a-conditional-generative-adversarial-network-from-scratch/
FAB-UNION is the most advanced digital design and construction platform in China. Scholars, architects, designers, experts and relevant enterprises, institutions and academic groups of digital construction both inside and outside the United Nations pay attention to international digital design and construction news, recommend excellent digital programming and construction works, and promote the development of digital construction technology. Create social space for cutting-edge digital practitioners.