都在GAN什麼?系列(二)CycleGAN

2021-01-20 FabUnion

在上一篇《都在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.

相關焦點

  • 異父異母的三胞胎:CycleGAN, DiscoGAN, DualGAN
    事實上,dualgan這篇paper的出發點就來源於此,並且這三篇文章的中心創新點(cycle consistentcy)就是dual learning中的想法。(雖然cyclegan似乎不知道這篇論文,並沒有引用dual learning)CycleGAN的出發點更抽象。
  • 超全的GAN PyTorch+Keras實現集合
    機器之心編譯參與:劉曉坤、思源、李澤南生成對抗網絡一直是非常美妙且高效的方法,自 14 年 Ian Goodfellow 等人提出第一個生成對抗網絡以來,各種變體和修正版如雨後春筍般出現,它們都有各自的特性和對應的優勢。
  • GAN快速入門資料推薦:17種變體的Keras開原始碼,附相關論文
    在這類GAN變體中,生成器生成的每張圖像,都帶有一個類別標籤,鑑別器也會同時針對來源和類別標籤給出兩個概率分布。論文中描述的模型,可以生成符合1000個ImageNet類別的128×128圖像。Adversarial NetworksEmily Denton, Sam Gross, Rob Fergushttps://arxiv.org/abs/1611.06430CGAN條件式生成對抗網絡,也就是conditional GAN,其中的生成器和鑑別器都以某種外部信息為條件
  • 都在GAN什麼?系列(三)CGAN
    在上一篇《都在GAN什麼?系列(二)CycleGAN》裡我們主要介紹了2017年時被提出的兩個生成對抗網絡中的圖像轉譯模型:CycleGAN和Pix2Pix,只要設計師輸入相對應的草圖或者其它種類的對應圖(不同季節同樣地點的攝影圖、線圖、顏色標註圖等),這兩個模型都有辦法生成與標籤相對應的樣本,突破了原始GAN只能隨機生成新樣本的限制!
  • 朱俊彥團隊提出GAN壓縮算法:計算量減少20倍,GPU、CPU統統能加速
    構造合適的損失函數因為GAN壓縮算法要面對CycleGAN、pix2pix還有GauGAN,這些模型的損失函數都不盡相同,所以需要構造一個新的損失函數。NAS自動裁剪通道現在的生成器在所有層上都使用手動設計,因此通道數會有冗餘。為了進一步壓縮模型,作者使用通道修剪自動選擇生成器的通道寬度減少冗餘,可以二次減少計算量。對於每個卷積層,可以從8的倍數中選擇通道數,可以平衡MAC和硬體並行性。
  • 成對抗網絡圖像處理工具 CycleGAN
    CycleGAN 目前在針對幾何、顏色和風格上的轉化都不錯。部分內容來自:品玩下載地址:https://www.oschina.net/p/cyclegan(可點原文連結之美進入)維權聲明:凡是機器人2025發布的文章都會找原文作者授權並給予白名單,若沒有授權到的文章,如涉及版權等問題,請及時聯繫運營者(微信:xiaoejiqiren)我們將第一時間處理,謝謝!
  • 如何使用GAN做一個禿頭生產器
    我們看到了什麼?Bald!對,這正是我們想要的禿頭屬性!  AI Studio是百度飛槳提供的免費雲算力平臺,具有免費的GPU算力,notebook的UI風格,預裝的PaddlePaddle,非常適合我這樣的新手煉丹師去隨意搗鼓。
  • 帶集成驅動和保護功能的高壓GaN FET在工業和電信應用中將功率密度...
    與AC/DC電源、機器人、可再生能源、電網基礎設施、電信和個人電子應用中的矽場效應電晶體(FET)相比,LMG341x系列使設計人員能夠創建更小、更高效和更高性能的設計。有關詳細信息,請訪問 http://www.ti.com.cn/product/LMG3410R050-pr, http://www.ti.com.cn/product/LMG3410R070-pr ?
  • 這個項目利用CycleGAN生成不同屬性的神奇寶貝
    惡屬性 → 其他屬性參考連結:https://www.rileynwong.com/blog/2019/5/22/pokemon2pokemon-using-cyclegan-to-generate-pokemon-as-different-elemental-types
  • 生成式對抗網絡GAN的高級議題
    GAN表現出消失的梯度問題解決方案不是預先訓練鑑別器,或者與發生器相比降低其學習率。如果生成器和鑑別器都以某些額外信息c為條件,我們可以將GAN的生成模型擴展到條件模型。該c可以是任何類型的輔助信息,例如類標籤或來自其他模態的數據。我們可以通過將c作為附加輸入層饋入鑑別器和發生器來執行調節。在生成器中,先前輸入噪聲p(z)和c在聯合隱藏表示中組合,並且對抗訓練框架允許在如何組成該隱藏表示時具有相當大的靈活性。在鑑別器中,x和c表示為輸入和判別函數。
  • 歷時6 年發展,GAN 領域當下最熱門的「弄潮兒」都有哪些?
    從數學的角度來看,任何數據都有自己的概率分布特點。生成式模型的任務是從有限的訓練數據中總結出這個概率,將這個概率學習成一個「公式」、一個「模型」或者一種「模式」。當它學習到這個樣本的分布特點後,模型就能夠據此源源不斷地生成新的偽數據了。有些童鞋可能會問這些偽數據有什麼用呢?例如在影視作品中,每個群眾演員都是很貴的,只要露臉了他的薪酬可能就需要翻番。
  • GAN(生成對抗網絡)萬字長文綜述
    對於判別器 D 來說,這是一個二分類問題,V(D,G) 為二分類問題中常見的交叉熵損失。隱空間分解GAN 的輸入隱變量 z 是非結構化的,我們不知道隱變量中的每一位數分別控制著什麼屬性。因此有學者提出,將隱變量分解為一個條件變量 c 和標準輸入隱變量 z 。具體包括有監督的方法和無監督的方法。
  • 萬字綜述之生成對抗網絡(GAN)
    優化的目標函數如下:對於判別器 D 來說,這是一個二分類問題,V(D,G) 為二分類問題中常見的交叉熵損失。對於生成器 G 來說,為了儘可能欺騙 D,所以需要最大化生成樣本的判別概率 D(G(z)),即最小化 log(1-D(G(z))),注意:log(D(x)) 一項與生成器 G 無關,所以可以忽略。
  • 暴力解剖GAN!MIT、港中文團隊GANpaint,一筆成畫不是夢
    也難怪網友驚呼:「以後拆樓都不用費勁了!」那麼這款神器如何操作呢?先奉上傳送門:http://gandissect.res.ibm.com/ganpaint.html?它自己會通過某種方式,知道什麼東西應該出現在什麼地方,不應該出現在不屬於它的地方(例如天空中不應該出現窗戶)。在不同的環境中,它可以創造出不同的視覺效果。例如,假設圖像中有兩個不同的建築物,我們需要為這兩個建築物添加兩個門,GANpaint Studio並不會粗暴的複製兩個相同的門上去,而是會添加兩扇不一樣的門。
  • 萬字長文解讀GAN:從基本概念、原理到實際應用
    優化的目標函數如下:對於判別器 D 來說,這是一個二分類問題,V(D,G) 為二分類問題中常見的交叉熵損失。對於生成器 G 來說,為了儘可能欺騙 D,所以需要最大化生成樣本的判別概率 D(G(z)),即最小化 (注意: 一項與生成器 G 無關,所以可以忽略。)實際訓練時,生成器和判別器採取交替訓練,即先訓練 D,然後訓練 G,不斷往復。
  • Microchip汽車創新系列研討會下周二舉行
    Microchip汽車創新系列研討會下周二舉行 您是否知道Microchip
  • 手把手教你在TF2.0中實現CycleGAN,推特上百贊
    clear_outputtfds.disable_progress_bar()AUTOTUNE = tf.data.experimental.AUTOTUNE2、輸入pipeline在這個教程中,我們主要學習馬到斑馬的圖像轉換,如果想尋找類似的數據集,可以前往:https://www.tensorflow.org/datasets/datasets#cycle_gan
  • 《變形金剛》系列機械角色,都是什麼車型
    《變形金剛》系列機械角色,都是什麼車型《變形金剛5》正在火熱上映中,雖然口碑一般但是票房依舊狂飆,而作為一部以機械角色為主角的大片,豪車雲集,使得不少網友好奇,它們分別都是一些什麼車,主形態是什麼,下面我們就一起來詳細了解下吧。