> 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).

# 画像を前処理

前処理により、データセットが標準形式になります（例：すべての画像が同じサイズになる）。このステップは、モデルを学習する前にデータセットの一貫性を確保するために不可欠です。

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

Roboflow プラットフォームでは、以下の前処理オプションを提供しています。

* 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（中央をクロップして） 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 の蛍光体で使用されています。（ [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/).

* **コントラストストレッチング**：画像を 2 パーセンタイルと 98 パーセンタイルの間に入るすべての強度値を含むように再スケールします。 [詳細を見る](http://homepages.inf.ed.ac.uk/rbf/HIPR2/stretch.htm).
* **ヒストグラム平坦化**：画像内で「最も頻繁に現れる強度値を広げる」手法です。平坦化された画像はおおむね一様な分布になり、すべての色のピクセルがおおよそ同じ割合で表現されます。 [詳細を見る](https://en.wikipedia.org/wiki/Histogram_equalization).
* **適応的平坦化**：コントラスト制限付き適応ヒストグラム平坦化（CLAHE）です。画像の異なるタイル領域ごとに計算したヒストグラムを使用する、局所コントラスト強調アルゴリズムです。そのため、画像の大部分より暗い、または明るい領域でも局所的なディテールを強調できます。（ [Scikit-Image](https://scikit-image.org/docs/dev/api/skimage.exposure.html#skimage.exposure.equalize_adapthist).)

## 高度な前処理機能

### 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 は *前に* 前処理パイプライン内で resizing より

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

### Modify Classes

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

![「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) が適用されているかに基づいて、Version に含めるべき画像と含めるべきでない画像をフィルタできます。この変換は、新しいデータサブセットでモデルを学習したり、不要な画像を学習から除外したりするのに役立ちます。

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

* **Require:** Required タグの付いた画像のみが Version に含まれます。
* **Exclude**：Excluded タグの付いた画像は Version に含まれません。
* **Allow:** Allowed タグの付いた画像は、Exclude および Require ルールに従って Version に含まれます。

<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:

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

The question should be specific, self-contained, and written in natural language.
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.
