> 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-transformation.md).

# 検出変換

UQL（Query Language）の操作チェーンを使用して検出予測にカスタマイズ可能な変換を適用し、構成可能な操作シーケンスによって、バウンディングボックスの柔軟な変更、検出のフィルタリング、プロパティの抽出、ボックスのサイズ変更、その他の検出操作を行えるようにして、高度な検出処理ワークフローを実現します。

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

このブロックは、検出データを変更、フィルタリング、抽出、または操作できる UQL 操作のチェーンを適用して、検出予測を変換します。このブロックは：

1. 検出予測（オブジェクト検出、インスタンスセグメンテーション、またはキーポイント検出）と、適用する UQL 操作のリストを受け取ります
2. operations\_parameters に予約済みのパラメータ名が含まれていないことを検証します
3. 提供された UQL 操作定義から操作チェーンを構築し、順番に適用する変換シーケンスを作成します
4. operations\_parameters をバッチパラメータ（予測と対応）と非バッチパラメータ（すべての予測に適用）に分離します
5. 各予測バッチを、操作チェーンを適用して処理します：
   * バッチ項目ごとにデータを対応させるため、予測とバッチパラメータを zip します
   * 各予測の評価パラメータとして、バッチパラメータと非バッチパラメータを結合します
   * 結合したパラメータを用いて、検出に操作チェーンを適用します
   * 出力が引き続き sv.Detections であることを検証します（操作は検出タイプを保持する必要があります）
6. 各入力バッチに対する変換後の検出を返します

このブロックは、フィルタリング（DetectionsFilter）、プロパティ抽出（ExtractDetectionProperty）、バウンディングボックス変換（リサイズ、スケーリング）、その他の検出操作を含む幅広い UQL 操作をサポートします。操作は順次適用されるため、操作チェーンによって複雑な変換が可能です。このブロックは、変換が検出タイプを保持することを検証し、出力が他の検出処理ブロックと互換性を保つようにします。バッチパラメータと非バッチパラメータにより、柔軟な操作パラメータ化が可能になり、検出ごとの値とグローバルな値の両方をサポートします。

## 一般的な使用例

* **高度な検出フィルタリング**: 複雑なフィルタリングロジックを検出予測に適用します（例：条件文を使用してクラス名で検出をフィルタリングする、複数条件で信頼度閾値によるフィルタリングを行う、検出プロパティに基づくカスタムフィルタリング基準を適用する）ことで、高度な検出選択ワークフローを実現します
* **バウンディングボックス変換**: バウンディングボックスのサイズ、位置、またはプロパティを変更します（例：バウンディングボックスを比例的にリサイズする、割合でボックスをスケールする、ボックス座標を調整する、ボックス寸法を変換する）ことで、柔軟なバウンディングボックス操作を実現します
* **プロパティの抽出とフィルタリング**: 検出プロパティを抽出し、抽出した値に基づいてフィルタリングします（例：クラス名を抽出してクラスリストでフィルタリングする、信頼度スコアを抽出して閾値でフィルタリングする、条件分岐処理のためにプロパティを抽出する）ことで、プロパティベースの検出処理を実現します
* **複数条件による処理**: 複数の検出基準に基づいて複雑な条件付き変換を適用します（例：クラスと信頼度の組み合わせに基づいて検出を変換する、検出タイプごとに異なる操作を適用する、複数のプロパティに基づいて検出を条件付きで変更する）ことで、高度な条件付き検出処理を実現します
* **検出データの拡充**: 下流処理のために検出からプロパティを抽出して追加します（例：フィルタリング用にクラス名を抽出する、検出プロパティを計算する、検出にメタデータを追加する）ことで、複雑なワークフローに向けた拡充された検出データを実現します
* **カスタム検出操作**: 専用ブロックでは利用できないカスタム変換を適用します（例：複雑な多段階の検出変更、カスタムなフィルタリングと変換の組み合わせ、特化した検出処理ワークフロー）ことで、柔軟なカスタム検出処理を実現します

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

このブロックは検出予測を受け取り、変換後の検出を生成します：

* **検出ブロックの後** （例：Object Detection、Instance Segmentation、Keypoint Detection）の後に、検出予測へカスタム変換、フィルタリング、または変更を適用し、柔軟な検出処理ワークフローを実現します
* **動的クロップブロックの前** クロップ前に検出をフィルタリングまたは変更するために使用します（例：クロップ前にクラスで検出をフィルタリングする、クロップ前にボックスサイズを変換する、クロップ用の特定の検出を抽出する）ことで、最適化された領域抽出ワークフローを実現します
* **分類または分析ブロックの前** カスタムなフィルタリングや変換を用いて検出を準備するために使用します（例：特定の分析向けに検出をフィルタリングする、互換性のためにボックスを変換する、カスタム基準で検出を準備する）ことで、カスタマイズされた検出準備を実現します
* **多段階の検出ワークフローでは** 段階間で検出にカスタム変換が必要な場合に使用します（例：二次処理の前に初期検出をフィルタリングおよび変換する、検出段階間でカスタム変更を適用する、基準に基づいて検出を条件付きで処理する）ことで、高度な多段階ワークフローを実現します
* **可視化ブロックの前で** 表示用に検出をフィルタリングまたは変換するために使用します（例：可視化のために検出をフィルタリングする、プレゼンテーション用にボックスを変換する、表示目的に合わせて検出をカスタマイズする）ことで、最適化された視覚出力を実現します
* **検出ブロックの後、他の変換ブロックの前** 変換の間にカスタムロジックを適用するために使用します（例：検出後かつクロップ前にフィルタリングする、検出段階間で変換する、条件付き変更を適用する）ことで、カスタムロジックを備えた複雑な変換パイプラインを実現します

### 種別識別子

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

### プロパティ

| **名前**       | **型**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | **説明**                                                                                                                                                                                                                                                                                                                                                          | 参照 |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| `name`       | `str`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | このステップの一意の識別子を入力してください。                                                                                                                                                                                                                                                                                                                                         | ❌  |
| `operations` | `List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]` | 検出に対して順次適用する UQL（Query Language）操作の一覧です。操作は順番に実行され、各操作は前の操作の出力を受け取ります。サポートされる操作には、DetectionsFilter（条件による検出のフィルタリング）、ExtractDetectionProperty（検出からのプロパティ抽出）、バウンディングボックス変換（リサイズ、スケーリング）、および sv.Detections を受け取り sv.Detections を返すその他の UQL 操作が含まれます。操作は operations\_parameters を使ってパラメータ化できます。操作チェーンは sv.Detections を sv.Detections に変換しなければなりません（型は保持される必要があります）。 | ❌  |

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

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

利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が `検出変換` のバージョン `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)*]*）：UQL 操作を使用して変換する検出予測です。オブジェクト検出、インスタンスセグメンテーション、またはキーポイント検出の予測をサポートします。検出は operations フィールドで定義された操作チェーンによって変換されます。すべての変換は検出タイプを保持しなければなりません（出力は sv.Detections のままである必要があります）。このブロックはバッチ入力を処理し、バッチ項目ごとに変換を適用します。
  * `operations_parameters` ([*`*`*](/workflows/ja/gaido/developer-guide/kinds/wildcard.md)）：操作で使用されるパラメータ名をワークフローのデータソースまたは値に対応付ける辞書です。パラメータは操作内で参照され（例：条件文やフィルタリング操作）、実行時に提供されます。バッチパラメータ（予測と対応し、バッチ項目ごとに 1 つの値）と非バッチパラメータ（すべてのバッチ項目で同じ値）の両方をサポートします。パラメータは、そのデータ構造に基づいて自動的にバッチと非バッチに分離されます。予約済みのパラメータ名は使用できません。これを使って操作を動的にパラメータ化します（例：フィルタリング用のクラスリストを渡す、条件用の閾値を渡す、実行時パラメータを必要とする操作に値を供給する）。
* 出力
  * `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)*,* [*`keypoint_detection_prediction`*](/workflows/ja/gaido/developer-guide/kinds/keypoint-detection-prediction.md)*]*): 検出されたバウンディングボックスを含む予測。sv.Detections(...) オブジェクトの形式で、もし `object_detection_prediction` ): 検出されたバウンディングボックスとセグメンテーションマスクを含む予測。sv.Detections(...) オブジェクトの形式で、もし `instance_segmentation_prediction` または、検出されたバウンディングボックスと検出されたキーポイントを sv.Detections(...) オブジェクトの形式で持つ予測。 `keypoint_detection_prediction`.

</details>

<details>

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

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/detections_transformation@v1",
	    "predictions": "$steps.object_detection_model.predictions",
	    "operations": [
	        {
	            "filter_operation": {
	                "statements": [
	                    {
	                        "comparator": {
	                            "type": "in (Sequence)"
	                        },
	                        "left_operand": {
	                            "operations": [
	                                {
	                                    "property_name": "class_name",
	                                    "type": "ExtractDetectionProperty"
	                                }
	                            ],
	                            "type": "DynamicOperand"
	                        },
	                        "right_operand": {
	                            "operand_name": "classes",
	                            "type": "DynamicOperand"
	                        },
	                        "type": "BinaryStatement"
	                    }
	                ],
	                "type": "StatementGroup"
	            },
	            "type": "DetectionsFilter"
	        }
	    ],
	    "operations_parameters": {
	        "classes": "$inputs.classes"
	    }
	}
```

</details>
