モデル検証Ultralytics YOLO
はじめに
検証は機械学習パイプラインの重要なステップであり、学習したモデルの品質を評価することができます。Ultralytics YOLO11 の Val モードは、オブジェクト検出モデルのパフォーマンスを評価するための、堅牢なツールとメトリクスのスイートを提供します。このガイドは、モデルが正確で信頼できることを保証するために、Valモードを効果的に使用する方法を理解するための完全なリソースとなります。
見るんだ: Ultralytics モードのチュートリアルバリデーション
なぜUltralytics YOLO で検証するのか?
YOLO11 のバル・モードが有利な理由は以下の通りだ:
- 精度:mAP50、mAP75、mAP50-95のような正確なメトリクスを取得し、モデルを総合的に評価します。
- 利便性:トレーニング設定を記憶する内蔵機能を活用し、検証プロセスを簡素化。
- 柔軟性:同じまたは異なるデータセットと画像サイズでモデルを検証します。
- ハイパーパラメータのチューニング:検証メトリクスを使用して、より良いパフォーマンスを得るためにモデルを微調整します。
バル・モードの主な特徴
これらは、YOLO11 「ヴァル」モードが提供する特筆すべき機能である:
- 自動設定:モデルはトレーニングの設定を記憶し、検証を容易にします。
- マルチメトリックサポート:さまざまな精度メトリクスに基づいてモデルを評価します。
- CLI およびPython APIを使用しています:コマンドラインインターフェイスまたはPython APIから、検証のお好みに応じてお選びください。
- データ互換性:トレーニング段階で使用されたデータセットだけでなく、カスタムデータセットでもシームレスに動作します。
チップ
- YOLO11 モデルは自動的にトレーニング設定を記憶するので、同じ画像サイズと元のデータセットでモデルを検証することができます。
yolo val model=yolo11n.pt
またはmodel('yolo11n.pt').val()
使用例
学習済みYOLO11nモデルの検証 精度 をCOCO8データセットに適用した。引数は必要ない。 model
トレーニング data
と引数をモデル属性として指定します。検証引数の完全なリストについては、以下の引数のセクションを参照してください。
例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list contains map50-95 of each category
YOLO モデル検証の論拠
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 モデルのカスタマイズ可能で効率的な評価を可能にします。特定のニーズやリソースに応じてこれらのパラメータを調整することで、精度と性能の最適なバランスを達成することができます。
引数によるバリデーションの例
以下の例では、Python とCLI のカスタム引数を使用したYOLO モデルの検証を紹介します。
例
よくあるご質問
Ultralytics を使ってYOLO11 モデルを検証するには?
YOLO11 モデルの検証には、Ultralytics が提供する Val モードを使用することができる。例えば、Python APIを使って、モデルをロードし、検証を実行することができます:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Validate the model
metrics = model.val()
print(metrics.box.map) # map50-95
また、コマンドラインインターフェイス(CLI)を使うこともできます:
さらにカスタマイズするには、次のようなさまざまな引数を調整できます。 imgsz
, batch
そして conf
Python とCLI の両方のモードで。をチェックする。 YOLO モデル検証の論拠 セクションを参照のこと。
YOLO11 モデル検証からどのような指標を得ることができますか?
YOLO11 モデルの検証は、モデルの性能を評価するためのいくつかの重要な指標を提供する。これらには以下が含まれる:
- mAP50(IoU閾値0.5における平均平均精度)
- mAP75(IoU閾値0.75における平均平均精度)
- mAP50-95(0.5~0.95の複数のIoUしきい値にわたる平均精度)
Python API を使用すると、以下のようにこれらのメトリクスにアクセスできます:
metrics = model.val() # assumes `model` has been loaded
print(metrics.box.map) # mAP50-95
print(metrics.box.map50) # mAP50
print(metrics.box.map75) # mAP75
print(metrics.box.maps) # list of mAP50-95 for each category
完全なパフォーマンス評価のためには、これらの指標をすべて見直すことが極めて重要である。詳細については、「バル・モードの主な特徴」を参照。
Ultralytics YOLO を検証に使用する利点は何ですか?
Ultralytics YOLO を検証に使用すると、いくつかの利点がある:
- 精度: YOLO11 は、mAP50、mAP75、mAP50-95を含む正確な性能指標を提供します。
- 利便性:モデルはトレーニング設定を記憶しているので、検証は簡単です。
- 柔軟性:同一または異なるデータセットや画像サイズに対して検証できます。
- ハイパーパラメータのチューニング:検証メトリクスは、より良いパフォーマンスを得るためにモデルを微調整するのに役立ちます。
これらの利点により、モデルが徹底的に評価され、優れた結果を得るために最適化されることが保証されます。これらの利点については、 Ultralytics YOLO で検証する理由をご覧ください。
カスタムデータセットを使ってYOLO11 モデルを検証できますか?
はい、YOLO11 のモデルを検証することができます。 カスタムデータセット.を指定する。 data
引数に、データセット設定ファイルへのパスを指定する。このファイルには 検証データクラス名、その他関連する詳細。
Python の例:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Validate with a custom dataset
metrics = model.val(data="path/to/your/custom_dataset.yaml")
print(metrics.box.map) # map50-95
CLI を使った例:
バリデーション中のカスタマイズ可能なオプションについては、引数を使ったバリデーションの例を参照してください。
YOLO11 、検証結果をJSONファイルに保存するには?
検証結果をJSONファイルに保存するには save_json
引数 True
を実行する。これはPython API とCLI の両方で実行できる。
Python の例:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Save validation results to JSON
metrics = model.val(save_json=True)
CLI を使った例:
この機能は、さらなる分析や他のツールとの統合に特に役立ちます。詳細については、 YOLO モデル検証の引数をチェックしてください。