> 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/background-subtraction.md).

# 背景差分

OpenCVの背景差分アルゴリズムを使用して、ビデオストリームからモーションマスクを作成します。

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

このブロックは背景差分（特にMOG2アルゴリズム）を使用して、学習済みの背景モデルと異なるピクセルを特定し、モーション領域を強調するマスク画像を出力します。このブロックはフレーム間で状態を保持し、背景モデルを構築・更新します:

1. **背景モデルを初期化します** - 最初のフレームで、指定された履歴としきい値パラメータを使用して背景差分器を作成します
2. **各フレームを処理します** - 背景差分を適用して、学習済みの背景モデルと異なるピクセルを特定します
3. **モーションマスクを作成します** - 白いピクセルがモーション領域、黒いピクセルが背景を表す前景マスクを生成します
4. **画像形式に変換します** - 1チャンネルのマスクを、ワークフローで必要な3チャンネルの画像形式に変換します
5. **マスク画像を返します** - モーションマスクを、可視化したりさらに処理したりできる画像として出力します

出力されるマスク画像は、黒い背景に対して白いピクセルとしてモーション領域を示すため、フレーム内のどこで動きが起きたかを簡単に可視化できます。このマスクは、さらなる分析、可視化、または他の処理ステップへの入力として使用できます。

## 一般的な使用例

* **モーションの可視化**: 監視、分析、またはデバッグのために、ビデオストリーム内のどこで動きが発生しているかを確認するための視覚的なモーションマスクを作成します
* **モーションモデルの前処理**: マスクデータを必要とするモーションベースのモデルの学習や推論の入力データとしてモーションマスクを生成します
* **モーション領域の抽出**: さらなる処理、分析、または特徴抽出のために、動画フレームからモーション領域を抽出します
* **動画解析**: マスク画像を処理して、動きの傾向、活動レベル、またはモーション特性を特定することで、モーションパターンを分析します
* **背景除去**: モーションマスクを使用して、セグメンテーションや分離タスクのために前景（動いている）オブジェクトを静的な背景から分離します
* **モーションベースのフィルタリング**: モーションが発生している領域に処理を絞り込んだり集中させたりするためにモーションマスクを使用し、静的な背景領域は無視します

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

このブロックのモーションマスク画像は次に接続できます:

* **可視化ブロック** 元画像にモーションマスクを重ねて表示したり、単独の可視化として表示したりするため
* **物体検出ブロック** マスクで識別されたモーション領域のみに検出モデルを実行するため
* **画像処理ブロック** モーションマスク画像に追加の変換、フィルタ、または分析を適用するため
* **データ保存ブロック** （例: Local File Sink、Roboflow Dataset Upload）トレーニングデータ、分析、またはドキュメント用にモーションマスクを保存するため
* **条件ロジックブロック** マスク画像内のモーションの有無に基づいてワークフローの実行を振り分けるため
* **モデル学習ブロック** モーションベースのモデルやセグメンテーションタスクの学習データとしてモーションマスクを使用するため

### タイプ識別子

step の `"type"` フィールドに次の識別子を使用します: `roboflow_core/background_subtraction@v1` をワークフロー内のステップとして追加します。

### プロパティ

| **名前**        | **型** | **説明**                                                                                                                                                                                             | 参照 |
| ------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| `name`        | `str` | このステップの一意の識別子を入力してください。                                                                                                                                                                            | ❌  |
| `のしきい値と比較します` | `整数`  | MOG2背景差分アルゴリズムで使用されるマハラノビス距離の二乗のしきい値。モーションへの感度を制御します。小さい値は感度を高め（より小さな変化を検出）、偽陽性が増える可能性があります。大きい値は感度を下げ（重要な変化のみを検出）、微妙な動きを見逃す可能性があります。推奨範囲は8〜32です。デフォルトは16..                                        | ✅  |
| `履歴`          | `整数`  | 背景モデルの構築に使用する過去フレーム数。背景が変化にどれだけ速く適応するかを制御します。大きい値（例: 50〜100）は、一時的な変化にはあまり影響されない、より安定した背景モデルを作成しますが、恒久的な背景変化への適応は遅くなります。小さい値（例: 10〜20）は、より速い適応を可能にしますが、動いている物体が停止した場合に背景として扱うことがあります。デフォルトは30フレーム.. | ✅  |

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

### 実行時の互換性

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

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

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

利用可能な接続は、そのバインディング種別によって決まります。Rate Limiter `背景差分` の `v1` が持つバインディング種別を確認してください。

<details>

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

* input
  * `image` ([*`image`*](/workflows/ja/gaido/developer-guide/kinds/image.md)): 背景差分を処理するための入力画像または動画フレームです。このブロックはフレームを順次処理して背景モデルを構築します - 各フレームで背景モデルが更新され、学習済みの背景と異なる領域を示すモーションマスクが作成されます。ワークフローの入力または前のステップから接続できます..
  * `のしきい値と比較します` ([*`整数`*](/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フレーム..
* output
  * `image` ([`image`](/workflows/ja/gaido/developer-guide/kinds/image.md)): ワークフロー内の画像。

</details>

<details>

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

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/background_subtraction@v1",
	    "image": "$inputs.image",
	    "threshold": 16,
	    "history": 30
	}
```

</details>
