pit-rayの備忘録

知識のあうとぷっと

ラベルマップから二次元美少女イラストを生成する (SPADE pix2pix)

今回は、ピクセル上の位置情報から二次元美少女イラストを生成したのでその結果をまとめます。

ソースコードは、GitHubで参照することができます。今は亡きChainerでの実装となります。
github.com


今回の構成は、GauGANをベースにしています。
ここでは簡潔に、要点だけをまとめたいと思います。

アーキテクチャ

  • オリジナルのSPADEでは、それぞれのSPADEが別々にラベルをエンコードする必要がありますが、StyleGANのようにマッピングネットワークで事前に計算し、そのweightをSPADEに入れ込むようにしました。ただし、FCNではダウンサンプリングにより位置情報が失われてしまうので、AtrousConvolutionで解像度を変えないConstant-FCNを実装しました。
  • 髪色を指定したかったため、マッピングネットワークを二つ用意し、一つはSemanticなラベルを入力し、もう一つには髪色とその位置情報をもつ同解像度のRGBマップを入力しました。また、StyleGANのように複数のweightは混ぜて渡すようにしました。
  • StyleGANのようにノイズを入れるレイヤを追加しました。
  • Discriminatorには、Multi-scale discriminatorの代わりにSelfAttentionを持つPatch Discriminatorとしました。
  • Discriminatorの損失には、Hinge lossとZero Centered Gradient Penaltyを用いました。
  • Generatorの損失には、Hinge lossとFeature Matching lossとPerceptual lossを用いました。

そのほかは、GauGANとほぼ同じ構成なので、割愛します。というのも、SPADEが登場したときは、NVIDIAの新技術ということでバズり、日本語の解説記事がゴロゴロ転がっているからです。

結果

データセットには、Pixivイラスト500枚の非常に小規模なものを用いています。
また、上に示したテストデータセットは、前回実装したAnime-Semantic-Segmentation-GANを用いて生成しました。訓練データは、手作業でアノテーションしたものを用いましたが、元の画像の著作権のため公開することはできません。

本来であれば、学習済みのモデルも公開したかったのですが、GitHub用にソースコードをリファクタリングしたところ、パラメータ名と変数名が一致せず、断念しました。後日余裕があれば再学習の上、アップロードしたいと思います。

まとめ

生成された画像のクオリティはそこまで高くありませんが、粗いアノテーションと、小規模のデータセットということを考えると、十分な結果が得られたと思います。
少々手抜きすぎる記事でしたが、参考になると幸いです。

参考文献

[1] Taesung Park, Ming-Yu Liu, Ting-Chun Wang, Jun-Yan Zhu. Semantic Image Synthesis with Spatially-Adaptive Normalization. arXiv preprint arXiv:1903.07291, 2019

[2] Tero Karras, Samuli Laine, Timo Aila. A Style-Based Generator Architecture for Generative Adversarial Networks
. arXiv preprint arXiv:1812.04948, 2019

[3] Han Zhang, Ian Goodfellow, Dimitris Metaxas, Augustus Odena. Self-Attention Generative Adversarial Networks. arXiv preprint arXiv:1805.08318, 2019

[4] Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio. Generative Adversarial Networks. arXiv preprint arXiv:1406.2661, 2014

[5] Jonathan Long, Evan Shelhamer, Trevor Darrell. Fully Convolutional Networks for Semantic Segmentation. arXiv preprint arXiv:1411.4038, 2015

[6] Liang-Chieh Chen, George Papandreou, Florian Schroff, Hartwig Adam. Rethinking Atrous Convolution for Semantic Image Segmentation. arXiv preprint arXiv:1706.05587, 2017 (v3)

[5] Liang-Chieh Chen, George Papandreou, Iasonas Kokkinos, Kevin Murphy, Alan L. Yuille. DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs. arXiv preprint arXiv:1606.00915, 2017 (v2)

[6] Takeru Miyato, Toshiki Kataoka, Masanori Koyama, Yuichi Yoshida. Spectral Normalization for Generative Adversarial Networks. arXiv preprint arXiv:1802.05957, 2018

[7] Wenzhe Shi, Jose Caballero, Ferenc Huszár, Johannes Totz, Andrew P. Aitken, Rob Bishop, Daniel Rueckert, Zehan Wang. Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network. arXiv preprint arXiv:1609.05158, 2016

[8] Qi Mao, Hsin-Ying Lee, Hung-Yu Tseng, Siwei Ma, Ming-Hsuan Yang. Mode Seeking Generative Adversarial Networks for Diverse Image Synthesis. arXiv preprint arXiv:1903.05628, 2019(v6)

[9] Lars Mescheder, Andreas Geiger, Sebastian Nowozin. Which Training Methods for GANs do actually Converge?. arXiv preprint arXiv:1801.04406, 2018

[10] Ting-Chun Wang, Ming-Yu Liu, Jun-Yan Zhu, Andrew Tao, Jan Kautz, Bryan Catanzaro. High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs. arXiv preprint arXiv:1711.11585, 2018

[11] Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, Alexei A. Efros. Image-to-Image Translation with Conditional Adversarial Networks. arXiv preprint arXiv:1611.07004, 2018