宫崎骏动画里的新垣结衣见过没?简直美呆!
全世界只有3.14 %?的人關注了
爆炸吧知識
本文經機器之心(ID:almosthuman2014)授權轉載
參與:肖清、思
盡管最近 2019 年的圖靈獎頒給了計算機圖形學、頒給了皮克斯 3D 動畫,但很多人可能認為二維動漫更有意思一些。像宮崎駿、新海誠這些大師手繪下的動漫,才有了靈魂,張張都能成為壁紙,而整個日漫也以二維為核心。
如果有模型能將真實畫面轉化為日漫風格的手繪畫面,那一定非常炫酷。最近機器之心發現確實有這些模型,從 CartoonGAN 到 AnimeGAN 都能生成非常有意思的圖像。
這里有一個 TensorFlow 新項目,它實現了 AnimeGAN,并提供了預訓練模型。也就是說,我們下載后可以直接試試生成效果。作為日漫風格的愛好者,我們很快就試用了一下新項目。
項目地址:https://github.com/TachibanaYoshino/AnimeGAN
雖然原項目給出的最佳示例很多都是街景,但我們發現各種場景也都還行,如下是我們試用的原圖與生成效果。看看第一張櫻花道生成效果,忽然有一種《千與千尋》的感覺。
如果只針對人物,轉換效果也是非常不錯的。我們嘗試將新垣結衣的照片輸入 AnimeGAN 模型,然后就有如下這種神奇的畫風,感覺直接用到動漫里也沒什么問題了。
在原 GitHub 項目中,作者還給了非常多的示例,上面只是機器之心試用的結果,你也可以來用一用。
AnimeGAN
整個項目實現的是論文「AnimeGAN: a novel lightweight GAN for photo animation」中所提方法,作者在論文中分別將 AnimeGAN 與 CartoonGAN、ComixGAN 進行對比。
從圖中可以看到,AnimeGAN 在細節方面的表現要優于以上兩種方法,色彩相對而言更加自然,涂抹感也沒有那么強烈。最明顯的是第二行的效果圖,使用 AnimeGAN 生成的漫畫更加接近宮崎駿的畫風。
方法簡介
對于這個項目的 AnimeGAN,如下所示為 AnimeGAN 所采用的生成器網絡與判別器網絡。看起來模型整體是比較常規地一個卷積神經網絡,但它會采用實例歸一化以及新型的 LReLU 激活函數。
除了架構細節上的更新外,作者還提出了以下三個新的損失函數:
灰度風格(grayscale style)loss
灰度對抗(grayscale adversarial)loss
色彩重構(color reconstruction)loss
這些損失函數能夠讓生成圖片的風格更加接近于真實的漫畫風格。
下表比較了 ACartoonGAN 與 AnimeGAN 的模型大小與推理速度。可以明顯看出,AnimeGAN 是個相對輕量級的 GAN,具有更少的參數量以及更快的推理速度。
總體來說,新提出來的 AnimeGAN 是一種輕量級的生成對抗模型,它采用了較少的模型參數,以及引入格拉姆矩陣(Gram matrix)來加強照片的風格。研究者的方法需要采用一系列真實圖片與一系列動漫圖片做訓練,且這些圖片并不需要成對匹配,這就表明訓練數據非常容易獲得。
項目實測
我們在 Ubuntu 18.04 下對本項目進行了測試,相關依賴環境如下:
python 3.6.8
tensorflow-gpu 1.8
opencv
tqdm
numpy
glob
argparse
這些依賴項可以說都是 CV 中常用的擴展庫,我們就不用費盡心思去解決各種依賴環境沖突的問題了,這里給個好評。
以下是本項目的訓練及測試詳細流程。我們首先將 AnimeGAN 項目克隆到本地,在 Jupyter notebook 中輸入:
!git?clone?https://github.com/TachibanaYoshino/AnimeGAN?
將工作目錄切換到 AnimeGAN:
import?os os.chdir( AnimeGAN ) print(os.getcwd())接下來下載項目作者提供的預訓練模型,使用 vim download_staffs.sh 創建一個 Shell 文件,輸入如下命令:
URL=https://github.com/TachibanaYoshino/AnimeGAN/releases/download/Haoyao-style_V1.0/Haoyao-style.zip ZIP_FILE=./checkpoint/Haoyao-style.zip TARGET_DIR=./checkpoint/saved_modelmkdir?-p?./checkpoint wget?-N?$URL?-O?$ZIP_FILE mkdir?-p?$TARGET_DIR unzip?$ZIP_FILE?-d?$TARGET_DIR rm?$ZIP_FILEDatesetURL=https://github.com/TachibanaYoshino/AnimeGAN/releases/download/dataset-1/dataset.zip ZIP_FILE=./dataset.zip TARGET_DIR=./datasetrm?-rf?dataset wget?-N?$DatesetURL?-O?$ZIP_FILE unzip?$ZIP_FILE?-d?$TARGET_DIR rm?$ZIP_FILEVGG_FILE=./vgg19_weight/vgg19.npy wget?--load-cookies?/tmp/cookies.txt?"https://docs.google.com/uc?export=download&confirm=$(wget?--quiet?--save-cookies?/tmp/cookies.txt?--keep-session-cookies?--no-check-certificate? https://docs.google.com/uc?export=download&id=1U5HCRpZWAbDVLipNoF8t0ZHpwCRX7kdF ?-O-?|?sed?-rn? s/.*confirm=([0-9A-Za-z_]+).*/ /p )&id=1U5HCRpZWAbDVLipNoF8t0ZHpwCRX7kdF"?-O?$VGG_FILE?&&?rm?-rf?/tmp/cookies.txt保存后退出,以上命令會將預訓練的模型、vgg19 權重以及訓練數據集下載并保存到其對應目錄下。在 notebook 中運行:
!bash?download_staffs.sh至此即完成所有準備工作,運行如下代碼就可以對模型進行訓練了:
!python?main.py?--phase?train?--dataset?Hayao?--epoch?101?--init_epoch?1AnimeGAN 的訓練過程如下圖所示:
當進行測試時,我們需要將用于測試的圖片保存到 dataset/test/real 目錄下,并運行如下代碼:
!python?test.py?--checkpoint_dir?checkpoint/saved_model?--test_dir?dataset/test/real?--style_name?H當看到以上輸出說明程序已經成功運行完成,生成結果保存在 results 文件夾下。可以看到,在 P100 GPU 上生成一幅圖片需要大約 2.3 秒左右。
本文轉自機器之心,禁止二次轉載。
?------------------------------------------------
總結
以上是生活随笔為你收集整理的宫崎骏动画里的新垣结衣见过没?简直美呆!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网友半夜差点被沐浴露吓死,众人:原来不止
- 下一篇: 男朋友和女朋友的区别。。。