設定#
YOLOの設定とハイパーパラメータは、モデルのパフォーマンス、速度、および精度において極めて重要な役割を果たします。これらの設定は、トレーニング、検証、予測など、さまざまな段階でのモデルの挙動に影響を与えます。
Watch: Mastering Ultralytics YOLO: Configuration
Ultralyticsのコマンドは、以下の構文を使用します:
yolo TASK MODE ARGS各項目の説明:
TASK(オプション)は、(detect、segment、semantic、depth、classify、pose、obb) のいずれかですMODE(必須)は、(train、val、predict、export、track、benchmark) のいずれかですARGS(オプション)は、デフォルトを上書きするimgsz=640などのarg=valueペアです。
デフォルトの ARG の値はこのページで定義されており、cfg/default.yaml ファイルから取得されます。
タスク#
Ultralytics YOLOモデルは、以下を含むさまざまなコンピュータビジョンタスクを実行できます:
- Detect: 物体検出は、画像または動画内の物体を特定し、その位置を特定します。
- Segment: インスタンスセグメンテーションは、画像または動画を異なる物体やクラスに対応する領域に分割します。
- セマンティックセグメンテーション (
semantic): セマンティックセグメンテーションは、詳細なシーン理解のために、画像内のすべてのピクセルにクラスラベルを割り当てます。 - デプス (
depth): 単眼深度推定は、単一のRGB画像からピクセルごとの深度マップをメートル単位で予測します。 - Classify: 画像分類は、入力画像のクラスラベルを予測します。
- Pose: 姿勢推定は、画像または動画内の物体を特定し、そのキーポイントを推定します。
- 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モデルのトレーニング設定には、モデルのパフォーマンス、速度、および精度に影響を与えるハイパーパラメータと設定が含まれます。主な設定には、バッチサイズ、学習率、モメンタム、および重み減衰が含まれます。オプティマイザー、損失関数、およびデータセットの構成の選択もトレーニングに影響を与えます。最適なパフォーマンスを得るには、チューニングと実験が不可欠です。詳細については、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シリコン用MPS(device=mps)、Huawei Ascend NPU(device=npu:0 または device=npu:0,1)、あるいはアイドル状態の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 は、モデルアーキテクチャを維持しながら、ランダムに初期化された重みからトレーニングを行います。 |
cls_remap | bool | True | データセット間でファインチューニングを行う際、クラス名が一致する場所で事前学習済み分類ヘッドの行を新しいモデルにコピーします。これにより、クラス数が異なる場合や異なるクラス順序で一致する場合でも、オーバーラップするクラスは学習済みのバイアスを保持し、ヘッドの幅が変更されていない場合は重みも保持します。 |
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 (DFL) の重み。バウンディングボックスの境界までの距離を回帰するローカライゼーション項目です。 |
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 モデルにおける角度損失の重み。指向性バウンディングボックスの角度予測の精度に影響します。 |
dlog | float | 1.0 | 深度推定モデルにおけるスケール不変対数(SILog)ロスの重みであり、深度精度を駆動する主要な項です。 |
dgrad | float | 0.5 | 深度推定モデルにおける勾配ロスの重みであり、深度エッジの誤差をペナルティし、よりシャープな表面境界を促します。 |
dlam | float | 1.0 | 深度推定モデルにおけるSILog損失の分散フォーカスファクター。1.0 は損失を完全にスケール不変にし、0.0 はそれを通常のlog-RMSEに縮小します。 |
nbs | int | 64 | 損失正規化のための名目バッチサイズ。 |
overlap_mask | bool | True | 物体マスクをトレーニングのために単一のマスクにマージするか、各物体ごとに分離したままにするかを決定します。重なりがある場合、マージ中に小さいマスクがより大きいマスクの上に重ねられます。 |
mask_ratio | int | 4 | セグメンテーションマスクのダウンサンプル比率。トレーニング中に使用されるマスクの解像度に影響します。 |
dropout | float | 0.0 | 分類タスクにおける正則化のためのドロップアウト率。トレーニング中にユニットをランダムに省略することで過学習を防ぎます。 |
val | bool | True | トレーニング中のバリデーションを有効にし、別のデータセットでモデルパフォーマンスを定期的に評価できるようにします。 |
plots | bool | True | トレーニングおよびバリデーションの指標、ならびに予測例のプロットを生成して保存し、モデルのパフォーマンスと学習の進捗状況を視覚的に把握できるようにします。 |
compile | bool または str | False | PyTorch 2.x torch.compile グラフコンパイルを backend='inductor' で有効にします。 True → "default" 、 False →無効、または "default" 、 "reduce-overhead" 、 "max-autotune-no-cudagraphs" などの文字列モードを受け入れます。サポートされていない場合は、警告を出してeagerにフォールバックします。 |
channels_last | bool | False | トレーニング中の畳み込みに channels_last (NHWC) メモリフォーマットを使用し、結果を変えずに CUDA Tensor Core GPU を高速化します。CPU や MPS では利点がないため、自動的に無視されます。 |
max_det | int | 300 | トレーニングのバリデーションフェーズ中に保持される最大物体数を指定します。 |
batch 引数は3つの設定オプションを提供します:
- 固定バッチサイズ: 整数を使用してバッチあたりの画像数を指定します(例:
batch=16)。 - 自動モード(GPUメモリ60%): CUDAメモリ使用量が約60%になるように自動調整するには、
batch=-1を使用します。 - 使用率割合による自動モード: 指定されたGPUメモリ使用量に基づいて調整するために、割合(例:
batch=0.70)を設定します。
予測設定#
YOLOモデルの予測設定には、推論中のパフォーマンス、速度、および精度に影響を与えるハイパーパラメータと設定が含まれます。主な設定には、信頼度閾値、非最大値抑制(NMS)閾値、およびクラス数が含まれます。入力データのサイズ、形式、およびマスクなどの補足機能も予測に影響を与えます。最適なパフォーマンスを得るには、これらの設定のチューニングが不可欠です。
推論の引数:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
source | str、int、または None | None | 推論用のデータソースを指定します。画像パス、動画ファイル、ディレクトリ、URL、またはライブフィードのデバイスIDを指定できます。省略した場合、警告がログに記録され、モデルは内蔵のデモアセット(ultralytics/assets、またはOBB用のデモURL)にフォールバックします。幅広い形式とソースをサポートし、さまざまなタイプの入力にわたる柔軟なアプリケーションを可能にします。 |
conf | float | 0.25 | 検出の最小信頼度しきい値を設定します。このしきい値未満の信頼度で検出されたオブジェクトは無視されます。この値を調整することで、誤検出を減らすことができます。 |
iou | float | 0.7 | 非最大値抑制(NMS)のためのIoU(Intersection Over Union)閾値。値が低いほど、重なり合うボックスが排除されて検出数が減り、重複を減らすのに役立ちます。 |
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量子化はエクスポート時に設定され、エクスポートされたモデルをロードして使用されます。非推奨となった 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 | 予測されたクラススコアを上昇させたピクセルを示すクラスアクティベーションヒートマップを各予測の横に保存します。conf と classes を尊重するため、classes=[0] はそのクラスのみをマッピングします。PyTorchモデルでのみ利用可能です。 |
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 | 特徴ベクトルまたは埋め込みを抽出する層を指定します。最後から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にフォールバックします。 |
channels_last | bool | False | 推論中の畳み込みに channels_last (NHWC) メモリフォーマットを使用し、結果を変えずに CUDA Tensor Core GPU を高速化します。ネイティブの PyTorch モデルのみに適用され、CPU、MPS、および TensorRT や ONNX などのエクスポート形式では無視されます。 |
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 の場合、画像のサイズに基づいて線の太さが自動的に調整されます。明瞭さのための視覚的なカスタマイズを提供します。 |
検証設定#
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しきい値を設定します。重複する検出結果の削除を制御します。 |
max_det | int | 300 | 画像ごとの最大検出数を制限します。高密度なシーンで過剰な検出を防ぎ、計算リソースを管理するのに役立ちます。 |
quantize | int または str | None | 検証の精度:16/"fp16" はサポートされているGPUでのFP16検証を有効にし、32/"fp32"/未設定はFP32です。INT8/PTQ量子化はエクスポート時に設定され、エクスポートされたモデルを検証して使用されます。非推奨となった half フラグを置き換えます。 |
device | str | None | 検証用のデバイスを指定します(cpu、cuda:0、npu、npu:0 など)。None の場合、利用可能な最適なデバイスが自動的に選択されます。カンマ区切りで複数のCUDAデバイスを指定できます。 |
dnn | bool | False | True の場合、ONNXモデル推論にOpenCV DNNモジュールを使用し、PyTorch推論方法の代替手段を提供します。 |
plots | bool | True | True に設定すると、モデルのパフォーマンスを視覚的に評価するために、正解に対する予測のプロット、混同行列、およびPR曲線を生成して保存します。 |
classes | list[int] | None | 評価対象のクラスIDのリストを指定します。評価中に特定のクラスのみを抽出したり、注目したりする場合に便利です。 |
rect | bool | True | True の場合、バッチ処理に矩形推論を使用し、元のアスペクト比で画像を処理することでパディングを削減し、速度と効率を向上させる可能性があります。 |
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 | True の場合、save_txt が有効なときに保存されるテキストファイルに信頼度値を含め、分析とフィルタリングのためのより詳細な出力を提供します。 |
workers | int | 8 | データ読み込み用のワーカースレッド数です。値を大きくするとデータの前処理は高速化されますが、CPU使用率が増加する可能性があります。0に設定するとメインスレッドが使用され、環境によってはより安定します。 |
augment | bool | False | 検証時にテスト時拡張(TTA)を有効にします。入力データの変換版に対しても推論を実行することで、推論速度と引き換えに検出精度が向上する可能性があります。 |
agnostic_nms | bool | False | 予測されたクラスに関係なく重なり合うボックスをマージする、クラスに依存しない非最大値抑制を有効にします。インスタンス指向のアプリケーションに役立ちます。エンドツーエンドモデル(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にフォールバックします。 |
channels_last | bool | False | 検証中の畳み込みに channels_last (NHWC) メモリフォーマットを使用することで、結果を変えずに CUDA Tensor Core GPU の処理を高速化します。ネイティブ PyTorch モデルにのみ適用され、CPU、MPS、および TensorRT や ONNX などのエクスポートされたフォーマットでは無視されます。 |
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のサービングおよびAPIとの互換性を提供します。 |
optimize | bool | False | DEEPXのコンパイラ最適化を強化し、推論レイテンシを削減しますが、コンパイル時間は増加します。 |
quantize | int または str | None | 量子化精度: 16(FP16、モデルサイズを縮小し、サポートされているハードウェアでの推論を高速化できる)または 8(INT8/PTQ、最小限の精度損失でモデルをさらに圧縮、主にエッジデバイス向け。data/fraction のキャリブレーションが必要)。32/未指定はFP32です。混合ウェイト/アクティベーション精度をサポートするエクスポートフォーマットは、'w8a8'/'w16a16'/'w8a16'/'w8a32' の表記も受け付けます。非推奨となった 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オプセットバージョンを指定し(エクスポートフォーマットを参照)、さまざまなONNXパーサーやランタイムとの互換性を確保します。設定しない場合は、サポートされている最新のバージョンが使用されます。 |
workspace | float または None | None | メモリ使用量とパフォーマンスのバランスを取るために、TensorRT最適化のための最大ワークスペースサイズをGiB単位で設定します。デバイスの最大値までTensorRTによる自動割り当てを行うには None を使用します。 |
nms | bool | False | サポートされている場合に、エクスポートされたモデルに非最大値抑制(NMS)を追加し(エクスポート形式を参照)、検出後の処理効率を向上させます。end2endモデルでは利用できません。CoreMLの場合、検出モデルでのみサポートされます。 |
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ベースの後処理パイプラインと互換性を持つようにこれらのモデルをエクスポートできます。詳細については、エンドツーエンド検出ガイドを参照してください。 |
適切な設定を行うことで、エクスポートされたモデルがそのユースケースに最適化され、ターゲット環境で効果的に機能することを保証します。
ソリューション設定#
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 | モデル推論のための入力画像サイズ。 |
拡張(オーギュメンテーション)設定#
データオーグメンテーション技術は、トレーニングデータに変動性を導入することでYOLOモデルの頑健性とパフォーマンスを向上させるために不可欠であり、モデルが未見のデータに対してより良く汎化するのに役立ちます。次の表は、各オーグメンテーション引数の目的と効果の概要を示しています:
| 引数 | タイプ | デフォルト | サポートされているタスク | 範囲 | 説明 |
|---|---|---|---|---|---|
hsv_h | float | 0.015 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | 色相環の割合で画像の色相を調整し、色の多様性をもたらします。さまざまな照明条件下でモデルが汎化するのを助けます。 |
hsv_s | float | 0.7 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | 画像の彩度を割合で変更し、色の強さに影響を与えます。さまざまな環境条件をシミュレートするのに役立ちます。 |
hsv_v | float | 0.4 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | 画像の明度(明るさ)を割合で修正し、モデルがさまざまな照明下で良好に機能するように支援します。 |
degrees | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 180 | 画像を特定の角度範囲内でランダムに回転させ、さまざまな向きのオブジェクトを認識するモデルの能力を向上させます。 |
translate | float | 0.1 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | 画像を画像サイズの割合で水平および垂直に移動させ、部分的にしか見えないオブジェクトの検出学習を支援します。 |
scale | float | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0 - 1 | ゲイン係数によって画像を拡大縮小し、カメラからの距離が異なるオブジェクトをシミュレーションします。 |
shear | float | 0 | detect, segment, semantic, depth, pose, obb | -180 - +180 | 画像を特定の角度でせん断(傾斜)させ、異なる角度から見たオブジェクトの効果を模倣します。 |
perspective | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 0.001 | 画像にランダムな遠近法変換を適用し、3D空間におけるオブジェクトを理解するモデルの能力を強化します。 |
flipud | float | 0 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | 指定された確率で画像を上下反転させ、オブジェクトの特性に影響を与えることなくデータのバリエーションを増加させます。 |
fliplr | float | 0.5 | detect, segment, semantic, depth, classify, pose, obb | 0.0 - 1.0 | 指定された確率で画像を左右反転させます。対称的なオブジェクトの学習やデータセットの多様性向上に役立ちます。 |
bgr | float | 0 | detect, segment, semantic, depth, pose, obb | 0.0 - 1.0 | 指定された確率で画像のチャンネルをRGBからBGRに反転させます。誤ったチャンネル順序に対する堅牢性を高めるのに役立ちます。 |
mosaic | float | 1 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | 4つのトレーニング画像を1つに結合し、異なるシーン構成やオブジェクトの相互作用をシミュレーションします。複雑なシーンの理解に非常に効果的です。 |
mixup | float | 0 | detect, segment, semantic, pose, obb | 0.0 - 1.0 | 2つの画像とそのラベルをブレンドして合成画像を作成します。ラベルノイズと視覚的バリエーションを導入することで、モデルの汎化能力を向上させます。 |
cutmix | float | 0 | detect, segment, pose, obb | 0.0 - 1.0 | 2つの画像の一部を組み合わせて、領域を明確に維持したまま部分的なブレンドを作成します。オクルージョン(遮蔽)のシナリオを作成することでモデルの堅牢性を強化します。 |
copy_paste | float | 0 | segment | 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 | None | detect, segment, semantic, pose, obb | - | 高度なデータ拡張のためのカスタムAlbumentations変換(Python APIのみ)。特殊な拡張ニーズのために変換オブジェクトのリストを受け入れます。 |
データセットとタスクの要件を満たすようにこれらの設定を調整してください。異なる値を試すことで、最高のモデル性能を得るための最適な拡張戦略を見つけることができます。
ロギング、チェックポイント、プロットの設定#
YOLOモデルを学習する際、ロギング、チェックポイント、プロット、およびファイル管理は重要です:
- ロギング: TensorBoardなどのライブラリを使用するか、ファイルへの書き込みを行って、モデルの進捗を追跡し、問題を診断します。
- チェックポイント: モデルを定期的に保存し、学習を再開したり、異なる構成で実験したりします。
- プロット: MatplotlibやTensorBoardのようなライブラリを使用して、性能や学習の進捗状況を可視化します。
- ファイル管理: 学習中に生成されたチェックポイント、ログファイル、プロットなどのファイルを整理し、アクセスと分析を容易にします。
これらの側面を効果的に管理することで、進捗状況の追跡が容易になり、デバッグや最適化も簡素化されます。
| 引数 | デフォルト | 説明 |
|---|---|---|
project | None | 学習実行を保存するためのルートディレクトリを指定します。指定しない場合、実行結果は runs/<task> の下に保存されます。各実行は個別のサブディレクトリに保存されます。 |
name | None | 実験名を定義します。指定しない場合、YOLO はモード名を使用し、上書きを避けるために実行ごとにインクリメントします(例: train、train-2)。 |
exist_ok | False | 既存の実験ディレクトリを上書きするかどうかを決定します。True は上書きを許可し、False はそれを防ぎます。 |
plots | True | トレーニングおよびバリデーションのプロットの生成と保存を制御します。損失曲線、適合率-再現率曲線、およびパフォーマンスの視覚的追跡用のサンプル予測などのプロットを作成するには、Trueに設定します。 |
save | True | 学習チェックポイントと最終モデル重みの保存を有効にします。モデルの定期的な状態保存を行い、学習の再開やモデルのデプロイを可能にするには、True に設定します。 |
カスタム構成ファイル#
保存された YAML を読み込んで、引数をインラインで渡すことなく、一連の引数を再利用します。cfg 引数は default.yaml の値を上書きしますが、同時に渡された追加の引数が引き続き優先されます。
| 引数 | デフォルト | 説明 |
|---|---|---|
cfg | None | 値が default.yaml のエントリを置き換える YAML ファイルへのパス。実際の CLI の例については、デフォルト設定ファイルのオーバーライドを参照してください。 |
よくある質問 (FAQ)#
学習中にYOLOモデルの性能を向上させるにはどうすればよいですか?#
バッチサイズ、学習率、モメンタム、および重み減衰などのハイパーパラメータを調整して、パフォーマンスを向上させます。データ拡張設定を調整し、適切なオプティマイザを選択し、早期終了や混合精度などのテクニックを使用します。詳細については、学習ガイドを参照してください。
YOLOモデルの精度に影響を与える重要なハイパーパラメータは何ですか?#
精度に影響を与える主なハイパーパラメータは以下の通りです:
- バッチサイズ (
batch): サイズを大きくすると学習を安定させることができますが、より多くのメモリが必要になります。 - 学習率 (
lr0): レートを小さくすると微調整が可能になりますが、収束が遅くなります。 - モメンタム (
momentum): 勾配ベクトルを加速させ、振動を抑制します。 - 画像サイズ (
imgsz): サイズを大きくすると精度が向上しますが、計算負荷が増加します。
データセットとハードウェアに基づいてこれらを調整してください。学習設定で詳細を確認してください。
YOLOモデル学習の学習率をどのように設定すればよいですか?#
学習率(lr0)は非常に重要です。SGDの場合は0.01から、またはAdamオプティマイザの場合は0.001から開始してください。メトリクスを監視し、必要に応じて調整します。コサイン学習率スケジューラー(cos_lr)またはウォームアップ(warmup_epochs、warmup_momentum)を使用します。詳細はトレーニングガイドに記載されています。
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 に有益であり、大幅な精度低下なしにより大きなモデルとより高速な計算を可能にします。学習ガイドで詳細を確認してください。