Dex-Net 1.0が目指すのは、任意のアングルから物体を撮影した画像からその物体が何かを識別する3Dの物体認識だ。3D物体認識を実現するためには、物体をさまざまなアングルから撮影した教師データが必要となる。そこで研究チームは、現実の物体を撮影して教師データを作るのではなく、コンピュータによるシミュレーションを活用した。

 具体的には、研究チームはまず食器やドリル、スプレー缶など身近な物体の「3D CADデータ」を1万3252種類収集した。そして3D CADデータを基に3D画像をコンピュータ上に描画し、仮想的なカメラを使って50種類の異なるアングルから撮影。そうして撮影した画像データを教師データに利用したのだ。ニューラルネットワークの種類としては、3D物体向けの「Multi-View Convolutional Neural Network(MV-CNN)」を採用している。

 物体の3D形状を調べる手法としては、物体を赤外線レーダーでスキャンして、その物体の輪郭の点群(ポイントクラウド)を取得するという方法がある。「点群方式にはガラスやプラスチックなど半透明の物体を計測しづらいという弱点がある」とGoldberg教授は指摘する。上記の写真でGoldberg教授がプラスチックのコップを手にしているのは、半透明な物体がありふれていることを示すためだ。点群方式の弱点を考慮した結果、Goldberg教授はカメラで撮影した2Dの画像から物体の3D形状を推定する今回の方式を選択したという。

1万3000種類の物体のつかみ方を試行錯誤

 続いて、物体を掴むためのロボットアームの動作を考える把持計画機能について見ていこう。同機能の開発には、強化学習のアルゴリズムの一つである「多腕バンディットアルゴリズム(Multi-Armed Bandits、MABs)」を使用した。強化学習とは、機械が試行錯誤を通じて、タスクを実行するための最適なやり方を学習していくという手法である。

 最近は、ロボットの実機を使って把持の試行錯誤を行うという研究が増えている。それに対してDex-Net 1.0では、ロボットの実機ではなくシミュレーション環境を使用した。具体的には、前述の1万3252種類の3D CADデータに対して、ロボットアームによる把持をそれぞれ2000回繰り返すというシミュレーションを実行し、ロボットアームが物体上のどこをつかめば把持の成功確率が上がるかを導き出した。シミュレーション環境にはGoogleのクラウド「Google Compute Engine」の仮想インスタンスを1500台使用している。

 「物理的なロボットアームを使用する場合、一つの把持をするのに10秒はかかる。シミュレーションを活用することで、学習に必要となる時間を大幅に短縮できる」。Goldberg教授は教師データの作成にシミュレーションを使用する目的について、このように説明する。

 ロボットに必要な機能をクラウドが提供するだけでなく、その機能の開発自体にクラウドを活用する――。ロボットにとってクラウドは、必要不可欠な存在になりそうだ。