Image Augmentation

モデル性能を向上させるための拡張画像を作成します。

画像拡張は、データセット内で「Train」とマークされた既存の画像に拡張処理を適用するステップです。このプロセスは、モデルの汎化能力を向上させ、未知の画像に対してより効果的に動作するのに役立ちます。

拡張処理は、いくつかの重要な理由から、トレーニング時ではなくデータセットバージョン(「オフライン拡張」)を通じて適用されます。

  1. モデルの再現性が向上します。Roboflowを使用すると、各画像がどのように拡張されたかのコピーを保持できます。例えば、モデルが暗い画像よりも明るい画像でより良く動作することが分かった場合、より多くの低照度トレーニングデータを収集するべきです。

  2. トレーニング時間が短縮されます。拡張処理はCPUに依存する操作です。GPUでトレーニングしながらオンザフライで拡張を行うと、各エポックでGPUがCPUから拡張済みデータを待つことがよくあります。それが積み重なります!

  3. トレーニングコストが削減されます。拡張処理はCPUに依存する操作のため、高価なレンタルGPUがトレーニング用画像の供給を待つことがよくあります。

拡張処理の適用方法

拡張処理は常にトレーニング画像に対して 前処理ステップの後に適用されます。選択された拡張処理はまとめて適用され、拡張設定のランダム化と各設定の値が各拡張画像に適用されます。このプロセスで重複として現れる画像は作成されたバージョンから除外されます。

例えば、「水平方向に反転」と「ソルト&ペッパーノイズ」の拡張を選択した場合、ある画像はランダムに水平方向に反転され、ランダムなソルト&ペッパーノイズが加えられます。

拡張処理の制限

拡張処理を含むデータセットバージョンを作成する際、「Maximum Version Size」オプションで含める拡張画像の最大数を選択できます。

例えば、3xを選択すると、最終的なデータセットバージョンには各トレーニング元画像が 前処理ステップ 適用され、さらに設定に基づいて各画像のランダムな拡張2枚が含まれます。

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

バージョンの最終的な画像数は、この見積もりより少なくなる場合があります。これは、画像の重複排除や「Filter Null」などのオプションによって出力から画像が除外されるためです。

拡張オプション

Roboflowの拡張処理は「Basic」と「Enhanced」があり、2つの異なるレベルで適用できます。

画像レベル拡張

画像レベルの拡張は、個々のオブジェクトや領域ではなく画像全体に変換を適用して新しいトレーニングデータを作成します。画像全体を変更することで、開発者はより広範な視覚条件をシミュレートでき、モデルが新しいデータに対してより良く汎化できるようになります。

バウンディングボックスレベル拡張

バウンディングボックスレベルの拡張は、元画像のバウンディングボックスの内容のみを変更して新しいトレーニングデータを作成します。これにより、開発者は問題の条件により適したトレーニングデータを作成するための制御が強化されます。

A 2019年の論文 Googleの研究者によるこの論文では、バウンディングボックスのみの拡張を使用してモデルに最適なデータを作成するというアイデアが紹介されています。この論文では、バウンディングボックスのみの修正が体系的な改善をもたらし、特に小規模なデータセットで学習したモデルに効果的であることが示されました。

Enhanced AugmentationsとBounding Box Augmentationsは プレミアム 機能です。

最新のプランとその関連機能については、 料金ページ.

画像レベル拡張
バウンディングボックス拡張
拡張タイプ

詳細はこちら

Last updated

Was this helpful?