> 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/logic-and-branching/overlap-filter.md).

# 重なりフィルター

検出予測をフィルタリングし、指定したクラスのインスタンスと重なるオブジェクトのみを保持します。これにより、空間的な関係に基づくフィルタリングが可能になり、他のオブジェクトに対する位置関係を持つオブジェクト（例: 自転車に乗った人、パレット上のアイテム、コンテナ内のオブジェクト）を特定できます。

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

このブロックは、指定した重なりクラスとの空間的な重なり関係に基づいて検出結果をフィルタリングします。このブロックは次の処理を行います:

1. 検出予測（オブジェクト検出またはインスタンスセグメンテーション）と、重なりクラス名を入力として受け取ります
2. 検出結果を2つのグループに分けます:
   * **重なりクラスの検出**: 指定された `overlap_class_name` （例: "bicycle", "pallet", "car"）
   * **その他の検出**: 重なりクラスと重なる可能性のある、残りすべてのオブジェクト
3. 各重なりクラスの検出について、次の2つの重なりモードのいずれかを使用して、空間的に重なる他の検出を特定します:
   * **中心重なり**: 他の検出の中心点が重なりクラスのバウンディングボックス内にあるかを確認します（より正確で、中心が内部にある必要があります）
   * **任意の重なり**: バウンディングボックス同士の空間的な交差があるかを確認します（より緩やかで、何らかの重なりがあればカウントされます）
4. いずれかの重なりクラスのインスタンスと重なるすべての検出を収集します
5. 出力から重なりクラスの検出自体を除外します
6. 重なりのある検出のみを返します（重なりクラスに対して位置関係を持つオブジェクト）

このブロックは実質的に「クラスXのインスタンスと重なっているオブジェクトはどれか？」という問いに答えます。たとえば、重なりクラスとして "bicycle" を指定すると、このブロックは自転車と重なっている人やその他のオブジェクトを見つけますが、自転車自体は出力から除外します。これにより、表面上のアイテム、コンテナ内のオブジェクト、乗り物上の人など、特定の参照クラスと空間的な関係を持つオブジェクトを特定するワークフローを実現できます。

## 一般的な使用例

* **人の乗り物検出**: 車両クラスを重なりクラスとして使用し（例: "bicycle" の検出と重なる人をフィルタリング）、自転車、バイク、その他の乗り物に乗っている人を特定します。これにより、ライダー、同乗者、または乗り物を利用している人の検出が可能になります
* **表面上のアイテム**: パレット、テーブル、棚の上に配置されたオブジェクトを、表面クラスを重なりクラスとして使用して見つけます（例: "pallet" の検出と重なるアイテムをフィルタリング）。これにより、在庫追跡、表面上のオブジェクト数のカウント、または表面の占有分析が可能になります
* **コンテナ内のオブジェクト**: コンテナ、箱、または車両内のアイテムを、コンテナクラスを重なりクラスとして使用して特定します（例: "container" の検出と重なるオブジェクトをフィルタリング）。これにより、内容物の検出、積載確認、またはコンテナ監視が可能になります
* **空間関係フィルタリング**: 近接または包含関係に基づいて検出結果をフィルタリングします（例: 特定のクラスの内側にある、またはそれと重なるすべてのオブジェクトを見つける）。これにより、空間配置に基づく条件付き処理が可能になります
* **入れ子になったオブジェクト検出**: 他のオブジェクトの一部である、または取り付けられているオブジェクトを特定します（例: 車両に取り付けられた装備、人についたアクセサリーを見つける）。これにより、複合オブジェクトやオブジェクト間の関係を検出できます
* **ゾーンベースのフィルタリング**: 重なりクラスを参照ゾーンとして使用し、特定の領域と交差するオブジェクトを見つけます（例: "parking\_space" クラスと重なるオブジェクトをフィルタリング）。これにより、ゾーンベースの分析や条件付き検出フィルタリングが可能になります

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

このブロックでフィルタリングされた重なり検出結果は、次のブロックに接続できます:

* **検出モデルブロック** （例: オブジェクト検出モデル、インスタンスセグメンテーションモデル）に接続して、指定した参照クラスと重なるオブジェクトのみを表示するようにフィルタリングされた予測を受け取り、空間関係の分析を可能にします
* **可視化ブロック** （例: バウンディングボックス可視化、ポリゴン可視化、ラベル可視化）に接続して、重なりのあるオブジェクトのみを表示し、参照クラスと空間的な関係を持つオブジェクトを強調します
* **カウントおよび分析ブロック** （例: Line Counter、Time in Zone、Velocity）に接続して、重なりのあるオブジェクトのみをカウントまたは分析します（例: 自転車に乗った人をカウント、パレット上のアイテムを追跡）。これにより、空間的に関連するオブジェクトのメトリクスを取得できます
* **データ保存ブロック** （例: Local File Sink、CSV Formatter、Roboflow Dataset Upload、Webhook Sink）に接続して、フィルタリングされた重なり検出結果を保存または送信し、特定の空間関係を持つオブジェクトのデータを保存します
* **フィルタリングブロック** （例: Detections Filter）に接続して、重なりのある検出結果に追加のフィルタ条件を適用し、多段階のフィルタリングワークフローを実現します
* **フロー制御ブロック** （例: Continue If）に接続して、重なりのあるオブジェクトが検出されたかどうかに基づいて下流の処理を条件付きで起動し、空間関係に応答するワークフローを実現します

### 種別識別子

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

### プロパティ

| **名前**               | **型** | **説明**                                                                                                                                                                                                                         | 参照 |
| -------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -- |
| `name`               | `str` | このステップの一意の識別子を入力してください。                                                                                                                                                                                                        | ❌  |
| `overlap_type`       | `str` | 検出結果間の空間的な重なりを判定する方法です。"中心重なり" は、他の検出の中心点が重なりクラスのバウンディングボックス内にあるかを確認します（より正確で、中心が内部にある必要があります）。"任意の重なり" は、バウンディングボックス同士の空間的な交差があるかを確認します（より緩やかで、何らかの重なりがあればカウントされます）。中心重なりはより厳密で包含関係に適しており、任意の重なりはより包括的で、近接や部分的な重なりの検出に適しています。 | ❌  |
| `overlap_class_name` | `str` | 重なり検出に使用する参照オブジェクトのクラス名です。このクラス名に一致する検出結果が参照点として使用され、それらの参照オブジェクトと重なる他の検出結果が出力に保持されます。重なりクラスの検出結果自体は結果から除外されます。例: 'bicycle' を使って自転車と重なる人やオブジェクトを見つける、'pallet' を使ってパレット上のアイテムを見つける。                                             | ❌  |

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

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

利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が `重なりフィルター` のバージョン `v1` 持つか確認してください。

<details>

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

* 入力
  * `predictions` (*Union\[*[*`instance_segmentation_prediction`*](/workflows/ja/gaido/developer-guide/kinds/instance-segmentation-prediction.md)*,* [*`object_detection_prediction`*](/workflows/ja/gaido/developer-guide/kinds/object-detection-prediction.md)*]*: 指定された重なりクラスと重なる可能性のあるオブジェクトを含む検出予測（オブジェクト検出またはインスタンスセグメンテーション）。このブロックは overlap\_class\_name に一致する検出を特定し、それらと空間的に重なる他の検出を見つけます。出力には、重なりのある検出のみ（重なりクラス自体ではない）が返されます。
* 出力
  * `重なり` ([`object_detection_prediction`](/workflows/ja/gaido/developer-guide/kinds/object-detection-prediction.md)): sv.Detections(...) オブジェクト形式の、検出されたバウンディングボックスを含む予測。

</details>

<details>

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

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/overlap@v1",
	    "predictions": "$steps.object_detection_model.predictions",
	    "overlap_type": "中心重なり",
	    "overlap_class_name": "<block_does_not_provide_example>"
	}
```

</details>
