Open shimopino opened 4 years ago
[arXiv:2003.02683] Image Generation from Freehand Scene Sketches
Chengying Gao, Qi Liu, Qi Xu, Jianzhuang Liu, Limin Wang, Changqing Zou
2020-03-05
風景のスケッチから本来の風景画像を生成する手法を提案した。スケッチ画像から直接画像を生成するのではなく、まずスケッチ画像からMask R-CNNを使用してセグメンテーションマップを生成し、次に前面にある物体をセグメンテーションマップから生成し、最終的に生成された前面の物体と背景のスケッチから風景画像を生成している。
また本タスクに取り組みにあたって、それぞれが対応しているスケッチ画像・エッジマップ・風景画像を収集してSkechtyCOCOデータセットを構築した。
風景のスケッチから、多数の物体とそれらの位置関係が含まれている画像を生成する新しいタスクに挑戦した。このタスクには解決すべき難しい課題がいくつかある。
本論文では、この課題を2つの連続的な小課題に分解することで、本物のような画像を生成することに成功した。
以下のように複数のタスクを連続的に解いていく。
Mask R-CNNを使用して、それぞれのクラス・Segmentationマスク・バウンディングボックスを出力する。
従来のスケッチから画像を直接生成する手法では、ある物体に対して無数に存在するスケッチをmappingする関数を学習することができなかった。
そこでEdgeGANでは、スケッチから画像を生成するのではなく、スケッチの内容を別の表現に変えた属性ベクトルから画像を生成するように、mappingさせる対象自体を大きく変更しています。
構造としてはエッジマップを生成するGeneratorと画像を生成するGeneratorを使用しており、それぞれ潜在変数と入力クラスを示すOne-Hotベクトルを入力に渡します。
その後にそれぞれのGeneratorで生成された画像が同じ物体を表しているかどうかを判定させます。また生成されたエッジマップからエンコードを使用して属性を示すベクトルとのL1損失を計算し、生成された画像に対してFocal Lossを適用してします。
最後に前のステージで生成された前面に位置する物体の生成画像と、背景のスケッチ情報を受け取り、最終的な全体画像に変換していきます。
まずは以下の17クラスの画像と対応するスケッチ画像を収集しました。
またエッジマップも収集することで、合計で5つの学習ペアを持つようになります。
またスケッチから画像を生成する方法以外でも、セグメンテーションから画像を生成するGauGANや物体のバウンディングボックスから画像を生成するAshualなどと生成結果を比較している。
風景の生成に関してはGauGANがすべての評価指標で、EdgeGANを上回っている。これは使用しているデータセットが影響していると考えられ、GauGANではCOC-stuffデータのすべてのクラスを使用いており、EdgeGANではそのうちの17種類のみしか使用していない。
EdgeGANは、さまざまなエッジやスケッチに対応ていており、様々なスタイルの画像を生成することができている。
データセット構築の手間がすごそう...
論文へのリンク
[arXiv:2003.02683] Image Generation from Freehand Scene Sketches
著者・所属機関
Chengying Gao, Qi Liu, Qi Xu, Jianzhuang Liu, Limin Wang, Changqing Zou
投稿日時(YYYY-MM-DD)
2020-03-05
1. どんなもの?
風景のスケッチから本来の風景画像を生成する手法を提案した。スケッチ画像から直接画像を生成するのではなく、まずスケッチ画像からMask R-CNNを使用してセグメンテーションマップを生成し、次に前面にある物体をセグメンテーションマップから生成し、最終的に生成された前面の物体と背景のスケッチから風景画像を生成している。
また本タスクに取り組みにあたって、それぞれが対応しているスケッチ画像・エッジマップ・風景画像を収集してSkechtyCOCOデータセットを構築した。
2. 先行研究と比べてどこがすごいの?
風景のスケッチから、多数の物体とそれらの位置関係が含まれている画像を生成する新しいタスクに挑戦した。このタスクには解決すべき難しい課題がいくつかある。
本論文では、この課題を2つの連続的な小課題に分解することで、本物のような画像を生成することに成功した。
3. 技術や手法の"キモ"はどこにある?
以下のように複数のタスクを連続的に解いていく。
3.1 Sketch Segmentation
Mask R-CNNを使用して、それぞれのクラス・Segmentationマスク・バウンディングボックスを出力する。
3.2 Foreground Generation
従来のスケッチから画像を直接生成する手法では、ある物体に対して無数に存在するスケッチをmappingする関数を学習することができなかった。
そこでEdgeGANでは、スケッチから画像を生成するのではなく、スケッチの内容を別の表現に変えた属性ベクトルから画像を生成するように、mappingさせる対象自体を大きく変更しています。
構造としてはエッジマップを生成するGeneratorと画像を生成するGeneratorを使用しており、それぞれ潜在変数と入力クラスを示すOne-Hotベクトルを入力に渡します。
その後にそれぞれのGeneratorで生成された画像が同じ物体を表しているかどうかを判定させます。また生成されたエッジマップからエンコードを使用して属性を示すベクトルとのL1損失を計算し、生成された画像に対してFocal Lossを適用してします。
3.3 Background Generation
最後に前のステージで生成された前面に位置する物体の生成画像と、背景のスケッチ情報を受け取り、最終的な全体画像に変換していきます。
4. どうやって有効だと検証した?
まずは以下の17クラスの画像と対応するスケッチ画像を収集しました。
またエッジマップも収集することで、合計で5つの学習ペアを持つようになります。
またスケッチから画像を生成する方法以外でも、セグメンテーションから画像を生成するGauGANや物体のバウンディングボックスから画像を生成するAshualなどと生成結果を比較している。
風景の生成に関してはGauGANがすべての評価指標で、EdgeGANを上回っている。これは使用しているデータセットが影響していると考えられ、GauGANではCOC-stuffデータのすべてのクラスを使用いており、EdgeGANではそのうちの17種類のみしか使用していない。
EdgeGANは、さまざまなエッジやスケッチに対応ていており、様々なスタイルの画像を生成することができている。
5. 議論はあるか?
6. 次に読むべき論文はあるか?
論文情報・リンク