Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AIカメラで簡単に生活を便利にする #TMMF2020
Search
ksasao
February 15, 2020
How-to & DIY
0
1.4k
AIカメラで簡単に生活を便利にする #TMMF2020
Tsukuba Mini Maker Faire 2020 のプレゼン資料です。
ksasao
February 15, 2020
Tweet
Share
More Decks by ksasao
See All by ksasao
BME688でお好み焼きセンサをつくる - Making Okonomiyaki Sensor with BME688
ksasao
0
910
たくさん棲みつかせる話 #NT札幌
ksasao
0
840
家にいっぱい棲みつかせてみた
ksasao
2
1.4k
Other Decks in How-to & DIY
See All in How-to & DIY
ライトニングトーク: JAWS-UGが凄いぞ、という小ネタ
awsjcpm
0
130
中指立てたか判定IoT #iotlt #p5js
n0bisuke2
0
250
IoTと田中の距離 #iotlt #田中 #openai
n0bisuke2
1
330
AWSと学生支援 - Education-JAWS #0
awsjcpm
1
110
こんなにあるの? 最近のIPAトレンドを ざっくりまとめてみた
watany
3
650
【1周年】Blueskyちゃん総集編を通じて青空を遊びつくそう
kawaiirailroads
0
300
スカウト返信率を倍にするためにやったこと / 2024-01-29
tamago3keran
2
990
スクフェス福岡前夜祭 LT
pokotyamu
0
210
Earthquake and Kominka
ramtop
0
150
Notionでの快適メモ術
ayumu11
0
1.1k
LT(Lightning Talk)のドキドキ感を共有する IoT ぼっとを作った話
scbc1167
1
160
How to get hundreds of organic backlinks through statistics link building
ronishehu
1
200
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
How to Ace a Technical Interview
jacobian
276
23k
jQuery: Nuts, Bolts and Bling
dougneiner
62
7.6k
Rails Girls Zürich Keynote
gr2m
94
13k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Why Our Code Smells
bkeepers
PRO
335
57k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
YesSQL, Process and Tooling at Scale
rocio
170
14k
Speed Design
sergeychernyshev
25
740
Transcript
AIカメラで簡単に生活を 便利にする ミクミンP @ksasao Tsukuba Mini Maker Faire 2020 #TMMF2020
2020/2/15
そろそろ人間が把握できなくなる量のデータが ご家庭でも処理できるようになってきました 2
人の寿命 • 人の一生は 約3万日 • 人の一生は 2.5G秒 割と短い。 3
機械の処理能力 https://twitter.com/ksasao/status/966991586356731909 https://arxiv.org/abs/1612.08242 https://twitter.com/ksasao/status/941326622178738176 •55.8億回というと多い気がする •5.58G回というと少ない気がする (2018年) 4
M5StickV https://twitter.com/ksasao/status/1151984910703288321 M5Stack 社製の AIカメラ 0.8TOPS (8000億回/秒) 3000円 5
もうだいたい機械でいい気がする 6
そうだ、おうちを機械化しよう 7
家の中で何が起こっているかを知る 8
ドア開閉センサ • TWE-Lite を利用 • 電池交換をほぼ意識しなくて済む • ドア開閉だけでなく電池の電圧も わかる ボタン電池1個で数年持つ無線ドア開閉センサを作る
https://qiita.com/ksasao/items/1a221843894fdb57677b 9
ドア開閉センサを温度センサとして使う お風呂場のドア開閉センサから • お風呂を沸かした時刻 • シャワーを浴びた時刻 • お風呂に入ったかどうか などがわかる 10
おうち全体の消費電力(約3秒毎, 200万件) • aaa 2016 2017 2018 11
おうち全体の電力消費パターン • 家電ごとに使用電力のパターン があるので分離できる 12
おうちの温度分布 https://twitter.com/ksasao/status/894066708545101825 西日で高温 エアコンで 快適 13
効果 • 運動せずに半年で5kg痩せた • 体重計にのらないとしつこく言ってくる • データが可視化されると食べる量を意識する ようになる • 現在も一定体重を維持
14
効果 • 買い物のし忘れが減った • こまめにメモを(音声で)とるようになった • 家に帰ったときにほっとするようになった • 帰宅タイミングに合わせて電気がつくなど •
よく眠れるようになった/朝起きれるようになった • 深夜に強制的に電気が消される/朝は電気やテレビがつく 生活の質が大きく向上 15
きょうはAIカメラ Brownie のおはなし https://github.com/ksasao/brownie 16
Brownie はこんなことができます 17
じゃんけんをちょっとずつデバイス内で学習 していく様子 https://twitter.com/ksasao/status/1161978500091301893 1枚の学習画像だけでもそれなりに動作 18
デバイス単独で動きます (6700mAhのモバイルバッテリーで22時間) https://twitter.com/ksasao/status/1160532010856665089?s=20 19
2種類の画像の中間値もわかります https://twitter.com/ksasao/status/1185909464471232512?s=20 20
画像認識した結果でコマンドが叩けます (Windows/Mac/Linux/RaspberryPiに対応) • Windows バイナリ版 • Node.js 版 があります。 https://github.com/ksasao/brownie
21
Wi-Fi でつながります 22
Arduino などにもつながります (UART) 4 pin cable 23
この水色のデバイスは何? 24
M5StickV • Kendryte K210 • RISC-V プロセッサ (64bit x 2)
• KPU (0.8TOPS) • 液晶モニタ (240x135px) • LED(RGBW) • スピーカー • ジャイロ・加速度センサ • TFカードスロット (microSD) •3000円 25
Canaan Creative社 Kendryte K210 https://kendryte.com/ 26
開発 • MaixPy (micropython ベース, NumPyなどは使えない) • カメラなどが簡単に使える。Tiny YOLO 向けの
API あり。 • 統合開発環境 MaixPy IDE (Sipeed社製) 27
推論の実行 https://bbs.sipeed.com/t/topic/682 カメラから画像取得 モデル読み込み 推論 28
Tiny YOLO で物体検出するコード https://bbs.sipeed.com/t/topic/683 YOLO用の初期化 推論 29
推論は簡単っぽい 学習は? 30
どうやって学習するか • MaixPy では重みの更新はできない • NumPy (最近のファームウェアで一部対応), SciPy が使えない •
アルゴリズムを手書きすると実行速度が遅い • ネイティブコードのモジュールを読み込む機能は(現在は)ない → MobileNet を特徴抽出器として利用して k-NN (k近傍法) で推論 31
https://sites.google.com/view/learning-with-limited-data https://drive.google.com/file/d/1O3CxWtaytBfwjj50WprXXWwqMiZy-Kyq/view 32
k-NNを利用した推論のイメージ 通常の機械学習 今回の実装 半径を実験的に決定は 33
k-NN (k-Nearest Neighbor) を利用した オフライン転移学習 https://twitter.com/ksasao/status/1161978500091301893 入力 画像 特徴 抽出層
全結合 層 MobileNet v1 softmax 認識結果 1000クラス 十分に学習済みのモデルなら このあたりには、画像をいい 感じに抽象化したベクトルが 出力されているはず・・・ 深層学習の入門記事などでは 全結合層・softmax 部分のみ 変更して再学習することが多い (学習データ↑, 計算時間↑) 34
k-NN (k-Nearest Neighbor) を利用した オフライン転移学習 https://twitter.com/ksasao/status/1161978500091301893 入力 画像 特徴 抽出層
全結合 層 MobileNet v1 softmax 認識結果 1000クラス kpu.set_layers(task,29) 29層目まで計算した結果を取り出す 35
k-NN (k-Nearest Neighbor) を利用した オフライン転移学習 https://twitter.com/ksasao/status/1161978500091301893 入力 画像 特徴 抽出層
特徴抽出層の出力 (768次元ベクトル) をそのまま保存 学習時 グー チョキ パー 768次元ベクトルを可視化 1x768 36
k-NN (k-Nearest Neighbor) を利用した オフライン転移学習 https://twitter.com/ksasao/status/1161978500091301893 入力 画像 特徴 抽出層
学習した特徴ベクトル群と 入力画像の特徴ベクトルの ユークリッド距離をもとめ 最も近いものを返す (k=1) 推論時 グー チョキ パー 768次元ベクトルを可視化 1x768 37
2種類の画像の中間値の推定 https://qiita.com/ksasao/items/6d6bcac4c5e92fa692a2 境界 特徴量空間に マッピング 特徴量空間に マッピング 38
k-NN (k-Nearest Neighbor) を利用した オフライン転移学習 https://twitter.com/ksasao/status/1161978500091301893 良い点 • 学習にかかる時間がほぼゼロ (特徴ベクトルを保存するだけ)
• 1枚学習するだけでも動く • 学習・推論が素早く試せる 悪い点 • 汎化性能が低い • とはいえ位置・回転・照明条件などにはそれなりにロバスト 39
応用 • 既存のセンサを置き換えられる • ドア開閉センサ (磁気センサ) • お風呂センサ (水位センサ) •
ボスが来たセンサ (光センサなど) • 盗難センサ (重量センサなど) • … • 人間がパッと見てわかる程度の違いがあればわりと認識可能 • 部屋の散らかり具合を 0 ~ 100 の数値で表現 • … Brownie の 画像認識で 置き換え 40
性能が物足りないと感じてきたら • M5Stack公式サイトが無料の転移学習サービスを提供 https://docs.m5stack.com/#/en/related_documents/v-training 41
もちろん自分でモデルを作ることも可能 Keras (*.h5) TensorFlow Lite (*.tflite) tflite_convert KPU (*.kmodel) NNCase
(ncc) • 最終的なモデルサイズで 2.5MB 程度が上限値 • サポートしている Operator に制約があるので注意 https://github.com/kendryte/nncase 42
ためしてみたい? 43
入手先 スイッチサイエンスで売り切れていても、 他の電子パーツ店(マルツ、共立エレ ショップ)などでは在庫があることも https://eleshop.jp/shop/g/gJ7C314/ https://www.marutsu.co.jp/GoodsDetail.jsp?salesGoodsCode=1555934 44
M5StickV を始める前に • 動作確認済み microSD カードを入手 認識しないカードがかなり多い 推奨は Lexar の
microSDHC 32GB (記憶容量も合わせること) 45
M5StickV が届いたら • 適切なファームウェアを kflash_gui で書き込み • https://github.com/sipeed/kflash_gui • 新しければ動くというものでもないので適切なものを選択
• TMMF2020 に出展している時点の Brownie のファームウェアは、 http://dl.sipeed.com/MAIX/MaixPy/release/master/maixpy_v0.5.0_9_g8eba07d の maixpy_v0.5.0_9_g8eba07d_m5stickv.bin 46
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 47
ちなみに • かなりセンシティブなことが分かる • 人間が忘れてしまう細かなことも機械は覚えている • 長期的な傾向もわかる • 解析されたデータを直視するのはつらい・ヤバい •
その人のダメな部分も可視化される それをやんわり伝えるためのキャラクターの活用 これはまた別なところで・・・ 48
まとめ • Brownie は簡単に使えるAIカメラ • 画像認識でおうちを便利に ミクミンP @ksasao https://github.com/ksasao/brownie 49