> 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百分位に含まれるすべての強度値を含めます。
* **ヒストグラム均等化**: 画像内で最も頻出する強度値を「広げる」処理です。均等化された画像はおおむね一様な分布になり、すべての色のピクセルがほぼ同じ割合で表現されます。 [詳細を見る](https://en.wikipedia.org/wiki/Histogram_equalization).
* **適応的均等化**: コントラスト制限付き適応ヒストグラム均等化（CLAHE）。画像の異なるタイル領域ごとに計算されたヒストグラムを使用する、局所コントラスト強調アルゴリズムです。そのため、画像の大部分よりも暗い、または明るい領域でも局所的なディテールを強調できます。（出典: [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が各画像を同じ相対領域にクロップします。これにより、一貫した関心領域にズームインでき、学習前に不要な境界や背景を除去して、モデルが重要なフレーム部分に集中できるようになります。

![固定クロップ機能と出力例。](https://2416768182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-4f30e8b0a744bea04bcf0dadd480f55d4cb9a034%2FScreenshot%202025-05-20%20at%2009.44.47.png?alt=media)

### タイル分割

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

![タイル分割ツールと出力のプレビュー（「grid」で表示）。](https://2416768182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-7a09d308f703e2805c36bee439ee95451f05ca8b%2FScreenshot%202025-05-20%20at%2009.45.19.png?alt=media)

タイル分割モードは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」クラスを除外しています。](https://2416768182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-37b01b8cc97b0d694bed8bf5d7a445fce3dbd8c9%2FScreenshot%202025-05-20%20at%2009.45.43.png?alt=media)

![「scratches」クラスを「scratch」に再マッピングしています。](https://2416768182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-6c39656c789b92a25f4a7775bb027f33382c706c%2FScreenshot%202025-05-20%20at%2009.46.57.png?alt=media)

### nullをフィルタ

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

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

![Filter Nullの前処理ステップを適用しています。](https://2416768182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-438a722d13a06de4d81a8508b0f1204e3e61fc30%2FScreenshot%202025-05-20%20at%2009.47.41.png?alt=media)

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

{% hint style="info" %}
[欠落した注釈とnull注釈の違い](https://blog.roboflow.com/missing-and-null-image-annotations/)

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

### タグでフィルタ

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

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

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

<figure><img src="https://2416768182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNVfRxNsvCh4GOyqrjmzX%2Fuploads%2Fgit-blob-a4764e905f41d1e1b4e83aa437ce5ebdb7328219%2FScreenshot%202025-05-20%20at%2009.49.32.png?alt=media" alt=""><figcaption><p>この例では、生成されるVersionには <code>do-not-include</code> タグを持たない画像のみが含まれます。</p></figcaption></figure>
