> 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 操作をサポートします。操作は順次適用されるため、操作の連鎖によって複雑な変換が可能です。このブロックは、変換が検出タイプを保持していることを検証し、出力が他の検出処理ブロックと互換性を保つようにします。バッチおよび非バッチのパラメータにより、柔軟な操作パラメータ設定が可能になり、検出ごとの値とグローバルな値の両方をサポートします。

## 一般的な使用例

* **高度な検出フィルタリング**: 条件文を使用してクラス名で検出をフィルタリングする、複数条件で信頼度しきい値に基づいてフィルタリングする、検出プロパティに基づくカスタムフィルタリング基準を適用するなど、複雑なフィルタリングロジックを検出予測に適用し、高度な検出選択ワークフローを実現します
* **バウンディングボックス変換**: バウンディングボックスのサイズ、位置、またはプロパティを変更します（例: 比率を保ってバウンディングボックスのサイズを変更する、ボックスを割合で拡大縮小する、ボックス座標を調整する、ボックス寸法を変換する）。これにより、柔軟なバウンディングボックス操作が可能になります
* **プロパティの抽出とフィルタリング**: 検出プロパティを抽出し、抽出した値に基づいてフィルタリングします（例: クラス名を抽出してクラスリストでフィルタリングする、信頼度スコアを抽出してしきい値でフィルタリングする、条件付き処理のためにプロパティを抽出する）。これにより、プロパティベースの検出処理が可能になります
* **複数条件処理**: 複数の検出基準に基づいて複雑な条件付き変換を適用します（例: クラスと信頼度の組み合わせに基づいて検出を変換する、検出タイプごとに異なる操作を適用する、複数のプロパティに基づいて検出を条件付きで修正する）。これにより、高度な条件付き検出処理が可能になります
* **検出データのエンリッチメント**: 下流処理のために、検出にプロパティを抽出して追加します（例: フィルタリング用にクラス名を抽出する、検出プロパティを計算する、検出にメタデータを追加する）。これにより、複雑なワークフロー向けに拡張された検出データが可能になります
* **カスタム検出操作**: 専用ブロックでは利用できないカスタム変換を適用します（例: 複雑な複数ステップの検出修正、カスタムフィルタリングと変換の組み合わせ、特殊な検出処理ワークフロー）。これにより、柔軟なカスタム検出処理が可能になります

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

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

* **検出ブロックの後ろに** (例: 物体検出、インスタンスセグメンテーション、キーポイント検出) に対して、検出予測にカスタム変換、フィルタリング、または修正を適用し、柔軟な検出処理ワークフローを可能にします
* **ダイナミッククロップブロックの前** クロップ前に検出をフィルタリングまたは修正します（例: クロップ前にクラスで検出をフィルタリングする、クロップ前にボックスサイズを変換する、クロップ用に特定の検出を抽出する）。これにより、最適化された領域抽出ワークフローが可能になります
* **分類または分析ブロックの前** カスタムフィルタリングや変換で検出を準備します（例: 特定の分析用に検出をフィルタリングする、互換性のためにボックスを変換する、カスタム条件で検出を準備する）。これにより、カスタマイズされた検出準備が可能になります
* **複数段階の検出ワークフローにおいて** ステージ間でカスタム変換が必要な場合（例: 二次処理の前に初期検出をフィルタリングして変換する、検出ステージ間でカスタム修正を適用する、基準に基づいて検出を条件付きで処理する）。これにより、高度な複数段階ワークフローが可能になります
* **可視化ブロックの前** 表示用に検出をフィルタリングまたは変換するために（例: 可視化用に検出をフィルタリングする、表示用にボックスを変換する、表示目的に合わせて検出をカスタマイズする）。これにより、最適化された視覚出力が可能になります
* **検出ブロックの後、他の変換ブロックの前** 変換の間にカスタムロジックを適用します（例: 検出後かつクロップ前にフィルタリングする、検出ステージ間で変換する、条件付き修正を適用する）。これにより、カスタムロジックを含む複雑な変換パイプラインが可能になります

### 型識別子

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

### プロパティ

| **名前** | **型**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | **説明**                                                                                                                                                                                                                                                                                                                                                 | 参照 |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -- |
| `name` | `str`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | このステップの一意の識別子を入力してください。                                                                                                                                                                                                                                                                                                                                | ❌  |
| `操作`   | `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 を受け取り返すその他の UQL 操作が含まれます。operations\_parameters を使用して操作にパラメータを設定できます。operations チェーンは sv.Detections を sv.Detections に変換する必要があります（型は保持されなければなりません）。。 | ❌  |

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

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

利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が `検出変換` のバージョン `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)*,* [*`keypoint_detection_prediction`*](/workflows/ja/gaido/developer-guide/kinds/keypoint-detection-prediction.md)*]*): UQL 操作を使用して変換する検出予測。物体検出、インスタンスセグメンテーション、またはキーポイント検出の予測をサポートします。検出は operations フィールドで定義された操作チェーンによって変換されます。すべての変換は検出タイプを保持する必要があります（出力は sv.Detections のままでなければなりません）。このブロックはバッチ入力を処理し、バッチ項目ごとに変換を適用します。。
  * `operations_parameters` ([*`*`*](/workflows/ja/gaido/developer-guide/kinds/wildcard.md)): パラメータ名（operations で使用）をワークフローのデータソースまたは値にマッピングする辞書です。パラメータは operations 内で参照され（例: 条件文、フィルタリング操作内）、実行時に提供されます。バッチパラメータ（予測に対応し、バッチ項目ごとに 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(...) オブジェクトの形式で持つ Prediction の場合 `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>
