> 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/advanced-blocks/property-definition.md).

# プロパティ定義

設定可能な操作チェーンを使用して、ワークフローのステップ出力から特定のプロパティやフィールドを抽出し、モデル予測やワークフローデータからクラス名、信頼度、件数、座標、OCRテキスト、メタデータ、その他のプロパティを抽出して、データ変換、プロパティ抽出、メタデータアクセス、値抽出のワークフローを実現します。

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

このブロックは、複雑なデータ構造をたどって値を抽出する操作チェーンを適用することで、データから特定のプロパティを抽出します。このブロックは次のことを行います。

1. 任意のワークフローステップ（検出、分類、OCR結果、画像、その他のデータ型）から入力データを受け取ります
2. operationsパラメータで定義された操作チェーンを適用します。
   * 各操作は、特定の抽出または変換タスクを実行します
   * 操作は順番に実行され、各操作は前の操作の結果に対して動作します
   * 操作では、プロパティの抽出、データのフィルタリング、形式の変換、値の結合が可能です
3. 操作タイプに基づいてプロパティを抽出します。

   **検出プロパティの場合:**

   * 物体検出、インスタンスセグメンテーション、またはキーポイント検出の予測からプロパティを抽出します
   * 抽出可能なもの: クラス名、信頼度、件数、バウンディングボックス座標（x\_min、y\_min、x\_max、y\_max）、中心、サイズ、トラッカーID、速度、スピード、経路のずれ、ゾーン滞在時間、ポリゴンなど
   * 値のリスト（検出ごとに1つ）または集約値を返します

   **分類プロパティの場合:**

   * 分類予測からプロパティを抽出します
   * 抽出可能なもの: 予測クラス、信頼度スコア、すべてのクラス、すべての信頼度
   * プロパティに応じて単一の値またはリストを返します

   **OCRプロパティの場合:**

   * OCR結果からテキスト、座標、メタデータを抽出します
   * 抽出可能なもの: 認識されたテキスト、バウンディングボックス情報、信頼度スコア

   **画像プロパティの場合:**

   * 画像からメタデータとプロパティを抽出します
   * 抽出可能なもの: 寸法、形式情報、その他の画像メタデータ
4. 複雑な抽出のための複合操作をサポートします:
   * 操作を連結して、複数ステップの抽出を実行できます
   * プロパティを抽出する前に検出をフィルタリングできます
   * 特定の検出の選択、形式の変換、複数プロパティの結合が可能です
5. 抽出されたプロパティ値を返します:
   * 出力タイプは抽出されたプロパティによって異なります（リスト、文字列、数値、辞書など）
   * 抽出されたプロパティを含む単一の出力値を返します

このブロックは、ワークフローデータから事実上あらゆるプロパティを抽出できる柔軟な操作システムを使用しています。操作は単純（単一プロパティの抽出）にも複合（フィルタリング、変換してから抽出）にもできます。これにより、このブロックはカスタムコードを必要とせず、複雑なデータ構造から特定のフィールドへアクセスするために非常に多用途です。

## 一般的な使用例

* **プロパティ抽出**: モデル予測から特定のフィールドを抽出します（例: 検出からクラス名を抽出、信頼度スコアを取得、OCRテキストを抽出、検出件数を取得）。これにより、プロパティ抽出ワークフローを実現します
* **メタデータアクセス**: ワークフローステップからメタデータや計算済みプロパティにアクセスします（例: トラッカーIDを抽出、速度値を取得、ゾーン滞在時間にアクセス、経路のずれを取得）。これにより、メタデータアクセスワークフローを実現します
* **データ変換**: 複雑なデータ構造を下流で使用しやすい単純な値に変換します（例: 検出をリストに変換、座標を抽出、バウンディングボックスの中心を取得、クラスのリストを抽出）。これにより、データ変換ワークフローを実現します
* **条件ロジック**: 条件ロジックや意思決定に使用する値を抽出します（例: 閾値判定用に件数を抽出、フィルタリング用に信頼度を取得、分類用にクラス名を抽出、計算用に座標を取得）。これにより、条件ロジックワークフローを実現します
* **データ整形**: 保存、表示、またはAPIレスポンス用にデータを整形します（例: JSON出力用に値を抽出、保存用にデータを整形、可視化用にデータを準備、APIレスポンス用に抽出）。これにより、データ整形ワークフローを実現します
* **分析用抽出**: 分析のためのメトリクスや測定値を抽出します（例: 検出件数を抽出、信頼度統計を取得、測定値を抽出、分析メトリクスを取得）。これにより、分析用抽出ワークフローを実現します

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

このブロックは、ワークフローステップからのあらゆるデータ型を受け取り、抽出されたプロパティ値を出力します:

* **モデルブロックの後** （検出、分類、OCRなど）から予測のプロパティを抽出します（例: 検出からクラス名を抽出、分類結果を取得、OCRテキストを抽出）。これにより、モデルからプロパティへのワークフローを実現します
* **分析ブロックの後** 計算されたメトリクスや測定値を抽出します（例: 速度値を抽出、ゾーン滞在時間を取得、経路のずれを取得、追跡情報にアクセス）。これにより、分析からプロパティへのワークフローを実現します
* **ロジックブロックの前** Continue If などで、抽出した値を条件に使用します（例: 件数が閾値を超えたら継続、抽出した信頼度に基づいてフィルタリング、抽出した値を使って判断する）。これにより、プロパティベースの意思決定ワークフローを実現します
* **データ保存ブロックの前** 抽出した値を保存用に整形します（例: 抽出したプロパティを保存、ログ用に値を整形、保存用にデータを準備）。これにより、プロパティから保存へのワークフローを実現します
* **可視化ブロックの前** 表示用に抽出した値を提供します（例: 抽出した件数を表示、抽出したテキストを表示、抽出したメトリクスを可視化）。これにより、プロパティの可視化ワークフローを実現します
* **通知ブロックの前** 通知で抽出した値を使用します（例: アラートに抽出した件数を含める、メッセージで抽出したテキストを送信、通知で抽出した値を使用する）。これにより、プロパティベースの通知ワークフローを実現します

## 要件

このブロックは、ワークフローステップのあらゆるデータ型を扱います。operationsパラメータは、入力データに対して実行する操作のリストを定義します。各操作は、データ型および前の操作の出力と互換性がなければなりません。一般的な操作には DetectionsPropertyExtract（検出プロパティ用）、ClassificationPropertyExtract（分類プロパティ用）、およびその他の抽出操作が含まれます。このブロックは、複雑な抽出のための複合操作（他の操作を含められる操作）をサポートします。出力タイプは実行された操作と抽出されたプロパティによって決まり、抽出内容に応じてリスト、文字列、数値、辞書、その他の型になります。

### 型識別子

ステップで次の識別子を使用してください `"type"` フィールド： `roboflow_core/property_definition@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]]` | 入力データに対して順次実行する操作のリスト。各操作は抽出、フィルタリング、変換、または結合を行います。操作は順番に実行され、各操作は前の結果に対して動作します。一般的な操作: DetectionsPropertyExtract（検出から class\_name、confidence、count、座標などのプロパティを抽出）、ClassificationPropertyExtract（分類から class、confidence を抽出）、DetectionsFilter（抽出前に検出をフィルタリング）、DetectionsSelection（特定の検出を選択）。複雑な抽出のために、単一または複合の操作を含めることができます。。 | ❌  |

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

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

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

<details>

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

* 入力
  * `データ` ([*`*`*](/workflows/ja/gaido/developer-guide/kinds/wildcard.md)任意のワークフローステップからプロパティを抽出する入力データ。検出、分類、OCR結果、画像、またはその他のワークフロー出力を指定できます。データ型によって適用可能な操作が決まります。例: クラス名を抽出するための検出予測、予測クラスを抽出するための分類結果、テキストを抽出するためのOCR結果。。
* 出力
  * `出力` ([`*`](/workflows/ja/gaido/developer-guide/kinds/wildcard.md))：任意の要素に相当します。

</details>

<details>

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

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/property_definition@v1",
	    "data": "$steps.object_detection_model.predictions",
	    "operations": [
	        {
	            "property_name": "class_name",
	            "type": "DetectionsPropertyExtract"
	        }
	    ]
	}
```

</details>
