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.

3000円のエッジデバイス内で画像の学習と推論を行うBrownie(ぶらうにー)の話

8,177 views

Published on

2020/1/19 第56回 コンピュータビジョン勉強会@関東 の発表資料です。

Published in: Software
  • Login to see the comments

3000円のエッジデバイス内で画像の学習と推論を行うBrownie(ぶらうにー)の話

  1. 1. 3000円のエッジデバイス内で 画像の学習と推論を行う Brownie(ぶらうにー)の話 ミクミンP @ksasao 第56回 コンピュータビジョン勉強会@関東 2020/1/20
  2. 2. 【宣伝】ごちうサーチが最新作に対応しました (2020/1/7更新) 「ごちうサーチ」で検索 • 2019年1月施行の改正著作権法で明確に合法 になりました • Microsoft Store でも配信を開始しました • Amazon prime / dアニメストアに対応しました • Dear My Sister / Sing For You も検索できます • もちろん無料です • 広告もありません アプリのほか、アルゴリズム詳細、ソースコード(GitHub)なども 公開しています
  3. 3. Brownie はこんなことができます
  4. 4. じゃんけんをちょっとずつデバイス内で学習 していく様子 https://twitter.com/ksasao/status/1161978500091301893 1枚の学習画像だけでもそれなりに動作
  5. 5. 2種類の画像の中間値もわかります https://twitter.com/ksasao/status/1185909464471232512?s=20
  6. 6. デバイス単独で動きます (6700mAhのモバイルバッテリーで22時間) https://twitter.com/ksasao/status/1160532010856665089?s=20
  7. 7. 画像認識した結果を様々なデバイスで使えます (Windows/Mac/Linux/RaspberryPi/Arduinoに対応) • Windows バイナリ版 • Node.js 版 があります。 https://github.com/ksasao/brownie
  8. 8. この水色のデバイスは何?
  9. 9. M5StickV って何? https://twitter.com/ksasao/status/1151984910703288321 M5Stack 社製の AIカメラ
  10. 10. M5StickV • Kendryte K210 • RISC-V プロセッサ (64bit x 2) • KPU (0.8TOPS) • 液晶モニタ (240x135px) • LED(RGBW) • スピーカー • ジャイロ・加速度センサ • TFカードスロット (microSD) •3000円
  11. 11. Canaan Creative社 Kendryte K210 https://kendryte.com/
  12. 12. 開発 • MaixPy (micropython ベース, NumPyなどは使えない) • カメラなどが簡単に使える。Tiny YOLO 向けの API あり • 統合開発環境 MaixPy IDE (Sipeed社製)
  13. 13. 推論の実行 https://bbs.sipeed.com/t/topic/682 カメラから画像取得 モデル読み込み 推論
  14. 14. Tiny YOLO で物体検出するコード https://bbs.sipeed.com/t/topic/683 YOLO用の初期化 推論
  15. 15. 推論は簡単っぽい 学習は?
  16. 16. どうやって学習するか • MaixPy では重みの更新はできない • NumPy, SciPy が使えない • アルゴリズムを手書きすると実行速度が遅い • ネイティブコードのモジュールを読み込む機能は(現在は)ない  MobileNet を特徴抽出器として利用して k-NN (k近傍法) で推論
  17. 17. https://sites.google.com/view/learning-with-limited-data https://drive.google.com/file/d/1O3CxWtaytBfwjj50WprXXWwqMiZy-Kyq/view
  18. 18. k-NNを利用した推論のイメージ 境界を実験的に決定は 通常の機械学習 今回の実装
  19. 19. k-NN (k-Nearest Neighbor) を利用した オフライン転移学習 https://twitter.com/ksasao/status/1161978500091301893 入力 画像 特徴 抽出層 全結合 層 MobileNet v1 SoftMax 認識結果 1000クラス
  20. 20. k-NN (k-Nearest Neighbor) を利用した オフライン転移学習 https://twitter.com/ksasao/status/1161978500091301893 入力 画像 特徴 抽出層 全結合 層 MobileNet v1 SoftMax 認識結果 1000クラス kpu.set_layers(task,29) 29層目まで計算した結果を取り出す
  21. 21. k-NN (k-Nearest Neighbor) を利用した オフライン転移学習 https://twitter.com/ksasao/status/1161978500091301893 入力 画像 特徴 抽出層 特徴抽出層の出力 (768次元ベクトル) を保存 学習時 グー チョキ パー 768次元ベクトルを可視化 1x768
  22. 22. k-NN (k-Nearest Neighbor) を利用した オフライン転移学習 https://twitter.com/ksasao/status/1161978500091301893 入力 画像 特徴 抽出層 学習した特徴ベクトル群と 入力画像の特徴ベクトルの ユークリッド距離をもとめ 最も近いものを返す (k=1) 推論時 グー チョキ パー 768次元ベクトルを可視化 1x768
  23. 23. k-NN (k-Nearest Neighbor) を利用した オフライン転移学習 https://twitter.com/ksasao/status/1161978500091301893 入力 画像 特徴 抽出層 全結合 層 MobileNet v1 SoftMax k-NNの 距離に 応じて 結果を 選択 学習済みの結果との同時利用も可能 k-NN
  24. 24. 2種類の画像の中間値の推定 https://qiita.com/ksasao/items/6d6bcac4c5e92fa692a2 境界 特徴量空間に マッピング 特徴量空間に マッピング
  25. 25. k-NN (k-Nearest Neighbor) を利用した オフライン転移学習 https://twitter.com/ksasao/status/1161978500091301893 良い点 • 学習にかかる時間がほぼゼロ (特徴ベクトルを保存するだけ) • 1枚学習するだけでも動く • 学習・推論が素早く試せる 悪い点 • 汎化性能が低い(今回の用途では十分)
  26. 26. 応用 • 既存のセンサを置き換えられる • ドア開閉センサ (磁気センサ) • お風呂センサ (水位センサ) • ボスが来たセンサ (光センサなど) • 盗難センサ (重量センサなど) • … • 人間がパッと見てわかる程度の違いがあればわりと認識可能 • 部屋の散らかり具合 • … M5StickVの 画像認識で 置き換え
  27. 27. 性能が物足りないと感じてきたら • M5Stack公式サイトが無料の転移学習サービスを提供 https://docs.m5stack.com/#/en/related_documents/v-training
  28. 28. もちろん自分でモデルを作ることも可能 Keras (*.h5) TensorFlow Lite (*.tflite) tflite_convert KPU (*.kmodel) NNCase (ncc) • 最終的なモデルサイズで 2.5MB 程度が上限値 • サポートしている Operator に制約があるので注意 https://github.com/kendryte/nncase
  29. 29. ためしてみたい?
  30. 30. 入手先 スイッチサイエンスで売り切れていても、 他の電子パーツ店(マルツ、共立エレ ショップ)などでは在庫があることも https://eleshop.jp/shop/g/gJ7C314/ https://www.marutsu.co.jp/GoodsDetail.jsp?salesGoodsCode=1555934
  31. 31. M5StickV を始める前に • 動作確認済み microSD カードを入手 認識しない カードがかなり多い
  32. 32. M5StickV が届いたら • M5StickV Quick Start からファームウェアを最新に https://docs.m5stack.com/#/en/quick_start/m5stickv/m5stickv_quick_start
  33. 33. Browine https://github.com/ksasao/brownie Tiny YOLO v2 face detection + Tiny YOLO v2 object detection (20-class) MobileNet v1 (1000-class) MobileNet v1 (feature extraction) + k-Nearest Neighbor (offline training) Brownie Brownie 1000 Brownie Learn
  34. 34. まとめ • M5StickV は安価でプログラミングが可能なAIカメラ • MobileNet を特徴抽出器として利用した場合の素性は 意外に良好 • 既存センサの置き換えにもつかえそう ミクミンP @ksasaohttps://github.com/ksasao/brownie

×