構成
YOLO 設定とハイパーパラメータは、モデルのパフォーマンス、スピード、精度に重要な役割を果たします。これらの設定は、トレーニング、検証、予測を含む様々な段階でモデルの動作に影響を与えます。
見る Ultralytics 使いこなすYOLO: コンフィギュレーション
見るんだ: MasteringUltralytics YOLO : コンフィギュレーション
Ultralytics コマンドは以下の構文を使う:
例
どこでだ:
TASK
(オプション) は (見つける, セグメント, 分類する, ポーズ, オッブ)MODE
(必須) は (電車, 値, 予測, 輸出, トラック, ベンチマーク)ARGS
(オプション)はarg=value
のようなペア。imgsz=640
デフォルトを上書きする。
デフォルト ARG
の値はこのページで定義されている。 cfg/defaults.yaml
ファイル.
タスク
Ultralytics YOLO モデルは、以下のような様々なコンピュータビジョンタスクを実行することができます:
- 検出 オブジェクト検出は、画像やビデオ内のオブジェクトを識別し、位置を特定します。
- セグメンテーション:インスタンス・セグメンテーションは、画像やビデオを異なるオブジェクトやクラスに対応する領域に分割する。
- Classify:画像分類は入力画像のクラスラベルを予測する。
- ポーズ:ポーズ推定は、画像やビデオ内のオブジェクトを識別し、そのキーポイントを推定する。
- OBB:Oriented Bounding Boxesは、衛星画像や医療画像に適した、回転したバウンディングボックスを使用します。
議論 | デフォルト | 説明 |
---|---|---|
task |
'detect' |
YOLO タスクを指定する: detect にとって オブジェクト検出, segment セグメンテーションのために、 classify を分類する、 pose ポーズ推定 obb オリエンテッドなバウンディングボックス各タスクは、画像やビデオ解析における特定の出力や問題に合わせて調整されています。 |
モード
Ultralytics YOLO モデルは、モデルのライフサイクルの特定の段階に合わせて設計された、さまざまなモードで動作します:
- 訓練するカスタムデータセットでYOLO モデルを訓練する。
- Val: 訓練されたYOLO モデルを検証する。
- 予測する:トレーニングされた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 |
学習エポックの総数。各エポックはデータセット全体に対するフルパスを表す。この値を調整することで、トレーニング期間とモデルのパフォーマンスに影響を与えることができる。 |
time |
float |
None |
最大トレーニング時間(時間単位)。設定すると epochs 引数を指定することで、指定した期間後にトレーニングを自動的に停止することができます。時間に制約のあるトレーニングシナリオに便利です。 |
patience |
int |
100 |
学習を早期に停止する前に、検証メトリクスに改善が見られない場合のエポック数。性能が頭打ちになったときに学習を停止することで、オーバーフィッティングを防ぐことができます。 |
batch |
int |
16 |
バッチサイズ3つのモードがある、 batch=16 )、GPU メモリ使用率60%の自動モード(batch=-1 )、または利用率を指定した自動モード(batch=0.70 ). |
imgsz |
int または list |
640 |
トレーニングのターゲット画像サイズ。すべての画像は、モデルに入力される前にこの次元にリサイズされます。モデルの精度と計算の複雑さに影響します。 |
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 )、またはアップル・シリコン用のMPS (device=mps ). |
workers |
int |
8 |
データロードのためのワーカースレッド数(1スレッドあたり 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 |
マルチクラスデータセットのすべてのクラスを1つのクラスとして扱う。バイナリ分類タスクや、分類よりもオブジェクトの存在に注目する場合に便利。 |
classes |
list[int] |
None |
トレーニングするクラスIDのリストを指定します。トレーニング中に特定のクラスだけを絞り込んでフォーカスするのに便利です。 |
rect |
bool |
False |
最小限のパディングのためにバッチ構成を最適化し、矩形学習を可能にする。効率とスピードが向上しますが、モデルの精度に影響を与える可能性があります。 |
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オプティマイザの場合はβ1。過去の勾配を現在の更新に反映させる。 |
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 |
ポーズ推定モデルにおけるキーポイントのオブジェクトネス損失の重み、検出信頼度とポーズ精度のバランス。 |
nbs |
int |
64 |
ロスを正規化するための公称バッチサイズ。 |
overlap_mask |
bool |
True |
オブジェクトのマスクをトレーニング用に1つのマスクにマージするか、オブジェクトごとに別々にするかを決定します。オーバーラップの場合、小さいマスクはマージ時に大きいマスクの上に重ねられます。 |
mask_ratio |
int |
4 |
セグメンテーションマスクのダウンサンプル比。トレーニング時に使用するマスクの解像度に影響する。 |
dropout |
float |
0.0 |
分類タスクにおける正則化のためのドロップアウト率。トレーニング中にユニットをランダムに省略することでオーバーフィッティングを防ぐ。 |
val |
bool |
True |
トレーニング中に検証を有効にし、別のデータセットでモデルの性能を定期的に評価できるようにする。 |
plots |
bool |
False |
予測例だけでなく、訓練と検証のメトリクスのプロットを生成して保存することで、モデルのパフォーマンスと学習の進行に関する視覚的な洞察を提供します。 |
バッチサイズ設定に関する注意事項
について batch
引数には3つの設定オプションがある:
- 固定バッチサイズ:バッチあたりの画像数を整数で指定する、
batch=16
). - オートモード (60%GPU メモリー):用途
batch=-1
CUDA メモリ使用率を約60%に自動調整します。 - 利用率によるオートモード:端数を設定する(例.
batch=0.70
) を使用して、指定されたGPU メモリ使用量に基づいて調整します。
設定の予測
YOLO モデルの予測設定には、推論中のパフォーマンス、スピード、精度に影響するハイパーパラメータと設定が含まれる。主な設定には、信頼しきい値、非最大抑制(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 正方形にリサイズする場合、または(高さ、幅)のタプルを使用します。適切なサイジングは検出を向上させる 精度 と処理速度。 |
half |
bool |
False |
半精度(FP16)推論が可能になり、サポートされているGPUでのモデル推論を、精度への影響を最小限に抑えながら高速化することができます。 |
device |
str |
None |
推論を行うデバイスを指定する(例. cpu , cuda:0 または 0 ).CPU 、特定のGPU 、またはモデル実行用の他のコンピュート・デバイスを選択することができます。 |
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 |
異なるクラスのオーバーラップしたボックスをマージする、クラスにとらわれない非最大抑制(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 |
ターミナルに詳細な推論ログを表示し、予測プロセスに関するリアルタイムのフィードバックを提供するかどうかを制御します。 |
可視化の引数:
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
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 線幅は画像サイズに応じて自動的に調整されます。視覚的にわかりやすくカスタマイズできます。 |
font_size |
float |
None |
注釈のテキストフォントサイズ。に設定すると、画像サイズに合わせて自動的に拡大縮小されます。 None . |
font |
str |
'Arial.ttf' |
可視化のテキスト注釈のフォント名またはパス。 |
pil |
bool |
False |
画像をnumpy配列ではなくPIL Imageオブジェクトとして返す。 |
kpt_radius |
int |
5 |
ポーズ推定結果を可視化する際のキーポイントの半径。 |
kpt_line |
bool |
True |
ポーズ推定を視覚化する際、キーポイントを線で結ぶ。 |
masks |
bool |
True |
可視化出力にセグメンテーションマスクを表示する。 |
probs |
bool |
True |
視覚化に分類確率を含める。 |
filename |
str |
None |
注釈付き画像を保存する際のパスとファイル名。 save=True . |
color_mode |
str |
'class' |
インスタンス」や「クラス」など、ビジュアライゼーションのカラーリングモードを指定する。 |
txt_color |
tuple[int, int, int] |
(255, 255, 255) |
分類タスク注釈のRGBテキスト色。 |
バリデーション設定
YOLO モデルの検証設定には、検証データセットでの性能を評価するためのハイパーパラメータと設定が含まれる。これらの設定は、パフォーマンス、スピード、精度に影響する。一般的な設定には、バッチサイズ、検証頻度、パフォーマンスメトリクスが含まれる。検証データセットのサイズと構成は、特定のタスクとともに、プロセスにも影響する。
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
data |
str |
None |
データセット設定ファイルへのパスを指定する(例. coco8.yaml ).このファイルには 検証データクラス名、クラス数 |
imgsz |
int |
640 |
入力画像のサイズを定義します。すべての画像は、処理前にこの寸法にリサイズされます。サイズを大きくすると、小さなオブジェクトの精度は向上しますが、計算時間が長くなります。 |
batch |
int |
16 |
バッチあたりの画像数を設定します。値が高いほどGPU メモリを効率的に利用できますが、より多くのVRAMを必要とします。利用可能なハードウェアリソースに基づいて調整します。 |
save_json |
bool |
False |
もし True さらに分析したり、他のツールと統合したり、COCOのような評価サーバーに提出したりするために、JSONファイルに結果を保存します。 |
save_hybrid |
bool |
False |
もし True ラベルのハイブリッドバージョンは、元の注釈と追加モデルの予測を組み合わせて保存します。半教師付き学習やデータセットの強化に役立ちます。 |
conf |
float |
0.001 |
検出の最小信頼しきい値を設定する。値が低いほどリコールは高くなるが、誤検出が増える可能性がある。検証時に精度-再現率曲線を計算するために使用する。 |
iou |
float |
0.6 |
Non-Maximum Suppression のIntersection Over Unionしきい値を設定します。重複検出の除去を制御します。 |
max_det |
int |
300 |
画像あたりの最大検出数を制限する。密度が高いシーンで、過剰な検出を防ぎ、計算リソースを管理するのに便利です。 |
half |
bool |
True |
半精度(FP16)計算が可能になり、メモリ使用量が削減され、精度への影響を最小限に抑えながら速度が向上する可能性があります。 |
device |
str |
None |
検証用デバイスを指定する (cpu , cuda:0 など)。いつ None 自動的に最適なデバイスを選択します。カンマ区切りで複数のCUDA デバイスを指定できます。 |
dnn |
bool |
False |
もし True を使用している。 オープンCV ONNX モデル推論のためのDNNモジュール。 PyTorch 推論方法。 |
plots |
bool |
False |
に設定した場合 True また、モデルの性能を視覚的に評価するために、予測値対グランドトゥルース、混同行列、PR曲線のプロットを生成し、保存します。 |
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 を有効にすると、分析とフィルタリングのためのより詳細な出力が得られる。 |
save_crop |
bool |
False |
もし True 検出されたオブジェクトのトリミング画像を保存し、フォーカスされたデータセットの作成、視覚的検証、または個々の検出のさらなる分析に役立ちます。 |
workers |
int |
8 |
データ読み込みのためのワーカースレッド数。値を大きくするとデータの前処理を高速化できるが、CPU 使用率が増加する可能性がある。0に設定するとメインスレッドを使用し、環境によってはより安定します。 |
augment |
bool |
False |
検証中にテスト時間拡張(TTA)を可能にし、変換されたバージョンの入力に対して推論を実行することで、推論速度を犠牲にして検出精度を向上させる可能性がある。 |
agnostic_nms |
bool |
False |
予測されるクラスに関係なく、重なり合うボックスをマージする、クラスを問わない非最大抑制を有効にします。インスタンスに特化したアプリケーションに便利です。 |
single_cls |
bool |
False |
検証時にすべてのクラスを1つのクラスとして扱う。バイナリ検出タスクやクラスの区別が重要でない場合に、モデルの性能を評価するのに便利です。 |
最適なパフォーマンスを確保し、オーバーフィッティングを検出・防止するためには、入念なチューニングと実験が欠かせない。
エクスポート設定
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 |
のKerasフォーマットへのエクスポートを可能にする。 TensorFlowSavedModel TensorFlow サービングと API との互換性を提供します。 |
optimize |
bool |
False |
TorchScriptエクスポート時にモバイルデバイス向けの最適化を適用し、モデルサイズを縮小して推論パフォーマンスを向上させる可能性があります。NCNN フォーマットやCUDA デバイスとは互換性がありません。 |
half |
bool |
False |
FP16(半精度)量子化を有効にし、モデルサイズを縮小し、サポートされているハードウェアでの推論を高速化する可能性があります。ONNXINT8量子化またはCPUエクスポートとは互換性がありません。 |
int8 |
bool |
False |
INT8量子化を有効にすることで、モデルをさらに圧縮し、主にエッジデバイスに対して、最小限の精度損失で推論を高速化します。TensorRT使用する場合、学習後の量子化(PTQ)を実行します。 |
dynamic |
bool |
False |
ONNX、TensorRT 、OpenVINO エクスポートでダイナミックな入力サイズを可能にし、さまざまなサイズの画像を柔軟に扱えるようになりました。自動的に True TensorRT INT8で使用する場合。 |
simplify |
bool |
True |
でのONNX エクスポートのモデルグラフを簡素化する。 onnxslim 推論エンジンとの互換性が向上し、パフォーマンスが向上する可能性がある。 |
opset |
int |
None |
ONNX オペセットのバージョンを指定します。 ONNXパーサーとランタイムの互換性のために指定します。設定されていない場合は、サポートされている最新のバージョンを使用します。 |
workspace |
float または None |
None |
の最大ワークスペース・サイズをGiB単位で設定する。 TensorRT 最適化を行い、メモリ使用量とパフォーマンスのバランスをとる。使用方法 None TensorRT 、デバイスの最大値まで自動で割り当てられる。 |
nms |
bool |
False |
サポートされている場合(「エクスポート形式」を参照)、エクスポートされたモデルに非最大抑制(NMS)を追加し、検出の後処理効率を向上させます。end2endモデルでは使用できません。 |
batch |
int |
1 |
エクスポートモデルのバッチ推論サイズ、またはエクスポートされたモデルが同時に処理する画像の最大数を指定します。 predict モードに設定されます。エッジTPU 輸出の場合、これは自動的に1に設定される。 |
device |
str |
None |
エクスポートするデバイスを指定:GPU (device=0 )、CPU (device=cpu )、アップル・シリコン用MPS (device=mps )またはDLA forNVIDIA Jetson (device=dla:0 または device=dla:1 ).TensorRT エクスポートは、自動的にGPU使用します。 |
data |
str |
'coco8.yaml' |
への道 データセット 設定ファイル(デフォルト: coco8.yaml )、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] |
(50, 50) |
VisionEye Solutionを使用して、ビジョンが物体を追跡し、パスを描画する点。 |
tracker |
str |
'botsort.yaml' |
使用するトラッキングアルゴリズムを指定する、 bytetrack.yaml または botsort.yaml . |
conf |
float |
0.3 |
検出の信頼しきい値を設定します。低い値ではより多くのオブジェクトを追跡できますが、誤検出を含む可能性があります。 |
iou |
float |
0.5 |
重複検出をフィルタリングするためのIoU(Intersection over Union)しきい値を設定します。 |
classes |
list |
None |
クラス・インデックスによって結果をフィルタリングする。例えば classes=[0, 2, 3] は指定されたクラスのみを追跡する。 |
verbose |
bool |
True |
トラッキング結果の表示をコントロールし、トラッキングされたオブジェクトのビジュアル出力を提供します。 |
device |
str |
None |
推論を行うデバイスを指定する(例. cpu , cuda:0 または 0 ).CPU 、特定のGPU 、またはモデル実行用の他のコンピュート・デバイスを選択することができます。 |
show |
bool |
False |
もし True 注釈付きの画像やビデオをウィンドウに表示します。開発中やテスト中の即時の視覚的フィードバックに便利です。 |
line_width |
None or int |
None |
バウンディングボックスの線幅を指定します。もし None 線幅は画像サイズに応じて自動的に調整されます。視覚的にわかりやすくカスタマイズできます。 |
オーグメンテーションの設定
YOLO モデルのロバスト性とパフォーマンスを向上させるためには、学習データに可変性を導入し、モデルが未知のデータに対してより良く汎化できるようにするデータ補強技術が不可欠です。以下の表は、各補強手法の目的と効果の概要である:
議論 | タイプ | デフォルト | レンジ | 説明 |
---|---|---|---|---|
hsv_h |
float |
0.015 |
0.0 - 1.0 |
画像の色相をカラーホイールの数分の一だけ調整し、色のばらつきを導入します。異なる照明条件でのモデルの一般化を助けます。 |
hsv_s |
float |
0.7 |
0.0 - 1.0 |
画像の彩度をほんの少し変化させ、色の濃さに影響を与えます。異なる環境条件をシミュレートするのに便利です。 |
hsv_v |
float |
0.4 |
0.0 - 1.0 |
画像の値(明るさ)を小数で変更し、さまざまな照明条件下でモデルがうまく機能するようにします。 |
degrees |
float |
0.0 |
-180 - +180 |
指定した度数の範囲内で画像をランダムに回転させ、さまざまな向きのオブジェクトを認識するモデルの能力を向上させます。 |
translate |
float |
0.1 |
0.0 - 1.0 |
画像を水平方向と垂直方向に画像サイズの数分の一だけ平行移動させ、部分的に見える物体を検出する学習に役立てる。 |
scale |
float |
0.5 |
>=0.0 |
ゲイン係数で画像をスケーリングし、カメラから異なる距離にある物体をシミュレートする。 |
shear |
float |
0.0 |
-180 - +180 |
画像を指定した角度で切断し、物体を異なる角度から見たときの効果を模倣する。 |
perspective |
float |
0.0 |
0.0 - 0.001 |
画像にランダムな透視変換を適用し、3D空間のオブジェクトを理解するモデルの能力を高める。 |
flipud |
float |
0.0 |
0.0 - 1.0 |
指定された確率で画像を上下反転させ、対象物の特性に影響を与えることなくデータのばらつきを大きくする。 |
fliplr |
float |
0.5 |
0.0 - 1.0 |
左右対称のオブジェクトを学習したり、データセットの多様性を高めたりするのに役立つ。 |
bgr |
float |
0.0 |
0.0 - 1.0 |
指定した確率で画像チャンネルをRGBからBGRに反転させます。誤ったチャンネル順序に対するロバスト性を高めるのに役立ちます。 |
mosaic |
float |
1.0 |
0.0 - 1.0 |
4枚のトレーニング画像を1枚に合成し、異なるシーンの構成やオブジェクトの相互作用をシミュレート。複雑なシーンの理解に高い効果を発揮。 |
mixup |
float |
0.0 |
0.0 - 1.0 |
2つの画像とそのラベルをブレンドし、合成画像を作成します。ラベルノイズや視覚的なばらつきを導入することで、モデルの汎化能力を高める。 |
copy_paste |
float |
0.0 |
0.0 - 1.0 |
オブジェクトのインスタンスを増やしたり、オブジェクトのオクルージョンを学習したりするのに便利です。セグメンテーションラベルが必要です。 |
copy_paste_mode |
str |
'flip' |
- | のオプションの中からコピーペースト増強法を選択する。"flip" , "mixup" ). |
auto_augment |
str |
'randaugment' |
- | 事前に定義された補強ポリシー(randaugment , autoaugment , augmix )、視覚的特徴を多様化することで分類タスクを最適化する。 |
erasing |
float |
0.4 |
0.0 - 0.9 |
分類トレーニング中に画像の一部をランダムに消去し、モデルが認識のためにあまり目立たない特徴に集中するよう促す。 |
crop_fraction |
float |
1.0 |
0.1 - 1.0 |
中心の特徴を強調し、オブジェクトのスケールに適応し、背景の乱れを軽減するために、分類画像をそのサイズのほんの一部に切り取ります。 |
データセットとタスクの要件に合わせて、これらの設定を調整します。異なる値で実験することで、最良のモデル性能のための最適なオーグメンテーション戦略を見つけることができます。
ロギング、チェックポイント、プロット設定
YOLO モデルをトレーニングする際には、ロギング、チェックポイント、プロット、ファイル管理が重要である:
- ロギング:TensorBoardのようなライブラリを使用するか、ファイルに書き込むことによって、モデルの進捗を追跡し、問題を診断する。
- チェックポイント:一定間隔でモデルを保存し、トレーニングを再開したり、異なるコンフィギュレーションを試すことができます。
- プロットする:matplotlibやTensorBoardのようなライブラリを使って、パフォーマンスやトレーニングの進捗状況を可視化する。
- ファイル管理:チェックポイント、ログファイル、プロットなど、トレーニング中に生成されたファイルを整理し、アクセスや分析を容易にします。
これらの側面を効果的に管理することで、進捗状況を把握し、デバッグや最適化を容易にすることができる。
議論 | デフォルト | 説明 |
---|---|---|
project |
'runs' |
トレーニング実行を保存するルートディレクトリを指定します。各ランは個別のサブディレクトリに保存されます。 |
name |
'exp' |
実験名を定義する。未指定の場合、YOLO 実行のたびにこの名前をインクリメントする(例、 exp , exp2 )を上書きしないようにする。 |
exist_ok |
False |
既存の実験ディレクトリを上書きするかどうかを決定する。 True は上書きを許可する; False それを防ぐ。 |
plots |
False |
トレーニングプロットと検証プロットの生成と保存を制御します。設定項目 True ロスカーブのようなプロットを作成する、 精度-リコール カーブ、そしてパフォーマンスの視覚的な追跡のためのサンプル予測。 |
save |
False |
トレーニングのチェックポイントと最終的なモデルの重みを保存できるようにします。設定値 True を使用してモデルの状態を定期的に保存し、トレーニングの再開やモデルの展開を可能にします。 |
よくあるご質問
トレーニング中のYOLO モデルのパフォーマンスを向上させるには?
バッチサイズ、学習率、モメンタム、ウェイト減衰などのハイパーパラメータをチューニングしてパフォーマンスを向上させる。データ増強設定を調整し、適切なオプティマイザを選択し、早期停止や混合精度などのテクニックを使用します。詳細はTrain Guideを参照してください。
YOLO モデルの精度を左右する重要なハイパーパラメーターとは?
精度に影響する主なハイパーパラメータには以下のものがある:
- バッチサイズ
batch
):より大きなサイズはトレーニングを安定させることができるが、より多くのメモリを必要とする。 - 学習率
lr0
):レートが小さいほど微調整は可能だが、収束は遅い。 - モメンタム (
momentum
):勾配ベクトルを加速し、振動を和らげる。 - 画像サイズ
imgsz
):サイズを大きくすると精度は向上するが、計算負荷は増大する。
あなたのデータセットとハードウェアに基づいてこれらを調整してください。詳しくはTrain Settingsをご覧ください。
YOLO モデルをトレーニングする際の学習率はどのように設定するのですか?
学習率(lr0
)が重要である。 0.01
SGDまたは 0.001
にとって アダム・オプティマイザ.メトリクスを監視し、必要に応じて調整する。コサイン学習率スケジューラ(cos_lr
)またはウォームアップ(warmup_epochs
, warmup_momentum
).詳細は 鉄道ガイド.
YOLO モデルのデフォルトの推論設定は?
デフォルト設定は以下の通り:
- 信頼しきい値
conf=0.25
):検出の最小信頼度。 - IoUしきい値(
iou=0.7
):について ノンマキシマムサプレッション(NMS). - 画像サイズ
imgsz=640
):入力画像のサイズを変更します。 - デバイス
device=None
):CPU またはGPU選択します。
完全な概要については、Predict SettingsおよびPredict Guideを参照してください。
なぜYOLO モデルを使った混合精度トレーニングを使うのか?
混合精度 トレーニングamp=True
)は、FP16とFP32を使用することで、メモリ使用量を削減し、トレーニングを高速化します。これは最新のGPUにとって有益で、精度を大きく落とすことなく、より大きなモデルと高速な計算を可能にします。詳細は 鉄道ガイド.