TextureGAN: Controlling Deep Image Synthesis with Texture Patches[Xian+ CVPR-18]

f:id:udooom:20180622012732p:plain

TextureGAN: Controlling Deep Image Synthesis with Texture Patches[Xian+ CVPR-18]

[1706.02823] TextureGAN: Controlling Deep Image Synthesis with Texture Patches

Abstract

深層学習を用いてSketch, Color, Texture(論文中で定義)による画像合成の調査。

今までの画像合成はSketchとColorでされてたが、Textureを制御すること検討する。

Sketchに色のついたものを乗っけると線画画像が塗ることができるように学習する。

この目的を達成するために、local texture lossを提案する。

TextureGAN

Figure2は、Content と Style は VGG を使い、high-level semantic informationを獲得してるらしい(VGGでやると特徴量が色々出て来るから?わからない StyleTransferまわりの知識が抜けてました。)

generating structure の feature loss に注目するために、ground-truth(本物)とgeneratedをRGBからLAB色空間に変えて、Lチャネル値を繰り返して gray scale に変換している。

結果はFigure 4

Figure3は、low-level texture details に注目するのはむずいので、Textureから特徴持って来てる。 加えて、local texture loss(赤い矢印の3つのlossの和) を提案してる。

学習時にはmaskを入れてるが、用いたデータセットは背景が白いので、foreground部分がそれに該当する。[1]

結果はFigure 5

VGGは"leather"で出て来た画像を厳選した6300枚でfine-tuningして使った。

fig-2

fig-4

Conclusion

local textureの制約で学習すれば(Figure 3)、conditional を含めたpix2pixのようなタスクをこなせるようになった。

Lab色空間で操作すると、color と contentを分けて操作できた。

Figure8より、複数のTexture(色のcondition)を入れても、学習できることがわかった。

感想

  • ありえんロス多いのに学習成功させてるところにパワーを感じた。すげえ。
  • 初めてLab color spaceなんて言葉聞いた。なんやねんそれ。多分RGB空間でやるより、Lチャネルでgray scaleでできたり、ABチャネルでロスを計算させれたりできているので、楽なんだろうなあ
  • 背景が白く、maskの獲得が簡単なので学習がうまくいくのか?もし、新宿に立ってる人間の線画でやろうとするとmaskを獲得できても難しいのではないかと思った。いや、わからん。
  • 失敗例をみたい
  • スク水画像になるように学習して、適当に拾って来た人間の画像を線画にして、生成することでそのような画像にを生成できるようになる世界が早く来て欲しい。