画像拡張
モデル性能を向上させるために拡張画像を作成します。
画像拡張とは、データセット内で「Train」とマークされた既存の画像に拡張を適用するステップです。このプロセスは、モデルの汎化能力を向上させ、その結果、未見の画像に対してより効果的に動作するようにするのに役立ちます。
拡張なしでプロジェクトを開始することをおすすめします。これにより、元のデータセットの品質を評価できます。拡張を追加した結果、データセットの性能が期待ほど出なかった場合、モデル性能を比較するための基準がありません。
拡張なしでモデルがうまく機能しない場合は、クラスバランス、データの表現、データセットサイズを見直す必要があるかもしれません。拡張なしでモデルの学習に成功したデータセットがある場合は、拡張を追加してモデル性能のさらなる向上を図れます。
いくつかの重要な理由から、拡張は学習時ではなくデータセットのバージョン(「オフライン拡張」)を通じて適用されます。
モデルの再現性が向上します。Roboflowでは、各画像にどのような拡張が適用されたかのコピーを保持できます。たとえば、モデルが暗い画像よりも明るい画像でより良い性能を示すと分かった場合は、低照度の学習データをさらに収集すべきです。
学習時間が短縮されます。拡張はCPUに制約される処理です。GPUで学習しながらオンザフライで拡張を行う場合、各エポックでCPUが拡張済みデータを提供するのをGPUが待つことがよくあります。それが積み重なります。
学習コストが削減されます。拡張はCPUに制約される処理であるため、高価なレンタルGPUは学習用の画像が供給されるのを待つことがよくあります。
拡張の適用方法
拡張は常に、 前処理ステップの後に学習画像へ適用されます。選択した拡張は、拡張設定ごとのランダム化と各設定の値を組み合わせながら積み重ねて、各拡張画像に適用されます。この処理中に重複として現れた画像は、作成されたバージョンから除外されます。
たとえば、「水平方向に反転」と「塩胡椒ノイズ」の拡張を選択した場合、指定された画像はランダムに水平方向へ反転され、ランダムな塩胡椒ノイズが付与されます。
拡張の制限
拡張付きでデータセットのバージョンを作成する場合、「最大バージョンサイズ」オプションで含める拡張画像の最大数を選択できます。
たとえば、3xを選択すると、最終的なデータセットバージョンには各学習元画像が 前処理ステップ 適用され、さらに選択した設定に基づく各画像のランダムな2つの拡張が含まれます。
データセットに100枚の画像があり、train/valid/test の分割が 70/20/10 で、3x の拡張を選択した場合、最終的なデータセットはおおよそ 210/20/10 の分割になります。

画像の重複排除を行い、「Filter Null」のような特定のオプションによって出力から画像が削除されるため、バージョンの最終的な画像数はこの見積もりより少なくなる場合があります。
ご利用のプランによって選択できる最大倍率が決まります。Webアプリではプランで許可された値のみが表示され、APIやPython SDKでそれ以上を指定するとバージョンの生成は失敗します。 料金ページ で各プランの上限をご確認ください。
拡張オプション
Roboflowの拡張は「Basic」または「Enhanced」のいずれかで、2つの異なるレベルで適用できます。
画像レベルの拡張
画像レベルの拡張では、個々のオブジェクトや領域ではなく画像全体に変換を適用して、新しい学習データを作成します。画像全体を変更することで、開発者はより幅広い視覚条件をシミュレートでき、モデルが新しいデータへよりよく汎化するのに役立ちます。
バウンディングボックスレベルの拡張
バウンディングボックスレベルの拡張では、元画像のバウンディングボックスの内容のみを変更して、新しい学習データを作成します。これにより、開発者は問題の条件により適した学習データを作るうえで、より高い制御性を持てます。
A 2019年の論文 で、Googleの研究者たちはモデルに最適なデータを作成するために、バウンディングボックスのみの拡張を使うという考えを提案しました。この論文では、特に小規模データセットで学習したモデルにおいて、バウンディングボックスのみの修正が体系的な改善をもたらすことが示されました。
Enhanced拡張とバウンディングボックス拡張は プレミアム 機能です。
最新のプランとそれに関連する機能については、 料金ページ.
詳細を見る
最終更新
役に立ちましたか?