構成
YOLOの設定とハイパーパラメータは、モデルの性能、速度、精度に重要な役割を果たします。これらの設定は、トレーニング、検証、予測など、さまざまな段階でモデルの動作に影響を与える可能性があります。
視聴: Ultralytics YOLO のマスター:構成
見る: Ultralytics YOLOを使いこなす:構成
Ultralyticsコマンドは、次の構文を使用します。
例
yolo TASK MODE ARGS
from ultralytics import YOLO
# Load a YOLO model from a pre-trained weights file
model = YOLO("yolo11n.pt")
# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)
説明:
TASK(オプション)は次のいずれかです(検出, セグメント, 分類, ポーズ, obb)MODE(必須)は次のいずれかです(学習, val, 予測, エクスポート, 追跡, ベンチマーク)ARGS(オプション)はarg=valueのようなペアimgsz=640デフォルトをオーバーライドします。
デフォルト ARG の値はこのページで定義されており、以下から取得されます。 cfg/defaults.yaml ファイル.
タスク
Ultralytics YOLO モデルは、以下を含むさまざまなコンピュータビジョンタスクを実行できます。
- 検出: 物体検出は、画像またはビデオ内の物体を識別して特定します。
- セグメント: インスタンスセグメンテーションは、画像またはビデオを異なるオブジェクトまたはクラスに対応する領域に分割します。
- 分類: 画像分類は、入力画像のクラスラベルを予測します。
- 姿勢: 姿勢推定は、画像またはビデオ内のオブジェクトを識別し、そのキーポイントを推定します。
- OBB: Oriented Bounding Boxesは、回転されたバウンディングボックスを使用し、衛星画像や医療画像に適しています。
| 引数 | デフォルト | 説明 |
|---|---|---|
task | 'detect' | YOLOタスクを指定します: detect 対象 物体検出, segment セグメンテーションの場合、 classify 分類の場合、 pose ポーズ推定用、および obb 傾斜バウンディングボックス用。各タスクは、画像およびビデオ分析における特定の出力と問題に合わせて調整されています。 |
モード
Ultralytics YOLO モデルは、モデルライフサイクルの特定の段階向けに設計されたさまざまなモードで動作します。
- 学習: カスタムデータセットでYOLOモデルを学習させます。
- Val: 学習済みのYOLOモデルを検証します。
- Predict(予測): 学習済みのYOLOモデルを使用して、新しい画像またはビデオに対して予測を行います。
- エクスポート: デプロイメント用にYOLOモデルをエクスポートします。
- 追跡: YOLO モデルを使用してリアルタイムでオブジェクトを追跡します。
- ベンチマーク: 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 | トレーニングエポックの総数。epochは、データセット全体の完全なパスを表します。この値を調整すると、トレーニング時間とモデルのパフォーマンスに影響を与える可能性があります。 |
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)、または最もアイドル状態の GPU の自動選択 (device=-1)、または複数のアイドル状態の GPU (device=[-1,-1]) |
workers | int | 8 | データロード用のワーカースレッド数(per RANK マルチ GPU トレーニングの場合)。特にマルチ GPU 環境において、データの前処理とモデルへの供給速度に影響します。 |
project | str | None | トレーニング出力が保存されるプロジェクトディレクトリの名前。さまざまな実験を整理して保存できます。 |
name | str | None | トレーニング実行の名前。トレーニングログと出力が保存されるプロジェクトフォルダー内にサブディレクトリを作成するために使用されます。 |
exist_ok | bool | False | True の場合、既存の project/name ディレクトリの上書きを許可します。手動で以前の出力をクリアする必要がなく、反復的な実験に役立ちます。 |
pretrained | bool または str | True | 事前トレーニング済みのモデルからトレーニングを開始するかどうかを決定します。ブール値、または重みをロードする特定のモデルへの文字列パスを指定できます。トレーニング効率とモデルのパフォーマンスを向上させます。 |
optimizer | str | 'auto' | トレーニング用のオプティマイザの選択肢には以下が含まれます。 SGD, Adam, AdamW, NAdam, RAdam, RMSProp など、または auto モデル構成に基づいて自動選択する場合。収束速度と安定性に影響します。 |
seed | int | 0 | トレーニングのランダムシードを設定し、同じ構成での実行間で結果の再現性を保証します。 |
deterministic | bool | True | 決定性アルゴリズムの使用を強制し、再現性を保証しますが、非決定性アルゴリズムの制限により、パフォーマンスと速度に影響を与える可能性があります。 |
single_cls | bool | False | マルチクラスデータセット内のすべてのクラスを、トレーニング中に単一のクラスとして扱います。バイナリ分類タスクや、分類ではなくオブジェクトの存在に焦点を当てる場合に役立ちます。 |
classes | list[int] | None | 学習対象のクラスIDのリストを指定します。トレーニング中に特定のクラスを除外したり、特定のクラスに焦点を当てたりする場合に便利です。 |
rect | bool | False | 最小パディング戦略を有効にします。バッチ内の画像は、共通のサイズに達するように最小限にパディングされ、最長辺は imgszと等しくなります。効率と速度が向上する可能性がありますが、モデルの精度に影響を与える可能性があります。 |
multi_scale | bool | False | 増減により、マルチスケールトレーニングを有効にします imgsz 最大で~の係数で 0.5 トレーニング中に、モデルがより正確になるようにトレーニングします。 imgsz 推論時に。 |
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 | 総損失関数における分類損失の重み。他の成分と比較して、正しいクラス予測の重要性に影響します。 |
dfl | float | 1.5 | 特定の YOLO バージョンで細かい分類に使用される、分布焦点損失の重み。 |
pose | float | 12.0 | ポーズ推定用にトレーニングされたモデルにおけるポーズ損失の重み。ポーズキーポイントを正確に予測することに重点を置くことに影響します。 |
kobj | float | 2.0 | ポーズ推定モデルにおけるキーポイントの objectness 損失の重み。検出信頼度とポーズ精度とのバランスを取ります。 |
nbs | int | 64 | 損失の正規化のための公称バッチサイズ。 |
overlap_mask | bool | True | オブジェクトマスクをトレーニング用に単一のマスクにマージするか、各オブジェクトごとに分離しておくかを決定します。重複する場合、小さいマスクはマージ中に大きいマスクの上に重ねられます。 |
mask_ratio | int | 4 | セグメンテーションマスクのダウンサンプル率。トレーニング中に使用されるマスクの解像度に影響します。 |
dropout | float | 0.0 | 分類タスクにおける正則化のためのドロップアウト率。トレーニング中にユニットをランダムに省略することで、過学習を防ぎます。 |
val | bool | True | トレーニング中の検証を有効にし、別のデータセットでのモデルパフォーマンスの定期的な評価を可能にします。 |
plots | bool | False | 学習および検証メトリクスのプロット、予測例を生成および保存し、モデルのパフォーマンスと学習の進捗状況を視覚的に把握できるようにします。 |
compile | bool または str | False | PyTorch 2.xを有効にし、 torch.compile グラフコンパイル( backend='inductor')は以下を受け入れます。 True → "default", False → を無効にするか、文字列モード( "default", "reduce-overhead", "max-autotune-no-cudagraphs")を使用します。サポートされていない場合、警告とともにEagerモードにフォールバックします。 |
バッチサイズ設定に関する注意
The batch 引数は3つの構成オプションを提供します。
- 固定バッチサイズ: バッチあたりの画像数を整数で指定します(例:
batch=16)。 - 自動モード(GPUメモリ60%): 以下を使用
batch=-1CUDAメモリの使用率が約60%になるように自動調整します。 - 使用率による自動モード: 分数(例:
batch=0.70)を使用して、指定された GPU メモリ使用量に基づいて調整します。
予測設定
YOLOモデルの予測設定には、推論時のパフォーマンス、速度、および精度に影響を与えるハイパーパラメータと構成が含まれます。主な設定には、信頼度閾値、Non-Maximum Suppression (NMS)閾値、およびクラス数があります。入力データのサイズ、形式、およびマスクのような補足的な特徴も予測に影響を与えます。最適なパフォーマンスを得るには、これらの設定を調整することが不可欠です。
推論の引数:
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
source | str | 'ultralytics/assets' | 推論用のデータソースを指定します。画像パス、ビデオファイル、ディレクトリ、URL、またはライブフィード用のデバイスIDを指定できます。さまざまな形式とソースをサポートしており、さまざまな種類の入力に柔軟に対応できます。 |
conf | float | 0.25 | 検出の最小信頼度閾値を設定します。この閾値未満の信頼度で検出されたオブジェクトは無視されます。この値を調整すると、誤検出を減らすことができます。 |
iou | float | 0.7 | Non-Maximum Suppression (NMS) のためのIntersection Over Union (IoU) 閾値。値が低いほど、重複するボックスが排除され、検出数が減ります。これは、重複を減らすのに役立ちます。 |
imgsz | int または tuple | 640 | 推論時の画像サイズを定義します。単一の整数を指定できます。 640 正方形へのリサイズ、または(高さ、幅)のタプルの場合。適切なサイズ調整は検出を改善できます 精度 と処理速度。 |
rect | bool | True | 有効にすると、推論速度を向上させるために、画像の短い辺がストライドで割り切れるまで最小限のパディングを行います。無効にすると、推論中に画像を正方形にパディングします。 |
half | bool | False | 半精度(FP16)推論を有効にします。これにより、サポートされているGPUでのモデル推論を高速化し、精度への影響を最小限に抑えることができます。 |
device | str | None | 推論に使用するデバイスを指定します(例: cpu, cuda:0 または 0)。モデル実行のために、CPU、特定のGPU、またはその他の計算デバイスを選択できます。 |
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 | 推論中にモデルの特徴の可視化を有効にし、モデルが「見ているもの」に関する洞察を提供します。デバッグとモデルの解釈に役立ちます。 |
augment | bool | False | 予測のテスト時拡張(TTA)を有効にします。これにより、推論速度を犠牲にして検出の堅牢性が向上する可能性があります。 |
agnostic_nms | bool | False | クラス非依存Non-Maximum Suppression(NMS)を有効にします。これにより、異なるクラスの重複するボックスがマージされます。クラスの重複が一般的なマルチクラス検出シナリオで役立ちます。 |
classes | list[int] | None | 予測をクラスIDのセットにフィルタリングします。指定されたクラスに属する検出のみが返されます。マルチクラス検出タスクで関連オブジェクトに焦点を当てる場合に役立ちます。 |
retina_masks | bool | False | 高解像度のセグメンテーションマスクを返します。返されるマスク(masks.data) は、有効になっている場合、元の画像サイズと一致します。無効になっている場合、推論中に使用される画像サイズになります。 |
embed | list[int] | None | 特徴ベクトルまたは埋め込みを抽出するレイヤーを指定します。クラスタリングや類似性検索などのダウンストリームタスクに役立ちます。 |
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モードにフォールバックします。 |
可視化の引数:
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
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 | None or int | None | バウンディングボックスの線の太さを指定します。もし None場合、線の太さは画像サイズに基づいて自動的に調整されます。明確にするための視覚的なカスタマイズを提供します。 |
検証設定
YOLOモデルの検証設定には、検証データセットでの性能を評価するためのハイパーパラメータと構成が含まれます。これらの設定は、性能、速度、および精度に影響を与えます。一般的な設定には、バッチサイズ、検証頻度、および性能指標が含まれます。検証データセットのサイズと構成、および特定のタスクも、プロセスに影響を与えます。
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
data | str | None | データセット構成ファイルへのパスを指定します(例: coco8.yaml).このファイルには 検証データ. |
imgsz | int | 640 | 入力画像のサイズを定義します。すべての画像は、処理前にこのサイズにリサイズされます。サイズが大きいほど、小さなオブジェクトの精度が向上する可能性がありますが、計算時間が増加します。 |
batch | int | 16 | バッチあたりの画像数を設定します。値を大きくするとGPUメモリをより効率的に利用できますが、より多くのVRAMが必要になります。利用可能なハードウェアリソースに基づいて調整してください。 |
save_json | bool | False | もし Trueは、結果をJSONファイルに保存して、詳細な分析、他のツールとの統合、またはCOCOのような評価サーバーへの提出に利用できます。 |
conf | float | 0.001 | 検出の最小信頼度閾値を設定します。値を小さくするとリコール率は向上しますが、偽陽性が増える可能性があります。検証中に、適合率-再現率曲線を計算するために使用されます。 |
iou | float | 0.7 | Intersection Over Unionの閾値をNon-Maximum Suppressionに設定します。重複検出の除去を制御します。 |
max_det | int | 300 | 画像あたりの検出の最大数を制限します。過剰な検出を防ぎ、計算リソースを管理するために、密集したシーンで役立ちます。 |
half | bool | True | 半精度(FP16)計算を有効にし、メモリ使用量を削減し、精度への影響を最小限に抑えながら速度を向上させる可能性があります。 |
device | str | None | 検証に使用するデバイスを指定します(cpu, cuda:0など)。 Noneは、利用可能な最適なデバイスを自動的に選択します。複数の CUDA デバイスは、カンマで区切って指定できます。 |
dnn | bool | False | もし Trueは、を使用します。 OpenCV ONNXモデル推論用のDNNモジュール。代替手段として利用できます。 PyTorch 推論方法。 |
plots | bool | False | 以下に設定すると 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 | False | もし Trueは、クラスごとの指標、バッチの進捗状況、追加のデバッグ情報など、検証プロセス中に詳細な情報を表示します。 |
save_txt | bool | False | もし Trueは、検出結果をテキストファイルに保存します。画像ごとに1つのファイルが作成され、詳細な分析、カスタムの後処理、または他のシステムとの統合に役立ちます。 |
save_conf | bool | False | もし Trueの場合、保存されたテキストファイルに信頼度を含めます save_txt を有効にすると、分析とフィルタリングのためのより詳細な出力が得られます。 |
workers | int | 8 | データ読み込みのワーカースレッド数。値を大きくするとデータの前処理が高速化されますが、CPU使用率が増加する可能性があります。0に設定するとメインスレッドが使用され、一部の環境ではより安定する可能性があります。 |
augment | bool | False | 検証中にテスト時拡張(TTA)を有効にします。入力の変換されたバージョンで推論を実行することにより、推論速度を犠牲にして検出精度を向上させる可能性があります。 |
agnostic_nms | bool | False | クラスに依存しないNon-Maximum Suppressionを有効にします。これは、予測されたクラスに関係なく、重複するボックスをマージします。インスタンスに焦点を当てたアプリケーションに役立ちます。 |
single_cls | bool | False | 検証中にすべてのクラスを単一のクラスとして扱います。バイナリ検出タスク、またはクラスの区別が重要でない場合に、モデルのパフォーマンスを評価するのに役立ちます。 |
visualize | bool | False | 各画像の真実、真陽性、偽陽性、偽陰性を可視化します。デバッグやモデルの解釈に役立ちます。 |
compile | bool または str | False | PyTorch 2.xを有効にし、 torch.compile グラフコンパイル( backend='inductor')は以下を受け入れます。 True → "default", False → を無効にするか、文字列モード( "default", "reduce-overhead", "max-autotune-no-cudagraphs")を使用します。サポートされていない場合、警告とともにEagerモードにフォールバックします。 |
最適なパフォーマンスを確保し、過学習を検出して防止するには、注意深い調整と実験が不可欠です。
エクスポート設定
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 デバイスとは互換性がありません。 |
half | bool | False | FP16(半精度)量子化を有効にすることで、モデルサイズを縮小し、サポートされているハードウェアでの推論を高速化できる可能性があります。INT8量子化やCPUエクスポートとは互換性がない。ONNX (下記参照)など特定のフォーマットでのみ使用可能。 |
int8 | bool | False | INT8量子化を有効にすると、モデルがさらに圧縮され、主にエッジデバイス向けに、精度の低下を最小限に抑えながら推論が高速化されます。TensorRTと併用すると、post-training quantization(PTQ)が実行されます。 |
dynamic | bool | False | ONNX、TensorRT、OpenVINO エクスポートで入力サイズを動的に設定できるようになり、さまざまなサイズの画像を柔軟に扱えるようになりました。自動的に True TensorRTをINT8で使用する場合。 |
simplify | bool | True | ONNXエクスポート用にモデルグラフを簡素化します。 onnxslimは、推論エンジンとのパフォーマンスと互換性を向上させる可能性があります。 |
opset | int | None | 異なるONNXパーサーおよびランタイムとの互換性のために、ONNX opsetのバージョンを指定します。設定されていない場合は、サポートされている最新バージョンが使用されます。 |
workspace | float または None | None | 最大ワークスペースサイズをGiB単位で設定します。 TensorRT 最適化、メモリ使用量とパフォーマンスのバランス調整。使用 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) または NVIDIA Jetson 用の DLA (device=dla:0 または device=dla:1)TensorRTエクスポートはGPUを自動的に使用します。 |
data | str | 'coco8.yaml' | へのパス データセット 構成ファイル(デフォルト: coco8.yaml)は、INT8量子化のキャリブレーションに不可欠です。INT8を有効にして指定しない場合、デフォルトのデータセットが割り当てられます。 |
fraction | float | 1.0 | INT8量子化のキャリブレーションに使用するデータセットの割合を指定します。リソースが限られている場合や実験を行う場合に役立つ、データセットのサブセットでのキャリブレーションが可能です。INT8を有効にして指定しない場合、データセット全体が使用されます。 |
慎重な構成により、エクスポートされたモデルがそのユースケースに最適化され、ターゲット環境で効果的に機能することが保証されます。
ソリューション設定
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_JET | ヒートマップに使用するカラーマップ。 |
json_file | str | None | すべての駐車座標データを含むJSONファイルへのパス。 |
up_angle | float | 145.0 | 「アップ」ポーズの角度閾値。 |
kpts | list[int, int, int] | '[6, 8, 10]' | ワークアウトの監視に使用されるキーポイントのリスト。これらのキーポイントは、腕立て伏せ、懸垂、スクワット、腹筋運動などのエクササイズのために、肩、肘、手首などの体の関節または部分に対応しています。 |
down_angle | float | 90.0 | 「ダウン」ポーズの角度閾値。 |
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.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.0 | カメラからの距離が異なるオブジェクトをシミュレートするために、画像のスケールをゲインファクターで調整します。 |
shear | float | 0.0 | detect, segment, pose, obb | -180 - +180 | 画像を特定の角度で傾斜させ、オブジェクトが異なる角度から見られているような効果を模倣します。 |
perspective | float | 0.0 | detect, segment, pose, obb | 0.0 - 0.001 | 画像の遠近感をランダムに変換し、モデルが3次元空間内の物体を理解する能力を高めます。 |
flipud | float | 0.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.0 | detect, segment, pose, obb | 0.0 - 1.0 | 指定された確率で画像チャネルをRGBからBGRに反転させます。これは、誤ったチャネル順序に対するロバスト性を高めるのに役立ちます。 |
mosaic | float | 1.0 | detect, segment, pose, obb | 0.0 - 1.0 | 4つのトレーニング画像を1つに結合し、さまざまなシーン構成とオブジェクトの相互作用をシミュレートします。複雑なシーン理解に非常に効果的です。 |
mixup | float | 0.0 | detect, segment, pose, obb | 0.0 - 1.0 | 2つの画像とそのラベルをブレンドし、合成画像を作成します。ラベルノイズと視覚的な多様性を導入することで、モデルの汎化能力を高めます。 |
cutmix | float | 0.0 | detect, segment, pose, obb | 0.0 - 1.0 | 2つの画像の部分を組み合わせて、明確な領域を維持しながら部分的なブレンドを作成します。オクルージョンシナリオを作成することにより、モデルの堅牢性を高めます。 |
copy_paste | float | 0.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 - 0.9 | モデルがそれほど明白でない特徴に焦点を当てるように促すために、トレーニング中に画像の領域をランダムに消去します。 |
augmentations | list | {{ augmentations }} | detect, segment, pose, obb | - | 高度なデータ補強のためのカスタムAlbumentations変換Python APIのみ)。特殊な拡張のための変換オブジェクトのリストを受け付けます。 |
これらの設定は、データセットとタスクの要件に合わせて調整してください。さまざまな値を試すことで、最適なモデルパフォーマンスを得るための最適な拡張戦略を見つけることができます。
ロギング、チェックポイント、およびプロットの設定
YOLOモデルのトレーニングにおいて、ロギング、チェックポイント、プロット、およびファイル管理は重要です。
- ログ記録:TensorBoardのようなライブラリを使用するか、ファイルに書き込むことによって、モデルの進捗状況を追跡し、問題を診断します。
- チェックポイント: 定期的な間隔でモデルを保存して、トレーニングを再開したり、さまざまな構成を試したりします。
- プロット: matplotlibやTensorBoardなどのライブラリを使用して、パフォーマンスとトレーニングの進捗状況を視覚化します。
- ファイル管理: チェックポイント、ログファイル、プロットなど、トレーニング中に生成されたファイルを整理して、簡単にアクセスおよび分析できるようにします。
これらの側面を効果的に管理することで、進捗状況を追跡し、デバッグと最適化を容易にすることができます。
| 引数 | デフォルト | 説明 |
|---|---|---|
project | 'runs' | 学習実行を保存するためのルートディレクトリを指定します。各実行は個別のサブディレクトリに保存されます。 |
name | 'exp' | 実験名を定義します。指定しない場合、YOLOは実行ごとにこの名前をインクリメントします(例: exp, exp2)を使用して、上書きを回避します。 |
exist_ok | False | 既存の実験用ディレクトリを上書きするかどうかを決定します。 True 上書きを許可します。 False それを防ぎます。 |
plots | False | トレーニングおよび検証プロットの生成と保存を制御します。以下に設定します。 True 損失曲線のようなプロットを作成するには、 適合率-再現率 カーブ、およびパフォーマンスの視覚的追跡のためのサンプル予測。 |
save | False | トレーニングチェックポイントと最終モデルの重みを保存できるようにします。以下に設定します。 True モデルの状態を定期的に保存して、トレーニングの再開やモデルのデプロイを可能にします。 |
よくある質問
トレーニング中にYOLOモデルのパフォーマンスを向上させるにはどうすればよいですか?
バッチサイズ、学習率、モメンタム、および weight decay などのハイパーパラメータを調整して、パフォーマンスを向上させます。データ拡張設定を調整し、適切なオプティマイザを選択し、early stoppingやmixed precisionなどの手法を使用します。詳細については、Train Guideを参照してください。
YOLOモデルの精度に関する主要なハイパーパラメータは何ですか?
精度に影響を与える主なハイパーパラメータは次のとおりです。
- バッチサイズ(
batch): サイズが大きいほどトレーニングは安定しますが、より多くのメモリが必要です。 - 学習率 (
lr0): レートが小さいほど微調整できますが、収束が遅くなります。 - モメンタム(
momentum): 勾配ベクトルを加速し、振動を抑制します。 - 画像サイズ(
imgsz): サイズが大きいほど精度は向上しますが、計算負荷が増加します。
これらは、データセットとハードウェアに基づいて調整してください。詳細については、学習設定を参照してください。
YOLOモデルのトレーニングの学習率を設定するにはどうすればよいですか?
学習率(lr0)が重要です。まずは 0.01 SGDまたは 0.001 対象 Adamオプティマイザメトリクスを監視し、必要に応じて調整します。コサイン学習率スケジューラを使用します(cos_lr)またはウォームアップ(warmup_epochs, warmup_momentum)に詳細が記載されています。 学習ガイド.
YOLOモデルのデフォルトの推論設定は何ですか?
デフォルト設定は次のとおりです。
- 信頼度閾値(
conf=0.25): 検出の最小信頼度。 - IoU閾値(
iou=0.7): 向け Non-Maximum Suppression (NMS). - 画像サイズ(
imgsz=640): 入力画像のサイズを変更します。 - デバイス (
device=None): CPU または GPU を選択します。
概要については、Predict 設定およびPredict ガイドを参照してください。
YOLOモデルで混合精度トレーニングを使用する理由
混合精度 トレーニング (amp=True)は、FP16およびFP32を使用してメモリ使用量を削減し、トレーニングを高速化します。最新のGPUに役立ち、大幅な精度低下なしに、より大きなモデルとより高速な計算を可能にします。詳細については、 学習ガイド.