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
850
たくさん棲みつかせる話 #NT札幌
ksasao
0
810
家にいっぱい棲みつかせてみた
ksasao
2
1.4k
Other Decks in How-to & DIY
See All in How-to & DIY
Learning from Firefighters
ksatirli
PRO
0
140
銀座線・半蔵門線から、ふりかえりカンファレンス2024現地会場への行き方
pokotyamu
0
220
Snowflake WEST ユーザー会第2回「ハンズオンセッション」
mabokaneko0802
0
200
[너구리랑! 회고 밋업 2023] GTD & PARA -머릿속이 복잡하던 일상에 적용한 정리법 // 토르 님
develop_neoguri
1
310
コロナ後の世界メイカーフェア事情 高須正和@Nico-Tech Shenzhen #KMMF2024 #KariyaMMF2024
takasumasakazu
0
250
IoT×サーモに挑戦する第一歩
runrunsan
0
290
LTのモチベーション
akrolayer
1
550
Terra Charge|普通充電器ご利用ガイドブック / Terra Charge Ordinary Charger Guidebook
contents
1
110
それっぽいポッドキャストの作り方
khirata
2
260
未来大生の胃を支える函館グルメ
deflis
0
350
元SREのCREが伝えたい、Mackerelをもっと活用するための実践Tips集 / Mackerel Drink Up #11 do-su-0805
dosu0805
0
230
苦いビールを避ける冴えたやり方
watany
2
150
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1366
200k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Statistics for Hackers
jakevdp
796
220k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Building Applications with DynamoDB
mza
90
6.1k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Teambox: Starting and Learning
jrom
133
8.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
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