Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
3000円のエッジデバイス内で
画像の学習と推論を行う
Brownie(ぶらうにー)の話
ミクミンP
@ksasao
第56回 コンピュータビジョン勉強会@関東
2020/1/20
【宣伝】ごちうサーチが最新作に対応しました
(2020/1/7更新)
「ごちうサーチ」で検索
• 2019年1月施行の改正著作権法で明確に合法
になりました
• Microsoft Store でも配信を開始しました
• Amazon prim...
Brownie はこんなことができます
じゃんけんをちょっとずつデバイス内で学習
していく様子
https://twitter.com/ksasao/status/1161978500091301893
1枚の学習画像だけでもそれなりに動作
2種類の画像の中間値もわかります
https://twitter.com/ksasao/status/1185909464471232512?s=20
デバイス単独で動きます
(6700mAhのモバイルバッテリーで22時間)
https://twitter.com/ksasao/status/1160532010856665089?s=20
画像認識した結果を様々なデバイスで使えます
(Windows/Mac/Linux/RaspberryPi/Arduinoに対応)
• Windows バイナリ版
• Node.js 版
があります。
https://github.com/ksa...
この水色のデバイスは何?
M5StickV って何?
https://twitter.com/ksasao/status/1151984910703288321
M5Stack 社製の AIカメラ
M5StickV
• Kendryte K210
• RISC-V プロセッサ (64bit x 2)
• KPU (0.8TOPS)
• 液晶モニタ (240x135px)
• LED(RGBW)
• スピーカー
• ジャイロ・加速度センサ
...
Canaan Creative社 Kendryte K210
https://kendryte.com/
開発
• MaixPy (micropython ベース, NumPyなどは使えない)
• カメラなどが簡単に使える。Tiny YOLO 向けの API あり
• 統合開発環境 MaixPy IDE (Sipeed社製)
推論の実行
https://bbs.sipeed.com/t/topic/682
カメラから画像取得
モデル読み込み
推論
Tiny YOLO で物体検出するコード
https://bbs.sipeed.com/t/topic/683
YOLO用の初期化
推論
推論は簡単っぽい
学習は?
どうやって学習するか
• MaixPy では重みの更新はできない
• NumPy, SciPy が使えない
• アルゴリズムを手書きすると実行速度が遅い
• ネイティブコードのモジュールを読み込む機能は(現在は)ない
 MobileNet を...
https://sites.google.com/view/learning-with-limited-data
https://drive.google.com/file/d/1O3CxWtaytBfwjj50WprXXWwqMiZy-Kyq...
k-NNを利用した推論のイメージ
境界を実験的に決定は
通常の機械学習 今回の実装
k-NN (k-Nearest Neighbor) を利用した
オフライン転移学習
https://twitter.com/ksasao/status/1161978500091301893
入力
画像
特徴
抽出層
全結合
層
MobileN...
k-NN (k-Nearest Neighbor) を利用した
オフライン転移学習
https://twitter.com/ksasao/status/1161978500091301893
入力
画像
特徴
抽出層
全結合
層
MobileN...
k-NN (k-Nearest Neighbor) を利用した
オフライン転移学習
https://twitter.com/ksasao/status/1161978500091301893
入力
画像
特徴
抽出層
特徴抽出層の出力
(768...
k-NN (k-Nearest Neighbor) を利用した
オフライン転移学習
https://twitter.com/ksasao/status/1161978500091301893
入力
画像
特徴
抽出層
学習した特徴ベクトル群と
...
k-NN (k-Nearest Neighbor) を利用した
オフライン転移学習
https://twitter.com/ksasao/status/1161978500091301893
入力
画像
特徴
抽出層
全結合
層
MobileN...
2種類の画像の中間値の推定
https://qiita.com/ksasao/items/6d6bcac4c5e92fa692a2
境界
特徴量空間に
マッピング
特徴量空間に
マッピング
k-NN (k-Nearest Neighbor) を利用した
オフライン転移学習
https://twitter.com/ksasao/status/1161978500091301893
良い点
• 学習にかかる時間がほぼゼロ (特徴ベクト...
応用
• 既存のセンサを置き換えられる
• ドア開閉センサ (磁気センサ)
• お風呂センサ (水位センサ)
• ボスが来たセンサ (光センサなど)
• 盗難センサ (重量センサなど)
• …
• 人間がパッと見てわかる程度の違いがあればわりと...
性能が物足りないと感じてきたら
• M5Stack公式サイトが無料の転移学習サービスを提供
https://docs.m5stack.com/#/en/related_documents/v-training
もちろん自分でモデルを作ることも可能
Keras (*.h5)
TensorFlow Lite (*.tflite)
tflite_convert
KPU (*.kmodel)
NNCase (ncc)
• 最終的なモデルサイズで 2.5MB ...
ためしてみたい?
入手先
スイッチサイエンスで売り切れていても、
他の電子パーツ店(マルツ、共立エレ
ショップ)などでは在庫があることも
https://eleshop.jp/shop/g/gJ7C314/
https://www.marutsu.co.jp/G...
M5StickV を始める前に
• 動作確認済み microSD カードを入手
認識しない
カードがかなり多い
M5StickV が届いたら
• M5StickV Quick Start からファームウェアを最新に
https://docs.m5stack.com/#/en/quick_start/m5stickv/m5stickv_quick_start
Browine
https://github.com/ksasao/brownie
Tiny YOLO v2 face detection
+
Tiny YOLO v2 object detection (20-class)
MobileNet...
まとめ
• M5StickV は安価でプログラミングが可能なAIカメラ
• MobileNet を特徴抽出器として利用した場合の素性は
意外に良好
• 既存センサの置き換えにもつかえそう
ミクミンP
@ksasaohttps://github....
Prochain SlideShare
Chargement dans…5
×

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

8 188 vues

Publié le

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

Publié dans : Logiciels
  • Identifiez-vous pour voir les commentaires

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

×