Edited at

カメラの画像から写っている人数を推論し、その結果をLametric TIMEに表示してみた

カメラ画像から人数推論→結果をLametric TIMEに表示を5分で作ってみました!

image.png


準備するものと今回試した環境

・ノート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

画像の保存
チェックなし

検出フレームの描画
チェックなし

image.png


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でモンスターボールを表示できます。

image.png

また、textの設定では、トリガー実行時のデータを可変数として使用することができます。検知した人数データを使用する場合は、av.Dataを使用します。また、データと定型文を組み合わせる際は、データと定型文を”+”でつなぎます。

LaMetric Timeの設定に必要な情報の取得については、

LaMetric TIMEにAPIを使ってテキストを表示してみた

を参考にしてください。


3.動作確認

右上に表示されている”▷”をクリックし、動作を実行します。

実行すると"名"と表示されることを確認します。

(センサーからのデータをもとにしていない動作のため、数字が表示されません)


STEP3 動作タイミングの設定

1人以上検知した際にメッセージを表示するために必要となる動作タイミング(トリガー)の設定をします。

項目
設定値

エリア
設定したカメラのレイヤー

レイヤー
設定したカメラのレイヤー

アクション名
作成したアクションカード

Interval
10

Classic/Threshold Trigger
Classic Trigger

NumberOfPeople-Lite
>=1

image.png

トリガーを有効にすると、人数がLaMetricTimeに表示されます!


動作画像

動作している様子を撮影してみました!

https://youtu.be/e9Y151GGj9I

電光表示


あとがき

HTTPが使えるので、APIを使用して様々な連携が簡単にできます!

これから、コンポーネント化される動作も増えていくので、乞うご期待ください!


参考

Gravioとは?

温度センサーのデータをエクセルで簡単に表示

Slackとボタンスイッチセンサーで「呼び出しシステム」を作ってみた!

温度データSlack投稿システムを「5分」で作ってみた!

LaMetric TIMEにAPIを使ってテキストを表示してみた