> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/ja/burokku/blocks/video-processing/motion-detection.md).

# 動体検出

OpenCV の背景差分アルゴリズムを使用して、ビデオストリーム内の動きを検出します。

## このブロックの仕組み

このブロックは、背景差分（具体的には MOG2 アルゴリズム）を使用して、ビデオフレーム内の動きを検出します。このブロックはフレーム間で状態を維持し、背景モデルを構築して動きのパターンを追跡します：

1. **背景モデルを初期化します** - 最初のフレームで、指定された履歴としきい値パラメータを使用して背景差分器を作成します
2. **各フレームを処理します** - 背景差分を適用して、学習済みの背景モデルと異なるピクセルを特定します
3. **ノイズを除去します** - ノイズを除去し、近接した動き領域をまとまりのある輪郭にまとめるために、モルフォロジー演算を適用します
4. **動きの領域を抽出します** - 動きの領域を表す輪郭を見つけ、最小サイズでフィルタリングし、必要に応じて検出ゾーンにクリップします
5. **輪郭を簡略化します** - 検出データを扱いやすくするために、輪郭の複雑さを削減します
6. **出力を生成します** - バウンディングボックス付きのオブジェクト検出予測を作成し、動きの状態を判定し、動きが始まったときにアラームをトリガーし、動きゾーンのポリゴンを提供します

このブロックはフレーム間で動きの状態を追跡します - その **アラーム** 出力は、動きが未検出から検出済みに遷移したときにのみ true になり、動きが初めて現れたときにアクションをトリガーするのに便利です。

## 一般的な使用例

* **セキュリティ監視**: 監視カメラで動きを検出し、活動が検出されたときにアラート、録画、または通知をトリガーします
* **リソース最適化**: 動きが検出されたフレームでのみ、物体検出や分類などの高コストな推論処理を実行して、計算リソースを節約します
* **アクティビティ検出**: エリアを監視して動きを追跡し、在室状況の把握、出入りイベントの特定、または不正アクセスの検出を行います
* **ビデオ解析**: ビデオストリームを分析して動きのパターンを特定し、活動レベルを追跡し、監視エリア内の異常を検出します
* **スマート録画**: 動きが検出されたときにビデオ録画やスナップショットの取得をトリガーし、連続録画に比べて保存容量を削減します
* **ゾーン監視**: 検出ゾーンを使用してフレーム内の特定領域を監視し、動き検出を関連領域に絞りつつ、忙しいが無関係な領域は無視します

## 他のブロックへの接続

このブロックの動き検出出力は、次のものに接続できます：

* **条件ロジックブロック** （例: Continue If）を使用して、動きが検出されたとき、またはアラームがトリガーされたときのみワークフローの手順を実行します
* **物体検出ブロック** 動きのあるフレームでのみ検出モデルを実行し、計算リソースを節約します
* **通知ブロック** （例: Email Notification、Slack Notification）を使用して、動きが検出されたとき、またはアラームがトリガーされたときにアラートを送信します
* **データ保存ブロック** （例: Roboflow Dataset Upload、CSV Formatter）を使用して、動きイベント、タイムスタンプ、検出データをログに記録し、分析に活用します
* **可視化ブロック** 検出された動きを示すフレーム上に、動きゾーン、バウンディングボックス、または注釈を描画します
* **フィルターブロック** 後続の処理に渡す前に、動きの状態に基づいて画像やデータをフィルタリングします

### 型識別子

ステップで次の識別子を使用してください `"type"` フィールド： `roboflow_core/motion_detection@v1` ワークフローにこのブロックをステップとして追加するには。

### プロパティ

| **名前**                      | **型**                   | **説明**                                                                                                                                                                                                                                                                        | 参照 |
| --------------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| `name`                      | `str`                   | このステップの一意の識別子を入力してください。                                                                                                                                                                                                                                                       | ❌  |
| `minimum_contour_area`      | `整数`                    | 動き領域が検出されるための、平方ピクセル単位の最小面積です。このしきい値より小さい輪郭は、ノイズ、小さな影、またはわずかなピクセル変動を無視するために除外されます。値を小さくすると感度は上がりますが、誤検出が増える場合があります（例: 非常に高感度な検出では 100、非常に大きな物体のみでは 500）。デフォルトは 200 平方ピクセルです..                                                                                                 | ✅  |
| `morphological_kernel_size` | `整数`                    | 近接した動き領域をまとめ、ノイズを除去するために使用する、モルフォロジー処理カーネルのピクセルサイズです。値を大きくすると、より離れた動き領域を1つの輪郭にまとめますが、別々の物体までまとめてしまう場合があります。値を小さくすると、より多くの詳細を保持できますが、検出が断片化する可能性があります。カーネルは楕円形を使用します。デフォルトは 3 ピクセルです..                                                                                         | ✅  |
| `のしきい値と比較します`               | `整数`                    | MOG2背景差分アルゴリズムで使用されるマハラノビス距離の二乗のしきい値。モーションへの感度を制御します。小さい値は感度を高め（より小さな変化を検出）、偽陽性が増える可能性があります。大きい値は感度を下げ（重要な変化のみを検出）、微妙な動きを見逃す可能性があります。推奨範囲は8〜32です。デフォルトは16..                                                                                                                   | ✅  |
| `履歴`                        | `整数`                    | 背景モデルの構築に使用する過去フレーム数。背景が変化にどれだけ速く適応するかを制御します。大きい値（例: 50〜100）は、一時的な変化にはあまり影響されない、より安定した背景モデルを作成しますが、恒久的な背景変化への適応は遅くなります。小さい値（例: 10〜20）は、より速い適応を可能にしますが、動いている物体が停止した場合に背景として扱うことがあります。デフォルトは30フレーム..                                                                            | ✅  |
| `detection_zone`            | `Union[List[Any], str]` | フレームの特定領域に動き検出を制限するための、任意のポリゴンゾーンです。動きはこのゾーン内でのみ検出され、外側の活動は無視されます。形式: \[\[x1, y1], \[x2, y2], \[x3, y3], ...]。座標はピクセル単位です。ポリゴンには 3 点を超える点が必要です。リスト、JSON 文字列、または他のブロックのゾーン出力を参照するセレクターとして指定できます。特定の領域（例: 入口、窓、立ち入り制限区域）に焦点を当て、忙しいが無関係な領域を無視するのに便利です。指定しない場合、動きはフレーム全体で検出されます.. | ✅  |
| `suppress_first_detections` | `bool`                  | true の場合、背景モデルが十分なフレーム数（history パラメータで指定）で初期化されるまで動き検出を抑制します。これにより、背景モデルがまだシーンを学習していない初期フレームからの誤検出を防ぎます。false の場合、このブロックはすぐに動きを検出しようとしますが、初期化中は信頼性の低い結果になる可能性があります。デフォルトは true です（ほとんどの用途で推奨）..                                                                               | ✅  |

この **参照** 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します `ワークフロー` 実行時。参照 *バインディング* 詳細は。

### ランタイム互換性

`soft` - ランタイム `hosted_serverless`, `dedicated_deployment`；実行 `リモート`; 入力 `動画` このブロックは、プロセスメモリ内に動画ごとの状態を保持します（video\_metadata.video\_identifier をキーとする）。ステートレスまたは複数レプリカのHTTPランタイムでリモートステップ実行を行うと、連続するリクエストが別々のワーカープロセスによって処理される可能性があるため、呼び出し間で状態がリセットされ、追跡／カウント／集計には意味のない出力になります。安定したフレーム間結果を得るには、永続的な WebRTC セッションでローカルステップ実行を使用してください。

`soft` - 入力 `image` このブロックは、動画または繰り返しフレームのワークフローからの時間的コンテキストに依存します。静止画像／写真では、追跡、比較、集計、可視化に使える意味のある履歴がないため、このブロックの利点はほとんど、またはまったくありません。

### 入力と出力のバインディング

利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が `動体検出` のバージョン `v1` あるか確認してください。

<details>

<summary>入力と出力のバインディング</summary>

* 入力
  * `image` ([*`image`*](/workflows/ja/gaido/developer-guide/kinds/image.md)): 解析対象の入力画像またはビデオフレームです。このブロックはフレームを順次処理して背景モデルを構築します。各フレームは背景モデルを更新し、学習済みの背景パターンに対する動きを検出します。ワークフローの入力や前段のステップから接続できます..
  * `minimum_contour_area` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)): 動き領域が検出されるための、平方ピクセル単位の最小面積です。このしきい値より小さい輪郭は、ノイズ、小さな影、またはわずかなピクセル変動を無視するために除外されます。値を小さくすると感度は上がりますが、誤検出が増える場合があります（例: 非常に高感度な検出では 100、非常に大きな物体のみでは 500）。デフォルトは 200 平方ピクセルです..
  * `morphological_kernel_size` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)): 近接した動き領域をまとめ、ノイズを除去するために使用する、モルフォロジー処理カーネルのピクセルサイズです。値を大きくすると、より離れた動き領域を1つの輪郭にまとめますが、別々の物体までまとめてしまう場合があります。値を小さくすると、より多くの詳細を保持できますが、検出が断片化する可能性があります。カーネルは楕円形を使用します。デフォルトは 3 ピクセルです..
  * `のしきい値と比較します` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)): MOG2背景差分アルゴリズムで使用されるマハラノビス距離の二乗のしきい値。モーションへの感度を制御します。小さい値は感度を高め（より小さな変化を検出）、偽陽性が増える可能性があります。大きい値は感度を下げ（重要な変化のみを検出）、微妙な動きを見逃す可能性があります。推奨範囲は8〜32です。デフォルトは16..
  * `履歴` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)): 背景モデルの構築に使用する過去フレーム数。背景が変化にどれだけ速く適応するかを制御します。大きい値（例: 50〜100）は、一時的な変化にはあまり影響されない、より安定した背景モデルを作成しますが、恒久的な背景変化への適応は遅くなります。小さい値（例: 10〜20）は、より速い適応を可能にしますが、動いている物体が停止した場合に背景として扱うことがあります。デフォルトは30フレーム..
  * `detection_zone` (*Union\[*[*`zone`*](/workflows/ja/gaido/developer-guide/kinds/zone.md)*,* [*`list_of_values`*](/workflows/ja/gaido/developer-guide/kinds/list-of-values.md)*]*): フレームの特定領域に動き検出を制限するための、任意のポリゴンゾーンです。動きはこのゾーン内でのみ検出され、外側の活動は無視されます。形式: \[\[x1, y1], \[x2, y2], \[x3, y3], ...]。座標はピクセル単位です。ポリゴンには 3 点を超える点が必要です。リスト、JSON 文字列、または他のブロックのゾーン出力を参照するセレクターとして指定できます。特定の領域（例: 入口、窓、立ち入り制限区域）に焦点を当て、忙しいが無関係な領域を無視するのに便利です。指定しない場合、動きはフレーム全体で検出されます..
  * `suppress_first_detections` ([*`boolean`*](/workflows/ja/gaido/developer-guide/kinds/boolean.md)): true の場合、背景モデルが十分なフレーム数（history パラメータで指定）で初期化されるまで動き検出を抑制します。これにより、背景モデルがまだシーンを学習していない初期フレームからの誤検出を防ぎます。false の場合、このブロックはすぐに動きを検出しようとしますが、初期化中は信頼性の低い結果になる可能性があります。デフォルトは true です（ほとんどの用途で推奨）..
* 出力
  * `motion` ([`boolean`](/workflows/ja/gaido/developer-guide/kinds/boolean.md)) : ブールフラグ。
  * `アラーム` ([`boolean`](/workflows/ja/gaido/developer-guide/kinds/boolean.md)) : ブールフラグ。
  * `検出` ([`object_detection_prediction`](/workflows/ja/gaido/developer-guide/kinds/object-detection-prediction.md)): 検出されたバウンディングボックスを sv.Detections(...) オブジェクト形式で含む予測。
  * `motion_zones` ([`list_of_values`](/workflows/ja/gaido/developer-guide/kinds/list-of-values.md))：任意の型の値のリスト。

</details>

<details>

<summary>JSON 定義の例</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/motion_detection@v1",
	    "image": "$inputs.image",
	    "minimum_contour_area": 200,
	    "morphological_kernel_size": 3,
	    "threshold": 16,
	    "history": 30,
	    "detection_zone": "<block_does_not_provide_example>",
	    "suppress_first_detections": true
	}
```

</details>
