> 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/transformations/detections-merge.md).

# 検出のマージ

複数の検出予測を、すべての入力検出を包含する和集合バウンディングボックスを持つ1つの統合検出にまとめ、重複するオブジェクトの統合、複数オブジェクトからの領域作成、および検出の簡略化ワークフローのために、複数の検出を1つのより大きな検出領域に単純化します。

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

このブロックは、すべての入力検出を含む和集合バウンディングボックスを計算することで、複数の検出を1つの検出に統合します。このブロックは次の処理を行います。

1. 複数の検出を含む検出予測（物体検出、インスタンスセグメンテーション、またはキーポイント検出）を受け取ります
2. 入力を検証します（空の検出は空の検出結果を返して処理します）
3. すべての入力検出から和集合バウンディングボックスを計算します。
   * 入力検出からすべてのバウンディングボックス座標（xyxy形式）を抽出します
   * すべてのボックスの中で最小のxおよびy座標（最も左上の点）を見つけます
   * すべてのボックスの中で最大のxおよびy座標（最も右下の点）を見つけます
   * すべての入力検出を完全に包含する1つのバウンディングボックスを作成します
4. 統合検出の信頼度を決定します。
   * すべての入力検出の中で最も低い信頼度スコアを持つ検出を見つけます
   * この最も低い信頼度を統合検出の信頼度として使用します（保守的なアプローチ）
   * 信頼度スコアが存在しない場合を処理します
5. 次の内容を持つ新しい統合検出を作成します。
   * 計算された和集合バウンディングボックス（すべての入力検出を包含）
   * カスタマイズ可能なクラス名（デフォルト: "merged\_detection"、class\_nameパラメータで設定可能）
   * 入力検出の中で最も低い信頼度（保守的な信頼度割り当て）
   * 統合検出の固定class\_id 0
   * 新しく生成された検出ID（統合検出の一意識別子）
6. すべての入力検出をそのバウンディングボックス内に含む単一の統合検出を返します

このブロックは、複数の検出を統合したバウンディングボックス表現を作成し、重複または近接した検出を1つの領域にまとめるのに役立ちます。和集合バウンディングボックスのアプローチにより、元の検出がすべて統合検出の内部に完全に含まれることが保証されます。最も低い信頼度を使用することで、このブロックは保守的なアプローチを採用し、統合検出の信頼度が最も確信度の低い入力検出を反映するようにします。統合検出は、その統合された性質を示すため、または特定のカテゴリを表すためにクラス名でカスタマイズできます。

## 一般的な使用例

* **重複検出の統合**: 同一または関連するオブジェクトの重複検出を1つの統合検出にまとめます（例: 複数フレームにまたがる同一人物の重複検出を統合する、異なるモデルからの重複検出をまとめる、重複するオブジェクト部位を1つの検出に結合する）。これにより、重複検出の簡略化ワークフローが可能になります
* **複数オブジェクト領域の作成**: 複数の検出されたオブジェクトを包含する単一のバウンディングボックス領域を、面積ベースの分析のために作成します（例: 群衆分析のために複数人を含む領域を作成する、シーン内のオブジェクト検出を1つの領域にまとめる、複数の検出を1つの監視ゾーンに統合する）。これにより、複数オブジェクト領域のワークフローが可能になります
* **近接検出のグループ化**: 近い検出を1つの統合検出にまとめます（例: 互いに近いオブジェクトの検出を統合する、近接した検出をクラスターにまとめる、隣接する検出を簡略化のために結合する）。これにより、空間的グループ化のワークフローが可能になります
* **検出の簡略化**: 複数の検出を、下流処理用の1つの大きな検出に簡略化します（例: 複数検出を1つに減らして解析を簡単にする、可視化しやすくするために検出を統合する、処理を効率化するために検出をまとめる）。これにより、検出の簡略化ワークフローが可能になります
* **検出からのゾーン定義**: 複数の検出位置からゾーン境界を作成します（例: 検出位置に基づいてゾーンを定義する、検出されたオブジェクト位置から領域を作成する、検出クラスターから境界を設定する）。これにより、検出からのゾーン作成が可能になります
* **冗長検出の削除**: 冗長または重複した検出を1つの表現にまとめます（例: 異なる段階からの重複検出を統合する、冗長な物体検出をまとめる、繰り返し検出を統合する）。これにより、冗長検出の統合ワークフローが可能になります

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

このブロックは複数の検出予測を受け取り、1つの統合検出を生成します。

* **検出ブロックの後** （例: 物体検出、インスタンスセグメンテーション、キーポイント検出）を使用して、複数の検出を1つの統合検出にまとめ、処理を簡略化します。これにより、検出統合ワークフローが可能になります
* **フィルタリング後のブロック** （例: Detections Filter）で、特定の条件を満たすフィルタ後の検出を1つの検出にまとめます（例: クラスごとにフィルタした検出を統合する、フィルタ後の検出を結合する、フィルタ結果をまとめる）。これにより、フィルタ後検出の統合が可能になります
* **クロップブロックの前** 複数の検出から1つのクロップ領域を作成します（例: 複数オブジェクトを含む領域をクロップする、複数検出を含む範囲を抽出する、統合されたクロップ領域を作成する）。これにより、複数検出領域の抽出が可能になります
* **ゾーンベースのブロックの前** （例: Polygon Zone、Dynamic Zone）で、統合された検出領域に基づいてゾーンを定義します（例: 統合検出領域からゾーンを作成する、統合検出から監視ゾーンを設定する、統合検出から領域を定義する）。これにより、統合検出からのゾーン作成が可能になります
* **可視化ブロックの前で** 複数の個別検出ではなく、簡略化された統合検出を表示します（例: 統合された検出領域を可視化する、統合バウンディングボックスを表示する、簡略化された検出表現を示す）。これにより、簡略化された可視化出力が可能になります
* **分析ブロックの前** 簡略化された検出表現の恩恵を受けるもの（例: 統合検出領域を分析する、統合された検出を処理する、簡略化された検出データを扱う）。これにより、簡略化された検出分析ワークフローが可能になります

### 種別識別子

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

### プロパティ

| **名前**       | **型** | **説明**                                                                                                                                                                                        | 参照 |
| ------------ | ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| `name`       | `str` | このステップの一意の識別子を入力してください。                                                                                                                                                                       | ❌  |
| `class_name` | `str` | 統合検出に割り当てるクラス名です。統合検出は、そのデータ内でこのクラス名を使用します。デフォルトは、この検出が統合検出であることを示す 'merged\_detection' です。これをカスタマイズして、特定のカテゴリを表したり、統合検出の目的を示したりできます（例: 'crowd'、'group'、'region'）。このクラス名は、検出の data 辞書に保存されます。 | ❌  |

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

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

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

<details>

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

* 入力
  * `predictions` (*Union\[*[*`instance_segmentation_prediction`*](/workflows/ja/gaido/developer-guide/kinds/instance-segmentation-prediction.md)*,* [*`keypoint_detection_prediction`*](/workflows/ja/gaido/developer-guide/kinds/keypoint-detection-prediction.md)*,* [*`object_detection_prediction`*](/workflows/ja/gaido/developer-guide/kinds/object-detection-prediction.md)*]*): 複数の検出を1つの検出にまとめるための検出予測。物体検出、インスタンスセグメンテーション、またはキーポイント検出の予測に対応しています。すべての入力検出は、すべての入力検出を包含する和集合バウンディングボックスを持つ1つの統合検出に結合されます。空の検出が提供された場合、このブロックは空の検出結果を返します。統合検出には、そのバウンディングボックス境界内にすべての入力検出が含まれます。
* 出力
  * `predictions` ([`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/detections_merge@v1",
	    "predictions": "$steps.object_detection_model.predictions",
	    "class_name": "<block_does_not_provide_example>"
	}
```

</details>
