GANによる画像生成のアプリケーションを調べてみた

# 概要
先日、<a href="https://illustmimic.com/">mimic</a> というサービスが発表され、大きな反響を呼びました。本サービスの是非は置いておくとして、Deep Learningによる画像生成というジャンルはここ数年で急激に成長しているように思われます。

mimic がどのように学習させているかは公開されていないのでわからないですが、ディープラーニングによる画像生成ではGAN(敵対的生成ネットワーク)と呼ばれる手法を用いて学習させることが殆どかと思います。このGANはかなり画期的な手法で、画像生成以外でも色々なアプリケーションで用いられているそうです。

今回の mimic の件をきっかけとして、自分の理解できる範囲で「GANによる画像生成」について技術動向を追ってみようと思います。（ディープラーニングは素人に毛が生えた程度なので、内容や理解が間違ってたらごめんなさい）

# GANのアプリケーション

GANの登場は 2014 年。そこから急激に盛り上がり、2018年には論文数が10000を超えるほどにもなったそうです。2015年の時点で、GANを活用してコンピュータにイラストを描かせるというような試みがもう出てきています。

<a href="https://qiita.com/rezoolab/items/5cc96b6d31153e0c86bc">Chainerを使ってコンピュータにイラストを描かせる</a>
<a href="https://qiita.com/mattya/items/e5bfe5e04b9d2f0bbd47">Chainerで顔イラストの自動生成</a>

GANによる画像生成の精度は年々向上しています。<a href="https://arxiv.org/abs/1802.07228">この論文</a>では、2014年から2017年にかけて発表されたGANによるリアルな顔画像の生成の推移をまとめていますが、以下のように推移してます。2017年時点で既にかなりリアルな顔画像が生成できていることがわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/112872/0b511508-231e-6c9c-d0d3-ffadfdcdc119.png)

<a href="https://machinelearningmastery.com/impressive-applications-of-generative-adversarial-networks/">こちらの記事</a>は、2019年段階でのGANのアプリケーションをまとめています。この記事で紹介されているアプリケーションは、ざっくりまとめると以下です。めちゃくちゃ応用例があります。

* 顔写真生成
* リアルな写真生成（猫とか犬とか鶏とか家具とか）
* アニメ調のキャラクター生成
* ポケモン風キャラクター生成
* 手書きイラストへの着色
* テキストから画像への変換
* 顔写真から絵文字風に変換
* 顔写真の年齢を変える
* 画像の高解像度化
* 画像の欠落の補完

もちろん、実用レベルでなく研究レベルのクオリティのものも多いですが、これだけいろいろできます。この中で特に重要かなと思ったのは、<b>テキストから画像への変換（text2image)</b>と、<b>画像の高解像度化</b>の二つですね。汎用性が高そうで、他の技術との相性がよさそうです。

研究レベルではなく、実際に使われているものもあります。顔合成アプリとかは、AIがどうこうとは言ってませんが恐らくここらへんの技術を使ってると思います。例えば、<a href="https://ja.wikipedia.org/wiki/SNOW_(%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3)">SNOW</a> とかは、香港のAIベンチャーが協力しているそうです。

プレスリリースとか探してたら<a href="https://prtimes.jp/main/html/rd/p/000000002.000034722.html">アイドル自動生成AI</a>なんてのもありましたね。<a href="https://datagrid.co.jp/">同社のホームページ</a>を見てみると、結構いろいろやってて面白いです。

他にも、<a href="https://baby-ac.com/jp">赤ちゃんAC</a>というAIによって赤ちゃんの顔を予測するというサービスは、ホームページでStyleGANによる画像生成という文言で紹介されています。やっていることは、今回騒動になった mimic とかなり似ていると思いますが、どうでしょう？

また、一時期 Twitter とかでも話題になった <a ref="https://waifulabs.com/">WaifuLabs</a>という、美少女イラストを生成するサービスとかもありますね。(<a href="https://gigazine.net/news/20220121-how-waifu-labs-create/">GIGAZINEによる紹介記事</a>)　WaifuLabsについては、ネットで検索していたらこんな<a href="https://news.ycombinator.com/item?id=29901550">スレッド</a>が見つかりました。このスレのliuru氏がホンモノの開発者であるかはわかりませんが、興味深いことがかなり語られています。専門的な話は拾いきれませんが、目についたものを列挙します。

* 学習の反復回数は膨大になる。クラウドで実行するのは厳しい。
    * ebay で買った部品でスパコンを作ってそれで学習させた。
* モデルやソースコードは現時点で非公開。
    * 代わりに似たようなAIでソースコードが公開されているものを紹介している。(<a href="https://www.thiswaifudoesnotexist.net/">"This Waifu Does Not Exist"</a>)
    * 後継の <a href="https://nearcyan.com/this-anime-does-not-exist/">"This Anime Does Not Exist"</a> はStyleGANを使ってるそう。
* トレーニングに使ったデータセットは、最初は <a href="https://www.gwern.net/Danbooru2021#danbooru2020">DANBOORU2020</a> を使ったが、現在は自作のデータセット。
* モデルのトレーニングには2週間。このような品質になるまでの開発期間が2年。
    * 2019年にV1をリリースしていて、V2になるまでが2年と思われる。
* 褐色キャラを描くのが難しい。(世界で生産されるアニメアートの0.3%ぐらいしか褐色系がないから）

イラスト生成AIは、他にも <a href="https://www.midjourney.com/home/">Midjourney</a> や <a href="https://huggingface.co/spaces/stabilityai/stable-diffusion">Stable Diffusion</a> があり、つい昨日は <a href="https://www.itmedia.co.jp/news/articles/2209/01/news140.html">ERNIE-ViLG</a> というのも発表されていました。


# mimic を妄想する

ここからは、mimic というサービスがどのような要素で成立したかを考えてみます。まず、このサービスの提供元である<a href="https://www.radius5.co.jp/">株式会社ラディウス・ファイブ</a>のホームページを見てみましょう。同社はこれまでにも多数のクリエイティブ向けAIサービスを提供していたことがわかります。

たとえば、<a href="https://ja.animerefiner.com/">Anime Refiner</a> なんてのは、先ほどのGANアプリケーションの一例にあった画像の高解像度に相当するものでしょう。<a href="https://cai-chan.mystrikingly.com/">クリエイティブAI 彩ちゃん</a>は、まさにAIによるイラスト生成です。なので、もともと同社はAIによる画像生成に関してノウハウが豊富にあるということでしょう。

さて、mimic が実現しようとしていたのは、<b>ある特定のイラストレーターが描いた画像を模倣したAI生成のイラストを作成する</b>というものです。これは一つにまとめると分かりにくいですが、実態は大きく以下の2つに分かれていると思います。

* <b>イラストレーターの "特徴" を認識するAI</b>
    * 入力: イラストレーターの書いた絵（30枚以上を想定）
    * 出力: イラストの雰囲気の特徴量
* <b>イラストを生成するAI</b>
    * 入力: イラストの雰囲気の特徴量
    * 出力: AIによる生成イラスト

後者のイラストを生成するAIというのは、前述したクリエイティブAI 彩ちゃんとほぼ同等のものだと思われます。<b>mimic の独自性は、イラスト生成するにあたってイラストレーターの特徴量を抽出しようとした点</b>にあるんじゃないかと思っています。これはあくまで私の妄想ですが。

イラストメーカー作成に2時間程度で、無料で一つ作成できることを考えると、特徴量抽出に必要な計算処理はそこまで重くないものであると想定されます。


## データセットと著作権

本件の論点としてよく上がるのは、<b>「他人が描いた絵を勝手に使われるのはどうなのか？」</b> という点です。こちらについては、以下の記事が詳しいのでそちらを紹介するだけとします。

https://qiita.com/rekia/items/907d24d0dd4a2c3dc2b8


## 特徴量は誤魔化せる？
イラストレーターの特徴量を抽出するというのは、言ってみれば一種の画像認識です。実はこの分野でAIを混乱させて誤った挙動をさせる手段があります。<a href="https://www.tensorflow.org/tutorials/generative/adversarial_fgsm?hl=ja">Adversarial Examples</a> という手法です。

例えば、イラストレーターが画像をアップロードする際に、このような手法でノイズを混入した画像をアップロードすれば、ひょっとしたら特徴量の抽出がうまくいかなくなる可能性はあります。このような防衛手段はあるかもしれませんね。


# 最後に
正直、全然調べきれてないと思いますが、自分の中ではまぁいいかなというところまでは調べた気がします。また何か面白い情報があれば追記するかもしれません。