> 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/roboflow/roboflow-jp/datasets/dataset-versions/image-preprocessing.md).

# 画像の前処理

Preprocessing により、データセットが標準形式（例: すべての画像が同じサイズ）になっていることが保証されます。このステップは、モデルを学習する前にデータセットの整合性を確保するために不可欠です。

Preprocessing は、Train、Valid、Test セット内のすべての画像に適用されます（ [Augmentations](/roboflow/roboflow-jp/datasets/dataset-versions/image-augmentation.md)とは異なり、こちらは Train セットにのみ適用されます）。

Roboflow プラットフォームでは、以下の Preprocessing オプションが利用できます:

* Auto-Orient
* Resize
* Grayscale
* Auto-Adjust Contrast
* Isolate Objects
* Static Crop
* Tile
* Modify Classes
* Filter Null
* Filter by Tag

各オプションについては以下で説明します。

### Auto-Orient

Auto-orient は、画像の EXIF データを削除し、ディスク上に保存されているのと同じ向きで画像が表示されるようにします。

EXIF データは、画像の向きを決定します。アプリケーション（Mac の Preview など）はこのデータを使用して、ディスク上での保存時の向きが異なっていても、特定の向きで画像を表示します。

* Roboflow では、これを有効のままにしておき、推論時に画像がどのようにモデルへ入力されているかを確認することを推奨しています。
* 画像を auto-orient すべきかどうかについて詳しく知りたい場合は、 [こちらのブログをご覧ください](https://blog.roboflow.com/exif-auto-orientation/).

### Resize

Resize は画像サイズを変更し、必要に応じて希望の寸法にスケールします。アノテーションは比例して調整されます（下記の“fill”の場合を除く）。

現在、サポートしているのは縮小のみです。以下に、 [どの resize オプションがユースケースに最適か](https://blog.roboflow.com/you-might-be-resizing-your-images-incorrectly/).

* **Stretch to:** 画像を希望のピクセル単位のサイズに引き伸ばします。アノテーションは比例してスケーリングされます。画像は正方形になり、歪みますが、元の画像データは失われません。
* **Fill (with center crop) in:** 生成される画像は、指定した出力寸法の中央クロップです。たとえば、元画像が 2600x2080 で resize オプションが 640x640 に設定されている場合、出力される resize は元画像の中央 640x640 になります。アスペクト比は維持されますが、元の画像データは失われます。
* **Fit within:** 元の寸法は、元画像のアスペクト比を維持したまま出力画像の寸法に合わせてスケーリングされます。たとえば、元画像が 2600x2080 で resize オプションが 640x640 に設定されている場合、長辺（2600）は 640 にスケールされ、もう一方の辺（2080）は約 512 ピクセルにスケールされます。画像のアスペクト比と元データは維持されますが、正方形にはなりません。
* **Fit (reflect edges) in:** 元の寸法は、元画像のアスペクト比を維持したまま出力画像の寸法に合わせてスケーリングされ、追加されたパディングは元画像の反射になります。たとえば、元画像が 2600x2080 で resize オプションが 416x416 に設定されている場合、長辺（2600）は 416 にスケールされ、もう一方の辺（2080）は約 335.48 ピクセルにスケールされます。残りのピクセル領域（416-335.48、つまり 80.52 ピクセル）は元画像の反射ピクセルになります。特に、Roboflow はデフォルトでアノテーションも反射します。画像は正方形でパディングされ、アスペクト比と元データは維持されます。
* **Fit (black edges) in:** 元の寸法は、元画像のアスペクト比を維持したまま出力画像の寸法に合わせてスケーリングされ、追加されたパディングは黒領域になります。たとえば、元画像が 2600x2080 で resize オプションが 416x416 に設定されている場合、長辺（2600）は 416 にスケールされ、もう一方の辺（2080）は約 335.48 ピクセルにスケールされます。残りのピクセル領域（416-335.48、つまり 80.52 ピクセル）は黒いピクセルになります。画像は正方形で、黒いパディングが付き、アスペクト比と元データは維持されます。
* **Fit (white edges) in:** 元の寸法は、元画像のアスペクト比を維持したまま出力画像の寸法に合わせてスケーリングされ、追加されたパディングは白領域になります。たとえば、元画像が 2600x2080 で resize オプションが 416x416 に設定されている場合、長辺（2600）は 416 にスケールされ、もう一方の辺（2080）は約 335.48 ピクセルにスケールされます。残りのピクセル領域（416-335.48、つまり 80.52 ピクセル）は白いピクセルになります。画像は正方形で、白いパディングが付き、アスペクト比と元データは維持されます。

### Grayscale

RGB チャンネルを持つ画像を単一のグレースケールチャンネルを持つ画像に変換し、メモリを節約できます。各グレースケールピクセルの値は、対応する赤・緑・青ピクセルの加重和として計算されます: Y = 0.2125 R + 0.7154 G + 0.0721 B。

これらの重みは CRT 蛍光体で使用されており、同じ重み付けよりも赤、緑、青の人間の知覚をよりよく表します。（Via [Scikit-Image](https://scikit-image.org/docs/dev/auto_examples/color_exposure/plot_rgb_to_gray.html).)

### Auto-Adjust Contrast

コントラストの低い画像を改善します。私たちは、 [コントラストを前処理ステップとして使うべきかどうかについて](https://blog.roboflow.com/when-to-use-contrast-as-a-preprocessing-step/).

* **Contrast Stretching**について検討してきました: 画像は第 2 パーセンタイルと第 98 パーセンタイルの間に入るすべての強度値を含むように再スケーリングされます。 [さらに表示](http://homepages.inf.ed.ac.uk/rbf/HIPR2/stretch.htm).
* **Histogram Equalization**：画像内で最も頻繁に現れる強度値を「広げる」手法です。均等化された画像はおおよそ一様な分布となり、すべてのピクセル色がほぼ同程度に表現されます。 [さらに表示](https://en.wikipedia.org/wiki/Histogram_equalization).
* **Adaptive Equalization**：Contrast Limited Adaptive Histogram Equalization（CLAHE）。画像の異なるタイル領域で計算したヒストグラムを使用する、局所的なコントラスト強調アルゴリズムです。そのため、画像の大部分より暗い、または明るい領域でも、局所的なディテールを強調できます。（Via [Scikit-Image](https://scikit-image.org/docs/dev/api/skimage.exposure.html#skimage.exposure.equalize_adapthist).)

## Advanced Preprocessing Features

### Isolate Objects

Isolate Objects 変換は、各バウンディングボックスを切り出して個別の画像として抽出します。このステップにより、Object Detection データセットを Classification データセットに変換できます。

データセット内の多くのクラスが似ている場合、2 つのモデルを順番に使うのが一般的です。最初のモデル（object detection）が対象物を見つけ、2 つ目のモデル（classification）がそれが何であるかを識別します。Isolate Objects 変換は、2 つ目のモデルを学習するために必要なデータセットを作成するのに役立ちます。

### Static Crop

![static crop 機能と、その出力例。](/files/eafd79083277dcc27493824b0b060bf42d13cf50)

### Tile

Tiling は、小さな物体を検出する際に役立ちます（特に空中画像や顕微鏡画像のような状況で有効です。デフォルト設定は 2x2 の tiling ですが、必要に応じて調整できます。Tiling は *前に* 前処理パイプライン内で resize よりも先に実行されます。

![tiling ツールと、出力のプレビュー（"grid" で表示）。](/files/e177cd35a913d209f010faee49ff8f3dc4dfbd10)

### Modify Classes

データセットの新しいバージョンを生成する際に、特定のクラスを除外したり、クラスを再マッピング（名前変更）したりするための前処理ツールです。これらの変更は、生成したバージョンにのみ適用されます。基になるデータセットには変更は加えられません。

![「Apple leaf」クラスを除外しています。](/files/b563cce20c9f96a2be336dfbc75e189dbbe82261)

![「scratches」クラスを「scratch」に再マッピングしています。](/files/afcfb906eb143aa512e68e4c2c3cc63db4e5b5ab)

### Filter Null

Filter Null 変換では、データセット内の画像のうち一定割合にアノテーションを付けることを要求できます。null annotation としてマークされた画像、または Modify Classes ツール適用後に「unannotated」となった画像のみが、Filter Null 使用時の対象になります。

この変換は、データセットの大部分に目的の対象物が含まれていない場合に役立ちます。

![Filter Null の前処理ステップを適用しています。](/files/beaf2e1947a6d259059228ed767d2bfd8fb73222)

{% hint style="warning" %}
このツールを使用する前に、データセット内のすべての画像に適切にアノテーションを付け、適切な画像を null annotation として指定し、必要のないクラスは除外しておくようにしてください。
{% endhint %}

{% hint style="info" %}
[Missing アノテーションと Null アノテーションの違い](https://blog.roboflow.com/missing-and-null-image-annotations/)

「Missing Annotations」は、画像にアノテーションが付いていない場合に発生します（画像を未アノテーションのままにすると、学習済みデータセットの性能に問題が生じ、学習に失敗する可能性があります）。Null アノテーションは、 *何も* その画像内に存在せず、モデルに検出させたい対象がない場合にのみ適用してください。
{% endhint %}

### Filter by Tag

Filter by Tag 変換では、どの画像をバージョンに含めるか、または含めないかを、適用されている [Tags](https://docs.roboflow.com/datasets/add-tags-to-images) に基づいてフィルタリングできます。この変換は、新しいデータサブセットでモデルを学習したり、不要な画像を学習から除外したりするのに役立ちます。

各 Tag には 3 つのオプションがあります:

* **Require:** Required タグの付いた画像のみがバージョンに含まれます。
* **Exclude**：Excluded タグの付いた画像はバージョンに含まれません。
* **Allow:** Allowed タグの付いた画像は、Exclude と Require のルールに従ってバージョンに含まれます。

<figure><img src="/files/7d3de324d6b8e0b340104bcac35e98d5027966c2" alt=""><figcaption><p>この例では、生成される Version には <code>do-not-include</code> タグのない画像のみが含まれます。</p></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.roboflow.com/roboflow/roboflow-jp/datasets/dataset-versions/image-preprocessing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
