カメラ画像から人数推論→結果をLametric TIMEに表示を5分で作ってみました!
#準備するものと今回試した環境
・ノートPC
-Windows 10 バージョン1803
-カメラ搭載パソコン(インカメラのみのPCを使用しました)
・Gravio
-Gravio Studio Version.2.0.2065
-Gravio Server Version.2.0.2153
※先日(2018年12月4日)バージョンアップしました!
・電光表示機器
-LaMetric Time
http://amzn.asia/d/7kSUmNp
#Gravioの設定
Gravioのインストール方法はこちらを御覧ください!
Gravioのインストール方法
##STEP1 センサーの設定
カメラの画像を認識して数値化する、ソフトウェアセンサーを設定します。
###1.エリア・レイヤーを登録する
画面右上の”+”ボタンをクリックし、エリアを作成します。
エリアを作成すると自動的にレイヤーが作成され、SENSING DEVICE TYPEに"BuildAndUSBCamera"を選択します。
###2.レイヤーにデバイスを登録する
一番右のデバイスウィンドウの”⊕”ボタンを選択し、デバイスを追加します。
###3.デバイスの設定
デバイスをダブルクリックし、カメラからのデータ収集について設定します。
今回は、電光表示するLaMetric Timeが通知を受けて表示が終わるまでおおよそ7秒かかるので、カメラの画像収集間隔を10秒で設定します。
画像推論モデルは、”NumberOfPeople-Lite”を設定します。
項目 | 設定値 |
---|---|
キャプチャー形式 | Picture |
キャプチャー間隔 | 10 |
画像推論の実行 | NumberOfPeople-Lite |
画像の保存 | チェックなし |
検出フレームの描画 | チェックなし |
##STEP2 動作の設定
表示する動作を設定します。
###1.動作(アクション)の作成
サーバ管理画面より、アクションボタンをクリックし、アクション管理画面を表示します。
アクション管理画面の右上の”+”をクリックし新しいアクションカードを作成します。
作成したアクションカードをダブルクリックし、アクションを設定します。
###2.アイコン(コンポーネント)を並べて設定する
今回は、"HTTPPost"コンポーネントを使用します。
追加したコンポーネントのプロパティに以下を設定します。
項目 | 設定値 |
---|---|
URL | http://[IPアドレス]:8080/api/v2/device/notifications |
HTTP METHOD | POST |
Content-Type | application/json |
Query String | null |
Body | "{"model":{"frames":[{"text":""+av.Data + "名","icon":"i23532"}]}}" |
Authorization Type | Basic |
Authorization Value | Base64でエンコードした鍵 |
■■【2/26追記】■■■■■■■■■■■■■■■■
Authorization Valueですが、Gravio Serverのバージョンアップに伴いBase64エンコードが不要になりました。
Gravio Server Version:2.1.2301以降では、以下の設定で動作します。
項目 | 設定値 |
---|---|
Authorization Value | dev:[Api key] |
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ |
Bodyに設定する、iconですが、こちらは今回はGravioのロゴをアイコンを設定しています。
アイコン例としては、#3061でマリオや#1589でモンスターボールを表示できます。
また、textの設定では、トリガー実行時のデータを可変数として使用することができます。検知した人数データを使用する場合は、av.Dataを使用します。また、データと定型文を組み合わせる際は、データと定型文を”+”でつなぎます。
LaMetric Timeの設定に必要な情報の取得については、
LaMetric TIMEにAPIを使ってテキストを表示してみた
を参考にしてください。
###3.動作確認
右上に表示されている”▷”をクリックし、動作を実行します。
実行すると"名"と表示されることを確認します。
(センサーからのデータをもとにしていない動作のため、数字が表示されません)
##STEP3 動作タイミングの設定
1人以上検知した際にメッセージを表示するために必要となる動作タイミング(トリガー)の設定をします。
項目 | 設定値 |
---|---|
エリア | 設定したカメラのレイヤー |
レイヤー | 設定したカメラのレイヤー |
アクション名 | 作成したアクションカード |
Interval | 10 |
Classic/Threshold Trigger | Classic Trigger |
NumberOfPeople-Lite | >=1 |
トリガーを有効にすると、人数がLaMetricTimeに表示されます!
#動作画像
動作している様子を撮影してみました!
https://youtu.be/e9Y151GGj9I
#あとがき
HTTPが使えるので、APIを使用して様々な連携が簡単にできます!
これから、コンポーネント化される動作も増えていくので、乞うご期待ください!
#参考
Gravioとは?
[温度センサーのデータをエクセルで簡単に表示]
(https://qiita.com/mikawan/items/3d93543566680afda868)