> 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つのグループに分けます：
   * **重なりクラスの検出結果**: 指定された `重なりクラス名` （例: "自転車"、"パレット"、"車"）
   * **その他の検出結果**: 重なりクラスと重なる可能性のある残りすべてのオブジェクト
3. 各重なりクラスの検出結果ごとに、次の2つの重なりモードのいずれかを使って、それと空間的に重なる他の検出結果を特定します：
   * **中心重なり**: 他の検出結果の中心点が重なりクラスのバウンディングボックス内に入っているかを確認します（より厳密で、中心が内部にある必要があります）
   * **任意の重なり**: バウンディングボックス同士の空間的な交差があるかを確認します（より緩やかで、少しでも重なれば該当します）
4. いずれかの重なりクラスのインスタンスと重なるすべての検出結果を収集します
5. 重なりクラスの検出結果自体を出力から除外します
6. 重なっている検出結果のみを返します（重なりクラスに対して位置関係を持つオブジェクト）

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

## 一般的な使用例

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

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

このブロックから得られる重なり検出結果は、次のものに接続できます：

* **検出モデルブロック** （例: Object Detection Model、Instance Segmentation Model）に接続して、指定した参照クラスと重なるオブジェクトのみを表示するようにフィルタリングされた予測を受け取り、空間関係の分析を可能にします
* **可視化ブロック** （例: Bounding Box Visualization、Polygon Visualization、Label Visualization）に接続して、重なっているオブジェクトのみを表示し、参照クラスと空間的な関係を持つオブジェクトを強調表示します
* **カウントおよび分析用ブロック** （例: 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` | このステップの一意の識別子を入力してください。                                                                                                                                                                                                                              | ❌  |
| `重なりタイプ`  | `str` | 検出間の空間的な重なりを判定する方法です。「Center Overlap」は、他の検出結果の中心点が重なりクラスのバウンディングボックス内にあるかを確認します（より正確で、中心が内部にある必要があります）。「Any Overlap」は、バウンディングボックス同士に空間的な交差があるかを確認します（より緩やかで、少しでも重なれば該当します）。Center Overlap はより厳格で包含関係に適しており、Any Overlap はより包括的で、近接や部分的な重なりの検出に適しています。 | ❌  |
| `重なりクラス名` | `str` | 重なり検出に使用される参照オブジェクトのクラス名です。このクラス名に一致する検出結果が参照点として使われ、これらの参照オブジェクトと重なる他の検出結果が出力に保持されます。重なりクラスの検出結果自体は結果から除外されます。例: 'bicycle' を使って自転車と重なる人やオブジェクトを見つける、'pallet' を使ってパレット上のアイテムを見つける。                                                                   | ❌  |

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

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

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

<details>

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

* 入力
  * `predictions` (*Union\[*[*`object_detection_prediction`*](/workflows/ja/gaido/developer-guide/kinds/object-detection-prediction.md)*,* [*`instance_segmentation_prediction`*](/workflows/ja/gaido/developer-guide/kinds/instance-segmentation-prediction.md)*]*): 検出予測（物体検出またはインスタンスセグメンテーション）には、指定した重なりクラスと重なる可能性のあるオブジェクトが含まれます。このブロックは overlap\_class\_name に一致する検出結果を特定し、それらと空間的に重なる他の検出結果を見つけます。出力には、重なっている検出結果のみ（重なりクラス自体は含まない）が返されます。
* 出力
  * `overlaps` ([`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": "Center Overlap",
	    "overlap_class_name": "<block_does_not_provide_example>"
	}
```

</details>
