search
LoginSignup
3

More than 3 years have passed since last update.

posted at

updated 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を使ってテキストを表示してみた

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
3