背伸びしないLT:Node-RED Con登壇編
Node-RED Con登壇してみたい
幼稚園課題解決ネタで企画を考えたい。
「先生忙しそうだったから話しかけられなかった」という4歳の女の子の一言が忘れられない。
集団で見た時にやはり動いているほど気になってしまう。
それは仕方がないことだが、実が本当に気にしないといけないのは静かに待っている子。
子どものちいさな声を落としたくない。
先生の周りにはいつもこどもたちがたくさん集まってくる。
容赦なく話しかけてくる子は他の子を気にせず話しかけにくる。
先生の近くにはきたものの、他の子を気にして話すことを諦めてしまう子がいる。
ある日、その子に後で声かけようと思っていたけど目もする暇もなく、聖徳太子状態。
結局その子はそのまま帰ってしまい、私もフォローすることを忘れていた。
翌日保護者から何気なく言われた言葉「先生忙しそうだったから話しかけられなかった。」と言ってたので今日どこか空いてる時間で良いので話聞いてもらえますか?」
とてもその子に申し訳ないことをしたと思った。
それから忙しくてもメモは取るようにして防いでいたけど聖徳太子の時はきっと話したくても話せなかった子はいたと思う。
すぐその場から離れる子もいたので、そのこのフォローができるように通知して欲しいと思った。
子どもの小さなケアをしたい。
静かな子ほど気づいてあげないといけない。
これを作れたらいいな。
どういう技術使う?
誰がきたかは顔の判別は難しいので、ちょっと違ったアプローチにしてみる。
ボタンを用意しておいて、後で話したい気持ちとして押してもらうのはありかな。
誰がきてたかわかるようにして、通知としてログに残していきたい。
まずはその機能を作りたい。
画像認識で名札の名前を読んで、ボタンを押したら、LINEに通知がいく
(保育士さんはLINEに慣れているので、他アプリだと導入に抵抗感がある)
後で話したいボタン。
きっとその場じゃないと子どもは忘れることもあると思うけど話したいとおもったことは嘘じゃないからコンタクト取れるきっかけになる。
子どもたちは毎日同じ服じゃないからモデル化は難しそう。
だけど、人の判別ができるなら試しにぬいぐるみでやってみてもいいかも。
ティーチャブルでできそう。
実運用では個人情報とか気になるけどね。まあ今の段階ではいいのさ。
人が来たら画像認識で容姿を判別をして、後で話したいボタンを押したら、LINEに判別した子の名前の通知がいくがやりたい。
教諭時代に子どもから言われた
「先生忙しそうだったから話しかけられなかった」
という言葉が強く心に残っている。
子どもの小さな声をできるだけ落とさない仕組みを作りたい。
保育中はたくさんの子が一度に話に来て「聖徳太子状態」になりがち。
空気を読んでしまう子は、話すのを諦めてその場から離れてしまうことがある。
先生は目の前の子への対応に必死で、その瞬間にメモも取れない。
「あとでお話しようねボタン」を置いて、子ども自身が意思表示できるようにしたい。
ボタンを押した子を判別して、LINEで「誰が話したがっているか」を通知する。
通知があることで、他の先生が空いていれば柔軟に対応できる。
これにより、子ども一人ひとりへの丁寧なケアが実現できる。
obnizでやりたい、そして一旦ミニマムで進めていきたい。
子どもの手だとこれくらいのサイズが押しやすそう
名札認識だと、文字をモデルとして認識
おなじクラスのバッチだから違いが出ない
obniz
最小限の機能で作っていこう
- スイッチボタンで実装する
- ボタンを赤色と青色で分けて実装する
赤だと嬉しい話、青だと悲しい話とかだと緊急性もわかる - ラズパイで、AIカメラ実装をする
買うもの
- ボタン赤青:大きい方がいいよねボタンは
obnizをつかうからwi-fiだからできることをいれたいな〜
ラズパイは画像認識できる「AIカメラでやるのが本来やりたいこと」
obniz:パーツライブラリなければ
ちょっとだけ実際にもラズパイ4
登壇きまったよ
基調講演(トップバッター)になりました〜〜きゃ〜緊張する!
のびすけさんに記事教えてもらった!
MediaPipeつかってみよう!ライブラリもあるらしい!
それも加味してきっと教えてくれたのだ!うれしい!プロ
参考:
ざっきーさんととよたさんも触ってる。さすが!
触ってみよう〜!
これとよたさんがいいかもって言ってた
公式ページ:https://flows.nodered.org/node/node-red-contrib-mediapipe
ライブラリ:https://flows.nodered.org/node/node-red-contrib-mediapipe/scorecard
MediaPipe
Googleが開発した 機械学習ライブラリ
「人の顔」「手」「姿勢」などをリアルタイムに検出できる
Webカメラやスマホカメラを入力に使える
Python、JavaScript、C++ などで利用可能
node-red-contrib-motion-pose のポイント
MediaPipe (BlazePose / Hands) を内部で使ってる
Node-REDに以下のノードを追加できる:
pose-detect-webcam → Webカメラで全身ポーズ検出
hand-detect-webcam → Webカメラで手のポーズ検出
pose-find / hand-find → 登録済みのポーズと類似度を判定
monitor → 検出結果をブラウザで可視化
必要条件:
Node.js v14.17.0
Node-RED v2.0.6 以上
子どもをどう検知しようか問題
保育のリアル
まずは保育士は子どもたちと話す時は同じ目線で話す→その場面で見られなくなる(立ってる時はチラッと見れる)横から見たりする
毎回話しかけられる場所固定されていない
子供たちの容姿(髪型も)同じではない
バッチは文字で判断するしかない
ガヤで集まってくる時がある
(なんだろう?という不思議な気持ちで見てから、自分で解決して立ち去る時もある)
→解決方型も一緒に認識されてしまいそう
話したいときは先生に近づく
立っている時は目線が上になるので人が増える減るくらいはわかるけど、同じ目線になった時にその子おt向かっているので視点が見えなくなる(発表の時視点の比較をしたい)
客観的に保育士がしゃがんだら、検知して、その後集まってきた子ども誰がいるかみたい()
-
大人とこどものサイズの違い
- 保育士は同じ目線で話すので、同じサイズになってしまう
- 骨格とか曲げられるのかな?骨格の数とかで検知できたらいいな
-
とある物体(例:机の高さ)より下に顔がある → 子どもとみなす。
- これいいかもね〜ただ対象物毎回違うのと、毎回話しかけられる場所固定されていないから実用的ではない
-
保育園や幼稚園なら「園児は制服やスモック、大人は私服」という違い
- 夏暑いとスモック脱いだり、日によってなので私服と制服分けは厳しい
- 合わせてバッチとかもきびしい(クラス担任は子どもと一緒のバッチつける)
-
子どもが「先生の方を向いて立っている」状態を検知
-
これはできたらいいな〜そこから数秒立ち止まって離脱するとか
-
先生のそばに寄ってくる
-
以下はガヤな時も来る
走ってくる / トコトコ歩いて近づく
他の先生や子の近くじゃなく、先生の近くにポジション取る
- 立ち止まって待つ
数秒間その場に立っている
手をモジモジしたり、体を揺らしたりする
勇気が出ずに「声を出せない」ことも多い
- 視線で訴える
先生の顔をじーっと見上げる
先生が忙しそうだと、目線を合わせては外す → 諦めの合図にも
- ちょっかい動作
先生の服の裾を軽く引っ張る
袖や手にちょんと触れる
声を出さずに「気づいて!」というサイン
- 順番待ち行動
他の子が話している横に並ぶ
小声で「先生…」とだけ言って待っている
順番が来るまで視線を泳がせたり、ソワソワ
- 諦める瞬間
体をクルッと反転して去っていく
顔をそらして遊びに戻る
「呼びかけ動作」なしでスッと離れる
- 話したい子 → 視線が先生に集中
- 見に来た子 → 視線が先生以外(別の子やトラブル現場)に分散
- 話している先生と子どもを交互に見ていることが多い
先生の顔を伺っていることが多いので、先生を見る時間が10秒以上経過したらという検知にする
5秒だと検知数が多くなってしまう
うーん話したい時って体向くかな。。。。
先生の顔を10秒以上見ている検知にしよう
立ち位置はどうしようか?
先生と子どもを正面から同時に映す
先生の後ろにカメラを置く