6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

StyleGANをVOICEROID立ち絵に適用する

Last updated at Posted at 2019-03-22

StyleGANをイラスト、アニメに適用している人は多いようです。
(https://twitter.com/search?q=stylegan&src=typd)

StyleGANが画像のスタイルをうまく捉えられるということであれば、それが顕著なデータセットを用意したら面白い結果が得られるのではないかと思い、そのようなデータとしてVOICEROIDの立ち絵から顔画像を持ってくることを考えてみました。

VOICEROID立ち絵

VOICEROID素材まとめ Wiki*から画像を収集しました。
headless Chrome, selenium, BeautifulSoupでリンク先のプレビュー画像を取得し、lbpcascade_animeface.xmlにて検出できた領域を無理やり64x64にリサイズしたものを訓練データとしています。
結月ゆかり、弦巻マキ、琴葉茜・葵、東北ずん子、東北きりたんの6人分、画像数約6600枚を訓練データとしています。

ランダムな単一画像の出力

オリジナルのstyleganをsubmoduleとするリポジトリを用意し、手軽に試せるコードをGoogle Colaboratoryに用意しました。

evaluate-vroid.ipynb - Colaboratory

乱数のシードを30としたときの出力例を以下に示します。

image.png

2方向マッピング

StyleGANの2方向マッピング - Qiitaを参考に、使うモデルだけを変えて実行できるようにしました。

StyleGAN 2way mapping - Colaboratory

以下は出力例です。

image.png

感触

データ数が少ない割にはそこそこ結果を出せている印象です。ただ、画風がかなり異なる画像(線の太さ、デフォルメの強弱等)があるための影響が大きい感じがします。

また、取得した画像は他の画像と部分的にオーバーラップしているケースもあったため、その影響も見られます(上から2段目、3段目の左側)。
今回はプレビュー画像をそのまま使ったので、もっと綺麗な状態の配布素材画像を直接使うようにすればこの問題は解決できそうです。しかし、配布方法が人によって異なっており自動収集が難しいという課題があります。

課題

NVIDIAのStyleGAN実装は、推論にもGPUが必要です。計算グラフの中でGPUの指定が陽にされているためです。
allow_soft_placementを指定して無理やりCPUで処理させようとすると、

UnimplementedError (see above for traceback): Generic conv implementation only supports NHWC tensor format for now.
         [[node Gs/_Run/Gs/G_synthesis/4x4/Conv/Conv2D (defined at <string>:168) ]]

conv2dがUnimplementedErrorを発生させて動きませんでした。NCHW形式にしたら動くんでしょうか。

配布ファイル

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?