けものフレンズに出てくるラッキービーストが欲しい。ので、作ったった。

TwitterやQiitaで話題になっていたので、けものフレンズを見た。

良かった。中でも、パークガイドロボットのボス(ラッキービースト)が良かった。ボスのポンコツ具合がとても良かった。

ボスは、アニメの中の描写を見る限り、いわゆる汎用人工知能と呼ばれるタイプのAIで、他の登場人物たちと自然に会話をしたり、「楽しかった」などの感情らしき表現を持ち合わせていることを考えると、相当高度な技術によって構成されていると考えられる。そして、パークガイドとしてジャパリバスを運転したり、動物の説明をしたり、天候をみて出発延期を提言したり、セルリアンとの戦いの中では自らを犠牲にして作戦を決行してフレンズを守るなど、その働きぶりはなかなかに有能である。

一方で、想定外の事態に陥ると容易にフリーズしたり、最終話でカバンの演技に簡単に騙されてしまうような、不完全な部分も持ち合わせているのだが、その様子がいかにもポンコツな感じで愛着がわく。特に、フリーズした際にエラーメッセージを出力するのではなく白眼になって「アワワ…」と震えてしまう仕草が可愛い。エラーが発生しても、ブルースクリーンや無機質なエラーメッセージを見せられるより、こっちの方が100倍くらい許せてしまいそうだ。

今までロボットやAIに全然興味がなかったが、けものフレンズのボスを見ていて、こんなロボットが欲しいと思った。

ので、作った。

 

www.nicovideo.jp

物体を見せながら「これは何?」と尋ねると、それが何か調べて、ボスっぽい口調で説明をしてくれる。当然ながら、知らない物体(Wikipediaで調べられないような物体)について尋ねられたり、通信エラーなどが発生した場合には、白眼で「アワワワ…」と震えるように作った。

さすがに、汎用人工知能も、二足歩行するロボットを作るのも技術的にハードルが高かったので、技術的にはただの人工無脳に発泡スチロールでガワをつけただけなのだが、実際に動かしてみると結構楽しい。これで、もうちょっとモフモフした本体で、耳とか動かせたり歩かせたりできたら大分可愛くなりそうなので、今後いつか挑戦したい。

f:id:sota1986:20170506111120p:plainこんなただの人工無脳でも、実際に動かしてみると結構楽しい。自分の声に反応し、語りかけるように喋ってくれると嬉しい。やっていることは、物体認識をしてその単語をWikipediaで調べて、文体を調整しているだけなのだが、なんだか楽しい。自分でブラウザを立ち上げて、Wikipediaを開いて単語を入力すればよりみやすい形で情報を得られるのだが、それでも楽しい。見た目と声によって与えられる印象が、思っている以上に大きいのだと思う。

最初のプロトタイプなので、結構不具合があったり精度が低かったりするのだが、期待していない結果でもボスっぽい口調で話されたり、あるいは不具合が発生しても「アワワワ」している様子をみていると、なんとなくこの不具合直さなくてもいいか、という気分になってしまう。(直すけど)

技術的な考察に関しては、また後で別にどこかにまとめようと思っているが、今回強く実感したのは、学習データの重要性だ。物体認識にはGoogle Cloud Vision APIを利用しているが、画像内には無数に「物体」が写っているため、そこから質問者が期待する物体を認識させるのが難しい。加えて、Google Cloud Vision APIの場合は認識結果が英語で返されるため、それを日本語に翻訳するとさらに情報量が失われてしまうため、余計に「期待した認識結果」を得るための調整が難しい。こんなところで、言語による壁を感じることになった。

「ボス」の本職はパークガイドなので、やはり動物を見せた時にその動物について説明してくれる機能があったらとても楽しいと思うのだが、実現するには汎用的な物体検出エンジンであるGoogle Cloud Vision APIではなく、動物の説明に特化させた学習データを使って自前で認識を行う必要がありそう。そして、それはなかなか難易度が高そうだ。

いずれにせよ、今後精度を上げてボスっぽくしていくのはなかなか大変そうではあるが、同時に楽しいので新作を待ちながらゆっくり作っていこうと思う。

なお、ソースコードを公開しているので、興味のある方はどうぞ

github.com

2017.05.07補足

技術的な補足をこちらに記しました。

iPhoneと発泡スチロールでけものフレンズに出てくるぼすてきな何かを作った時の技術的な記録 – なんてこったいブログ