
GANとは?画像生成技術事例の紹介。
GAN (Generative Adversarial Network) [1]は日本語では敵対的生成ネットワークと呼ばれ、2014年にIan Goodfellow氏によって提案された生成モデルの一種です。
GANでは、生成器と識別器の2つのニューラルネットワークを訓練します。識別器は生成器の出力が偽物か本物かを見分けるように学習し、生成器は識別器に偽物と判定されないような出力を生成するように学習します。このように2つのネットワークが互いに競い合うように学習することで、最終的に本物と見分けがつかないようなデータを生成することが可能となります。
2014年以降、GANに関しては様々な研究が行われ、現在に至るまで数々のGANが提案されています。次の動画は、2018年に発表されたGANの発展系のStyleGAN [2] による生成画像を紹介したものです。
(2019年12月にはStyleGAN2も発表されました。)
動画内の画像のように生成された結果は、人間でも偽物と判断できないようなものを生成することが可能となってきています。
またそれ以外でも、音や動画の生成、異常検知や超解像、画像変換など様々な応用分野が研究されています。
GANを使ってデザイナー支援はできるのか
GANは大量の画像生成ができるので、そこから新しいデザインを生み出せるのではないかと考えたのが、今回のプロジェクトのスタートでした。しかし現状のGANでは、学習データに存在しないクリエイティブなデザインを生成することは難しいことがわかっています。
では、クリエイティブな発想は人間に任せるとして、その発想を支援するようなツールをGANで実現することはできないでしょうか。
新しいデザインを発想する過程では、いくつかのパターンとその組み合わせを考えてアイディアの試行錯誤を行います。
その際に、デザイナーが考えたパターンを、脳内だけでなく、具体的な画像として出力することで、アイディアの発想を加速させ、クリエイティブなデザイン生成の支援をすることができないか、と考えました。
そこで、GANで画像を大量に生成し、デザイナーが選んだ画像に対して、望む特徴に操作が出来るツールの開発にチャレンジしました。
GANの開発内容
今回、GANで学習する対象は車です。
車を選んだ理由は、毎年新しいデザインの車が生産されている(新しいデザインが必要とされている)ことや比較的学習用データが集めやすいという点から採用しました。
使用したアルゴリズムはTL-GAN (Transparent Latent-space GAN) [3]です。
TL-GANではGANの学習と画像の特徴を操作する部分を別々に学習することができます。これにより計算コストがかかるGANの学習は1度だけ行い、操作したい特徴を決定するための試行錯誤は何度も行う、ということが可能となります。
TL-GANで使用するGANの生成器にはPGGAN(Progressive growing GAN)[4] を利用し、特徴抽出器は事前学習済みのResNet50を利用しました。
(今回は、詳細な説明は省きますが、詳しく知りたい方はリンク先をご参照ください)
学習に使用したデータセットですが、TL-GANの学習にはスクレイピングした画像から背景がなく車の向きがそろったもので、アノテーションがつけられる画像のみを使用しました。
一般的なGANは機械学習でいわれる「教師なし学習」に該当し、画像に対してアノテーションは不要なのですが、今回は特徴抽出器で「教師あり学習」を行うため、アノテーション付きのデータが必要となりました。
以下が学習したPGGANの生成画像です。
解像度128 の生成画像
解像度256の生成画像
向きが統一されており、背景もないので、車の特徴がわかりやすく画像に現れています。学習に使用した枚数は一般的なGANの学習に利用されるデータセット(celebAなど)と比較してかなり少ない約7000枚ですが、生成画像の質も定性的にみて悪くありません。
これで生成器が出来たので、デザイナーに選んでいただくための大量画像生成が可能になりました。
次は特徴抽出器を学習し、TL-GANでの特徴操作を行っていきます。
特徴抽出器では、操作したい特徴を分類するように学習します。今回操作する特徴は、検討を重ねた結果、変化がわかりやすいものかつ、特徴抽出器の分類精度の高かったものとして次の項目を選びました。
■ ボディタイプ
➢Coupe
➢Mpv_van
➢PickUp
➢Sedan
➢SUV
■ 生産された年代
➢1930_1960s
➢1960_1980s
➢1980_2000s
➢2000_2015s
ボディタイプとは車の形のことを意味し、例えばCoupeだと二人乗りの2ドア、PickUpは後方に開放式の荷台があるなどの特徴があります。
ボディタイプ参考画像:左上からCoupe、Van、PickUp、Sedan、SUV
ここまでで生成器と特徴抽出器が揃いました。あとはTL-GANの学習を行うことで、生成画像を特徴方向に動かすためのベクトルが得られます。
TL-GANの結果
今回はJupyter Notebookで簡単なプロトタイプを作成しました。
各種特徴の影響度をスライドバーで調整可能にし、特徴の組み合わせによって様々なパターンを生成できるようにしました。
このツールを使って画像生成を行なっているのが以下のデモ映像になります。
生成された画像を各特徴のバーをスライドさせることで、例えば特定のボディタイプの要素を強めるなど、望んだ特徴に変化させることができています。
では、このツールを用いて本当に新しいデザインができるのか?
それを確かめるため、東京大学の自動車部の方々に協力頂き、彼らが考える新しい車をデザインしていただきました。
次がデザインしていただいた車になります。
いかがでしょうか?
1枚目の作成者にヒアリングしたところ、「各年代に強弱をつけて70年代を意識してみたところ、アメ車よりも顔がかわいめで、リアまで窓があって斬新な車が出来た。」と車好きは思わず頷く?デザインが出来ました。
このように、私たちのツールを使えばデザインのスキルが無い人でも、簡単に自分の望む車のデザインが作成できることがわかりました。
GANプロジェクトの今後の展望
今後の展望として、本物のデザイナーの方にツールを使っていただき、有用なツールなのか検証を進めていく計画です。また、今回はテーマとして車を選択しましたが、それ以外の分野でも応用先の検討を行っていきます。
技術的な観点では、ツールとしてのUI設計やStyleGANをはじめとした最新のGANを使うことで生成画像の質が向上するのかなどを検証してみたいです。
参考文献
[1] I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio. Generative Adversarial Networks. In NIPS, 2014.
https://arxiv.org/pdf/1406.2661.pdf
[2] T. Karras, S. Laine, and T. Aila. A style-based generator architecture for generative adversarial networks. In CVPR, 2019.
https://arxiv.org/pdf/1812.04948.pdf
[3] T. Karras, T. Aila, S. Laine, and J. Lehtinen. Progressive growing of GANs for improved quality, stability, and variation. In ICLR, 2018.
https://arxiv.org/pdf/1710.10196.pdf
[4] Generating custom photo-realistic faces using AI https://blog.insightdatascience.com/generating-custom-photo-realistic-faces-using-ai-d170b1b59255
お問い合わせ
お問い合わせは以下よりお願いします。


