> 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 セット内のすべての画像に適用されます（とは異なり [Augmentations](/datasets/ja/bjon/dataset-versions/image-augmentation.md)、これは Train セットにのみ適用されます）。

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

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

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

### 自動オリエント

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

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

* 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 の蛍光体で使用されます。（Via [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）です。画像の異なるタイル領域ごとに計算されたヒストグラムを用いて、局所コントラストを強調するアルゴリズムです。そのため、画像の大部分より暗い、または明るい領域でも、局所的な細部を強調できます。（Via [Scikit-Image](https://scikit-image.org/docs/dev/api/skimage.exposure.html#skimage.exposure.equalize_adapthist).)

## 高度な前処理機能

### オブジェクトの分離

オブジェクトの分離変換は、各バウンディングボックスを切り出して個別の画像として抽出します。このステップにより、Object Detection データセットは Classification データセットに変換されます。

データセット内の多くのクラスが似ている場合、2 つのモデルを順番に使用するのが一般的です。1 つ目のモデル（Object Detection）がオブジェクトを見つけ、2 つ目のモデル（Classification）がそれが何であるかを識別します。オブジェクトの分離変換は、2 つ目のモデルを学習するために必要なデータセットを作成するのに役立ちます。

### 静的クロップ

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

![静的クロップ機能と、その出力例。](/files/3a97e413cb21be907e9b0a20bec9c7ec1381e8bd)

### タイル

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

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

タイル化モードは 3 つあります。

<table data-search="false"><thead><tr><th>モード</th><th>内容</th><th>設定</th></tr></thead><tbody><tr><td>グリッド</td><td>各画像を等しい行と列に分割します。タイルサイズは画像サイズに応じて変わります。</td><td>行、列</td></tr><tr><td>固定サイズ</td><td>設定した正確なピクセルサイズで各タイルを切り出すため、タイルはリサイズも歪みもされません。モデルの入力サイズ（例: 640 x 640）に設定してください。</td><td>幅、高さ、オーバーラップ、パディングカラー</td></tr><tr><td>固定アスペクト比</td><td>設定した幅と高さの比率を維持するタイルを切り出します。各タイルは画像の全幅または全高にまたがります。</td><td>アスペクト比、スパン、オーバーラップ、パディングカラー</td></tr></tbody></table>

固定サイズと固定アスペクト比には、2 つの追加設定があります。オーバーラップは、各タイルが次のタイルとどの程度共有されるかを百分率で示します。オブジェクトがタイルの境界上にある場合に使用します。パディングカラー（黒または白）は、各タイルが完全なサイズで出力されるため、画像の右端と下端に残る余白を埋めます。

タイルは各辺が少なくとも 224 ピクセル必要です。固定アスペクト比モードでは、そのサイズのタイルを作成するには小さすぎる画像は、そのまま全体が保持されます。

固定サイズまたは固定アスペクト比を、オブジェクトの分離またはダイナミッククロップと組み合わせることはできません。これらのステップは各画像を個別にクロップするため、一定サイズのタイルは画像と一致しなくなります。代わりにグリッドを使用してください。

Roboflow は、タイル数が各画像のサイズに依存するため、固定サイズおよび固定アスペクト比のバージョンサイズを推定しません。

{% hint style="info" %}
固定サイズと固定アスペクト比は、選択されたワークスペース向けにアプリで利用できます。 [セールスに問い合わせる](https://roboflow.com/sales) して有効化してください。API は、どのワークスペースに対しても 3 つすべてのモードを受け付けます。
{% endhint %}

### クラスの変更

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

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

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

### Null をフィルタ

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

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

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

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

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

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

### タグでフィルタ

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

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

* **必須:** 必須タグが付いた画像のみがバージョンに含まれます。
* **除外**：除外タグが付いた画像はバージョンに含まれません。
* **許可:** 許可タグが付いた画像は、除外および必須ルールの条件のもとでバージョンに含まれます。

<figure><img src="/files/83273e1fa9631a1c1e68baae1ae17cc7053a9d08" alt=""><figcaption><p>この例では、生成されるバージョンには <code>do-not-include</code> タグが付いていない画像のみが含まれます。</p></figcaption></figure>
