SlideShare a Scribd company logo
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
ITフォーラム2022
先端IT活用推進コミュニティ
『空気を読む家』
Well-being 測定技術編
2022/02/04
クラウド・テクノロジー グループ
エクスウェア株式会社 荒本道隆
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
2010年~2021年:先端IT活用推進コンソーシアム
■背景/活動目的(最終年度)
11年目の最後の年は、気象庁APIの運用で蓄積された7年半分のアクセスログとデータの、可視化や
データ活用について検討する。← 全然できなかった
また、これまで通り、クラウド全般、IoT、量子コンピューティング、AIについても取り組んでい
く。 ← できた
広範囲の各要素技術に対し、部会参加者が「知っている」ではなく「使ったことがある」「人に教
えることができる」と言えるレベルを目指す。← 2件できた
2021年~:先端IT活用推進コミュニティ
『空気を読む家』のニーズに新しい技術が適合できるかを評価する
「適合させる」が目的ではなく、「新しい技術を使ってみる」が目的
→ そのため、無理矢理感がある場合が多々あり
クラウド・テクノロジー活用部会とは
2
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
これまで、データ収集、蓄積&演算、可視化を実装してきた(赤字は2020年度の成果)
クラウド部会と『空気を読む家』の関係
3
入力 出力
カメラ
・玄関で訪問者を識別
・ベットで寝てる人、睡眠の深さ
・姿勢検出と物体検出
・サーモグラフィで高温注意検出
センサ
・音声認識、話者識別
・冷蔵庫内のプリンを管理
・BLEタグで置き傘を管理
・屋内での人の位置を把握
外部データの取り込み
・気象庁防災情報XML
・東京公共交通オープンデータ
統計&AI
・書籍の輪読
・クラスタリング
Webサイト
・データの可視化
量子コンピュータ
・スケジュール最適化
蓄積&演算
大量データ
・RDF/SPARQL
・Amazon S3 Select
プロジェクタ
・危険度を投影
・家の中で、どこで誰が何をしているか、その時の感情を記録したい
これまでの実証実験では、カメラ+画像認識をしたものが多かった
姿勢検出、顔認識、感情認識は既存のものを使用
・家中にカメラを設置し、常時ONにしたいけど
間違いなく、家族に反対される(聞くのも怖い)
カメラカバーの開閉は、面倒でやらなくなる
・2022年、実際に記録&蓄積していきたい
・カメラを一切使わないで何とかならないか?
→ 家中に加速度センサを設置
→ 加速度データを機械学習でどうにかする
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
今回、解決したい課題
4
・単純に、機嫌が悪い=ドアを勢いよく開ける?
もしくは、急いでいる?
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
加速度に注目したワケ
5
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・M5StickC Plus:3,058円
選択理由
使い慣れている
『M5StickC』の方が安価だけど、在庫がなかった(2021年12月時点)
LCDに、様々な情報を表示できる
工作が不要、IoTを知らない人が見ても不安にならないデザイン
背面の磁石で、冷蔵庫に張り付く
使用する加速度センサ
6
製品特徴
・ESP32ベースでBluetooth 4.0とWi-Fiが利用可能
・インターフェース
・ボタン x 2
・ブザー
・ IR送信機
・赤色LED
・マイクロフォン
・ 6軸IMU
・ RTC
・ PMIC(バッテリ管理IC)
・ 1.14 インチ 135x 240 LCD
・ 120mAh バッテリー内蔵
・機能拡張が可能なGrove互換ソケット
https://www.switch-science.com/catalog/6470/
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・スリッパ、家具、各部屋のドアに加速度センサを貼り付ける
スリッパで誰か?を識別
スリッパの加速度+冷蔵庫の加速度で、誰が冷蔵庫を開けたか?が分かる
加速度の強弱で、感情を推測
機械学習で推測できないだろうか?
検証用システムver1
7
・機能概要
電源ON時に、設置場所を選択
無線LANに自動接続、切れていた場合も自動再接続
10msecごとに加速度センサを読み取る
X,Y, Z軸の変化量(絶対値)のうち、最大のものを採用
閾値以上の変化量が発生したら、HTTPでその都度送信
前1秒、後ろ2秒のデータ(10msecごと、300点)をHTTPで一括送信
通信部分は別スレッド化し、送信データをキューに入れる
通信時に、加速度センサの読み取りが遅れないように
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
加速度センサのデータ収集を実装してみた
8
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・冷蔵庫に貼って、OPENとCLOSE時を測定
内蔵磁石で張り付いた。勢いよく開閉しても問題無し
OPEN時:開け方によって差が出そう
CLOSE時:磁力で「バタン」と閉まるので早い
課題:約90分で勝手に電源が切れた
使ってみたら
9
OPEN時
CLOSE時
開けていた時間
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・消費電力:約80mAh、内蔵バッテリー:120mAh → 稼働時間:約90分
使っていない機能をOFFにすれば、稼働時間を少しは延ばせる
LCD(画面)の明るさを落とすことで、120分までは延ばせそう
→ 稼働時間を延ばすために、モバイルバッテリーを追加
重くて実用性に難があるけど、それはいったん無視
『M5StickC Plus』の稼働時間についてー1
10
https://lang-ship.com/blog/work/m5stickc-power-saving/
参考:M5StickCの消費電力
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・ダイソーのモバイルバッテリー(500円)を追加
バッテリー容量:2480mAh(4000mAh)
稼働時間を試算:90分x(2480/120)=1860分=31時間
・しかし、約3時間で電源が切れてしまった
モバイルバッテリーには電気が75%以上残っていた
稼働時間を延ばすために、LCD(画面)を暗くしていたため
モバイルバッテリーの「AUTO POWER OFF」(保護機能)で、給電がストップ
・LCD(画面)の明るさを常に最大に設定
「AUTO POWER OFF」(保護機能)の閾値を上回り、給電を継続
→ 30時間10分、連続稼働した
「1分間で1秒間だけ明るさを最大」では、給電がストップ
別のモバイルバッテリーではこれでうまくいった。ものによって判定基準が違うらしい
・確実なのは「AUTO POWER OFF」が無効なモバイルバッテリー
例: IoT機器対応モバイルバッテリー cheeroCanvas 3200mAh(3,035円)
https://www.switch-science.com/catalog/2618/
例:「定電流モード」付きのモバイルバッテリー ※未検証
『M5StickC Plus』の稼働時間についてー2
11
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・冷蔵庫の使用状況を加速度センサから推測
OPEN/CLOSE?
どの段を開けたか?
誰が開けたか? ※加速度だけで
その時の感情は?
・動作確認してみたら
二段目と三段目は、OPEN時の反応が極端に弱かった
通常時:0~41
一段目のOPEN時:150~600
二段目のOPEN時:最大53
三段目のOPEN時:最大47
→ 一段目と四段目だけを対象にする
・おことわり
OPENとCLOSEはZ軸での判定が確実だけど、あえて機械学習で
全扉にセンサを付ければ簡単だけど、あえて機械学習で
スリッパのデータを参照すれば分かるけど、あえて機械学習で
3秒間の加速度データで機械学習を
12
飲み物、食材、
オヤツ
氷、アイスクリーム
冷凍食品
野菜室
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・PyCaretとは
機械学習(AutoML)ができるPythonのライブラリ
MITライセンス
Google Colab上でも動作する
PyCaret でOPEN/CLOSEを分類ー1
13
https://openstandia.jp/oss_info/pycaret/
https://pycaret.org/
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・冷蔵庫のOPEN/CLOSE時の加速度データを記録
一段目に対して、以下を行う
扉をOPEN → 3秒待つ → 扉をCLOSE → 5秒待つ → 最初に戻る
※100回繰り返す
PyCaret でOPEN/CLOSEを分類ー2
14
一段目の最初の5回分
OPEN
CLOSE
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・加速度データをCSV形式で保存
1行目:ヘッダ
2行目以降:データ
1カラム目:OPEN/CLOSE
2カラム目以降:10msecごとの加速度の絶対値
PyCaret でOPEN/CLOSEを分類ー3
15
action,door,data1,data2,data3,data4,data5,data6,data7,data8,data9,data10,.....
OPEN,DOOR1,8,11,7,8,6,8,7,2,7,11,13,15,4,5,3,7,5,2,5,6,5,4,4,8,8,7,3,12,19,…..
CLOSE,DOOR1,12,19,3,9,10,6,6,1,9,11,2,3,6,12,15,7,8,2,7,16,10,8,3,11,8,12,.....
OPEN,DOOR1,11,12,5,4,6,5,9,14,5,2,4,10,8,7,16,10,3,9,11,8,10,8,5,8,8,7,8,7,.....
CLOSE,DOOR1,10,11,16,10,13,19,6,9,3,10,6,6,3,7,11,12,9,4,8,11,6,7,9,9,6,3,.....
OPEN,DOOR1,10,11,5,3,3,5,12,5,4,6,7,8,14,10,12,4,6,3,3,2,1,13,15,7,7,16,8,.....
CLOSE,DOOR1,6,8,11,15,9,2,2,6,8,5,12,9,8,6,10,11,2,13,12,7,5,2,7,12,13,7,.....
OPEN,DOOR1,5,7,5,10,9,7,7,5,4,4,11,11,13,12,3,7,6,7,8,4,9,10,9,10,5,10,8,4,.....
CLOSE,DOOR1,13,9,1,5,6,8,7,9,7,11,10,8,11,8,20,10,6,11,7,6,3,8,10,11,10,7,.....
:
:
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・OPEN/CLOSEの分類問題(pycaret.classification)
Googleコラボで以下を実行
PyCaret でOPEN/CLOSEを分類ー4
16
# インストール
! pip install pycaret
# CSVファイルから読み込む
import pandas as pd
door1 = pd.read_csv('https://aramoto.sakura.ne.jp/IoT/datas/door1.csv')
door1.head()
# 前処理(分類問題:pycaret.classification)
from pycaret.classification import *
exp1 = setup(door1, target = 'action' )
# モデルの比較
compare_models()
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・もう少し精度を上げてみよう
データ範囲を制限する
カラムの型(数値型)を明示する
PyCaret でOPEN/CLOSEを分類ー5
17
ignore = []; # 使わない列を指定する
ignore.append('data301'); # 最後の列はデータが入っていない
for i in range(1, 80+1, 1): # 前0.8秒のデータは使わない
ignore.append('data' + str(i))
for i in range(151, 300+1, 1): # 後1.5秒のデータは使わない
ignore.append('data' + str(i))
data_label = []; # カラムの型を明示する
for i in range(1, 301+1, 1):
data_label.append('data' + str(i))
exp1 = setup(door1, target='action', numeric_features=data_label, ignore_features=ignore)
compare_models()
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・データ範囲を制限&型を明示しただけで
Accuracy:0.9018 → 0.9571
※実行するたびに結果は微妙に異なります
PyCaret でOPEN/CLOSEを分類ー6
18
無設定 範囲制限&型明示後
・冷蔵庫のOPEN/CLOSE時の加速度データを記録
四段目に対して、以下を行う
扉をOPEN → 3秒待つ → 扉をCLOSE → 5秒待つ → 最初に戻る
※100回繰り返す
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
PyCaret で一段目/四段目を分類ー1
19
OPEN
CLOSE
四段目の最初の5回分
・一段目と四段目の違いを目視
一段目:ピークの時間が短い
四段目:ピークの時間が長い
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
PyCaret で一段目/四段目を分類ー2
20
一段目
四段目
OPEN
CLOSE
OPEN
CLOSE
・一段目と四段目のデータを読み込む
2つのデータをマージ
DOOR1/DOOR4をOPENだけで判定
DOOR1/DOOR4をCLOSEだけで判定
前1秒も使った方が精度が高かった
#CSVファイルから読み込む
import pandas as pd
door1 = pd.read_csv('https://aramoto.sakura.ne.jp/IoT/datas/door1.csv')
door4 = pd.read_csv('https://aramoto.sakura.ne.jp/IoT/datas/door4.csv')
door14 = pd.concat([door1, door4]) # DataFrameを結合
door14 = door14[door14.action == 'OPEN'] #OPENだけにする
door14.head()
ignore = []; # 使わない列を指定する
ignore.append('data301'); # 最後の列はデータが入っていない
for i in range(201, 300+1, 1): # 後1.0秒のデータは使わない
ignore.append('data' + str(i))
data_label = []; # カラムの型を明示する
for i in range(1, 301+1, 1):
data_label.append('data' + str(i))
exp1 = setup(door14, target='door', numeric_features=data_label, ignore_features=ignore)
compare_models()
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
PyCaret で一段目/四段目を分類ー3
21
一段目
四段目
・判定結果
DOOR1/DOOR4のOPENのAccuracy:0.9429
DOOR1/DOOR4のCLOSEのAccuracy:0.9857
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
PyCaret で一段目/四段目を分類ー4
22
OPEN CLOSE
・一段目/四段目とOPEN/CLOSEをまとめて分類
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
PyCaret で一段目/四段目+開閉を分類ー1
23
#CSVファイルから読み込む
import pandas as pd
door1 = pd.read_csv('https://aramoto.sakura.ne.jp/IoT/datas/door1.csv')
door4 = pd.read_csv('https://aramoto.sakura.ne.jp/IoT/datas/door4.csv')
door14 = pd.concat([door1, door4]) # DataFrameを結合
door14['actiondoor'] = door14['action'] + door14['door'] # 2つの列を結合
door14.head()
ignore = []; # 使わない列を指定する
ignore.append('action'); # actiondoorを使用する
ignore.append('door'); # actiondoorを使用する
ignore.append('data301'); # 最後の列はデータが入っていない
for i in range(201, 300+1, 1): # 後1.0秒のデータは使わない
ignore.append('data' + str(i))
data_label = []; # カラムの型を明示する
for i in range(1, 301+1, 1):
data_label.append('data' + str(i))
exp1 = setup(door14, target='actiondoor', numeric_features=data_label, ignore_features=ignore)
compare_models()
actiondoor の中身
OPENDOOR1
CLOSEDOOR1
OPENDOOR4
CLOSEDOOR4
・判定結果
Accuracy:0.9238
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
PyCaret で一段目/四段目+開閉を分類ー2
24
actiondoor の中身
OPENDOOR1
CLOSEDOOR1
OPENDOOR4
CLOSEDOOR4
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・バッテリーの持ち時間が一番の課題
毎日、複数個所のモバイルバッテリー交換は面倒
しかも、日に日にバッテリーの稼働時間が短くなっていく
1週間は連続して動いて欲しいけど、
5倍(20,000mAh)のモバイルバッテリーは超巨大なため、非現実的
・一段目/四段目+開閉の判定精度は0.9238
この精度で十分なのかは未定義
CPUパワーが必要なので、『M5StickC Plus』内では無理
加速度データをサーバに送って判定する
・「誰が?」「感情」までは検証できていない
家庭の事情です。すいません
検証用システムver1の課題
25
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
これまで、データ収集、蓄積&演算、可視化を実装してきた(赤字は2020年度の成果)
過去の実証実験を思い返して
26
入力 出力
カメラ
・玄関で訪問者を識別
・ベットで寝てる人、睡眠の深さ
・姿勢検出と物体検出
・サーモグラフィで高温注意検出
センサ
・音声認識、話者識別
・冷蔵庫内のプリンを管理
・BLEタグで置き傘を管理
・屋内での人の位置を把握
外部データの取り込み
・気象庁防災情報XML
・東京公共交通オープンデータ
統計&AI
・書籍の輪読
・クラスタリング
Webサイト
・データの可視化
量子コンピュータ
・スケジュール最適化
蓄積&演算
大量データ
・RDF/SPARQL
・Amazon S3 Select
プロジェクタ
・危険度を投影
BLEタグを使
用
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・バッテリーの持ち時間が一番の課題
・一段目/四段目+開閉の判定精度は0.9238
・「誰が?」を確実に判定したい
・スリッパだけBLEタグ(忘れ物防止タグ)に変えてみる
ボタン電池で1~3年は動く
参考:3年ちょっと前に買ったBLEタグの残バッテリー:13%
・『M5StickC Plus』は常に電源に接続
BLEタグとの距離を近くするため、できるだけ下に付ける
・BLEタグと『M5StickC Plus』の距離で判定
常に全BLEタグのRSSI(Received Signal Strength Indicator)を取得
加速度センサが反応したら、
→ 一番RSSIが大きいタグの持ち主が使用した、と判定
残課題:二段目と三段目は加速度センサが反応しない
検証用システムver2
27
・機能概要
電源ON時に、設置場所を選択
無線LANに自動接続、切れていた場合も自動再接続
事前登録したBLEタグのRSSI(Received Signal Strength Indicator)を常に収集
10msecごとに加速度センサを読み取る
X,Y, Z軸の変化量(絶対値)のうち、閾値以上の変化量が発生したら、
最もRSSIが大きい(近い)BLEタグの番号をHTTPで送信
通信部分は別スレッド化し、送信データをキューに入れる
通信時に、加速度センサの読み取りが遅れないように
BLEタグのRSSI収集は別スレッド化し、グローバル変数でデータ共有
収集時に、加速度センサの読み取りができないので
・Tips
無線LANとBLEを同時に使うと、プログラム領域が足りなくなった
「最大1310720バイトのフラッシュメモリのうち、スケッチが1560510バイト(119%)を使っています。」
OTA(OverThe Air)の無効化で、プログラム領域が1.3MB → 2MB に増える
Arduino IDE:「ツール」→「Partition Scheme:」→「No OTA(Large APP)」
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
検証用システムver2、実装してみた
28
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・RSSI強度で「誰が?」を判定(5回)→ 正解率がとても低い
OPEN時:40%正解
CLOSE時:80%正解
動作をみていると、
ビーコンを受信する前に開けて、開けている間にビーコンを受信している
そのため、特にOPEN時の判定は、運次第
・2個のBLEタグ(別メーカー)を同じ場所に置き、ビーコン送出を1時間測定
BLEタグ1:962回(約3.7秒に1回)※一定間隔ではない
BLEタグ2:531回(約6.8秒に1回)※一定間隔ではない
検証用システムver2を使ってみたら
29
BLEタグ1
BLEタグ2
最初の5分間
BLEタグ2を
受信していない
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・ビーコンの発信間隔が長いほど、誤判定する
移動して、ビーコンを受信する前に冷蔵庫を開けると、誤判定
→ 発信間隔を短めに設定する
→ → 最近買ったBLEタグは変更できなかった
→ → 発信していない? 受信できていない?
・電源の配線により、設置場所が制限させる
→ 『M5StickC Plus』とBLEタグである程度は回避できる
→ → ビーコンの間隔以内で開閉したら、検出できない
・どのくらいの精度が必要か?
今回の機械学習のやり方は、きっと正しくない
冷蔵庫の中身が増減すると、加速度の出方が変わるかも
検証用システムver2の課題
30
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・動いたタイミングでBLEタグがビーコンを出して欲しい
・探してみたら、アッサリ発見
『MM-BLEBC5』加速度トリガー搭載BLEビーコン 5,680
https://www.sanwa.co.jp/product/syohin?code=MM-BLEBC5
・以下のようにシステム構成を変更
BLEタグを『MM-BLEBC5』に変更
加速度検出でビーコンを送信するよう設定
加速度検出:5秒間、200msec周期で出す
・「誰が?」を10回判定 ※BLEタグを3つ使用
OPEN時:100%正解
CLOSE時:100%正解
検証用システムver2.1
31
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・各デバイスの配置
『M5StickC Plus』:距離を測りたい地点、詳細な加速度を取りたい場所、電源が取れる所
例:冷蔵庫、扉、テーブル、など
BLEタグ:「この部屋にある/ない」が分かればいいもの、更新頻度が分単位でよいもの
例:カサ、カバン、など
加速度トリガーBLEタグ:「動いた」瞬間を捉えたいもの
例:スリッパ、椅子、コップ、など
・感情認識は未着手
ラズパイ(PC)を追加し、詳細な加速度データを受信する
今後、加速度データから感情が推測できるか、検証を行う ※教師データをどうやって集める?
検証用システムver2.1のまとめ
32
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・『EB10-B』電池レス 振動発電ビーコン
メリット
・電池交換不要
・「加速度トリガー搭載BLEビーコン」よりも薄い(電池が不要なため)
・2~3歩毎に電波が出る
デメリット
・動いていないとビーコンが出ない(探し物には使えないかも)
・「加速度トリガー搭載」よりも高い(約8千円/個)
参考:今回は使えなかったけど
33
https://www.sd.toyonics.co.jp/01_solution/02_ecobeacon/eb10-b.html
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・「誰がトイレに行ったか?」の回数と長さをカウントする
IoTによる「猫のトイレの回数を記録し、膀胱炎を見つける」の人間版
複数人が居る家だと「誰が?」の判定が必要
人間相手だと「カメラで認識」はプライバシーが問題
NEWS記事:
西川きよし、前立腺がん発見のきっかけは妻
「自分では医者に行くほどではないだろうと…」
https://www.billboard-japan.com/d_news/detail/103956/2
活用案:夜中にトイレへ行った回数を記録
34
受診のきっかけは、ヘレンさんの一言だった。ヘレンさんは当時、夫の頻尿が気になっ
ていたという。
「もともと主人は60歳を過ぎた頃から、前立腺肥大症を持っていたので、そんなものか
な、と思っていたんですが、夜中のトイレの回数が増えまして。主人が起きると、私もお
のずと目が覚める。それがひどくなって、心配で『先生に診てもらおう』と申しましたら、
主人が重い腰を上げて『ほな行こか』となって」と経緯を説明。
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・IoTデイバスの実装範囲
『M5StickC Plus』から、以下のデータを空間OSに送信
加速度検出時に、対象のBLEタグのうちで一番近くにあったタグ
近くのBLEタグの加速度とRSSIを中継
・ラズパイ(PC)の実装範囲
加速度データを受信し、感情を推測して、空間OSに送信
・空間OSのエージェントに判定ロジックを実装
BLEタグ(=人)の場所を推定+感情
何が起こったかを判定
例:〇は冷蔵庫を開けた、△はトイレに入った、×は玄関を開けた、など
例:〇が機嫌良く起きた、△が夜中にトイレへ2回行った、×が急いで出かけた、など
今後、どう使うかを検討
空間OSとの連携(仮)
35
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
・加速度データのとり方を一番悩んだ
「時刻として正確」or「秒以下は正しくない」で、後者を選択
・『M5StickC Plus』の内蔵バッテリーでテストが楽だった
好きな場所に仮設置してデータを取ってみる、が簡単にできた
「AUTO POWER OFF」(保護機能)は想定外だった
・『M5StickC Plus』で3スレッドがうまく動作した
メイン:加速度センサ&LCD表示、task1:キュー受信&HTTP通信、task2:BLEタグのRSSI収集
ただし、ライブラリは対応していないため、同じ機能を別スレッドで使用しないこと
例:画面更新、日時取得、シリアルポート出力
・加速度トリガー搭載BLEビーコンが便利だった
「動いた」「大体、どの辺に居る」を取り易いが、値段が2~3倍
・「PyCaretを触ってみる」という目的は達成できた
引き続き、もうちょっと精度アップを頑張ってみる
・「加速度データによる感情認識」は実施できなかった
教師データ収集が課題
教師データ収集時だけ、カメラによる感情認識を併用する?
まとめ&感想
36
Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved.
ハルミン
AITC非公式イメージキャラクター
http://aitc.jp/
https://www.facebook.com/aitc.jp/
最新情報はこちらをご参照ください

More Related Content

PPTX
ITフォーラム2022 先端IT活用推進コミュニティ(5-1)
PDF
ITフォーラム2021 先端IT活用推進コンソーシアム(3/7)
PPTX
ITフォーラム2022 先端IT活用推進コミュニティ(2)
PPTX
ITフォーラム2022 先端IT活用推進コミュニティ(1)
PDF
ITフォーラム2021 先端IT活用推進コンソーシアム(7/7)
PDF
ITフォーラム2021 先端IT活用推進コンソーシアム(6/7)
PDF
ITフォーラム2021 先端IT活用推進コンソーシアム(1/7)
PDF
ITフォーラム2021 先端IT活用推進コンソーシアム(4/7)
ITフォーラム2022 先端IT活用推進コミュニティ(5-1)
ITフォーラム2021 先端IT活用推進コンソーシアム(3/7)
ITフォーラム2022 先端IT活用推進コミュニティ(2)
ITフォーラム2022 先端IT活用推進コミュニティ(1)
ITフォーラム2021 先端IT活用推進コンソーシアム(7/7)
ITフォーラム2021 先端IT活用推進コンソーシアム(6/7)
ITフォーラム2021 先端IT活用推進コンソーシアム(1/7)
ITフォーラム2021 先端IT活用推進コンソーシアム(4/7)

What's hot (6)

PDF
ITフォーラム2021 先端IT活用推進コンソーシアム(5/7)
PDF
ITフォーラム2021 先端IT活用推進コンソーシアム(2/7)
PDF
IoT Security
PPTX
転職したてのエンジニアが見た 国産クラウド開発現場の苦労とやりがい
PDF
Intel AI in Healthcare 各国事例からみるAIとの向き合い方
PPTX
次世代のIT技術を支える、高度なファシリティ
ITフォーラム2021 先端IT活用推進コンソーシアム(5/7)
ITフォーラム2021 先端IT活用推進コンソーシアム(2/7)
IoT Security
転職したてのエンジニアが見た 国産クラウド開発現場の苦労とやりがい
Intel AI in Healthcare 各国事例からみるAIとの向き合い方
次世代のIT技術を支える、高度なファシリティ
Ad

Similar to ITフォーラム2022 先端IT活用推進コミュニティ(4-2) (13)

PPTX
ソフトウェアジャパン2018 ITフォーラムセッション(4)
PPTX
空気を読む家のキッチン(3-1)
PDF
AITCオープンラボ 2018年5月度(3)
PDF
20141127 py datatokyomeetup2
PDF
AITCクラウド部会 2014年度 これまでの振り返りとこれから
PDF
20191030 AWS Black Belt Online Seminar AWS IoT Analytics Deep Dive
PDF
IoT勉強会「とりあえずIoT的なものを作ってみた ~センサーデータの測定・収集・蓄積・分析・出力まで~」
PDF
空気を読む家のキッチン(3-2)
PDF
協働プロジェクト「空気を読む家」キッチンにおけるデータ収集
PDF
IoTデータ活用のフィードバックループ
PDF
20140918 センサ・アクチュエータ・マイクロナノ/ウィーク2014 次世代センサ総合シンポジウム
PDF
第23回プロコン予選資料
PPTX
人工知能研究振興財団研究助成に対する成果報告
ソフトウェアジャパン2018 ITフォーラムセッション(4)
空気を読む家のキッチン(3-1)
AITCオープンラボ 2018年5月度(3)
20141127 py datatokyomeetup2
AITCクラウド部会 2014年度 これまでの振り返りとこれから
20191030 AWS Black Belt Online Seminar AWS IoT Analytics Deep Dive
IoT勉強会「とりあえずIoT的なものを作ってみた ~センサーデータの測定・収集・蓄積・分析・出力まで~」
空気を読む家のキッチン(3-2)
協働プロジェクト「空気を読む家」キッチンにおけるデータ収集
IoTデータ活用のフィードバックループ
20140918 センサ・アクチュエータ・マイクロナノ/ウィーク2014 次世代センサ総合シンポジウム
第23回プロコン予選資料
人工知能研究振興財団研究助成に対する成果報告
Ad

More from aitc_jp (20)

PPTX
ITフォーラム2025 先端IT活用推進コミュニティ セッション1:AITCの活動紹介
PPTX
ITフォーラム2025 先端IT活用推進コミュニティ セッション1:AITCの活動紹介
PDF
ITフォーラム2025 先端IT活用推進コミュニティ セッション4:コンテキストコンピューティング研究グループの取り組み
PDF
ITフォーラム2025 先端IT活用推進コミュニティ セッション6:「下り坂の雲」の行き先を灯す、これからのITの使い方
PDF
ITフォーラム2025 先端IT活用推進コミュニティ セッション5:ビジネスXRの転回
PDF
ITフォーラム2025 先端IT活用推進コミュニティ セッション3:空気を読む家スタジオの取り組み
PDF
ITフォーラム2025 先端IT活用推進コミュニティ セッション2:オープンラボの取り組み
PDF
ITフォーラム2025 先端IT活用推進コミュニティ セッション:オープニング・タイムテーブル
PDF
ITフォーラム2024 AITCセッション(5)
PDF
ITフォーラム2024 AITCセッション(4)
PDF
ITフォーラム2024 AITCセッション(3)
PDF
ITフォーラム2024 AITCセッション(2)
PDF
ITフォーラム2024 AITCセッション
PDF
2)AIを活用したウェルビーイングを測定
PDF
TForum2023_AITC_2.pdf
PDF
2)AIを活用したウェルビーイングを測定
PDF
5)パネルディスカッション:『空気を読む家』×ウェルビーイング/メタバース・Web3
PDF
4)技術視点でウェルビーイングを考える
PDF
3-2)『空気を読む家』とメタバース駆動開発構想
PDF
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげる
ITフォーラム2025 先端IT活用推進コミュニティ セッション1:AITCの活動紹介
ITフォーラム2025 先端IT活用推進コミュニティ セッション1:AITCの活動紹介
ITフォーラム2025 先端IT活用推進コミュニティ セッション4:コンテキストコンピューティング研究グループの取り組み
ITフォーラム2025 先端IT活用推進コミュニティ セッション6:「下り坂の雲」の行き先を灯す、これからのITの使い方
ITフォーラム2025 先端IT活用推進コミュニティ セッション5:ビジネスXRの転回
ITフォーラム2025 先端IT活用推進コミュニティ セッション3:空気を読む家スタジオの取り組み
ITフォーラム2025 先端IT活用推進コミュニティ セッション2:オープンラボの取り組み
ITフォーラム2025 先端IT活用推進コミュニティ セッション:オープニング・タイムテーブル
ITフォーラム2024 AITCセッション(5)
ITフォーラム2024 AITCセッション(4)
ITフォーラム2024 AITCセッション(3)
ITフォーラム2024 AITCセッション(2)
ITフォーラム2024 AITCセッション
2)AIを活用したウェルビーイングを測定
TForum2023_AITC_2.pdf
2)AIを活用したウェルビーイングを測定
5)パネルディスカッション:『空気を読む家』×ウェルビーイング/メタバース・Web3
4)技術視点でウェルビーイングを考える
3-2)『空気を読む家』とメタバース駆動開発構想
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげる

ITフォーラム2022 先端IT活用推進コミュニティ(4-2)

  • 1. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ITフォーラム2022 先端IT活用推進コミュニティ 『空気を読む家』 Well-being 測定技術編 2022/02/04 クラウド・テクノロジー グループ エクスウェア株式会社 荒本道隆
  • 2. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. 2010年~2021年:先端IT活用推進コンソーシアム ■背景/活動目的(最終年度) 11年目の最後の年は、気象庁APIの運用で蓄積された7年半分のアクセスログとデータの、可視化や データ活用について検討する。← 全然できなかった また、これまで通り、クラウド全般、IoT、量子コンピューティング、AIについても取り組んでい く。 ← できた 広範囲の各要素技術に対し、部会参加者が「知っている」ではなく「使ったことがある」「人に教 えることができる」と言えるレベルを目指す。← 2件できた 2021年~:先端IT活用推進コミュニティ 『空気を読む家』のニーズに新しい技術が適合できるかを評価する 「適合させる」が目的ではなく、「新しい技術を使ってみる」が目的 → そのため、無理矢理感がある場合が多々あり クラウド・テクノロジー活用部会とは 2
  • 3. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. これまで、データ収集、蓄積&演算、可視化を実装してきた(赤字は2020年度の成果) クラウド部会と『空気を読む家』の関係 3 入力 出力 カメラ ・玄関で訪問者を識別 ・ベットで寝てる人、睡眠の深さ ・姿勢検出と物体検出 ・サーモグラフィで高温注意検出 センサ ・音声認識、話者識別 ・冷蔵庫内のプリンを管理 ・BLEタグで置き傘を管理 ・屋内での人の位置を把握 外部データの取り込み ・気象庁防災情報XML ・東京公共交通オープンデータ 統計&AI ・書籍の輪読 ・クラスタリング Webサイト ・データの可視化 量子コンピュータ ・スケジュール最適化 蓄積&演算 大量データ ・RDF/SPARQL ・Amazon S3 Select プロジェクタ ・危険度を投影
  • 5. ・単純に、機嫌が悪い=ドアを勢いよく開ける? もしくは、急いでいる? Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. 加速度に注目したワケ 5
  • 6. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・M5StickC Plus:3,058円 選択理由 使い慣れている 『M5StickC』の方が安価だけど、在庫がなかった(2021年12月時点) LCDに、様々な情報を表示できる 工作が不要、IoTを知らない人が見ても不安にならないデザイン 背面の磁石で、冷蔵庫に張り付く 使用する加速度センサ 6 製品特徴 ・ESP32ベースでBluetooth 4.0とWi-Fiが利用可能 ・インターフェース ・ボタン x 2 ・ブザー ・ IR送信機 ・赤色LED ・マイクロフォン ・ 6軸IMU ・ RTC ・ PMIC(バッテリ管理IC) ・ 1.14 インチ 135x 240 LCD ・ 120mAh バッテリー内蔵 ・機能拡張が可能なGrove互換ソケット https://www.switch-science.com/catalog/6470/
  • 7. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・スリッパ、家具、各部屋のドアに加速度センサを貼り付ける スリッパで誰か?を識別 スリッパの加速度+冷蔵庫の加速度で、誰が冷蔵庫を開けたか?が分かる 加速度の強弱で、感情を推測 機械学習で推測できないだろうか? 検証用システムver1 7
  • 9. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・冷蔵庫に貼って、OPENとCLOSE時を測定 内蔵磁石で張り付いた。勢いよく開閉しても問題無し OPEN時:開け方によって差が出そう CLOSE時:磁力で「バタン」と閉まるので早い 課題:約90分で勝手に電源が切れた 使ってみたら 9 OPEN時 CLOSE時 開けていた時間
  • 10. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・消費電力:約80mAh、内蔵バッテリー:120mAh → 稼働時間:約90分 使っていない機能をOFFにすれば、稼働時間を少しは延ばせる LCD(画面)の明るさを落とすことで、120分までは延ばせそう → 稼働時間を延ばすために、モバイルバッテリーを追加 重くて実用性に難があるけど、それはいったん無視 『M5StickC Plus』の稼働時間についてー1 10 https://lang-ship.com/blog/work/m5stickc-power-saving/ 参考:M5StickCの消費電力
  • 11. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・ダイソーのモバイルバッテリー(500円)を追加 バッテリー容量:2480mAh(4000mAh) 稼働時間を試算:90分x(2480/120)=1860分=31時間 ・しかし、約3時間で電源が切れてしまった モバイルバッテリーには電気が75%以上残っていた 稼働時間を延ばすために、LCD(画面)を暗くしていたため モバイルバッテリーの「AUTO POWER OFF」(保護機能)で、給電がストップ ・LCD(画面)の明るさを常に最大に設定 「AUTO POWER OFF」(保護機能)の閾値を上回り、給電を継続 → 30時間10分、連続稼働した 「1分間で1秒間だけ明るさを最大」では、給電がストップ 別のモバイルバッテリーではこれでうまくいった。ものによって判定基準が違うらしい ・確実なのは「AUTO POWER OFF」が無効なモバイルバッテリー 例: IoT機器対応モバイルバッテリー cheeroCanvas 3200mAh(3,035円) https://www.switch-science.com/catalog/2618/ 例:「定電流モード」付きのモバイルバッテリー ※未検証 『M5StickC Plus』の稼働時間についてー2 11
  • 12. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・冷蔵庫の使用状況を加速度センサから推測 OPEN/CLOSE? どの段を開けたか? 誰が開けたか? ※加速度だけで その時の感情は? ・動作確認してみたら 二段目と三段目は、OPEN時の反応が極端に弱かった 通常時:0~41 一段目のOPEN時:150~600 二段目のOPEN時:最大53 三段目のOPEN時:最大47 → 一段目と四段目だけを対象にする ・おことわり OPENとCLOSEはZ軸での判定が確実だけど、あえて機械学習で 全扉にセンサを付ければ簡単だけど、あえて機械学習で スリッパのデータを参照すれば分かるけど、あえて機械学習で 3秒間の加速度データで機械学習を 12 飲み物、食材、 オヤツ 氷、アイスクリーム 冷凍食品 野菜室
  • 13. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・PyCaretとは 機械学習(AutoML)ができるPythonのライブラリ MITライセンス Google Colab上でも動作する PyCaret でOPEN/CLOSEを分類ー1 13 https://openstandia.jp/oss_info/pycaret/ https://pycaret.org/
  • 14. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・冷蔵庫のOPEN/CLOSE時の加速度データを記録 一段目に対して、以下を行う 扉をOPEN → 3秒待つ → 扉をCLOSE → 5秒待つ → 最初に戻る ※100回繰り返す PyCaret でOPEN/CLOSEを分類ー2 14 一段目の最初の5回分 OPEN CLOSE
  • 15. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・加速度データをCSV形式で保存 1行目:ヘッダ 2行目以降:データ 1カラム目:OPEN/CLOSE 2カラム目以降:10msecごとの加速度の絶対値 PyCaret でOPEN/CLOSEを分類ー3 15 action,door,data1,data2,data3,data4,data5,data6,data7,data8,data9,data10,..... OPEN,DOOR1,8,11,7,8,6,8,7,2,7,11,13,15,4,5,3,7,5,2,5,6,5,4,4,8,8,7,3,12,19,….. CLOSE,DOOR1,12,19,3,9,10,6,6,1,9,11,2,3,6,12,15,7,8,2,7,16,10,8,3,11,8,12,..... OPEN,DOOR1,11,12,5,4,6,5,9,14,5,2,4,10,8,7,16,10,3,9,11,8,10,8,5,8,8,7,8,7,..... CLOSE,DOOR1,10,11,16,10,13,19,6,9,3,10,6,6,3,7,11,12,9,4,8,11,6,7,9,9,6,3,..... OPEN,DOOR1,10,11,5,3,3,5,12,5,4,6,7,8,14,10,12,4,6,3,3,2,1,13,15,7,7,16,8,..... CLOSE,DOOR1,6,8,11,15,9,2,2,6,8,5,12,9,8,6,10,11,2,13,12,7,5,2,7,12,13,7,..... OPEN,DOOR1,5,7,5,10,9,7,7,5,4,4,11,11,13,12,3,7,6,7,8,4,9,10,9,10,5,10,8,4,..... CLOSE,DOOR1,13,9,1,5,6,8,7,9,7,11,10,8,11,8,20,10,6,11,7,6,3,8,10,11,10,7,..... : :
  • 16. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・OPEN/CLOSEの分類問題(pycaret.classification) Googleコラボで以下を実行 PyCaret でOPEN/CLOSEを分類ー4 16 # インストール ! pip install pycaret # CSVファイルから読み込む import pandas as pd door1 = pd.read_csv('https://aramoto.sakura.ne.jp/IoT/datas/door1.csv') door1.head() # 前処理(分類問題:pycaret.classification) from pycaret.classification import * exp1 = setup(door1, target = 'action' ) # モデルの比較 compare_models()
  • 17. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・もう少し精度を上げてみよう データ範囲を制限する カラムの型(数値型)を明示する PyCaret でOPEN/CLOSEを分類ー5 17 ignore = []; # 使わない列を指定する ignore.append('data301'); # 最後の列はデータが入っていない for i in range(1, 80+1, 1): # 前0.8秒のデータは使わない ignore.append('data' + str(i)) for i in range(151, 300+1, 1): # 後1.5秒のデータは使わない ignore.append('data' + str(i)) data_label = []; # カラムの型を明示する for i in range(1, 301+1, 1): data_label.append('data' + str(i)) exp1 = setup(door1, target='action', numeric_features=data_label, ignore_features=ignore) compare_models()
  • 18. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・データ範囲を制限&型を明示しただけで Accuracy:0.9018 → 0.9571 ※実行するたびに結果は微妙に異なります PyCaret でOPEN/CLOSEを分類ー6 18 無設定 範囲制限&型明示後
  • 19. ・冷蔵庫のOPEN/CLOSE時の加速度データを記録 四段目に対して、以下を行う 扉をOPEN → 3秒待つ → 扉をCLOSE → 5秒待つ → 最初に戻る ※100回繰り返す Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. PyCaret で一段目/四段目を分類ー1 19 OPEN CLOSE 四段目の最初の5回分
  • 20. ・一段目と四段目の違いを目視 一段目:ピークの時間が短い 四段目:ピークの時間が長い Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. PyCaret で一段目/四段目を分類ー2 20 一段目 四段目 OPEN CLOSE OPEN CLOSE
  • 21. ・一段目と四段目のデータを読み込む 2つのデータをマージ DOOR1/DOOR4をOPENだけで判定 DOOR1/DOOR4をCLOSEだけで判定 前1秒も使った方が精度が高かった #CSVファイルから読み込む import pandas as pd door1 = pd.read_csv('https://aramoto.sakura.ne.jp/IoT/datas/door1.csv') door4 = pd.read_csv('https://aramoto.sakura.ne.jp/IoT/datas/door4.csv') door14 = pd.concat([door1, door4]) # DataFrameを結合 door14 = door14[door14.action == 'OPEN'] #OPENだけにする door14.head() ignore = []; # 使わない列を指定する ignore.append('data301'); # 最後の列はデータが入っていない for i in range(201, 300+1, 1): # 後1.0秒のデータは使わない ignore.append('data' + str(i)) data_label = []; # カラムの型を明示する for i in range(1, 301+1, 1): data_label.append('data' + str(i)) exp1 = setup(door14, target='door', numeric_features=data_label, ignore_features=ignore) compare_models() Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. PyCaret で一段目/四段目を分類ー3 21 一段目 四段目
  • 22. ・判定結果 DOOR1/DOOR4のOPENのAccuracy:0.9429 DOOR1/DOOR4のCLOSEのAccuracy:0.9857 Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. PyCaret で一段目/四段目を分類ー4 22 OPEN CLOSE
  • 23. ・一段目/四段目とOPEN/CLOSEをまとめて分類 Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. PyCaret で一段目/四段目+開閉を分類ー1 23 #CSVファイルから読み込む import pandas as pd door1 = pd.read_csv('https://aramoto.sakura.ne.jp/IoT/datas/door1.csv') door4 = pd.read_csv('https://aramoto.sakura.ne.jp/IoT/datas/door4.csv') door14 = pd.concat([door1, door4]) # DataFrameを結合 door14['actiondoor'] = door14['action'] + door14['door'] # 2つの列を結合 door14.head() ignore = []; # 使わない列を指定する ignore.append('action'); # actiondoorを使用する ignore.append('door'); # actiondoorを使用する ignore.append('data301'); # 最後の列はデータが入っていない for i in range(201, 300+1, 1): # 後1.0秒のデータは使わない ignore.append('data' + str(i)) data_label = []; # カラムの型を明示する for i in range(1, 301+1, 1): data_label.append('data' + str(i)) exp1 = setup(door14, target='actiondoor', numeric_features=data_label, ignore_features=ignore) compare_models() actiondoor の中身 OPENDOOR1 CLOSEDOOR1 OPENDOOR4 CLOSEDOOR4
  • 24. ・判定結果 Accuracy:0.9238 Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. PyCaret で一段目/四段目+開閉を分類ー2 24 actiondoor の中身 OPENDOOR1 CLOSEDOOR1 OPENDOOR4 CLOSEDOOR4
  • 25. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・バッテリーの持ち時間が一番の課題 毎日、複数個所のモバイルバッテリー交換は面倒 しかも、日に日にバッテリーの稼働時間が短くなっていく 1週間は連続して動いて欲しいけど、 5倍(20,000mAh)のモバイルバッテリーは超巨大なため、非現実的 ・一段目/四段目+開閉の判定精度は0.9238 この精度で十分なのかは未定義 CPUパワーが必要なので、『M5StickC Plus』内では無理 加速度データをサーバに送って判定する ・「誰が?」「感情」までは検証できていない 家庭の事情です。すいません 検証用システムver1の課題 25
  • 26. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. これまで、データ収集、蓄積&演算、可視化を実装してきた(赤字は2020年度の成果) 過去の実証実験を思い返して 26 入力 出力 カメラ ・玄関で訪問者を識別 ・ベットで寝てる人、睡眠の深さ ・姿勢検出と物体検出 ・サーモグラフィで高温注意検出 センサ ・音声認識、話者識別 ・冷蔵庫内のプリンを管理 ・BLEタグで置き傘を管理 ・屋内での人の位置を把握 外部データの取り込み ・気象庁防災情報XML ・東京公共交通オープンデータ 統計&AI ・書籍の輪読 ・クラスタリング Webサイト ・データの可視化 量子コンピュータ ・スケジュール最適化 蓄積&演算 大量データ ・RDF/SPARQL ・Amazon S3 Select プロジェクタ ・危険度を投影 BLEタグを使 用
  • 27. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・バッテリーの持ち時間が一番の課題 ・一段目/四段目+開閉の判定精度は0.9238 ・「誰が?」を確実に判定したい ・スリッパだけBLEタグ(忘れ物防止タグ)に変えてみる ボタン電池で1~3年は動く 参考:3年ちょっと前に買ったBLEタグの残バッテリー:13% ・『M5StickC Plus』は常に電源に接続 BLEタグとの距離を近くするため、できるだけ下に付ける ・BLEタグと『M5StickC Plus』の距離で判定 常に全BLEタグのRSSI(Received Signal Strength Indicator)を取得 加速度センサが反応したら、 → 一番RSSIが大きいタグの持ち主が使用した、と判定 残課題:二段目と三段目は加速度センサが反応しない 検証用システムver2 27
  • 28. ・機能概要 電源ON時に、設置場所を選択 無線LANに自動接続、切れていた場合も自動再接続 事前登録したBLEタグのRSSI(Received Signal Strength Indicator)を常に収集 10msecごとに加速度センサを読み取る X,Y, Z軸の変化量(絶対値)のうち、閾値以上の変化量が発生したら、 最もRSSIが大きい(近い)BLEタグの番号をHTTPで送信 通信部分は別スレッド化し、送信データをキューに入れる 通信時に、加速度センサの読み取りが遅れないように BLEタグのRSSI収集は別スレッド化し、グローバル変数でデータ共有 収集時に、加速度センサの読み取りができないので ・Tips 無線LANとBLEを同時に使うと、プログラム領域が足りなくなった 「最大1310720バイトのフラッシュメモリのうち、スケッチが1560510バイト(119%)を使っています。」 OTA(OverThe Air)の無効化で、プログラム領域が1.3MB → 2MB に増える Arduino IDE:「ツール」→「Partition Scheme:」→「No OTA(Large APP)」 Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. 検証用システムver2、実装してみた 28
  • 29. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・RSSI強度で「誰が?」を判定(5回)→ 正解率がとても低い OPEN時:40%正解 CLOSE時:80%正解 動作をみていると、 ビーコンを受信する前に開けて、開けている間にビーコンを受信している そのため、特にOPEN時の判定は、運次第 ・2個のBLEタグ(別メーカー)を同じ場所に置き、ビーコン送出を1時間測定 BLEタグ1:962回(約3.7秒に1回)※一定間隔ではない BLEタグ2:531回(約6.8秒に1回)※一定間隔ではない 検証用システムver2を使ってみたら 29 BLEタグ1 BLEタグ2 最初の5分間 BLEタグ2を 受信していない
  • 30. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・ビーコンの発信間隔が長いほど、誤判定する 移動して、ビーコンを受信する前に冷蔵庫を開けると、誤判定 → 発信間隔を短めに設定する → → 最近買ったBLEタグは変更できなかった → → 発信していない? 受信できていない? ・電源の配線により、設置場所が制限させる → 『M5StickC Plus』とBLEタグである程度は回避できる → → ビーコンの間隔以内で開閉したら、検出できない ・どのくらいの精度が必要か? 今回の機械学習のやり方は、きっと正しくない 冷蔵庫の中身が増減すると、加速度の出方が変わるかも 検証用システムver2の課題 30
  • 31. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・動いたタイミングでBLEタグがビーコンを出して欲しい ・探してみたら、アッサリ発見 『MM-BLEBC5』加速度トリガー搭載BLEビーコン 5,680 https://www.sanwa.co.jp/product/syohin?code=MM-BLEBC5 ・以下のようにシステム構成を変更 BLEタグを『MM-BLEBC5』に変更 加速度検出でビーコンを送信するよう設定 加速度検出:5秒間、200msec周期で出す ・「誰が?」を10回判定 ※BLEタグを3つ使用 OPEN時:100%正解 CLOSE時:100%正解 検証用システムver2.1 31
  • 32. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・各デバイスの配置 『M5StickC Plus』:距離を測りたい地点、詳細な加速度を取りたい場所、電源が取れる所 例:冷蔵庫、扉、テーブル、など BLEタグ:「この部屋にある/ない」が分かればいいもの、更新頻度が分単位でよいもの 例:カサ、カバン、など 加速度トリガーBLEタグ:「動いた」瞬間を捉えたいもの 例:スリッパ、椅子、コップ、など ・感情認識は未着手 ラズパイ(PC)を追加し、詳細な加速度データを受信する 今後、加速度データから感情が推測できるか、検証を行う ※教師データをどうやって集める? 検証用システムver2.1のまとめ 32
  • 33. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・『EB10-B』電池レス 振動発電ビーコン メリット ・電池交換不要 ・「加速度トリガー搭載BLEビーコン」よりも薄い(電池が不要なため) ・2~3歩毎に電波が出る デメリット ・動いていないとビーコンが出ない(探し物には使えないかも) ・「加速度トリガー搭載」よりも高い(約8千円/個) 参考:今回は使えなかったけど 33 https://www.sd.toyonics.co.jp/01_solution/02_ecobeacon/eb10-b.html
  • 34. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・「誰がトイレに行ったか?」の回数と長さをカウントする IoTによる「猫のトイレの回数を記録し、膀胱炎を見つける」の人間版 複数人が居る家だと「誰が?」の判定が必要 人間相手だと「カメラで認識」はプライバシーが問題 NEWS記事: 西川きよし、前立腺がん発見のきっかけは妻 「自分では医者に行くほどではないだろうと…」 https://www.billboard-japan.com/d_news/detail/103956/2 活用案:夜中にトイレへ行った回数を記録 34 受診のきっかけは、ヘレンさんの一言だった。ヘレンさんは当時、夫の頻尿が気になっ ていたという。 「もともと主人は60歳を過ぎた頃から、前立腺肥大症を持っていたので、そんなものか な、と思っていたんですが、夜中のトイレの回数が増えまして。主人が起きると、私もお のずと目が覚める。それがひどくなって、心配で『先生に診てもらおう』と申しましたら、 主人が重い腰を上げて『ほな行こか』となって」と経緯を説明。
  • 35. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・IoTデイバスの実装範囲 『M5StickC Plus』から、以下のデータを空間OSに送信 加速度検出時に、対象のBLEタグのうちで一番近くにあったタグ 近くのBLEタグの加速度とRSSIを中継 ・ラズパイ(PC)の実装範囲 加速度データを受信し、感情を推測して、空間OSに送信 ・空間OSのエージェントに判定ロジックを実装 BLEタグ(=人)の場所を推定+感情 何が起こったかを判定 例:〇は冷蔵庫を開けた、△はトイレに入った、×は玄関を開けた、など 例:〇が機嫌良く起きた、△が夜中にトイレへ2回行った、×が急いで出かけた、など 今後、どう使うかを検討 空間OSとの連携(仮) 35
  • 36. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ・加速度データのとり方を一番悩んだ 「時刻として正確」or「秒以下は正しくない」で、後者を選択 ・『M5StickC Plus』の内蔵バッテリーでテストが楽だった 好きな場所に仮設置してデータを取ってみる、が簡単にできた 「AUTO POWER OFF」(保護機能)は想定外だった ・『M5StickC Plus』で3スレッドがうまく動作した メイン:加速度センサ&LCD表示、task1:キュー受信&HTTP通信、task2:BLEタグのRSSI収集 ただし、ライブラリは対応していないため、同じ機能を別スレッドで使用しないこと 例:画面更新、日時取得、シリアルポート出力 ・加速度トリガー搭載BLEビーコンが便利だった 「動いた」「大体、どの辺に居る」を取り易いが、値段が2~3倍 ・「PyCaretを触ってみる」という目的は達成できた 引き続き、もうちょっと精度アップを頑張ってみる ・「加速度データによる感情認識」は実施できなかった 教師データ収集が課題 教師データ収集時だけ、カメラによる感情認識を併用する? まとめ&感想 36
  • 37. Copyright © 2022 Advanced IT Community to Evaluate, Apply and Drive All Rights Reserved. ハルミン AITC非公式イメージキャラクター http://aitc.jp/ https://www.facebook.com/aitc.jp/ 最新情報はこちらをご参照ください