このページの本文へ

高火力コンピューティングのリソースをアスキーアートに活用

アスキーアートの精度はディープラーニングでどこまで上がるのか?

2018年05月08日 07時00分更新

文● 大谷イビサ/TECH.ASCII.jp 写真●曽根田元

  • この記事をはてなブックマークに追加
  • 本文印刷

ディープラーニングを用いて精度の高いアスキーアートを実現する「DeepAA」はどのように生まれたのだろうか?開発者である大阪大学学生の秋山理氏、計算資源を提供するさくらの「高火力コンピューティング」を担当する長谷川猛氏に話を聞いてきた。

大阪大学医学部医学科 学部学生 脳生理学教室 修士(生命科学)秋山理氏、さくらインターネット 技術本部 長谷川猛氏

ディープラーニングで手作業のアスキーアート作成に近づける

大谷:まずは秋山さんの自己紹介をお願いします。医学生なんですよね。

秋山:はい。大阪大学の医学部の5年生で、ディープラーニングを用いて脳科学を研究しています。今回のアスキーアートの自動生成には、研究室で契約しているさくらの高火力コンピューティングを使いました。

大谷:今回の取り組みについて教えてください。

秋山:ディープラーニングを使って、線画をアスキーアートに変換するモデルを作りました。趣味でアスキーアート職人をやっているので、ディープラーニングでなにかできないかなあと思って始めました。

大谷:素朴な疑問なのですが、そもそもアスキーアートってどうやって作ってるんですか? すごい作品もいっぱいありますよね。

秋山:いろいろなアスキーアートがありますが、僕がやっているのは元絵をアスキーアートに変換するトレースAAです。基本的には用意した絵を見ながら、メモ帳にテキストを打ち込んでいくという作業です。メモ帳と画像を重ねてくれるツールはあるのですが、基本は手動。職人のスキルにもよりますが、何時間も、何十時間もかかります。

大谷:なるほど。「アスキーアートって、こうすれば作れそうかな」みたいな作業を忠実にやっているんですね。やっぱり自動では難しいんですか?

秋山:線をうまくつなげる必要があるので、基本は手動でやることが多いです。画像を見て、文字を自動で割り当ててくれるようなソフトもあるのですが、やはり人のクオリティには及ばないんですよ。ですから、今回はディープラーニングを用いて、なるべく人のクオリティに近づけられるようにがんばりました。

既存の技術でアスキーアートの精度は上げにくい

大谷:既存のソフトでは難しいんですか?

秋山:そもそも文字で絵を再現するのは限界があります。1文字で多くの線を表現し、サイズを小さく収めているのがいいアスキーアート。文字数の限界もあるし、作る人のセンスでアスキーアートにしやすいように線をデフォルメし、頭の中で変換しながら作っていきます。ただ、この作業は既存のコンピュータービジョン系の技術では再現が難しいんです。

でも、ディープラーニングを用いて、人が作ったアスキーアートを読み込んでいけば、職人のセンスにあたるものを学習させることができるのではないかというのが、今回の試みです。人に近づけるというのが目的です。

大谷:具体的にどのような処理をさせているのか教えてください。

秋山:まず2chやしたらばといった掲示板からアスキーアートを集めてきます。ラフスケッチを線画化できるシモセラ・エドガーさんたちの「ラフスケッチを自動線画化」を逆に使って、集めたアスキーアートから元画像を生成し、学習データとして使ってます。フレームワークはKerasを採用し、標準的なたたみ込みニューラルネットワークを用いています。

大谷:最初はPCでやっていたんですよね。

秋山:あくまで趣味なので、小さなモデルをPC上で動かしていました。朝に仕掛けていって、帰ってきたらようやくできていたような感じ。これを研究にしようと思ったきっかけが、Googleの人が機械学習とアートに関するワークショップを開くというツイートです。これなら、もしかしたら僕も出せるかなと思ったんです。

でも、ワークショップは募集から締め切りまで2ヶ月だったので、複数のGPUを安定して使える環境が必要になりました。そこで指導教授に相談して、さくらインターネットの高火力コンピューティングを使わせてもらうことにしたんです。

高火力コンピューティングなら定額で24時間回し続けられる

大谷:では、研究室でたまたま高火力コンピューティングを使っていたからなんですね。

長谷川:もともと大阪大学の研究室で使われていることは認識していたのですが、アスキーアート生成にも使われていると知ったのはつい先日です(笑)。

大谷:当然、高火力コンピューティングによって処理は効率化したんでしょうか?

秋山:簡単に言えば、当初は層の浅いモデルしか試せなかったのが、層が深いモデルを、より短時間で学習できるようになりました。しかも1トライアル/日から10トライアル/日くらい試せるようになりました。性能的には、ざっくり50倍くらい高速になってますね。

左がインプットイメージ、右がDeepAAによる作図

大谷:素人っぽい質問なんですが、50倍上がるとどうなるんでしょうかね。

秋山:正直、アートなので明確な評価軸はありませんというのが答えではあります。とはいえ、見た目でいい感じな作品は機械ではなく、人が作ったものという評価なので、人が選んだ文字にどれだけ一致するかで評価できます。従来のAAソフトでは70~80%でしたが、今回の取り組みで90%近くになっているはずです。

大谷:やはり演算能力が大きいんですね。

長谷川:ディープラーニングはやはり「リソース勝負」のところがあります。たとえば、新しいカレーのレシピを探すためには、どんなスパイスを、どのタイミングで、どれだけ入れたらよいのか? あるいはどれだけ寝かせた方がおいしいのか? など、試作を繰り返す必要があるでしょう。試作品を作るにも、鍋が1つだと試作の数が限られますが、仮に鍋が10個あれば、いろんなパターンを一気に試すことができ、より早く目的のレシピに近づけるはずです。リソースが10倍違えば、時間あたりのトライアルの数も10倍違ってくる――この状況はディープラーニングに取り組む場合でも同じです。

職人レベルと言われたけど、まだまだ人には到達していない

大谷:使い勝手とかはどうでしたか?

秋山:AWSも使ったことあるんですが、コンピューターサイエンス専門じゃないので、サーバーとかわからないんですよ(笑)。でも、高火力コンピューティングはローカルPCみたいな感覚でGPUが使えたので、僕みたいにスキルのない人間としては楽でした。

大谷:DeepAAについて周りの反応はどうでしたか?

秋山:お世辞かもしれませんが、「すごい!」とか、「職人レベル」とは言っていただけました。けっこう楽しんでいただけたと思います。

大谷:逆に今後の課題はどんな感じでしょうか?

秋山:単純に言えば、まだ人には到達していないということ。理由は簡単で、本来の学習には元絵とアスキーアートのペアが必要なのですが、今回はアスキーアートから「元絵のようなモノ」を生成しているため、課題が不完全なんです。不完全さを補うには、元絵とアスキーアートのペアをひたすら集めるか、アスキーアートから元絵をうまく生成できるモデルを作ることになると思います。

大谷:学生の立場として、こうした高火力コンピューティングのようなサービスについてどう思いますか?

秋山:最新の論文の成果を自分で追うとか、学生であれば絶対やってみたいはず。高火力コンピューティングはどれだけ利用しても月額利用料は定額なのでいろいろ試せるのは本当にありがたい。ディープラーニングをやるのであれば、こうした環境があるかないかは大違いだと思います。今後もディープラーニングとアートの分野はいろいろチャレンジしてみたいですね。

■関連サイト

(提供:さくらインターネット)

カテゴリートップへ

灯油タンクで残量検知を実現!北海道の生活を守るIoTとは【熱量IoT】#3

動画一覧はこちら!