Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ディープラーニングを活用したジェスチャー認識

1,613 views

Published on

DIGITSとCaffeのジェスチャ認識への応用例の紹介。波形データそのものを扱わずに二次元画像として扱うことで手書き文字認識としてジェスチャを扱っている。ただし、開発途上で認識精度は実用レベルに達していない。

GDG神戸機械学習勉強会 2016/2/28 の発表資料。

Gesture recognitoin with Caffe and NVIDIA DIGITS. Use gesture as 2d hand written symbol, not use signal directly. This program is under work in progress.

Published in: Technology
  • Be the first to comment

ディープラーニングを活用したジェスチャー認識

  1. 1. ディープラーニングを活用したジェスチャー認識 GDG 神戸 くまだす 2016/2/28 GDG 神戸機械学習勉強会
  2. 2. 2016/2/28 GDG - DL神戸 活用のジェスチャー認識 2 対象 ● ディープラーニングの応用例を見てみたい人 – ジェスチャ認識に応用してみます ● ディープラーニングがどんなものかはなんとなくわかるけど、実 際どうゆう風に使うかわからない
  3. 3. 2016/2/28 GDG - DL神戸 活用のジェスチャー認識 3 自己紹介 ● くまだす (Hiroshi Sakate) ● 自称 組込み屋さん ● 所属 – GDG 神戸 – 日本 Android の会 神戸支部 – 日本 Android の会 ドローン WG – Yocto Project Japan – Tizen Japan コンソーシアム ● 機械学習との関わり – NVIDIA/DIGITS を CPU で触ってみた + ジェスチャ認識に挑戦 – 学生の時に教科学習をやりかけてやってない
  4. 4. 2016/2/28 GDG - DL神戸 活用のジェスチャー認識 4 このセッションでわかるようになること ● ディープラーニングを何かの問題に適用する際の簡単な流れ ● Caffe x Python でディープラーニングの超簡単なコードを書く ● やらないこと – 新しいネットワークモデルの作成
  5. 5. 流れ 1.問題設定 2.アプローチの決定 3.データの収集 4.ネットワーク、パラメータを決定してトレーニング 5.トレーニング結果を元に推論
  6. 6. 2016/2/28 GDG - DL神戸 活用のジェスチャー認識 6 1. 問題設定 ● 6 軸センサ( 3 軸加速度+ 3 軸ジャイロ)を振り回して特定の動 作を検出するタスク ● 「丸を描いた」「数字の 3 を描いた」 ● ハードウェア ● Arduino Duemilanove ● センサ: Invensense MPU-6050
  7. 7. 2016/2/28 GDG - DL神戸 活用のジェスチャー認識 7 2. アプローチの決定 ● 時系列データの識別には LSTM(Long Short-Term Memory) が 使われるらしいが、今回は LSTM ではなくジェスチャを画像に変換 した上で、画像認識のタスクに落としこむ ● メリット – 書き順に依存しない – そこそこ複雑な動作も表現 できそう ● デメリット – 2 次元平面に落とし込めない 動作の認識はそのままでは 行えない
  8. 8. 3. データの収集 ● ひたすら腕を動かして図形を描く ● ○ □△ ☆ – Train: 各 100 枚 – Val: 各 10 枚
  9. 9. データセットを作成( DIGITS ) ● ファイル一覧と正解のクラスを記載したテキストを作って Web インタフェースで登録
  10. 10. 4. ネットワーク、パラメータを決定して トレーニング( DIGITS ) ● 下図はトレーニング結果 – 精度が 6 割を超えてくれない・・・ トレーニング用データ での精度 学習が 進むと 小さくなる値 テスト用データ での精度
  11. 11. 2016/2/28 GDG - DL神戸 活用のジェスチャー認識 11 DIGITS を触りたい人向けのリンク ● GPU なしの NVIDIA DIGITS3 で始める DeepLearning – http://qiita.com/kumadasu/items/bf26cd2824eaef8f2bf8
  12. 12. 2016/2/28 GDG - DL神戸 活用のジェスチャー認識 12 5. トレーニング結果を元に推論する コード作成( Python ) ● とりあえず先に進める ●実質 2 行! import caffe import numpy as np caffe.set_mode_cpu() # モデルの読込み net = caffe.Classifier(modelname, pretrained_file, image_dims=img_dims) # 画像のロードとクラスの推定 scores = net.predict([load_image_as_gray()], oversample=False) 画像のロード関数は都合により修正 モデルとトレーニング結果のファイル クラスごとの確率 が格納される
  13. 13. 認識結果 ● 左図:四角を書くが他とあまり差がでない ● 右図: MNIST のデータでも試すが案外認識してくれない
  14. 14. 2016/2/28 GDG - DL神戸 活用のジェスチャー認識 14 さいごに ● 結局ちゃんと認識させられるところまで行けなかった ● 何かの使い方が間違っている? ● データ数が足りていない? – トレーニング用のデータは MNIST で train:60000, val:10000 ● MNIST を使っても精度が上がらないのは線の太さが揃えられていない とかが原因か? ● 改良してまともに認識するレベルに仕上げていきたい ● Github で公開しながら開発中 – https://github.com/kumadasu/gestureRecognizer
  15. 15. 2016/2/28 GDG - DL神戸 活用のジェスチャー認識 15 DIGITS のアーカイブファイルを そのまま使う方法(発表後に追記) これで認識結果が少しましになった。ただしexampleの制限に注意。 1.トレーニング済みのモデルをダウンロード 2.DIGITS の example の中のコードをコピー – https://github.com/NVIDIA/DIGITS/tree/master/examples/classifica tion ● コードに以下の行を追加 from use_archive import classify_with_archive classify_with_archive(digits_archive_file, [imgname], use_gpu=False)

×