設定
YOLOの設定とハイパーパラメータは、モデルのパフォーマンス、速度、および精度において重要な役割を果たします。これらの設定は、トレーニング、検証、予測など、さまざまな段階でモデルの動作に影響を与える可能性があります。
Watch: Mastering Ultralytics YOLO: Configuration
Ultralyticsのコマンドでは、以下の構文を使用します。
yolo TASK MODE ARGS解説:
TASK(任意)は、次のいずれかです(detect、segment、classify、pose、obb)MODE(必須)は、次のいずれかです(train、val、predict、export、track、benchmark)ARGS(optional) arearg=valuepairs likeimgsz=640that override defaults.
デフォルトの ARG 値は本ページで定義されており、cfg/default.yaml ファイルから取得されます。
タスク
Ultralytics YOLOモデルは、以下を含むさまざまなコンピュータビジョンのタスクを実行できます。
- Detect: 物体検出は、画像またはビデオ内の物体を識別し、位置を特定します。
- Segment: インスタンスセグメンテーションは、画像またはビデオを、異なる物体やクラスに対応する領域に分割します。
- Classify: 画像分類は、入力画像のクラスラベルを予測します。
- Pose: 姿勢推定は、画像またはビデオ内の物体を識別し、そのキーポイントを推定します。
- OBB: 回転矩形(Oriented Bounding Boxes)は、衛星画像や医療画像に適した回転する境界ボックスを使用します。
| 引数 | デフォルト | 説明 |
|---|---|---|
task | 'detect' | YOLOタスクを指定します。detectは物体検出用、segmentはセグメンテーション用、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モデルのトレーニング設定には、モデルのパフォーマンス、速度、精度に影響を与えるハイパーパラメータと構成が含まれます。主な設定には、バッチサイズ、学習率、モメンタム、重み減衰(ウェイトディケイ)があります。オプティマイザ、損失関数、およびデータセットの構成の選択もトレーニングに影響を与えます。最適なパフォーマンスを得るには、チューニングと実験が不可欠です。詳細については、Ultralyticsエントリーポイント関数を参照してください。
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
model | str | None | トレーニング用のモデルファイルを指定します。.ptの事前学習済みモデルまたは.yamlの設定ファイルへのパスを受け入れます。モデル構造の定義や重みの初期化に不可欠です。 |
data | str | None | データセット設定ファイルへのパス(例: coco8.yaml)。このファイルには、トレーニングおよび検証データへのパス、クラス名、クラス数など、データセット固有のパラメータが含まれています。 |
epochs | int | 100 | トレーニングエポックの合計数。各エポックは、データセット全体を1回通過することを意味します。この値を調整することで、トレーニング期間とモデルのパフォーマンスに影響を与えることができます。 |
time | float | None | 最大トレーニング時間を時間単位で指定します。設定された場合、これは epochs 引数を上書きし、指定された時間後にトレーニングを自動的に停止させることができます。時間制限のあるトレーニングシナリオで有用です。 |
patience | int | 100 | 検証メトリクスの改善が見られない場合に、トレーニングを早期停止するまでのエポック数。パフォーマンスが停滞したときにトレーニングを停止することで、過学習を防ぐのに役立ちます。 |
batch | int または float | 16 | バッチサイズ。3つのモードがあります:整数で設定(例: batch=16)、GPUメモリ使用率60%の自動モード(batch=-1)、または指定した使用率で設定(batch=0.70)。 |
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 または device=npu:0)、または最もアイドル状態のGPUの自動選択(device=-1)、または複数のアイドル状態のGPU(device=[-1,-1])。 |
workers | int | 8 | データ読み込み用のワーカースレッド数(マルチGPUトレーニングの場合は RANK ごと)。データの前処理やモデルへの入力速度に影響を与え、特にマルチGPUセットアップで有用です。 |
project | str | None | トレーニング出力を保存するプロジェクトディレクトリ名。異なる実験を整理して保存できます。 |
name | str | None | トレーニング実行の名前。プロジェクトフォルダ内にサブディレクトリを作成するために使用され、そこにトレーニングログと出力が保存されます。 |
exist_ok | bool | False | Trueの場合、既存のプロジェクト/名前ディレクトリの上書きを許可します。以前の出力を手動で消去する必要なく、反復的な実験を行うのに便利です。 |
pretrained | bool または str | True | 事前学習済みの重みからトレーニングを開始するかどうかを決定します。ブール値、または読み込む重みへの文字列パスを指定できます。pretrained=False は、モデルアーキテクチャを維持したまま、ランダムに初期化された重みからトレーニングを行います。 |
optimizer | str | 'auto' | トレーニング用のオプティマイザの選択。SGD、MuSGD、Adam、Adamax、AdamW、NAdam、RAdam、RMSProp、またはモデル設定に基づいて自動選択する 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 | True | 自動混合精度(AMP)学習を有効にします。メモリ使用量を削減し、精度への影響を最小限に抑えつつ学習を高速化できる可能性があります。 |
fraction | float | 1.0 | 学習に使用するデータセットの割合を指定します。フルデータセットの一部を使用して学習できるため、実験を行う場合やリソースが限られている場合に便利です。 |
profile | bool | False | 学習中のONNXおよびTensorRTの速度をプロファイリングします。モデルのデプロイメントを最適化する際に役立ちます。 |
freeze | int または list | None | モデルの最初のN層、または指定したインデックスの層をフリーズし、学習可能なパラメータ数を減らします。ファインチューニングや転移学習に役立ちます。 |
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 | ウォームアップフェーズにおけるバイアスパラメータの学習率。初期エポックでのモデル学習を安定させるために役立ちます。 |
box | float | 7.5 | 損失関数におけるボックス損失成分の重み。バウンディングボックス座標の予測精度をどの程度重視するかに影響します。 |
cls | float | 0.5 | 全損失関数における分類損失の重み。他の成分と比較してクラス予測の正確さがどの程度重要であるかに影響します。 |
cls_pw | float | 0.0 | クラスの不均衡に対処するためのクラス重み付けの累乗(逆クラス頻度を使用)。0.0はクラス重み付けを無効にし、1.0は完全な逆頻度重み付けを適用します。0から1の間の値は部分的な重み付けを提供します。 |
dfl | float | 1.5 | Distribution Focal Lossの重み。一部のYOLOバージョンで、より精緻な分類に使用されます。 |
pose | float | 12.0 | ポーズ推定モデル学習時のポーズ損失の重み。ポーズキーポイントの正確な予測をどの程度重視するかに影響します。 |
kobj | float | 1.0 | ポーズ推定モデルにおけるキーポイントの物体性損失の重み。検出の信頼度とポーズの精度のバランスを取ります。 |
rle | float | 1.0 | ポーズ推定モデルにおける残差対数尤度推定損失の重み。キーポイント位置合わせの精度に影響します。 |
angle | float | 1.0 | OBBモデルにおける角度損失の重み。回転バウンディングボックスの角度予測の精度に影響します。 |
nbs | int | 64 | 損失正規化のための公称バッチサイズ。 |
overlap_mask | bool | True | 学習時にオブジェクトマスクを単一のマスクに統合するか、オブジェクトごとに分離したままにするかを決定します。重複がある場合、統合時に小さなマスクが大きなマスクの上に重ねられます。 |
mask_ratio | int | 4 | セグメンテーションマスクのダウンサンプル比率。学習中に使用されるマスクの解像度に影響します。 |
dropout | float | 0.0 | 分類タスクにおける正則化のためのドロップアウト率。学習中にユニットをランダムに除外することで過学習を防ぎます。 |
val | bool | True | 学習中のバリデーションを有効にします。別のデータセットを使用して、モデルのパフォーマンスを定期的に評価できます。 |
plots | bool | True | 学習およびバリデーションの指標、ならびに予測例のプロットを生成・保存し、モデルの性能や学習の進行状況を視覚的に把握できるようにします。 |
compile | bool または str | False | Enables PyTorch 2.x torch.compile graph compilation with backend='inductor'. Accepts True → "default", False → disables, or a string mode such as "default", "reduce-overhead", "max-autotune-no-cudagraphs". Falls back to eager with a warning if unsupported. |
max_det | int | 300 | 学習のバリデーションフェーズで保持されるオブジェクトの最大数を指定します。 |
batch引数には3つの設定オプションがあります:
- 固定バッチサイズ: 整数(例:
batch=16)でバッチあたりの画像数を指定します。 - 自動モード(GPUメモリの60%):
batch=-1を使用して、CUDAメモリ使用率を約60%に自動調整します。 - 利用率割合による自動モード: 割合(例:
batch=0.70)を設定し、指定したGPUメモリ使用量に基づいて調整します。
予測設定
YOLOモデルの予測設定には、推論中のパフォーマンス、速度、精度に影響を与えるハイパーパラメータと構成が含まれます。主な設定には、信頼度しきい値、非最大値抑制(NMS)しきい値、クラス数があります。入力データのサイズ、形式、およびマスクなどの補助機能も予測に影響を与えます。最適なパフォーマンスを得るには、これらの設定を調整することが不可欠です。
推論の引数:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
source | str または int または None | None | 推論のデータソースを指定します。画像パス、動画ファイル、ディレクトリ、URL、またはライブフィードのデバイスIDを指定できます。省略した場合、警告がログに記録され、モデルは組み込みのデモ用アセット(ultralytics/assets、またはOBB用のデモURL)を使用します。幅広い形式とソースをサポートしており、さまざまな入力タイプ全体で柔軟なアプリケーションを実現します。 |
conf | float | 0.25 | 検出の最小信頼度しきい値を設定します。このしきい値より低い信頼度で検出されたオブジェクトは無視されます。この値を調整することで、誤検出を減らすことができます。 |
iou | float | 0.7 | 非最大値抑制(NMS)のためのIntersection Over Union(IoU)しきい値です。値を下げると重複するボックスが排除され、検出数が減るため、重複の削減に役立ちます。 |
imgsz | int または tuple | 640 | レターボックスのターゲット。整数は正方形の N×N を与え、タプルは (height, width) を与えます。rect=True の場合、最小矩形のパディングにより実際のテンソルがこのターゲットよりも小さくなる可能性があります。固定サイズにするには rect=False を使用してください。固定形状 vs 最小矩形を参照してください。 |
rect | bool | True | True の場合、可能な限り最小矩形パディングを使用します(同じ形状のバッチおよびサポートされているバックエンドの場合)。False の場合は常に完全な imgsz にパディングします。固定形状 vs 最小矩形を参照してください。 |
half | bool | False | 半精度(FP16)推論を有効にします。サポートされているGPU上で、精度への影響を最小限に抑えつつモデル推論を高速化できます。 |
device | str | None | 推論に使用するデバイスを指定します(例: cpu, cuda:0, 0, npu または npu:0)。CPU、特定のGPU、Huawei Ascend NPU、またはその他のコンピューティングデバイスから選択してモデルを実行できます。 |
batch | int | 1 | 推論のバッチサイズを指定します(ソースがディレクトリ、動画ファイル、または .txt ファイルの場合にのみ機能します)。バッチサイズを大きくするとスループットが向上し、推論に必要な合計時間を短縮できます。 |
max_det | int | 300 | 1画像あたりの最大検出数です。単一の推論でモデルが検出できるオブジェクトの総数を制限し、密集したシーンでの過剰な出力を防ぎます。 |
vid_stride | int | 1 | 動画入力のフレームストライドです。動画内のフレームをスキップすることで、時間分解能と引き換えに処理を高速化できます。値が1の場合は全フレームを処理し、値が大きいほどフレームをスキップします。 |
stream_buffer | bool | False | ビデオストリームの着信フレームをキューに入れるかどうかを決定します。Falseの場合、古いフレームは破棄され、新しいフレームが優先されます(リアルタイムアプリケーション向けに最適化)。Trueの場合、新しいフレームをバッファにキューイングするため、フレームのスキップは発生しませんが、推論FPSがストリームFPSより低い場合はレイテンシが生じます。 |
visualize | bool | False | 推論中のモデル特徴量の可視化を有効にし、モデルが何を「見ているか」についての洞察を提供します。デバッグやモデルの解釈に役立ちます。 |
augment | bool | False | 予測のためのテスト時オーグメンテーション(TTA)を有効にします。推論速度と引き換えに、検出の堅牢性が向上する可能性があります。 |
agnostic_nms | bool | False | クラス非依存のNon-Maximum Suppression (NMS)を有効にし、異なるクラスの重複するボックスをマージします。クラスの重複が一般的であるマルチクラス検出シナリオで役立ちます。エンドツーエンドモデル(YOLO26, YOLOv10)の場合、これは同じ検出結果が複数のクラスラベルで出現するのを防ぐ(IoU=1.0の重複)のみであり、個別のボックス間でのIoUしきい値に基づいた抑制は実行しません。 |
classes | list[int] | None | 予測を特定のクラスIDセットにフィルタリングします。指定されたクラスに属する検出結果のみが返されます。マルチクラス検出タスクにおいて、関連するオブジェクトに焦点を当てるのに役立ちます。 |
retina_masks | bool | False | 高解像度のセグメンテーションマスクを返します。有効にすると、返されるマスク(masks.data)は元の画像サイズと一致します。無効にすると、推論中に使用された画像サイズになります。 |
embed | list[int] | None | 特徴ベクトルやembeddingsを抽出するレイヤーを指定します。クラスタリングや類似性検索などの後続タスクに役立ちます。 |
project | str | None | saveが有効な場合に予測出力が保存されるプロジェクトディレクトリの名前です。 |
name | str | None | 予測実行の名前です。saveが有効な場合に予測出力が保存される、プロジェクトフォルダ内のサブディレクトリを作成するために使用されます。 |
stream | bool | False | すべてのフレームを一度にメモリに読み込むのではなく、Resultsオブジェクトのジェネレータを返すことで、長時間動画や多数の画像に対してメモリ効率の良い処理を有効にします。 |
verbose | bool | True | 予測プロセスのリアルタイムフィードバックを提供する、詳細な推論ログを端末に表示するかどうかを制御します。 |
compile | bool または str | False | Enables PyTorch 2.x torch.compile graph compilation with backend='inductor'. Accepts True → "default", False → disables, or a string mode such as "default", "reduce-overhead", "max-autotune-no-cudagraphs". Falls back to eager with a warning if unsupported. |
end2end | bool | None | NMS不要の推論をサポートするYOLOモデル(YOLO26, YOLOv10)において、エンドツーエンドモードを上書きします。Falseに設定すると、従来のNMSパイプラインを使用して予測を実行でき、さらにiou引数を利用できるようになります。詳細は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の場合、画像サイズに基づいて線幅が自動調整されます。明確化のための視覚的なカスタマイズが可能です。 |
検証設定
YOLOモデルの検証設定には、検証データセットでのパフォーマンスを評価するためのハイパーパラメータと設定が含まれます。これらの設定はパフォーマンス、速度、精度に影響を与えます。一般的な設定には、バッチサイズ、検証頻度、パフォーマンスメトリクスが含まれます。検証データセットのサイズや構成、特定のタスクもプロセスに影響します。
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
data | str | None | データセット構成ファイル(例: coco8.yaml)へのパスを指定します。このファイルには検証データへのパスを含める必要があります。 |
imgsz | int | 640 | 入力画像のサイズを定義します。処理前にすべての画像がこの次元にリサイズされます。サイズを大きくすると小さなオブジェクトの精度が向上する可能性がありますが、計算時間が増加します。 |
batch | int | 16 | バッチあたりの画像数を設定します。値を大きくするとGPUメモリをより効率的に利用できますが、より多くのVRAMが必要になります。利用可能なハードウェアリソースに応じて調整してください。 |
save_json | bool | False | Trueの場合、さらなる分析、他のツールとの統合、またはCOCOのような評価サーバーへの提出のために、結果をJSONファイルに保存します。 |
conf | float | 0.001 | 検出の最小信頼度しきい値を設定します。値を下げると再現率は向上しますが、偽陽性が増える可能性があります。精度-再現率曲線を計算するために検証中に使用されます。 |
iou | float | 0.7 | Sets the Intersection Over Union threshold for Non-Maximum Suppression. Controls duplicate detection elimination. |
max_det | int | 300 | 1画像あたりの最大検出数を制限します。密集したシーンで過剰な検出を防ぎ、計算リソースを管理するのに役立ちます。 |
half | bool | False | 半精度(FP16)計算を有効にし、メモリ使用量を削減し、精度への影響を最小限に抑えつつ速度を向上させる可能性があります。 |
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の場合、バッチ処理に長方形推論を使用し、パディングを減らすことで、画像の元の縦横比を維持したまま処理を行い、速度と効率が向上する可能性があります。 |
split | str | 'val' | 検証に使用するデータセットの分割(val, test, train)を決定します。パフォーマンス評価のためのデータセグメント選択に柔軟性を持たせます。 |
project | str | None | 検証出力が保存されるプロジェクトディレクトリの名前です。異なる実験やモデルの結果を整理するのに役立ちます。 |
name | str | None | 検証実行の名前です。検証ログと出力が保存される、プロジェクトフォルダ内のサブディレクトリを作成するために使用されます。 |
verbose | bool | True | Trueの場合、クラスごとのメトリクス、バッチの進行状況、追加のデバッグ情報など、検証プロセス中の詳細情報を表示します。 |
save_txt | bool | False | Trueの場合、検出結果を画像ごとに1ファイルずつテキストファイルに保存します。さらなる分析、カスタム後処理、または他のシステムとの統合に役立ちます。 |
save_conf | bool | False | If True, includes confidence values in the saved text files when save_txt is enabled, providing more detailed output for analysis and filtering. |
workers | int | 8 | データ読み込みのためのワーカー数です。値を大きくするとデータ前処理が高速化される可能性がありますが、CPU使用率が増加する可能性があります。0に設定するとメインスレッドが使用され、一部の環境ではより安定します。 |
augment | bool | False | 検証中のテスト時オーグメンテーション(TTA)を有効にします。入力の変換バージョンで推論を実行することで、推論速度と引き換えに検出精度が向上する可能性があります。 |
agnostic_nms | bool | False | クラス非依存のNon-Maximum Suppressionを有効にし、予測されたクラスに関係なく重複するボックスをマージします。インスタンスに焦点を当てたアプリケーションで役立ちます。エンドツーエンドモデル(YOLO26, YOLOv10)の場合、これは同じ検出結果が複数のクラスラベルで出現するのを防ぐ(IoU=1.0の重複)のみであり、個別のボックス間でのIoUしきい値に基づいた抑制は実行しません。 |
single_cls | bool | False | 検証中にすべてのクラスを単一のクラスとして扱います。二値検出タスクのモデルパフォーマンス評価や、クラスの区別が重要でない場合に役立ちます。 |
visualize | bool | False | 各画像に対する正解、真陽性、偽陽性、偽陰性を可視化します。デバッグやモデルの解釈に役立ちます。 |
compile | bool または str | False | Enables PyTorch 2.x torch.compile graph compilation with backend='inductor'. Accepts True → "default", False → disables, or a string mode such as "default", "reduce-overhead", "max-autotune-no-cudagraphs". Falls back to eager with a warning if unsupported. |
end2end | bool | None | NMS不要の推論をサポートするYOLOモデル(YOLO26, YOLOv10)において、エンドツーエンドモードを上書きします。Falseに設定すると、従来のNMSパイプラインを使用して検証を実行でき、さらにiou引数を利用できるようになります。 |
最適なパフォーマンスを確保し、過学習を検出および防止するためには、慎重な調整と実験が不可欠です。
エクスポート設定
YOLOモデルのエクスポート設定には、異なる環境で使用するためにモデルを保存またはエクスポートするための構成が含まれます。これらの設定は、パフォーマンス、サイズ、互換性に影響を与えます。主要な設定には、エクスポートされるファイル形式(例: ONNX, TensorFlow SavedModel)、ターゲットデバイス(例: CPU, GPU)、およびマスクなどの機能が含まれます。モデルのタスクや宛先環境の制約もエクスポートプロセスに影響します。
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
format | str | 'torchscript' | エクスポートモデルのターゲット形式('onnx', 'torchscript', 'engine' (TensorRT) など)。各形式により、異なるデプロイ環境との互換性が有効になります。 |
imgsz | int または tuple | 640 | モデル入力の希望画像サイズです。正方形画像の場合は整数(例: 640×640の場合は 640)、特定の寸法のタプル (height, width) を指定できます。 |
keras | bool | False | TensorFlow SavedModel用のKeras形式へのエクスポートを有効にし、TensorFlow ServingおよびAPIとの互換性を提供します。 |
optimize | bool | False | TorchScriptにエクスポートする際にモバイルデバイス向けの最適化を適用し、モデルサイズを削減し推論パフォーマンスを向上させる可能性があります。NCNN形式やCUDAデバイスとは互換性がありません。DeepXの場合、より高いコンパイラ最適化を有効にし、推論レイテンシを削減しますが、コンパイル時間が増加します。 |
half | bool | False | FP16(半精度)量子化を有効にし、モデルサイズを削減し、サポートされているハードウェア上で推論を高速化する可能性があります。INT8量子化やCPUのみのエクスポートとは互換性がありません。一部の形式(例: ONNX)でのみ利用可能です。 |
int8 | bool | False | INT8量子化をアクティブにし、精度への影響を最小限に抑えながらモデルをさらに圧縮し、推論を高速化します(主にエッジデバイス向け)。TensorRTで使用する場合、学習後量子化(PTQ)を実行します。 |
dynamic | bool | False | TorchScript, ONNX, OpenVINO, TensorRT, CoreMLエクスポートに対して動的な入力サイズを許可し、異なる画像寸法を扱う柔軟性を高めます。TensorRTでINT8を使用する場合は自動的に True に設定されます。 |
simplify | bool | True | onnxslimを使用してONNXエクスポートのモデルグラフを簡素化し、推論エンジンとのパフォーマンスと互換性を向上させる可能性があります。 |
opset | int | None | 異なるONNXパーサーおよびランタイムとの互換性のために、ONNX opsetバージョンを指定します。設定されていない場合は、最新のサポートされているバージョンが使用されます。 |
workspace | float または None | None | TensorRT 最適化における最大ワークスペースサイズをGiB単位で設定し、メモリ使用量とパフォーマンスのバランスを調整します。None を使用すると、デバイスの最大値まで TensorRT によって自動割り当てされます。 |
nms | bool | False | サポートされている場合(エクスポート形式を参照)、エクスポートされたモデルに Non-Maximum Suppression (NMS) を追加し、検出のポストプロセッシング効率を向上させます。end2end モデルでは利用できません。 |
batch | int | 1 | エクスポートモデルのバッチ推論サイズ、または predict モードでエクスポートモデルが同時に処理する画像数の最大値を指定します。Edge TPU エクスポートの場合、これは自動的に 1 に設定されます。 |
device | str | None | エクスポート先のデバイスを指定します。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 を使用します。 |
data | str | 'coco8.yaml' | データセット構成ファイルへのパスで、INT8 量子化キャリブレーションに不可欠です。INT8 を有効にして指定されていない場合、キャリブレーションのフォールバックとして coco8.yaml が使用されます。 |
fraction | float | 1.0 | INT8 量子化キャリブレーションに使用するデータセットの割合を指定します。フルデータセットの一部を使用してキャリブレーションを行うことができ、実験時やリソースが限られている場合に便利です。INT8 を有効にして指定されていない場合は、フルデータセットが使用されます。 |
end2end | bool | None | NMS 不要の推論をサポートする YOLO モデル(YOLO26、YOLOv10)のエンドツーエンドモードを上書きします。False に設定すると、従来の NMS ベースのポストプロセッシングパイプラインと互換性のある形式でこれらのモデルをエクスポートできます。詳細は エンドツーエンド検出ガイド を参照してください。 |
適切な設定を行うことで、エクスポートされたモデルがそのユースケースに合わせて最適化され、ターゲット環境で効果的に機能するようになります。
Solutions 設定
Ultralytics Solutions の構成設定では、オブジェクトカウント、ヒートマップ作成、ワークアウトトラッキング、データ分析、ゾーントラッキング、行列管理、領域ベースのカウントなどのタスクに合わせてモデルを柔軟にカスタマイズできます。これらのオプションにより、特定のニーズに合わせて正確で有用な結果を得るための調整が容易になります。
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLO モデルファイルへのパス。 |
region | list | '[(20, 400), (1260, 400)]' | カウント対象となる領域を定義する点のリスト。 |
show_in | bool | True | ビデオストリーム上にインカウントを表示するかどうかを制御するフラグ。 |
show_out | bool | True | ビデオストリーム上にアウトカウントを表示するかどうかを制御するフラグ。 |
analytics_type | str | 'line' | グラフの種類(line、bar、area、または pie)。 |
colormap | int | cv2.COLORMAP_DEEPGREEN | ヒートマップに使用するカラーマップ。 |
json_file | str | None | すべての駐車スペースの座標データが含まれる JSON ファイルへのパス。 |
up_angle | float | 145.0 | 'up' ポーズの角度しきい値。 |
kpts | list[int] | '[6, 8, 10]' | ワークアウトのモニタリングに使用される3つのキーポイントインデックスのリスト。これらのキーポイントは、腕立て伏せ、懸垂、スクワット、腹筋運動などのエクササイズにおける、肩、肘、手首などの身体関節や部位に対応しています。 |
down_angle | int | 90 | 'down' ポーズの角度しきい値。 |
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[int, int] | (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' | 類似検索に使用される画像ディレクトリへのパス。 |
拡張設定
データ拡張手法は、トレーニングデータに変動性を持たせることで YOLO モデルの堅牢性とパフォーマンスを向上させるために不可欠であり、未知のデータに対するモデルの汎化性能を高めます。次の表は、各拡張引数の目的と効果を概説したものです:
| 引数 | タイプ | デフォルト | サポートされるタスク | 範囲 | 説明 |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, pose, obb, classify | 0.0 - 1.0 | 色相環の分量に基づいて画像の色相を調整し、色の変動性をもたらします。さまざまな照明条件下でのモデルの汎化に役立ちます。 |
hsv_s | float | 0.7 | detect, segment, pose, obb, classify | 0.0 - 1.0 | 画像の彩度を分量で変更し、色の強度に影響を与えます。さまざまな環境条件をシミュレートするのに役立ちます。 |
hsv_v | float | 0.4 | detect, segment, pose, obb, classify | 0.0 - 1.0 | 画像の明度を分量で変更し、さまざまな照明条件の下でモデルがうまく機能するよう支援します。 |
degrees | float | 0 | detect, segment, pose, obb | 0.0 - 180 | 指定された度数の範囲内で画像をランダムに回転させ、さまざまな向きにあるオブジェクトを認識するモデルの能力を向上させます。 |
translate | float | 0.1 | detect, segment, pose, obb | 0.0 - 1.0 | 画像を画像サイズの分量だけ水平および垂直に移動させ、部分的にしか見えないオブジェクトを検出する学習を支援します。 |
scale | float | 0.5 | detect, segment, pose, obb, classify | 0 - 1 | ゲイン係数で画像をスケーリングし、カメラからの距離が異なるオブジェクトをシミュレートします。 |
shear | float | 0 | detect, segment, pose, obb | -180 - +180 | 画像を特定の度数でシアー変換し、さまざまな角度から見たオブジェクトの効果を模倣します。 |
perspective | float | 0 | detect, segment, pose, obb | 0.0 - 0.001 | 画像にランダムな透視変換を適用し、3D空間におけるオブジェクトを理解するモデルの能力を強化します。 |
flipud | float | 0 | detect, segment, pose, obb, classify | 0.0 - 1.0 | 指定された確率で画像を上下反転させ、オブジェクトの特性に影響を与えずにデータのばらつきを増やします。 |
fliplr | float | 0.5 | detect, segment, pose, obb, classify | 0.0 - 1.0 | 指定された確率で画像を左右反転させます。対称的なオブジェクトの学習や、データセットの多様性を高めるのに役立ちます。 |
bgr | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | 指定された確率で画像のチャンネルをRGBからBGRに変換します。チャンネル順序の誤りに対する堅牢性を高めるのに役立ちます。 |
mosaic | float | 1 | detect, segment, pose, obb | 0.0 - 1.0 | 4つの学習画像を1つに統合し、異なるシーン構成やオブジェクトの相互作用をシミュレートします。複雑なシーンの理解に非常に効果的です。 |
mixup | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | 2つの画像とそのラベルをブレンドし、合成画像を作成します。ラベルノイズと視覚的なばらつきを導入することで、モデルの汎化能力を向上させます。 |
cutmix | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | 2つの画像の一部を組み合わせ、個別の領域を維持しながら部分的なブレンドを作成します。オクルージョン(遮蔽)のシナリオを作成することで、モデルの堅牢性を高めます。 |
copy_paste | float | 0 | segment | 0.0 - 1.0 | 画像をまたいでオブジェクトをコピー&ペーストし、オブジェクトのインスタンス数を増やします。 |
copy_paste_mode | str | flip | segment | - | 使用する copy-paste 戦略を指定します。オプションには 'flip' と 'mixup' があります。 |
auto_augment | str | randaugment | classify | - | 事前定義された拡張ポリシー('randaugment'、'autoaugment'、または 'augmix')を適用し、視覚的な多様性を通じてモデルのパフォーマンスを向上させます。 |
erasing | float | 0.4 | classify | 0.0 - 1.0 | 学習中にランダムに画像の領域を消去し、モデルがあまり目立たない特徴に注目するように促します。 |
augmentations | list | `` | detect, segment, pose, obb | - | 高度なデータ拡張のためのカスタムAlbumentations変換(Python APIのみ)。特殊な拡張ニーズに対応するため、変換オブジェクトのリストを受け付けます。 |
データセットとタスクの要件に合わせてこれらの設定を調整してください。さまざまな値を試すことで、最高のモデルパフォーマンスを実現する最適な拡張戦略を見つけることができます。
ログ出力、チェックポイント、およびプロッティングの設定
YOLOモデルを学習する際、ログ出力、チェックポイント、プロッティング、およびファイル管理は重要です。
- ログ出力: TensorBoard などのライブラリを使用するか、ファイルに書き込むことで、モデルの進捗を追跡し、問題を診断します。
- チェックポイント: モデルを定期的に保存し、学習を再開したり、異なる構成を試したりできるようにします。
- プロッティング: MatplotlibやTensorBoardなどのライブラリを使用して、パフォーマンスと学習の進捗を可視化します。
- ファイル管理: チェックポイント、ログファイル、プロットなど、学習中に生成されたファイルを整理し、アクセスや分析を容易にします。
これらの側面を効果的に管理することで、進捗の追跡が容易になり、デバッグや最適化が効率化されます。
| 引数 | デフォルト | 説明 |
|---|---|---|
project | 'runs' | 学習実行結果を保存するルートディレクトリを指定します。各実行結果は個別のサブディレクトリに保存されます。 |
name | 'exp' | 実験名を定義します。指定がない場合、YOLOは上書きを避けるために実行ごとにこの名前をインクリメントします(例: exp、exp-2)。 |
exist_ok | False | 既存の実験ディレクトリを上書きするかどうかを決定します。True は上書きを許可し、False は防止します。 |
plots | True | 学習および検証のプロットの生成と保存を制御します。True に設定すると、損失曲線、精度-再現率曲線、サンプル予測などのプロットが作成され、パフォーマンスを視覚的に追跡できます。 |
save | True | 学習チェックポイントと最終的なモデルの重みの保存を有効にします。True に設定すると、モデルの状態が定期的に保存され、学習の再開やモデルのデプロイが可能になります。 |
カスタム設定ファイル
保存されたYAMLを読み込むことで、引数をインラインで渡すことなく、設定一式を再利用できます。cfg 引数は default.yaml からの値を上書きしますが、併せて渡された追加の引数が優先されます。
| 引数 | デフォルト | 説明 |
|---|---|---|
cfg | None | その値が default.yaml のエントリを置き換えるYAMLファイルへのパス。具体的なCLIの例については、デフォルト設定ファイルの上書きを参照してください。 |
FAQ
学習中にYOLOモデルのパフォーマンスを向上させるにはどうすればよいですか?
バッチサイズ、学習率、モーメンタム、ウェイトディケイなどのハイパーパラメータを調整してパフォーマンスを向上させます。データ拡張設定を調整し、適切なオプティマイザを選択し、早期終了や混合精度などの手法を使用してください。詳細については、学習ガイドを参照してください。
YOLOモデルの精度にとって重要なハイパーパラメータは何ですか?
精度に影響を与える重要なハイパーパラメータは以下の通りです。
- バッチサイズ (
batch): サイズを大きくすると学習が安定する可能性がありますが、より多くのメモリが必要です。 - 学習率 (
lr0): レートを小さくすると微調整が可能になりますが、収束が遅くなります。 - モーメンタム (
momentum): 勾配ベクトルを加速させ、振動を抑制します。 - 画像サイズ (
imgsz): サイズを大きくすると精度が向上しますが、計算負荷が増加します。
データセットとハードウェアに基づいてこれらを調整してください。詳細は 学習設定 を参照してください。
YOLOモデルの学習における学習率の設定方法は?
The learning rate (lr0) is crucial; start with 0.01 for SGD or 0.001 for Adam optimizer. Monitor metrics and adjust as needed. Use cosine learning rate schedulers (cos_lr) or warmup (warmup_epochs, warmup_momentum). Details are in the Train Guide.
YOLOモデルのデフォルトの推論設定は何ですか?
デフォルトの設定には以下が含まれます。
- 信頼度閾値 (
conf=0.25): 検出に必要な最小の信頼度。 - IoU閾値 (
iou=0.7): 非最大値抑制 (NMS) 用。 - 画像サイズ (
imgsz=640): 入力画像のリサイズ設定。 - デバイス (
device=None): CPU、GPU、Apple MPS、またはHuawei Ascend NPU (npu) を選択します。
概要については、予測設定 および 予測ガイド を参照してください。
なぜYOLOモデルで混合精度学習を使用するのですか?
混合精度学習 (amp=True) は、FP16とFP32を使用してメモリ使用量を削減し、学習を高速化します。現代のGPUにとって有益であり、精度を大幅に低下させることなく、より大きなモデルや高速な計算を可能にします。詳細は 学習ガイド を参照してください。