2017年2月1日水曜日

VoxcelChain 3次元畳み込みニューラルネットワークを使ったディープラーニング (深層学習)|Chainerによる3次元形状の認識

図1 VoxcelChainの概念図
ソースコードはGithubにあります(ページ下部のリンク先参照)。


はじめに

オブジェクトの認識はロボットが現実の環境のなかで自律的に行動できるためには重要な技術です。LiDARやRGBDカメラといったセンシング技術はロボットにとって必要な豊富な3D情報を提供する重要な技術となっています。しかしながらこの情報は大量のPointCloudデータであり、効率的に処理するのは難しいのが現状です。本稿では「VoxcelChain」を提案します。VoxcelChainはディープラーニング(深層学習)による3次元形状の畳み込みニューラルネットワークを利用することにより、この問題を解決します。

VoxcelChain

VoxcelChainとはディープラーニング (深層学習)を使用た3次元形状の一般物体認識プログラムです。VoxcelChainは3次元畳み込みニューラルネットワークで、畳み込み層とプーリング層の2種類の層を交互に積み重ねたフィードフォワード型のニューラルネットワークです。

序論

オブジェクトの認識は現実の環境で動作する自立型ロボットにとって重要な機能です。近年、自動運転車やドローンなど自立型ロボットにはLiDARやRGBDカメラといったセンサーが搭載されるのが一般的となってきています。これらセンサーは障害物の回避や地図と位置の同時推定などに使用されていますが、これまで環境の意味を理解するという問題にはカメラ画像などを入力としたSVMによる画像ベースの物体認識および類似の認識器が用いられてきました。
近年では深層学習によるアプローチが主流を占め、特に畳み込みニューラルネットワーク(CNN)における画像のオブジェクト認識の認識率が劇的に向上しています。以来、CNNは多くのタスクでその有効性を示しています。
VoxcelChainはCNNを従来の2次元から3次元へと適用し、LiDARやRGBDカメラ、ToFセンサーなどの3次元センサーから得られるPointCloudデータを高速にかつ正確にオブジェクトクラス検出をおこないます。

図2 ToFセンサーより得られたPointCloudデータ


アプローチ

入力データの前処理

本アルゴリズムの入力はPointCloudデータとなります。これはセンサーが検出したある範囲の認識データです。これよりオブジェクト候補を予測する方法はいくつかありますが、本稿ではユークリッドクラスタ抽出を用い、オブジェクト候補を抽出します。

LiDARやRGBDカメラ、ToFセンサーなどを固定する、あるいはIMUを用いることで、現実世界の座標とセンサーから得られるPointCloudの座標を一致させることが可能です(図2)。高さをZ軸とする場合、Z軸の値が0近辺の点は床や地面であり、オブジェクト候補から外すことができます。

候補として抽出したPointCloudデータはvoxcel単位のデータの正規化を行います。32 x 32 x 32の3次元格子空間voxcelに分割し、分割した各voxcelの占有度により1または0とした32x32x32のVoxcelを持つ配列で表現します。各オブジェクトごとのvoxcelの大きさは一定ではなく物体の大小にかかわらずその特徴を保ったままデータを正規化することが可能です。

分割した各voxcelの占有率を求め閾値により1または0を決定します。この決定には、各voxcel内のPointCloudの点の数の最大値を求めこれを占有率1とし、各voxcel内の占有率が0.33以上であれば1とし、未満であれば0とします(図3)。

図3 voxcel化したデータ


正規化したデータは3次元畳み込みニューラルネットワークであるVoxcelChainへの入力となります。このニューラルネットによりオブジェクトクラス検出を行い、最終的に入力されたオブジェクト候補のクラスが判定されます(冒頭の図1)。


3次元畳み込みニューラルネットワーク

CNNの特徴は畳み込み層およびプーリング層を交互に接続した構造を持つことにあります。画像の場合、畳み込み層により一般的な画像処理での畳込みと同等な画像のぼかしやエッジの強調などといったフィルタが得られますが、VoxcelChainでは3次元空間の畳み込みによって有用な空間フィルタが得られると考えられます。空間フィルタは平面やコーナーと言った空間構造を表すフィルタとなります。畳み込み層の出力はプーリング層への入力となり、プーリング層では画像認識の場合と同様に、空間のどの位置でフィルタの応答が強かったという情報を一部捨て、空間構造内に現れる特徴の微小な位置変化に対する応答の不変性を得られる事が期待されます。

入力層

この層は、S×S×Sのvoxcelの固定サイズ配列を受け入れます。本稿では、S = 32を使用します。

畳み込み層C1

本稿ではチャネル数Nは1となりますので、畳み込み層はSxSxSxNの入力を受け取ります。
この層ではLxLxLxN'の3次元フィルタで畳み込むことによってN'個の特徴マップを作成します。その後ReLU活性化関数を経て畳み込み層の出力とします。畳み込みではnarrow convolutionを使用しzero paddingは行いません。

プーリング層P1

この層では受容野空間の各ノードからの入力の最大値を出力とする最大プーリングの手法により各ノードの値を1つの値に置き換えることでボリュームのダウンサンプリングを実現します。プーリングの処理はストライドsを用いて間引いて行います。

畳み込み層C2

チャンネル数N'のプーリング層の出力を受け再び3次元フィルタで畳み込みN''個の特徴マップを作成します。

プーリング層P2

畳み込み層C2の出力に対し同様にプーリングを行います。

全結合層

隣接層間のノードすべてを結合した層を2層配置します。この最終層は通常のニューラルネットと同様の設計であり、今回クラス分類が我々の目的であるため、目的のクラス数と同数のノードn個を配置し、活性化関数にソフトマックス関数を用います。ニューラルネット全体を図4に示します。




図4 ネットワークの構成

次の図は、最初の畳み込み層C1で学習された重みを可視化したものです。

図5 畳み込み層C1で学習されたフィルタwを可視化。


データセットの作成

本稿では10クラスのデータセットを用意しこれらが3次元畳み込みニューラルネットワークにより学習されるかを試しました。10個のオブジェクトのデータはCADデータを用います。3次元シミュレータ上に10個の異なるオブジェクトを配置し、3次元シミュレータ内でシミュレーションしたToFセンサーのスキャンデータを用いました(図6)。これにより、CADデータそのものを利用するのに比べて実際のセンサー値に限りなく近いPointCloudを効率よく収集することが可能となります。

収集したデータは目視によりラベリングを行い、各クラス200のデータを収集、合計2000個のデータを学習させました。収集したデータのうち5分の1をテストに使用、残りを学習に使用しました。学習には深層学習のフレームワークChainerを用いています。

次のグラフは横軸にイテレーションを、縦軸に損失と精度を表しました(図7)。グラフよりイテレーションが進むにつれ収束した事が確認されます。
この事例ではS=20,L=5,s=3,N'=20の場合です。

VoxcelChainで1件のオブジェクトを処理するのにかかる時間は今回用いたPC(i7-6700K CPU)で約0.050秒であり、短時間で非常に効率よく物体検出を行える事が確認できました(図8)。

図6 ロボットシミュレータgazeboを使い、オブジェクトを配置。その中を仮想ToFセンサーを搭載した仮想ロボットを稼働させ、ToFセンサーデータを集めている様子。

図7 イテレーションと認識率及び損失のグラフ。


図8 仮想環境内で得たPointCloudをVoxcelChainによりオブジェクト認識している様子。Category No.0は自転車を示している。


表1 テストに使用したクラス
human
table
motorcycle_man
bicycle_man
motorcycle
bicycle
dog
bike_post
pylon
mail_post

ソースコード

VoxcelChainのソースコード及びテストに使用した10種類のデータセットはGithubより参照できます。
https://github.com/hiroaki-kaneda/voxcelchain

最後に

本稿で述べた3次元畳み込みニューラルネットワークアーキテクチャであるVoxcelChainによりLiDARやRGBDカメラ、ToFセンサーなどから得られるPointCloudデータより短時間に正確な物体検出が行えることが確認できました。VoxcelChainにより実時間での物体検出が可能となり、ロボットや自動運転車、ドローンなどが自立移動を行う際に有効な手段となります。
私達は今回のPointCloud認識アーキテクチャ以外にも深層学習の活用に関心を持っています。最先端の人工知能により画像識別、音声認識、言語解析、販売データ分析・レコメンド、医療診断支援・健康管理・予防医療といった様々な分野の様々な課題を解決し未来の社会に貢献し、より便利で豊かな社会を実現していきたいと考えています。

参考文献:
D. Maturana and S. Scherer. 3D Convolutional Neural Networks for Landing Zone Detection from LiDAR. In ICRA. 2015.
監修:人工知能学会 著者 麻生 英樹,安田 宗樹,前田 新一,岡野原 大輔,岡谷 貴之,久保 陽太郎,ボレガラ ダヌシカ 編集:神嶌 敏弘 (2015) 深層学習 Deep Learning 近代科学社 刊
新納浩幸 (2016) Chainerによる実践深層学習 オーム社 刊
140 180 3D , 3D Convolutional Neural Networks , Chainer , Deep Learning , VoxcelChain , 深層学習

記載されている会社名、および商品名等は、各社の商標または登録商標です。

0 コメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...