CycleGan實現圖像轉換

做者:王鎮 前端

引言

1873年的一個春日,在阿讓特伊的塞納河畔,莫奈用纖細的筆觸和明亮的調色板記錄下了眼前塞納河畔美麗的田園風光。咱們難免想象若是當時有相機的話,會留下一張怎樣的照片呢。在一個涼爽的夏日傍晚,面對卡西斯港口的美麗景色,咱們拿起相機時是否又會想象莫奈會如何來記錄眼前的此番景象呢。
儘管咱們沒有看到莫奈畫做的場景照片,在有了一組莫奈風格畫做和真實風景照片後,利用 CycleGan,咱們可以將其中一組轉換爲另外一組。換言之,咱們可以從一幅莫奈畫做中儘量真實地還原莫奈眼中的 19 世紀法國風光,也能從一張真實的照片看到莫奈畫筆下的世界。
除了實現畫與照片的轉換,CycleGan 還能夠實現斑馬與馬,貓與狗,蘋果與橘子,夏天與冬天,男人與女人,衛星地圖與行政地圖等圖片之間的轉換。
git

1.PNG
       
2.PNG

圖 1

CycleGan原理

初識Gan

Gan(Generative Adversarial Network) 又稱做「生成對抗網絡」,用於生成與訓練集風格相似的圖片,其主要由兩部分結構組成,即生成器(Generator)和判別器(Discrimator)。
github

小狗.png

圖 2
以生成小狗的假圖片爲例。如上圖所示,輸入一個隨機噪聲,送入生成器模型將產生一張小狗的假圖片,而後將假圖與真圖配對,打上標籤(假圖爲0,真圖爲1),用於訓練判別器,經初步訓練,判別器已有了必定的精度。此後,保持判別器參數不變,不斷調整生成器參數直至判別器沒法區分生成器生成的假圖與真圖;而後,保持生成器參數不變,調整判別器參數直至判別器能最大程度地區分生成器生成的假圖與真圖。如此重複上述兩個步驟,最終生成器將能產生人眼沒法分辨的圖片。
公式1.PNG

公式(1)
上式中 G( ) 表示生成器,輸出一張生成圖片,D( ) 表示判別器,輸出判別爲真圖的機率,x 爲真圖,z 爲噪聲。即咱們訓練 D 使其有最大的判別精度(使上式中第一項和第二項都最大),又訓練 G 使其能生成最容易騙過判別器的圖片(使上式第二項最小)。

初識CycleGan

Gan 能生成與訓練集風格相似的圖片,但沒法指定具體的圖片。以上文生成小狗圖片爲例,生成器可能一直輸出同一張最像小狗的圖片,而沒法針對輸入圖片輸出對應的小狗圖片。CycleGan 有效解決了這個問題。網絡

圖2.PNG

圖 3
上圖是 CycleGan 的原理圖解。圖(a)中 X,Y 對應兩個領域,咱們但願將 X 領域中的圖片轉換爲 Y 領域中的圖片;G,F 分別對應正向和逆向 Gan 中的兩個生成器,即 G 將 X 領域中的圖片 x 轉換爲 Y 領域中的圖片 G(x),而後用判別器 DY 判別是否屬於 Y 領域的圖片,以此構成生成對抗網絡,此即爲 Gan 的基本結構。圖(b)相較圖(a)增長了部分結構,即要求 G(x) 再通過逆向 Gan 中的生成器 F 生成 F(G(x)),使之與原輸入 x 儘量接近,即 cycle-consistency loss 儘可能小,由此便可解決 Gan 沒法針對性地輸出對應圖片的問題。圖(b)過程 x->G(x)->F(G(x))≈x,咱們將之稱爲 forward cycle consistency。爲了提升訓練效果,相似地,咱們又訓練從 Y 領域到 X 領域的轉換,如圖(c)過程 y->F(y)->G(F(y))≈y, 咱們稱之爲 backward cycle consistency。

深刻CycleGan

公式2.PNG

公式 (2)
公式3.PNG

公式 (3)
公式4.PNG

公式 (4)
公式5.PNG

公式 (5)
經過上文對 CycleGan 的定性介紹,相信你們對 CycleGan 的工做原理已有了大體的理解,如下將經過公式定量地分析 CycleGan 的工做原理。公式(2)與公式(1)同樣,是Gan的基本表述,須要訓練的是生成器 G 和判別器D,X,Y 分別是兩個領域;公式(3)指出經過訓練 G,F 模型使 F(G(x))≈x,使 G(F(y))≈y;公式(4)是 CycleGan的完整表述,λ 做爲參數調整分項的重要性;咱們最終的目的是經過訓練獲得最合適的 G,F 如公式(5)所示,用來完成圖片從一個領域到另外一個領域的轉換。如下是訓練好後的 G,F 的變換效果。
part1.PNG

圖 4

CycleGan應用

CycleGan 實現圖片從一個領域轉換到另外一個領域,與 pix2pix 模型相比,它無需成對數據進行訓練,所以它具備更普遍的適用範圍。
CycleGan 可實現圖像風格轉換,但它不一樣於 neural style transfer 模型僅實現單幅做品風格(如星空)的轉換,相反,它能學習到莫奈(或其餘畫家)所有做品的藝術風格,從而實現照片向莫奈藝術風格畫的轉換,如圖5。它還可實現物體轉換(Object transfiguration),如圖6,7;季節轉換,如圖8;從油畫生成照片,如圖9。
app

藝術畫.PNG

圖 5
馬斑馬.PNG

圖 6
水果.PNG

圖 7
季節.PNG

圖 8
油畫.PNG

圖 9

總結

對於 Unpaired 問題來講,只是用普通 GAN 的話能夠學到的模型有不少種。種類數目爲領域 X 和領域 Y 之間的隨機映射數目,因此只是用普通 GAN 損失函數沒法保證輸入 x 可以獲得對應領域的 y。而 Cycle 一致性的出現,下降了隨機映射的數目,從而保證獲得的輸出再也不是隨機的,所以可以實現圖片從一個領域到另外一個領域的轉換。
項目源碼地址:momodel.cn/explore/5d7… 機器學習

參考文獻

  1. Generative Adversarial Networks,Ian J. Goodfellow, etc. arxiv.org/abs/1406.26…
  2. Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks, Jun-yan Zhu, etc. arxiv.org/abs/1703.10…
  3. github.com/junyanz/pyt…
  4. GAN網絡詳解(從零入門)csdn博客。 blog.csdn.net/LEE18254290…
  5. CycleGAN-Unpaired圖像翻譯 csdn博客。blog.csdn.net/stdcoutzyx/…

關於咱們

Mo(網址:https://momodel.cn)是一個支持 Python 的人工智能在線建模平臺,能幫助你快速開發、訓練並部署模型。函數


Mo 人工智能俱樂部 是由人工智能在線建模平臺(網址:momodel.cn)的研發與產品團隊發起、致力於下降人工智能開發與使用門檻的俱樂部。團隊具有大數據處理分析、可視化與數據建模經驗,已承擔多領域智能項目,具有從底層到前端的全線設計開發能力。主要研究方向爲大數據管理分析與人工智能技術,並以此來促進數據驅動的科學研究。

目前團隊每兩週(週六)在杭州舉辦線下沙龍,進行機器學習相關論文分享與學術交流。但願能匯聚來自各行各業對人工智能感興趣的朋友,不斷交流共同成長,推進人工智能民主化、應用普及化。學習

image.png
相關文章
相關標籤/搜索