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

# 画像を前処理

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

前処理は、Train、Valid、Test セット内のすべての画像に適用されます（ただし [画像拡張](/datasets/ja/bjon/dataset-versions/image-augmentation.md)、これは Train セットにのみ適用されます）。

Roboflow プラットフォームでは、次の前処理オプションを利用できます：

* 自動向き調整
* リサイズ
* グレースケール
* コントラスト自動調整
* オブジェクト分離
* 固定クロップ
* タイル分割
* クラスの変更
* Null をフィルタ
* タグでフィルタ

各オプションの説明は以下のとおりです。

### 自動向き調整

自動向き調整では、画像から EXIF データを取り除くため、ディスク上に保存されているのと同じ向きで画像が表示されます。

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

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

### リサイズ

リサイズでは、画像サイズを変更し、必要に応じて指定した寸法に合わせてスケーリングします。アノテーションは比例して調整されます（下記の「fill」を除く）。

現在は縮小のみをサポートしています。以下のガイダンスを提供しています： [どのリサイズオプションが用途に最適か](https://blog.roboflow.com/you-might-be-resizing-your-images-incorrectly/).

* **以下に引き伸ばす：** 画像を希望するピクセル単位の寸法に引き伸ばします。アノテーションは比例してスケールされます。画像は正方形になり、歪みますが、元画像データは失われません。
* **〜に、中央クロップで埋める：** 生成される画像は、指定した出力寸法の中央をクロップしたものです。たとえば、元画像が 2600x2080 で、リサイズオプションが 640x640 に設定されている場合、出力されるリサイズ結果は元画像の中央 640x640 です。縦横比は維持されますが、元画像データは失われます。
* **内側に収める：** 元画像の縦横比を維持したまま、元画像の寸法が出力画像の寸法に収まるようにスケーリングされます。たとえば、元画像が 2600x2080 で、リサイズオプションが 640x640 に設定されている場合、長辺（2600）は 640 にスケーリングされ、もう一方の辺（2080）は約 512 ピクセルにスケーリングされます。画像の縦横比と元データは維持されますが、正方形にはなりません。
* **〜に、縁を反射して収める：** 元画像の縦横比を維持したまま、元画像の寸法が出力画像の寸法に収まるようにスケーリングされ、追加で作成されたパディングは元画像を反射した領域になります。たとえば、元画像が 2600x2080 で、リサイズオプションが 416x416 に設定されている場合、長辺（2600）は 416 にスケーリングされ、もう一方の辺（2080）は約 335.48 ピクセルにスケーリングされます。残りのピクセル領域（416-335.48、つまり 80.52 ピクセル）は、元画像の反射ピクセルです。なお、Roboflow は既定でアノテーションも反射します。画像は正方形になり、パディングされ、縦横比と元データは維持されます。
* **〜に、黒い縁で収める：** 元画像の縦横比を維持したまま、元画像の寸法が出力画像の寸法に収まるようにスケーリングされ、追加で作成されたパディングは黒い領域になります。たとえば、元画像が 2600x2080 で、リサイズオプションが 416x416 に設定されている場合、長辺（2600）は 416 にスケーリングされ、もう一方の辺（2080）は約 335.48 ピクセルにスケーリングされます。残りのピクセル領域（416-335.48、つまり 80.52 ピクセル）は黒いピクセルです。画像は正方形になり、黒でパディングされ、縦横比と元データは維持されます。
* **〜に、白い縁で収める：** 元画像の縦横比を維持したまま、元画像の寸法が出力画像の寸法に収まるようにスケーリングされ、追加で作成されたパディングは白い領域になります。たとえば、元画像が 2600x2080 で、リサイズオプションが 416x416 に設定されている場合、長辺（2600）は 416 にスケーリングされ、もう一方の辺（2080）は約 335.48 ピクセルにスケーリングされます。残りのピクセル領域（416-335.48、つまり 80.52 ピクセル）は白いピクセルです。画像は正方形になり、白でパディングされ、縦横比と元データは維持されます。

### グレースケール

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

### コントラスト自動調整

低コントラストの画像を強調します。私たちは検討しました [コントラストを前処理ステップとして使うべきかどうか](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 変換は、各バウンディングボックスを個別の画像としてクロップして抽出します。このステップにより、Object Detection データセットが Classification データセットに変換されます。

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

### 固定クロップ

Static Crop は、データセット内のすべての画像に対して、固定の割合ベースのクロップ領域を適用します。最小および最大の幅・高さの割合を指定すると、Roboflow は各画像をその同じ相対領域にクロップします。これにより、一貫した関心領域をズームインして、学習前に不要な境界や背景を取り除き、モデルが重要なフレーム部分に集中できるようにします。

![static crop 機能と出力例。](/files/3a97e413cb21be907e9b0a20bec9c7ec1381e8bd)

### タイル分割

タイル分割は、小さなオブジェクトの検出に役立ちます（特に航空画像や顕微鏡画像のような状況で）。既定設定は 2x2 のタイル分割ですが、必要に応じて調整できます。タイル分割は *の前に* 前処理パイプラインでのリサイズより

![タイル分割ツールと、出力のプレビュー（「grid」で示したもの）。](/files/349fafb77f17ceebd3cca5518cba0af21eb8a1ba)

### クラスの変更

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

![「Apple leaf」クラスを除外する。](/files/b21c807e5fb57bd5d76c68db4bebdd25fb49d9ae)

![「scratches」クラスを「scratch」に再マッピングする。](/files/dd868089bec1eb6daed9f816664dd7a0f66a631e)

### Null をフィルタ

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

データセットの大部分に目的のオブジェクトが含まれていない場合に役立ちます。

![Filter Null の前処理ステップを適用する。](/files/59afee55967861fbcb5992d534cf0e24d7758287)

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

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

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

### タグでフィルタ

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

各タグには 3 つのオプションがあります：

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

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