我們都喜歡動漫人物,也可能會想自己創作一些,但我們大多數人因為沒經過訓練所以無法做到。如果可以自動生成專業水準的動漫人物呢?現在,只需指定金髮/雙馬尾/微笑等屬性,無需任何進一步幹預就能生成為你定製的動漫人物!
在動漫生成領域,之前已經有一些先驅了,比如:
ChainerDCGAN:https://github.com/pfnet-research/chainer-gan-lib
Chainer を使ってコンピュータにイラストを描かせる:http://qiita.com/rezoolab/items/5cc96b6d31153e0c86bc
IllustrationGAN:https://github.com/tdrussell/IllustrationGAN
AnimeGAN:https://github.com/jayleicn/animeGAN
但這些模型得到的結果往往很模糊或會扭曲變形,要生成業界標準的動漫人物面部圖像仍然是一大難題。為了幫助解決這一難題,我們提出了一種可以相當成功地生成高質量動漫人物面部圖像的模型。
數據集:模型要想質量好,首先需要好數據集
要教計算機學會做事,就需要高質量的數據,我們的情況也不例外。Danbooru(https://danbooru.donmai.us)和 Safebooru(https://safebooru.org )等大規模圖像討論版的數據有很多噪聲,我們認為這至少一定程度上解釋了先前工作的問題所在,所以我們使用了在 Getchu 上銷售的遊戲的立繪(立ち絵)圖像。Getchu 是一家展示日本遊戲的信息並進行銷售的網站。立繪具有足夠的多樣性,因為它們具有不同的風格,來自不同主題的遊戲;但它們也具有很好的一致性,因為它們全部都是人物圖像。
我們也需要分類的元數據(即標籤/屬性),比如頭髮顏色、是否微笑。Getchu 並沒提供這樣的元數據,所以我們使用了 Illustration2Vec,這是一個基於卷積神經網絡的用於預測動漫標籤的工具,地址:https://makegirlsmoe.github.io/main/2017/08/14/saito2015illustration2vec
模型:核心部分
為了實現我們的目標,就必須要有一個優秀的生成模型。這個生成器需要能理解並遵從用戶給出的關於特定屬性的要求,這被稱為我們的先驗(prior);而且它還需要足夠的自由度來生成不同的詳細的視覺特徵,這是利用噪聲(noise)建模的。為了實現這個生成器,我們使用了生成對抗網絡(GAN)這種流行的框架。
GAN 使用一個生成器網絡根據前提和噪聲輸入來生成圖像,GAN 還有另一個網絡會試圖將生成的圖像和真實圖像區分開。我們同時訓練這兩個網絡,最終會使得生成器生成的圖像無法與對應前提下的真實圖像區分開。但是眾所周知要訓練一個合適的 GAN 是非常困難的,而且非常耗時。幸運的是,利用最近發表的相關進展 DRAGAN,可以僅需相對很少的計算能力,就能實現可與其它 GAN 媲美的結果。我們成功訓練了一個 DRAGAN,它的生成器類似於 SRResNet。
我們也需要我們的生成器能理解標籤信息,這樣才能將用戶給出的要求整合進來。受 ACGAN 的啟發,我們向生成器輸入標籤以及噪聲,並在鑑別器的頂層增加了一個多標籤分類器,用來預測圖像所分配的標籤。
使用這些數據和這個模型,我們就能在有 GPU 的機器上進行訓練。
本節所涉及的技術:
GAN:https://papers.nips.cc/paper/5423-generative-adversarial-nets
DRAGAN:https://arxiv.org/abs/1705.07215
SRResNet:https://arxiv.org/abs/1609.04802
ACGAN:https://arxiv.org/abs/1610.09585
樣例:一張圖片勝過千言萬語
為了一窺我們的模型的質量,請參看下面的圖像,可見我們的模型能很好地處理不同的屬性和視覺特徵。
固定隨機噪聲並且採樣隨機先驗是一個很有意思的設置。現在,該模型被要求生成具有相似主要視覺特徵的圖像,並與之同時結合不同的屬性,結果也很不錯:
另外,通過固定前提和採樣隨機噪聲,該模型可以生成具有不同視覺特徵,但具有相同屬性的圖像:
網頁界面:在你的瀏覽器上使用神經生成器
為了將我們的模型提供給大家使用,我們使用 React.js 構建了一個網站界面,公開在:http://make.girls.moe。通過利用 WebDNN 並將訓練後的 Chainer 模型轉換成基於 WebAssembly 的 Javascript 模型,我們使得生成過程完全在瀏覽器上完成。為了更好的用戶體驗(因為用戶在生成之前需要下載該模型),我們限制了生成器模型的大小。我們選擇了 SRResNet 生成器,使得該模型比流行的 DCGAN 生成器小了好幾倍,而且也不會影響到生成結果的質量。速度方面,即使所有的計算都在客戶端上完成,一般生成一張圖像也只需要幾秒鐘。
自從生成對抗網絡(GAN)問世之後,面部圖像的自動生成已經得到了很好的研究。在將 GAN 模型應用到動漫人物的面部圖像生成問題上已經有過一些嘗試,但現有的成果都不能得到有前途的結果。在這項成果中,我們探索了專門用於動漫面部圖像數據集的 GAN 模型的訓練。我們從數據和模型方面解決了這一問題——通過收集更加清潔更加合適的數據集以及利用 DRAGAN 的合適實際應用。通過定量分析和案例研究,我們表明我們的研究可以得到穩定且高質量的模型。此外,為了協助從事動漫人物設計的人,我們建立了一個網站,通過在線的方式提供了我們預訓練的模型,從而讓大眾可以方便的訪問模型。