設定: 動き検知
について
モーション検出はカメラフィードの動きを監視するため、Agent DVRは実際に何かが起こった時だけ記録およびアラートを発生させることができます。これはディスク領域を節約し、フッテージのレビューを大幅に高速化でき、誰かが玄関に入ってきたり車が外に停まった瞬間に通知することができます。
Agent DVRのモーション検出はアラートの開始とAI処理の実行に重要な役割を果たします。モーション検出時またはアラートが発生した時に記録するようAgent DVRを設定できます。これらのオプションを設定するには、Recordingメニューに移動してMode設定を参照してください。さらに、モーション検出は様々なアクションをアクティブ化するために使用できます。
モーション検出は実際の物体の動きと風、雨、または明るさの変化などの環境要因を区別できないため、時々誤ったアラートが発生する可能性があることに注意することが重要です。このような誤ったアラートを減らすために、Agent DVRをCodeProject.AIと統合して、より高度なアラートフィルタリングを実行することにより、モーション検出の精度を向上させることができます。
モーション検知の設定
モーションゾーンを使用すると、玄関、車道、庭園の小道など重要なエリアでの検出に焦点を当てながら、道路や揺れる木などの誤検知を引き起こす混雑したエリアを無視できます。
Agent DVRのモーション検出器エリア制御は、カメラを編集して右上のメニューからDetectorを選択することでアクセスできます。検出器をセットアップするには、まず監視するゾーンを定義します。Agent DVRは最大9つのゾーンをサポートし、各ゾーンは異なる色で表現され、ゾーンドロップダウンから選択できます。ゾーンを作成するには、ペンツールをクリックしてビデオプレビュー上に描画します。左マウスボタンまたはタッチで描画し、デスクトップでは右マウスボタンで消去します。ニブツールは描画ニブのサイズを調整し、消去ツールは描画されたエリアを削除します。リセットツールは選択されたゾーンでエリア全体を埋めるために使用できます。Agent DVRはこれらの色付きエリアのモーションを監視します。
- Enabled: 検出器の使用を切り替えます。
- Detector: モーション検出器タイプを選択し、ボタンを使用して設定します。各モーション検出器はそれぞれのセクションで説明されています。
- Overlay: ライブビデオにモーション検出オーバーレイを表示または非表示にします。
- Color: モーション検出オーバーレイの色を調整します(すべての検出器に適用されるわけではありません)。
- Blur: ライブビデオで検出されたオブジェクトをピクセル化します。プライバシー保護に有用です。
- Timeout: モーション検出が停止した後、カメラがモーション状態を保つ期間(秒単位、1から60の間、デフォルトは3)を設定します。これにより、高速で繰り返されるイベントを削減できます。
ゾーンの使用
ゾーンはAI検出器(Face/LPR/Object Recognition)とオブジェクト追跡検出器(トリップワイヤー、速度、オブジェクト追跡など)に不可欠です。検出器設定でどのゾーンがアラートをトリガーするかを選択するか、特定のゾーンのアラートに対してActionsを指定できます。
シンプル検出器は、すべてのゾーンにわたって十分なモーションが検出された場合、アラートを有効にします。
MQTT、ONVIF、またはAPI呼び出しを介してトリガーされるモーションなど、ゾーン設定を使用しない検出器タイプもあります。
モーションエリアの使用
モーションエリアは、名前を付けて保存して将来の使用のために設定できるゾーンの設定可能なグループです。現在のモーションゾーンの設定を新しいエリアとして保存するには、エリア の横にある編集アイコンをクリックします。これらのツールを使用して、エリアを追加、編集、削除することができます。
PTZカメラをPTZプリセット位置に移動する際にモーションエリアを適用するには(Agent UIを使用):
- 「carpark」などの特定の名前で新しいモーションゾーンの設定を作成して保存します。
- 新しいアクションを追加します:
If: 「PTZプリセット適用済み」
PTZプリセットコマンドを選択します(例:「プリセット1に移動」)。注:この機能を使用するには、カメラがPTZプリセットをサポートしている必要があります。
タスクを追加するにはクリックします:
Task: 「モーション検知エリアの設定」
新しいエリアを選択します(「carpark」)。
2回OKをクリックします。これで、プリセットを選択するたびに、またはAgentがスケジューリングや他のイベントを通じてプリセットを設定する場合、このモーションエリアが自動的に適用されます。
スケジューラを使用してモーション検出エリアを変更することもできます。この機能により、時間帯、週、または特定の日付に応じて異なるモーションゾーンの設定が可能です。
シンプルな検出器
シンプル
シンプル検出器はカメラの視野内のあらゆる種類の動きを識別します。ごくわずかなCPUを使用します(ONVIFディテクタのみがそれより少なく使用しますが、これはカメラ自体に依存しています)。検出された動きは赤でハイライトされ、シーン内の動きのソースを簡単に特定できます。ほとんどのカメラにとって良いデフォルト選択肢であり、AIサーバーと組み合わせると誤検知をフィルタリングするのに役立ちます。
- 詳細: 追加の設定とオプションについては、以下の詳細セクションを参照してください。
- 感度: 検出をトリガーするために必要な動きのレベルを調整します。最小値と最大値の両方を設定すると検出を調整できます。たとえば、最大値を80に設定すると、大規模な明るさの変化を無視するのに役立ちます。スライダーの下の数字は変化したピクセルの割合を表します。
- ゲイン: 変化したピクセルに乗数を適用して、動き検出の感度を増加または減少させます。
HAARオブジェクト検出器
このメソッドはHAARカスケードとして知られているファイルを使用して、ビデオフィード内のオブジェクトを認識します。ただし、シンプルディテクターとAIサーバーを組み合わせることで、より良い結果が得られる場合があります。
- フレームサイズ: 処理用フレームのサイズを選択します。フレームサイズを小さくするとCPU使用率が低下しますが、精度が低下する場合があります。
- 検出間隔: フレーム処理の頻度をミリ秒単位で設定します。例えば、200はフレームレート5回/秒、1000は1回/秒を意味します。
- 幅の制限と高さの制限: Agent DVRが検出するオブジェクトのサイズ範囲を定義し、フレームの幅または高さのパーセンテージで表現します。これらのスライダーを調整すると、ターゲットとしているオブジェクトのサイズ範囲を示すオーバーレイがビデオに表示されます。
- GPUを使用: 処理にGPUを使用するオプション。GPUがCudaをサポートし、必要なドライバーがインストールされている場合にのみ使用可能です。
- ファイル: オブジェクトディテクターを設定するHAARカスケードファイルを選択します。顔と猫の顔を検出するためのデフォルトファイルが提供されています。
- アラート条件とアラート番号: 検出されたオブジェクトの数に応じて、オブジェクト検出に基づくアラートを生成するようにAgent DVRを設定します。例えば、顔の認識時にアラートをトリガーするには、条件を「より大きい」に、アラート番号を0に設定します。
- アラートゾーン: 監視エリアに含めるモーションゾーンを指定します。
- コーナーをチェック: 詳細については、コーナーのチェックを参照してください。
コーナーチェック
Agentは、検出されたオブジェクトがアラートやアクションをトリガーするかどうかを、ゾーンの設定に基づいて判断するために、洗練された方法を使用します。これは、検出されたオブジェクトの中心点と、オブジェクトの境界ボックスの角まで広がるグリッド(オプションで)をチェックすることによって行われます。この機能を調整するには、中心点から境界ボックスの角までの距離を表すパーセンテージを設定します。基本的に、設定値0は中心点のみをチェックし、100はすべての角までチェックし、50は中心と各角の中間点までチェックします。指定されたゾーン内にオブジェクトが表示されないのに多数のイベント通知を受け取っている場合は、Check Cornersを0に設定することが有益です。
MQTT
あなたは、MQTTサーバーから動き検知を開始する能力を持っています。まず、MQTTを適切に設定していることを確認してください。次に、オブジェクト検知をトリガーするには、単純に検出器構成画面に表示されるコマンドを SERVER/commands チャンネルに渡します。ここで、SERVERはサーバー名です(サーバーメニューに表示され、設定で編集できます)。この統合により、より多様で迅速な動き検知システムが実現され、MQTTサーバーの機能が活用されます。
ONVIF
多くのONVIF対応デバイスは独自のモーション検出機能を備えています。このモードを選択してONVIF対応カメラとペアリングすると(AgentでONVIF接続タイプを使用)、Agent DVRはデバイス自体に依存してモーション検出イベントを提供し、それに基づいてアクションをトリガーします。分析がカメラで行われるため、これはサーバーCPUに対して最も軽い選択肢です。この機能に問題が発生した場合は、ログを確認することをお勧めします(ローカルサーバーの/logs.htmlでアクセス可能)。カメラがONVIF検出をサポートしていない可能性があります。これらの設定の構成の詳細については、Server ONVIF settingsを参照してください。
- Event Timeout: モーション状態をリセットする前に待機する時間(秒単位)。カメラのイベント通知間隔より高く設定してください。
人物検出器
この方法は歩行者を検出するために特別に設計された専用アルゴリズムを採用しています。ただし、シンプルな検出器を使用してアラート フィルタリング用のAIを統合することで、より良い結果が得られる場合があります。
- GPU を使用: 処理に GPU を使用するかどうかを決定します。GPU が Cuda をサポートし、必要なドライバーがインストールされている場合にのみ利用可能です。
- フレーム サイズ: 処理するフレーム サイズを選択します。フレーム サイズが小さいと CPU 負荷が低くなりますが、精度が低下する可能性があります。
- 検出間隔: フレーム処理の頻度をミリ秒単位で設定します。例えば、200 は 1 秒に 5 回、1000 は 1 秒に 1 回です。
- アラート条件とアラート番号: 検出された人数に基づいてアラートを生成するための条件を設定します。例えば、人が検出されたときにアラートをトリガーするには、条件を「より大きい」に設定し、アラート番号フィールドに 0 を入力します。
- アラート ゾーン: 検出エリア内で監視する特定のモーション ゾーンを選択します。
- コーナーの確認: より詳細な設定については、コーナーの確認を参照してください。
- 信頼度: 検出をカウントするために必要な最小信頼度レベル。
Reolinkの翻訳
一部のReolinkカメラは、Agent DVRがポーリングして動き検知またはAIアラート状態を受け取ることができるAPIエンドポイントを提供しています。カメラがこの機能をサポートしている場合、このディテクターを利用できます。カメラがこの機能を持っているかを確認するには、以下のURLにアクセスしてみてください: http://[IP ADDRESS]/api.cgi?cmd=GetMdState&channel=0&rs=Get&user=[USERNAME]&password=[PASSWORD] ([IP ADDRESS]、[USERNAME]、[PASSWORD]をカメラのIPアドレスとログイン認証情報に置き換えてください)。接続が成功すると、エラーページではなくJSON形式のテキストが返されます。
- Interval: Agent DVRがカメラをポーリングしてアラートまたは動き検知データを受け取る頻度を決定します。
- Channel: ポーリングするチャネル。スタンドアロンカメラの場合は0を使用します。NVRではチャネルが異なる場合があります。
- Mode: 「Motion」と「AI」の間で選択します。両方のモードはAgent DVRで動き検知イベントをトリガーし、録画に使用できます(記録モードを「Detect」に設定)。「AI」オプションは、カメラが特定のオブジェクトクラス(dog_cat、face、people、vehicleなど)を識別した場合に動き検知をトリガーします。
- Use SSL: HTTPSでカメラに接続します。
dog_cat、face、people、またはvehicleとしてタグ付けされたオブジェクトが検出された場合に実行するアクションを構成できます。
注: AI機能を有効にするには、カメラのウェブUIでトラッキングをアクティブ化し、最小および最大オブジェクトサイズパラメーターを設定する必要がある場合があります。その後、Agent DVRはReolinkで識別されたオブジェクトを使用して録画にタグ付けします。
Hikvision
Hikvisionカメラは、Agent DVRが動きやAIアラート状態を受け取るために監視できるISAPIエンドポイントを提供します。カメラがこの機能をサポートしている場合、このディテクターを使用できます。カメラのドキュメントを確認して、これがサポートされているかどうかを確認してください。
- SSL を使用: 接続にSSLを使用するかどうか。
- ポート: Agent は SSL を使用するかによってポート 80 または 443 を使用しますが、ここでオーバーライドできます。
- チャンネル: カメラが使用しているチャンネル - カメラの場合は 1 ですが、Hikvision NVR を使用している場合は異なる可能性があります
- 感度: モーションディテクターの 0 (最も低感度) から 100 (最も高感度) の間の値。
これらのカメラは、他のイベント (ラインクロッシング、侵入、徘徊、領域進入など) も検出できます。Agent DVR は各イベントを名前付きカテゴリーにマップし、そのカテゴリー名でタグ付けされた「AI オブジェクト検出」イベントを発生させます。例: Line Crossing Detection、Intrusion Detection、Region Entrance、Region Exit、Loitering、Parking、Unattended Baggage。「AI オブジェクト検出」の下にアクションを追加し、これらのタグを使用してフィルター処理します。カメラが生成するイベントを確認するには、Server Settings でログを Debug に設定し、サーバーメニューのログを確認してください。
速度検知
この方法は、ユーザーが提供するシーン情報を使用して移動物体を追跡し、速度を推定し、物体が速すぎたり遅すぎたりする場合にアラートを生成します。
- Advanced: 詳細な設定については、以下の詳細セクションを参照してください。
- 幅制限と高さ制限: シーン内の物体検出のサイズ範囲を定義し、値はシーンの幅または高さのパーセンテージで表されます。これらのスライダーを調整すると、物体のターゲットサイズ範囲を示すオーバーレイがビデオに表示されます。
- 最小移動距離: 物体が移動中と判断されるために移動する必要がある最小距離を設定します。シーンの幅のパーセンテージに基づきます。
- 最小時間: 物体が追跡されるために移動する必要のある時間を指定します。単位は秒の10分の1です(例:1 = 0.1秒、10 = 1秒)。
- 速度測定: オーバーレイに表示する速度測定単位を選択します。
- 速度制限: 速度検出の下限と上限を決定します。この範囲外の動きはモーション検出イベントをトリガーします。
- 水平および垂直距離: シーン全体の総距離をメートル単位で入力してください。Agent DVRはこの測定値を使用して移動物体の速度を計算します。
- アラートゾーン: 監視エリアに含めるモーションゾーンを選択します。
- コーナーのチェック: 追加設定については、コーナーのチェックを参照してください。
オブジェクトトラッキング
このディテクターは移動物体を識別および追跡し、シーン内での存在期間と移動距離に基づいてモーション検知イベントをトリガーします。
- Advanced: より詳細な設定とオプションについては、以下の詳細セクションを参照してください。
- Width Limits と Height Limits: オブジェクト検出のサイズ範囲を指定します。値はシーンの幅または高さのパーセンテージで表示されます。スライダーを調整すると、対象オブジェクトのサイズ範囲を視覚的に表したものがビデオにオーバーレイされます。
- Minimum Travel: オブジェクトが移動物体として認識されるために移動する必要がある最小距離を、シーンの幅に対して相対的に定義します。
- Minimum Time: オブジェクトが追跡の対象と見なされるために動きを続ける必要がある最小時間を設定します。単位は秒の10分の1です(例:1 = 0.1秒、10 = 1秒)。
- Display Total: ライブビデオフィードにカウンターを追加して、移動物体を追跡します。
- Heat Map: 追跡オブジェクトにラインを追加することで、時間経過に伴う移動パターンを可視化します。
- Alert Zones: 監視エリアに含めるモーションゾーンを選択します。
- Check Corners: 詳細については、Checking Cornersを参照してください。
Agent DVRがシーン内の移動を監視および追跡すると、検出されたオブジェクトの周りに色付きの矩形が表示されます。色の意味は以下の通りです:
- White: オブジェクトが検出されたばかりで、検討中です。
- Yellow: オブジェクトが複数フレームで検出されました。
- Orange: オブジェクトがトラッキング設定で指定された最小時間以上移動しています。
- Red: オブジェクトがモーション検知イベントをトリガーするためのすべてのトラッキング要件を満たしています。
トリップワイヤー
このディテクタは移動物体を認識して追跡し、シーン内の予定義されたトリップワイヤを物体が横切るとモーション検出イベントをトリガします。例えば、誰かがフェンスラインを横切ったり、ゲートから侵入したりしたときにアラートを受け取るために、ラインクロッシング検出に使用します。トリップワイヤを追加するには、ライブビデオ上をクリックしてドラッグするだけです。最大10個のトリップワイヤを作成できます。トリップワイヤを削除するには、そのポイントの1つをクリックしてシーンの外にドラッグします。
- Advanced: より詳細な設定とオプションについては、以下の詳細セクションを参照してください。
- 幅の制限と高さの制限: 検出対象物体のサイズ範囲を設定します。値はシーンの幅または高さのパーセンテージで表示されます。これらのスライダを調整すると、ターゲットサイズ範囲の視覚的表現がビデオにオーバーレイされます。
- 最小移動距離: 物体が移動物体として認識されるために移動する必要がある最小距離を指定します。シーンの幅を基準とした相対値です。
- 最小時間: 物体が追跡されるために動きが必要な最小時間を秒の10分の1で定義します(例:1 = 0.1秒、10 = 1秒)。
- リピートトリガ: これを有効にすると、物体が同じトリップワイヤを複数回トリガできます。デフォルトでは、物体はトリップワイヤを1回だけトリガできます。
- カウント: 物体がトリップワイヤを横切った回数と横切りの方向のカウントを表示します。オプションには左方向、右方向、両方向、または全体の横切りをカウントすることが含まれます。
- アラート: トリップワイヤが指定方向または任意の方向で横切られた場合にアラートを生成するようシステムを設定します。
- アラートゾーン: 監視エリアに含めるモーションゾーンを選択します。
- Check Corners: 詳細については、Checking Cornersを参照してください。
APIを介して
カメラを使用したモーション検出を開始するためにAPI呼び出しを使用する場合、オブジェクトタイプ(ot)とオブジェクトID(oid)を定義する必要があります。たとえば、カメラ(ot=2)でID 1(oid=1;このIDはデバイス編集時に編集コントロールの上部に表示されます)の場合、API呼び出しは次のように構成する必要があります:
http://localhost:8090/command/detect?ot=2&oid=1高度な設定
検出器のデフォルト設定はほとんどのシーンに適していますが、必要に応じてパフォーマンスを向上させるために調整できます。
- Analyzer: 現在利用可能なアナライザーはCNT背景差分で、高精度と低CPU使用率で知られています。
- Frame Size: 処理用のフレームサイズを選択します。フレームが小さいほどCPU使用率が低下し、ノイズ低減により追跡精度が向上する場合があります。
- Tracker: オブジェクト追跡用のOpenCVトラッカーを選択します。オプションは以下の通りです:
- MOSSE: このトラッカーはCPU使用率が最も低いですが、精度は最も低いです。
- CSRT: 最も精度が高いオプションですが、CPU使用率も高くなります(デフォルト)。
- Max Objects: 同時に追跡するオブジェクト数の上限を設定します。オブジェクト数が多いほどCPU使用率が高くなります。
- Detect Interval: モーション検出用のフレーム処理頻度をミリ秒単位で定義します(例: 1秒あたり5回の場合は200、1秒あたり1回の場合は1000)。
- Track Interval: トラッカー処理頻度を設定します。間隔が大きいと高速移動オブジェクトを見失う可能性があります(例: 1秒あたり5回の場合は200、1秒あたり1回の場合は1000)。
- Pixel Stability: ピクセルが安定していると判断されるまでのサンプル数と、ピクセルが同じ色を保つことで獲得できる最大「クレジット」を決定します。これらの設定は効果的な背景差分と動き検出に不可欠です。 詳細情報
- Use History: シーン内の一貫した動きのあるオブジェクトについて学習するために有効にします。必要な場合を除き、通常は無効にしておくことをお勧めします。
- Parallel Process: モーション検出アルゴリズムで並列処理を有効にします。有効のままにしておくことをお勧めします。
- Tracking Timeout: オブジェクトが再度表示されるまで待機する時間(秒単位)を指定してから、追跡を停止します。
- Movement Timeout: 静止オブジェクトが再度動き始めるまで待機する期間(秒単位)を設定してから、追跡を停止します。