こんにちは、IDCFの藤城(@tafujish)です。久しぶりにブログを書きますが、今回はIDCFクラウドからだいぶ遠い話をします。
みなさんは、ロボカップ(RoboCup)という大会を聞いたことがあるでしょうか。「2050年までに、人間のサッカーのワールドチャンピオンチームに自律人型ロボットで勝つ」というランドマークプロジェクトを掲げ、毎年世界で開催されている、ロボットと人工知能(AI)の学術大会です。この世界大会が今年は7月27日から名古屋で開催されます。
https://www.robocup2017.org/www.robocup2017.org
人工知能を搭載した自律型ロボットを用いてサッカーで競い合うわけですが、ヒューマノイドリーグで毎年優秀な成績を収めており、今月の世界大会にも出場するのが、千葉工業大学のチーム「CIT Brains」です。ディープラーニングというキーワードから、CIT Brainsの皆さんと繋がり、今回の大会ではIDCFクラウドとしてもCIT Brainsを応援しています。
CIT Brainsでは、ボール認識にディープラーニングを使用しロボットに実装しています。このあたりの話を教えてもらい大変面白かったので、今回ご紹介いたします。
おおまかなデータフローとしては下図の通りです。
それでは、ポイントごとに見ていきましょう。
①目的:ボール認識
目的としては、ロボットがボールを蹴るために"ボール"を認識させることにあります。物体の認識に優れているためディープラーニングを用いています。ロボットが動き回ることでボールの画像がぼやけたとしても、認識できるのがディープラーニングの良いところです。
②学習:Darknetを使用した高速学習
ボールがあったりなかったりする数万枚の画像を用いて学習させます。ニューラルネットワークのフレームワークとしてはDarknetを使っています。
TensorFlowやChainerと比べDarknetはこれまであまり聞いたことがなかったのですが、C言語で書かれているため導入が簡単で高速であること、物体検出に優れているという特徴があります。
モデルとしては、R-CNN(Regions with Convolutional Neural Network)のひとつであるYOLOを用いています。こちらもDarknetと同じ開発者で、リアルタイムな物体検出に優れています。
低級言語で書かれたフレームワークは高速なのが良いですよねー。ロボットのプログラミングにはよくC言語が用いられるので相性が良いんでしょうね。
③課題:学習時のGPUリソース不足
学習には長時間を要しますが、DarknetもGPUによるアクセラレートに対応しています。とは言え、大会までの限られた時間の中で学習させるにはそれなりのリソースが必要になってきます。さまざまな状況下における認識率の向上を目指し試行錯誤を繰り返します。
そこで、IDCFクラウドのNVIDIA Tesla P100を搭載したマシンタイプ「GPU.7XLP100」の出番です。リモートですぐに9.3TFLOPSのGPUが自由に占有して使えるのです。P100は研究室内で利用していたGPU(Geforce)と比べて高速に動作しました。
④推論:ロボット実装後にもGPUを活用
クラウド上のGPUで学習した結果をロボットに実装します。ロボット上で推論させるにあたり、その処理時間は0.1秒かかったとしても動作への影響は大きく、大会を勝ち抜くためにはミリ秒オーダーでの処理が必要になってきます。そのため、推論のときにもGPUが必要ですが、GPUカードを搭載するには大き過ぎますし、クラウド上のGPUマシンと通信させるのも応答時間やその手段などネットワーク的に困難です。
そこで、組み込み機器向けのGPUを搭載したNVIDIA Jetsonを利用します。これにより、推論の処理も数ミリ秒で完了し、CPUで処理するより約50倍も高速になりました。
エッジのマシンでもGPUが使われはじめてきましたね。
最後に
以上見てきたとおり、クラウド上のGPUを活用し短時間で学習させ、エッジの環境ではJetsonのような組み込み向けのGPUを活用することで、深層学習による物体検出をリアルタイムに行うことができました。これらの仕組みをより洗練させ、CIT Brainsの皆さんが7月29日からの世界大会に挑みます。大会後のレポートを、こちらのブログにCIT Brainsの方が書いてくださる予定ですのでお楽しみに!
ちなみに、CIT Brainsの活動が気になるという方は、オフィシャルのインタビューや、テストの動画がおすすめです。
本エントリーの執筆にあたり、CIT Brainsから情報や資料の提供をいただきました。ありがとうございました。大会での健闘を祈っております。