轉(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