Open shimopino opened 4 years ago
[arXiv:2003.07101] Synthesizing human-like sketches from natural images using a conditional convolutional decoder
Moritz Kampelmühler, Axel Pinz
2020-03-16
画像からスケッチを生成するタスクではじめてEnd-To-Endな学習を達成した。ネットワークにはEncoder-Decoder構造を採用し、従来のピクセル間距離の損失ではなくAlexNetを使用したPerceptual Similarity損失を採用した。
VGG16を基礎としてEncoder-Decoder構造を採用している。またDecoder側にSkip-Connectionを導入し、物体の形状といった低い層で学習した内容にアクセスできるようにしている。
またSkip-Connectionによって増加したチャンネル数に対して、(1)1x1畳み込み層を適用して入力チャンネル数を削減した後にアップサンプリングを行う、(2)増加したチャンネルはそのままでアップサンプリングを行う、2つの戦略を試している。
Decoder側には、出力対象となるスケッチのクラス情報をEmbedding層でベクトルに変換したものを、AdaINに通して物体の形状が対象のクラスに合うようにしている。
スケッチ画像は2値画像に近いため、単純にピクセル間の距離を比較してしまうと少しのズレが大きな誤差になってしまう。
そこで損失関数として、出力されたスケッチ画像と正解のスケッチ画像とのPerceptual Similarityを採用し、Sketchyデータセットで事前学習済みのAlexNetを使用して計算する。
Sketctyデータセットを使用する。このデータセットは以下の図のように異なる人が描いており、同じ画像に対して複数のスケッチが紐付いている。なお、実験ではこのデータセットから画像に合わないスケッチや曖昧なスケッチは削除している。
実際に生成された画像を見てみると、対象の物体が十分に大きかったり、近くに似ている物体が存在していなときは、うまく動作していることがわかる。反対に、写っている物体のサイズが小さかったり、訓練画像にはない特殊なポーズを取っていたりすると、うまくスケッチを生成できていないことがわかる。
次にどの要素が生成に寄与しているのか検証するためにAblation Studyを行った。比較してみると、Perceptual Similarity損失関数とAdaINの適用が性能向上に貢献していることがわかる。
様々なスケッチの生成手法を比較してみる。既存のHEDでは物体をうまく表現できておらず、セグメンテーションマップから生成したOutlineも人間が描いたスケッチには見えない。
本手法で生成されたスケッチは、後処理をしていないため高周波な部分が存在していますが、人間の描いたスケッチに近い画像が生成されていることがわかります。
同一クラス内の画像で対してどのように生成される画像が変動するのか検証します。それぞれ同一クラスであっても、対象のポーズに合わせてスケッチも修正されていることがわかる。
次にAbalation Studyで行った各要素の検証に合わせて、実際に人間が目で見てどれが本物に見えるのか選択する実験を実施した。
比較実験で判明していたとおり、PSimやAdaINを適用することで、人間が生成された画像だと判定することが難しくなっていることがわかる。
https://github.com/kampelmuehler/synthesizing_human_like_sketches
論文へのリンク
[arXiv:2003.07101] Synthesizing human-like sketches from natural images using a conditional convolutional decoder
著者・所属機関
Moritz Kampelmühler, Axel Pinz
投稿日時(YYYY-MM-DD)
2020-03-16
1. どんなもの?
画像からスケッチを生成するタスクではじめてEnd-To-Endな学習を達成した。ネットワークにはEncoder-Decoder構造を採用し、従来のピクセル間距離の損失ではなくAlexNetを使用したPerceptual Similarity損失を採用した。
2. 先行研究と比べてどこがすごいの?
3. 技術や手法の"キモ"はどこにある?
3.1 モデル構造
VGG16を基礎としてEncoder-Decoder構造を採用している。またDecoder側にSkip-Connectionを導入し、物体の形状といった低い層で学習した内容にアクセスできるようにしている。
またSkip-Connectionによって増加したチャンネル数に対して、(1)1x1畳み込み層を適用して入力チャンネル数を削減した後にアップサンプリングを行う、(2)増加したチャンネルはそのままでアップサンプリングを行う、2つの戦略を試している。
Decoder側には、出力対象となるスケッチのクラス情報をEmbedding層でベクトルに変換したものを、AdaINに通して物体の形状が対象のクラスに合うようにしている。
スケッチ画像は2値画像に近いため、単純にピクセル間の距離を比較してしまうと少しのズレが大きな誤差になってしまう。
そこで損失関数として、出力されたスケッチ画像と正解のスケッチ画像とのPerceptual Similarityを採用し、Sketchyデータセットで事前学習済みのAlexNetを使用して計算する。
4. どうやって有効だと検証した?
Sketctyデータセットを使用する。このデータセットは以下の図のように異なる人が描いており、同じ画像に対して複数のスケッチが紐付いている。なお、実験ではこのデータセットから画像に合わないスケッチや曖昧なスケッチは削除している。
実際に生成された画像を見てみると、対象の物体が十分に大きかったり、近くに似ている物体が存在していなときは、うまく動作していることがわかる。反対に、写っている物体のサイズが小さかったり、訓練画像にはない特殊なポーズを取っていたりすると、うまくスケッチを生成できていないことがわかる。
次にどの要素が生成に寄与しているのか検証するためにAblation Studyを行った。比較してみると、Perceptual Similarity損失関数とAdaINの適用が性能向上に貢献していることがわかる。
様々なスケッチの生成手法を比較してみる。既存のHEDでは物体をうまく表現できておらず、セグメンテーションマップから生成したOutlineも人間が描いたスケッチには見えない。
本手法で生成されたスケッチは、後処理をしていないため高周波な部分が存在していますが、人間の描いたスケッチに近い画像が生成されていることがわかります。
同一クラス内の画像で対してどのように生成される画像が変動するのか検証します。それぞれ同一クラスであっても、対象のポーズに合わせてスケッチも修正されていることがわかる。
次にAbalation Studyで行った各要素の検証に合わせて、実際に人間が目で見てどれが本物に見えるのか選択する実験を実施した。
比較実験で判明していたとおり、PSimやAdaINを適用することで、人間が生成された画像だと判定することが難しくなっていることがわかる。
5. 議論はあるか?
6. 次に読むべき論文はあるか?
論文情報・リンク