設定: 動き検知
について
Agentにおけるモーション検出は、アラートの開始とAI処理の支援において重要な役割を果たします。Agentをモーション検出時またはアラートがトリガーされた時に録画するように設定することができます。これらのオプションを設定するには、録画メニューに移動し、モード設定を参照してください。さらに、モーション検出はさまざまなアクションの起動にも使用できます。
モーション検出は、実際の物体の動きと風、雨、明るさの変化などの環境要因との区別がつかないため、時々誤ったアラートを引き起こすことがあります。このような誤ったアラートを減らすためには、より洗練されたアラートフィルタリングのためにAgentをCodeProject.AIと統合することで、モーション検出の精度を向上させることができます。
モーション検知の設定
Agent のモーション検出エリア制御は、カメラの編集と、右上のメニューからDetectorを選択することでアクセスできます。ディテクターの設定を行うには、まず監視するゾーンを定義します。Agent は最大9つのゾーンをサポートしており、それぞれ異なる色で表示され、ゾーンドロップダウンから選択できます。ゾーンを作成するには、ペンツール をクリックしてビデオプレビュー上に描画します。描画には左クリックまたはタッチを使用し、デスクトップでは右クリックで消去します。描画の先端ツール は描画の先端のサイズを調整し、消しゴムツール は描画された領域を削除します。リセットツール は選択したゾーンで全体の領域を塗りつぶすために使用できます。Agent はこれらの色付き領域でモーションを監視します。
- Enabled: ディテクターの使用を切り替えます。
- Detector: モーションディテクターのタイプを選択し、「...」ボタンを使用して設定します。各モーションディテクターの詳細は、それぞれのセクションで説明されています。
- Color: モーション検出のオーバーレイの色を調整します(一部のディテクターには適用されません)。
- Timeout: モーションが検出された後のカメラのモーション状態が維持される期間(秒単位、1から60まで、デフォルトは3)を設定します。
ゾーンの使用
ゾーンはAIディテクター(顔認識/ LPR/ オブジェクト認識)やオブジェクトトラッキングディテクター(トリップワイヤー、速度、オブジェクトトラッキングなど)にとって重要です。ディテクターの設定で、どのゾーンがアラートをトリガーするかを選択したり、特定のゾーンに対してアクションを指定したりできます。
シンプルディテクターは、すべてのゾーンで十分なモーションが検出された場合にアラートを発生させます。
一部のディテクタータイプは、MQTT、ONVIF、またはAPI呼び出しによってトリガーされるモーションの場合、ゾーン設定を使用しません。
モーションエリアの使用
モーションエリアは、名前を付けて保存して将来の使用のために設定できるゾーンの設定可能なグループです。現在のモーションゾーンの設定を新しいエリアとして保存するには、エリア の横にある編集アイコンをクリックします。これらのツールを使用して、エリアを追加、編集、削除することができます。
PTZカメラをPTZプリセット位置に移動する際にモーションエリアを適用するには(Agent UIを使用):
- 「carpark」などの特定の名前で新しいモーションゾーンの設定を作成して保存します。
- 新しいアクションを追加します:
If: 「PTZプリセット適用済み」
PTZプリセットコマンドを選択します(例:「プリセット1に移動」)。注:この機能を使用するには、カメラがPTZプリセットをサポートしている必要があります。
タスクを追加するにはクリックします:
Task: 「モーション検知エリアの設定」
新しいエリアを選択します(「carpark」)。
2回OKをクリックします。これで、プリセットを選択するたびに、またはAgentがスケジューリングや他のイベントを通じてプリセットを設定する場合、このモーションエリアが自動的に適用されます。
スケジューラを使用してモーション検出エリアを変更することもできます。この機能により、時間帯、週、または特定の日付に応じて異なるモーションゾーンの設定が可能です。
シンプルな検出器
シンプル
シンプルな検出器は、カメラの視野内のどんな種類の動きでも特定することに焦点を当てています。これは、ONVIF検出器に次ぐ、最もCPU効率の良いオプションです。検出された動きは赤色で強調表示され、シーン内の動きのソースを簡単に識別することができます。
- 高度な設定: 追加の設定とオプションについては、以下の高度なセクションを参照してください。
- 感度: 検出をトリガーするために必要な動きのレベルを調整します。最小値と最大値の両方を設定することで、検出を細かく調整できます。たとえば、最大値を80に設定すると、大規模な明るさの変化を無視するのに役立ちます。スライダーの下の数字は、変更されたピクセルの割合を表します。
- ゲイン: 変更されたピクセルに乗数を適用して、モーション検出の感度を増減させます。
HAARオブジェクト検出器
このメソッドは、ビデオフィード内のオブジェクトを認識するためにHAARカスケードとして知られるファイルを使用します。ただし、AIサーバーの設定と組み合わせてシンプルなオブジェクト検出器を使用すると、より良い結果が得られる場合があります。
- フレームサイズ:処理のためのフレームのサイズを選択します。小さいフレームはCPU使用率を低減させますが、精度が低くなる場合があります。
- 検出間隔:フレーム処理の頻度をミリ秒単位で設定します。たとえば、200は1秒あたり5回、1000は1秒あたり1回を意味します。
- 幅制限と高さ制限:Agentが検出するオブジェクトのサイズ範囲をフレームの幅または高さの割合で定義します。これらのスライダーを調整すると、ビデオ上にオブジェクトのサイズ範囲を示すオーバーレイが表示されます。
- GPUの使用:GPUを処理に使用するオプションです。GPUがCudaをサポートし、必要なドライバがインストールされている場合にのみ利用できます。
- ファイル:オブジェクト検出器を設定するためのHAARカスケードファイルを選択します。デフォルトのファイルは、顔と猫の顔を検出するために提供されています。
- アラート条件とアラート数:オブジェクト検出に基づいてAgentがアラートを生成するように設定します。たとえば、顔を認識した場合にアラートをトリガーするには、条件を「より多い」とし、アラート数を0に設定します。
- アラートゾーン(v4.4.8.0+):監視エリアに含めるモーションゾーンを指定します。
- コーナーのチェック:詳細については、コーナーチェックを参照してください。
コーナーチェック
Agentは、検出されたオブジェクトがアラートやアクションをトリガーするかどうかを、ゾーンの設定に基づいて判断するために、洗練された方法を使用します。これは、検出されたオブジェクトの中心点と、オブジェクトの境界ボックスの角まで広がるグリッド(オプションで)をチェックすることによって行われます。この機能を調整するには、中心点から境界ボックスの角までの距離を表すパーセンテージを設定します。基本的に、設定値0は中心点のみをチェックし、100はすべての角までチェックし、50は中心と各角の中間点までチェックします。指定されたゾーン内にオブジェクトが表示されないのに多数のイベント通知を受け取っている場合は、Check Cornersを0に設定することが有益です。
MQTT
あなたは、MQTTサーバーから動き検知を開始する能力を持っています。まず、MQTTを適切に設定していることを確認してください。次に、オブジェクト検知をトリガーするには、単純に検出器構成画面に表示されるコマンドを SERVER/commands チャンネルに渡します。ここで、SERVERはサーバー名です(サーバーメニューに表示され、設定で編集できます)。この統合により、より多様で迅速な動き検知システムが実現され、MQTTサーバーの機能が活用されます。
ONVIF
多くのONVIF互換デバイスには、独自の動き検知機能が備わっています。このモードを選択し、ONVIF対応のカメラと組み合わせると(AgentでONVIF接続タイプを使用する)、Agentはデバイス自体に動き検知イベントを提供し、それに基づいてアクションをトリガーします。この機能に問題が発生した場合は、ログ(ローカルサーバーの/logs.htmlでアクセス可能)を確認することをお勧めします。カメラがONVIF検知をサポートしていない可能性があるためです。これらの設定の詳細については、「サーバーのONVIF設定」を参照してください。
人物検出器
このメソッドは、歩行者を検出するために特別に設計された専用のアルゴリズムを使用します。ただし、シンプルなオブジェクト検出器を使用し、Deepstack AIをアラートフィルタリングに統合すると、より良い結果が得られる場合があります。
- GPUの使用: 処理にGPUを使用するかどうかを決定します。GPUがCudaをサポートし、必要なドライバがインストールされている場合にのみ利用可能です。
- フレームサイズ: 処理のためのフレームサイズを選択します。小さいフレームはCPUの負荷が少ないですが、より正確な結果が得られない場合があります。
- 検出間隔: フレーム処理の頻度をミリ秒単位で設定します。たとえば、200は1秒あたり5回、1000は1秒あたり1回を表します。
- アラート条件とアラート数: 検出されたオブジェクトの数に基づいてアラートを生成するための基準を設定します。例えば、顔を認識してアラートをトリガーするには、条件を「より多い」とし、アラート数フィールドに0を入力します。
- アラートゾーン(v4.4.8.0+): 検出エリア内で監視する特定のモーションゾーンを選択します。
- コーナーのチェック: より詳細な設定については、コーナーのチェックを参照してください。
Reolinkの翻訳
一部のReolinkカメラは、Agentがポーリングしてモーションや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がアラートやモーションデータを取得する頻度を決定します。
- Mode(モード): 'Motion'と'AI'の間で選択します。両方のモードは、Agentでモーションディテクターイベントをトリガーし、録画に使用できます(録画モードをDetectに設定します)。 'AI'オプションは、カメラが特定のオブジェクトクラス(例:dog_cat、face、people、vehicle)を識別した場合にモーション検出をトリガーします。
バージョン4.6.6.0から、dog_cat、face、people、またはvehicleとしてタグ付けされたオブジェクトが検出された場合にタスクを実行するアクションを構成できます。
注意:AI機能を有効にするには、カメラのWeb UIでトラッキングを有効にし、最小および最大オブジェクトサイズパラメータを設定する必要があるかもしれません。その後、AgentはReolinkによって識別されたオブジェクトで録画をタグ付けします。
速度検知
このメソッドは、提供されたシーン情報を使用して移動オブジェクトを追跡し、その速度を推定し、オブジェクトが速すぎるか遅すぎる場合にアラートを生成します。
- 詳細設定: より詳細な設定については、以下の詳細セクションを参照してください。
- 幅制限と高さ制限: シーン内のオブジェクト検出のサイズ範囲をパーセンテージで定義します。これらのスライダーを調整すると、オブジェクトの目標サイズ範囲を示すオーバーレイがビデオに表示されます。
- 最小移動距離: オブジェクトが動いているとみなすための最小距離を、シーンの幅のパーセンテージで設定します。
- 最小時間: 追跡するためにオブジェクトが動いている必要がある時間の長さを、1/10秒単位で指定します(例: 1 = 0.1秒、10 = 1秒)。
- 速度の計測: オーバーレイの速度計測の単位を選択します。
- 速度制限: 速度検出の下限と上限を決定します。この範囲外の動きは、モーション検出イベントをトリガーします。
- 水平距離と垂直距離: シーン全体の距離をメートル単位で入力します。Agentは移動オブジェクトの速度を計算するためにこの測定値を使用します。
- アラートゾーン(v4.4.8.0+): 監視エリアに含まれるモーションゾーンを選択します。
- コーナーのチェック: 追加の設定については、コーナーチェックを参照してください。
オブジェクトトラッキング
この検出器は、移動物体を識別し追跡し、シーン内での存在時間と移動距離に基づいてモーション検出イベントをトリガーします。
- 高度な設定: より詳細な設定とオプションについては、以下の高度なセクションを参照してください。
- 幅制限と高さ制限: オブジェクト検出のサイズ範囲をパーセント単位で指定します。これらのスライダーを調整すると、ビデオ上に対象オブジェクトのサイズ範囲の視覚的な表現が表示されます。
- 最小移動距離: オブジェクトが移動物体として認識されるために移動する必要のある最小距離を、シーンの幅に対して相対的に定義します。
- 最小時間: 追跡されるためにオブジェクトが運動している必要のある最小時間を、0.1秒単位で設定します(例: 1 = 0.1秒、10 = 1秒)。
- 合計表示: 移動物体の追跡を把握するために、ライブビデオフィードにカウンターを追加します。
- ヒートマップ: 追跡されたオブジェクトに線を追加することで、時間の経過に伴う移動パターンを視覚化します。
- アラートゾーン(v4.4.8.0+): 監視エリアに含めるべきモーションゾーンを選択します。
- コーナーチェック: 追加情報については、コーナーチェックを参照してください。
Agentはシーン内の動きを監視し追跡する際、検出されたオブジェクトの周りに色付きの四角形を表示します。色の意味は以下の通りです:
- 白: オブジェクトが検出され、検討中です。
- 黄色: オブジェクトが複数のフレームで検出されました。
- オレンジ: オブジェクトが追跡設定で指定された最小時間以上移動しました。
- 赤: オブジェクトがすべての追跡要件を満たし、モーション検出イベントをトリガーしました。
トリップワイヤー
この検出器は、動くオブジェクトを認識し、シーン内の事前定義されたトリップワイヤーを越えると、モーション検出イベントをトリガーします。トリップワイヤーを追加するには、ライブビデオ上でクリックしてドラッグするだけです。必要に応じて複数のトリップワイヤーを作成できます。トリップワイヤーを削除するには、そのポイントのいずれかをシーン外にドラッグしてください。
- 詳細設定: より詳細な設定とオプションについては、以下の詳細セクションを参照してください。
- 幅制限と高さ制限: 検出されるオブジェクトのサイズ範囲を、シーンの幅または高さの割合として設定します。これらのスライダーを調整すると、ビデオ上に対象のサイズ範囲の視覚的な表示が重ねられます。
- 最小移動距離: オブジェクトが動くオブジェクトとして認識されるために移動する必要のある最小距離を、シーンの幅に対して相対的に指定します。
- 最小時間: 追跡されるためにオブジェクトが動作する必要のある最小時間を、0.1秒単位で定義します(例:1 = 0.1秒、10 = 1秒)。
- トリガーの繰り返し: オブジェクトが同じトリップワイヤーを複数回トリガーできるようにするには、これを有効にします。デフォルトでは、オブジェクトはトリップワイヤーを1回しかトリガーできません。
- カウント: オブジェクトがトリップワイヤーを越えた回数と、越えた方向とともにカウントを表示します。左、右、両方、または合計の越え回数をカウントするなどのオプションがあります。
- アラート: システムを設定して、トリップワイヤーが指定された方向または任意の方向で越えられた場合にアラートを生成します。
- アラートゾーン(v4.4.8.0+): 監視エリアに含まれるモーションゾーンを選択します。
- コーナーのチェック: 追加情報については、コーナーチェックを参照してください。
APIを介して
カメラのモーション検出を開始するには、APIコールを使用して、オブジェクトタイプ(ot)とオブジェクトID(oid)を指定する必要があります。たとえば、カメラ(ot=2)のIDが1である場合(このIDはデバイスの編集時に編集コントロールの上部に表示されます)、APIコールは次のようにフォーマットされます:http://localhost:8090/command/detect?ot=2&oid=1
高度な設定
ディテクターのデフォルト設定は、一般的にほとんどのシーンに適していますが、必要に応じてパフォーマンスを向上させるために微調整することもできます。
- アナライザー: 現在利用可能なアナライザーは、高い精度と低いCPU使用率で知られるCNTバックグラウンドサブトラクターです。
- フレームサイズ: 処理のためのフレームサイズを選択します。小さいフレームはCPU使用率を減らすことができますが、精度が低下する可能性があります。
- トラッカー: オブジェクトトラッキングのためにOpenCVトラッカーを選択します。オプションには以下があります:
- Mosse: このトラッカーは最も低いCPU使用率を提供しますが、最も精度が低いです(デフォルト)。
- KCF: Mosseよりも精度が高く、わずかにCPUを使用します。
- CSRT: 最も精度の高いオプションですが、最もCPUを使用します。厳しいトラッキング状況に最適です。
- 最大オブジェクト数: 同時に追跡するオブジェクトの数に制限を設定します。オブジェクトが増えるほど、CPU使用率が上がります。
- 検出間隔: モーション検出のためのフレーム処理の頻度をミリ秒単位で定義します(例:5回/秒の場合は200、1回/秒の場合は1000)。
- トラッキング間隔: トラッカーの処理頻度を設定します。高い間隔では、高速移動するオブジェクトが見失われる可能性があります(例:5回/秒の場合は200、1回/秒の場合は1000)。
- ピクセルの安定性: ピクセルが安定と見なされるためのサンプル数と、ピクセルが同じ色であることに対する最大の「クレジット」を決定します。これらの設定は、効果的な背景差分と動き検出に重要です。 詳細
- 履歴の使用: シーン内の一貫して移動するオブジェクトについて学習するために、これを有効にします。通常は必要ない限り、無効にしておくことが推奨されます。
- 並列処理: モーション検出アルゴリズムで並列処理を有効にします。これを有効にしておくことがおすすめです。
- トラッキングタイムアウト: オブジェクトが再び現れるまでの待機時間(秒単位)を指定します。
- 動きのタイムアウト: 静止しているオブジェクトが再び動くまでの待機時間(秒単位)を設定します。