LoginSignup
3
0

More than 5 years have passed since last update.

BOSCH製IPカメラを利用した人数カウント(Bluemix設定編)

Last updated at Posted at 2017-07-26

BOSCH製IPカメラから人数カウントデータを受け取る

前回の投稿で行ったカメラ側の設定が完了したので、今回はBluemix側の設定を行います。

この内容は多分以下の3本立てになると思います。今回は以下の2番に該当します。

  1. BOSCH製IPカメラでの人数カウントを行う設定
  2. BOSCH製IPカメラから人数カウントデータを受け取る
  3. 人数カウントデータをEagle Eye Networksに保存する

環境、事前確認

前回の投稿の本項目をご参照下さい。

Bluemix側の準備

Bluemix側ではいつもどおり?node.jsとNode-REDを使って実装します。
今回も簡易的にフローをインポートしていきたいと思います。
そのためには事前に「環境、事前確認」の内容を参考に、環境を整えておいてください。

フローのインポート

以下の内容をコピーして、Node-REDにインポートを行って下さい。

[{"id":"3ae66bd6.8003f4","type":"http in","z":"2016f88.2cc7808","name":"18F_Enter","url":"/pcount1","method":"get","swaggerDoc":"","x":140,"y":500,"wires":[["b04e92c8.443a4","54062a58.889494"]]},{"id":"b04e92c8.443a4","type":"debug","z":"2016f88.2cc7808","name":"","active":false,"console":"false","complete":"true","x":330,"y":440,"wires":[]},{"id":"53ffe83f.913468","type":"http response","z":"2016f88.2cc7808","name":"","x":850,"y":500,"wires":[]},{"id":"54062a58.889494","type":"function","z":"2016f88.2cc7808","name":"Set Num&Ent","func":"msg.payload = 1;\nmsg.entrance = \"Enter\";\nmsg.camName = \"BOSCH_DINION_IP_ultra_8000\";\n\nreturn msg;","outputs":1,"noerr":0,"x":360,"y":500,"wires":[["1bc18353.2d640d"]]},{"id":"56fae4a1.22598c","type":"cloudant out","z":"2016f88.2cc7808","name":"","cloudant":"","database":"count","service":"count-cloudantNoSQLDB","payonly":true,"operation":"insert","x":850,"y":560,"wires":[]},{"id":"1bc18353.2d640d","type":"function","z":"2016f88.2cc7808","name":"Set time and count","func":"var dtObj = new Date();\n\nvar datetime = [dtObj.getFullYear() + '-',\n    ( '0' + (dtObj.getMonth() + 1)).slice(-2) + '-',\n    ( '0' + dtObj.getDate() ).slice(-2) + '-',\n    ( '0' + dtObj.getHours()).slice( -2 ) + '.',\n    ( '0' + dtObj.getMinutes()).slice( -2 ) + '.',\n    ( '0' + dtObj.getSeconds()).slice( -2 ) + '.000000'\n    ].join(\"\");\n\nmsg.st = [dtObj.getFullYear() + '-',\n    ( '0' + (dtObj.getMonth() + 1)).slice(-2) + '-',\n    ( '0' + dtObj.getDate() ).slice(-2) + ' ',\n    ( '0' + dtObj.getHours()).slice( -2 ) + ':',\n    ( '0' + dtObj.getMinutes()).slice( -2 ) + ':',\n    ( '0' + dtObj.getSeconds()).slice( -2 ) + '.000'\n    ].join(\"\");\n\nmsg.payload = {\n    timestamp: datetime,\n    count: msg.payload,\n    entrance: msg.entrance,\n    camera: msg.camName\n};\nreturn msg;","outputs":1,"noerr":0,"x":630,"y":500,"wires":[["f8becca5.0c2df","56fae4a1.22598c","53ffe83f.913468","f0eced9f.99cd5"]]},{"id":"f8becca5.0c2df","type":"debug","z":"2016f88.2cc7808","name":"","active":false,"console":"false","complete":"false","x":870,"y":440,"wires":[]},{"id":"ae82aa3d.a64cd8","type":"http in","z":"2016f88.2cc7808","name":"18F_Exit","url":"/pcount2","method":"get","swaggerDoc":"","x":140,"y":560,"wires":[["b04e92c8.443a4","5b7874a0.51f5ec"]]},{"id":"5b7874a0.51f5ec","type":"function","z":"2016f88.2cc7808","name":"Set Num&Ent","func":"msg.payload = 1;\nmsg.entrance = \"Exit\";\nmsg.camName = \"BOSCH_DINION_IP_ultra_8000\";\n\nreturn msg;","outputs":1,"noerr":0,"x":360,"y":560,"wires":[["1bc18353.2d640d"]]}]

インポートが完了すると、以下のようなフローが表示されます。
Flow.png

試してみよう!

カメラ側の設定が完了すれば、あとはテストを行うだけです。
各デバッグノードをオンにして、実際にカメラの前を横切ってみましょう。
LineOver.png

上のスナップショットは便宜的に緑色の線を入れておりますが、ここではこの部分にライン超えの線があると仮定しています。

横切った際にカメラが認識し、Bluemixに情報を転送し、Bluemix側で受け取れれば、以下のようなメッセージが「debug」タブにJSONオブジェクトとして表示されます。

{ timestamp: "2017-07-25-02.43.50.000000", 
count: 1, 
entrance: "Exit", 
camera: "BOSCH_DINION_IP_ultra_8000" }

この情報はちゃんと設定されていれば、Cloudantにも記録されます。Cloudantに記録する際には事前に指定したデータベースを作成しておいて下さい。

Eagle Eyeと連携してみよう

次回、「人数カウントデータをEagle Eye Networksに保存する」では、今回の途中で紹介したCloudantへの保存ではなく、Eagle Eyeに動画データと共にメタデータを保存する方法をご紹介します。
お楽しみに!

ライセンス、著作権等

本スクリプト、ノード構成、エクスポート内容についてはMIT Licenseを適用します。
Eagle Eye Networksの商標およびロゴについてはEagle Eye Networks, Inc.に帰属します。
IBMおよびIBM Bluemix、Node-Redの商標およびロゴについてはInternational Business Machines Corporationに帰属します。
node.jsの商標およびロゴについてはNode.js contributorsに帰属します。
BOSCH及びBOSCHロゴは、、 Robert Bosch GbmHおよびその関連会社(以下、「ボッシュ」)の著作権として、著作権に関する各種国際条約、各国の著作権法およびその他の各種法律(以下、「法律等」)によって保護されています。

3
0
0

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
  3. You can use dark theme
What you can do with signing up
3
0