想怎么GAN就怎么GAN,一鍵拯救發(fā)際線

轉(zhuǎn)本文經(jīng)AI新媒體量子位(公眾號 ID: QbitAI)授權(quán)轉(zhuǎn)載

轉(zhuǎn)載請聯(lián)系出處。

郭一璞 劈圖栗 乾明 發(fā)自 亞龍灣

量子位 報道 | 公眾號 QbitAI

GAN可GAN,非常GAN。

生成對抗網(wǎng)絡(luò)(GAN)除了生成各種各樣的人臉,現(xiàn)在還能對人臉進行各種各樣的精確“整容”。

比如,把頭頂光亮的大叔P出青蔥的發(fā)際線;把陽剛的肌肉男P成小鮮肉,再P成可愛的女孩子;讓金發(fā)女郎變成黑長直。

不久后,你還能用GAN一鍵調(diào)整自己的發(fā)際線,從此省下植發(fā)錢,免費讓你的頭發(fā)像Jackie Chan一樣烏黑油亮,duang duang duang~

堪稱整·容·神·器。

禿禿禿魔法

首先,我們先來學習一下脫發(fā)的“原理”

你知道如何一鍵脫發(fā)么?

請使用咒語:禿,禿,禿。

一只充滿惡意的按鈕

奮力點擊Bald+按鈕:

俊朗的面容,頓時變得矍鑠而慈祥。

不只發(fā)際線被強行逼退,原本的褐色頭發(fā)也成了花白。除此之外,法令紋與其他皺紋都清晰了起來。

當然,想要植發(fā)的話,只要反過來用Bald-就可以了。

順便告訴你一個秘密,這個按鈕“歧視”男性:男生照片隨便點幾下就禿了,女生點幾下就可能變成男生,然后才會禿。

或許是因為數(shù)據(jù)集源于自然。

那么,再來試試其他按鈕。

(Niang)轉(zhuǎn)(Hua) ,大概是非常受歡迎的功能。

錯誤示范:史蒂夫·喬布子,比本體的頭發(fā)茂盛一些

不想看男生的時候,就點擊Male-把他變成妹子。

真是造福人類的功能。

友情提示,除了Male按鈕之外,Pointy Nose?(尖鼻) 也可以把男生變成女生。

莫非,鼻子尖了會變娘?一定是數(shù)據(jù)集的錯。

尖鼻技能

就算只是想刮刮胡子,連擊Beard-,也能順勢變成妹子。

一定是數(shù)據(jù)集的錯x2。

來來來,一起刮胡子

全部21個按鈕里面,能做變性的還有許多。有興趣的小伙伴自己去試一試嘛。

娘化雖好,可不要貪杯哦。畢竟,這也不是唯一的功能。

大鼻子” (Big Nose) 可能是怨念的象征。畢竟,連續(xù)點擊加號之后,鼻子似乎沒有變大,五官倒是擠在一起,好像吃了芥末。

其他按鈕,大家有空就自行探索吧,傳送門在文底。

目前,Demo還不支持上傳人臉,只能用它提供的隨機人臉。

不過,作者說下一步就會增加上傳功能了,有大膽想法的同學,可以預(yù)備備了。

前途似錦的GAN

這個神奇的GAN一放出來,一眾網(wǎng)友就雞凍了。

“?(?>?<?)?”

“樓主好人,求樓主做個.exe格式的應(yīng)用程序出來”

“看來下一個被AI搞失業(yè)的職業(yè)是模特了”

不少人紛紛開始暢想它商業(yè)化之后的用處:

“可以用來定制女朋友,靠這個軟件生成好看的臉,投射到機器人或者VR上……”

“希望可以把我的臉傳上去,修改成最喜歡的效果,然后拿去給整容醫(yī)生照著這個整”

“警察叔叔找犯罪嫌疑人的時候這個應(yīng)該會很有用”

“如果以后可以根據(jù)目標受眾喜好生成各種“千人千面”的帥哥美女,用來打廣告……真可怕”

背后的原理

有這種“神奇魔力”的GAN,名字叫做TL-GAN,TL代表的是Transparent Latent-space,意思是將潛在空間(Latent-space)透明化(Transparent)。

總體來說,這個項目提供了一種新的方法,可以來控制像GAN (生成對抗性網(wǎng)絡(luò))這樣的無監(jiān)督生成模型的生成過程。

首先,使用一個已經(jīng)訓(xùn)練好的GAN生成器,在這個模型中,使用的是英偉達的pg-GAN。然后,挖掘其中有意義的特征軸,將圖像變化的過程變得透明化,從而使我們能夠控制圖像合成和編輯的過程。

整個模型的構(gòu)建,主要分成三個步驟:

第一,將圖像背后的潛在空間透明化。

作者在模型上使用的是英偉達的的pg-GAN(progressively-growing GAN),其生成的1024px × 1024px圖像的特征由潛在空間中的512維噪聲矢量(一種圖像內(nèi)容的低維表示)來確定。如果能夠理解這些都代表著什么,就能完全控制生成過程。

為什么要用pg-GAN呢?作者說,它有兩個優(yōu)點:

一是,它生成的圖像很多,這意味著空間中的大部分點會生成合理的圖像。二是,它是強連續(xù)的,這意味著潛在空間中兩點之間的插值一般會讓相應(yīng)圖像的平滑過渡。

這讓他可以在潛在空間中尋找方向,如果能夠找到,就可以使用這些方向的單位矢量作為特征軸來控制圖像生成過程。

第二,尋找特征軸。

為了找到這些特征軸,作者通過基于配對數(shù)據(jù)(z,y)的監(jiān)督學習方法進行訓(xùn)練,在潛在向量 z 和特征標簽 y 之間建立了一個連接。

于是問題來了:如何獲得這樣的配對數(shù)據(jù)?現(xiàn)有的數(shù)據(jù)集只包含圖像 x 及其相應(yīng)的特征標簽 y。

作者表示,為解決這個問題,TL-GAN模型的關(guān)鍵創(chuàng)新是,使用現(xiàn)有的標記圖像數(shù)據(jù)集( x_real,y_real ),來訓(xùn)練一個獨立的特征提取器模型y=F(x),然后將訓(xùn)練好的GAN生成器G與特征提取器網(wǎng)絡(luò)F耦合。

在這個過程中,作者在CelebA 數(shù)據(jù)集上訓(xùn)練了一個簡單的卷積神經(jīng)網(wǎng)絡(luò)(其中包含了3萬多張面部照片,每張有40個標簽)。

這樣,就可以使用訓(xùn)練好的特征提取器網(wǎng)絡(luò)來預(yù)測合成圖像x_gen的特征標記y_pred,從而通過合成圖像建立z和y之間的聯(lián)系,如x_gen=G(z)和 y_pred=F(x_gen)。

第三,訓(xùn)練模型。

既然有了成對的潛在向量和特征,就可以訓(xùn)練回歸模型y=A(z)來揭示特征軸控制圖像生成的過程了。

TL-GAN 模型的架構(gòu)

在進行測試的過程中,雖然效果很好,但出現(xiàn)了一個非常讓人頭疼的問題:特征軸糾纏(entangled feature axes)。即不同的特征軸之間會相互影響,例如當你打算減少胡須特征的時候,圖像就會變得越來越像女性,或者調(diào)整Pointy Nose(尖鼻), 也會把男生變成女生。

為了解決這個問題,作者表示自己使用了線性代數(shù)技巧:將胡須軸映射到一個垂直于性別軸的新方向,這可以有效消除它們的相關(guān)性。

使用線性代數(shù)技巧分離相關(guān)特征軸

不過,如上所述,量子位在測試的時候發(fā)現(xiàn),還是會出現(xiàn)類似的問題。Hacker News上也有網(wǎng)友在吐槽這一點:

啊!為什么改變膚色的時候,嘴唇會變薄、頭發(fā)會變禿,人會變成男的啊,真是AI魔術(shù)

有網(wǎng)友猜測是訓(xùn)練模型的數(shù)據(jù)集太小的原因:

因為是用真實的明星照片訓(xùn)練的吧,畢竟明星普遍都比較好看??赡軜颖纠镏挥邪兹耍瑳]有其他膚色的人,所以生成的效果也就跟著訓(xùn)練用的數(shù)據(jù)集跑了~

以上,就是模型大致的原理了。

作者認為,這個模型有兩個突出的優(yōu)點:

1、效率高:想要為生成器添加新的功能調(diào)諧器的時候,不需要重新訓(xùn)練GAN模型,使用這個方法,只需要花1個小時,就能夠添加40個功能調(diào)諧器。

2、靈活性:你可以使用任何數(shù)據(jù)集上訓(xùn)練的任何特征提取器,來向訓(xùn)練好的GAN中添加更多的特征調(diào)諧器。

作者介紹

這個TL-GAN的作者關(guān)少波(Shaobo Guan),是一位集生物學和計算機兩大專業(yè)技能于一體的博士小哥哥,本科畢業(yè)于上海交通大學生物技術(shù)專業(yè),之后在中科院做了三年研究助理,然后去布朗大學讀了系統(tǒng)/計算神經(jīng)學的博士。

厲害的是,讀博第三年開始,他還順便在布朗大學讀了一個計算機碩士,從此踏入AI圈。

今年夏天碩士和博士都畢業(yè)后,關(guān)少波開始在YC和SV Angel投資的Insight Data Science項目擔任AI Fellow,TL-GAN就是他在該項目的第一個作品。

小哥哥還很自豪的在自己的LinkedIn上寫:

我的TL-GAN,全Hacker News熱度第二呦~

傳送門

如果你對這個模型有興趣,下面有一些傳送門,能夠送你到你想去的地方~

GitHub地址:

https://github.com/SummitKwan/transparent_latent_gan

Demo地址:

https://www.kaggle.com/summitkwan/tl-gan-demo

(友情提示:玩Demo的時候,要有耐心哦~)

模型博客文章地址:

https://blog.insightdatascience.com/generating-custom-photo-realistic-faces-using-ai-d170b1b59255

模型的PPT地址:

https://docs.google.com/presentation/d/1OpcYLBVpUF1L-wwPHu_CyKjXqXD0oRwBoGP2peSCrSA/edit#slide=id.p1

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 摘要:在深度學習之前已經(jīng)有很多生成模型,但苦于生成模型難以描述難以建模,科研人員遇到了很多挑戰(zhàn),而深度學習的出現(xiàn)幫...
    肆虐的悲傷閱讀 11,378評論 1 21
  • 本文不涉及的內(nèi)容 首先,你不會在本文中發(fā)現(xiàn): 復(fù)雜的技術(shù)說明 代碼(盡管有為那些感興趣的人留的代碼鏈接) 詳盡的研...
    MiracleJQ閱讀 4,518評論 0 0
  • GAN,全稱為Generative Adversarial Nets,直譯為生成式對抗網(wǎng)絡(luò)。它一方面將產(chǎn)生式模型拉...
    MiracleJQ閱讀 3,407評論 0 14
  • 開發(fā)過程中,經(jīng)常會有一些通用的部分希望抽取出來做成一個公共庫來提供給別的工程來使用,而公共代碼庫的版本管理是個麻煩...
    龍在阿里閱讀 616評論 0 0
  • 曾經(jīng)在讀老貓區(qū)塊鏈文章的時候,他不止一次的告訴過我們,區(qū)塊鏈這個世界里坑很多,直至最近這段時間,我才發(fā)現(xiàn)真的好多坑...
    3cea39b597c0閱讀 299評論 1 0