在上一篇《都在GAN什麼?系列(一)StyleGAN》裡我們介紹了2014年時被提出的生成對抗網絡(GAN)可有效地通過改進鑑別器(Discriminator)而生成高質量的圖像。以及4年後,StyleGAN作為GAN體系架構的其中一個子架構對生成器(Generator)的架構提出了三大更改,包括(一)使用映射網絡(mapping network)將潛在空間 (latent space) 中的點映射到中間潛在空間 (intermediate latent space),(二)利用中間潛在空間以控制生成器模型中每個點的樣式,(三)引入噪聲增加圖像的逼真性和多樣性。
StyleGAN提出的突破性發展是減少生成圖像的隨機性以及讓設計師對生成圖像中的特徵擁有特定的控制。而接下來這篇要介紹的則是GAN模型中的另一個子架構 — CycleGAN。
GAN 地圖 © Image from Google
「 圖像到圖像的轉譯是一類視覺和圖形問題,其目標是使用成對圖像對訓練集來學習輸入圖像和輸出圖像之間的映射關係。」
Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 2017
CycleGAN被提出的背景在於為了解決圖像轉譯的問題。圖像轉譯的例子有:
- 將夏季景觀轉譯為冬季景觀(或相反)。
- 將畫作轉譯成照片(或相反)。
- 將馬匹轉譯成斑馬(或相反)。
傳統意義上,訓練圖像到圖像的轉譯需要包含成對的數據集。比如一個包含圖像X(夏日風景)以及另一套相同圖像但經過預期修改的圖像Y(冬季風景)的大數據集。那到底什麼是 「成對的數據集」 和 「非成對數據集」?看看下圖:
成對及非成對數據圖像 © Image from Paper
事實上,對於許多使用者來說,這種成對的訓練數據集的要求是一個限制!因為準備這些數據集的過程成本高昂且具有挑戰性,而且就目前大數據發展的現況,在許多情況下根本就不存在適合拿來套用的數據集。
CycleGAN以前另一個圖像轉譯模型 - Pix2Pix
哈佛碩士生Stanislas Chaillou在2019年的畢業作品ArchiGAN自動生成平面圖模型的讓你只需簡單的幾個動作把基地、門、窗標誌出來即可以生成一個公寓平面圖。該設計程序是由 Pix2Pix(CycleGAN之前出現的另一個圖像轉譯訓練模型)來訓練的。
Pix2Pix © Image from Google
Stanislas Chaillou在訓練該模型時為了收集大量成對的數據,利用了多位幫手來把平面圖人手標籤至成對的意向圖。由於Pix2Pix的數據集要求是嚴格的配對圖,因此整個過程涉及龐大的時間和費用,造成Pix2Pix的使用代價成本比較高,而這個問題引起了學者關注。
人手標籤意向圖 © Image from ArchiGAN paper
為了解決這個問題,後來的CycleGAN便出現啦!CycleGAN模型可以任意使用兩個不相關的圖像數據集,並從每個數據集中提取一般特徵並將其使用於圖像轉譯的過程。準備的配對數據集可以是兩個完全無關(在不同場景、不同位置、不同季節的)數據集圖像X以及圖像Y。因此,大大降低了準備數據集的難度以及限制要求!
1)增加生成器和鑑別器
傳統GAN模型只有一個生成器 (generator) 與一個鑑別器 (discriminator),而CycleGAN的架構模型則涉及了兩個生成器和兩個鑑別器。
CycleGAN 架構示意圖 © Image from Google
首先,第一個生成器從第一域(domain)獲取圖像作為輸入,並輸出第二域的圖像。第二個生成器從第二域獲取圖像作為輸入,並生成第一域的圖像 (圖1)。然後鑑別器模型計算所生成圖像的相似度,並相應地更新生成器模型。
然而,雖然以上架構足以在每層域中生成合理的圖像,但並不能夠生成圖像的轉譯!因此,CycleGAN對原始架構又增加了以下的損失函數。
2)增加循環一致性 (cycle consistency)
循環一致性這一概念最早來自機器翻譯,其核心在於從英文翻譯為西班牙語的句子應該在從西班牙語又返回翻譯為英語的時候,與原始的句子相同。
谷歌機器翻譯 © Image from Google
CycleGAN對原始架構增加的損失函數稱為循環一致性(cycle consistency),可以分為正向循環一致性損失(forward cycle consistency loss)和反向循環一致性損失(backward cycle consistency loss)。
(1) 左:正向循環一致性損失(forward cycle consistency loss)
(2)右:反向循環一致性損失(backward cycle consistency loss)
© Image from Medium
新添的損失函數的目的在於計算第二個生成器的生成輸出與原始圖像之間的相似度差值,基於此方法來充當生成器模型的 「正則化「,引導新的圖像生成過程朝著圖像轉譯的方向發展。
基於CycleGAN的圖像轉譯© Image from Paper
CycleGAN 算法架構 © Image from Google
CycleGAN生成器由三個部分組成:
(一)編碼器 ENCODER
由3個卷積組成,從輸入圖像中提取特徵,並壓縮圖像的特徵表示量,一次方法減少圖像的大小。例如輸入圖像為(256、256、3),編碼器的輸出將為(64、64、256)。
(二)變壓器 TRANSFORMER
通過激勵函數的編碼器將輸出傳遞到變壓器中。變壓器的大小由輸入的大小決定,一般是由6或9個殘餘塊組成。
(三)解碼器 DECODER
接受變壓器的輸出並使用2反卷積塊步幅 (fraction stride) 將圖像特徵的大小增加到原始大小。
生成器架構 © Image from Geeksforgeeks
在鑑別器中,作者使用了PatchGAN鑑別器。PatchGAN和常規GAN鑑別器之間的區別在於,常規GAN從256×256圖像映射到單個標量輸出,表示 「真實」 或 「偽造」 ,而PatchGAN從256×256映射到NxN(70×70)的輸出X數組,其中每個Xij表示圖像中的色塊ij是真實的還是假的。
鑑別器架構 © Image from Geeksforgeeks
與其它神經網絡風格遷移的作品不同,CycleGAN學習的對象是整個數據集的流派風格,而不是指定的圖像風格。以下是芝加哥和埃文斯頓地標風景圖在經過3種單獨的網絡訓練之後的結果。
CycleGAN 風格遷移 © Image from Paper
其中,也有學者在2018年的時候把CycleGAN在Github的開原始碼放入Grasshopper進行代碼編輯,大量的數據加上快速的遠程伺服器進行即使圖像轉譯。
3D模型至木結構風格遷移模型 © GIF from Youtube
3D模型至玻璃大廈風格遷移模型 © GIF from Youtube
3D模型至速寫風格遷移模型 © GIF from Youtube
此外,作者也實驗了用CycleGAN把文藝復興時期的著名畫家的畫轉譯成真實的照片。為了改善效果,作者添加了身份損失函數(Identity Lost Function)。照片效果雖然精度不高,但是卻表現出了現實風景的真實感。
上:身份損失函數(Identity Lost Function)
下:繪畫轉譯成照片
© Image from Paper
將冬季風景的照片轉換為夏季風景,以及將夏季風景的圖像轉換為冬季風景。
CycleGAN 季節轉換 © Image from paper
將對象從一個ImageNet類轉換為另一個類,例如:斑馬轉換為馬,蘋果轉換為橘子等等。
CycleGAN 物件變形 © Image from paper
對於今天大數據發展的現況來說,儘管大數據在近年來已經強大擴展,但是數據種類還是非常局限,因此能夠直接拿來使用的數據還是少數,最終使用者還是必須花大量時間來自己準備和清洗數據。因此,CycleGAN的出現可以說改善了對訓練數據的準備要求,在數據集的要求方面上降低了了廣泛大眾對進行GAN訓練的入門門檻。(當然這只是針對數據要求,每個模型各有獨特的應用方面)。
在應用方面,作者在文章中示範了CycleGAN可以用於風格遷移、物體變形、季節轉換、繪畫轉譯成照片等等的應用。然而目前CycleGAN的其中一個比較主要的問題是儘管執行顏色或紋理轉譯的時候非常有用,但凡涉及幾何轉換的效果都不是非常理想。這則涉及到CycleGAN生成器訓練架構設計。
圖像轉譯的發展目前處在胚胎時期,速度和轉譯精準度還有很大的進步空間,但是無可否認的我們可以想像一旦在未來這項技術漸趨成熟後會給市場和職場帶來更多的的改變,就如自然語言處理(NLP)的轉譯發展至今已經在人類生活中無法分割一般。加州大學伯克利分校電氣工程和計算機科學系教授Alexei Efros 在上周與GAN創始人、ML先驅者Andrew Ng等等的一個討論中甚至認為目前在GAN領域中,知識半衰期只有3個月,與以往的3-5年相比是極短的時間,因此可以預想這些GAN模型目前所遇到的訓練瓶頸將會在短期內的未來不管在什麼領域都可以找到適用的應用範圍,達到突破性發展!
參考
(1) CycleGAN
Jun-Yan Zhu, Taesung Park, Philip Isola & Alexei A. Efros, Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Network ,2017
https://arxiv.org/abs/1703.10593
(2) AI+Architecture
Stanislas Chaillou, Ai+Architecture Towards a New Approach ,2019
https://issuu.com/stanislaschaillou/docs/stanislas_chaillou_thesis_
(3) Cycle Generative Adversarial Network (CycleGAN)
https://www.geeksforgeeks.org/cycle-generative-adversarial-network-cyclegan-2/
(4) A Gentle Introduction to CycleGAN for Image Translation
https://machinelearningmastery.com/what-is-cyclegan/
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.