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
1.1k
たくさん棲みつかせる話 #NT札幌
ksasao
0
920
家にいっぱい棲みつかせてみた
ksasao
2
1.5k
Other Decks in How-to & DIY
See All in How-to & DIY
評価のギャップから紐解く、「評価軸」と「ソフトスキル」の重要性
blajir
2
100
LT(Lightning Talk)のドキドキ感を共有する IoT ぼっとを作った話
scbc1167
1
230
人を補助するAI ~AIとの壁打ちがきっかけになる~ #共創AIミートアップ
ishikiemo
0
460
目指せ!本を書いて夢の不労所得 #第3木曜LT会
kaitou
1
120
AIお菓子ロッカー
keicafeblack
0
170
Why did my proposals get rejected?
okuramasafumi
1
720
#Stampfly #M5Stack 開発ストーリーと今後の可能性 前説
takasumasakazu
0
130
バーチャルバナナとリアルバナナ #iotlt #TouchDesigner
n0bisuke2
0
170
安全に失敗するための手遊び-未定義動作を引き出そう-
zilmina
0
640
あなたは何故コミュニティに参加するのか?
awsjcpm
1
190
RDKX3 ハンズオン資料 東京 D-Robotics 日本語
takasumasakazu
0
150
How to create better speaker proposals
logico_jp
2
960
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Six Lessons from altMBA
skipperchong
28
4k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
How to Ace a Technical Interview
jacobian
279
23k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Designing for Performance
lara
610
69k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Optimizing for Happiness
mojombo
379
70k
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