> 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/dynamic-crop.md).

# 動的切り抜き

検出モデルの予測結果に含まれるバウンディングボックスに基づいて入力画像から切り出し済みの画像領域を抽出し、物体検出、インスタンスセグメンテーション、キーポイント検出モデルをサポートします。セグメンテーションマスクを使った任意の背景除去にも対応しており、注目領域の抽出や多段階分析ワークフローに利用できます。

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

このブロックは、検出モデルの出力に含まれるバウンディングボックスを使用して入力画像から矩形領域を切り出し、検出された各オブジェクトごとに個別の切り出し画像を生成します。このブロックは:

1. 入力画像と、バウンディングボックスを含む検出予測（物体検出、インスタンスセグメンテーション、またはキーポイント検出）を受け取ります
2. クロップ追跡に必要な検出IDが予測に含まれていることを検証します
3. 予測から各バウンディングボックスを抽出し、入力画像から対応する矩形領域を切り出します
4. インスタンスセグメンテーション予測で `mask_opacity > 0`: セグメンテーションマスクを重ね合わせて背景除去を行い、検出されたインスタンスの外側にある背景ピクセルを指定した `background_color` そして、マスクの不透明度に基づいて元のクロップとブレンドします
5. クロップの出自（元画像、オフセット座標、検出ID）を追跡するメタデータ付きの切り出し画像オブジェクトを作成します
6. 元画像空間の予測座標を切り出し領域空間へ変換します（バウンディングボックス、マスク、キーポイント、ポリゴンをクロップの原点基準の相対座標に調整します）
7. 各検出ごとの結果のリストを返し、それぞれに切り出し画像と変換後の予測が含まれます

このブロックは各検出のバウンディングボックスを個別に処理し、検出されたオブジェクトごとに別々のクロップを作成します。インスタンスセグメンテーション予測では、任意の背景除去機能がセグメンテーションマスクを使用して、検出されたオブジェクトを背景ピクセルから分離します。これは、きれいなオブジェクト重視のクロップを作成するのに役立ちます。すべての予測座標（バウンディングボックス、キーポイント、ポリゴン、マスク座標）は、自動的に切り出し領域の左上角基準の相対座標へ変換され、下流のブロックがクロップを正しく処理できるようになります。このブロックは出力の次元を1つ増やし（入力画像ごとにクロップのリストを生成し）、各クロップを個別に処理できるバッチ処理ワークフローを可能にします。

## 一般的な使用例

* **多段階オブジェクト分析**: フル画像から個々のオブジェクトのクロップを抽出して詳細分析を行う（例: シーン内のオブジェクトを検出し、各検出オブジェクトを切り出し、その後個々のクロップに対してOCRや分類を実行する）ことで、画像全体を処理することなく特定の領域に焦点を当てた分析を可能にします
* **オブジェクトに焦点を当てた背景除去**: セグメンテーションマスクを使用して背景を除去したきれいなオブジェクトクロップを作成する（例: オブジェクトを検出してセグメント化し、背景除去付きで切り出し、学習や分析のために分離されたオブジェクト画像を作成する）ことで、焦点を絞ったオブジェクト抽出と、よりきれいな下流処理を可能にします
* **領域ベースの処理パイプライン**: 特殊な処理のために注目領域を抽出する（例: テキスト領域を検出して各テキスト領域を切り出し、クロップに対してOCRを実行する、顔を検出して各顔を切り出し、顔認識を実行する）ことで、特定の画像領域を効率的に処理できます
* **キーポイントとアノテーションの保持**: 検出アノテーションを保持したままオブジェクトのクロップを抽出する（例: キーポイント付きでオブジェクトを検出し、キーポイント座標を維持したまま切り出し、クロップされた文脈でキーポイントを分析する）ことで、完全なアノテーション文脈を維持した焦点分析を可能にします
* **バッチ領域抽出**: 単一画像から複数の領域を抽出して並列処理する（例: 画像内のすべてのオブジェクトを検出し、それぞれを個別に切り出し、分類や分析のためにクロップを並列処理する）ことで、複数領域の効率的なバッチ処理を可能にします
* **学習データの準備**: 注釈付き画像から切り出しオブジェクトのデータセットを作成する（例: バウンディングボックス付きでオブジェクトを検出し、各オブジェクトを個別に切り出し、学習データ収集のためにクロップを書き出す）ことで、フル画像から学習サンプルを自動抽出できます

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

このブロックは画像と検出予測を受け取り、切り出し画像を生成します:

* **検出ブロックの後ろに** （例: 物体検出、インスタンスセグメンテーション、キーポイント検出）を使用して、検出されたバウンディングボックスに基づき個々のオブジェクト領域を抽出し、検出対象を単独で詳細に分析できるようにします
* **分類または分析ブロックの前に** オブジェクトに焦点を当てた入力を必要とするブロック（例: テキスト領域向けのOCR、切り出しオブジェクトのきめ細かな分類、詳細な特徴抽出）向けで、フル画像ではなく個々の領域に特化した処理を可能にします
* **多段階検出ワークフローでは** 初期検出を使って二次分析用の領域を抽出する場合（例: 車両を検出し、各車両を切り出し、切り出し画像内でナンバープレートを検出する）、階層的な検出・分析パイプラインを可能にします
* **可視化ブロックの前** 個々のオブジェクトを表示するブロック（例: 切り出したオブジェクトを個別に表示する、検出オブジェクトのギャラリーを作成する、分離したオブジェクト注釈を表示する）向けで、抽出した領域の焦点を絞った可視化を可能にします
* **インスタンスセグメンテーションを伴う検出ブロックの後に** 背景除去によってきれいなオブジェクトクロップを作成し、分析、学習、提示のための分離されたオブジェクト画像を可能にします
* **キーポイント検出ワークフローでは** クロップされた文脈でもキーポイント座標を保持する必要がある場合（例: キーポイント付きで人物を検出し、各人物を切り出し、切り出し画像で姿勢を分析する）で、焦点を絞った画像領域でのキーポイント分析を可能にします

### 型識別子

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

### プロパティ

| **名前**             | **型**                              | **説明**                                                                                                                                                                                                                                                                                                                                                          | 参照 |
| ------------------ | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| `name`             | `str`                              | このステップの一意の識別子を入力してください。                                                                                                                                                                                                                                                                                                                                         | ❌  |
| `mask_opacity`     | `float`                            | インスタンスセグメンテーションのクロップにおける背景除去の不透明度（0.0〜1.0）。予測にセグメンテーションマスクが含まれる場合にのみ適用されます（インスタンスセグメンテーション予測）。検出されたインスタンスの外側にある背景ピクセルをどの程度強く除去するかを制御します。0.0 ではクロップは変更されず（背景除去なし）、1.0 では背景が background\_color に完全に置き換えられ、0.0〜1.0 の間の値では元のクロップと背景がブレンドされます。値が高いほど、オブジェクトに焦点を当てたよりきれいなクロップになります。背景除去を無効にするには 0.0 に設定します。マスク付きのインスタンスセグメンテーション予測が必要です。。                             | ✅  |
| `background_color` | `Union[Tuple[int, int, int], str]` | インスタンスセグメンテーションのクロップから背景を除去する際に使用する背景色。mask\_opacity > 0 の場合かつ予測にセグメンテーションマスクが含まれる場合にのみ適用されます。検出されたインスタンスマスクの外側にある背景ピクセルは、この色に置き換えられます。指定方法は、16進数文字列（例: '#431112' または '#fff'）、括弧付きのRGB文字列（例: '(128, 32, 64)'）、またはRGBタプル（例: (18, 17, 67)）です。デフォルトは黒（0, 0, 0）です。白背景にするには白（255, 255, 255）または '#ffffff' を使用するか、用途に応じた背景要件に合わせてください。色値はRGBとして解釈され、画像処理用にBGRへ変換されます。。 | ✅  |

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

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

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

<details>

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

* 入力
  * `images` ([*`image`*](/workflows/ja/gaido/developer-guide/kinds/image.md)): 切り出し領域を抽出する入力画像（群）。単一画像でも画像バッチでも構いません。各画像は対応する検出予測とともに処理され、バウンディングボックス領域が抽出されます。切り出し領域は予測内のバウンディングボックスに基づいて抽出されます。ネストされたクロップワークフローのために、別の Dynamic Crop ステップからすでに切り出された画像も受け取れます。。
  * `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)*]*): 画像から切り出す領域を定義するバウンディングボックスを含む検出モデル予測。物体検出（バウンディングボックス）、インスタンスセグメンテーション（セグメンテーションマスク付きバウンディングボックス）、またはキーポイント検出（キーポイント付きバウンディングボックス）の予測をサポートします。予測内の各バウンディングボックスが、抽出する矩形領域を定義します。予測にはクロップ追跡用の検出IDが含まれている必要があります。1画像あたり複数の検出がある場合、1画像あたり複数のクロップが生成されます。。
  * `mask_opacity` ([*`float_zero_to_one`*](/workflows/ja/gaido/developer-guide/kinds/float-zero-to-one.md)): インスタンスセグメンテーションのクロップにおける背景除去の不透明度（0.0〜1.0）。予測にセグメンテーションマスクが含まれる場合にのみ適用されます（インスタンスセグメンテーション予測）。検出されたインスタンスの外側にある背景ピクセルをどの程度強く除去するかを制御します。0.0 ではクロップは変更されず（背景除去なし）、1.0 では背景が background\_color に完全に置き換えられ、0.0〜1.0 の間の値では元のクロップと背景がブレンドされます。値が高いほど、オブジェクトに焦点を当てたよりきれいなクロップになります。背景除去を無効にするには 0.0 に設定します。マスク付きのインスタンスセグメンテーション予測が必要です。。
  * `background_color` (*Union\[*[*`rgb_color`*](/workflows/ja/gaido/developer-guide/kinds/rgb-color.md)*,* [*`string`*](/workflows/ja/gaido/developer-guide/kinds/string.md)*]*): インスタンスセグメンテーションのクロップから背景を除去する際に使用する背景色。mask\_opacity > 0 の場合かつ予測にセグメンテーションマスクが含まれる場合にのみ適用されます。検出されたインスタンスマスクの外側にある背景ピクセルは、この色に置き換えられます。指定方法は、16進数文字列（例: '#431112' または '#fff'）、括弧付きのRGB文字列（例: '(128, 32, 64)'）、またはRGBタプル（例: (18, 17, 67)）です。デフォルトは黒（0, 0, 0）です。白背景にするには白（255, 255, 255）または '#ffffff' を使用するか、用途に応じた背景要件に合わせてください。色値はRGBとして解釈され、画像処理用にBGRへ変換されます。。
* 出力
  * `クロップ` ([`image`](/workflows/ja/gaido/developer-guide/kinds/image.md)): ワークフロー内の画像。
  * `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/dynamic_crop@v1",
	    "images": "$inputs.image",
	    "predictions": "$steps.my_object_detection_model.predictions",
	    "mask_opacity": "<block_does_not_provide_example>",
	    "background_color": "#431112"
	}
```

</details>
