好みの2次元女子を学習させた自動着色AI、米国で養った技術力で超未来を描く
ゆうこ 続いて、3番目のゲスト、今話題のAIによる自動採色を、なんと個人で取り組んでいらっしゃいます。超未来工房の十字静(とおあざせい)さんのご登場です。
十字 今回のタイトル「打倒PaintsChainer、おうちで始めるDCGAN」。こんな方々に聞いてもらいたいと思います。PaintsChainerを見てすごいと思った方、AIの使い道を知りたいなと考えていらっしゃる方、そしてDeepLearning触ってみたいと思っているけどきっかけがないと思われている方、貴方のためにお話します。
本題に入る前にさらっと自己紹介します。私、十字静と申しまして、昼間は株式会社フューチャーアーキテクトで働いており、プライベートでは技術系同人誌、超未来工房で活動しています。最近は3冊発行しました。
本題に入ります。最近話題になっているPaintsChainerですが、これはAIを使って自動彩色をするものとなります。こんな風に線画と色をヒントを入力として与えるとAIが自動に色をふってくれるんですね。夢の技術なんですね。これを自分でもやってみたいなと思ってやったのが今回のネタになります。自分でやろうとすると難しい点が2つあります。まず学習データが60万枚、500万円するGPUサーバ使って学習してPaintsChainerは動いています。これ個人でやるとすると、まず画像を集めるのに時間がかかる。ポケットマネーからは500万円はなかなか出ない。そこを工夫してみました。やってみた結果がこのようになります。

十字 にじんでいるところはあるのですが、この目の透明感などはうまくいったんじゃないかな。それでどのくらいの絵の枚数とお金がかかったかという話なんですが…、みなさん驚く準備をしてくださいね…。学習データ1024枚、3万円のAzureインスタンスで行なっています。
会場 ぉー。
いいですか? もう一回驚いてくださいね。学習データ1024枚、3万円のAzureインスタンスで行なっています。
会場 おー。
大事なことなんで、3回言います。学習データ1024枚、3万円のAzureインスタンスで行なっています。
会場 おぉー(笑)。
十字 ありがとうございます。これどういうことなのかというと、DCGAN:Deep Convolutional Generative Adversarial Networkというアルゴリズムなんです。
こちらが概念図なんですが、わかんないと思いますのでご説明します。

こちらですねDCGANというGeneratorとDiscriminatorで動いています。このDiscriminatorなんですが、一言で言うと探偵コナンくんです。Gneratorを一言で言うと、犯人です。Generatorという犯人はデータセットを学習していきます。データセットの中には入力画像と出力画像の2つの画像がペアになって1024枚入っています。犯人は偽のデータをこっそり仕込みます。忍び込ませることによって探偵コナンくんを騙そうとするのです。探偵コナンくんは何をするかというと、ひとつひとつチェックしていって、それを見破るわけですね。騙す、見破る、騙す、見破るを繰り返していきます。犯人は偽造能力が上がっていきますし、コナンくんは推理能力が上がっていく。
連鎖が8万回ぐらい続いていくと、Generatorがコナンくん絶対騙すマンに進化します。人間の目では判断できないくらい精巧な画像になっていくんです。今回でいえば線画と色ヒント、人間が着色したものと同じぐらいの画像を作ることができます。今取り組んでいるのは、風景の写真を撮ると、それを新海誠風の風景に仕立ててくれる。
会場 (笑)
十字 これ、成功したらTwitterで公表するので皆さんフォローお願いします。他にも棒人形を描くと、それにあわせて線画を描いてくれるAIを作ろうと思うので、着色と組み合わせると、人間が絵を描かなくて済む時代になる。
ここまでが画像の話なんですが、入力と出力を応用することができます。例えば文章。テーマを与えて作る詩。AIが詩を書くことができるんです。あるいは、音楽。コード進行を入力するんです。
入力と出力のペア、これさえ用意することができれば、人間のクリエイティビティさえも学習できるというのがDCGANのすごさなんです。
入力と出力のペアと申しましたが、結局データセットなんですね。今回挫折を味わいました。OpenCVを使うんですが、線の境界、物体をAIが判断できずぐちゃぐちゃな画像になりました。最終的には2段階、線画を作るところ、線画を着色するところを分けることで作ることができました。教師データをうまく作らないと失敗します。
着色のヒントなしの場合はこうなります。

はい。やっぱりPaintsChainerには勝てなかったよ、というのが今回のオチです。
Special Thanks、ChainerとAzureと@taizanさんと翔泳社。そしてご静聴のみなさん。ありがとうございました。
