モーション フィルタリング ガイド

モーション フィルタ モデルを使用すると、長い動画セクションをモーション イベントを含む小さなセグメントにトリミングすることで、計算時間を短縮できます。このモデルでは、モーションの感度、最小イベント長、 ルックバック ウィンドウ、 および クールダウン期間 を設定して、ユースケースに合わせてモーション イベントの出力を調整できます。

モデル パラメータ

モーション フィルタ モデルには、イベント セグメントとモデルがイベント セグメントを返す方法を調整するための 4 つの制御パラメータがあります。

パラメータ 説明 フラグ デフォルト値 使用可能な値
最小イベント長 モーション イベントが終了してからモーション イベントがキャプチャされるまでの最小時間(秒)。 --min-event-length INT 10(秒) 1 ~ 3600
モーション検知(機能)の感度 モデルのモーション イベント フィルタリングの感度。感度が高いほど、モーションに対する応答性が高くなり、より積極的なモーション フィルタリングが行われるため、検出されるモーションが多くなります。 --motion-sensitivity STRING "medium" "high""medium""low"
ルックバック ウィンドウ 検出されたモーション イベントの前にサービスがキャプチャする動画コンテンツの量(秒単位)。 --lookback-length INT 3(秒) 0 ~ 300
クールダウン期間 モーション イベントが終了すると、指定した期間のクールダウン期間 が発生します。クールダウン期間中、モデルはモーション イベントを登録しません。 --cooldown-length INT 300(秒) 0 ~ 3600

動きに対する感度

モーション フィルタを実行する場合、モーションの感度は、モデルが動画ストリームから作成するセグメント動画の数を決定するうえで最も重要な役割を果たします。

モーション検知(機能)の感度が高いほど、モデルの検出はノイズや小さな動きに対してより敏感になります。 この感度設定は、照明が安定していて、小さな動きのあるオブジェクト(遠くから見た人のビューなど)を含む設定におすすめします。

一方、感度が低いと、照明の干渉や小さな動きに対する感度が最も低くなります。この設定は、屋外環境など、照明の干渉が多い状況に適しています。この設定は最も積極的なフィルタリング オプションであるため、小さなオブジェクトの動きは無視されます。

最小イベント長

最小イベント長は、フレーム内のモーション イベントの検出を停止した後、モデルがキャプチャする動画の長さです。デフォルト値は 10 秒ですが、1 秒から 3,600 秒までの時間を指定できます。最小イベント長内に新しいモーションが検出された場合、新しく検出されたモーション イベントの期間に加えて、最小イベント長の新しいカウントダウンの間、新しいモーションが現在の動画セグメントに追加されます。

最小イベント長の図

たとえば、フレーム内に 2 台の車が移動する交差点の動画を考えてみましょう。 最初の車は最初の 3 秒で通過し、2 番目の車は 2 秒後に到着します。最小イベント長を 1 秒に設定すると、モーションを含む動画セグメントが 2 つになります。1 つの動画セグメントには最初の車が含まれ、もう 1 つのセグメントには 2 番目の車が含まれます。ただし、モーション イベントを 3 秒に設定すると、モーションを含む動画セグメントは 1 つだけになります。2 番目の車は、最初の車の 2 秒後にフレームに表示されます。

最小イベント長を設定するときは、動画でモーション イベントが通常発生する頻度と、保存する動画セグメントの数を考慮してください。モーション イベントが頻繁に発生するが、ほとんどのモーション イベントを別々の動画セグメントに保存したい場合は、最小イベント長を短く設定します。モーション イベントの発生頻度が低いが、イベントをグループ化したい場合は、最小イベント長を長く設定して、同じ動画セグメントに複数のイベントをキャプチャします。

ルックバック ウィンドウ

ルックバック ウィンドウは、モーション イベントが検出される直前の時間です。このウィンドウは、モデルがモーション イベントを検出する数秒前にフレーム内で何が起こったかを確認する場合に便利です。ルックバック ウィンドウのデフォルト値は 3 秒ですが、0 ~ 300 秒の範囲で指定できます。

ルックバック ウィンドウを使用すると、移動するオブジェクトの発生元を確認できます。また、ルックバック ウィンドウを使用して、モーション イベントが発生する数秒前にフレーム内に何があったかを確認することもできます。ルックバック ウィンドウは、フレーム内にモーション イベントとして検出されない小さな移動オブジェクトがある場合に役立ちます。ただし、フレーム内の小さな移動オブジェクトが、検出された大きなモーション イベントの原因となっている可能性があります。

クールダウン期間

クールダウン期間は、モーション イベントと最小イベント長がキャプチャされた後に発生する期間です。クールダウン期間中、検出されたモーションはモーション フィルタをトリガーしません。この期間の範囲は 0 秒から 3,600 秒です。デフォルトは 300 秒に設定されています。

クールダウン期間は、ユーザーが計算コストを節約できるように設計されています。フレーム内の動きが予想され、モーションが発生したタイミングを知りたいだけで、その後のことは気にしない場合は、クールダウン期間が便利な設定です。

モデルを使用する

Gemini Enterprise Agent Platform Vision SDK を使用して、モーション フィルタ モデルを使用できます。

vaictl コマンドライン ツールを使用して、applying encoded-motion-filter を指定し、値を渡して制御パラメータを設定することで、モデルを有効にできます。

Gemini Enterprise Agent Platform Vision SDK

モーション フィルタ モデルを使用してリクエストを送信するには、 Gemini Enterprise Agent Platform Vision SDK をインストールする必要があります

次の変数を置き換えます。

  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • LOCATION_ID: 地域 ID。例: us-central1サポートされる地域詳細情報
  • LOCAL_FILE.EXT: ローカル動画ファイルのファイル名。例: my-video.mp4
  • STREAM_ID: クラスタで作成したストリーム ID。 例: input-stream
  • --motion-sensitivity: モーション イベント フィルタリングの感度。 highmediumlow を指定できます。
  • --min-event-length: モーション イベントの最小期間(秒)。 デフォルト値は 10 秒です。使用可能な値: 1-3600
  • --lookback-length: モーション イベントが開始する前のルックバック ウィンドウの期間(秒)。デフォルト値は 3 秒です。使用可能な値: 0-300
  • --cooldown-length: モーション イベントが発生した後のクールダウン期間(秒)。 デフォルト値は 300 秒(5 分)です。使用可能な値: 0-3600
  • --continuous-mode: 連続モードで送信するかどうか。デフォルト値は true です。
  • OUTPUT_DIRECTORY: 出力 動画セグメントの MP4 ファイルを保存するディレクトリ。

コマンド情報を表示する

コマンドとその省略可能なパラメータの詳細を表示するには、次のコマンドを使用します。

vaictl send video-file applying motion-filter -h

モーション フィルタ モデルを使用してローカル ファイル コンテンツをフィルタする

このコマンドは、モデルがモーションを検出した動画セクションのみを送信します。

vaictl -p PROJECT_ID \
      -l LOCATION_ID \
      -c application-cluster-0 \
      --service-endpoint visionai.googleapis.com \
send video-file  --file-path LOCAL_FILE.EXT \
applying motion-filter --motion-sensitivity=medium \
      --min-event-length=10 --lookback-length=3 --cooldown-length=0 \
to streams STREAM_ID --loop

モーション フィルタ モデルを使用してローカル ファイル コンテンツをフィルタし、出力を保存する

このコマンドは、--continuous_mode フラグを使用して、モーション セグメントごとに個別の動画ファイルを出力します。

vaictl -p PROJECT_ID \
      -l LOCATION_ID \
      -c application-cluster-0 \
      --service-endpoint visionai.googleapis.com \
send video-file --file-path LOCAL_FILE.EXT --continuous-mode=false \
applying motion-filter --motion-sensitivity=medium \
      --min-event-length=10 --lookback-length=3 --cooldown-length=0 \
to mp4file --mp4-file-path=OUTPUT_DIRECTORY

ベスト プラクティス

モーション フィルタは、送信中にエンコードされた動画をデコードする際の計算時間を短縮する軽量モデルとして設計されています。フィルタを最適に動作させるには、静止カメラを目的のオブジェクトに直接配置します。フレームの背景に重要でない移動オブジェクトを含めないでください。たとえば、動く木、車の流れ、移動するオブジェクトの影などの背景オブジェクトを含むフレームでは、これらの重要でない被写体の動きが検出されます。

目的のオブジェクトを前景に配置し、常に動いている背景オブジェクトの量をできるだけ減らします。まとめますと

  • 静止カメラを使用します。
  • 常に動いている背景を避けてください。
  • 最小限の動きは検出されません。
  • オブジェクトが十分に大きいことを確認してください。

屋内でのベスト プラクティス

照明が一定で、背景の動きが最小限の屋内環境では、次の屋内での効果的な手法に従ってください。

  • 感度を上げます。フレーム内のオブジェクトは大きくなる傾向があり、フレーム内のノイズも少なくなります。
  • ルックバック ウィンドウを小さくし、イベント長を短くします。屋内の動きは遅く、動きが発生するスペースも限られています。

これらの屋内でのプラクティスに従うことで、モーション フィルタはオブジェクトの動きを最小限の時間で記録できます。

屋外でのベスト プラクティス

屋外環境では、フィルタのパフォーマンスに影響する可能性のある変数が多くなります。たとえば、動く木の影やフレーム内の日光の変化は、モーション フィルタ モデルの検出された動きです。次の条件と、それに対応する最適な方法を検討してください。

状況 1:

歩行者が時折歩く歩道を撮影した動画を考えてみましょう。これらの動きは、カジュアルなウォーキングのように遅い場合もあれば、スケートボードが通過するように速い場合もあります。次のガイダンスを使用してください。

  • 最小ウィンドウ長とルックバック ウィンドウを長い値に設定します。モーションの速度は屋内シナリオよりも範囲が広いため、最小ウィンドウ長とルックバック ウィンドウを長くすると、モデルはモーション イベント全体をキャプチャできます。
  • モーションの感度を高く設定します。屋外環境には、動く木や影など、自然に動くオブジェクトが多く含まれています。人や自転車などの目的のオブジェクトのみに焦点を当てるには、モーションの感度を高く設定して、背景オブジェクトの継続的な検出を回避します。

状況 2:

車が常に走行し、歩行者が時折歩く通りに焦点を当てた別の動画を考えてみましょう。次のガイダンスを使用してください。

  • 感度を中または低に設定する: 感度を低く設定すると、モデルはフレーム内のさまざまなサイズの移動オブジェクトをキャプチャできます。
  • ルックバック ウィンドウと最小イベント長を短い値に設定します。道路上の車やその他の車両は、人や自転車よりもはるかに速い速度で移動します。これらのパラメータに短い値を設定すると、モーションの速度が速く、オブジェクトがフレームにすばやく出入りするという事実が考慮されます。
  • 短いクールダウン時間を設定します。モーションの速度が速いため、最初のオブジェクトの直後に次のオブジェクトがフレームに入る可能性があります。そのため、クールダウン時間を短くすると、この点が考慮されます。

制限事項

モーション フィルタは各フレームのモーション ベクトルに大きく依存するため、注意すべき制限事項があります。

  1. カメラアングル: 動くカメラは常にフレーム内にモーションがあるため、静止カメラを使用します。
  2. オブジェクト サイズ: モーション フィルタで最高のパフォーマンスを実現できるように、主要なオブジェクトがフレーム内で十分に大きく表示されるように被写体をフレーミングします。
  3. 照明: フレーム内の明るさの急激な変化や、影の激しい動きなど、照明の変化により、モデルのパフォーマンスが低下する可能性があります。 ダイナミック レンジが狭いと、動画全体の明るさのトーンが似てしまい、モデルがモーションを解釈する方法に影響し、モデルのパフォーマンスが低下します。
  4. カメラの位置: このモデルは、フレーム内の動きを検出するように設計されています。これには、風で木が動いたり、フレーム外のオブジェクトが影を作ったりするなどの背景の動きが含まれます。フレームの大部分が、これらの動きを生み出す背景オブジェクトを指していると、モデルのパフォーマンスに影響する可能性があります。