StyleGAN玩出新高度!生成999幅抽象畫,人人都是畢加索(附代碼)
【新智元導讀】英偉達推出的StyleGAN在前不久大火了一把。今日,Reddit一位網友便利用StyleGAN耗時5天創作出了999幅抽象派畫作!不僅如此,他還將創作過程無私的分享給了大家,引來眾網友的一致好評。
人人都能當抽象派畫作大師了!
去年,佳士得拍賣會上拍賣了一副由AI創作的肖像畫——《愛德蒙·貝拉米的肖像》,該畫最終售價43.25萬美元(301萬元人民幣),遠遠超過了7000到1萬美元的預計售價,同時也引發了人們對人工智慧作畫的熱烈探討。
愛德蒙·貝拉米的肖像
今天,Reddit上一位網友利用StyleGAN訓練生成了999幅抽象派畫作!
生成的其中一幅畫作
這項工作使得其他網友們羨慕不已:
那麼,這999幅AI生成的畫作中,是否又會出現天價作品呢?值得拭目以待。
利用StyleGAN訓練生成抽象派畫作
這位名為「_COD32_」的網友在Reddit上毫無保留的分享了這項工作的創作過程。
Reddit地址:
https://www.reddit.com/r/MachineLearning/comments/bagnq6/p_stylegan_trained_on_paintings_512x512/
在模型方面,採用的依舊是去年英偉達爆款StyleGAN,這是一種新的生成器架構,基於風格遷移,將面部細節分離出來,由模型進行單獨調整,從而大幅度超越傳統GAN等模型。
英偉達StyleGAN GitHub官方地址:
https://github.com/NVlabs/stylegan
在數據方面,採用的是Kaggle上名為」Painter by Numbers「項目中的數據集,其中大部分的圖像數據來源於WikiArt.org網站。
Kaggle地址:
https://www.kaggle.com/c/painter-by-numbers/data
其中,只採用了≥1024X2014的圖像。在GTX 1080 TI上的訓練時間大約是5天。
不過作者表示,該模型試圖生成人臉的部分並不是很完美,但其它部分還算可以。
例如下面兩個隨機向量之間的快速隱空間差值(latent space interpolation):
同時,作者也給出了訓練好的模型和Jupyter Notebook地址:
https://mega.nz/#!PsIQAYyD!g1No7FDZngIsYjavOvwxRG2Myyw1n5_U9CCpsWzQpIo
https://colab.research.google.com/drive/1cFKK0CBnev2BF8z9BOHxePk7E-f7TtUi
英偉達「造假」黑科技:StyleGAN簡介
StyleGAN是英偉達提出的一種用於生成對抗網路的替代生成器體系結構,該結構借鑒了樣式遷移學習的成果。新結構能夠實現自動學習,以及無監督的高級屬性分離(比如在使用人臉圖像訓練時區分姿勢和身份屬性)和生成的圖像(如雀斑,頭髮)的隨機變化,並能在圖像合成和控制上實現直觀化和規模化。
新模型在傳統的分布質量指標方面實現了提升,並且更好地解決了潛在的變數因素。為了對插值質量和分解進行量化,本模型提出了兩種適用於任何生成架構的自動化新方法。以及一個新的、高度多樣化、高質量的人臉數據集。
英偉達研究人員在論文中寫道,他們提出的新架構可以完成自動學習,無監督地分離高級屬性(例如在人臉上訓練時的姿勢和身份)以及生成圖像中的隨機變化,並且可以對合成進行更直觀且特定於比例的控制。
換句話說,這種新的GAN在生成和混合圖像,特別是人臉圖像時,可以更好地感知圖像之間有意義的變化,並且在各種尺度上針對這些變化做出引導。
例如,研究人員使用的舊系統可能產生兩個「不同」的面部,這兩個面部其實大致相同,只是一個人的耳朵被抹去了,兩人的襯衫是不同的顏色。而這些並不是真正的面部特異性特徵,不過系統並不知道這些是無需重點關注的變化,而當成了兩個人來處理。
在上面的動圖中,其實面部已經完全變了,但「源」和「樣式」的明顯標記顯然都得到了保留,例如最底下一排圖片的藍色襯衫。為什麼會這樣?請注意,所有這些都是完全可變的,這裡說的變數不僅僅是A + B = C,而且A和B的所有方面都可以存在/不存在,具體取決於設置的調整方式。
下面這些由計算機生成的圖像都不是真人。但如果我告訴你這些圖像是真人的照片,你可能也不會懷疑:
效果如此出眾的StyleGAN一經開源就成了「網紅」,由該模型生成的假臉幾乎完全可以亂真,即使是放大了仔細看,大多數情況下依然難以分清,其難度堪比「大家來找茬」。
為此,有人甚至專門寫了一篇指南,專門指點那些有興趣「鑒臉」的人,該文總結出了StyleGAN生成假臉的幾處常見的破綻。不過,這些破綻大部分是在圖片背景、配飾、衣物等附加元素上找到的,面部本身的破綻雖然也有,但顯著性和易見性都要下降一個檔次。
上圖的StyleGAN生成圖像在面部上幾乎無破綻,但左右耳的首飾不對稱
被玩壞的StyleGAN:從「假人臉」到「假房子」,生成世間萬物
StyleGAN生成假臉圖像的逼真程度令人驚艷,但這麼厲害的模型只能用來生成假人臉嗎?顯然不是。很快,越來越多的吃瓜群眾發現了StyleGAN的更多潛力。比如生成假的出租房。
前不久,就有好事者利用StyleGAN生成了一個假的Airbnb租房網站,上面從房源圖片、地址、再到租客的評論和打分沒有一個是真實的,全是StyleGAN的傑作。
假房生成網站 thisairbnbdoesnotexist.com,每次刷新都會出現一個虛假的房源,網頁上的照片、文字描述、發布人頭像均由計算機自動生成。由於使用的模型非常簡單,文字描述多有不合邏輯之處,但乍看上去還是能以假亂真。來源:假房生成網站 thisairbnbdoesnotexist.com
AirBNB網站截圖,避免廣告嫌疑做了虛化處理
根據Christopher Schmidt在Twitter的介紹,生成每個網頁用一塊GPU只需0.5秒,相關代碼開源,你可以在這裡找到:
https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/shakespeare_with_tpu_and_keras.ipynb
這個「假房源」網站是怎麼做的?
網站上的圖像當然由著名的圖像生成模型StyleGAN生成,文本則來自在一個AirBNB列表(文末鏈接[1])上訓練的語言模型,主要基於Tensorflow的「Predict Shakespeare with Cloud TPU」(https://t.co/sJoUbwZ2UL)。
這個文本生成模型似乎是個兩層的前饋LSTM(文末鏈接[2]),主要是用它來獨立訓練生成房屋列表中的標題、描述、房主姓名、地理位置等,然後組合生成綜合列表。
每個模型的輸出都是預先生成的,每5秒創建一個新的列表(網頁)。唯一的修改是根據文本稍微調整序列大小。
下面是Christopher Schmidt在Twitter上對這個「假房子」網站的簡要介紹,包括靈感來源、大致結構、構建頁面使用的框架和訓練方式等。
本頁面在開發時主要使用以下幾種模型:在構建圖片和卧室照片時使用StyleGAN,一些文本網路的訓練使用了tf.keras來生成地點名稱、房主姓名、標題和描述。此外還使用了Tensorflow的實例代碼)所有的數據訓練過程都在谷歌的Colab上完成,
該平台上可以免費使用GPU和TPU來訓練和生成數據。
每個模型都可以做出獨立的預測,所以會經常出現各部分信息不相配的情況,比如描述信息中說某套房子有一間卧室,但列表信息中顯示有四件卧室,或者外觀和名字排列不齊等。 但總的來看,這個過程是比較理想的,我在這個學習過程中也獲得了不少樂趣,進一步掌握了一些模型的使用技巧。這裡要感謝Colab平台,更感謝StyleGAN社群的出色研究成果。
有了這個思路,應用方向什麼的就不用愁了,基於StyleGAN模型的假簡歷、假食物、假貓咪等等如雨後春筍一樣不斷湧現。甚至有人把這些「造假成果」匯總到了一個網站,叫「這些東西都不存在」。
這樣看來,StyleGAN已經火到了幾乎要被「玩壞」的程度。未來再出現什麼樣的假貨,可能已經不取決於模型本身,而是程序員們的腦洞了。
介紹了這麼多,大家是不是也想玩一玩StyleGAN呢?打開下方鏈接,快去嘗鮮吧!
參考鏈接:
https://www.reddit.com/r/MachineLearning/comments/bagnq6/p_stylegan_trained_on_paintings_512x512/
https://github.com/NVlabs/stylegan
※何愷明團隊神經結構搜索最新力作:設計隨機連接網路,效果超ResNet
※Science專欄:關於AI黑箱的終極答案
TAG:新智元 |