前 言
GAN全稱是Generative adversarial networks,中文是生成對(duì)抗網(wǎng)絡(luò)客蹋,是一種生成式模型,由good fellow在14年提出独旷,近四年來被AI研究者瘋狂研(guan)究(shui),更有大神建立一個(gè)GAN zoo,收集了上百種不同的GAN:
https://github.com/hindupuravinash/the-gan-zoo
事實(shí)上隨著GAN理論的不斷完善糜值,GAN逐漸展現(xiàn)出了自己非凡的魅力,在一些應(yīng)用領(lǐng)域開始大放異彩坯墨,由此衍生了一些非常fancy的應(yīng)用寂汇。本文對(duì)其中的一部分做一些匯總展示給讀者,希望在枯燥的科研生活之余給讀者一些消遣捣染。
注:本文不牽涉復(fù)雜的公式說明骄瓣,旨在用結(jié)果展示GAN的應(yīng)用場(chǎng)景,文中包含大量的圖片耍攘。
圖像生成
前言里提到了GAN是一個(gè)生成模型榕栏,可以用來生成圖像、音頻等等蕾各,生成質(zhì)量逐年增加扒磁,看下圖:
從32x32分辨率生成都困難的GAN,到生成2K真假難辨高清分辨率圖像的proGAN式曲,GAN正在發(fā)揮著自己獨(dú)特的優(yōu)勢(shì)妨托,并且逐漸滲透到二次元領(lǐng)域。
上圖是同濟(jì)大學(xué)的一個(gè)工作,生成二次元軟妹子始鱼。
不僅僅作用于圖像仔掸,GAN用來生成3D目標(biāo)和音樂上也是不含糊:
說到這里,就可能有一些疑問医清,圖像生成除了養(yǎng)眼起暮,究竟有什么用呢,事實(shí)上用處還是很廣泛的会烙,比如可以用來制作海報(bào)负懦,自己用來生成一個(gè)高清美女圖像作為海報(bào)主角,省了一大批廣告費(fèi)柏腻。
圖像轉(zhuǎn)換
圖像轉(zhuǎn)換或者說是圖像翻譯纸厉,是將圖像轉(zhuǎn)換為另一種形式的圖像,與風(fēng)格遷移稍有不同五嫂,這方面典型的工作是pixel-2-pixel
一般的GAN的生成器G輸入是一個(gè)隨機(jī)向量颗品,輸出的是圖像,這里的生成器的輸入是圖像沃缘,輸出的是轉(zhuǎn)換后的圖像躯枢。
感興趣的可以玩一下pix2pix的demo,還是很有趣的:https://affinelayer.com/pixsrv/
說到這里槐臀,就需要提到cycle-GAN了锄蹂,可以實(shí)現(xiàn)風(fēng)景畫和油畫互變,馬和斑馬互相轉(zhuǎn)換等domain transfer等任務(wù)水慨,更多有意思的變化可以在論文主頁上看到:https://junyanz.github.io/CycleGAN/得糜,cycleGAN的主要貢獻(xiàn)是提供了一種unpaired的圖像翻譯方法,這是pix2pix所做不到的:
除了cycleGAN還有一篇和其比較相似的論文晰洒,就是DiscoGAN朝抖,DiscoGAN在不需要label標(biāo)記和圖像pairing的情況下學(xué)習(xí)交叉domain之間的聯(lián)系,比如它可以將包包的圖像風(fēng)格遷移到鞋子的圖像上欢顷,效果上圖:
事實(shí)上槽棍,理工科的可愛的研究員們可不會(huì)僅滿足于此,他們更希望全世界充滿笑容抬驴,于是用cycleGAN給冷酷大哥加上笑容炼七,將人臉圖像轉(zhuǎn)換為卡通圖像,類似之前很火的臉萌APP布持,這個(gè)工作見DTN
(https://arxiv.org/pdf/1611.02200.pdf)豌拙。
圖像合成
圖像合成這個(gè)任務(wù)是通過某種形式的圖像描述創(chuàng)建新圖像的過程。pix2pix和cycleGAN 都屬于圖像合成領(lǐng)域的一部分题暖。圖像合成也有一些典型的工作按傅,并且有很nice的應(yīng)用場(chǎng)景捉超。
場(chǎng)景合成
首先,第一個(gè)場(chǎng)景合成唯绍,此部分在于如何給定部分顯示場(chǎng)景的信息還原出真實(shí)的場(chǎng)景信息拼岳,比如根據(jù)分割圖像還原出原始場(chǎng)景信息,剛好是圖像分割的逆過程况芒,據(jù)說英偉達(dá)在不斷的開拓這個(gè)方向惜纸,試想一下,只要GAN還原的場(chǎng)景足夠真實(shí)绝骚,完全可以模擬無人駕駛的路況場(chǎng)景耐版,從而在實(shí)驗(yàn)室階段就可以完成無人駕駛汽車的上路測(cè)試工作,很nice的一個(gè)應(yīng)用压汪,但是面對(duì)的問題就是如何生成高分辨率的和足夠真實(shí)的圖像粪牲,此部分工作可以見pix2pixHD。
人臉合成
人臉合成主要是根據(jù)一張人臉的圖像止剖,合成出不同角度的人臉圖像腺阳,可以用做人臉對(duì)齊,姿態(tài)轉(zhuǎn)換等輔助手段提高人臉識(shí)別的精度滴须,典型的工作是中科院的TP-GAN舌狗,可以根據(jù)半邊人臉生成整張人臉的前向圖叽奥,對(duì)人臉識(shí)別任務(wù)有很大的輔助效果扔水。
文本到圖像的合成
這個(gè)方向是NLP與CV碰撞的結(jié)果,任務(wù)描述為:從給定的一段文字描述朝氓,生成一張和圖像文字匹配的圖像魔市。比如:根據(jù)文字:一只黑色冠冕和黃色喙的白色的鳥,生成下面的這張圖像;
類似的工作還有stack GAN和attn GAN:https://arxiv.org/abs/1711.10485赵哲,后者更是在細(xì)粒度的text-to-image上做了一番功夫待德。
風(fēng)格遷移
效果看上去很nice,此部分的工作是:Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks枫夺,作者發(fā)明了一種馬爾可夫GAN遷移圖像的風(fēng)格将宪,算是不錯(cuò)的貢獻(xiàn)了。
年齡變化
想不想知道自己20年后長(zhǎng)什么樣子呢橡庞,Age-cGAN可以告訴我們答案较坛,只要有一張年輕時(shí)候的照片,就可以提前知道自己幾十年之后的樣子扒最,還是蠻期待的丑勤,這個(gè)方向之前有朋友做過,生成了一張50歲的韓庚的樣子吧趣,效果還不錯(cuò)法竞。
圖像超分辨率
圖像超分辨率一直是一個(gè)很重要的研究課題耙厚,比較重要的是對(duì)天文圖像和衛(wèi)星圖像做超分辨率,不管是在天文岔霸,軍事還是其他方面薛躬,都有很重要的應(yīng)用。在生活中呆细,如果有標(biāo)清的視頻可以變?yōu)楦咔宓囊曨l泛豪,我相信很多人還是很樂意的,下圖是超分之后的七龍珠和原版的七龍珠視頻侦鹏。
上述過程都是可逆的诡曙,既然可以增加圖像的分辨率,那么同樣可以減小圖像的分辨率略水。既然都說到了圖像超分辨率价卤,那么就談?wù)剤D像去馬賽克的一些操作,知乎一位大佬集圖像轉(zhuǎn)化和超分辨率之大成渊涝,完成了對(duì)愛情動(dòng)作片的添加和去除馬賽克操作慎璧,詳情請(qǐng)移步知乎:https://zhuanlan.zhihu.com/p/27199954,36k的高贊文章跨释,相信可以從中學(xué)到一些知識(shí)胸私。
圖像域的轉(zhuǎn)換
GAN很適合學(xué)習(xí)數(shù)據(jù)的分布(只要是數(shù)據(jù)是連續(xù)的,對(duì)于離散的文本數(shù)據(jù)效果不是很好)鳖谈,同時(shí)也能完成domain轉(zhuǎn)換的任務(wù)岁疼,比如使用GAN完成domain的遷移,此部分有比較典型的工作缆娃,CVPR的oral論文StarGAN是其中一個(gè)捷绒。Pix2Pix模型解決了有Pair對(duì)數(shù)據(jù)的圖像翻譯問題;CycleGAN解決了Unpaired數(shù)據(jù)下的圖像翻譯問題贯要。但無論是Pix2Pix還是CycleGAN暖侨,都是解決了一對(duì)一的問題,即一個(gè)domain到另一個(gè)domain的轉(zhuǎn)換崇渗。StarGAN就是在多個(gè)domain之間進(jìn)行轉(zhuǎn)換的方法字逗。可以做多個(gè)圖像翻譯任務(wù)宅广,比如更換頭發(fā)顏色葫掉,表情變化,年齡變換等等乘碑,文章公布了代碼:https://github.com/yunjey/StarGAN挖息。
另外一個(gè)比較有意思的domain轉(zhuǎn)換的是穿衣搭配問題,詳細(xì)工作可見PixelDTGAN: https://github.com/fxia22/PixelDTGAN PixelDTGAN是指像素級(jí)的domain 轉(zhuǎn)換兽肤,輸入的是一張復(fù)雜的圖片套腹,輸出的是不包含背景的單純的服飾的圖像绪抛,下圖中第一行是數(shù)據(jù)集中的例子,第二行是左圖是輸入圖像电禀,右圖是輸出的效果幢码。
感覺這個(gè)工作反過來就可以做穿衣搭配問題了,之前有個(gè)工作是穿衣搭配的尖飞,還被iangood fellow轉(zhuǎn)發(fā)在了twitter上症副,奈何現(xiàn)在找不到這個(gè)內(nèi)容了。穿衣搭配也可以看為是conditioned image generation政基,不過更加復(fù)雜贞铣。
圖像修復(fù)
GAN在圖像修復(fù)(image inpainting)上絕對(duì)是大放異彩了,且看英偉達(dá)最新的研究成果(Image Inpainting for Irregular Holes Using Partial Convolutions)沮明,給定一張缺失的圖像辕坝,修復(fù)出完整的圖像,下面左圖為待修復(fù)圖像荐健,右圖為修復(fù)好的圖像酱畅,這個(gè)方法是目前的state-of-art:
之前借助GAN做過一段時(shí)間的image inpainting,奈何實(shí)驗(yàn)結(jié)果的更新速度總比不上arxiv上inpainting論文的更新速度江场。
文本填空
GAN在圖像領(lǐng)域建樹頗多纺酸,但是在文本領(lǐng)域作用并不是很大,主要是NLP中的詞的數(shù)據(jù)都是離散數(shù)據(jù)址否,GAN不適合學(xué)習(xí)離散的數(shù)據(jù)分布餐蔬,但是并不意味著沒法學(xué),Google brain的團(tuán)隊(duì)發(fā)明了一個(gè)結(jié)合強(qiáng)化學(xué)習(xí)的MaskGAN在张,可以用作完型填空用含,具體任務(wù)是補(bǔ)全句子中的缺失部分。
不得不說帮匾,作者起名字也是很有水平,論文的標(biāo)題竟然空了一個(gè)單詞痴鳄,使用下劃線來代替瘟斜,一般能這么給論文起名字的作者都是大佬,比如attention is all you need痪寻。
** 其他**
另外螺句,有研究者們希望將GAN的學(xué)習(xí)方式和學(xué)習(xí)能力用在藥學(xué)分子和材料學(xué)領(lǐng)域,用來生成藥學(xué)分子結(jié)構(gòu)和合成新材料配方橡类,不得不說蛇尚,這相當(dāng)?shù)挠袆?chuàng)意,如果真的能完成的話顾画,那么AI將無所不能取劫。
上文總結(jié)的GAN應(yīng)用并不包含所有的工作匆笤,舉得例子也很有限,另外有GAN用在視頻預(yù)測(cè)谱邪,視頻生成等領(lǐng)域的炮捧,在目標(biāo)檢測(cè)、行人識(shí)別惦银、重定位上也有輔助作用咆课,了解有限,不詳細(xì)展開扯俱,讀者有意可自行Google查詢书蚪。
參考文獻(xiàn)
[1]Towards 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
[5]pix2pix https://affinelayer.com/pixsrv/
[6]CycleGAN https://arxiv.org/pdf/1703.10593.pdf
[7] DiscoGAN https://github.com/carpedm20/DiscoGAN-pytorch
[8] TPGAN https://arxiv.org/pdf/1704.04086.pdf
[9]pix2pix HD https://tcwang0509.github.io/pix2pixHD/
[10]stackGAN 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
[14]Age-cGAN https://arxiv.org/pdf/1702.01983.pdf
[15] StarGAN https://arxiv.org/abs/1711.09020
[16]image inpainting https://arxiv.org/abs/1804.07723
[17] MaskGAN https://arxiv.org/abs/1801.07736
個(gè)人技術(shù)博客:https://blog.csdn.net/qq_25737169
微信:TonyJeemy520 加個(gè)人微信拉你進(jìn)機(jī)器學(xué)習(xí)、深度學(xué)習(xí)交流群迅栅,請(qǐng)備注 : 來自簡(jiǎn)書
QQ交流群:651616387 請(qǐng)備注 : 來自簡(jiǎn)書
微信公眾號(hào):機(jī)器學(xué)習(xí)算法工程師 ----二維碼見下圖
掃碼關(guān)注微信號(hào):機(jī)器學(xué)習(xí)算法工程師善炫,更多干貨分享, 或加個(gè)人微信库继,拉你進(jìn)機(jī)器學(xué)習(xí)箩艺、深度學(xué)習(xí)交流群