コンテンツへスキップ

Ultralytics YOLOデータ増強

画像補強の例

はじめに

データ増強は、既存の画像にさまざまな変換を適用することで、学習データセットを人工的に拡張する、コンピュータ・ビジョンにおける重要なテクニックです。Ultralytics YOLOようなディープラーニングモデルをトレーニングする際、データ増強はモデルのロバスト性を向上させ、オーバーフィッティングを減らし、実世界のシナリオへの汎化を強化するのに役立ちます。

データ補強が重要な理由

データ補強は、コンピュータビジョンモデルのトレーニングにおいて重要な役割を果たす:

  • データセットの拡張:既存の画像のバリエーションを作成することで、新しいデータを収集することなく、トレーニングデータセットのサイズを効果的に増やすことができます。
  • 汎化の向上:モデルは様々な条件下で物体を認識することを学習するため、実世界のアプリケーションにおいてよりロバストになります。
  • オーバーフィッティングの低減:学習データにばらつきを持たせることで、モデルが特定の画像特性を記憶しにくくなる。
  • パフォーマンスの向上:適切な補強によって訓練されたモデルは、通常、検証セットとテストセットでより高い精度を達成する。

Ultralytics YOLO実装は、包括的な一連の補強テクニックを提供し、それぞれが特定の目的を果たし、さまざまな方法でモデルのパフォーマンスに貢献します。このガイドでは、それぞれのオーグメンテーション・パラメーターについて詳しく説明し、プロジェクトで効果的に使用するタイミングと方法を理解できるようにします。

構成例

各パラメーターは、Python API、コマンドラインインターフェースCLI)、または設定ファイルを使用してカスタマイズできます。以下に、各方法におけるデータ増強の設定方法の例を示します。

構成例

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Training with custom augmentation parameters
model.train(data="coco.yaml", epochs=100, hsv_h=0.03, hsv_s=0.6, hsv_v=0.5)

# Training without any augmentations (disabled values omitted for clarity)
model.train(
    data="coco.yaml",
    epochs=100,
    hsv_h=0.0,
    hsv_s=0.0,
    hsv_v=0.0,
    translate=0.0,
    scale=0.0,
    fliplr=0.0,
    mosaic=0.0,
    erasing=0.0,
    auto_augment=None,
)
# Training with custom augmentation parameters
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 hsv_h=0.03 hsv_s=0.6 hsv_v=0.5

設定ファイルの使用

補強を含むすべてのトレーニングパラメータをYAML設定ファイルで定義することができます(例、 train_custom.yaml).その mode パラメータはCLI使うときだけ必要です。この新しいYAMLファイルは デフォルトのもの にある。 ultralytics パッケージで提供される。

# train_custom.yaml
# 'mode' is required only for CLI usage
mode: train
data: coco8.yaml
model: yolo11n.pt
epochs: 100
hsv_h: 0.03
hsv_s: 0.6
hsv_v: 0.5

その後、Python APIを使ってトレーニングを開始する:

列車の例

from ultralytics import YOLO

# Load a COCO-pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Train the model with custom configuration
model.train(cfg="train_custom.yaml")
# Train the model with custom configuration
yolo detect train model="yolo11n.pt" cfg=train_custom.yaml

色空間の拡張

色相調整 (hsv_h)

  • レンジ: 0.0 - 1.0
  • デフォルト: 0.015
  • 使用方法:画像の色と色の関係を維持したままシフトします。その hsv_h ハイパーパラメーターはシフトの大きさを定義し、最終的な調整は以下の間でランダムに選択される。 -hsv_h そして hsv_h.例えば hsv_h=0.3の範囲内でランダムに選択される。-0.3 への 0.3.以上の値の場合 0.5色相のシフトはカラーホイールの周りを回っている。 0.5 そして -0.5.
  • 目的:照明条件が対象物の見た目に大きく影響する屋外での撮影に特に役立つ。例えば、バナナは明るい日差しの下では黄色く見えるが、屋内では緑がかって見える。
  • Ultralytics実装 ランダムHSV
-0.5 -0.25 0.0 0.25 0.5
hsv_h_-0.5_augmentation hsv_h_-0.25_augmentation 拡張アイデンティティ hsv_h_0.25_augmentation hsv_h_-0.5_augmentation

彩度調整 (hsv_s)

  • レンジ: 0.0 - 1.0
  • デフォルト: 0.7
  • 使用方法:画像の色の濃さを変更します。その hsv_h ハイパーパラメーターはシフトの大きさを定義し、最終的な調整は以下の間でランダムに選択される。 -hsv_s そして hsv_s.例えば hsv_s=0.7の範囲内で無作為に選択される。-0.7 への 0.7.
  • 目的:さまざまな天候やカメラ設定に対応できるようにする。例えば、赤い交通標識は晴れた日には非常に鮮やかに見えるが、霧の中ではくすんで色あせたように見える。
  • Ultralytics実装 ランダムHSV
-1.0 -0.5 0.0 0.5 1.0
hsv_s_-1_augmentation hsv_s_-0.5_augmentation 拡張アイデンティティ hsv_s_0.5_augmentation hsv_s_1_augmentation

明るさ調整 (hsv_v)

  • レンジ: 0.0 - 1.0
  • デフォルト: 0.4
  • 使用方法:画像の明るさを変更します。この hsv_v ハイパーパラメーターはシフトの大きさを定義し、最終的な調整は以下の間でランダムに選択される。 -hsv_v そして hsv_v.例えば hsv_v=0.4の範囲内で無作為に選択される。-0.4 への 0.4.
  • 目的:異なる照明条件下で性能を発揮する必要があるモデルのトレーニングに不可欠。例えば、赤いリンゴは日光の下では明るく見えるが、日陰ではかなり暗く見えるかもしれない。
  • Ultralytics実装 ランダムHSV
-1.0 -0.5 0.0 0.5 1.0
hsv_v_-1_augmentation hsv_v_-0.5_augmentation 拡張アイデンティティ hsv_v_0.5_augmentation hsv_v_1_augmentation

幾何学変換

ローテーションdegrees)

  • レンジ: 0.0 への 180
  • デフォルト: 0.0
  • 使用方法:指定した範囲内で画像をランダムに回転させます。画像は degrees ハイパーパラメーターは回転角度を定義し、最終的な調整は以下の間でランダムに選ばれる。 -degrees そして degrees.例えば degrees=10.0の範囲内で無作為に選択される。-10.0 への 10.0.
  • 目的:物体の向きが異なるアプリケーションに不可欠。例えば、ドローンによる空撮画像では、車両はどの方向にも向く可能性があるため、回転に関係なく物体を認識するモデルが必要となる。
  • Ultralytics実装 RandomPerspective
-180 -90 0.0 90 180
180度 度-90度 拡張アイデンティティ 度数_90 degrees_180_augmentation

翻訳 (translate)

  • レンジ: 0.0 - 1.0
  • デフォルト: 0.1
  • 使用方法:画像を水平方向と垂直方向にランダムにシフトします。その translate ハイパーパラメータは、シフトの大きさを定義し、最終的な調整は、以下の範囲内でランダムに2回(各軸に対して1回)選択される。 -translate そして translate.例えば translate=0.5の範囲内でランダムに選択される。-0.5 への 0.5 をx軸に、別の独立したランダムな値がy軸の同じ範囲内で選択される。
  • 目的:モデルが部分的に見えるオブジェクトを検出する学習を助け、オブジェクトの位置に対するロバスト性を向上させる。例えば、車両の損傷評価アプリケーションでは、撮影者の位置や距離によって、車の部品がフレーム内に完全に表示されたり、部分的に表示されたりすることがありますが、並進補強は、完全性や位置に関係なく、これらの特徴を認識するようにモデルを学習させます。
  • Ultralytics実装 RandomPerspective
  • :簡単のため、以下に適用される翻訳は両者とも毎回同じである。 x そして y 軸を使用する。数値 -1.0 そして 1.0は、画像がフレームから完全に外れてしまうため、表示されていない。
-0.5 -0.25 0.0 0.25 0.5
翻訳_0.5_増強 翻訳_-0.25_増強 拡張アイデンティティ 翻訳_0.25_増強 翻訳_0.5_増強

スケールscale)

  • レンジ: ≥0.0
  • デフォルト: 0.5
  • 使用方法:指定された範囲内で画像をランダムな倍率でリサイズします。指定された scale ハイパーパラメーターは、スケーリングファクターを定義し、最終的な調整は、以下の間でランダムに選ばれる。 1-scale そして 1+scale.例えば scale=0.5の範囲内で無作為に選択される。0.5 への 1.5.
  • 目的:モデルがさまざまな距離や大きさの物体を扱えるようにする。例えば、自律走行アプリケーションでは、車両がカメラから様々な距離に現れる可能性があり、モデルはその大きさに関係なく認識する必要があります。
  • Ultralytics実装 RandomPerspective
  • :
    • 価値 -1.0 は画像が消えてしまうので表示しない。 1.0 単純に2倍ズームになる。
    • 以下の表に表示されている値は、ハイパーパラメータを通じて適用される値である。 scale最終的なスケールファクターではない。
    • もし scale よりも大きい。 1.0の間でランダムに選択されるため、画像は非常に小さくなるか、反転する。 1-scale そして 1+scale.例えば scale=3.0の範囲内で無作為に選択される。-2.0 への 4.0.負の値を選ぶと、画像は反転する。
-0.5 -0.25 0.0 0.25 0.5
スケール スケール 拡張アイデンティティ スケール0.25 スケール0.5

剪断 (shear)

  • レンジ: -180 への +180
  • デフォルト: 0.0
  • 使用方法:X軸とY軸の両方に沿って画像を歪ませる幾何学的変換を導入し、平行線を維持しながら画像の一部を効果的に一方向に移動させます。この変換は shear ハイパーパラメーターは剪断角を定義し、最終的な調整は以下の間でランダムに選ばれる。 -shear そして shear.例えば shear=10.0の範囲内で無作為に選択される。-10 への 10 をx軸に、別の独立したランダムな値がy軸の同じ範囲内で選択される。
  • 目的:わずかな傾きや斜めの視点によって生じる視野角の変化にモデルが対応できるようにする。例えば、交通監視では、車や道路標識のような物体は、カメラの配置が垂直でないために斜めに見えることがあります。せん断補強を適用することで、このような斜めの歪みにもかかわらず、モデルが物体を認識することを学習するようになります。
  • Ultralytics実装 RandomPerspective
  • :
    • shear の値は画像を急激に歪ませる可能性があるので、小さな値から始めて徐々に大きくしていくことをお勧めします。
    • 透視変換とは異なり、シアーは奥行きや消失点を導入するのではなく、対辺を平行に保ちながら角度を変えることでオブジェクトの形状を歪める。
-10 -5 0.0 5 10
せん断強度 せん断-5 拡張アイデンティティ シアー_5_オーグメンテーション せん断強度

パースペクティブperspective)

  • レンジ: 0.0 - 0.001
  • デフォルト: 0.0
  • 使用方法:X軸とY軸の両方に沿って完全な透視変換を適用し、異なる深さや角度から見たときにオブジェクトがどのように見えるかをシミュレートします。この perspective ハイパーパラメーターは遠近の大きさを定義し、最終的な調整は以下の間でランダムに選ばれる。 -perspective そして perspective.例えば perspective=0.001の範囲内でランダムに選択される。-0.001 への 0.001 をx軸に、別の独立したランダムな値がy軸の同じ範囲内で選択される。
  • 目的:パースペクティブオーギュメンテーションは、特にパースペクティブシフトによってオブジェクトが手前に縮んだり歪んで見えたりするシナリオで、極端な視点変更を処理するために極めて重要である。例えば、ドローンベースの物体検出では、建物、道路、車両がドローンの傾きや高度に応じて引き伸ばされたり圧縮されたりして見えることがある。パースペクティブ変換を適用することで、モデルはこのようなパースペクティブによる歪みにもかかわらず物体を認識することを学習し、実世界での配備におけるロバスト性を向上させる。
  • Ultralytics実装 RandomPerspective
-0.001 -0.0005 0.0 0.0005 0.001
パースペクティブ 遠近法_-0.0005_オーグメンテーション 拡張アイデンティティ 遠近法_0.0005_オーグメンテーション 遠近法_0.001_拡大

上下反転 (flipud)

  • レンジ: 0.0 - 1.0
  • デフォルト: 0.0
  • 使用方法:Y軸に沿って画像を反転させることで、垂直反転を行います。この変換は画像全体を上下反転させますが、オブジェクト間の空間的な関係はすべて保持します。flipud ハイパーパラメータは、この変換を適用する確率を定義します。 flipud=1.0 すべての画像が反転していることを確認する。 flipud=0.0 トランスフォームを完全に無効にする。例えば flipud=0.5各画像は50%の確率で上下反転する。
  • 目的: 物体が逆さまに見える可能性のあるシナリオに有用。例えば、ロボットビジョンシステムでは、ベルトコンベアやロボットアーム上の物体が様々な向きでピックアップされ、置かれることがある。上下反転は、物体の上下の位置に関係なく物体を認識するのに役立ちます。
  • Ultralytics実装 ランダムフリップ
flipud オフ flipud オン
拡張アイデンティティ フリップド・オン・オーグメンテーション

左右反転 (fliplr)

  • レンジ: 0.0 - 1.0
  • デフォルト: 0.5
  • 使用方法:x 軸に沿って画像をミラーリングすることによって水平反転を行う。この変換は、空間的な一貫性を保ちながら左右を入れ替えるので、鏡映しの向きに現れるオブジェクトに対してモデルを一般化するのに役立ちます。これは fliplr ハイパーパラメータは、変換を適用する確率を定義する。 fliplr=1.0 すべての画像が反転していることを確認する。 fliplr=0.0 トランスフォームを完全に無効にする。例えば fliplr=0.5各画像は50%の確率で左右反転する。
  • 目的:水平反転は、左右の変化に対するロバスト性を向上させるために、物体検出、姿勢推定、顔認識において広く使用されている。例えば、自律走行では、車両や歩行者が道路の左右に現れることがあるが、水平反転は、モデルがどちらの向きでも同じように認識するのに役立つ。
  • Ultralytics実装 ランダムフリップ
fliplr オフ fliplr オン
拡張アイデンティティ フリプラ・オン・オーグメンテーション

BGRチャンネルスワップ(bgr)

  • レンジ: 0.0 - 1.0
  • デフォルト: 0.0
  • 使用方法:画像のカラーチャンネルをRGBからBGRに入れ替え、色の表現順を変更します。その bgr ハイパーパラメータは、変換を適用する確率を定義する。 bgr=1.0 すべての画像がチャンネルスワップを受けるようにし bgr=0.0 を無効にする。例えば bgr=0.5各画像は50%の確率でRGBからBGRに変換される。
  • 目的:異なるカラーチャンネル順序に対するロバスト性を高める。例えば、RGBとBGRフォーマットが一貫して使用されていない可能性のある様々なカメラシステムや画像ライブラリで動作するモデルをトレーニングする場合や、入力カラーフォーマットがトレーニングデータと異なる可能性のある環境にモデルを展開する場合など。
  • Ultralytics実装 フォーマット
bgr オフ bgr オン
拡張アイデンティティ bgr_on_augmentation

モザイクmosaic)

  • レンジ: 0.0 - 1.0
  • デフォルト: 1.0
  • 使用方法:4つのトレーニング画像を1つにまとめる。その mosaic ハイパーパラメータは、変換を適用する確率を定義する。 mosaic=1.0 すべての画像を確実に合成し mosaic=0.0 トランスフォームを無効にする。例えば mosaic=0.5各画像は50%の確率で他の3つの画像と組み合わされる。
  • 目的:小さな物体の検出と文脈理解を向上させるのに非常に効果的。例えば、様々な距離やスケールで動物が出現する可能性のある野生動物保護プロジェクトにおいて、モザイク補強は、限られたデータから多様な学習サンプルを人為的に作成することで、モデルが異なるサイズ、部分的なオクルージョン、環境コンテキストにわたって同じ種を認識することを学習するのに役立ちます。
  • Ultralytics実装 モザイク
  • :
    • たとえ mosaic 増強はモデルをよりロバストにするが、同時に学習プロセスをより困難にする。
    • について mosaic を設定することで、トレーニング終了間際に拡張機能を無効にすることができる。 close_mosaic を、終了前にオフにすべきエポック数に設定する。例えば epochs に設定されている。 200 そして close_mosaic に設定されている。 20その mosaic の後、機能拡張は無効になる。 180 エポック。もし close_mosaic に設定されている。 0その mosaic トレーニングの全過程において、補強が有効になる。
    • 生成されるモザイクの中心はランダムな値を用いて決定され、画像の内側か外側のどちらかになる。
    • 現在の mosaic 拡張は、データセットからランダムに選んだ4枚の画像を合成する。データセットが小さい場合、同じ画像を同じモザイクに複数回使用することができる。
mosaic オフ mosaic オン
拡張アイデンティティ モザイク

ミックスアップmixup)

  • レンジ: 0.0 - 1.0
  • デフォルト: 0.0
  • 使用方法:2つの画像とそのラベルを、与えられた確率でブレンドする。その mixup ハイパーパラメータは、変換を適用する確率を定義する。 mixup=1.0 すべての画像がミックスされ mixup=0.0 トランスフォームを無効にする。例えば mixup=0.5各画像は50%の確率で他の画像と混合する。
  • 目的:モデルのロバスト性を向上させ、オーバーフィッティングを減らす。例えば、小売の商品認識システムにおいて、ミックスアップは、異なる商品の画像をブレンドすることで、モデルがよりロバストな特徴を学習するのを助け、混雑した店内の棚で、商品が部分的に見えたり、他の商品で隠れてしまったりしても、商品を識別できるようにする。
  • Ultralytics実装 ミックスアップ
  • :
    • について mixup 比率は np.random.beta(32.0, 32.0) ベータ分布、つまり各画像の寄与率は約50%で、若干のばらつきがある。
最初の画像 mixup オフ 2枚目の画像、 mixup オフ mixup オン
オーグメンテーション_ミックスアップ_アイデンティティ_1 拡張_ミックスアップ_アイデンティティ_2 ミックスアップ

カットミックスcutmix)

  • レンジ: 0.0 - 1.0
  • デフォルト: 0.0
  • 使用方法:ある画像から矩形領域を切り出し、与えられた確率で別の画像に貼り付ける。その cutmix ハイパーパラメータは、変換を適用する確率を定義する。 cutmix=1.0 すべての画像がこの変換を受け cutmix=0.0 を完全に無効にする。例えば cutmix=0.5各画像は50%の確率で他の画像からのパッチで領域が置き換えられる。
  • 目的:局所的な特徴の完全性を維持しながら、現実的なオクルージョンシナリオを作成することで、モデルのパフォーマンスを向上させる。例えば、自律走行システムにおいて、カットミックスは、車両や歩行者が他の物体によって部分的に隠されていても認識できるようにモデルを学習させ、物体が重なり合う複雑な実環境における検出精度を向上させます。
  • Ultralytics実装 カットミックス
  • :
    • カット領域のサイズと位置は、アプリケーションごとにランダムに決定される。
    • ピクセル値をグローバルにブレンドするミックスアップとは異なります、 cutmix は、カット領域内の元のピクセル強度を維持し、局所的な特徴を保持する。
    • 領域は、既存のどのバウンディングボックスとも重ならない場合にのみ、ターゲット画像に貼り付けられる。さらに、少なくとも 0.1 (10%)が保存される。
    • このバウンディングボックスの最小面積のしきい値は、現在の実装では変更できず、次のように設定されている。 0.1 デフォルトで
最初の画像 cutmix オフ 2枚目の画像、 cutmix オフ cutmix オン
オーグメンテーション_カットミックス_アイデンティティ_1 拡張_カットミックス_アイデンティティ_2 カットミックス

セグメンテーションに特化した補強

コピーペーストcopy_paste)

  • レンジ: 0.0 - 1.0
  • デフォルト: 0.0
  • 使用方法:この拡張機能はセグメンテーションタスクにのみ有効で、指定された確率に基づいて画像内または画像間のオブジェクトをコピーします。 copy_paste_mode.その copy_paste ハイパーパラメータは、変換を適用する確率を定義する。 copy_paste=1.0 すべての画像がコピーされ copy_paste=0.0 トランスフォームを無効にする。例えば copy_paste=0.5各画像には50%の確率で他の画像からコピーされたオブジェクトがある。
  • 目的:インスタンスのセグメンテーションタスクや、稀なオブジェクトクラスに特に有用。例えば、ある種の欠陥がまれにしか現れない工業的な欠陥検出において、コピーペースト補強は、ある画像から別の画像へそれらをコピーすることによって、これらのまれな欠陥の発生を人工的に増加させることができ、追加の欠陥サンプルを必要とすることなく、モデルがこれらの代表的でないケースをよりよく学習するのを助ける。
  • Ultralytics実装コピーペースト
  • :
    • 下の写真にあるように copy_paste 増強は、ある画像から別の画像にオブジェクトをコピーするのに使うことができる。
    • オブジェクトがコピーされると copy_paste_modeIoAは、ソース画像のすべてのオブジェクトと計算されます。すべての IoA が 0.3 (30%)の場合、オブジェクトはターゲット画像に貼り付けられる。IoAが 0.3この場合、オブジェクトはターゲット画像に貼り付けられません。
    • IoAのしきい値は現在の実装では変更できず、次のように設定されている。 0.3 デフォルトで
copy_paste オフ copy_pastecopy_paste_mode=flip を視覚化する。 copy_paste プロセス
拡張アイデンティティ コピー・ペースト・オン・増強 コピーペースト_オーグメンテーション_gif_デモ

コピー・ペースト・モードcopy_paste_mode)

  • オプション: 'flip', 'mixup'
  • デフォルト: 'flip'
  • 使用方法:に使用される方法を決定する。 コピーペースト を増強する。もし 'flip'オブジェクトは同じ画像に由来する。 'mixup' は、オブジェクトを異なる画像からコピーすることができます。
  • 目的:コピーされたオブジェクトをターゲット画像に統合する方法を柔軟に変更できるようにする。
  • Ultralytics実装コピーペースト
  • :
    • IoAの原則はどちらも同じである。 copy_paste_modeしかし、オブジェクトのコピー方法は異なる。
    • 画像サイズによっては、オブジェクトの一部または全部が枠外にコピーされることがある。
    • ポリゴン注釈の品質によっては、コピーされたオブジェクトの形状がオリジナルと比較してわずかに異なる場合があります。
参考画像 選ばれた画像 copy_paste copy_pastecopy_paste_mode=mixup
拡張_ミックスアップ_アイデンティティ_2 拡張アイデンティティ コピー_ペースト_モード_ミックスアップ_増強

クラス別補強

オート・オーグメント(auto_augment)

  • オプション: 'randaugment', 'autoaugment', 'augmix', None
  • デフォルト: 'randaugment'
  • 使用方法:分類のための自動補強ポリシーを適用します。その 'randaugment' オプションは RandAugment を使う、 'autoaugment' はAutoAugmentを使用する。 'augmix' はAugMixを使用しています。設定 None 自動補強を無効にする。
  • 目的:分類タスクに対して自動的に補強戦略を最適化する。違いは以下の通り:
    • 自動補強:このモードはImageNet、CIFAR10、SVHNなどのデータセットから学習された定義済みのオーグメンテーションポリシーを適用する。ユーザはこれらの既存のポリシーを選択できるが、Torchvision内で新しいポリシーをトレーニングすることはできない。特定のデータセットに最適なオーグメント戦略を発見するためには、外部ライブラリやカスタム実装が必要となる。AutoAugment論文を参照。
    • RandAugment:一様な大きさの変換をランダムに選択して適用する。このアプローチは、大規模な探索フェーズの必要性を減らし、モデルのロバスト性を高めつつ、計算効率を向上させる。RandAugment論文への参照。
    • オーグミックスAugMixは、単純な変換のランダムな組み合わせによって多様な画像バリエーションを作成することで、モデルのロバスト性を向上させるデータ拡張手法である。AugMixの論文を参照。
  • Ultralytics実装:classify_augmentations()
  • :
    • 基本的に、3つの方法の主な違いは、補強ポリシーの定義と適用方法である。
    • この3つの方法を詳しく比較した記事があるので参考にしてほしい。

ランダム消去erasing)

  • レンジ: 0.0 - 0.9
  • デフォルト: 0.4
  • 使用方法:分類トレーニング中に画像の一部をランダムに消去する。その erasing ハイパーパラメータは、変換を適用する確率を定義する。 erasing=0.9 ほとんどすべての画像が消去され erasing=0.0 トランスフォームを無効にする。例えば erasing=0.5各画像は50%の確率で一部が消去される。
  • 目的:モデルがロバストな特徴を学習するのを助け、特定の画像領域に過度に依存するのを防ぐ。例えば、顔認識システムにおいて、ランダムな消去は、サングラス、フェイスマスク、または顔の特徴を部分的に覆い隠すかもしれない他のオブジェクトのような部分的なオクルージョンに対してモデルがよりロバストになるのに役立ちます。これにより、不明瞭になる可能性のある際立った特徴のみに依存するのではなく、複数の顔の特徴を用いて個人を識別するようモデルを強制することで、実世界での性能が向上する。
  • Ultralytics実装:classify_augmentations()
  • :
    • について erasing 増強には scale, ratioそして value で変更できないハイパーパラメータ。 現在の実施状況.デフォルト値は以下の通りです。 (0.02, 0.33), (0.3, 3.3)そして 0それぞれ、PyTorch ドキュメンテーション.
    • の上限である。 erasing ハイパーパラメーターを 0.9 すべての画像に変換を適用しないようにする。
erasing オフ erasing オン(例1) erasing オン(例2) erasing オン(例3)
拡張アイデンティティ 消去_ex1_増強 消去_ex2_増強 消去_ex3_増強

よくあるご質問

オーグメンテーションが多すぎて選べない。どれを使えばいいのか、どうすればわかる?

適切な補強の選択は、あなたの特定のユースケースとデータセットに依存します。以下は一般的なガイドラインです:

  • ほとんどの場合、色と明るさのわずかな違いは有益です。デフォルトの hsv_h, hsv_sそして hsv_v は確かな出発点だ。
  • カメラの視点が一貫していて、モデルが配置されても変わらないのであれば、次のような幾何学的変換を省略できる可能性が高い。 rotation, translation, scale, shearあるいは perspective.しかし、カメラアングルが変化する可能性があり、モデルをより堅牢にする必要がある場合は、これらの補強を維持する方がよい。
  • を使用する。 mosaic 部分的にオクルードされたオブジェクトや、画像ごとに複数のオブジェクトがあっても許容され、ラベルの値を変更しない場合にのみ、拡張機能を使用します。あるいは mosaic を増やす。 close_mosaic の値を設定することで、トレーニングの早い段階で無効にすることができる。

要するに、シンプルにすること。小さな拡張セットから始め、必要に応じて徐々に追加していく。ゴールはモデルの汎化性と頑健性を向上させることであり、トレーニングプロセスを複雑にしすぎないことです。また、適用する補強は、モデルが本番で遭遇するのと同じデータ分布を反映していることを確認してください。

トレーニングを開始する際、次のことを確認する。 albumentations: Blur[...] を参照してください。ということは、Ultralytics YOLO 、ぼかしのような追加補強を実行するということですか?

もし albumentations パッケージがインストールされると、Ultralytics それを使って自動的に一連の追加画像補強を適用します。これらの補強は内部で処理され、追加の設定は必要ありません。

適用される変換の完全なリストは、私たちの 技術文書と同様である。 統合ガイド.の確率を持つオーギュメンテーションのみであることに注意。 p より大きい 0 が有効である。これらは、ぼかしやグレースケール効果など、現実世界の視覚的アーチファクトを模倣するために、意図的に低い周波数で適用される。

トレーニングを開始する際、アルブメンテーションに関する記述が見当たらない。なぜですか?

をチェックする。 albumentations パッケージがインストールされている。インストールされていない場合は pip install albumentations.インストールされると、パッケージは自動的に検出され、Ultralytics使用されます。



📅作成:1ヶ月前 ✏️更新しました 23日前

コメント