設定#
YOLOの設定とハイパーパラメーターは、モデルの性能、速度、精度において重要な役割を果たします。これらの設定は、トレーニング、検証、予測など、さまざまな段階でモデルの動作に影響を与えます。
Watch: Mastering Ultralytics YOLO: Configuration
Ultralyticsのコマンドでは、次の構文を使用します。
yolo TASK MODE ARGS内容:
TASK(任意)は、(detect、segment、semantic、depth、classify、pose、obb)のいずれかです。MODE(必須)は、(train、val、predict、export、track、benchmark)のいずれかです。ARGS(任意)は、デフォルトを上書きするarg=valueとimgsz=640のようなペアです。
デフォルトのARG値はこのページで定義されており、cfg/default.yaml ファイルから取得されます。
タスク#
Ultralytics YOLOモデルは、次のようなさまざまなコンピュータービジョンタスクを実行できます。
- Detect: 物体検出では、画像または動画内の物体を識別して位置を特定します。
- Segment: インスタンスセグメンテーションでは、画像または動画を異なる物体やクラスに対応する領域に分割します。
- Semantic segmentation (
semantic): セマンティックセグメンテーションでは、シーンを密に理解するため、画像のすべてのピクセルにクラスラベルを割り当てます。 - Depth (
depth): 単眼深度推定では、単一のRGB画像からピクセルごとのメートル単位の深度マップを予測します。 - Classify: 画像分類では、入力画像のクラスラベルを予測します。
- Pose: 姿勢推定では、画像または動画内の物体を識別し、キーポイントを推定します。
- OBB: Oriented Bounding Boxesでは回転したバウンディングボックスを使用し、衛星画像や医用画像に適しています。
| 引数 | デフォルト | 説明 |
|---|---|---|
task | 'detect' | YOLOタスクを指定します。detectは物体検出、segmentはインスタンスセグメンテーション、semanticはセマンティックセグメンテーション、depthは単眼深度推定、classifyは分類、poseは姿勢推定、obbはOriented Bounding Boxesに使用します。各タスクは、画像および動画の分析における特定の出力と課題に合わせて設計されています。 |
モード#
Ultralytics YOLOモデルは、モデルのライフサイクルにおける特定の段階向けに設計された、さまざまなモードで動作します。
- Train: カスタムデータセットでYOLOモデルをトレーニングします。
- Val: トレーニング済みのYOLOモデルを検証します。
- Predict: トレーニング済みのYOLOモデルを使用して、新しい画像または動画の予測を実行します。
- Export: デプロイ用にYOLOモデルをエクスポートします。
- Track: YOLOモデルを使用して、物体をリアルタイムで追跡します。
- Benchmark: YOLOのエクスポート形式(ONNX、TensorRTなど)の速度と精度をベンチマークします。
| 引数 | デフォルト | 説明 |
|---|---|---|
mode | 'train' | YOLOモデルの動作モードを指定します。trainはモデルのトレーニング、valは検証、predictは推論、exportはデプロイ形式への変換、trackは物体追跡、benchmarkは性能評価に使用します。各モードは、開発からデプロイまでの異なる段階に対応します。 |
トレーニング設定#
YOLOモデルのトレーニング設定には、モデルの性能、速度、精度に影響するハイパーパラメーターと構成が含まれます。主要な設定には、バッチサイズ、学習率、モメンタム、Weight Decayがあります。オプティマイザー、損失関数、データセット構成の選択もトレーニングに影響します。最適な性能を得るには、チューニングと実験が重要です。詳細については、Ultralyticsのエントリーポイント関数を参照してください。
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
model | str | None | トレーニング対象のモデルファイルを指定します。.ptの事前トレーニング済みモデル、または.yamlの構成ファイルへのパスを指定できます。モデル構造の定義や重みの初期化に必須です。 |
data | str | None | データセットYAMLへのパス(例: coco8.yaml)です。トレーニングおよび検証データへのパス、クラス名、クラス数が含まれます。分類の場合は、データセットディレクトリまたは組み込みデータセット名(例: imagenet10)を指定します。 |
epochs | int | 100 | トレーニングエポックの合計数です。各エポックは、データセット全体を1回処理することを表します。この値を調整すると、トレーニング時間とモデル性能に影響する可能性があります。 |
time | float | None | トレーニング時間の上限を時間単位で指定します。設定すると、epochs引数より優先され、指定した時間が経過した後にトレーニングを自動停止できます。時間が制限されたトレーニングシナリオで便利です。 |
patience | int | 100 | 検証メトリクスが改善しない状態で、トレーニングを早期停止するまで待機するエポック数です。性能が頭打ちになった時点でトレーニングを停止し、過学習を防ぎます。 |
batch | intまたはfloat | 16 | バッチサイズです。整数で設定するモード(例: batch=16)、GPUメモリの60%を使用する自動モード(batch=-1)、指定した使用率を使用する自動モード(batch=0.70)の3つのモードがあります。 |
imgsz | int | 640 | トレーニング対象の画像サイズです。指定した値を辺の長さとする正方形に画像をリサイズします(rect=Falseの場合)。YOLOモデルではアスペクト比を維持しますが、RT-DETRでは維持しません。モデルの精度と計算量に影響します。 |
save | bool | True | トレーニングチェックポイントと最終モデル重みの保存を有効にします。トレーニングの再開やモデルのデプロイに便利です。 |
save_period | int | -1 | モデルチェックポイントを保存する頻度をエポック単位で指定します。-1を指定すると、この機能を無効にします。長時間のトレーニング中に中間モデルを保存する場合に便利です。 |
cache | bool | False | データセット画像のキャッシュを、メモリ(True/ram)またはディスク(disk)に保存する機能を有効にします。無効にする場合はFalseを指定します。メモリ使用量が増加する代わりにディスクI/Oを削減し、トレーニング速度を向上させます。 |
device | int、str、またはlist | None | トレーニングに使用する計算デバイスを指定します。単一GPU(device=0)、複数GPU(device=[0,1])、CPU(device=cpu)、Appleシリコン向けのMPS(device=mps)、Huawei Ascend NPU(device=npu:0またはdevice=npu:0,1)、アイドル状態のGPUの自動選択(device=-1)、またはアイドル状態の複数GPUの自動選択(device=[-1,-1])に対応します。 |
workers | int | 8 | データ読み込みに使用するワーカースレッド数です(Multi-GPUトレーニングの場合はRANKあたり)。データの前処理とモデルへの供給速度に影響し、特に複数GPU構成で有用です。 |
project | str | None | トレーニング出力を保存するプロジェクトディレクトリの名前です。異なる実験を整理して保存できます。 |
name | str | None | トレーニング実行の名前です。プロジェクトフォルダー内にサブディレクトリを作成するために使用し、そこにトレーニングログと出力を保存します。 |
exist_ok | bool | False | Trueの場合、既存のproject/nameディレクトリを上書きできます。以前の出力を手動で削除せずに反復実験を行う場合に便利です。 |
save_dir | str | None | 実行出力を保存する正確なディレクトリを指定し、project/nameの組み合わせを上書きします。パスは自動インクリメントせず、そのまま使用されるため、連続する実行で同じディレクトリが再利用されます。 |
pretrained | boolまたはstr | True | 事前トレーニング済みの重みからトレーニングを開始するかどうかを指定します。ブール値、または読み込む重みへの文字列パスを指定できます。pretrained=Falseでは、モデルアーキテクチャを維持したままランダムに初期化された重みからトレーニングします。 |
cls_remap | bool | True | データセット間でファインチューニングする際、クラス名が一致する場合は、事前トレーニング済み分類ヘッドの行を新しいモデルにコピーします。これにより、重複するクラスは学習済みのバイアスを維持し、ヘッド幅が変わらない場合は重みも維持します。クラス数が異なる場合でも、同じ場合でも、クラスの順序が異なれば適用されます。 |
optimizer | str | 'auto' | トレーニングに使用するオプティマイザーを選択します。SGD、MuSGD、Adam、Adamax、AdamW、NAdam、RAdam、RMSProp、またはトレーニング反復回数に基づいてAdamWまたはMuSGDを選択するautoを指定できます。収束速度と安定性に影響します。 |
seed | int | 0 | トレーニングのランダムシードを設定し、同じ構成で実行した場合の結果の再現性を確保します。 |
deterministic | bool | True | 決定論的アルゴリズムの使用を強制します。再現性を確保できますが、非決定論的アルゴリズムが制限されるため、性能と速度に影響する可能性があります。 |
verbose | bool | True | トレーニング中の詳細な出力を有効にし、コンソールにプログレスバー、エポックごとのメトリクス、その他のトレーニング情報を表示します。 |
single_cls | bool | False | マルチクラスデータセットのすべてのクラスを、トレーニング中に単一のクラスとして扱います。二値分類タスクや、分類よりも物体の存在に焦点を当てる場合に便利です。 |
classes | list[int] | None | トレーニング対象とするクラスIDのリストを指定します。特定のクラスだけにフィルタリングして集中する場合に便利です。 |
rect | bool | False | 最小パディング戦略を有効にします。バッチ内の画像に対し、最も長い辺がimgszと等しくなる共通サイズまで最小限のパディングを適用します。効率と速度を向上できますが、モデルの精度に影響する可能性があります。 |
multi_scale | float | 0.0 | 各バッチでimgszを±multi_scaleの範囲でランダムに変化させます(例: 0.25 -> 0.75xから1.25x)。モデルストライドの倍数に丸められます。0.0ではマルチスケールトレーニングを無効にします。 |
cos_lr | bool | False | コサイン学習率スケジューラーを使用し、エポック全体でコサイン曲線に従って学習率を調整します。より良い収束に向けた学習率の管理に役立ちます。 |
close_mosaic | int | 10 | 完了前のトレーニングを安定させるため、最後のNエポックでモザイクデータ拡張を無効にします。0を設定すると、この機能を無効にします。 |
resume | bool | False | 最後に保存したチェックポイントからトレーニングを再開します。モデル重み、オプティマイザーの状態、エポック数を自動的に読み込み、トレーニングをシームレスに継続します。 |
amp | boolまたはstr | True | トレーニングの精度を設定します。Trueまたは"fp16"ではFP16、対応するCUDAデバイス上の"bf16"ではBF16、Falseまたは"fp32"ではFP32を使用します。 |
quantize | intまたはstr | None | INT8量子化対応トレーニング(QAT)用に 8 (または "int8" )を設定します。これにより、フェイク量子化をループ内に組み込んでファインチューニングが行われ、重みがINT8エクスポートに耐えられるようになります。量子化対応トレーニングを参照してください。 |
fraction | float、int、またはlist | 1.0 | データセットのサブセットを比率または件数、あるいは[train, val, test]のリストで指定します。1は分割全体、1を超える整数は画像数を意味します。オプションのtestエントリのみ、0/0.0でなしを指定できます。2要素のリストではtestを全体のまま維持します。 |
profile | bool | False | トレーニング中のONNXおよびTensorRTの速度プロファイリングを有効にします。モデルのデプロイ最適化に便利です。 |
freeze | intまたはlist | None | モデルの最初のN層、またはインデックスやモジュール名で指定した特定の層(先頭のmodel.を除く23.cv2)を凍結し、トレーニング可能なパラメーター数を削減します。ファインチューニングや転移学習に便利です。 |
lr0 | float | 0.01 | 初期学習率(つまりSGD=1E-2、Adam=1E-3)です。この値の調整は最適化プロセスに不可欠で、モデルの重みが更新される速度に影響します。 |
lrf | float | 0.01 | 初期学習率に対する最終学習率の割合 =(lr0 * lrf)です。スケジューラーと組み合わせて、時間経過に伴う学習率の調整に使用します。 |
momentum | float | 0.937 | SGDのモメンタム係数、またはAdamオプティマイザーのbeta1です。過去の勾配を現在の更新にどの程度組み込むかに影響します。 |
weight_decay | float | 0.0005 | L2正則化項です。大きな重みにペナルティを課し、過学習を防ぎます。 |
warmup_epochs | float | 3.0 | 学習率のウォームアップに使用するエポック数です。学習率を低い値から初期学習率まで徐々に増加させ、初期段階のトレーニングを安定させます。 |
warmup_momentum | float | 0.8 | ウォームアップ段階の初期モメンタムです。ウォームアップ期間中に設定済みのモメンタムへ徐々に調整します。 |
warmup_bias_lr | float | 0.1 | ウォームアップ段階におけるバイアスパラメーターの学習率です。初期エポックのモデル学習を安定させます。デフォルトのoptimizer='auto'では自動的に0.0に設定されるため、使用するにはオプティマイザーを明示的に指定してください。 |
distill_model | str | None | 知識蒸留に使用する教師モデルチェックポイントへのパス(例: yolo26x.pt)です。設定すると、凍結された教師モデルの指導による追加の蒸留損失を用いて生徒モデルをトレーニングします。 |
dis | float | 6.0 | 標準の検出損失に追加する蒸留損失の重みです。値を大きくすると、教師モデルによる特徴の指導の影響が強くなります。 |
box | float | 7.5 | 損失関数におけるボックス損失成分の重みです。バウンディングボックス座標を正確に予測することをどの程度重視するかに影響します。 |
cls | float | 0.5 | 合計損失における分類損失の重みです。他の成分と比較した正しいクラス予測の重要度に影響します。 |
cls_pw | float | 0.0 | 逆クラス頻度を使用してクラス不均衡に対処するためのクラス重み付けのべき乗です。0.0はクラス重み付けを無効にし、1.0は完全な逆頻度重み付けを適用します。0から1の値では部分的な重み付けになります。 |
dfl | float | 1.5 | ボックス距離回帰項の重みです。検出ヘッドがreg_max > 1を使用する場合は分布フォーカル損失(DFL)、DFLを使用しないYOLO26(reg_max: 1)では正規化されたボックス距離に対するL1損失です。 |
pose | float | 12.0 | 姿勢推定用にトレーニングされたモデルにおける姿勢損失の重みです。姿勢キーポイントを正確に予測することへの重点度に影響します。 |
kobj | float | 1.0 | 姿勢推定モデルにおけるキーポイントobjectness損失の重みです。検出信頼度と姿勢精度のバランスを取ります。 |
rle | float | 1.0 | 姿勢推定モデルにおける残差対数尤度推定損失の重みです。キーポイント位置特定の精度に影響します。 |
angle | float | 1.0 | OBBモデルにおける角度損失の重みです。Oriented Bounding Boxesの角度予測の精度に影響します。 |
dlog | float | 1.0 | 深度推定モデルにおけるスケール不変対数(SILog)損失の重みです。深度精度を主に決定する項です。 |
dgrad | float | 0.5 | 深度推定モデルにおける勾配損失の重みです。深度エッジの誤差にペナルティを課し、より鮮明な表面境界を促します。 |
dlam | float | 1.0 | 深度推定モデルにおけるSILog損失の分散重視係数です。1.0では損失を完全にスケール不変にし、0.0では単純なlog-RMSEに変換します。 |
nbs | int | 64 | 損失の正規化に使用する基準バッチサイズです。 |
overlap_mask | bool | True | 物体マスクをトレーニング用に単一のマスクへ統合するか、物体ごとに分離して保持するかを指定します。重なりがある場合、統合時には小さいマスクを大きいマスクの上に重ねます。 |
mask_ratio | int | 4 | セグメンテーションマスクのダウンサンプリング比率です。トレーニング中に使用するマスクの解像度に影響します。 |
dropout | float | 0.0 | 分類タスクにおける正則化用のドロップアウト率です。トレーニング中にユニットをランダムに省略して過学習を防ぎます。 |
val | bool | True | トレーニング中の検証を有効にし、別のデータセットでモデル性能を定期的に評価できるようにします。 |
nms | bool、オプション | None | エポックの検証、チェックポイントの選択、および早期終了に使用される推論ヘッドを選択します。None または True は NMS 付きの多対1を使用し、False は利用可能な場合に NMS フリーヘッドを使用します。どちらのヘッドも学習損失を保持します。 |
plots | bool | True | トレーニングおよび検証メトリクスのプロットと予測例を生成して保存し、モデル性能と学習の進行状況を視覚的に確認できるようにします。 |
compile | boolまたはstr | False | PyTorch 2.xのtorch.compileグラフコンパイルをbackend='inductor'で有効にします。True → "default"、False → 無効、または"default"、"reduce-overhead"、"max-autotune-no-cudagraphs"などの文字列モードを指定できます。サポートされていない場合は、警告を表示してeagerモードにフォールバックします。 |
channels_last | bool | None | トレーニング中の畳み込み処理に channels_last (NHWC) メモリフォーマットを使用します。None は、処理速度の低下が測定された Windows を除き、PyTorch 1.11 以降の CUDA 環境で自動的にこれを有効にします。False はこれを無効にし、True は明示的にこれを要求します。PyTorch 1.10 以前、CPU、および MPS ではデフォルトで NCHW のままとなります。 |
max_det | int | 300 | トレーニングおよび検証中の1画像あたりの最大検出数です。detect、segment、pose、OBBの場合、デフォルトの300は、トレーニングまたは検証データのラベル付きオブジェクト数が300を超える場合にのみ、その最大数まで増加します。その他の値は固定され、制限を超えると警告がトリガーされます。 |
batch引数には、3つの設定オプションがあります。
- 固定バッチサイズ: 整数でバッチあたりの画像数を指定します(例:
batch=16)。 - 自動モード(GPUメモリ60%):
batch=-1を使用すると、CUDAメモリ使用率が約60%になるよう自動調整されます。 - 使用率の割合を指定する自動モード: 割合を設定します(例:
batch=0.70)。指定したGPUメモリ使用量に基づいて調整されます。 - 適合するサイズが見つからない場合: 使用可能なプロファイルを生成できる候補バッチサイズがない場合、AutoBatchは関係のないデフォルト値に暗黙的にフォールバックせず、明確な
RuntimeErrorを発生させます。
Predict設定#
YOLOモデルの予測設定には、推論時のパフォーマンス、速度、精度に影響するハイパーパラメータと構成が含まれます。主な設定には、信頼度しきい値、Non-Maximum Suppression (NMS)しきい値、クラス数などがあります。入力データのサイズや形式、マスクなどの補助機能も予測に影響します。最適なパフォーマンスを得るには、これらの設定を調整することが重要です。
推論引数:
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
source | str、int、またはNone | None | 推論に使用するデータソースを指定します。画像パス、動画ファイル、ディレクトリ、URL、ライブフィード用のデバイスIDを指定できます。省略した場合は警告がログに記録され、モデルは組み込みのデモアセット(ultralytics/assets、またはOBBの場合はデモURL)にフォールバックします。幅広い形式とソースに対応しているため、さまざまな種類の入力に柔軟に適用できます。 |
conf | float | 0.25 | 検出の最小信頼度しきい値を設定します。このしきい値を下回る信頼度で検出されたオブジェクトは無視されます。この値を調整すると、偽陽性を減らせます。 |
iou | float | 0.7 | Intersection Over Union (IoU)の、Non-Maximum Suppression (NMS)に対するしきい値です。値を小さくすると、重複するボックスが除去されるため検出数が減り、重複の削減に役立ちます。 |
imgsz | intまたはtuple | 640 | Letterboxのターゲットです。整数を指定すると正方形のN×Nになり、タプルを指定すると(height, width)になります。rect=Trueでは、最小矩形パディングにより実際のテンソルがこのターゲットより小さくなる場合があります。固定サイズにはrect=Falseを使用してください。固定形状と最小矩形を参照してください。 |
rect | bool | True | Trueの場合、可能であれば最小矩形パディングを使用します(同一形状のバッチかつ対応バックエンドの場合)。Falseの場合は、常に完全なimgszまでパディングします。固定形状と最小矩形を参照してください。 |
quantize | intまたはstr | None | 推論精度: 16/"fp16" および 32/"fp32"/unset は、PyTorch および TorchScript モデルの FP16 または FP32 計算を選択します。その他のフォーマットは、アーティファクトとランタイムが選択する精度で計算を行います。16 では、OpenVINO は依然としてクライアント側で入力を FP16 に丸めてから FP32 に戻しますが、ランタイムが計算を行う精度自体を変更するわけではありません。INT8/PTQ 量子化はエクスポート時に設定され、その後エクスポートされたモデルを読み込んで使用されます。非推奨となった half フラグを置き換えます。 |
device | str | None | 推論に使用するデバイスを指定します(例: cpu、cuda:0、0、npu、npu:0)。CPU、特定のGPU、Huawei Ascend NPU、その他の計算デバイスから、モデルの実行先を選択できます。 |
dnn | bool | False | Trueの場合、ONNXモデルの推論にONNX RuntimeではなくOpenCV DNNモジュールを使用します。 |
data | str | None | データセットYAMLへのパスです(例: coco8.yaml)。読み込まれたモデル自体にクラス名がない場合に限り、そのnamesのみを読み取ります。これは、サードパーティ製エクスポート、または付属するメタデータから分離されたUltralyticsエクスポートが該当します。このようなモデルは、それ以外の場合、class0、class1などを報告します。 |
batch | int | 1 | 推論のバッチサイズを指定します(ソースがディレクトリ、動画ファイル、または.txtファイルの場合のみ機能します)。バッチサイズを大きくするとスループットが向上し、推論に必要な合計時間を短縮できる場合があります。 |
max_det | int | 300 | 画像1枚あたりに許可される検出数の最大値です。1回の推論でモデルが検出できるオブジェクトの総数を制限し、密集したシーンでの過剰な出力を防ぎます。 |
vid_stride | int | 1 | 動画入力のフレームストライドです。動画のフレームをスキップして処理を高速化できますが、時間解像度は低下します。値が1の場合はすべてのフレームを処理し、値が大きい場合はフレームをスキップします。 |
stream_buffer | bool | False | 動画ストリームの受信フレームをキューに入れるかどうかを決定します。Falseの場合、新しいフレームを受け入れるために古いフレームを破棄します(リアルタイムアプリケーション向けに最適化されています)。Trueの場合、新しいフレームをバッファにキューイングしてフレームのスキップを防ぎますが、推論FPSがストリームFPSを下回るとレイテンシが発生します。 |
visualize | bool | False | 各予測の横にクラスアクティベーションヒートマップを保存し、予測クラスのスコアを高めたピクセルを示します。confとclassesを尊重するため、classes=[0]ではそのクラスのみをマッピングします。Ultralytics PyTorchモデルでのみ使用できます。 |
augment | bool | False | 予測時のテストタイムオーグメンテーション(TTA)を有効にします。推論速度を犠牲にして、検出の堅牢性を向上できる場合があります。Ultralytics PyTorchモデルでのみ使用できます。 |
agnostic_nms | bool | False | クラス非依存の Non-Maximum Suppression (NMS) を有効にし、同じクラス内だけでなく、異なるクラス間でもスコアの低い重複バウンディングボックスを抑制します。クラスの重複が一般的なマルチクラス検出シナリオで役立ちます。NMS フリー推論(YOLO26 または YOLOv10 の nms=False)の場合、これは同じ検出結果が複数のクラスラベル付きで表示されるのを防ぐ(IoU=1.0 の重複)だけであり、異なるバウンディングボックス間の IoU 閾値ベースの抑制は実行しません。 |
classes | list[int] | None | 予測をクラスIDのセットに絞り込みます。指定したクラスに属する検出のみが返されます。マルチクラス検出タスクで対象オブジェクトに集中する場合に役立ちます。 |
retina_masks | bool | False | 高解像度のセグメンテーションマスクを返します。有効にすると、返されるマスク(masks.data)は元の画像サイズと一致します。無効にすると、推論時に使用した画像サイズになります。 |
embed | list[int] | None | 特徴ベクトルまたは埋め込みを抽出するレイヤーを指定します。2番目に最後のレイヤーの埋め込みにはmodel.embed(source)を使用し、特定のレイヤーを選択するにはmodel.predict(source, embed=[layer])を使用します。クラスタリングや類似検索などの下流タスクに役立ちます。Ultralytics PyTorchモデルでのみ使用できます。 |
project | str | None | saveが有効な場合に予測出力を保存するプロジェクトディレクトリの名前です。 |
name | str | None | 予測実行の名前です。プロジェクトフォルダー内にサブディレクトリを作成するために使用され、saveが有効な場合はそこに予測出力が保存されます。 |
stream | bool | False | すべてのフレームを一度にメモリへ読み込む代わりにResultsオブジェクトのジェネレーターを返すことで、長時間の動画や大量の画像をメモリ効率よく処理できます。 |
verbose | bool | True | ターミナルに詳細な推論ログを表示するかどうかを制御し、予測処理に関するリアルタイムのフィードバックを提供します。 |
compile | boolまたはstr | False | PyTorch 2.xのtorch.compileグラフコンパイルをbackend='inductor'で有効にします。True → "default"、False → 無効、または"default"、"reduce-overhead"、"max-autotune-no-cudagraphs"などの文字列モードを指定できます。サポートされていない場合は、警告を表示してeagerモードにフォールバックします。 |
channels_last | bool | None | ネイティブPyTorch推論にchannels_last (NHWC)メモリ形式を使用します。Noneは、PyTorch 1.13以降を使用するoneDNN対応のLinuxおよびWindows x86 CPUで自動的に有効にし、Falseは無効にし、Trueは対応するx86 CPUまたはCUDAデバイスでの使用を要求します。ARM64、MPS、古いPyTorchバージョン、oneDNN非対応CPU、TensorRTやONNXなどのエクスポート形式には変更を加えません。 |
nms | bool、オプション | None | デフォルトでは NMS 付きの多対1推論を実行します(None または True)。利用可能な場合に NMS フリーの1対1ヘッドを使用するには False を設定します。詳細は End-to-End Detection guide を参照してください。 |
可視化引数:
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
show | bool | False | Trueの場合、注釈付きの画像または動画をウィンドウに表示します。開発やテスト中の即時の視覚的フィードバックに役立ちます。 |
save | bool | False or 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 | int or None | None | バウンディングボックスの線幅を指定します。Noneの場合、画像サイズに基づいて線幅が自動調整されます。明瞭さのための視覚的なカスタマイズが可能です。 |
Validation設定#
YOLOモデルの検証設定には、検証データセットでパフォーマンスを評価するためのハイパーパラメータと構成が含まれます。これらの設定は、パフォーマンス、速度、精度に影響します。一般的な設定には、バッチサイズ、検証頻度、パフォーマンス指標などがあります。検証データセットのサイズや構成、特定のタスクも処理に影響します。
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
data | str | None | データセットYAMLへのパスを指定します(例: coco8.yaml)。検証データへのパスを含める必要があります。Classificationでは、代わりにデータセットディレクトリまたは組み込みデータセット名(例: imagenet10)を指定します。 |
imgsz | int | 640 | 入力画像のサイズを定義します。すべての画像は処理前にこのサイズへリサイズされます。サイズを大きくすると小さなオブジェクトの精度が向上する場合がありますが、計算時間は増加します。 |
batch | int | 16 | バッチあたりの画像数を設定します。値を大きくするとGPUメモリを効率的に利用できますが、より多くのVRAMが必要になります。利用可能なハードウェアリソースに応じて調整してください。 |
save_json | bool | False | Trueの場合、結果をJSONファイルに保存し、さらなる分析、他のツールとの統合、またはCOCOなどの評価サーバーへの送信を行います。検出データセットでは、faster-coco-evalを使用して予測も評価され、トレーニング中にmetrics/mAP_small(B)、metrics/mAP_medium(B)、metrics/mAP_large(B)としてresults.csvに記録される、小・中・大型オブジェクトのmAPが報告されます。 |
conf | float | 0.001 | 検出の最小信頼度しきい値を設定します。値を小さくすると再現率は向上しますが、偽陽性が増える場合があります。Precision-Recall曲線のデフォルトは0.001です。検出の混同行列では、明示的にconfが指定されるか、省略時は0.25が使用されます。概要の適合率と再現率にはmax-F1信頼度が使用されるため、confusion_matrix.pngから算出した値とは異なる場合があります。OBB検証では、メモリ使用量を削減するためのデフォルト値は0.01です。 |
iou | float | 0.7 | Non-Maximum Suppressionに対するIntersection Over Unionしきい値を設定します。重複検出の除去を制御します。 |
max_det | int | 300 | 1画像あたりの最大検出数を制限します。detect、segment、pose、OBBにおいて、300のままにしておくと、画像がそれを超えた場合に検証スプリット内の最大のラベル付きオブジェクト数に引き上げられ、警告が表示されます。その他の値に設定されている場合はそのまま維持され、画像がそれを超えた場合にリコールが制限される可能性があるという警告が表示されます。 |
quantize | intまたはstr | None | 検証精度: 16/"fp16" および 32/"fp32"/unset は、PyTorch および TorchScript モデルの FP16 または FP32 計算を選択します。その他のフォーマットは、アーティファクトとランタイムが選択する精度で計算を行います。16 では、OpenVINO は依然としてクライアント側で入力を FP16 に丸めてから FP32 に戻しますが、ランタイムが計算を行う精度自体を変更するわけではありません。INT8/PTQ 量子化はエクスポート時に設定され、その後エクスポートされたモデルを検証して使用されます。非推奨となった half フラグを置き換えます。 |
device | str | None | 検証に使用するデバイスを指定します(cpu、cuda:0、npu、npu:0など)。Noneの場合、利用可能な最適なデバイスを自動選択します。複数のCUDAデバイスはカンマ区切りで指定できます。 |
dnn | bool | False | Trueの場合、ONNXモデルの推論にOpenCV DNNモジュールを使用し、PyTorchの推論方式に代わる手段を提供します。 |
plots | bool | True | Trueに設定すると、モデルパフォーマンスを視覚的に評価するため、予測とグラウンドトゥルースの比較、混同行列、PR曲線のプロットを生成して保存します。 |
classes | list[int] | None | 評価するクラスIDのリストを指定します。評価中に特定のクラスだけに絞り込み、その他を除外する場合に役立ちます。 |
rect | bool | True | Trueの場合、バッチ処理に矩形推論を使用します。パディングを減らし、画像を元のアスペクト比で処理することで、速度と効率が向上する場合があります。depth検証では無視されます。この場合、パディングの代わりにすべての画像を固定されたimgszの正方形へ引き伸ばします。 |
split | str | 'val' | 検証に使用するデータセット分割(val、test、train)を決定します。パフォーマンス評価に使用するデータセグメントを柔軟に選択できます。 |
fraction | float、int、またはlist | 1.0 | 検証済み分割のサブセットです。[train, val, test] リストを使用すると、split に一致するエントリが適用されます(1 = 全分割、1 を超える整数 = 画像数。省略されたエントリは全体になります)。スカラーは split=train の場合にのみ適用され、その場合 val および test では全分割が使用されます。 |
project | str | None | 検証出力を保存するプロジェクトディレクトリの名前です。異なる実験やモデルの結果を整理するのに役立ちます。 |
name | str | None | 検証実行の名前です。プロジェクトフォルダー内にサブディレクトリを作成するために使用され、検証ログと出力がそこに保存されます。 |
verbose | bool | True | Trueの場合、クラスごとのメトリクス、バッチの進行状況、追加のデバッグ情報など、検証処理中の詳細情報を表示します。 |
save_txt | bool | False | Trueの場合、検出結果をテキストファイルに保存します。画像ごとに1ファイルが作成され、追加分析、カスタム後処理、他のシステムとの統合に役立ちます。 |
save_conf | bool | False | Trueの場合、save_txtが有効であれば、保存するテキストファイルに信頼度の値を含め、分析やフィルタリングに利用できる詳細な出力を提供します。 |
workers | int | 8 | データ読み込みに使用するワーカースレッド数です。値を大きくするとデータの前処理が高速化する場合がありますが、CPU使用量が増加する可能性があります。0に設定するとメインスレッドを使用し、一部の環境では安定性が向上します。 |
augment | bool | False | 検証中のテストタイムオーグメンテーション(TTA)を有効にします。入力を変換したバージョンで推論を実行するため、推論速度を犠牲にして検出精度が向上する場合があります。Ultralytics PyTorchモデルでのみ使用できます。 |
agnostic_nms | bool | False | クラス非依存の Non-Maximum Suppression を有効にし、予測されたクラスに関係なく、スコアの低い重複バウンディングボックスを抑制します。インスタンスに特化したアプリケーションで役立ちます。NMS フリー推論(YOLO26 または YOLOv10 の nms=False)の場合、これは同じ検出結果が複数のクラスラベル付きで表示されるのを防ぐ(IoU=1.0 の重複)だけであり、異なるバウンディングボックス間の IoU 閾値ベースの抑制は実行しません。 |
single_cls | bool | False | 検証中、すべてのクラスを単一のクラスとして扱います。バイナリ検出タスクや、クラスの区別が重要でない場合のモデルパフォーマンス評価に役立ちます。 |
visualize | bool | False | 各画像のグラウンドトゥルース、真陽性、偽陽性、偽陰性を可視化します。デバッグやモデルの解釈に役立ちます。 |
show_labels | bool | True | visualize=Trueの場合、検証の可視化にクラスラベルを表示します。Falseに設定すると、一致とエラーをより明瞭に表示できます。 |
show_conf | bool | True | visualize=Trueの場合、検証の可視化に信頼度スコアを表示します。Falseに設定すると、一致とエラーをより明瞭に表示できます。 |
compile | boolまたはstr | False | PyTorch 2.xのtorch.compileグラフコンパイルをbackend='inductor'で有効にします。True → "default"、False → 無効、または"default"、"reduce-overhead"、"max-autotune-no-cudagraphs"などの文字列モードを指定できます。サポートされていない場合は、警告を表示してeagerモードにフォールバックします。 |
channels_last | bool | None | ネイティブPyTorch検証にchannels_last (NHWC)メモリ形式を使用します。Noneは、PyTorch 1.13以降を使用するoneDNN対応のLinuxおよびWindows x86 CPUで自動的に有効にし、Falseは無効にし、Trueは対応するx86 CPUまたはCUDAデバイスでの使用を要求します。ARM64、MPS、古いPyTorchバージョン、oneDNN非対応CPU、エクスポート形式には変更を加えません。トレーニング中の検証では、トレーニングモデルのレイアウトが維持されます。 |
nms | bool、オプション | None | デフォルトでは NMS 付きの多対1推論を実行します(None または True)。利用可能な場合に NMS フリーの1対1ヘッドを使用するには False を設定します。詳細は End-to-End Detection guide を参照してください。 |
最適なパフォーマンスを確保し、過学習を検出・防止するには、入念な調整と実験が不可欠です。
Export設定#
YOLOモデルのExport設定には、さまざまな環境で使用するためにモデルを保存またはエクスポートするための構成が含まれます。これらの設定は、パフォーマンス、サイズ、互換性に影響します。主な設定には、エクスポートするファイル形式(例: ONNX、TensorFlow SavedModel)、対象デバイス(例: CPU、GPU)、マスクなどの機能があります。モデルのタスクと、出力先環境の制約もエクスポート処理に影響します。
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
format | str | 'torchscript' | エクスポートするモデルの対象形式です。'onnx'、'torchscript'、'engine'(TensorRT)などを指定できます。各形式は異なるデプロイ環境との互換性を実現します。 |
name | str | None | ハードウェアターゲットを必要とする形式のターゲット名です。Hailoアーキテクチャ('hailo8'、'hailo8l'、'hailo10h'、'hailo15h'、'hailo15l'、デフォルトは'hailo8l')、Rockchip RKNNチップ(デフォルトは'rk3588')、Huawei Ascend SoC(CANNの--soc_version、デフォルトは'Ascend310B4')、またはQualcomm QNN HTPターゲット(デフォルトは'73')を指定できます。他のモードで使用されるproject/nameの実行名ペアとは異なります。 |
imgsz | intまたはtuple | 640 | モデル入力に使用する希望画像サイズです。正方形画像の場合は整数(例: 640×640の場合は640)、特定のサイズの場合はタプル(height, width)を指定できます。指定しない場合、エクスポートでは読み込まれたチェックポイントに記録されたトレーニングサイズを再利用します。公式YOLO26チェックポイントでは、depthに768、classifyに224、OBBに1024、その他のタスクに640が記録されます。ファインチューニングでは、トレーニングに使用したimgszが記録されます。YAMLから構築したモデルにはトレーニングサイズの記録がなく、640を使用します。 |
keras | bool | False | TensorFlow SavedModel向けにKeras形式へのエクスポートを有効にし、TensorFlow ServingおよびAPIとの互換性を提供します。 |
optimize | bool | False | DEEPX向けのコンパイラ最適化を強化し、コンパイル時間を増加させる代わりに推論レイテンシを短縮します。 |
quantize | intまたはstr | None | 量子化精度: 16 (FP16、モデルサイズを縮小し、対応ハードウェアでの推論を高速化可能) または 8 (INT8/PTQ、最小限の精度損失でモデルをさらに圧縮し、主としてエッジデバイス向け。校正 data/fraction が必要); 32 / 未設定は FP32 です。quantize=8 でトレーニングされたチェックポイントは常に INT8 をエクスポートします: onnx および engine は校正なしで保持する範囲からエクスポートし、他のフォーマットや精度は拒否されます。重みとアクティベーションの混合精度をサポートするエクスポートフォーマットは、'w8a8'/'w16a16'/'w8a16'/'w8a32' 表記も受け付けます。非推奨となった half/int8 フラグ (half=True → 16、int8=True → 8、非推奨の警告付きで引き続き受け付けられます) に代わるものです。ターゲットフォーマットでサポートされている精度のみが許可されます (下記参照)。 |
dynamic | bool | False | TorchScript、ONNX、OpenVINO、TensorRT、CoreMLへのエクスポートで動的な入力サイズを有効にし、さまざまな画像サイズを柔軟に処理できるようにします。 |
simplify | bool | True | 中間ONNXグラフを構築するエクスポートで、onnxslimを使用してグラフを簡略化します(Export Formatsを参照)。推論エンジンのパフォーマンスと互換性が向上する場合があります。 |
opset | int | None | ONNXグラフを構築するエクスポートのONNX opsetバージョンを指定します(Export Formatsを参照)。さまざまなONNXパーサーおよびランタイムとの互換性を確保します。設定しない場合は、サポートされる最新バージョンを使用します。 |
workspace | floatまたはNone | None | TensorRT最適化に使用するワークスペースの最大サイズをGiB単位で設定し、メモリ使用量とパフォーマンスのバランスを取ります。Noneを使用すると、TensorRTがデバイスの最大値まで自動的に割り当てます。 |
nms | bool、オプション | None | None は外部 NMS 用の生の多対1予測をエクスポートし、True はサポートされている場合に NMS を埋め込み、False は利用可能な場合に NMS フリーヘッドを選択します。CoreML の埋め込み NMS は、静的形状での検出、セグメンテーション、および姿勢推定をサポートしています。End-to-End Detection guide を参照してください。 |
conf | float | None | エクスポート時のNMSが生成される箇所で使用する信頼度しきい値です。nms=Trueエクスポート、Hailoの非エンドツーエンド検出エクスポート、IMXの検出・ポーズ・セグメントエクスポートが該当し、後者では内部的にnms=Trueが強制されます。未設定時のデフォルトは0.25です。 |
iou | float | 0.7 | エクスポート時のNMSが生成される箇所で使用するIoUしきい値です。nms=Trueエクスポート、Hailoの非エンドツーエンド検出エクスポート、IMXの検出・ポーズ・セグメントエクスポートが該当し、後者では内部的にnms=Trueが強制されます。 |
max_det | int | 300 | エクスポートされたモデルの出力で保持される検出の最大数です。CoreML検出(ネイティブのNMSパイプラインに検出上限がないもの)およびNMS不要のエンドツーエンド検出エクスポート(YOLO26、YOLOv10、利用可能なアンカーの数に制限されるもの)、ならびにIMXのdetect、pose、segmentエクスポートを除く、すべてのフォーマットにおける nms=True のエクスポートに適用されます。 |
agnostic_nms | bool | False | 標準のnms=Trueパイプラインでエクスポート時のNMSが生成される箇所で、クラス非依存NMSを有効にします。CoreML独自のNMSステージも含め、同じクラス内だけでなく異なるクラス間でもスコアの低い重複ボックスを抑制します。HailoまたはIMX独自の生成NMS設定では使用されません。これらにはクラス非依存オプションがなく、このフラグにかかわらずクラスを考慮します。また、NMSなしのエンドツーエンドエクスポート(YOLO26、YOLOv10)にも組み込まれますが、同じ検出が複数のクラスラベルで出現すること(IoU=1.0の重複)だけを防ぎ、異なるボックス間のIoUしきい値抑制は行いません。 |
batch | int | 1 | エクスポートモデルのバッチ推論サイズ、またはpredictモードでエクスポート済みモデルが同時に処理する画像数の最大値を指定します。Edge TPUエクスポートでは自動的に1に設定されます。 |
device | str | None | エクスポートに使用するデバイスを指定します。GPU(device=0)、CPU(device=cpu)、Apple silicon用MPS(device=mps)、Huawei Ascend NPU(device=npuまたはdevice=npu:0)、NVIDIA Jetson用DLA(device=dla:0またはdevice=dla:1)を指定できます。TensorRTエクスポートは自動的にGPUを使用しますが、TensorRT 11.0はDLAに対応していません。 |
verbose | bool | False | format='engine'エクスポート中、TensorRTビルダーのログレベルをVERBOSEに設定します。その他のエクスポート形式では無視されます。 |
data | str | None | データセット YAML へのパス。INT8 量子化キャリブレーションに不可欠です。一方、分類ではデータセットディレクトリまたは組み込みのデータセット名を使用します。INT8 が有効な状態で指定されていない場合、Ultralytics は必要に応じてタスク固有のキャリブレーションデータセットを選択するか、モデルタスクのデフォルトデータセットにフォールバックします。quantize=8 でトレーニングされたチェックポイントは独自の INT8 範囲を保持しており、キャリブレーションデータを必要としません。 |
split | str | 'val' | dataからINT8量子化キャリブレーション用データローダーを構築するために使用するデータセット分割('train'、'val'、または'test')。 |
fraction | float、int、またはlist | 1.0 | INT8キャリブレーションに使用するデータセットのサブセットです。比率、画像数、または[train, val, test]の値を指定します。1は分割全体を意味し、1を超える整数は画像数を意味します。オプションのテストエントリのみ、0/0.0を指定してなしを意味できます。2要素のリストではtestが全体のままになります。 |
適切な設定により、エクスポートされたモデルが用途に合わせて最適化され、対象環境で効果的に機能するようになります。
ソリューション設定#
Ultralytics Solutionsの設定では、オブジェクトカウント、ヒートマップ作成、ワークアウト追跡、データ分析、ゾーン追跡、キュー管理、領域ベースのカウントなどのタスクに合わせてモデルを柔軟にカスタマイズできます。これらのオプションにより、特定のニーズに合わせて簡単に調整し、正確で有用な結果を得られます。
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLOモデルファイルへのパスです。 |
region | listまたはdict | None | 関心領域を定義するポイントです。(x, y)タプルのリスト、または複数の領域に対応する領域名からポイントリストへの辞書(RegionCounterのみ)を指定します。Noneの場合、領域を必要とするソリューションはあらかじめ定義されたデフォルト値にフォールバックします。 |
show_in | bool | True | ビデオストリームに入力カウントを表示するかどうかを制御するフラグです。 |
show_out | bool | True | ビデオストリームに出力カウントを表示するかどうかを制御するフラグです。 |
analytics_type | str | 'line' | グラフの種類です。line、bar、area、またはpieを指定します。 |
colormap | int | cv2.COLORMAP_DEEPGREEN | ヒートマップに使用するカラーマップです。 |
line_width | int | 2 | ソリューションが描画するボックス、キーポイント、カウントの線の太さです。 |
verbose | bool | True | 入力形状、クラス数、処理速度をフレームごとにログに記録する機能を有効にします。トラッキング処理自体は常にサイレントです。 |
json_file | str | None | すべての駐車座標データを含むJSONファイルへのパスです。 |
up_angle | float | 145.0 | 「上」ポーズの角度しきい値です。 |
kpts | list[int] | '[6, 8, 10]' | ワークアウトの監視に使用する3つのキーポイントインデックスのリストです。これらのキーポイントは、腕立て伏せ、懸垂、スクワット、腹筋運動などで使用する肩、肘、手首といった身体の関節または部位に対応します。 |
down_angle | int | 90 | 「下」ポーズの角度しきい値です。 |
blur_ratio | float | 0.5 | ぼかし強度の割合を調整します。値の範囲は0.1 - 1.0です。 |
crop_dir | str | 'cropped-detections' | 切り出した検出結果を保存するディレクトリ名です。 |
records | int | 5 | セキュリティ警報システムのメールを送信するトリガーとなる検出数の合計です。 |
vision_point | tuple[int, int] | (20, 20) | VisionEye Solutionを使用してビジョンがオブジェクトを追跡し、パスを描画するポイントです。 |
source | str | None | 入力ソース(ビデオ、RTSPなど)へのパスです。Solutionsコマンドラインインターフェース(CLI)でのみ使用できます。 |
figsize | tuple[float, float] | (12.8, 7.2) | ヒートマップやグラフなどの分析チャートの図のサイズです。 |
fps | float | 30.0 | 速度計算に使用する1秒あたりのフレーム数です。 |
max_hist | int | 5 | 速度や方向の計算のために、オブジェクトごとに追跡する履歴ポイントの最大数です。 |
meter_per_pixel | float | 0.05 | ピクセル距離を実世界の単位に変換するために使用するスケーリング係数です。 |
max_speed | int | 120 | ビジュアルオーバーレイで使用する最大速度制限です(アラートで使用)。 |
data | str | 'images' | 類似検索に使用する画像ディレクトリへのパスです。 |
imgsz | int | 640 | モデル推論に使用する入力画像サイズです。 |
データ拡張設定#
データ拡張手法は、トレーニングデータに変動性を導入して未知のデータへの汎化性能を高めることで、YOLOモデルの堅牢性と性能を向上させるために不可欠です。次の表では、各データ拡張引数の目的と効果を説明します。
| 引数 | 型 | デフォルト | サポートされるタスク | 範囲 | 説明 |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect、segment、semantic、depth、classify、pose、obb | 0.0 - 1.0 | 画像の色相をカラーホイールの一部の割合だけ調整し、色の変動性を導入します。異なる照明条件に対するモデルの汎化に役立ちます。classifyの場合、これはauto_augment=Noneのときにのみ適用されます。 |
hsv_s | float | 0.7 | detect、segment、semantic、depth、classify、pose、obb | 0.0 - 1.0 | 画像の彩度を一定の割合だけ変更し、色の強度に影響を与えます。異なる環境条件のシミュレーションに役立ちます。classifyの場合、これはauto_augment=Noneのときにのみ適用されます。 |
hsv_v | float | 0.4 | detect、segment、semantic、depth、classify、pose、obb | 0.0 - 1.0 | 画像の値(明るさ)を一定の割合だけ変更し、さまざまな照明条件でモデルが適切に動作できるようにします。classifyの場合、これはauto_augment=Noneのときにのみ適用されます。 |
degrees | float | 0 | detect、segment、semantic、depth、pose、obb | 0.0 - 180 | 指定した角度範囲内で画像をランダムに回転させ、さまざまな向きのオブジェクトを認識するモデルの能力を向上させます。 |
translate | float | 0.1 | detect、segment、semantic、depth、pose、obb | 0.0 - 1.0 | 画像サイズの一定の割合だけ画像を水平方向および垂直方向に移動させ、部分的にしか見えないオブジェクトの検出学習を支援します。 |
scale | float | tuple | 0.5 | detect、segment、semantic、depth、classify、pose、obb | 0 - 1、または明示的な(min, max)タプル(classifyには非対応) | ゲイン係数によって画像をスケーリングし、カメラから異なる距離にあるオブジェクトをシミュレートします。 |
shear | float | 0 | detect、segment、semantic、depth、pose、obb | -180 - +180 | 指定した角度で画像をせん断し、異なる角度からオブジェクトを見た場合の効果を再現します。 |
perspective | float | 0 | detect、segment、semantic、depth、pose、obb | 0.0 - 0.001 | 画像にランダムな透視変換を適用し、3D空間内のオブジェクトを理解するモデルの能力を高めます。 |
flipud | float | 0 | detect、segment、semantic、depth、classify、pose、obb | 0.0 - 1.0 | 指定した確率で画像を上下反転し、オブジェクトの特性に影響を与えずにデータの変動性を高めます。 |
fliplr | float | 0.5 | detect、segment、semantic、depth、classify、pose、obb | 0.0 - 1.0 | 指定した確率で画像を左右反転し、対称的なオブジェクトの学習やデータセットの多様性向上に役立ちます。 |
bgr | float | 0 | detect、segment、semantic、depth、pose、obb | 0.0 - 1.0 | 指定した確率で画像のチャンネルをRGBからBGRに反転し、誤ったチャンネル順序に対する堅牢性の向上に役立ちます。 |
mosaic | float | 1 | detect、segment、semantic、pose、obb | 0.0 - 1.0 | 4つのトレーニング画像を1つに結合し、異なるシーン構成とオブジェクト間の相互作用をシミュレートします。複雑なシーン理解に非常に効果的です。 |
mixup | float | 0 | detect、segment、semantic、pose、obb | 0.0 - 1.0 | 2つの画像とそのラベルをブレンドし、複合画像を作成します。ラベルノイズと視覚的な変動性を導入することで、モデルの汎化能力を高めます。 |
cutmix | float | 0 | detect、segment、pose、obb | 0.0 - 1.0 | 2つの画像の一部を結合し、領域を明確に保ちながら部分的にブレンドします。オクルージョンの状況を作成することで、モデルの堅牢性を高めます。 |
copy_paste | float | 0 | segment、obb | 0.0 - 1.0 | 貼り付け対象となるオブジェクトの割合です。flipはそれらを画像内で反転させ、mixupはその値を画像間適用確率としても使用します。 |
copy_paste_mode | str | flip | segment、obb | - | 使用するcopy-paste戦略を指定します。'flip'と'mixup'を選択できます。 |
auto_augment | str | randaugment | classify | - | あらかじめ定義されたデータ拡張ポリシー('randaugment'、'autoaugment'、または'augmix')を適用し、視覚的な多様性を通じてモデル性能を向上させます。 |
erasing | float | 0.4 | classify | 0.0 - 1.0 | トレーニング中に画像の領域をランダムに消去し、モデルが目立ちにくい特徴に注目するよう促します。 |
augmentations | list | None | detect、segment、semantic、depth、pose、obb | - | 高度なデータ拡張用のカスタムAlbumentations変換です(Python APIのみ)。特殊なデータ拡張のニーズに対応する変換オブジェクトのリストを受け入れます。 |
データセットとタスクの要件に合わせてこれらの設定を調整してください。異なる値を試すことで、最高のモデル性能を得るための最適なデータ拡張戦略を見つけやすくなります。
ロギング、チェックポイント、プロット設定#
YOLOモデルのトレーニングでは、ロギング、チェックポイント、プロット、ファイル管理が重要です。
- ロギング: TensorBoardなどのライブラリを使用するか、ファイルに書き込んでモデルの進捗を追跡し、問題を診断します。
- チェックポイント:トレーニングを再開したり、異なる設定を試したりできるよう、モデルを定期的に保存します。
- プロット:MatplotlibやTensorBoardなどのライブラリを使用して、性能とトレーニングの進捗を可視化します。
- ファイル管理:チェックポイント、ログファイル、プロットなど、トレーニング中に生成されたファイルを整理し、簡単にアクセスして分析できるようにします。
これらの要素を効果的に管理することで、進捗を追跡し、デバッグと最適化を容易にできます。
| 引数 | デフォルト | 説明 |
|---|---|---|
project | None | トレーニング実行を保存するルートディレクトリを指定します。指定しない場合、実行結果はruns/<task>の下に保存されます。各実行結果は個別のサブディレクトリに保存されます。 |
name | None | 実験名を定義します。指定しない場合、YOLOはモード名を使用し、上書きを避けるために実行ごとに番号を増やします(例:train、train-2)。 |
exist_ok | False | 既存の実験ディレクトリを上書きするかどうかを制御します。Trueでは上書きが許可され、Falseでは上書きが防止されます。 |
plots | True | トレーニングおよび検証プロットの生成と保存を制御します。Trueに設定すると、損失曲線、適合率-再現率曲線、サンプル予測などのプロットを作成し、性能を視覚的に追跡できます。 |
save | True | トレーニングチェックポイントと最終モデル重みの保存を有効にします。Trueに設定すると、モデルの状態を定期的に保存し、トレーニングの再開やモデルのデプロイを可能にします。 |
カスタム設定ファイル#
保存済みのYAMLを読み込み、引数をインラインで渡さずに一連の引数全体を再利用します。cfg引数はdefault.yamlの値を上書きし、同時に渡された追加の引数は引き続き優先されます。
| 引数 | デフォルト | 説明 |
|---|---|---|
cfg | None | 値でdefault.yamlのエントリを置き換えるYAMLファイルへのパスです。CLIの実例については、デフォルト設定ファイルの上書きを参照してください。 |
FAQ#
精度に影響する主要なハイパーパラメーターは次のとおりです。
- バッチサイズ(
batch):サイズを大きくするとトレーニングは安定しますが、より多くのメモリが必要です。 - 学習率(
lr0):小さい学習率では細かな調整ができますが、収束は遅くなります。 - モメンタム(
momentum):勾配ベクトルを加速し、振動を抑制します。 - 画像サイズ(
imgsz):サイズを大きくすると精度は向上しますが、計算負荷が増加します。
データセットとハードウェアに基づいてこれらを調整してください。詳細については、トレーニング設定を参照してください。
- バッチサイズ(
学習率(
lr0)は重要です。SGDの場合は0.01、Adamオプティマイザーの場合は0.001から始めてください。メトリクスを監視し、必要に応じて調整します。コサイン学習率スケジューラー(cos_lr)またはウォームアップ(warmup_epochs、warmup_momentum)を使用してください。詳細はトレーニングガイドに記載されています。デフォルト設定には次のものがあります。
- 信頼度しきい値(
conf=0.25):検出に必要な最小信頼度です。 - IoUしきい値(
iou=0.7):非最大抑制(NMS)に使用します。 - 画像サイズ(
imgsz=640):入力画像のサイズを変更します。 - デバイス(
device=None):CPU、GPU、Apple MPS、またはHuawei Ascend NPU(npu)を選択します。
- 信頼度しきい値(