天天看點

一些fancy的GAN應用圖像生成圖像轉換圖像合成

前 言

GAN全稱是Generative adversarial networks,中文是生成對抗網絡,是一種生成式模型,由good fellow在14年提出,近四年來被AI研究者瘋狂研(guan)究(shui),更有大神建立一個GAN zoo,收集了上百種不同的GAN:

https://github.com/hindupuravinash/the-gan-zoo 

事實上随着GAN理論的不斷完善,GAN逐漸展現出了自己非凡的魅力,在一些應用領域開始大放異彩,由此衍生了一些非常fancy的應用。本文對其中的一部分做一些彙總展示給讀者,希望在枯燥的科研生活之餘給讀者一些消遣。

注:本文不牽涉複雜的公式說明,旨在用結果展示GAN的應用場景,文中包含大量的圖檔。

圖像生成

前言裡提到了GAN是一個生成模型,可以用來生成圖像、音頻等等,生成品質逐年增加,看下圖:

一些fancy的GAN應用圖像生成圖像轉換圖像合成

image

從32x32分辨率生成都困難的GAN,到生成2K真假難辨高清分辨率圖像的proGAN,GAN正在發揮着自己獨特的優勢,并且逐漸滲透到二次元領域。

一些fancy的GAN應用圖像生成圖像轉換圖像合成

上圖是同濟大學的一個工作,生成二次元軟妹子。 

不僅僅作用于圖像,GAN用來生成3D目标和音樂上也是不含糊:

一些fancy的GAN應用圖像生成圖像轉換圖像合成
一些fancy的GAN應用圖像生成圖像轉換圖像合成

說到這裡,就可能有一些疑問,圖像生成除了養眼,究竟有什麼用呢,事實上用處還是很廣泛的,比如可以用來制作海報,自己用來生成一個高清美女圖像作為海報主角,省了一大批廣告費。

圖像轉換

圖像轉換或者說是圖像翻譯,是将圖像轉換為另一種形式的圖像,與風格遷移稍有不同,這方面典型的工作是pixel-2-pixel 

一些fancy的GAN應用圖像生成圖像轉換圖像合成

一般的GAN的生成器G輸入是一個随機向量,輸出的是圖像,這裡的生成器的輸入是圖像,輸出的是轉換後的圖像。 

感興趣的可以玩一下pix2pix的demo,還是很有趣的:https://affinelayer.com/pixsrv/

說到這裡,就需要提到cycle-GAN了,可以實作風景畫和油畫互變,馬和斑馬互相轉換等domain transfer等任務,更多有意思的變化可以在論文首頁上看到:https://junyanz.github.io/CycleGAN/,cycleGAN的主要貢獻是提供了一種unpaired的圖像翻譯方法,這是pix2pix所做不到的:

一些fancy的GAN應用圖像生成圖像轉換圖像合成

除了cycleGAN還有一篇和其比較相似的論文,就是DiscoGAN,DiscoGAN在不需要label标記和圖像pairing的情況下學習交叉domain之間的聯系,比如它可以将包包的圖像風格遷移到鞋子的圖像上,效果上圖: 

一些fancy的GAN應用圖像生成圖像轉換圖像合成

事實上,理工科的可愛的研究員們可不會僅滿足于此,他們更希望全世界充滿笑容,于是用cycleGAN給冷酷大哥加上笑容,将人臉圖像轉換為卡通圖像,類似之前很火的臉萌APP,這個工作見DTN

(https://arxiv.org/pdf/1611.02200.pdf)。

一些fancy的GAN應用圖像生成圖像轉換圖像合成
一些fancy的GAN應用圖像生成圖像轉換圖像合成

圖像合成

圖像合成這個任務是通過某種形式的圖像描述建立新圖像的過程。pix2pix和cycleGAN 都屬于圖像合成領域的一部分。圖像合成也有一些典型的工作,并且有很nice的應用場景。

場景合成

首先,第一個場景合成,此部分在于如何給定部分顯示場景的資訊還原出真實的場景資訊,比如根據分割圖像還原出原始場景資訊,剛好是圖像分割的逆過程,據說英偉達在不斷的開拓這個方向,試想一下,隻要GAN還原的場景足夠真實,完全可以模拟無人駕駛的路況場景,進而在實驗室階段就可以完成無人駕駛汽車的上路測試工作,很nice的一個應用,但是面對的問題就是如何生成高分辨率的和足夠真實的圖像,此部分工作可以見pix2pixHD。

一些fancy的GAN應用圖像生成圖像轉換圖像合成

人臉合成

人臉合成主要是根據一張人臉的圖像,合成出不同角度的人臉圖像,可以用做人臉對齊,姿态轉換等輔助手段提高人臉識别的精度,典型的工作是中科院的TP-GAN,可以根據半邊人臉生成整張人臉的前向圖,對人臉識别任務有很大的輔助效果。

一些fancy的GAN應用圖像生成圖像轉換圖像合成

文本到圖像的合成

這個方向是NLP與CV碰撞的結果,任務描述為:從給定的一段文字描述,生成一張和圖像文字比對的圖像。比如:根據文字:一隻黑色冠冕和黃色喙的白色的鳥,生成下面的這張圖像; 

一些fancy的GAN應用圖像生成圖像轉換圖像合成

類似的工作還有stack GAN和attn GAN:https://arxiv.org/abs/1711.10485,後者更是在細粒度的text-to-image上做了一番功夫。

風格遷移

效果看上去很nice,此部分的工作是:Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks,作者發明了一種馬爾可夫GAN遷移圖像的風格,算是不錯的貢獻了。

一些fancy的GAN應用圖像生成圖像轉換圖像合成

年齡變化

想不想知道自己20年後長什麼樣子呢,Age-cGAN可以告訴我們答案,隻要有一張年輕時候的照片,就可以提前知道自己幾十年之後的樣子,還是蠻期待的,這個方向之前有朋友做過,生成了一張50歲的韓庚的樣子,效果還不錯。

一些fancy的GAN應用圖像生成圖像轉換圖像合成

圖像超分辨率

圖像超分辨率一直是一個很重要的研究課題,比較重要的是對天文圖像和衛星圖像做超分辨率,不管是在天文,軍事還是其他方面,都有很重要的應用。在生活中,如果有标清的視訊可以變為高清的視訊,我相信很多人還是很樂意的,下圖是超分之後的七龍珠和原版的七龍珠視訊。 

一些fancy的GAN應用圖像生成圖像轉換圖像合成

上述過程都是可逆的,既然可以增加圖像的分辨率,那麼同樣可以減小圖像的分辨率。既然都說到了圖像超分辨率,那麼就談談圖像去馬賽克的一些操作,知乎一位大佬集圖像轉化和超分辨率之大成,完成了對愛情動作片的添加和去除馬賽克操作,詳情請移步知乎:https://zhuanlan.zhihu.com/p/27199954,36k的高贊文章,相信可以從中學到一些知識。

圖像域的轉換

GAN很适合學習資料的分布(隻要是資料是連續的,對于離散的文本資料效果不是很好),同時也能完成domain轉換的任務,比如使用GAN完成domain的遷移,此部分有比較典型的工作,CVPR的oral論文StarGAN是其中一個。Pix2Pix模型解決了有Pair對資料的圖像翻譯問題;CycleGAN解決了Unpaired資料下的圖像翻譯問題。但無論是Pix2Pix還是CycleGAN,都是解決了一對一的問題,即一個domain到另一個domain的轉換。StarGAN就是在多個domain之間進行轉換的方法。可以做多個圖像翻譯任務,比如更換頭發顔色,表情變化,年齡變換等等,文章公布了代碼:https://github.com/yunjey/StarGAN。 

一些fancy的GAN應用圖像生成圖像轉換圖像合成

另外一個比較有意思的domain轉換的是穿衣搭配問題,詳細工作可見PixelDTGAN: https://github.com/fxia22/PixelDTGAN PixelDTGAN是指像素級的domain 轉換,輸入的是一張複雜的圖檔,輸出的是不包含背景的單純的服飾的圖像,下圖中第一行是資料集中的例子,第二行是左圖是輸入圖像,右圖是輸出的效果。

一些fancy的GAN應用圖像生成圖像轉換圖像合成

感覺這個工作反過來就可以做穿衣搭配問題了,之前有個工作是穿衣搭配的,還被iangood fellow轉發在了twitter上,奈何現在找不到這個内容了。穿衣搭配也可以看為是conditioned image generation,不過更加複雜。

圖像修複

GAN在圖像修複(image inpainting)上絕對是大放異彩了,且看英偉達最新的研究成果(Image Inpainting for Irregular Holes Using Partial Convolutions),給定一張缺失的圖像,修複出完整的圖像,下面左圖為待修複圖像,右圖為修複好的圖像,這個方法是目前的state-of-art:

一些fancy的GAN應用圖像生成圖像轉換圖像合成

之前借助GAN做過一段時間的image inpainting,奈何實驗結果的更新速度總比不上arxiv上inpainting論文的更新速度。

文本填空

GAN在圖像領域建樹頗多,但是在文本領域作用并不是很大,主要是NLP中的詞的資料都是離散資料,GAN不适合學習離散的資料分布,但是并不意味着沒法學,Google brain的團隊發明了一個結合強化學習的MaskGAN,可以用作完型填空,具體任務是補全句子中的缺失部分。

一些fancy的GAN應用圖像生成圖像轉換圖像合成

不得不說,作者起名字也是很有水準,論文的标題竟然空了一個單詞,使用下劃線來代替,一般能這麼給論文起名字的作者都是大佬,比如attention is all you need。

 其他

另外,有研究者們希望将GAN的學習方式和學習能力用在藥學分子和材料學領域,用來生成藥學分子結構和合成新材料配方,不得不說,這相當的有創意,如果真的能完成的話,那麼AI将無所不能。

上文總結的GAN應用并不包含所有的工作,舉得例子也很有限,另外有GAN用在視訊預測,視訊生成等領域的,在目标檢測、行人識别、重定位上也有輔助作用,了解有限,不詳細展開,讀者有意可自行Google查詢。

參考文獻

1Towards the Automatic Anime Characters Creation with Generative Adversarial Networks 

2 https://arxiv.org/pdf/1710.10196.pdf 

3 http://papers.nips.cc/paper/6096-learning-a-probabilistic-latent-space-of-object-shapes-via-3d-generative-adversarial-modeling.pdf 

4 https://arxiv.org/pdf/1703.10847.pdf 

5pix2pix https://affinelayer.com/pixsrv/ 

6CycleGAN https://arxiv.org/pdf/1703.10593.pdf 

7 DiscoGAN https://github.com/carpedm20/DiscoGAN-pytorch 

8 TPGAN https://arxiv.org/pdf/1704.04086.pdf 

9pix2pix HD https://tcwang0509.github.io/pix2pixHD/ 

10stackGAN https://arxiv.org/pdf/1612.03242.pdf 

11 AttnGAN https://arxiv.org/abs/1711.10485 

12 DTN https://arxiv.org/pdf/1611.02200.pdf 

13 MGAN https://arxiv.org/pdf/1604.04382.pdf 

14Age-cGAN https://arxiv.org/pdf/1702.01983.pdf 

15 StarGAN https://arxiv.org/abs/1711.09020 

16image inpainting https://arxiv.org/abs/1804.07723 

17 MaskGAN https://arxiv.org/abs/1801.07736

個人技術部落格:https://blog.csdn.net/qq_25737169

微信:TonyJeemy520 加個人微信拉你進機器學習、深度學習交流群,請備注 : 來自簡書

QQ交流群:651616387 請備注 : 來自簡書

微信公衆号:機器學習算法工程師 ----二維碼見下圖

掃碼關注微信号:機器學習算法工程師,更多幹貨分享, 或加個人微信,拉你進機器學習、深度學習交流群

一些fancy的GAN應用圖像生成圖像轉換圖像合成

image