> 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〜1の間の値では元の切り抜きと背景をブレンドします。値が高いほど、よりきれいで対象物に焦点を当てた切り抜きになります。背景除去を無効にするには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>

* 入力
  * `画像` ([*`画像`*](/workflows/ja/gaido/developer-guide/kinds/image.md)）：切り抜き領域を抽出する入力画像です。単一画像または画像バッチを指定できます。各画像は対応する検出予測とともに処理され、バウンディングボックス領域が抽出されます。切り抜き領域は予測結果内のバウンディングボックスに基づいて抽出されます。ネストされた切り抜きワークフローのために、別の Dynamic Crop ステップからすでに切り抜かれた画像も受け取れます。
  * `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)*]*）：画像から切り抜く領域を定義するバウンディングボックスを含む検出モデルの予測結果です。物体検出（バウンディングボックス）、インスタンスセグメンテーション（セグメンテーションマスク付きバウンディングボックス）、またはキーポイント検出（キーポイント付きバウンディングボックス）の予測に対応します。予測結果内の各バウンディングボックスが、抽出する矩形領域を定義します。予測には切り抜き追跡用の検出IDを含める必要があります。画像ごとに複数の検出がある場合、画像ごとに複数の切り抜きが生成されます。
  * `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〜1の間の値では元の切り抜きと背景をブレンドします。値が高いほど、よりきれいで対象物に焦点を当てた切り抜きになります。背景除去を無効にするには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)*]*&#x30A4;ンスタンスセグメンテーションの切り抜きから背景を除去する際に使用する背景色です。mask\_opacity > 0 かつ予測結果にセグメンテーションマスクが含まれる場合にのみ適用されます。検出されたインスタンスマスクの外側にある背景ピクセルはこの色に置き換えられます。指定方法は、16進文字列（例：'#431112' または '#fff'）、かっこ付きのRGB文字列（例：'(128, 32, 64)'）、またはRGBタプル（例：'(18, 17, 67)'）です。既定値は黒（0, 0, 0）です。白背景にする場合は白（255, 255, 255）または '#ffffff' を使用するか、用途に応じた背景要件に合わせてください。色値はRGBとして解釈され、画像処理のためにBGRへ変換されます。。
* 出力
  * `切り抜き` ([`画像`](/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(...) オブジェクトの形式で持つ予測。 `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>
