構成
YOLO 設定とハイパーパラメータは、モデルのパフォーマンス、スピード、精度に重要な役割を果たします。これらの設定とハイパーパラメータは、トレーニング、検証、予測など、モデル開発プロセスのさまざまな段階でモデルの動作に影響を与えます。
見るんだ: MasteringUltralytics YOLO : コンフィギュレーション
Ultralytics コマンドは以下の構文を使う:
例
どこでだ:
TASK
(オプション) は (見つける, セグメント, 分類する, ポーズ, オッブ)MODE
(必須) は (汽車, 値, 予測, 輸出, トラック, ベンチマーク)ARGS
(オプション)はarg=value
のようなペア。imgsz=640
デフォルトを上書きする。
デフォルト ARG
このページでは cfg/defaults.yaml
ファイル.
タスク
YOLO モデルは、検出、セグメンテーション、分類、ポーズなど、さまざまなタスクに使用できる。これらのタスクは、生成される出力のタイプや、解決するために設計された特定の問題が異なります。
- 検出する:画像やビデオ内の対象物や関心領域を特定し、位置を特定する。
- セグメント:画像やビデオを、異なるオブジェクトやクラスに対応する領域やピクセルに分割すること。
- 分類する:入力画像のクラスラベルを予測する。
- ポーズ:画像やビデオ内のオブジェクトを識別し、そのキーポイントを推定する。
- OBB: 衛星画像や医療用画像に適した、オリエンテッド(回転した)バウンディングボックス。
議論 | デフォルト | 説明 |
---|---|---|
task | 'detect' | 実行するYOLO タスクを指定する。オプションには以下が含まれる。 detect にとって オブジェクト検出, segment セグメンテーションのために、 classify を分類する、 pose ポーズ推定と obb オリエンテッドなバウンディングボックス各タスクは、画像やビデオ解析における特定のタイプの出力や問題に合わせて調整されています。 |
モード
YOLO モデルは、あなたが解決しようとしている特定の問題に応じて異なるモードで使用することができます。これらのモードには以下が含まれる:
- 訓練する:カスタムデータセットでYOLO11モデルをトレーニングする。
- Val: 学習後のYOLO11モデルの検証用。
- 予測する:新しい画像や動画に対して、学習済みのYOLO11モデルを使って予測を行う。
- エクスポート:YOLO11モデルをデプロイに使用できる形式にエクスポートする。
- 追跡:YOLO11モデルを使ってリアルタイムで物体を追跡する。
- ベンチマーク:YOLO11エクスポート(ONNX,TensorRT など)の速度と精度のベンチマーク用。
議論 | デフォルト | 説明 |
---|---|---|
mode | 'train' | YOLO モデルが動作するモードを指定します。オプションは以下の通り。 train をモデルトレーニングに使用する、 val を検証する、 predict 新しいデータに対する推論のために、 export モデルの展開形式への変換 track 物体追跡用 benchmark 性能評価用各モードは、開発から配備まで、モデルライフサイクルのさまざまな段階に対応するように設計されている。 |
列車設定
YOLO モデルの学習設定は、学習プロセスで使用される様々なハイパーパラメータと設定を包含する。これらの設定はモデルのパフォーマンス、スピード、精度に影響を与える。主要な学習設定には、バッチサイズ、学習率、モメンタム、ウェイト減衰が含まれる。さらに、オプティマイザ、損失関数、学習データセットの構成などの選択も学習プロセスに影響を与えます。パフォーマンスを最適化するためには、これらの設定を慎重にチューニングし、実験することが重要です。
議論 | デフォルト | 説明 |
---|---|---|
model | None | トレーニング用のモデルファイルを指定します。ファイルへのパスを指定します。 .pt 訓練済みモデルまたは .yaml 設定ファイル。モデル構造の定義や重みの初期化に不可欠。 |
data | None | データセット設定ファイルへのパス(例. coco8.yaml ).このファイルにはデータセット固有のパラメータが含まれる。 検証データクラス名、クラス数 |
epochs | 100 | 学習エポックの総数。各エポックはデータセット全体のフルパスを意味する。この値を調整することで、トレーニング期間とモデルのパフォーマンスに影響を与えることができる。 |
time | None | 最大トレーニング時間(時間単位)。設定すると epochs 引数を指定することで、指定した期間後にトレーニングを自動的に停止することができます。時間に制約のあるトレーニングシナリオに便利です。 |
patience | 100 | 学習を早期に停止する前に、検証メトリクスに改善が見られない場合のエポック数。性能が頭打ちになったときに学習を停止することで、オーバーフィッティングを防ぐことができます。 |
batch | 16 | バッチサイズ3つのモードがある、 batch=16 )、GPU メモリ使用率60%の自動モード(batch=-1 )、または利用率を指定した自動モード(batch=0.70 ). |
imgsz | 640 | トレーニングのターゲット画像サイズ。すべての画像は、モデルに入力される前に、この次元にリサイズされます。モデルの精度と計算の複雑さに影響します。 |
save | True | トレーニングのチェックポイントと最終的なモデルの重みを保存できるようにします。トレーニングの再開やモデルのデプロイに便利です。 |
save_period | -1 | モデルのチェックポイントを保存する頻度をエポックで指定します。値を-1にすると、この機能は無効になります。長いトレーニングセッション中に中間モデルを保存するのに便利です。 |
cache | False | データセット画像をメモリ上にキャッシュできるようにする (True /ram )、ディスク(disk )、または無効にする(False ).メモリ使用量の増加と引き換えに、ディスクI/Oを削減することでトレーニング速度を向上させる。 |
device | None | トレーニングに使用する計算デバイスを指定します: シングルGPU (device=0 )、マルチGPU(device=0,1 )、CPU (device=cpu )、またはアップル・シリコン用のMPS (device=mps ). |
workers | 8 | データロードのためのワーカースレッド数(1スレッドあたり RANK マルチGPU トレーニングの場合)。データの前処理とモデルへの投入速度に影響し、特にマルチGPU セットアップで有用。 |
project | None | トレーニング出力が保存されるプロジェクトディレクトリの名前。異なる実験を整理して保存できるようにする。 |
name | None | トレーニング実行の名前。プロジェクトフォルダ内にサブディレクトリを作成し、そこにトレーニングログと出力を保存します。 |
exist_ok | False | Trueの場合、既存のproject/nameディレクトリを上書きできる。以前の出力を手動で消去する必要がなく、繰り返し実験するのに便利です。 |
pretrained | True | 事前に訓練されたモデルから学習を開始するかどうかを決定します。ブール値または特定のモデルへの文字列パスを指定し、そこから重みを読み込みます。トレーニングの効率とモデルのパフォーマンスを向上させます。 |
optimizer | 'auto' | トレーニング用オプティマイザーの選択。オプション SGD , Adam , AdamW , NAdam , RAdam , RMSProp など、あるいは auto モデル構成に基づく自動選択。収束速度と安定性に影響。 |
seed | 0 | トレーニング用のランダムシードを設定し、同じコンフィギュレーションで実行した場合の結果の再現性を確保します。 |
deterministic | True | 決定論的アルゴリズムの使用を強制し、再現性を確保するが、非決定論的アルゴリズムの制限により、パフォーマンスとスピードに影響を与える可能性がある。 |
single_cls | False | マルチクラスデータセットのすべてのクラスを1つのクラスとして扱う。バイナリ分類タスクや、分類よりもオブジェクトの存在に注目する場合に便利。 |
rect | False | 最小限のパディングのためにバッチ構成を最適化し、矩形学習を可能にする。効率とスピードが向上しますが、モデルの精度に影響を与える可能性があります。 |
cos_lr | False | コサイン学習率スケジューラを利用し、エポックにわたってコサイン曲線に従って学習率を調整する。より良い収束のための学習率管理に役立つ。 |
close_mosaic | 10 | トレーニング完了前に安定させるため、最後のNエポックでのモザイクデータ増大を無効にする。0に設定するとこの機能は無効になる。 |
resume | False | 最後に保存したチェックポイントからトレーニングを再開。モデルの重み、オプティマイザの状態、エポックカウントを自動的にロードし、シームレスにトレーニングを継続。 |
amp | True | 自動混合精度(AMP)トレーニングが可能になり、メモリ使用量を削減し、精度への影響を最小限に抑えながらトレーニングを高速化できる可能性があります。 |
fraction | 1.0 | 学習に使用するデータセットの割合を指定します。実験やリソースが限られている場合に便利です。 |
profile | False | トレーニング中のONNX とTensorRT 速度のプロファイリングを可能にし、モデル展開の最適化に役立つ。 |
freeze | None | モデルの最初のN層、またはインデックスで指定した層をフリーズし、学習可能なパラメータの数を減らす。微調整や転移学習に役立つ。 |
lr0 | 0.01 | 初期学習率 SGD=1E-2 , Adam=1E-3 ) .この値を調整することは、最適化プロセスにとって非常に重要であり、モデルの重みの更新速度に影響する。 |
lrf | 0.01 | 初期学習率に対する最終学習率の割合 = (lr0 * lrf )をスケジューラと組み合わせて使用し、時間経過とともに学習率を調整する。 |
momentum | 0.937 | SGDの場合はモメンタム係数、Adamオプティマイザの場合はβ1で、過去の勾配を現在の更新に反映させる。 |
weight_decay | 0.0005 | L2正則化項は、オーバーフィッティングを防ぐために大きな重みにペナルティを与える。 |
warmup_epochs | 3.0 | 学習率のウォームアップのためのエポック数。学習率を低い値から初期学習率まで徐々に上げていき、早期に学習を安定させる。 |
warmup_momentum | 0.8 | ウォームアップ期の初期モメンタムは、ウォームアップ期間中に設定されたモメンタムに徐々に調整される。 |
warmup_bias_lr | 0.1 | ウォームアップフェーズにおけるバイアスパラメータの学習率は、初期エポックにおけるモデル学習を安定させるのに役立つ。 |
box | 7.5 | バウンディングボックスの座標を正確に予測することにどれだけ重点を置くかに影響する。 |
cls | 0.5 | 全損失関数における分類損失の重みで、他のコンポーネントに対する正しいクラス予測の重要性に影響する。 |
dfl | 1.5 | 分布フォーカルロスの重み。YOLO の特定のバージョンで、細かい分類に使用される。 |
pose | 12.0 | ポーズ推定用に学習されたモデルにおけるポーズロスの重み。ポーズキーポイントを正確に予測することに重点が置かれていることが影響している。 |
kobj | 2.0 | ポーズ推定モデルにおけるキーポイントのオブジェクトネス損失の重み、検出信頼度とポーズ精度のバランス。 |
label_smoothing | 0.0 | ラベルスムージングを適用し、ハードラベルをターゲットラベルとラベル上の一様分布の混合に柔らかくすることで、汎化を改善することができる。 |
nbs | 64 | ロスを正規化するための公称バッチサイズ。 |
overlap_mask | True | オブジェクトのマスクをトレーニング用に1つのマスクにマージするか、オブジェクトごとに別々にするかを決定します。オーバーラップの場合、小さいマスクはマージ時に大きいマスクの上にオーバーレイされます。 |
mask_ratio | 4 | セグメンテーションマスクのダウンサンプル比。トレーニング時に使用するマスクの解像度に影響する。 |
dropout | 0.0 | 分類タスクにおける正則化のためのドロップアウト率。トレーニング中にユニットをランダムに省略することでオーバーフィッティングを防ぐ。 |
val | True | トレーニング中に検証を有効にし、別のデータセットでモデルの性能を定期的に評価できるようにする。 |
plots | False | 予測例だけでなく、訓練と検証のメトリクスのプロットを生成して保存し、モデルのパフォーマンスと学習の進行に関する視覚的な洞察を提供します。 |
バッチサイズ設定に関する注意事項
について batch
引数は3つの方法で設定できる:
- 固定バッチサイズ: 整数値を設定します (例:
batch=16
)、バッチあたりの画像数を直接指定する。 - オートモード (60%GPU メモリー):使う
batch=-1
を使用して、CUDA メモリ使用率が約 60% になるようにバッチサイズを自動的に調整します。 - 使用率率による自動モード:分数の値を設定します(例:
batch=0.70
) を使って、GPU メモリ使用量の指定された割合に基づいてバッチサイズを調整する。
設定の予測
YOLO モデルの予測設定は、ハイパーパラメータと設定の範囲を包含し、新しいデータに対する推論中のモデルのパフォーマンス、スピード、精度に影響する。特定のタスクに対して最適なパフォーマンスを達成するためには、これらの設定を注意深くチューニングし、実験することが不可欠です。主要な設定には、信頼度閾値、非最大抑制(NMS)閾値、および考慮するクラス数が含まれます。予測プロセスに影響を与えるその他の要因としては、入力データのサイズと形式、マスクやボックスごとの複数のラベルのような補助的な特徴の存在、モデルが採用される特定のタスクなどがある。
推論引数:
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
source | str | 'ultralytics/assets' | 推論のデータソースを指定します。画像パス、ビデオファイル、ディレクトリ、URL、またはライブフィードのデバイスIDを指定できます。幅広いフォーマットとソースをサポートしているため、さまざまなタイプの入力に柔軟に対応できます。 |
conf | float | 0.25 | 検出の最小信頼度しきい値を設定します。この閾値以下の信頼度で検出されたオブジェクトは無視されます。この値を調整することで、誤検出を減らすことができます。 |
iou | float | 0.7 | Non-Maximum Suppression (NMS)のIntersection Over Union(IoU)しきい値。値が低いほど、重複するボックスが排除されるため検出数が少なくなり、重複を減らすのに便利です。 |
imgsz | int or tuple | 640 | 推論のための画像サイズを定義する。単一の整数値 640 正方形にリサイズする場合、または(高さ、幅)のタプルを使用します。適切なサイジングは検出を向上させる 精度 と処理速度。 |
half | bool | False | 半精度(FP16)推論が可能になり、サポートされているGPUでのモデル推論を、精度への影響を最小限に抑えながら高速化することができます。 |
device | str | None | 推論を行うデバイスを指定する(例. cpu , cuda:0 または 0 ).CPU 、特定のGPU 、またはモデル実行のための他のコンピュート・デバイスを選択することができます。 |
max_det | int | 300 | 画像あたりの最大検出数。1回の推論でモデルが検出できるオブジェクトの総数を制限し、密集したシーンでの過剰な出力を防ぎます。 |
vid_stride | int | 1 | ビデオ入力のフレームストライド。時間的な解像度を犠牲にして処理を高速化するために、ビデオのフレームをスキップできるようにする。1の値はすべてのフレームを処理し、それ以上の値はフレームをスキップする。 |
stream_buffer | bool | False | ビデオストリームの受信フレームをキューに入れるかどうかを決定する。もし False もし`True'なら、新しいフレームに対応するために古いフレームを削除する(リアルタイムアプリケーションに最適化されている)。もし `True' なら、新しいフレームをバッファにキューイングし、フレームがスキップされないようにしますが、推論の FPS がストリームの FPS より低い場合は遅延が発生します。 |
visualize | bool | False | 推論中にモデルの特徴を可視化し、モデルが何を「見て」いるのかを知ることができます。デバッグやモデルの解釈に役立ちます。 |
augment | bool | False | 予測に対するテスト時間拡張(TTA)を可能にし、推論速度を犠牲にすることで検出のロバスト性を向上させる可能性がある。 |
agnostic_nms | bool | False | 異なるクラスのオーバーラップしたボックスをマージする、クラスにとらわれない非最大抑制(NMS)を有効にします。クラスの重複が一般的なマルチクラス検出シナリオで有用。 |
classes | list[int] | None | クラス ID のセットに予測をフィルタリングします。指定されたクラスに属する検出のみが返されます。複数クラスの検出タスクで、関連するオブジェクトに焦点を当てるのに便利です。 |
retina_masks | bool | False | 高解像度のセグメンテーションマスクを返します。返されるマスク (masks.data )が有効なら、元の画像サイズと一致する。無効にすると、推論時に使われた画像サイズになります。 |
embed | list[int] | None | 特徴ベクトルまたは埋め込みを抽出するレイヤを指定します。クラスタリングや類似検索のような下流のタスクに便利です。 |
project | str | None | 以下の場合、予測出力が保存されるプロジェクト・ディレクトリの名前。 save が有効になっている。 |
name | str | None | 予測ランの名前。プロジェクト・フォルダ内にサブ・ディレクトリを作成するために使用されます。 save が有効になっている。 |
可視化の引数:
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
show | bool | False | もし True 注釈付きの画像やビデオをウィンドウに表示します。開発中やテスト中の即時の視覚的フィードバックに便利です。 |
save | bool | False または True | 注釈付きの画像や動画をファイルに保存できます。文書化、さらなる分析、結果の共有に便利です。デフォルトは、CLI の場合は True、Python の場合は False です。 |
save_frames | bool | False | 動画を処理する際、個々のフレームを画像として保存します。特定のフレームを抽出したり、フレームごとの詳細な分析に便利です。 |
save_txt | bool | False | 検出結果をテキストファイルに保存します。 [class] [x_center] [y_center] [width] [height] [confidence] .他の分析ツールとの統合に便利。 |
save_conf | bool | False | 保存されたテキストファイルに信頼度スコアが含まれます。後処理や分析に利用できる詳細な情報が強化されます。 |
save_crop | bool | False | 検出画像をトリミングして保存します。データセットの補強や分析、特定の対象物に特化したデータセットの作成に便利です。 |
show_labels | bool | True | 視覚出力に各検出のラベルを表示。検出されたオブジェクトを即座に理解できます。 |
show_conf | bool | True | 各検出の信頼スコアがラベルと一緒に表示されます。各検出に対するモデルの確信度を示します。 |
show_boxes | bool | True | 検出されたオブジェクトの周囲にバウンディングボックスを描画します。画像やビデオフレーム内のオブジェクトを視覚的に識別し、位置を特定するために不可欠です。 |
line_width | None または int | None | バウンディングボックスの線幅を指定します。もし None 画像サイズに応じて線幅が自動的に調整されます。視覚的にわかりやすくカスタマイズできます。 |
バリデーション設定
YOLO モデルのval(検証)設定には、検証データセット上でモデルのパフォーマンスを評価するために使用される様々なハイパーパラメータと設定が含まれる。これらの設定は、モデルの性能、スピード、精度に影響します。一般的なYOLO の検証設定には、バッチサイズ、トレーニング中の検証頻度、性能評価メトリクスが含まれる。検証プロセスに影響を与える他の要因には、検証データセットのサイズや構成、モデルが採用される特定のタスクなどがあります。
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
data | str | None | データセット設定ファイルへのパスを指定する(例. coco8.yaml ).このファイルには 検証データクラス名、クラス数 |
imgsz | int | 640 | 入力画像のサイズを定義します。すべての画像は、処理前にこの寸法にリサイズされます。 |
batch | int | 16 | バッチあたりの画像数を設定します。使用方法 -1 オートバッチは、GPU メモリの可用性に基づいて自動的に調整されます。 |
save_json | bool | False | もし True さらに分析したり、他のツールと統合したりするために、結果をJSONファイルに保存します。 |
save_hybrid | bool | False | もし True ラベルのハイブリッドバージョンは、元のアノテーションと追加モデルの予測を組み合わせて保存します。 |
conf | float | 0.001 | 検出の最小信頼度閾値を設定する。この閾値以下の信頼度の検出は破棄される。 |
iou | float | 0.6 | Non-Maximum Suppression(NMS)のIntersection Over Union(IoU)しきい値を設定します。重複検出の低減に役立ちます。 |
max_det | int | 300 | 画像あたりの最大検出数を制限します。密なシーンで過剰な検出を防ぐのに便利です。 |
half | bool | True | 半精度(FP16)計算が可能になり、メモリ使用量が削減され、精度への影響を最小限に抑えながら速度が向上する可能性があります。 |
device | str | None | 検証用デバイスを指定する (cpu , cuda:0 など)。CPU またはGPU のリソースを柔軟に利用できる。 |
dnn | bool | False | もし True を使用している。 オープンCV ONNX モデル推論のためのDNNモジュール。 PyTorch 推論方法。 |
plots | bool | False | に設定した場合 True また、モデルの性能を視覚的に評価するために、予測値とグランドトゥルースのプロットを生成し、保存します。 |
rect | bool | True | もし True 矩形推論をバッチングに使用することで、パディングを減らし、スピードと効率を向上させる可能性がある。 |
split | str | val | 検証に使うデータセットの分割を決定する (val , test あるいは train ).性能評価用のデータセグメントを柔軟に選択できる。 |
project | str | None | 検証出力が保存されるプロジェクト・ディレクトリの名前。 |
name | str | None | 検証実行の名前。プロジェクトフォルダ内にサブディレクトリを作成し、そこに検証ログと出力を保存します。 |
検証データセットで最適なパフォーマンスを確保し、オーバーフィッティングを検出・防止するためには、これらの設定を慎重にチューニングし、実験することが極めて重要である。
エクスポート設定
YOLO モデルのエクスポート設定には、異なる環境やプラットフォームで使用するためのモデルの保存やエクスポートに関する設定やオプションが含まれます。これらの設定は、モデルのパフォーマンス、サイズ、さまざまなシステムとの互換性に影響を与える可能性があります。主なエクスポート設定には、エクスポートされるモデルのファイル形式(例:ONNX 、TensorFlow SavedModel )、ターゲット・デバイス(例:CPU 、GPU )、およびマスクやボックスごとの複数のラベルなどの追加機能が含まれる。エクスポートプロセスは、モデル固有のタスクや、エクスポート先の環境やプラットフォームの要件や制約にも影響される場合があります。
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
format | str | 'torchscript' | エクスポートされるモデルのターゲットフォーマット。 'onnx' , 'torchscript' , 'tensorflow' など、さまざまな展開環境との互換性を定義している。 |
imgsz | int または tuple | 640 | モデル入力に必要な画像サイズ。正方形画像の場合は整数,正方形画像の場合はタプルになります. (height, width) 具体的な寸法については |
keras | bool | False | のKerasフォーマットへのエクスポートを可能にする。 TensorFlowSavedModel TensorFlow サービングと API との互換性を提供します。 |
optimize | bool | False | TorchScript へのエクスポート時にモバイルデバイス向けの最適化を適用し、モデルサイズを縮小してパフォーマンスを向上させる可能性があります。 |
half | bool | False | FP16(半精度)量子化を有効にし、モデルサイズを縮小し、サポートされているハードウェアでの推論を高速化する可能性があります。 |
int8 | bool | False | INT8量子化を有効にし、モデルをさらに圧縮し、主にエッジデバイスのために、最小限の精度損失で推論を高速化する。 |
dynamic | bool | False | ONNX 、TensorRT 、OpenVINO エクスポートのための動的な入力サイズを可能にし、さまざまな画像寸法を扱う柔軟性を高めます。 |
simplify | bool | True | でのONNX エクスポートのモデルグラフを簡素化する。 onnxslim パフォーマンスと互換性を向上させる可能性がある。 |
opset | int | None | 異なるONNX パーサーやランタイムとの互換性のために、ONNX のオペセットのバージョンを指定します。設定されていない場合は、サポートされている最新のバージョンを使用します。 |
workspace | float | 4.0 | TensorRT 、メモリ使用量とパフォーマンスのバランスをとりながら最適化するために、ワークスペースの最大サイズをGiB単位で設定します。 |
nms | bool | False | 正確で効率的な検出の後処理に不可欠な非最大抑制(NMS)をCoreML エクスポートに追加します。 |
batch | int | 1 | エクスポートモデルのバッチ推論サイズ、またはエクスポートされたモデルが同時に処理する画像の最大数を指定します。 predict モードだ。 |
device | str | None | エクスポートするデバイスを指定:GPU (device=0 )、CPU (device=cpu )、アップル・シリコン用MPS (device=mps )またはDLA forNVIDIA Jetson (device=dla:0 または device=dla:1 ). |
エクスポートされたモデルが意図されたユースケースに最適化され、ターゲット環境で効果的に機能するように、これらの設定を慎重に構成することが極めて重要です。
オーグメンテーションの設定
オーグメンテーション技術は、学習データに可変性を導入することで、YOLO モデルのロバスト性とパフォーマンスを向上させ、モデルが未知のデータに対してより良く汎化できるようにするために不可欠です。以下の表は、それぞれのオーグメンテーションの目的と効果の概要です:
議論 | タイプ | デフォルト | レンジ | 説明 |
---|---|---|---|---|
hsv_h | float | 0.015 | 0.0 - 1.0 | 画像の色相をカラーホイールの数分の一だけ調整し、色のばらつきを導入します。異なる照明条件でのモデルの一般化を助けます。 |
hsv_s | float | 0.7 | 0.0 - 1.0 | 画像の彩度をほんの少し変化させ、色の濃さに影響を与えます。異なる環境条件をシミュレートするのに便利です。 |
hsv_v | float | 0.4 | 0.0 - 1.0 | 画像の値(明るさ)を小数で変更し、さまざまな照明条件下でモデルがうまく機能するようにします。 |
degrees | float | 0.0 | -180 - +180 | 指定した度数の範囲内で画像をランダムに回転させ、さまざまな向きのオブジェクトを認識するモデルの能力を向上させます。 |
translate | float | 0.1 | 0.0 - 1.0 | 画像を水平方向と垂直方向に画像サイズの数分の一だけ平行移動させ、部分的に見える物体を検出する学習に役立てる。 |
scale | float | 0.5 | >=0.0 | 画像をゲイン係数でスケーリングし、カメラから異なる距離にある物体をシミュレートする。 |
shear | float | 0.0 | -180 - +180 | 画像を指定した角度で切断し、物体を異なる角度から見たときの効果を模倣する。 |
perspective | float | 0.0 | 0.0 - 0.001 | 画像にランダムな透視変換を適用し、3D空間のオブジェクトを理解するモデルの能力を高める。 |
flipud | float | 0.0 | 0.0 - 1.0 | 指定された確率で画像を上下反転させ、対象物の特性に影響を与えることなくデータのばらつきを大きくする。 |
fliplr | float | 0.5 | 0.0 - 1.0 | 左右対称のオブジェクトを学習したり、データセットの多様性を高めたりするのに役立つ。 |
bgr | float | 0.0 | 0.0 - 1.0 | 指定した確率で画像チャンネルをRGBからBGRに反転させます。チャンネルの順序が正しくない場合のロバスト性を高めるのに役立ちます。 |
mosaic | float | 1.0 | 0.0 - 1.0 | 4枚のトレーニング画像を1枚に合成し、異なるシーンの構成やオブジェクトの相互作用をシミュレート。複雑なシーンの理解に高い効果を発揮。 |
mixup | float | 0.0 | 0.0 - 1.0 | 2つの画像とそのラベルをブレンドし、合成画像を作成します。ラベルノイズや視覚的なばらつきを導入することで、モデルの汎化能力を高める。 |
copy_paste | float | 0.0 | 0.0 - 1.0 | オブジェクトのインスタンスを増やしたり、オブジェクトのオクルージョンを学習したりするのに便利です。 |
copy_paste_mode | str | flip | - | のオプションの中からコピーペースト増強法を選択する。"flip" , "mixup" ). |
auto_augment | str | randaugment | - | 事前に定義された補強ポリシー(randaugment , autoaugment , augmix )、視覚的特徴を多様化することで分類タスクを最適化する。 |
erasing | float | 0.4 | 0.0 - 0.9 | 分類トレーニング中に画像の一部をランダムに消去し、モデルが認識のためにあまり目立たない特徴に集中するよう促す。 |
crop_fraction | float | 1.0 | 0.1 - 1.0 | 中心の特徴を強調し、オブジェクトのスケールに適応し、背景の乱れを軽減するために、分類画像をそのサイズのほんの一部に切り取ります。 |
これらの設定は、データセットと手元のタスクの特定の要件を満たすように調整することができます。異なる値で実験することで、最良のモデル性能につながる最適なオーグメンテーション戦略を見つけることができます。
ロギング、チェックポイント、プロット設定
ロギング、チェックポイント、プロット、ファイル管理は、YOLO モデルをトレーニングする際に重要な考慮事項である。
- ロギング:モデルの進捗を追跡し、問題が発生した場合に診断するために、トレーニング中にさまざまなメトリクスや統計情報をログに記録しておくと役に立つことが多い。これは、TensorBoardのようなロギングライブラリを使用するか、ファイルにログメッセージを書き込むことで行うことができます。
- チェックポイントトレーニング中、一定間隔でモデルのチェックポイントを保存することは良い習慣です。これにより、トレーニングプロセスが中断された場合や、異なるトレーニング設定を試したい場合に、以前のポイントからトレーニングを再開することができます。
- プロットする:モデルのパフォーマンスとトレーニングの進捗を視覚化することは、モデルの振る舞いを理解し、潜在的な問題を特定するのに役立ちます。これは、matplotlibのようなプロットライブラリを使用するか、TensorBoardのようなロギングライブラリを使用してプロットを生成することで行うことができます。
- ファイルの管理:モデルのチェックポイント、ログファイル、プロットなど、トレーニングプロセス中に生成される様々なファイルを管理することは困難です。これらのファイルを追跡し、必要に応じて簡単にアクセスして分析できるように、明確で整理されたファイル構造を持つことが重要です。
効果的なロギング、チェックポイント、プロット、ファイル管理により、モデルの進行状況を把握し、デバッグやトレーニングプロセスの最適化を容易にすることができます。
議論 | デフォルト | 説明 |
---|---|---|
project | 'runs' | トレーニング実行を保存するルートディレクトリを指定します。各ランはこのディレクトリ内の個別のサブディレクトリに保存されます。 |
name | 'exp' | 実験名を定義する。指定しない場合、YOLO は実行ごとにこの名前を自動的にインクリメントする、 exp , exp2 など、以前の実験を上書きしないようにする。 |
exist_ok | False | 同じ名前の実験ディレクトリが既に存在する場合、上書きするかどうかを決定します。これを True は上書きを許可するが False それを防ぐ。 |
plots | False | トレーニングプロットと検証プロットの生成と保存を制御します。設定項目 True 損失曲線などのプロットを作成する、 精度-リコール 曲線、およびサンプル予測。時間の経過とともにモデルのパフォーマンスを視覚的に追跡するのに便利です。 |
save | False | トレーニングのチェックポイントと最終的なモデルの重みの保存を有効にします。以下のように設定します。 True を使用してモデルの状態を定期的に保存し、これらのチェックポイントからトレーニングを再開したり、モデルをデプロイしたりすることができます。 |
よくあるご質問
トレーニング中にYOLO モデルのパフォーマンスを向上させるには?
YOLO モデルのパフォーマンスを向上させるには、バッチサイズ、学習率、モメンタム、ウェイト減衰などのハイパーパラメータを調整する必要がある。増強設定の調整、適切なオプティマイザの選択、早期停止や混合精度などのテクニックの採用も役立ちます。トレーニング設定の詳細なガイダンスについては、トレーニングガイドを参照してください。
YOLO モデルの精度を高めるために考慮すべき重要なハイパーパラメータは何か?
YOLO モデルの精度に影響する主なハイパーパラメータには以下のものがある:
- バッチサイズ
batch
):バッチサイズを大きくすればトレーニングは安定するが、より多くのメモリを必要とする可能性がある。 - 学習率
lr0
):ウェイトの更新のステップサイズを制御する。レートを小さくすると微調整が可能になるが、収束が遅くなる。 - モメンタム (
momentum
):勾配ベクトルを正しい方向に加速させ、振動を和らげる。 - 画像サイズ
imgsz
):画像サイズを大きくすれば精度は向上するが、計算負荷は増大する。
あなたのデータセットとハードウェアの能力に基づいてこれらの値を調整してください。詳しくはTrain Settingsセクションをご覧ください。
YOLO モデルをトレーニングする際の学習率はどのように設定するのですか?
学習率(lr0
)は最適化にとって極めて重要である。一般的な出発点は 0.01
SGDまたは 0.001
アダムのためにトレーニングの指標をモニターし、必要に応じて調整することが不可欠です。コサイン学習率スケジューラ(cos_lr
)やウォームアップ・テクニック(warmup_epochs
, warmup_momentum
)を使用して、トレーニング中に動的にレートを変更することができます。詳細は 鉄道ガイド.
YOLO モデルのデフォルトの推論設定は?
デフォルトの推論設定は以下の通り:
- 信頼しきい値
conf=0.25
):検出の最小信頼度。 - IoUしきい値(
iou=0.7
):ノンマキシマムサプレッション(NMS)用。 - 画像サイズ
imgsz=640
):推論前に入力画像のリサイズを行う。 - デバイス
device=None
):CPU 、またはGPU 。包括的な概要については 設定の予測 セクションと 予測ガイド.
YOLO 、なぜミックスド・プレシジョン・トレーニングを使うべきなのか?
ミックスド・プレシジョン・トレーニング amp=True
また、FP16とFP32の両方の利点を活用することで、メモリ使用量を削減し、トレーニングを高速化することができます。これは、混合精度をネイティブにサポートする最新のGPUにとって有益であり、より多くのモデルをメモリに収めることができ、精度を大きく損なうことなく、より高速な計算が可能になります。これについては 鉄道ガイド.