1. 程式人生 > >想怎麼GAN就怎麼GAN,一鍵拯救髮際線

想怎麼GAN就怎麼GAN,一鍵拯救髮際線

郭一璞 劈圖慄 乾明 發自 亞龍灣 
量子位 報道 | 公眾號 QbitAI

640?wx_fmt=jpeg

GAN可GAN,非常GAN。

生成對抗網路(GAN)除了生成各種各樣的人臉,現在還能對人臉進行各種各樣的精確“整容”。

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

不久後,你還能用GAN一鍵調整自己的髮際線,從此省下植髮錢,免費讓你的頭髮像Jackie Chan一樣烏黑油亮,duang duang duang~

堪稱 整·容·神·器

禿禿禿魔法

首先,我們先來學習一下脫髮的“原理”

你知道如何一鍵脫髮麼?

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

640?wx_fmt=png

 一隻充滿惡意的按鈕

奮力點選Bald+按鈕:

640?wx_fmt=gif

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

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

當然,想要植髮的話,只要反過來用Bald-就可以了。

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

640?wx_fmt=gif

或許是因為資料集源於自然。

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

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

640?wx_fmt=jpeg

 錯誤示範:史蒂夫·喬布子,比本體的頭髮茂盛一些

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

真是造福人類的功能。

640?wx_fmt=gif

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

莫非,鼻子尖了會變娘?一定是資料集的錯。

640?wx_fmt=gif

 尖鼻技能

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

一定是資料集的錯x2。

640?wx_fmt=gif

 來來來,一起刮鬍子

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

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

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

640?wx_fmt=gif

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

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

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

前途似錦的GAN

這個神奇的GAN一放出來,一眾網友就雞凍了。
٩(๑>◡<๑)۶

樓主好人,求樓主做個.exe格式的應用程式出來

看來下一個被AI搞失業的職業是模特了

不少人紛紛開始暢想它商業化之後的用處:

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

希望可以把我的臉傳上去,修改成最喜歡的效果,然後拿去給整容醫生照著這個整

警察叔叔找犯罪嫌疑人的時候這個應該會很有用

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

背後的原理

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

總體來說,這個專案提供了一種新的方法,可以來控制像GAN (生成對抗性網路)這樣的無監督生成模型的生成過程。

首先,使用一個已經訓練好的GAN生成器,在這個模型中,使用的是英偉達的pg-GAN。然後,挖掘其中有意義的特徵軸,將影象變化的過程變得透明化,從而使我們能夠控制影象合成和編輯的過程。

整個模型的構建,主要分成三個步驟:

第一,將影象背後的潛在空間透明化。

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

640?wx_fmt=png

為什麼要用pg-GAN呢?作者說,它有兩個優點:

一是,它生成的影象很多,這意味著空間中的大部分點會生成合理的影象。二是,它是強連續的,這意味著潛在空間中兩點之間的插值一般會讓相應影象的平滑過渡。

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

第二,尋找特徵軸。

為了找到這些特徵軸,作者通過基於配對資料(z,y)的監督學習方法進行訓練,在潛在向量 z 和特徵標籤 y 之間建立了一個連線。

於是問題來了:如何獲得這樣的配對資料?現有的資料集只包含影象 x 及其相應的特徵標籤 y。

640?wx_fmt=png

作者表示,為解決這個問題,TL-GAN模型的關鍵創新是,使用現有的標記影象資料集( x_real,y_real ),來訓練一個獨立的特徵提取器模型y=F(x),然後將訓練好的GAN生成器G與特徵提取器網路F耦合。

在這個過程中,作者在CelebA 資料集上訓練了一個簡單的卷積神經網路(其中包含了3萬多張面部照片,每張有40個標籤)。

這樣,就可以使用訓練好的特徵提取器網路來預測合成影象x_gen的特徵標記y_pred,從而通過合成影象建立z和y之間的聯絡,如x_gen=G(z)和 y_pred=F(x_gen)。

第三,訓練模型。

既然有了成對的潛在向量和特徵,就可以訓練迴歸模型y=A(z)來揭示特徵軸控制影象生成的過程了。

640?wx_fmt=png

TL-GAN 模型的架構

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

為了解決這個問題,作者表示自己使用了線性代數技巧:將鬍鬚軸對映到一個垂直於性別軸的新方向,這可以有效消除它們的相關性。

640?wx_fmt=png

使用線性代數技巧分離相關特徵軸

不過,如上所述,量子位在測試的時候發現,還是會出現類似的問題。Hacker News上也有網友在吐槽這一點:

啊!為什麼改變膚色的時候,嘴脣會變薄、頭髮會變禿,人會變成男的啊,真是AI魔術

有網友猜測是訓練模型的資料集太小的原因:

因為是用真實的明星照片訓練的吧,畢竟明星普遍都比較好看。可能樣本里只有白人,沒有其他膚色的人,所以生成的效果也就跟著訓練用的資料集跑了~

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

作者認為,這個模型有兩個突出的優點:

1、效率高:想要為生成器新增新的功能調諧器的時候,不需要重新訓練GAN模型,使用這個方法,只需要花1個小時,就能夠新增40個功能調諧器。

2、靈活性:你可以使用任何資料集上訓練的任何特徵提取器,來向訓練好的GAN中新增更多的特徵調諧器。

作者介紹

640?wx_fmt=jpeg

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

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

今年夏天碩士和博士都畢業後,關少波開始在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

年度評選申請

640?wx_fmt=jpeg

加入社群

量子位AI社群開始招募啦,歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話介面回覆關鍵字“交流群”,獲取入群方式;


此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。


進專業群請在量子位公眾號(QbitAI)對話介面回覆關鍵字“專業群”,獲取入群方式。(專業群稽核較嚴,敬請諒解)

活動策劃招聘

量子位正在招聘活動策劃,將負責不同領域維度的線上線下相關活動策劃、執行。歡迎聰明靠譜的小夥伴加入,並希望你能有一些活動策劃或運營的相關經驗。相關細節,請在量子位公眾號(QbitAI)對話介面,回覆“招聘”兩個字。

640?wx_fmt=jpeg

量子位 QbitAI · 頭條號簽約作者

վ'ᴗ' ի 追蹤AI技術和產品新動態