Ultralytics YOLO27:
Get Started

設定#

YOLO の設定とハイパーパラメーターは、モデルの性能、速度、精度に大きく影響します。これらの設定は、トレーニング、検証、予測など、さまざまな段階でのモデルの動作に影響を与える場合があります。



視聴: Ultralytics YOLO を使いこなす: 設定

Ultralytics コマンドは、次の構文を使用します。

例
yolo TASK MODE ARGS

各項目の説明:

デフォルトの ARG 値はこのページで定義されており、cfg/default.yaml ファイルから取得されます。

タスク#

Ultralytics YOLO モデルは、次のようなさまざまなコンピュータービジョンタスクを実行できます。

  • 検出: 物体検出では、画像や動画内の物体を識別し、その位置を特定します。
  • セグメント: インスタンスセグメンテーションでは、画像や動画を、異なる物体やクラスに対応する領域に分割します。
  • セマンティックセグメンテーション(semantic): セマンティックセグメンテーションでは、画像内のすべてのピクセルにクラスラベルを割り当て、シーンを高密度に理解します。
  • 深度(depth): 単眼深度推定では、単一の RGB 画像から、ピクセルごとの深度マップをメートル単位で予測します。
  • 分類: 画像分類では、入力画像のクラスラベルを予測します。
  • 姿勢: 姿勢推定では、画像や動画内の物体を識別し、そのキーポイントを推定します。
  • OBB: 回転バウンディングボックスは回転したバウンディングボックスを使用し、衛星画像や医療画像に適しています。
引数デフォルト説明
task'detect'YOLOのタスクを指定します。detectは物体検出、segmentはインスタンスセグメンテーション、semanticはセマンティックセグメンテーション、depthは単眼深度推定、classifyは分類、poseは姿勢推定、obbは回転物体検出を指定します。各タスクは、画像や動画の解析における特定の出力や課題に対応しています。

タスクガイド

モード#

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のエントリーポイント関数をご覧ください。

引数種類デフォルト説明
modelstrNoneトレーニングに使用するモデルファイルを指定します。.ptの事前学習済みモデル、または.yamlの構成ファイルへのパスを指定できます。モデル構造の定義や重みの初期化に必要です。
datastrNoneデータセットYAMLへのパス(例: coco8.yaml)です。トレーニングデータと検証データのパス、クラス名、クラス数が記載されています。分類の場合は、データセットのディレクトリまたは組み込みデータセット名(例: imagenet10)を指定します。
epochsint100トレーニングの総エポック数です。各エポックは、データセット全体を1回学習することを表します。この値を調整すると、トレーニング時間やモデルの性能に影響する場合があります。
timefloatNoneトレーニングの最大時間(時間単位)です。設定すると、epochs引数より優先され、指定した時間が経過するとトレーニングが自動的に停止します。時間に制約のあるトレーニングに便利です。
patienceint100検証メトリクスが改善しない状態で、トレーニングを早期停止するまでのエポック数です。性能が頭打ちになった時点でトレーニングを停止することで、過学習を防ぎます。
batchintまたはfloat16バッチサイズです。整数で指定する方法(例: batch=16)、GPUメモリ使用率を60%にする自動モード(batch=-1)、使用率の割合を指定する自動モード(batch=0.70)の3種類があります。
imgszint640トレーニング時の目標画像サイズです。画像は、指定値を辺の長さとする正方形にリサイズされます(rect=Falseの場合)。YOLOモデルではアスペクト比が維持されますが、RT-DETRでは維持されません。モデルの精度と計算量に影響します。
saveboolTrueトレーニングのチェックポイントと最終モデルの重みを保存します。トレーニングの再開やモデルのデプロイに便利です。
save_periodint-1モデルのチェックポイントを保存する頻度をエポック数で指定します。値を-1にすると、この機能は無効になります。長時間のトレーニング中に中間モデルを保存する場合に便利です。
cacheboolまたはstrFalseデータセットの画像をメモリ(True/ram)またはディスク(disk)にキャッシュするか、キャッシュを無効にする(False)かを指定します。ディスクI/Oを減らしてトレーニングを高速化しますが、メモリ使用量は増加します。
deviceint、str、またはlistNoneトレーニングに使用する計算デバイスを指定します。単一GPU(device=0)、複数GPU(device=[0,1])、CPU(device=cpu)、Appleシリコン向けMPS(device=mps)、Huawei Ascend NPU(device=npu:0またはdevice=npu:0,1)、Intel XPU(device=xpu:0)、またはアイドル状態のGPU(device=-1)や複数のアイドル状態のGPU(device=[-1,-1])の自動選択を指定できます。
workersint8データ読み込みに使用するワーカースレッド数です(マルチGPUトレーニングではRANKごとに指定します)。データの前処理とモデルへの入力速度に影響し、特にマルチGPU環境で役立ちます。
projectstrNoneトレーニングの出力を保存するプロジェクトディレクトリの名前です。複数の実験を整理して保存できます。
namestrNoneトレーニング実行の名前です。プロジェクトフォルダー内にサブディレクトリを作成し、トレーニングログと出力を保存するために使用します。
exist_okboolFalseTrueの場合、既存のプロジェクト名または名前のディレクトリを上書きできます。以前の出力を手動で削除せずに、反復的な実験を行う場合に便利です。
save_dirstrNone実行の出力を保存するディレクトリを直接指定し、project/nameの組み合わせを上書きします。パスは自動で連番化されず、そのまま使用されるため、連続する実行で同じディレクトリが再利用されます。
pretrainedboolまたはstrTrue事前学習済みの重みからトレーニングを開始するかどうかを指定します。ブール値、または読み込む重みのパスを表す文字列を指定できます。pretrained=Falseでは、モデルアーキテクチャを維持したまま、ランダムに初期化した重みでトレーニングします。
cls_remapboolTrueデータセットをまたいでファインチューニングする際、クラス名が一致する場合は、事前学習済み分類ヘッドの行を新しいモデルにコピーします。これにより、共通するクラスでは学習済みのバイアスが維持され、ヘッドの幅が変わらない場合は重みも維持されます。クラス数が異なる場合も、クラス数が同じでクラスの順序が異なる場合も適用されます。
optimizerstr'auto'トレーニングに使用するオプティマイザーを選択します。SGD、MuSGD、Adam、Adamax、AdamW、NAdam、RAdam、RMSProp、またはautoを指定すると、トレーニング反復回数に基づいてAdamWまたはMuSGDが選択されます。収束速度と安定性に影響します。
seedint0トレーニングの乱数シードを設定し、同じ構成で実行した場合に結果を再現できるようにします。
deterministicboolTrue決定論的アルゴリズムの使用を強制します。再現性を確保できますが、非決定論的アルゴリズムが制限されるため、性能や速度に影響する場合があります。
verboseboolTrueトレーニング中の詳細な出力を有効にし、進行状況バー、エポックごとのメトリクス、その他のトレーニング情報をコンソールに表示します。
single_clsboolFalseマルチクラスデータセットのすべてのクラスを、トレーニング中に単一のクラスとして扱います。二値分類タスクや、クラス分類よりも物体の有無に注目する場合に便利です。
classeslist[int]Noneトレーニング対象とするクラスIDのリストを指定します。トレーニング時に特定のクラスだけに絞り込む場合に便利です。
rectboolFalse最小パディング方式を有効にします。バッチ内の画像は、最も長い辺がimgszになる共通サイズに合わせて、必要最小限のパディングが施されます。効率と速度が向上する場合がありますが、モデルの精度に影響することがあります。
multi_scalefloat0.0各バッチでimgszをmulti_scaleの範囲でランダムに変化させます(例: 0.25 → 0.75xから1.25x)。モデルのストライドの倍数に丸められます。0.0ではマルチスケールトレーニングが無効になります。
cos_lrboolFalseコサイン学習率スケジューラーを使用し、エポックを通じてコサイン曲線に沿って学習率を調整します。収束を改善するための学習率管理に役立ちます。
close_mosaicint10完了前のトレーニングを安定させるため、最後のNエポックではモザイクデータ拡張を無効にします。0に設定すると、この機能は無効になります。
resumeboolFalse最後に保存されたチェックポイントからトレーニングを再開します。モデルの重み、オプティマイザーの状態、エポック数を自動的に読み込み、シームレスにトレーニングを続行します。
ampboolまたはstrTrueトレーニングの精度を設定します。Trueまたは"fp16"はFP16、"bf16"は対応するCUDAデバイスでBF16、Falseまたは"fp32"はFP32を使用します。
quantizeintまたはstrNoneINT8量子化を考慮したトレーニング(QAT)を行うには、8(または"int8")に設定します。学習中に疑似量子化を行い、INT8エクスポートに耐えられるよう重みをファインチューニングします。量子化考慮トレーニングをご覧ください。
fractionfloat、int、またはlist1.0データセットのサブセットを割合、件数、または[train, val, test]のリストで指定します。1は分割全体を意味し、1より大きい整数は画像数を表します。省略可能なtest項目のみ、0/0.0で対象なしを指定できます。2項目のリストではtest全体が維持されます。
profileboolFalseトレーニング中にONNXとTensorRTの速度をプロファイリングします。モデルのデプロイを最適化する際に役立ちます。
freezeintまたはlistNoneモデルの先頭N層、またはインデックスやモジュール名で指定した層(先頭のmodel.を含まない23.cv2)を凍結し、トレーニング可能なパラメーター数を減らします。ファインチューニングや転移学習に便利です。
lr0float0.01初期学習率(つまりSGD=1E-2、Adam=1E-3)です。デフォルトのoptimizer='auto'では無視されます。使用するには、オプティマイザーを明示的に指定してください。
lrffloat0.01初期学習率に対する最終学習率の割合(= lr0 * lrf)です。スケジューラーと組み合わせて、時間経過に応じた学習率の調整に使用します。
momentumfloat0.937SGDのモメンタム係数、またはAdamオプティマイザーのbeta1です。現在の更新に過去の勾配をどの程度反映するかを調整します。
weight_decayfloat0.0005L2正則化項です。大きな重みにペナルティを課し、過学習を防ぎます。
warmup_epochsfloat3.0学習率ウォームアップのエポック数です。初期段階のトレーニングを安定させるため、低い値から初期学習率まで徐々に学習率を上げます。
warmup_momentumfloat0.8ウォームアップ段階の初期モメンタムです。ウォームアップ期間中に、設定済みのモメンタムへ徐々に調整します。
warmup_bias_lrfloat0.1ウォームアップ段階におけるバイアスパラメーターの学習率です。初期エポックでのモデル学習を安定させます。デフォルトのoptimizer='auto'では自動的に0.0に設定されるため、使用するにはオプティマイザーを明示的に指定してください。
distill_modelstrNone知識蒸留に使用する教師モデルのチェックポイントへのパス(例: yolo26x.pt)です。設定すると、固定された教師モデルの指導による追加の蒸留損失を用いて、生徒モデルをトレーニングします。
disfloat6.0標準の検出損失に加算する蒸留損失の重みです。値を大きくすると、教師モデルによる特徴のガイダンスの影響が強まります。
boxfloat7.5損失関数におけるボックス損失項の重みです。バウンディングボックスの座標を正確に予測することをどの程度重視するかを調整します。
clsfloat0.5合計損失における分類損失の重みです。他の項目に対する、正しいクラス予測の重要度を調整します。
cls_pwfloat0.0クラス頻度の逆数を用いてクラスの不均衡に対処するための、クラス重み付けの係数です。0.0ではクラス重み付けが無効になり、1.0では頻度の逆数による重み付けが完全に適用されます。0から1の値では、部分的に重み付けされます。
dflfloat1.5ボックス距離の回帰項の重みです。検出ヘッドがreg_max > 1を使用する場合は分布焦点損失(DFL)、DFLを使用しないYOLO26(reg_max: 1)では正規化されたボックス距離に対するL1損失を指します。
posefloat12.0姿勢推定用にトレーニングするモデルにおける姿勢損失の重みです。姿勢キーポイントを正確に予測することをどの程度重視するかを調整します。
kobjfloat1.0姿勢推定モデルにおけるキーポイントの物体らしさ損失の重みです。検出信頼度と姿勢精度のバランスを調整します。
rlefloat1.0姿勢推定モデルにおける残差対数尤度推定損失の重みです。キーポイントの位置特定精度に影響します。
anglefloat1.0OBBモデルにおける角度損失の重みです。回転バウンディングボックスの角度予測の精度に影響します。
dlogfloat1.0深度推定モデルにおけるスケール不変対数(SILog)損失の重みです。深度精度を左右する主要な項です。
dgradfloat0.5深度推定モデルにおける勾配損失の重みです。深度エッジの誤差にペナルティを課し、表面境界をより鮮明にします。
dlamfloat1.0深度推定モデルにおけるSILog損失の分散重視係数です。1.0では損失が完全なスケール不変となり、0.0では単純な対数RMSEになります。
nbsint64損失の正規化に使用する公称バッチサイズです。
overlap_maskboolTrueトレーニング時に物体マスクを単一のマスクに統合するか、物体ごとに分けたままにするかを指定します。統合時に重なりがある場合は、小さいマスクが大きいマスクの上に重ねられます。
mask_ratioint4セグメンテーションマスクのダウンサンプリング比率です。トレーニング時に使用するマスクの解像度に影響します。予測マスクの解像度は変わりません。
dropoutfloat0.0分類タスクにおける正則化のドロップアウト率です。トレーニング中にユニットをランダムに除外することで過学習を防ぎます。
valboolTrueトレーニング中の検証を有効にし、別のデータセットでモデル性能を定期的に評価します。
nmsbool、省略可Noneエポック検証、チェックポイント選択、早期停止に使用する推論ヘッドを選択します。NoneまたはTrueではNMSを使用するone-to-manyヘッドが使われ、Falseでは利用可能な場合にNMSフリーヘッドが使われます。どちらのヘッドもトレーニング損失は維持されます。
plotsboolTrueトレーニングと検証のメトリクス、および予測例のプロットを生成して保存し、モデルの性能と学習の進捗を視覚的に確認できるようにします。
compileboolまたはstrFalsePyTorch 2.xのtorch.compileグラフコンパイルをbackend='inductor'で有効にします。True → "default"、False → 無効、または"default"、"reduce-overhead"、"max-autotune-no-cudagraphs"などの文字列モードを指定できます。未対応の場合は警告を表示し、eagerモードにフォールバックします。
channels_lastboolNoneトレーニング中の畳み込みでchannels_last(NHWC)メモリ形式を使用します。Noneでは、Windowsを除き、PyTorch 1.11以降を搭載したCUDA環境で自動的に有効になります。Windowsでは速度が低下することが確認されています。Falseでは無効になり、Trueでは明示的に有効化されます。CPUまたはMPSでのトレーニングは常にNCHWのままです(Trueは警告とともに無視されます)。
max_detint300トレーニング中の検証における、画像あたりの最大検出数です。detect、segment、pose、OBBでは、トレーニング/検証データのラベル付き物体数が300を超える場合に限り、デフォルト値の300がその最大数に引き上げられます。それ以外の値は固定され、上限を超えると警告が表示されます。
バッチサイズ設定に関する注意

batch引数には、次の3つの設定方法があります。

  • 固定バッチサイズ: 整数(例: batch=16)で、バッチあたりの画像数を指定します。
  • 自動モード(GPUメモリ60%): batch=-1を指定すると、CUDAメモリ使用率が約60%になるよう自動調整されます。
  • 使用率を指定する自動モード: 割合(例: batch=0.70)を設定すると、指定したGPUメモリ使用率に基づいて調整されます。
  • 適合する値が見つからない場合: 使用可能なプロファイルを生成できるバッチサイズ候補がない場合、AutoBatchは無関係なデフォルト値に暗黙的にフォールバックせず、明確なRuntimeErrorを発生させます。

トレーニングガイド

推論設定#

YOLOモデルの推論設定には、推論時の性能、速度、精度に影響するハイパーパラメーターと構成が含まれます。主な設定には、信頼度しきい値、非最大抑制(NMS)のしきい値、クラス数があります。入力データのサイズと形式、およびマスクなどの補助機能も予測結果に影響します。最適な性能を得るには、これらの設定の調整が重要です。

推論引数:

引数種類デフォルト説明
sourcestr、int、またはNoneNone推論のデータソースを指定します。画像パス、動画ファイル、ディレクトリ、URL、またはライブ配信用のデバイスIDを指定できます。省略すると警告がログに記録され、組み込みのデモアセット(ultralytics/assets、またはOBBの場合はデモURL)がモデルで使用されます。幅広い形式とソースに対応しているため、さまざまな種類の入力に柔軟に適用できます。
conffloat0.25検出の最小信頼度しきい値を設定します。このしきい値を下回る信頼度で検出された物体は無視されます。この値を調整すると、誤検出を減らせる場合があります。
ioufloat0.7非最大抑制(NMS)に使用する積集合対和(IoU)のしきい値です。値を小さくすると、重なり合うボックスが除外されて検出数が減り、重複の削減に役立ちます。
imgszintまたはtuple640レターボックスの目標サイズです。整数を指定すると正方形のN×Nになり、タプルを指定すると(height, width)になります。rect=Trueの場合、最小矩形パディングにより実際のテンソルが目標サイズより小さくなることがあります。固定サイズにするにはrect=Falseを使用してください。固定形状と最小矩形をご覧ください。
rectboolTrueTrueの場合、可能であれば最小矩形パディングを使用します(同じ形状のバッチで、バックエンドが対応している場合)。Falseの場合、常に完全なimgszまでパディングします。固定形状と最小矩形をご覧ください。
quantizeintまたはstrNone推論精度: 16/"fp16"および32/"fp32"/未設定の場合、PyTorchモデルとTorchScriptモデルの計算にFP16またはFP32が選択されます。他の形式では、アーティファクトとランタイムによって選択される精度で計算されます。16の場合、OpenVINOは引き続きクライアント側で入力をFP16に丸めてからFP32に戻しますが、ランタイムが使用する計算精度は変わりません。INT8/PTQ量子化はエクスポート時に設定し、エクスポート済みモデルを読み込んで使用します。非推奨のhalfフラグに代わるものです。
devicestrNone推論に使用するデバイスを指定します(例: cpu、cuda:0、0、npu、またはnpu:0)。モデルの実行にCPU、特定のGPU、Huawei Ascend NPU、その他の計算デバイスを選択できます。
dnnboolFalseTrueの場合、ONNXモデルの推論にONNX RuntimeではなくOpenCV DNNモジュールを使用します。
datastrNoneデータセットYAMLへのパス(例: coco8.yaml)。読み込んだモデル自体にクラス名がない場合に限り、そのnamesだけを読み取ります。該当するのは、サードパーティによるエクスポートモデル、または付属のメタデータから切り離されたUltralyticsエクスポートモデルです。このようなモデルは、それ以外の場合、class0、class1などを出力します。
batchint1推論のバッチサイズを指定します(ディレクトリ、動画ファイル、または.txtファイルをソースにする場合のみ有効です)。バッチサイズを大きくするとスループットが向上し、推論にかかる合計時間を短縮できます。
max_detint300画像ごとに許可される検出数の最大値です。1回の推論でモデルが検出できるオブジェクトの総数を制限し、密集したシーンで過剰な出力が発生するのを防ぎます。
vid_strideint1動画入力のフレームストライドです。動画のフレームをスキップして処理を高速化しますが、時間解像度は低下します。値が1の場合はすべてのフレームを処理し、値を大きくするとフレームをスキップします。
stream_bufferboolFalse動画ストリームの受信フレームをキューに格納するかどうかを指定します。Falseの場合、新しいフレームを受け入れるために古いフレームを破棄します(リアルタイムアプリケーション向けに最適化されています)。Trueの場合、新しいフレームをバッファーにキューイングしてフレームのスキップを防ぎますが、推論FPSがストリームFPSより低いと遅延が発生します。
visualizeboolFalse各予測の横にクラスアクティベーションヒートマップを保存し、予測されたクラスのスコアを高めたピクセルを表示します。confとclassesを反映するため、classes=[0]の場合はそのクラスのみがマッピングされます。Ultralytics PyTorchモデルでのみ利用できます。
augmentboolFalse予測にテスト時拡張(TTA)を適用します。推論速度は低下する可能性がありますが、検出の頑健性を高められる場合があります。Ultralytics PyTorchモデルでのみ利用できます。
agnostic_nmsboolFalseクラス非依存のNon-Maximum Suppression(NMS)を有効にします。同じクラス内だけでなく、異なるクラス間でも重複するボックスを対象に、スコアの低いものを抑制します。クラス間の重複がよく発生するマルチクラス検出で有用です。NMSなし推論(YOLO26またはYOLOv10でnms=False)では、同じ検出が複数のクラスラベルで出力されること(IoU=1.0の重複)を防ぐだけで、異なるボックス間のIoUしきい値に基づく抑制は行いません。
classeslist[int]None予測をクラスIDのセットでフィルタリングします。指定したクラスに属する検出のみが返されます。マルチクラス検出タスクで、関連するオブジェクトに対象を絞る場合に便利です。
retina_masksboolFalse高解像度のセグメンテーションマスクを返します。有効にすると、返されるマスク(masks.data)は元の画像サイズに一致します。無効にすると、推論に使用した画像サイズになります。
embedlist[int]None特徴ベクトルまたは埋め込みを抽出するレイヤーを指定します。model.embed(source)では最後から2番目のレイヤーの埋め込みを使用し、model.predict(source, embed=[layer])では特定のレイヤーを選択します。クラスタリングや類似検索などの下流タスクで役立ちます。Ultralytics PyTorchモデルでのみ利用できます。
projectstrNonesaveが有効な場合に、予測出力を保存するプロジェクトディレクトリの名前です。
namestrNone予測実行の名前です。プロジェクトフォルダー内にサブディレクトリを作成し、saveが有効な場合に予測出力を保存するために使用します。
streamboolFalseすべてのフレームを一度にメモリへ読み込む代わりに、Resultsオブジェクトのジェネレーターを返すことで、長時間の動画や大量の画像をメモリ効率よく処理します。
verboseboolTrue端末に詳細な推論ログを表示するかどうかを制御し、予測処理の進行状況をリアルタイムで確認できるようにします。
compileboolまたはstrFalsePyTorch 2.xのtorch.compileグラフコンパイルをbackend='inductor'で有効にします。True → "default"、False → 無効、または"default"、"reduce-overhead"、"max-autotune-no-cudagraphs"などの文字列モードを指定できます。未対応の場合は警告を表示し、eagerモードにフォールバックします。
channels_lastboolNoneネイティブPyTorch推論でchannels_last(NHWC)メモリ形式を使用します。Noneでは、oneDNNを有効にしたLinuxおよびWindowsのx86 CPU上でPyTorch 1.13以降を使用する場合に自動的に有効になり、Falseでは無効になり、Trueでは対応するx86 CPUまたはCUDAデバイスでの使用を指定します。ARM64、MPS、古いPyTorchバージョン、oneDNN非対応CPU、およびTensorRTやONNXなどのエクスポート形式では変更されません。
nmsbool、省略可NoneデフォルトではNMSを使用したone-to-many推論(NoneまたはTrue)を実行します。利用可能な場合は、Falseを設定してNMSなしのone-to-oneヘッドを使用します。詳細はエンドツーエンド検出ガイドをご覧ください。

可視化の引数:

引数種類デフォルト説明
showboolFalseTrueの場合、注釈付き画像または動画をウィンドウに表示します。開発やテスト中にすぐ視覚的なフィードバックを得るのに便利です。
saveboolFalse or True注釈付き画像または動画をファイルに保存します。ドキュメント作成、追加分析、結果の共有に便利です。CLIで使用する場合のデフォルトはTrue、Pythonで使用する場合はFalseです。
save_framesboolFalse動画の処理時に、各フレームを画像として保存します。特定のフレームの抽出や、フレームごとの詳細な分析に便利です。
save_txtboolFalse検出結果を[class] [x_center] [y_center] [width] [height] [confidence]形式のテキストファイルに保存します。他の分析ツールとの連携に便利です。
save_confboolFalse保存されるテキストファイルに信頼度スコアを含めます。後処理や分析で利用できる情報が増えます。
save_cropboolFalse検出したオブジェクトのクロップ画像を保存します。データセットの拡張や分析、特定のオブジェクトに絞ったデータセットの作成に便利です。
show_labelsboolTrue可視化出力で各検出のラベルを表示します。検出されたオブジェクトをすぐに把握できます。
show_confboolTrue各検出のラベルとともに信頼度スコアを表示します。各検出に対するモデルの確信度を確認できます。
show_boxesboolTrue検出されたオブジェクトの周囲にバウンディングボックスを描画します。画像や動画フレーム内のオブジェクトを視覚的に識別し、位置を確認するために不可欠です。
line_widthint or NoneNoneバウンディングボックスの線幅を指定します。Noneの場合、画像サイズに応じて線幅が自動調整されます。見やすさを高めるために表示をカスタマイズできます。

予測ガイド

検証設定#

YOLOモデルの検証設定には、検証データセットで性能を評価するためのハイパーパラメーターと構成が含まれます。これらの設定は性能、速度、精度に影響します。一般的な設定には、バッチサイズ、検証頻度、性能指標などがあります。検証データセットのサイズや構成、特定のタスクも検証プロセスに影響します。

引数種類デフォルト説明
datastrNoneデータセットYAMLへのパス(例: coco8.yaml)を指定します。YAMLには検証データへのパスを含める必要があります。分類では、代わりにデータセットディレクトリまたは組み込みデータセット名(例: imagenet10)を指定します。
imgszint640入力画像のサイズを定義します。すべての画像は処理前にこのサイズへリサイズされます。サイズを大きくすると小さなオブジェクトの精度が向上する場合がありますが、計算時間は増加します。
batchint16バッチあたりの画像数を設定します。値を大きくするとGPUメモリをより効率的に使用できますが、より多くのVRAMが必要です。利用可能なハードウェアリソースに応じて調整してください。
save_jsonboolFalseTrueの場合、追加分析、他のツールとの連携、COCOなどの評価サーバーへの提出に使用できるよう、結果をJSONファイルに保存します。検出データセットでは、予測をfaster-coco-evalで評価し、小・中・大オブジェクトのmAPも報告します。これらはトレーニング中にresults.csvのmetrics/mAP_small(B)、metrics/mAP_medium(B)、metrics/mAP_large(B)としてログに記録されます。
conffloat0.001検出の最小信頼度しきい値を設定します。値を下げると再現率が向上しますが、誤検出が増える可能性があります。Precision-Recall曲線、mAP、検出の混同行列では、いずれもこの値を使用します。confを0.25のように高くすると、行列は予測出力に近づきますが、mAPが低下する場合があります。要約の適合率と再現率には最大F1値となる信頼度が使用されるため、confusion_matrix.pngから算出した値と異なる場合があります。OBB検証では、メモリ使用量を抑えるため、デフォルトで0.01になります。
ioufloat0.7Non-Maximum SuppressionのIntersection Over Unionしきい値を設定します。重複検出の除去を制御します。
max_detint300画像ごとの検出数の最大値を制限します。detect、segment、pose、OBBでは、値が300のままの場合、画像内の検出数がこの値を超えると、警告を出したうえで検証対象split内のラベル付きオブジェクト数の最大値まで引き上げます。それ以外の値はそのまま使用され、画像内の検出数が設定値を超えた場合、再現率が制限される可能性があることを警告します。
quantizeintまたはstrNone検証時の精度: 16/"fp16"と32/"fp32"/未設定の組み合わせで、PyTorchおよびTorchScriptモデルのFP16またはFP32演算を選択します。他の形式では、アーティファクトとランタイムで選択される精度で演算します。16の場合、OpenVINOは引き続きクライアント側で入力をFP16に丸めてからFP32に拡張しますが、ランタイムの演算精度は変更しません。INT8/PTQ量子化はエクスポート時に設定し、エクスポートしたモデルの検証時に使用します。非推奨のhalfフラグに代わる設定です。
devicestrNone検証に使用するデバイスを指定します(cpu、cuda:0、npu、npu:0など)。Noneの場合、利用可能な最適なデバイスが自動的に選択されます。複数のCUDAデバイスはカンマ区切りで指定できます。
dnnboolFalseTrueの場合、ONNXモデルの推論にOpenCV DNNモジュールを使用します。PyTorchの推論方法に代わる選択肢を提供します。
plotsboolTrueTrueに設定すると、モデル性能を視覚的に評価するために、予測とGround Truthのプロット、混同行列、PR曲線を生成して保存します。
classeslist[int]None評価するクラスIDのリストを指定します。評価対象を特定のクラスに絞り込む場合に便利です。
rectboolTrueTrueの場合、バッチ処理に矩形推論を使用します。パディングを減らし、元のアスペクト比のまま画像を処理することで、速度と効率が向上する可能性があります。すべての画像をパディングせずに固定サイズのimgsz正方形へ変形するdepth検証では無視されます。
splitstr'val'検証に使用するデータセットsplit(val、test、train)を指定します。性能評価に使用するデータの区分を柔軟に選択できます。
fractionfloat、int、またはlist1.0検証対象splitのサブセットです。[train, val, test]リストを指定すると、splitに一致する項目が適用されます(1はsplit全体、1を超える整数は画像数、省略された項目は全体を意味します)。スカラー値はsplit=trainの場合にのみ適用されます。この場合、valとtestはsplit全体を使用します。
projectstrNone検証出力を保存するプロジェクトディレクトリの名前です。異なる実験やモデルの結果を整理できます。
namestrNone検証実行の名前です。プロジェクトフォルダー内にサブディレクトリを作成し、検証ログと出力を保存するために使用します。
verboseboolTrueTrueの場合、検証プロセス中にクラスごとの指標、バッチの進行状況、追加のデバッグ情報など、詳細情報を表示します。
save_txtboolFalseTrueの場合、検出結果をテキストファイルに保存します。画像ごとに1つのファイルが作成され、追加分析、カスタム後処理、他システムとの連携に利用できます。
save_confboolFalseTrueの場合、save_txtが有効であれば、保存するテキストファイルに信頼度の値を含めます。分析やフィルタリングに利用できる詳細な出力を提供します。
workersint8データ読み込みに使用するワーカースレッドの数です。値を大きくするとデータの前処理が高速になる場合がありますが、CPU使用量も増加する可能性があります。0に設定するとメインスレッドを使用し、環境によっては動作がより安定します。
augmentboolFalse検証時にテスト時拡張(TTA)を有効にし、変換した入力で推論を実行します。推論速度は低下する可能性がありますが、検出精度を高められる場合があります。Ultralytics PyTorchモデルでのみ利用できます。
agnostic_nmsboolFalseクラス非依存のNon-Maximum Suppressionを有効にし、予測クラスにかかわらず、重複するボックスのうちスコアが低いものを抑制します。インスタンスに焦点を当てたアプリケーションで便利です。NMSなし推論(YOLO26またはYOLOv10でnms=False)では、同じ検出が複数のクラスラベルで出力されること(IoU=1.0の重複)を防ぐだけで、異なるボックス間のIoUしきい値に基づく抑制は行いません。
single_clsboolFalse検証中、すべてのクラスを単一のクラスとして扱います。二値検出タスクでモデル性能を評価する場合や、クラスの区別が重要でない場合に便利です。
visualizeboolFalse各画像のGround Truth、真陽性、偽陽性、偽陰性を可視化します。デバッグやモデルの解釈に便利です。
show_labelsboolTruevisualize=Trueの場合、検証の可視化結果にクラスラベルを表示します。Falseに設定すると、一致とエラーを見やすく表示できます。
show_confboolTruevisualize=Trueの場合、検証の可視化結果に信頼度スコアを表示します。Falseに設定すると、一致とエラーを見やすく表示できます。
compileboolまたはstrFalsePyTorch 2.xのtorch.compileグラフコンパイルをbackend='inductor'で有効にします。True → "default"、False → 無効、または"default"、"reduce-overhead"、"max-autotune-no-cudagraphs"などの文字列モードを指定できます。未対応の場合は警告を表示し、eagerモードにフォールバックします。
channels_lastboolNoneネイティブPyTorch検証でchannels_last(NHWC)メモリ形式を使用します。Noneでは、oneDNNを有効にしたLinuxおよびWindowsのx86 CPU上でPyTorch 1.13以降を使用する場合に自動的に有効になり、Falseでは無効になり、Trueでは対応するx86 CPUまたはCUDAデバイスでの使用を指定します。ARM64、MPS、古いPyTorchバージョン、oneDNN非対応CPU、エクスポート形式では変更されません。トレーニング中の検証では、トレーニングモデルのレイアウトが維持されます。
nmsbool、省略可NoneデフォルトではNMSを使用したone-to-many推論(NoneまたはTrue)を実行します。利用可能な場合は、Falseを設定してNMSなしのone-to-oneヘッドを使用します。詳細はエンドツーエンド検出ガイドをご覧ください。

最適な性能を確保し、過学習を検出して防止するには、慎重な調整と実験が不可欠です。

検証ガイド

エクスポート設定#

YOLOモデルのエクスポート設定には、さまざまな環境で使用できるようにモデルを保存またはエクスポートするための構成が含まれます。これらの設定は性能、サイズ、互換性に影響します。主な設定には、エクスポートするファイル形式(例: ONNX、TensorFlow SavedModel)、対象デバイス(例: CPU、GPU)、マスクなどの機能があります。モデルのタスクやエクスポート先環境の制約も、エクスポートプロセスに影響します。

引数種類デフォルト説明
formatstr'torchscript'エクスポートモデルのターゲット形式を指定します。'onnx'、'torchscript'、'engine'(TensorRT)などを指定できます。形式ごとに異なるデプロイ環境との互換性が得られます。
namestrNone形式にハードウェアターゲット名が必要な場合に指定します。Hailoアーキテクチャ('hailo8'、'hailo8l'、'hailo10h'、'hailo15h'、'hailo15l'。デフォルトは'hailo8l')、Rockchip RKNNチップ(デフォルトは'rk3588')、Huawei Ascend SoC(CANNの--soc_version。デフォルトは'Ascend310B4')、Qualcomm QNN HTPターゲット(デフォルトは'73')、またはAMD Xilinx Versal AI Edge Series Gen 2デバイス(デフォルトは've2-xc2ve3858'、VEK385評価キット)を指定します。他のモードで使用するproject/nameの実行名ペアとは異なります。
imgszintまたはtuple640モデル入力の画像サイズを指定します。正方形の画像では整数(640×640の場合は640など)、特定の幅と高さを指定する場合はタプル(height, width)を使用できます。指定しない場合、エクスポートでは、読み込んだチェックポイントに記録されたトレーニング時のサイズが再利用されます。公式YOLO26チェックポイントでは、depthに768、classifyに224、OBBに1024、その他のタスクに640が記録されています。ファインチューニング済みモデルには、トレーニングに使用したimgszが記録されています。YAMLから構築したモデルにはトレーニング時のサイズが記録されておらず、640が使用されます。
optimizeboolFalseDEEPXでより高度なコンパイラー最適化を有効にし、コンパイル時間を増やす代わりに推論レイテンシを短縮します。
quantizeintまたはstrNone量子化精度: 16(FP16。モデルサイズを削減し、対応ハードウェアでは推論を高速化できる場合があります)または8(INT8/PTQ。モデルをさらに圧縮し、エッジデバイス向けに精度の低下を最小限に抑えます。キャリブレーションdata/fractionが必要です)。32または未設定の場合はFP32です。quantize=8でトレーニングしたチェックポイントは、常にINT8でエクスポートされます。onnxとengineはキャリブレーションなしでチェックポイントに含まれる範囲からエクスポートされ、他の形式や精度は拒否されます。'w8a8'と'w16a16'は、それぞれ8と16のエイリアスです。混合精度の'w8a16'(16ビットアクティベーションを使用するINT8重み: CoreML、LiteRT、QNN)と'w8a32'(動的INT8: LiteRT)は、それぞれの形式でのみ使用できます。非推奨のhalf/int8フラグに代わる設定です(half=True → 16、int8=True → 8。非推奨の警告とともに引き続き使用できます)。ターゲット形式でサポートされている精度のみ指定できます(以下を参照)。
dynamicboolFalseTorchScript、ONNX、OpenVINO、TensorRT、CoreML、MNNのエクスポートで動的な入力サイズを使用できるようにし、さまざまな画像サイズへの対応を柔軟にします。
simplifyboolTrue中間ONNXグラフをonnxslimで簡素化します。対象はグラフを構築するエクスポートです(エクスポート形式を参照)。推論エンジンとの性能や互換性が向上する場合があります。
opsetintNoneONNXグラフを構築するエクスポートのONNX opsetバージョンを指定します(エクスポート形式を参照)。さまざまなONNXパーサーやランタイムとの互換性のために使用します。設定しない場合、サポートされている最新バージョンを使用します。
workspacefloatまたはNoneNoneTensorRTの最適化に使用するワークスペースの最大サイズをGiB単位で設定し、メモリ使用量と性能のバランスを取ります。Noneを指定すると、TensorRTがデバイスの最大値まで自動で割り当てます。
nmsbool、省略可NoneNoneは外部NMS用にraw one-to-many予測をエクスポートし、Trueは対応形式でNMSを組み込み、Falseは利用可能な場合にNMSなしヘッドを選択します。CoreMLの組み込みNMSは、静的なshapeのdetect、segment、poseをサポートします。詳細はエンドツーエンド検出ガイドをご覧ください。
conffloatNoneエクスポート時にNMSを生成する場合に使用する信頼度しきい値です。対象はnms=Trueエクスポート、Hailoの非エンドツーエンドdetectエクスポート、および内部でnms=Trueを強制するIMXのdetect、pose、segmentエクスポートです。未設定の場合は0.25がデフォルトになります。
ioufloat0.7エクスポート時にNMSを生成する場合に使用するIoUしきい値です。対象はnms=Trueエクスポート、Hailoの非エンドツーエンドdetectエクスポート、および内部でnms=Trueを強制するIMXのdetect、pose、segmentエクスポートです。
max_detint300エクスポートモデルの出力に保持する検出数の最大値です。CoreMLのdetectを除くすべての形式のnms=Trueエクスポートに適用されます。CoreMLのdetectではネイティブNMSパイプラインに検出数の上限がありません。また、NMSなしのエンドツーエンド検出エクスポート(YOLO26、YOLOv10。利用可能なアンカー数を上限とします)と、IMXのdetect、pose、segmentエクスポートにも適用されます。
agnostic_nmsboolFalse標準のnms=Trueパイプラインでエクスポート時のNMSを生成する場合は、クラス非依存NMSを有効にします。CoreML独自のNMS段階も対象となり、同じクラス内だけでなく異なるクラス間でも、重複するボックスのうちスコアが低いものを抑制します。HailoおよびIMX独自の生成NMS設定ではクラス非依存のオプションがないため、このフラグは反映されず、クラスを区別した処理が行われます。また、NMSなしのエンドツーエンドエクスポート(YOLO26、YOLOv10)にも組み込まれます。この場合、同じ検出が複数のクラスラベルで出力されること(IoU=1.0の重複)を防ぐだけで、異なるボックス間のIoUしきい値に基づく抑制は行いません。
batchint1エクスポートモデルのバッチ推論サイズ、またはpredictモードでエクスポートモデルが同時に処理する画像の最大数を指定します。エクスポート引数にbatchがない形式(Edge TPU、IMX500、DEEPX、Hailo、AMD Xilinx)はバッチサイズ1でエクスポートされ、他の値は受け付けません。
devicestrNoneエクスポートに使用するデバイスを指定します。GPU(device=0)、CPU(device=cpu)、Appleシリコン向け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をサポートしていません。
verboseboolFalseformat='engine'のエクスポート中、TensorRTビルダーのログレベルをVERBOSEに引き上げます。他のエクスポート形式では無視されます。
datastrNoneデータセットYAMLへのパスです。INT8量子化のキャリブレーションに必須です。分類では、代わりにデータセットディレクトリまたは組み込みデータセット名を指定します。INT8が有効でパスが指定されていない場合、Ultralyticsは必要に応じてタスク固有のキャリブレーションデータセットを選択し、またはモデルのタスクに対応するデフォルトのデータセットを使用します。quantize=8でトレーニングしたチェックポイントには独自のINT8範囲が含まれているため、キャリブレーションデータは必要ありません。
splitstr'val'dataからINT8量子化キャリブレーション用データローダーを構築する際に使用するデータセットsplit('train'、'val'、'test')です。
fractionfloat、int、またはlist1.0INT8キャリブレーションに使用するデータセットのサブセットです。比率、画像数、または[train, val, test]の値を指定します。1はsplit全体を意味し、1を超える整数は画像数を意味します。省略可能なtest項目では、0/0.0のみを指定して対象なしを表せます。2項目のリストでは、testは全体が対象になります。

適切に設定することで、エクスポートモデルを用途に合わせて最適化し、ターゲット環境で効果的に動作させることができます。

エクスポートガイド

Solutionsの設定#

Ultralytics Solutionsの設定では、オブジェクトカウント、ヒートマップ作成、ワークアウト追跡、データ分析、ゾーン追跡、キュー管理、領域ベースのカウントなどのタスクに合わせてモデルを柔軟にカスタマイズできます。各種オプションを簡単に調整し、ニーズに応じた正確で有用な結果を得られます。

引数種類デフォルト説明
modelstrNoneUltralytics YOLOモデルファイルへのパスです。
regionlistまたはdictNone関心領域を定義するポイントです。(x, y)タプルのリスト、または複数領域用に領域名とポイントリストを対応付ける辞書(RegionCounterのみ)を指定します。Noneの場合、領域が必要なSolutionsでは定義済みのデフォルト値が使用されます。
show_inboolTrue動画ストリームに入場数を表示するかどうかを制御するフラグです。
show_outboolTrue動画ストリームに退場数を表示するかどうかを制御するフラグです。
analytics_typestr'line'グラフの種類です。line、bar、area、pieを指定できます。
colormapintcv2.COLORMAP_DEEPGREENヒートマップに使用するカラーマップです。
line_widthint2Solutionが描画するボックス、キーポイント、カウント表示の線幅です。
verboseboolTrue各フレームの入力shape、クラス数、処理速度を記録するSolutionのログを有効にします。トラッキング呼び出し自体は常にログを出力しません。
json_filestrNoneすべての駐車座標データを含むJSONファイルへのパスです。
up_anglefloat145.0「上」ポーズの角度しきい値です。
kptslist[int][6, 8, 10]ワークアウトのモニタリングに使用する3つのキーポイントインデックスのリストです。これらのキーポイントは、腕立て伏せ、懸垂、スクワット、腹筋運動などで使用する肩、肘、手首といった身体の関節や部位に対応します。
down_anglefloat90.0「下」ポーズの角度しきい値です。
blur_ratiofloat0.5ぼかしの強度をパーセンテージで調整します。値の範囲は 0.1 - 1.0 です。
crop_dirstr'cropped-detections'切り抜いた検出結果を保存するディレクトリ名です。
recordsint5セキュリティ警報システムでメールを送信するトリガーとなる検出数の合計です。
vision_pointtuple[int, int](20, 20)VisionEye Solutionを使用して、ビジョンがオブジェクトを追跡し、軌跡を描画する位置です。
sourcestrNone入力ソース(動画、RTSPなど)へのパスです。Solutionsのコマンドラインインターフェース(CLI)でのみ使用できます。
figsizetuple[float, float](12.8, 7.2)Analytics のチャートで使用するインチ単位の図のサイズです。(12.8, 7.2) は1280×720のフレームを描画します。
fpsfloat30.0速度の計算に使用する1秒あたりのフレーム数です。
max_histint5速度や方向の計算で、オブジェクトごとに追跡する履歴ポイントの最大数です。
meter_per_pixelfloat0.05ピクセル距離を実世界の単位に変換するためのスケーリング係数です。
max_speedint120速度の上限(km/h)です。推定速度がこの値を超える場合、この値に制限されます。
datastr'images'類似検索に使用する画像ディレクトリへのパスです。
imgszint640モデル推論に使用する入力画像のサイズです。

ソリューションガイド

データ拡張の設定#

データ拡張の手法は、トレーニングデータに変化を加えてモデルの汎化性能を高め、未学習のデータにも適切に対応できるようにすることで、YOLOモデルの堅牢性と性能の向上に欠かせません。次の表では、各データ拡張引数の目的と効果を説明します。

引数種類デフォルト対応タスク範囲説明
hsv_hfloat0.015detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0色相環の一部の割合に応じて画像の色相を調整し、色に変化を加えます。さまざまな照明条件へのモデルの汎化に役立ちます。classify の場合、auto_augment=None のときにのみ適用されます。
hsv_sfloat0.7detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0画像の彩度を割合に応じて変化させ、色の鮮やかさを調整します。さまざまな環境条件のシミュレーションに役立ちます。classify の場合、auto_augment=None のときにのみ適用されます。
hsv_vfloat0.4detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0画像の値(明るさ)を割合に応じて変更し、さまざまな照明条件下でのモデルの性能向上に役立ちます。classify の場合、auto_augment=None のときにのみ適用されます。
degreesfloat0detect, segment, semantic, depth, pose, obb0.0 - 180指定された角度の範囲内で画像をランダムに回転させ、さまざまな向きのオブジェクトを認識するモデルの能力を高めます。
translatefloat0.1detect, segment, semantic, depth, pose, obb0.0 - 1.0画像サイズに対する割合に応じて画像を水平方向および垂直方向に平行移動させ、部分的にしか見えないオブジェクトの検出学習に役立てます。
scalefloat | tuple0.5detect, segment, semantic, depth, classify, pose, obb0 - 1、または明示的な (min, max) タプル(classify には適用されません)ゲイン係数を使って画像を拡大・縮小し、カメラからの距離が異なるオブジェクトをシミュレートします。
shearfloat0detect, segment, semantic, depth, pose, obb-180 - +180指定された角度で画像をせん断変換し、さまざまな角度からオブジェクトを見た状態を再現します。
perspectivefloat0detect, segment, semantic, depth, pose, obb0.0 - 0.001画像にランダムな射影変換を適用し、3D空間内のオブジェクトをモデルが理解する能力を高めます。
flipudfloat0detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0指定された確率で画像を上下反転し、オブジェクトの特性を変えずにデータの多様性を高めます。
fliplrfloat0.5detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0指定された確率で画像を左右反転します。対称的なオブジェクトの学習やデータセットの多様性向上に役立ちます。
bgrfloat0detect, segment, semantic, depth, pose, obb0.0 - 1.0指定された確率で画像のチャンネルをRGBからBGRに反転させ、チャンネル順序の誤りに対する堅牢性を高めます。
mosaicfloat1detect, segment, semantic, pose, obb0.0 - 1.04枚のトレーニング画像を1枚に統合し、さまざまなシーン構成やオブジェクト間の相互作用をシミュレートします。複雑なシーンの理解に非常に効果的です。
mixupfloat0detect, segment, semantic, pose, obb0.0 - 1.02枚の画像とそれぞれのラベルをブレンドして、合成画像を作成します。ラベルノイズと視覚的な多様性を加えることで、モデルの汎化性能を高めます。
cutmixfloat0detect, segment, semantic, pose, obb0.0 - 1.02枚の画像の一部を組み合わせ、領域を区別したまま部分的にブレンドします。オクルージョンの状況を作り出すことで、モデルの堅牢性を高めます。
copy_pastefloat0segment, semantic, obb0.0 - 1.0貼り付け対象となるオブジェクトの割合です。flip は画像内でオブジェクトを反転させ、mixup は画像間で適用する確率としてもこの値を使用します。
copy_paste_modestrflipsegment, semantic, obb-使用する copy-paste 戦略を指定します。選択肢は 'flip' と 'mixup' です。
auto_augmentstrrandaugmentclassify-事前定義されたデータ拡張ポリシー('randaugment'、'autoaugment'、または 'augmix')を適用し、視覚的な多様性によってモデルの性能を高めます。
erasingfloat0.4classify0.0 - 1.0トレーニング中に画像の領域をランダムに消去し、モデルが目立ちにくい特徴に注目するよう促します。
augmentationslistNonedetect, segment, semantic, depth, pose, obb-高度なデータ拡張に使用するカスタムAlbumentations変換です(Python APIのみ)。特殊なデータ拡張のニーズに応じて、変換オブジェクトのリストを指定できます。

データセットとタスクの要件に合わせて設定を調整してください。さまざまな値を試すことで、モデルの性能を最大化する最適なデータ拡張戦略を見つけやすくなります。

データ拡張ガイド

ログ、チェックポイント、プロットの設定#

YOLOモデルのトレーニングでは、ログ記録、チェックポイント、プロット、ファイル管理が重要です。

  • ログ記録: TensorBoardなどのライブラリを使用するか、ファイルに書き込むことで、モデルの進捗を追跡し、問題を診断できます。
  • チェックポイント: 定期的にモデルを保存し、トレーニングを再開したり、さまざまな設定を試したりできるようにします。
  • プロット: MatplotlibやTensorBoardなどのライブラリを使用して、性能とトレーニングの進捗を可視化します。
  • ファイル管理: チェックポイント、ログファイル、プロットなど、トレーニング中に生成されるファイルを整理し、簡単にアクセスして分析できるようにします。

これらの要素を適切に管理することで、進捗を追跡しやすくなり、デバッグや最適化も容易になります。

引数デフォルト説明
projectNoneトレーニング実行の保存先となるルートディレクトリを指定します。指定しない場合、実行結果は runs/<task> の下に保存されます。各実行結果は個別のサブディレクトリに保存されます。
nameNone実験名を指定します。指定しない場合、YOLOはモード名を使用し、上書きを避けるために実行ごとに番号を増やします(例: train、train-2)。
exist_okFalse既存の実験ディレクトリを上書きするかどうかを指定します。True は上書きを許可し、False は上書きを防止します。
plotsTrueトレーニングおよび検証プロットの生成と保存を制御します。True に設定すると、損失曲線、適合率-再現率曲線、サンプル予測などのプロットが作成され、性能を視覚的に追跡できます。
saveTrueトレーニングのチェックポイントと最終的なモデルの重みの保存を有効にします。True に設定すると、モデルの状態が定期的に保存され、トレーニングの再開やモデルのデプロイが可能になります。

カスタム設定ファイル#

保存済みのYAMLを読み込み、引数一式をインラインで渡さずに再利用します。cfg 引数は default.yaml の値を上書きしますが、同時に渡された追加の引数が優先されます。

引数デフォルト説明
cfgNone値によって default.yaml の項目を置き換えるYAMLファイルへのパスです。CLIの使用例については、デフォルト設定ファイルの上書きを参照してください。

よくある質問#

  • バッチサイズ、学習率、モメンタム、weight decayなどのハイパーパラメーターを調整して、性能を向上させます。データ拡張の設定を調整し、適切なオプティマイザーを選択して、早期停止や混合精度などの手法を使用します。詳細については、トレーニングガイドを参照してください。

  • 精度に影響する主なハイパーパラメーターは次のとおりです。

    • バッチサイズ(batch): 大きくするとトレーニングが安定することがありますが、より多くのメモリが必要です。
    • 学習率(lr0): 小さくすると細かな調整ができますが、収束が遅くなります。
    • モメンタム(momentum): 勾配ベクトルを加速させ、振動を抑えます。
    • 画像サイズ(imgsz): 大きくすると精度が向上しますが、計算負荷も増加します。

    データセットとハードウェアに合わせてこれらを調整してください。詳しくはトレーニング設定をご覧ください。

  • 学習率(lr0)は非常に重要です。SGDの場合は 0.01、Adamオプティマイザーの場合は 0.001 から始め、デフォルトの auto は lr0 を無視するため、optimizer を明示的に設定してください。メトリクスを監視し、必要に応じて調整します。コサイン学習率スケジューラー(cos_lr)またはウォームアップ(warmup_epochs、warmup_momentum)を使用してください。詳細については、トレーニングガイドを参照してください。

  • デフォルトの設定は次のとおりです。

    • 信頼度しきい値(conf=0.25): 検出に必要な最小信頼度です。
    • IoUしきい値(iou=0.7): 非最大抑制(NMS)に使用します。
    • 画像サイズ(imgsz=640): 入力画像のサイズを変更します。
    • デバイス(device=None): CPU、CUDA GPU、Apple MPS、Intel XPU(xpu)、またはHuawei Ascend NPU(npu)を選択します。

    全体像については、予測設定と予測ガイドを参照してください。

  • 混合精度トレーニング(amp=True)では、FP16とFP32を使用してメモリ使用量を削減し、トレーニングを高速化します。最新のGPUで特に有効で、精度を大きく損なわずに、より大きなモデルの使用と計算の高速化が可能になります。詳しくは、トレーニングガイドをご覧ください。

コメント