ネットワークカメラ動体検知時のデバイスモニタリング通知およびストレージ録画
本ページでは、Axis社製ネットワークカメラ(Axis-M1065-L、ファームウェバージョン9.10.1、Webバージョン3.21.27.18)で利用できる動体検知アプリケーションAxis Video Motion Detection 4.3-3を用いて、カメラ撮影範囲中の任意の領域での動体検知時に、IoTサービスのデバイスモニタリングへ検知を通知し、検知時の画像をデータストレージへ録画する方法を説明します。
ネットワークカメラ、LTEルータの初期セットアップ
初期セットアップとして、ネットワークカメラのネットワーク/アカウント設定、および、LTEルータのAPN/ネットワーク/アカウント設定があります。本ページでは初期セットアップ手順に関しては割愛させていただきます。
IoTサービスによるリモートアクセス設定
ネットワークカメラへの動体検知設定は、Axis社が提供するネットワークカメラ上のWebインタフェースから行います。ネットワークカメラとLTEルータの初期セットアップが完了していれば、IoTサービスのデバイスコントロール ビューア機能を使用することで、リモートでAxisカメラのWebインタフェースへアクセスすることができます。デバイスコントロール ビューア設定は、以下のページを参照してください。
デバイスコントロール ビューア機能を用いたデバイスへのリモートアクセス
デバイスコントロール画面
ネットワークカメラ動体検知の設定
Axis Video Motion Detection の設定
続いて、動体検知機能の設定を行います。
Webインターフェースに管理者権限でログイン後、アプリタブにある「Video Motion Detection 4.3-3」を選択します。
画面下部プロファイルタブ中のプロファイルのプロパティにある設定(歯車)アイコンを押すと、プロファイルに名前を付けられます。
プロファイルの名前を設定して検知範囲を設定します。
Video Motion Detectionではカメラ画像中に検知範囲を設定し、その設定範囲で動体を検知します。
検知範囲(目玉)アイコンで現在の検知範囲をカメラ画像上に表示します。検知範囲の枠をドラッグすることで、検知範囲を変更できます。
検知範囲(クロス矢印)アイコンで検知範囲をリセットします。
特定の範囲での検知を無効にしたい場合、除外範囲にあるアイコンをクリックして除外範囲枠をカメラ画像上に追加します。
検知範囲の変更と同様、枠をドラッグして除外範囲を設定できます。
タブ内の右側のフィルターメニューで検知条件を設定できます。
- 一時的な物体
検知範囲内での物体滞在時間の上限を設定します。この上限を超過すると物体検知が作動します。今回は5秒に設定します。 - 小さな物体
小動物や昆虫等の検知を無効にしたい場合、これを設定します - 揺らめている物体
植物や旗など動きがある物体の検知を無効にしたい場合、これを設定します
イベントの設定
Video Motion Detectionで検知時、カメラに特定の動作を実行させるため、イベントタブより設定します。
設定する項目は以下となります。
- Action rulesの設定
VIdeo Motin Detection時の動作、検知メッセージ送信、検知時画像送信を設定します - Recipients
メッセージ、検知時画像の送信先を設定します
イベント設定は、システムタブ内のイベントアイコンをクリックしてください。
イベントウィンドウが別ウィンドウで表示されます。
イベントウィンドウのレシピエントタブをクリックします。Add...ボタンを押して、レシピエントを設定します。
今回は、httpプロトコルで画像ファイルを送信し、tcpプロトコルで検知メッセージを送信するため、プロトコル毎にrecipientを設定します
http recipientsの登録
- Name
設定するRecipientの名前をつけます - Type
送信の方法を選択します。ここではHTTPを選択します。Typeを設定することにより、Type固有の設定項目が表示されます。 - URL
以下の送信先アドレスを入力します
http://gw.iot.iij.jp/v1/upload - 以降のLogin Credentialsは設定不要です
TCP recipientsの登録
- Name
設定するRecipientの名前をつけます - Type
送信の方法を選択します。ここではTCPを選択します。Typeを設定することにより、Type固有の設定項目が表示されます。 - Network address:
以下のホスト名を設定します
gw.iot.iij.jp - Port number:
以下のポート番号を設定します
19921 - Test
Testボタンを押下することで事前にTCP接続を確認可能です
イベント(検知後アクション)の設定 ~画像の送信
Video Motion Detectionで設定した検知条件を満たしたときにAxis Cameraが実行する動作を設定します。
今回は、動体検知中に1秒1フレームの頻度で、検知した最初の1画像のみを送信する動作を設定します。
General
- Enable rule
ルールを有効にするので、チェックします。 - Name
任意の名前を入力します。
Condition
- Trigger
Applicationsを選択します。選択後、プルダウンメニューが表示されるので、メニュー中のVMD4(Axis Video Motion Detection 4.3-3)とアプリで設定したプロファイル名を選択します - Start conditon only
使用しないので、チェックしません - Active
Yesにチェックします - Schedule
Always(No Schedule)を選択します
Actions
- Type
Send Imagesを選択します - Select view area
カメラ画像中の任意の範囲の画像を送信する場合は、ビューエリアで登録したビューエリアを選択します - Stream Profile
画像の保存形式を設定します - Image frequency
stream profileで設定したフレームレートから何フレーム取得するか設定します。0を設定すると、フレームレートから最大のフレーム数を取得します - Duration
画像ファイルを生成する間隔を設定します - Limit
生成する画像数の限度を設定します - Recipient
先に設定したhttpのrecipent名を選択します - Create folder
設定しません - Base file name
基本ファイル名を設定します。ここで設定したファイル名に選択したサフィックスを追加した形式が送信されるファイル名になります。
データストレージ上に保存されるファイル名については、データストレージを参照してください。
イベント(検知後アクション)の設定 ~メッセージ(テキスト)の送信
Video Motion Detectionで設定した検知条件を満たしたときにAxis Cameraが実行する動作を設定します。
今回は、動体検知中、1秒間隔でJSON形式のテキストを送る設定をします。
General
- Enable rule
ルールを有効にするので、チェックします。 - Name
任意の名前を入力します。
Condition
- Trigger
Applicationsを選択します。選択後、プルダウンメニューが表示されるので、メニュー中のVMD4(AXIS Video Motion Detection 4.3-3)とアプリで設定したプロファイル名を選択します - Start conditon only
使用しないので、チェックはしません - Active
Yesにチェックします - Schedule
Always(No Schedule)を選択します
Actions
- Type
Send Notificationを選択します - Recipient
先に設定したTCPのrecipent名を選択します - Message
検知時に送信するJSONテキストを登録します。ここでは{"name":"notify","value":5}と登録しました。JSONフォーマットの詳細はデバイスモニタリングを参照してください。 - Send notifications continuously while rule is active
動体検知中にメッセージを送信し続けたい場合、チェックします。また、チェックしたら検知中にメッセージを送信する間隔を設定します
以上でAxisネットワークカメラ上の設定は完了になります。
IoTサービスデバイスモニタリング通知設定、データストレージ録画設定
モニタリング設定とストレージ蓄積設定の有効化
デバイスモニタリング機能とデータストレージ機能を利用するため、デバイス設定画面より各機能を有効化(ON)にします。
デバイスモニタリング検知・通知設定
Video Motion Detectionで動体検知後、送信されたTCPメッセージからIoTサービスデバイスモニタリングの機能を利用してメール通知させます。
デバイスモニタリングでの監視設定、通知設定の詳細は以下をご覧ください。
TCPメッセージが{"name":"notify","value":5}での、監視設定を説明します。このメッセージにより、物体検知時にデバイスモニタリングには5という値が送信されます。
- タイプ
閾値監視 - 演算子
=(等しい) - 値
5.0 - 値の種別
最大値 - 状態名
検知時のメッセージ文を記入します。(例:侵入がありました) - 通知設定
通知設定画面で設定した通知先を選択します
以上で、IoTサービス側の設定は完了です。
通知および録画確認
動体検知の結果は、監視結果一覧とメトリックグラフで参照することができます。メトリックグラフでは、数値「5」を送信している箇所にて動体検知したことを表しています。
通知機能を有効にすることで、以下のようなメッセージをメール/Microsoft Teams/Slackへ通知することが可能です。
また、動体検知時にデータストレージ上に録画された動画・静止画は、6. ビデオビューアを利用することで確認することが可能です。
※画像は実際に動体検知されたものではなくイメージです
以上でAxisネットワークカメラとIoTサービスを用いた動体検知の説明は終了となります。
特別なアプリケーションやサーバを準備することなく、デバイスとIoTサービスのみを用いたネットワークカメラ向けのユースケースとして参考にしていただければと思います。