Enviar búsqueda
Cargar
Rosとgazeboを使った3d空間での3次元畳み込みニューラルネットによる物体認識
•
Descargar como PPTX, PDF
•
3 recomendaciones
•
2,466 vistas
Hiroaki Kaneda
Seguir
Rosとgazeboを使った3d空間での3次元畳み込みニューラルネットによる物体認識
Leer menos
Leer más
Ingeniería
Denunciar
Compartir
Denunciar
Compartir
1 de 24
Descargar ahora
Recomendados
Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習
Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習
Hiroaki Kaneda
Rosのリアルタイムツールの紹介
Rosのリアルタイムツールの紹介
gakky1667
rosjp10 itとrt(ネットワーク技術と時々、仮想化) 株式会社インテック
rosjp10 itとrt(ネットワーク技術と時々、仮想化) 株式会社インテック
Tatsuya Fukuta
集まれ!Dreamingエンジニア! 〜箱庭で紡ぎ出されるIoT/クラウドロボティクス開発の新しいカタチ〜
集まれ!Dreamingエンジニア! 〜箱庭で紡ぎ出されるIoT/クラウドロボティクス開発の新しいカタチ〜
UnityTechnologiesJapan002
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
Tatsuya Fukuta
14対話bot発表資料
14対話bot発表資料
Keiichirou Miyamoto
アプリのロギングからデータ収集・分析・活用
アプリのロギングからデータ収集・分析・活用
Atsushi Yokohama (BEACHSIDE)
Use Japanese with vcd/vcdExtra package
Use Japanese with vcd/vcdExtra package
Tsuda University Institute for Mathematics and Computer Science
Recomendados
Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習
Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習
Hiroaki Kaneda
Rosのリアルタイムツールの紹介
Rosのリアルタイムツールの紹介
gakky1667
rosjp10 itとrt(ネットワーク技術と時々、仮想化) 株式会社インテック
rosjp10 itとrt(ネットワーク技術と時々、仮想化) 株式会社インテック
Tatsuya Fukuta
集まれ!Dreamingエンジニア! 〜箱庭で紡ぎ出されるIoT/クラウドロボティクス開発の新しいカタチ〜
集まれ!Dreamingエンジニア! 〜箱庭で紡ぎ出されるIoT/クラウドロボティクス開発の新しいカタチ〜
UnityTechnologiesJapan002
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
Tatsuya Fukuta
14対話bot発表資料
14対話bot発表資料
Keiichirou Miyamoto
アプリのロギングからデータ収集・分析・活用
アプリのロギングからデータ収集・分析・活用
Atsushi Yokohama (BEACHSIDE)
Use Japanese with vcd/vcdExtra package
Use Japanese with vcd/vcdExtra package
Tsuda University Institute for Mathematics and Computer Science
cvsaisentan20141004 kanezaki
cvsaisentan20141004 kanezaki
kanejaki
AndroidのAR最新動向
AndroidのAR最新動向
Kenichi Takahashi
Android app Development by Rhodes
Android app Development by Rhodes
Hitoshi Kuroyanagi
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
Yoshiyuki Nakamura
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
Tatsuya Matsushima
TensorFlow Object Detection API を使った取り組み@つくばチャレンジ2017
TensorFlow Object Detection API を使った取り組み@つくばチャレンジ2017
Kazuyuki Arimatsu
Rustで3D graphics programming
Rustで3D graphics programming
KiyotomoHiroyasu
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Tokoroten Nakayama
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
Drecom Co., Ltd.
RDBってなに?
RDBってなに?
Soudai Sone
社内 DDD 勉強会第1回
社内 DDD 勉強会第1回
shingo suzuki
ROS User Group Meeting #28 マルチ深層学習とROS
ROS User Group Meeting #28 マルチ深層学習とROS
Hiroki Nakahara
Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning
Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning
Kohei Nishimura
Vue.js ハンズオン資料
Vue.js ハンズオン資料
よしだ あつし
MongoDB3.2の紹介
MongoDB3.2の紹介
Tetsutaro Watanabe
NNKproject Japanese version
NNKproject Japanese version
nao takatoshi
NNKproject Japanese version2
NNKproject Japanese version2
nao takatoshi
限界ORM!BOOTHとギフトとライブラリ【PIXIV MEETUP 2023 LT】
限界ORM!BOOTHとギフトとライブラリ【PIXIV MEETUP 2023 LT】
RND cpp
Rデータ入力編
Rデータ入力編
Monta Yashi
Yu Sasaki Bachelor Thesis
Yu Sasaki Bachelor Thesis
pflab
Más contenido relacionado
Similar a Rosとgazeboを使った3d空間での3次元畳み込みニューラルネットによる物体認識
cvsaisentan20141004 kanezaki
cvsaisentan20141004 kanezaki
kanejaki
AndroidのAR最新動向
AndroidのAR最新動向
Kenichi Takahashi
Android app Development by Rhodes
Android app Development by Rhodes
Hitoshi Kuroyanagi
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
Yoshiyuki Nakamura
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
Tatsuya Matsushima
TensorFlow Object Detection API を使った取り組み@つくばチャレンジ2017
TensorFlow Object Detection API を使った取り組み@つくばチャレンジ2017
Kazuyuki Arimatsu
Rustで3D graphics programming
Rustで3D graphics programming
KiyotomoHiroyasu
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Tokoroten Nakayama
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
Drecom Co., Ltd.
RDBってなに?
RDBってなに?
Soudai Sone
社内 DDD 勉強会第1回
社内 DDD 勉強会第1回
shingo suzuki
ROS User Group Meeting #28 マルチ深層学習とROS
ROS User Group Meeting #28 マルチ深層学習とROS
Hiroki Nakahara
Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning
Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning
Kohei Nishimura
Vue.js ハンズオン資料
Vue.js ハンズオン資料
よしだ あつし
MongoDB3.2の紹介
MongoDB3.2の紹介
Tetsutaro Watanabe
NNKproject Japanese version
NNKproject Japanese version
nao takatoshi
NNKproject Japanese version2
NNKproject Japanese version2
nao takatoshi
限界ORM!BOOTHとギフトとライブラリ【PIXIV MEETUP 2023 LT】
限界ORM!BOOTHとギフトとライブラリ【PIXIV MEETUP 2023 LT】
RND cpp
Rデータ入力編
Rデータ入力編
Monta Yashi
Yu Sasaki Bachelor Thesis
Yu Sasaki Bachelor Thesis
pflab
Similar a Rosとgazeboを使った3d空間での3次元畳み込みニューラルネットによる物体認識
(20)
cvsaisentan20141004 kanezaki
cvsaisentan20141004 kanezaki
AndroidのAR最新動向
AndroidのAR最新動向
Android app Development by Rhodes
Android app Development by Rhodes
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
AIのラボからロボティクスへ --- 東大松尾研究室のWRS2020パートナーロボットチャレンジへの挑戦
TensorFlow Object Detection API を使った取り組み@つくばチャレンジ2017
TensorFlow Object Detection API を使った取り組み@つくばチャレンジ2017
Rustで3D graphics programming
Rustで3D graphics programming
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
RDBってなに?
RDBってなに?
社内 DDD 勉強会第1回
社内 DDD 勉強会第1回
ROS User Group Meeting #28 マルチ深層学習とROS
ROS User Group Meeting #28 マルチ深層学習とROS
Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning
Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning
Vue.js ハンズオン資料
Vue.js ハンズオン資料
MongoDB3.2の紹介
MongoDB3.2の紹介
NNKproject Japanese version
NNKproject Japanese version
NNKproject Japanese version2
NNKproject Japanese version2
限界ORM!BOOTHとギフトとライブラリ【PIXIV MEETUP 2023 LT】
限界ORM!BOOTHとギフトとライブラリ【PIXIV MEETUP 2023 LT】
Rデータ入力編
Rデータ入力編
Yu Sasaki Bachelor Thesis
Yu Sasaki Bachelor Thesis
Rosとgazeboを使った3d空間での3次元畳み込みニューラルネットによる物体認識
1.
ROS,GazeboとChainerを用いた 畳込みニューラルネットワークに よる3次元形状の学習 ROS Japan UG
#18 関西勉強会
2.
自己紹介 金田浩明(かねだひろあき) • 株式会社ブリリアントサービス勤務 •
ソフトウェアエンジニア • Android技術者 • 移動型ロボット、ROS、センサー • https://www.facebook.com/hiroaki.kaneda
3.
ROS入門記事なども書いてます • 詳しい内容は http://bril-tech.blogspot.jp
4.
オブジェクトの認識 • LiDARやRGBDカメラからの3D情報 • 大量のPointCloud(点群)データ •
効率に処理することが難しい • 3D形状(2.5D)をNNで学習できないか? • PCLで3Dの特徴量
5.
Convolutional Neural Network(畳み込みNN)とは •
深層学習の定番テーマ • 特徴量を畳み込み • 画像を圧縮 • 画像の特徴をよくとらえられる
6.
chainer.links.ConvolutionND • Convolution2D 2次元の画像の学習や音声学習 •
ConvolutionND 任意の次元のCNNを作成
7.
3次元畳み込みニューラルネットワーク • 入力データの前処理(PCL) • ユークリッドクラスタ抽出 •
32 x 32 x 32の3次元格子空間voxcelに分割 • 各voxcelの占有率を求め閾値により1または0を決定 • 正規化したデータは3次元畳み込みニューラルネットワ ークへの入力
8.
PCLで抽出し、正規化したデータ
9.
3次元畳み込みニューラルネットワーク
10.
3次元畳み込みニューラルネットワーク • 入力層 • S×S×Sのvoxcelの固定サイズ配列を受け入れ。S
= 32 • 畳み込み層C1 • チャネル数Nは1となりますので、SxSxSxN。LxLxLxN'の3次元フィルタで畳み込む • N'個の特徴マップを作成、ReLU活性化関数使用 • プーリング層P1 • 最大プーリング(ダウンサンプリング) • 畳み込み層C2 • 再び3次元フィルタで畳み込みN’'個の特徴マップを作成します。 • プーリング層P2 • 畳み込み層C2の出力に対し同様にプーリングを行います。 • 全結合層 • 隣接層間のノードすべてを結合した層を2層配置 • 最終層は通常のニューラルネットと同様の設計(クラス分類)
11.
3次元畳み込みニューラルネットワーク • ネットワーク構成 重みの可視化 畳み込み層C1で学習されたフィルタwを可視化。
12.
データセット作成 • 実データ収集は難しい • 実用的な認識率を出すには大量のデータセットが必要 •
ロボットシミュレータgazebo • Gazebo内で仮想ToFセンサーを搭載した仮想ロボット を稼働させ、ToFセンサーデータを集める
13.
データセット作成 • ロボットシミュレータgazebo
14.
15.
データセット作成
16.
Deep Learningに使う点群データの取得ツールについ て • 点群キャプチャツール •
物体切り出しクラス分けツール • 32x32x32のvoxcelへと正規化
17.
点群キャプチャツール
18.
物体切り出しクラス分けツール
19.
32x32x32のvoxcelへと正規化 • 32×32×32のvoxelを用意し、配列 [x][y][z]
となる配列 [32][32][32] を用意する。 • データがあれば、1、データがなければ0とする。 • 出力される配列は1次元配列データ形式
20.
学習結果 10クラスを分類
21.
利用
22.
Voxcel Chain • https://github.com/hiroaki-kaneda/voxcelchain
23.
TurtleBot3 • 組立簡単!(約2時間で組み上げ) • ROSの管理団体であるOpen
RoboticsとROBOTISが共 同開発 • 教育、研究、製品開発向け • パーツのCAD情報が全てインターネット上で閲覧可能 • 360度LiDER搭載
24.
ご静聴ありがとうございました
Notas del editor
オブジェクトの認識はロボットが現実の環境のなかで自律的に行動できるためには重要な技術です。LiDARやRGBDカメラといったセンシング技術はロボットにとって必要な豊富な3D情報を提供する重要な技術となっています。しかしながらこの情報は大量のPointCloudデータであり、効率的に処理するのは難しいのが現状です。 もしくはPCLで3Dの特徴量を計算するなど、本稿では「VoxcelChain」を提案します。VoxcelChainはディープラーニング(深層学習)による3次元形状の畳み込みニューラルネットワークを利用することにより、この問題を解決します。
深層学習用のフレームワークであるChainerでは、主に画像の学習や音声学習で用いられるConvolutiono2DのほかにConvolutionNDというものが用意されています。任意の次元のCNN実装は、たぶんChainer特有、もしくはChainerが一番早かったかと思います。 今回はこのConvolutionNDで3次元形状を学習してみます。
はい、ではどのように作っていくかをご説明します。 まずは入力データの前処理、これはPCLという点群処理ライブラリの ユークリッドクラスタ抽出を用い、オブジェクト候補を抽出、物体を認識しています。 抽出したオブジェクト候補を、32かけ32かけ32のボクセルにします。 すると、次のスライドのようなデータになります。
はい これは、私の全身データのVoxcelになります。人っぽさをのこしつつデータ量を下げている感じですね。こういったデータ処理が手軽に行えるのがPCLの魅力ですね。
正規化したデータは3次元畳み込みニューラルネットワークであるVoxcelChainへの入力となります。このニューラルネットによりオブジェクトクラス検出を行い、最終的に入力されたオブジェクト候補のクラスが判定されます。
CNNの特徴は畳み込み層およびプーリング層を交互に接続した構造を持つことにあります。画像の場合、畳み込み層により一般的な画像処理での畳込みと同等な画像のぼかしやエッジの強調などといったフィルタが得られますが、3次元のCNNにおいては、3次元空間の畳み込みによって有用な空間フィルタが得られると考えられます。空間フィルタは平面やコーナーと言った空間構造を表すフィルタとなります。畳み込み層の出力はプーリング層への入力となり、プーリング層では画像認識の場合と同様に、空間のどの位置でフィルタの応答が強かったという情報を一部捨て、空間構造内に現れる特徴の微小な位置変化に対する応答の不変性を得られる事が期待されます。 畳み込み層C1 チャネル数Nは1となりますので、畳み込み層はSxSxSxNの入力を受け取ります。 この層ではLxLxLxN'の3次元フィルタで畳み込むことによってN'個の特徴マップを作成します。その後ReLU活性化関数を経て畳み込み層の出力とします。畳み込みではnarrow convolutionを使用しzero paddingは行いません。 プーリング層P1 この層では受容野空間の各ノードからの入力の最大値を出力とする最大プーリングの手法により各ノードの値を1つの値に置き換えることでボリュームの、ダウンサンプリングを実現します。プーリングの処理はストライドsを用いて間引いて行います。 畳み込み層C2 チャンネル数N'のプーリング層の出力を受け再び3次元フィルタで畳み込みN''個の特徴マップを作成します。 プーリング層P2 畳み込み層C2の出力に対し同様にプーリングを行います。 全結合層 隣接層間のノードすべてを結合した層を2層配置します。この最終層は通常のニューラルネットと同様の設計であり、今回クラス分類が我々の目的であるため、目的のクラス数と同数のノードn個を配置し、活性化関数にソフトマックス関数を用います。
さて、NNはできたのですが、学習するためにはデータが大量に必要になります。点群のデータなんてその辺に転がっているわけではありませんし。かといって、3DCADデータを使うのでは、実データではないですし、デプスカメラの2.5次元でーた、つまり後ろっかわ、センサーの影になるデータがないでたーにならない、うしろまであるでーたになっちゃう。そうすると、認識率の限界が来るのが目に見えています。そこで、実用的な認識率を出すには大量の実データ、となるわけですが、収集が難しい。 そこで、Gazeboの出番です。
じゃあ具体的にどうやって、点群データを取り出すかというと、 センサーから得られる点群には壁も床もその他対象物以外のオブジェクトも含まれるため、対象物だけ切り出す処理が必要。(写真と一緒ですよ、認識したい被写体も写っていればそうでないものも写っている、だから「ここからここが対象物ですよ」とおしえてやる、切り出してやる、そうやって教師データを作るんですね。画像の場合そういうツールが沢山あります。点群の場合それがないので、自作しました。 以下にそのツールの使い方を説明する。 ツールは3つのフェーズにわかれていて、 点群キャプチャツール これは点群をキャプチャしてファイルに保存する処理である。例えるなら写真を撮るのと同じですね。 物体切り出しクラス分けツール これは、点群キャプチャファイルを開き、物体をクリックするとタップした物体だけを抜き出す。 カテゴリ分けが表示されるので、物体のカテゴリをクリックすると、フォルダ分けして物体の点群が保存されるようになっている。 最後に、 32x32x32のvoxcelへと正規化 して、ディープラーニング用シュリンクデータの作成を行います。
これが、写真を撮るのと同じで、キャプチャボタンを押すとその瞬間のPointCloudデータをファイルに保存します。
ラベリングを行います。 クリックすると、クリックした場所を中心に物体とおもわれる場所を自動的に切り出してくれます。切り出した点群は「人」「自転車」「車」などにラベリングして、個別のファイルとして保存しています。
ディープラーニング用シュリンクデータの作成 上記「物体切り出しクラス分けツール」で切り出ししたデータをvoxel単位にシュリンクした0,1データへと変換する。 処理は以下 • 32×32×32のvoxelを用意し、配列 [x][y][z] となる配列 [32][32][32] を用意する。 • データがあれば、1、データがなければ0とする。 • 出力される配列は1次元配列データ。チェイナーで処理しやすいよいうに加工しています。 Voxcel化したデータはこのようにビューワーで閲覧できるようにしています。このビューワーもPCLのものだったかと思います。
学習は2,000件のデータのうち1/5をテストデータとし、学習を行った。 人、テーブル、バイク、自転車、ポスト、犬、パイロンといった10クラスを分類 青が精度、緑が誤差関数の値である。学習が進むにつれ精度が1に近づいている様子が確認できる。
実際にこの深層学習データを使って、GAZEBO内で物体の認識をさせているところです。自転車を正しく自転車として認識することができています。
なおこの3次元のCNNのChainerのソースコードと、サンプルの学習データ一式をgithubにおいていますのでソースやデータなど参考にしていただければと思います。
余談ですが、TurtleBot3購入しました! TurtleBot3はROSの学習機、6万〜7万円で、360度LiDERを搭載! これの魅力は、パーツのデータがオープンなことです。3Dデータや細かなパーツのメーカーリストが入手可能なので、追加で購入したり、パーツを3Dプリンタで印刷することができます。 いまやっと本体組み上げたところです。いまからラズパイにUbuntu入れて動かしてみるところ。 これから、これにIntelのRealSense ZR300を搭載してみたいともくろんでいるところです。
Descargar ahora