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
780
たくさん棲みつかせる話 #NT札幌
ksasao
0
780
家にいっぱい棲みつかせてみた
ksasao
2
1.4k
Other Decks in How-to & DIY
See All in How-to & DIY
IoT×サーモに挑戦する第一歩
runrunsan
0
270
俺とキャンプ
sat
PRO
1
270
drumstick_jacket.pdf
lyh125
0
480
異形頭の作りかた
__allllllllez__
0
460
100回分は振り返りできなかったけど振り返り #iotlt vol101
n0bisuke2
0
290
ついにiPaaSでobnizが動くかも?! #iotlt #pipedream #obniz
n0bisuke2
0
300
LTのモチベーション
akrolayer
1
490
240420MapillaryMeetup2024Tokyo
tosseto
0
140
Fraxinus1k 組立説明書 (Japanese, v. 0.9)
fukumay
1
4.3k
担当アイドルを応援する傘を作ろう! (として失敗した話)
subroh0508
0
430
ITエンジニアにおすすめのゲームFactorio御紹介
zembutsu
PRO
1
950
ジョインして1ヶ月 緊急リリースを3度体験した話 〜そして改善へ〜
shibatadaiki
0
420
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
64
11k
Thoughts on Productivity
jonyablonski
66
4.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
278
13k
RailsConf 2023
tenderlove
28
820
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
103
48k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Infographics Made Easy
chrislema
239
18k
A Philosophy of Restraint
colly
202
16k
Testing 201, or: Great Expectations
jmmastey
36
7k
Typedesign – Prime Four
hannesfritz
39
2.3k
Why Our Code Smells
bkeepers
PRO
334
56k
How STYLIGHT went responsive
nonsquared
93
5.1k
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