# Image Augmentation

Image augmentation とは、データセット内で "Train" とマークされた既存の画像に augmentations を適用するステップです。このプロセスは、モデルの汎化能力を高め、未見の画像に対してより効果的に動作できるようにするのに役立ちます。

{% hint style="success" %}
augmentations を使わずにプロジェクトを開始することをおすすめします。これにより、生のデータセットの品質を評価できます。augmentations を追加してデータセットの性能が期待どおりでない場合、モデル性能を比較するためのベースラインがなくなります。

augmentations なしでモデルの性能が十分でない場合は、クラスバランス、データ表現、データセットサイズを確認する必要があるかもしれません。augmentations なしでモデルの学習に成功したデータセットがある場合は、augmentations を追加してモデル性能のさらなる向上を図れます。
{% endhint %}

augmentations は、いくつかの重要な理由から、学習時ではなくデータセットのバージョン（"offline augmentation"）を通じて適用されます：

1. **モデルの再現性が向上する**. Roboflow では、各画像がどのように augmentation されたかのコピーを保持できます。たとえば、暗い画像よりも明るい画像のほうがモデルの性能が良いと分かった場合は、低照度の学習データをもっと収集すべきです。
2. **学習時間が短縮される**. augmentations は CPU 制約のある処理です。GPU で学習しながらその場で augmentations を行う場合、各 epoch で CPU が augmentation されたデータを提供するのを GPU が待つことがよくあります。それが積み重なるのです。
3. **学習コストが削減される**. augmentations は CPU 制約のある処理であるため、コストの高いレンタル GPU が学習用の画像を受け取るのを待つことがよくあります。

## Augmentations の適用方法

augmentations は常に、 [前処理ステップ](/roboflow/roboflow-jp/datasets/dataset-versions/image-preprocessing.md)の後に学習画像へ適用されます。選択された augmentations はまとめて適用され、augmentation の設定と各設定値はランダム化され、各 augmented image に適用されます。この処理中に重複として現れる画像は、作成されたバージョンから除外されます。

たとえば、「水平方向に反転」と「salt and pepper noise」を適用する augmentations を選択した場合、対象の画像はランダムに水平方向へ反転され、ランダムな salt and pepper noise が付加されます。

### Augmentations の制限

augmentations 付きのデータセットバージョンを作成する際は、"Maximum Version Size" オプションで含める augmented image の最大数を選択できます。

たとえば 3x を選ぶと、最終的なデータセットバージョンには各 training source image に [前処理ステップ](/roboflow/roboflow-jp/datasets/dataset-versions/image-preprocessing.md) が適用され、さらに選択した設定に基づく各画像のランダムな augmentations が 2 つ含まれます。

データセットに 100 画像があり、train/valid/test の分割が 70/20/10 で、3x augmentations を選択した場合、最終的なデータセットはおおよそ 210/20/10 の分割になります。

<figure><img src="/files/c584f7e5f4328cced68aaf5909c07c080838476d" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
画像の重複排除を行い、また一部のオプション（たとえば "Filter Null"）によって出力から画像が削除されるため、バージョンの最終的な画像数はこの अनुमान より少なくなる場合があります。
{% endhint %}

## Augmentation オプション

Roboflow の augmentations は "Basic" または "Enhanced" のいずれかで、2 つの異なるレベルで適用できます。

### Image Level Augmentations

Image level augmentations は、個々のオブジェクトや領域ではなく画像全体に変換を適用することで、新しい学習データを作成します。画像全体を変更することで、開発者はより広い範囲の視覚条件を再現でき、モデルが新しいデータへよりよく汎化するのを助けます。

### Bounding Box Level Augmentations

Bounding box level augmentation は、ソース画像の bounding boxes の内容のみを変更して新しい学習データを作成します。これにより、開発者は問題の条件により適した学習データを作成するための、より大きな制御を得られます。

A [2019 年の論文](https://arxiv.org/pdf/1906.11172.pdf) で、Google の研究者たちはモデルに最適なデータを作るために bounding box のみの augmentation を使うという考えを紹介しました。この論文では、研究者たちは bounding box のみの変更によって体系的な改善が得られること、特に小さなデータセットで学習したモデルでその効果が大きいことを示しました。

{% hint style="info" %}
Enhanced Augmentations と Bounding Box Augmentations は **premium** 機能です。

プランとそれに対応する機能の最新情報については、こちらをご覧ください： [pricing page](https://roboflow.com/pricing).
{% endhint %}

<table><thead><tr><th></th><th data-type="checkbox">Image Level Augmentation</th><th data-type="checkbox">Bounding Box Augmentation</th><th>Augmentation Type<select><option value="Z8F06MhppTfn" label="Enhanced" color="blue"></option><option value="sdEDfdaf9Z03" label="Basic" color="blue"></option></select></th></tr></thead><tbody><tr><td><a href="/pages/d979490cffedf4c4f33235621e62442699d49d59">Flip Augmentation</a></td><td>true</td><td>true</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/d6f07620af318d0b877731ad9ff97889c9b077f6">90ª Rotate Augmentation</a></td><td>true</td><td>true</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/24cf7fef1c71e2bad728a7589fe0fd725618a253">Crop Augmentation</a></td><td>true</td><td>true</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/9316dbdf44c06e640134911710b3eea495391ccd">Rotation Augmentation</a></td><td>true</td><td>true</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/4815810c5de432941c37f585981819382c5862f8">Shear Augmentation</a></td><td>true</td><td>true</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/f9e02bc0a0e76a372cfccdbed028b7d3683d1984">Grayscale Augmentation</a></td><td>true</td><td>false</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/7e45905a483829909a6190448e89ad55e0ef9f7a">Hue Augmentation</a></td><td>true</td><td>false</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/36bf85cad54f83d82079463e69a39a13911e6ed7">Saturation Augmentation</a></td><td>true</td><td>false</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/49de4c10ec5e5ffd83f0766b13ad73a6fc2fb7e2">Brightness Augmentation</a></td><td>true</td><td>true</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/5c799d0178ec36eef495c15f7049a2a126ff7115">Exposure Augmentation</a></td><td>true</td><td>true</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/d08ceffdeead398aa21cb0cbb3aca2fd9f6d3d86">Blur Augmentation</a></td><td>true</td><td>true</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/3b63a716b48c45c532afea15915db5edba1ede49">Noise Augmentation</a></td><td>true</td><td>true</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/21a20629da86ed96579e02a22b09be53bd0c7eff">Camera Gain Augmentation</a></td><td>true</td><td>true</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/8ad0793363f588db99151c671fcc9696ff1c7f0c">Motion Blur Augmentation</a></td><td>true</td><td>true</td><td><span data-option="sdEDfdaf9Z03">Basic</span></td></tr><tr><td><a href="/pages/fe463e5f380191057ad909416f2adbfaa58ee4d9">Cutout Augmentation</a></td><td>true</td><td>false</td><td><span data-option="Z8F06MhppTfn">Enhanced</span></td></tr><tr><td><a href="/pages/8fc7a60ce8516c28b60a16c8664e34c392605ad5">Mosaic Augmentation</a></td><td>true</td><td>false</td><td><span data-option="Z8F06MhppTfn">Enhanced</span></td></tr></tbody></table>

## Learn More

* [Data Augmentation の究極ガイド](https://blog.roboflow.com/data-augmentation/)
* [Object Detection 向けに画像を Augment する方法](https://blog.roboflow.com/object-detection-augmentation/)


---

# Agent Instructions: 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-augmentation.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.
