Link to this section設定#
YOLOの設定およびハイパーパラメータは、モデルのパフォーマンス、速度、および精度において重要な役割を果たします。これらの設定は、トレーニング、バリデーション、予測などのさまざまな段階でモデルの動作に影響を与える可能性があります。
Watch: Mastering Ultralytics YOLO: Configuration
Ultralyticsのコマンドは、以下の構文を使用します:
yolo TASK MODE ARGS各項目の説明:
TASK(オプション): 次のいずれか (detect, segment, semantic, classify, pose, obb)MODE(必須): 次のいずれか (train, val, predict, export, track, benchmark)ARGS(optional) arearg=valuepairs likeimgsz=640that override defaults.
デフォルトの ARG 値はこのページで定義されており、cfg/default.yaml ファイルから読み込まれます。
Link to this sectionタスク#
Ultralytics YOLOモデルは、以下を含むさまざまなコンピュータビジョンタスクを実行できます:
- Detect: 物体検出は、画像やビデオ内のオブジェクトを特定し、その位置を特定します。
- Segment: インスタンスセグメンテーションは、画像やビデオを異なるオブジェクトやクラスに対応する領域に分割します。
- Semantic segmentation (
semantic): セマンティックセグメンテーションは、詳細なシーン理解のために、画像内のすべてのピクセルにクラスラベルを割り当てます。 - Classify: 画像分類は、入力画像のクラスラベルを予測します。
- Pose: ポーズ推定は、画像やビデオ内のオブジェクトを特定し、そのキーポイントを推定します。
- OBB: 指向性バウンディングボックスは回転したバウンディングボックスを使用し、衛星画像や医療画像に適しています。
| 引数 | デフォルト | 説明 |
|---|---|---|
task | 'detect' | YOLOタスクを指定します。detectは物体検出用、segmentはインスタンスセグメンテーション用、semanticはセマンティックセグメンテーション用、classifyは分類用、poseはポーズ推定用、obbは指向性境界ボックス用です。各タスクは、画像や動画解析における特定の出力や課題に合わせて調整されています。 |
Link to this sectionモード#
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 を使用します。各モードは、開発からデプロイまで、異なる段階をサポートしています。 |
Link to this sectionトレーニング設定#
YOLOモデルのトレーニング設定には、モデルのパフォーマンス、速度、および精度に影響を与えるハイパーパラメータや構成が含まれます。重要な設定には、バッチサイズ、学習率、モメンタム、ウェイトディケイがあります。オプティマイザ、損失関数、およびデータセット構成の選択もトレーニングに影響します。最適なパフォーマンスを得るには、チューニングと実験が不可欠です。詳細については、Ultralyticsエントリーポイント関数を参照してください。
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
model | str | None | トレーニング用のモデルファイルを指定します。.pt事前学習済みモデルまたは.yaml設定ファイルのいずれかへのパスを受け付けます。モデル構造の定義や重みの初期化に不可欠です。 |
data | str | None | データセット設定ファイル(例:coco8.yaml)へのパスです。このファイルには、トレーニングおよび検証データへのパス、クラス名、クラス数など、データセット固有のパラメータが含まれています。 |
epochs | int | 100 | トレーニングエポックの合計数です。各エポックはデータセット全体を一度通過することを意味します。この値を調整すると、トレーニング期間とモデルのパフォーマンスに影響を与える可能性があります。 |
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 Silicon用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の場合、既存のプロジェクト/名前ディレクトリの上書きを許可します。以前の出力を手動で消去する必要なく、反復的な実験を行うのに便利です。 |
save_dir | str | None | 実行結果が保存される正確なディレクトリを指定し、project/name の組み合わせを上書きします。パスは自動インクリメントされずにそのまま使用されるため、連続する実行で同じディレクトリが再利用されます。 |
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 | ウォームアップフェーズ中のバイアスパラメータに対する学習率。初期エポックでのモデル学習の安定化を助けます。 |
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 | 分布焦点損失(Distribution Focal Loss)の重み。特定の YOLO バージョンで詳細な分類に使用されます。 |
pose | float | 12.0 | 姿勢推定のためにトレーニングされたモデルにおける姿勢損失の重み。姿勢キーポイントの正確な予測に対する重点に影響します。 |
kobj | float | 1.0 | 姿勢推定モデルにおけるキーポイント物体性損失(keypoint objectness loss)の重み。検出の信頼性と姿勢精度のバランスをとります。 |
rle | float | 1.0 | 姿勢推定モデルにおける残差対数尤度推定損失(residual log-likelihood estimation loss)の重み。キーポイント配置の精度に影響します。 |
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 | PyTorch 2.x の torch.compile グラフコンパイルを backend='inductor' で有効にします。True → "default"、False → 無効、または "default"、"reduce-overhead"、"max-autotune-no-cudagraphs" などの文字列モードを受け入れます。非対応の場合は警告と共に Eager モードにフォールバックします。 |
max_det | int | 300 | トレーニングのバリデーションフェーズ中に保持される最大物体数を指定します。 |
batch引数には、3つの構成オプションがあります:
- 固定バッチサイズ: 整数を使用してバッチあたりの画像数を指定します(例:
batch=16)。 - 自動モード(60% GPUメモリ):
batch=-1を使用すると、CUDAメモリ使用量が約60%になるように自動調整されます。 - 使用率を指定した自動モード: 割合(例:
batch=0.70)を設定して、指定したGPUメモリ使用量に基づいて調整します。
Link to this section予測設定#
YOLOモデルの予測設定には、推論時のパフォーマンス、速度、および精度に影響を与えるハイパーパラメータや構成が含まれます。重要な設定には、信頼度しきい値、Non-Maximum Suppression (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 を使用してください。固定形状と最小矩形 を参照してください。 |
rect | bool | True | True の場合、可能な場合に最小矩形パディングを使用します(同じ形状のバッチおよびサポートされているバックエンド)。False の場合、常にフル imgsz までパディングします。固定形状と最小矩形 を参照してください。 |
quantize | int または str | None | 推論精度:16/"fp16"はサポートされているGPUでのFP16推論を有効にします。32/"fp32"/未設定はFP32です。INT8/PTQ量子化はexport時に設定され、その後エクスポートされたモデルをロードして使用します。非推奨となったhalfフラグを置き換えるものです。 |
device | str | None | 推論用のデバイスを指定します(例: cpu、cuda:0、0、npu、または npu:0)。ユーザーは、CPU、特定の GPU、Huawei Ascend NPU、またはモデル実行のためのその他の計算デバイスを選択できます。 |
batch | int | 1 | 推論のバッチサイズを指定します(ソースが ディレクトリ、ビデオファイル、または .txt ファイル の場合にのみ機能します)。バッチサイズを大きくするとスループットが向上し、推論に必要な合計時間を短縮できます。 |
max_det | int | 300 | 画像ごとに許可される最大検出数。モデルが単一の推論で検出できるオブジェクトの総数を制限し、密集したシーンで過剰な出力が発生するのを防ぎます。 |
vid_stride | int | 1 | ビデオ入力のフレームストライド。ビデオ内のフレームをスキップして、時間分解能を犠牲にして処理を高速化できます。値が 1 の場合はすべてのフレームを処理し、値が大きいほどフレームをスキップします。 |
stream_buffer | bool | False | ビデオストリームの入力フレームをキューに入れるかどうかを決定します。False の場合、古いフレームは新しいフレームに対応するために破棄されます(リアルタイムアプリケーション向けに最適化)。True の場合、新しいフレームをバッファにキューに入れ、フレームがスキップされないようにしますが、推論 FPS がストリーム FPS よりも低い場合は遅延が発生します。 |
visualize | bool | False | 推論中のモデル機能の視覚化をアクティブにし、モデルが何を「見ている」のかについての洞察を提供します。デバッグやモデルの解釈に役立ちます。 |
augment | bool | False | 予測のためのテスト時オーグメンテーション (TTA) を有効にします。推論速度を犠牲にして、検出の堅牢性が向上する可能性があります。 |
agnostic_nms | bool | False | クラスにとらわれない非最大値抑制 (NMS) を有効にし、異なるクラスの重なり合うボックスをマージします。クラスの重なりが一般的なマルチクラス検出シナリオで役立ちます。エンドツーエンドモデル (YOLO26, YOLOv10) の場合、これは同じ検出が複数のクラスラベル(IoU=1.0 の重複)で表示されるのを防ぐのみであり、異なるボックス間での IoU しきい値ベースの抑制は実行しません。 |
classes | list[int] | None | 予測をクラス ID のセットにフィルタリングします。指定されたクラスに属する検出のみが返されます。マルチクラス検出タスクで関連するオブジェクトに焦点を当てるのに役立ちます。 |
retina_masks | bool | False | 高解像度のセグメンテーションマスクを返します。有効にすると、返されるマスク (masks.data) は元の画像サイズと一致します。無効にすると、推論中に使用された画像サイズになります。 |
embed | list[int] | None | 特徴ベクトルやembeddingsを抽出するレイヤーを指定します。最後から2番目のレイヤーの埋め込みを取得するには model.embed(source) を使用し、特定のレイヤーを選択するには model.predict(source, embed=[layer]) を使用します。クラスタリングや類似度検索などの後続タスクに有用です。 |
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 モードにフォールバックします。 |
end2end | bool | None | NMS フリーの推論をサポートする YOLO モデル(YOLO26, YOLOv10)のエンドツーエンドモードを上書きします。False に設定すると、従来の NMS パイプラインを使用して予測を実行でき、さらに iou 引数を利用できるようになります。詳細は エンドツーエンド検出ガイド を参照してください。 |
視覚化の引数:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
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の場合、線の太さは画像サイズに基づいて自動的に調整されます。明瞭さのための視覚的なカスタマイズが可能です。 |
Link to this section検証設定#
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 | 検出の最小信頼度しきい値を設定します。値を小さくすると再現率は向上しますが、誤検出が増える可能性があります。精度-再現率曲線を計算するために検証中に使用されます。OBB検証では、メモリ使用量を削減するためにデフォルトで 0.01 となっています。 |
iou | float | 0.7 | Intersection Over Union(IoU)の閾値を Non-Maximum Suppression(NMS)用に設定します。重複する検出結果の排除を制御します。 |
max_det | int | 300 | 画像ごとの最大検出数を制限します。高密度なシーンで過剰な検出を防ぎ、計算リソースを管理するのに役立ちます。 |
quantize | int または str | None | バリデーション精度:16/"fp16"はサポートされているGPUでのFP16バリデーションを有効にします。32/"fp32"/未設定はFP32です。INT8/PTQ量子化はexport時に設定され、その後エクスポートされたモデルをバリデーションして使用します。非推奨となった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の場合、バッチ処理に矩形推論(rectangular inference)を使用し、パディングを減らすことで、画像の元のアスペクト比を維持しつつ、速度と効率が向上する可能性があります。 |
split | str | 'val' | 検証に使用するデータセット分割(val、test、またはtrain)を決定します。性能評価のためのデータセグメント選択に柔軟性を持たせます。 |
project | str | None | 検証結果が保存されるプロジェクトディレクトリの名前です。異なる実験やモデルの結果を整理するのに役立ちます。 |
name | str | None | 検証実行の名前です。プロジェクトフォルダ内にサブディレクトリを作成し、そこに検証ログと出力が保存されます。 |
verbose | bool | True | Trueの場合、クラスごとのメトリクス、バッチの進捗状況、デバッグ用の追加情報など、検証プロセス中の詳細情報を表示します。 |
save_txt | bool | False | Trueの場合、検出結果をテキストファイルとして保存します(画像1枚につき1ファイル)。さらなる分析やカスタムの後処理、他システムとの統合に役立ちます。 |
save_conf | bool | False | True の場合、save_txt が有効な時に保存されるテキストファイルに信頼度スコアが含まれます。これにより、分析やフィルタリングのための詳細な出力が得られます。 |
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 | 画像ごとに正解データ、真陽性、偽陽性、偽陰性を可視化します。デバッグやモデルの解釈に役立ちます。 |
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 モードにフォールバックします。 |
end2end | bool | None | NMSフリー推論をサポートするYOLOモデル(YOLO26、YOLOv10)のエンドツーエンドモードを上書きします。Falseに設定すると、従来のNMSパイプラインを使用して検証を実行でき、さらにiou引数を利用可能になります。 |
最適な性能を確保し、過学習を検出・防止するためには、慎重な調整と実験が不可欠です。
Link to this sectionエクスポート設定#
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の場合、コンパイラの最適化を強化し、推論レイテンシの削減とコンパイル時間の増加を実現します。 |
quantize | int または str | None | 量子化精度:16(FP16、モデルサイズを削減し、サポートされているハードウェア上で推論を高速化できる場合があります)または 8(INT8/PTQ、精度への影響を最小限に抑えつつモデルをさらに圧縮。主にエッジデバイス向け。キャリブレーション用のdata/fractionが必要)。32/未設定はFP32です。ウェイト/アクティベーション精度の混在をサポートするエクスポート形式では、'w8a8'/'w16a16'/'w8a16'という表記も受け付けます。非推奨となったhalf/int8フラグを置き換えるものです(half=Trueは16へ、int8=Trueは8へ。これらは非推奨警告付きで現在も受け付けられます)。ターゲットフォーマットでサポートされている精度のみが許可されます(下記を参照)。 |
dynamic | bool | False | TorchScript、ONNX、OpenVINO、TensorRT、CoreMLのエクスポートにおいて動的な入力サイズを許可し、さまざまな画像寸法を扱う際の柔軟性を高めます。 |
simplify | bool | True | onnxslimを使用してONNXエクスポート用のモデルグラフを簡素化し、推論エンジンとのパフォーマンスと互換性を向上させます。 |
opset | int | None | 異なるONNXパーサーやランタイムとの互換性のためにONNX opsetバージョンを指定します。設定されていない場合は、サポートされている最新バージョンが使用されます。 |
workspace | float または None | None | TensorRT最適化のための最大ワークスペースサイズをGiB単位で設定し、メモリ使用量とパフォーマンスのバランスをとります。TensorRTによってデバイスの最大値まで自動割り当てさせるには None を使用します。 |
nms | bool | False | サポートされている場合に、エクスポートされたモデルにNMS(Non-Maximum Suppression)を追加します(エクスポートフォーマットを参照)。これにより、検出後の後処理効率が向上します。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を使用しますが、TensorRT 11.0はDLAをサポートしていません。 |
data | str | None | データセット設定ファイルへのパスであり、INT8量子化キャリブレーションに不可欠です。INT8が有効な状態で指定されていない場合、Ultralyticsは必要に応じてタスク固有のキャリブレーションデータセットを選択するか、モデルタスクのデフォルトデータセットを使用します。 |
fraction | float | 1.0 | INT8量子化キャリブレーションに使用するデータセットの割合を指定します。フルデータセットのサブセットでキャリブレーションを行えるため、実験やリソースが限られている場合に便利です。INT8が有効で指定されていない場合、フルデータセットが使用されます。 |
end2end | bool | None | NMSフリー推論をサポートするYOLOモデル(YOLO26、YOLOv10)のエンドツーエンドモードを上書きします。False に設定すると、これらのモデルを従来のNMSベースの後処理パイプラインと互換性のある形式でエクスポートできます。詳細はエンドツーエンド検出ガイドを参照してください。 |
適切な設定を行うことで、エクスポートされたモデルがそのユースケースに最適化され、ターゲット環境で効果的に機能することを保証します。
Link to this sectionソリューション設定#
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 | ヒートマップに使用するカラーマップ。 |
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ソリューションを使用して、ビジョンが物体を追跡しパスを描画する地点。 |
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 | モデル推論のための入力画像サイズ。 |
Link to this section拡張(オーギュメンテーション)設定#
データ拡張技術は、学習データに多様性をもたらし、未知のデータに対してモデルがより適切に汎化できるようにすることで、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のみ)。特殊な拡張ニーズのために変換オブジェクトのリストを受け入れます。 |
データセットとタスクの要件を満たすようにこれらの設定を調整してください。異なる値を試すことで、最高のモデル性能を得るための最適な拡張戦略を見つけることができます。
Link to this sectionロギング、チェックポイント、プロットの設定#
YOLOモデルを学習する際、ロギング、チェックポイント、プロット、およびファイル管理は重要です:
- Logging: TensorBoardのようなライブラリを使用したり、ファイルに書き込んだりして、モデルの進捗を追跡し、問題を診断します。
- チェックポイント: モデルを定期的に保存し、学習を再開したり、異なる構成で実験したりします。
- プロット: MatplotlibやTensorBoardのようなライブラリを使用して、性能や学習の進捗状況を可視化します。
- ファイル管理: 学習中に生成されたチェックポイント、ログファイル、プロットなどのファイルを整理し、アクセスと分析を容易にします。
これらの側面を効果的に管理することで、進捗状況の追跡が容易になり、デバッグや最適化も簡素化されます。
| 引数 | デフォルト | 説明 |
|---|---|---|
project | None | 学習実行結果を保存するためのルートディレクトリを指定します。未指定の場合、結果はruns/<task>に保存されます。各実行は個別のサブディレクトリに保存されます。 |
name | None | 実験名を定義します。未指定の場合、YOLOはモード名を使用し、上書きを避けるために実行ごとにインクリメントします(例:train、train-2)。 |
exist_ok | False | 既存の実験ディレクトリを上書きするかどうかを決定します。Trueは上書きを許可し、Falseは防止します。 |
plots | True | 学習および検証のプロットの生成と保存を制御します。Trueに設定すると、損失曲線、精度-再現率曲線、サンプル予測などのプロットが作成され、性能を視覚的に追跡できます。 |
save | True | 学習のチェックポイントと最終モデルの重みの保存を有効にします。Trueに設定すると、モデルの状態が定期的に保存され、学習の再開やモデルのデプロイが可能になります。 |
Link to this sectionカスタム構成ファイル#
保存されたYAMLを読み込むことで、引数を直接渡さずに一連の設定を再利用できます。cfg引数はdefault.yamlの値よりも優先されますが、併せて渡された追加引数はさらに高い優先順位を持ちます。
| 引数 | デフォルト | 説明 |
|---|---|---|
cfg | None | default.yamlのエントリを置き換えるYAMLファイルへのパスです。CLIでの活用例についてはデフォルト構成ファイルの上書きを参照してください。 |
Link to this sectionよくある質問 (FAQ)#
Link to this section学習中にYOLOモデルの性能を向上させるにはどうすればよいですか?#
バッチサイズ、学習率、モメンタム、重み減衰(ウェイトディケイ)などのハイパーパラメータを調整して性能を向上させます。データ拡張設定を調整し、適切なオプティマイザを選択し、早期終了や混合精度などの手法を使用してください。詳細は学習ガイドを参照してください。
Link to this sectionYOLOモデルの精度に影響を与える重要なハイパーパラメータは何ですか?#
精度に影響を与える主なハイパーパラメータは以下の通りです:
- バッチサイズ (
batch): サイズを大きくすると学習は安定しますが、より多くのメモリが必要になります。 - 学習率 (
lr0): 小さい値は微調整に適していますが、収束が遅くなります。 - モメンタム (
momentum): 勾配ベクトルを加速させ、振動を抑制します。 - 画像サイズ (
imgsz): 大きいサイズは精度を向上させますが、計算負荷が増加します。
データセットとハードウェアに合わせてこれらを調整してください。学習設定で詳細を学べます。
Link to this sectionYOLOモデル学習の学習率をどのように設定すればよいですか?#
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.
Link to this sectionYOLOモデルのデフォルト推論設定は何ですか?#
デフォルト設定には以下が含まれます:
- 信頼度閾値 (
conf=0.25): 検出に必要な最小信頼度。 - IoU閾値 (
iou=0.7): Non-Maximum Suppression (NMS)用。 - 画像サイズ (
imgsz=640): 入力画像のサイズを変更します。 - デバイス (
device=None): CPU、GPU、Apple MPS、またはHuawei Ascend NPU(npu)を選択します。
概要については、推論設定および推論ガイドを参照してください。
Link to this sectionなぜYOLOモデルで混合精度学習を使用するのですか?#
混合精度学習(amp=True)は、FP16とFP32を使用してメモリ使用量を削減し、学習を高速化します。最新のGPUに適しており、精度を大幅に低下させることなく、より大きなモデルや高速な計算が可能です。学習ガイドで詳細を確認してください。