さくらの熱量チャレンジ 第20回
PFN、ピクシブ、さくらが語るサービス運営の舞台裏
機械学習で線画を自動着色する「PaintsChainer」の楽しすぎる未来
2017年12月06日 10時00分更新
機械学習を用いて線画に自動着色する「PaintsChainer」。その精度の高さに多くの絵描きが驚嘆し、そして魅了されている。正解のない自動着色という分野に挑んだPreferred Networks(PFN)の米辻泰山氏、PaintsChainerをお絵描きサービスに取り込んだピクシブの清水智雄氏、古賀和樹氏、川田寛氏、そして機械学習のための高火力コンピューティングを提供したさくらインターネットの須藤武文氏に話を聞いた。(インタビュー:アスキー編集部 大谷イビサ 以下、敬称略)
AdventCalenderネタからサービス化した「PaintsChainer」
大谷:PaintsChainer使ってみましたが、なんだかすごいの声しか出ないですね。イラスト描き志望のうちの娘の線画を登録してみましたが、着色だけはいきなりプロ並みになって大喜びです。まずは開発に至るまでの経緯を教えてください。
米辻:PFNから一昨年のChainerのAdventCalenderで、DCGANというニューラルネットを使って、顔イラストを自動生成するという記事が上がっていたんです。私はPFNに入る前にその記事を読んでいましたが、「64×64ピクセルでなんとなく顔っぽく見える」くらいまでできるなら、次は着色も行けるんじゃないかなと漠然と考えていました。ここらへんがきっかけですかね。
その後、縁あってロボットのエンジニアとしてPFNに入社し、半年くらいロボットに専念した後、ディープラーニングを勉強しようと思ってAdventCalendarで試作したのがPaintsChainerです。画像分類のサンプルプログラムだけじゃ面白くないので、具体的な問題として線画を着色するということにチャレンジしました。もともと弊社には前述した記事を書くようなビジョン系の研究エンジニアもいましたので、周りの方にろいろ教えてもらって、線画を登録したら自動着色してくれるサービスができました。
大谷:ブログでの「すげええ!!」がブレイクのきっかけなんですよね。
米辻:そうなんです。12月に公開したブログが非常に好評だったことから、2017年1月からサービスとして公開しています。僕も、今ではほぼPaintsChainer専任でやらせてもらっています。
PaintsChainerの自動着色は「答えをでっち上げる」に近い
大谷:そもそもこれってどうやって自動着色しているんでしょうか? 私のような非エンジニアに対して説明してもらえますか?
米辻:たとえば白黒写真の自動着色はPaintsChainer以前からあるのですが、これはどちらかというと正解がわかっているクラシフィケーション(分類)の問題なんです。白黒なら当てるのは残りの2チャンネルでいいし、正解が見たければ、写真や自然物を見ればいい。でも、線画の自動着色となると相当難しい。髪であれば写真なら黒、金、白くらいでいいのですが、イラストの場合は極論どんな色でもいい。だから、「正解がない」とすら言えるんです。
大谷:確かにそうですよね。髪の色が赤でも、青でも、自分のイメージ通りだったら、ユーザーはうれしいです。
米辻:だから、色の推測よりも、むしろ画像生成なんです。答えを当てるのではなく、答えをでっち上げるに近い。そのため、正解に属するグループと偽物に属するグループを見分けられるようにネットワークをトレーニングさせ、違和感を感じないモノに仕上げる感じです。人間もいったん色を塗ってみて、違和感を感じたら、また塗り直して仕上げるので、似たような作業をやっていると思うんです。
大谷:「この色は許容するけど、これは違和感を感じる」という色やタッチを学習させているというイメージでしょうかね。
米辻:学習に際してはある程度ヒントを反映するとか、変な画像を出さないとか、ベタ(塗りつぶし)のある画像など、完全な線画でないような入力でもある程度差異を吸収するといったことはしますが、実は明確なルールはほとんど設けていません。だから、ポケモンをいっぱい捕まえてきて、個体値を厳選するみたいな地道な作業です(笑)。
大谷:昨年以来、エンジンは進化しているのでしょうか?
米辻:まずは初期モデルとして「たんぽぽ」というモノを作りました。5月にピクシブさんと共同で「さつき」を発表し、10月には新たに「かんな」をリリースしています。
初期モデルのたんぽぽは、似たような色でぼかす傾向にあります。金髪と肌色は似た色なので、そこに近い色を塗って、減点を避けます。とりあえずベースは黄色塗っておいて、ほかの場所は差し色を入れておくみたいな気持ちなのかなと推測します(笑)。
大谷:気持ち(笑)。
米辻:イラストの初心者もとりあえずぼかすという方は多いのですが、たんぽぽもそんな傾向。いまだにたんぽぽのふわっとした彩色が好きというユーザーさんも多いです。
大谷:たんぽぽは、後から出てきたさつきやかんなと、どこが違うのでしょうか?
米辻:たんぽぽとさつきはモデルの構造や使っているデータがいっしょで、トレーニングの過程だけが違います。パラメータだけ違うので兄弟みたいです。一方、かんなはモデル自体がほかの2つと異なり、性能がいいはずです。まあ、着色で言う性能ってなんだよという話ですが(笑)。
大谷:確かに。正解がないところに、自問自答しながらやっているんですね。
米辻:性能というより、性格が違うという感じですかね。たとえば、かんなは線が入っていないところにハイライト入れられるのですが、どこでも入れて良いわけじゃない。
とはいえ、今は性能とは違う領域に来ています。学校の教育のように正解かどうか○×付けるのではなく、エンジニアが数値的に善し悪しを判断するのでもなく、むしろデザインやセルフブランディングの世界。「私はこのスタイルで行くから、ちゃんと着いてきてね」みたいな感じです。
当初はWebサーバーもGPUサーバー上にあった
大谷:で、このPaintsChainerの計算リソースを支えるのが、さくらの高火力コンピューティングなんですよね。
米辻:はい。もともとPFNは、さくらの高火力コンピューティングを使用していたので、PaintsChainerのデモでもさくらの高火力コンピューティングを借りて使用しました。PaintsChinerはとにかく最初のバズりがすごくて、1サーバー4GPUではまったく追いつかず、結局、5台並べて20GPUでやっていました。
当初は複数台を前提としてなかったので、ラウンドロビンも適当。Webサーバーのホスティングもさくらの高火力コンピューティングでした(笑)。
大谷:GPUサーバーでWebサイトとはなんと贅沢! 急作り感がすごいですね。
米辻:データベースや認証という概念もなく、単にローカルにファイルが保存されているだけなので、あわててデータベース化して、Webサービス化しました。しかも研究用途なので、ネットワークも細くて、帯域が足りなくなるんです。そこでさくらインターネットさんに泣きついて、帯域を増やしてもらいました。
大谷:確かに画像がバンバン飛んでくるわけですから、帯域細いと厳しいですね。
須藤:高火力コンピューティングって、基本計算リソースなので、インターネットと通信したりしないんです。その点、PaintsChainerは一番インターネットと通信したサーバーになるのではないかと(笑)。
大谷:処理的には、たんぽぽ、さつき、かんなで違うんですか?
米辻:かんなはモデル自体が大きくなっているので、計算量がだいぶ増えてますね。その代わり、瞳とかにも自動で着色してくれたりします。
この連載の記事
-
第43回
デジタル
「さがみ湖イルミリオン」のIoTアトラクションを生みだした名古屋の燃料配達会社 -
第41回
sponsored
ハッカソン好き技術者が考えた未来のゴミ箱は「自分でお金を稼ぐ」? -
第40回
sponsored
衛星データを民主化するTellus、さくらインターネットから見た舞台裏 -
第39回
sponsored
首里城の3D復元プロジェクトを生んだ小さな奇跡の連なり -
第38回
sponsored
「寺院デジタル化エバンジェリスト」に聞く、お寺とデジタルの未来 -
第37回
sponsored
衛星データが使い放題?経済産業省とさくらが描いたTellusへの道 -
第36回
sponsored
宮古島は「エネルギー自給率向上」を目指し、再エネ+IoTをフル活用 -
第35回
sponsored
映画/ドラマ情報の「Filmarks」、画像配信の悩みをImageFluxで解決 -
第34回
デジタル
放射線治療をAIで効率化するベンチャーと京都大学病院の挑戦 -
第33回
sponsored
ガンプラの新たな楽しみ方に挑む! BANDAI SPIRITS/バンダイナムコ研究所/冬寂/フレイム -
第32回
デジタル
ニホンミツバチの養蜂IoTにsakura.ioを活用してみた - この連載の一覧へ