モデル検証Ultralytics YOLO
はじめに
検証は機械学習パイプラインの重要なステップであり、学習したモデルの品質を評価することができます。Ultralytics YOLO11の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 | バッチあたりの画像数を設定します。使用方法 -1 オートバッチは、GPU メモリの可用性に基づいて自動的に調整されます。 |
save_json | bool | False | もし True さらに分析したり、他のツールと統合したりするために、結果をJSONファイルに保存します。 |
save_hybrid | bool | False | もし True ラベルのハイブリッドバージョンは、元のアノテーションと追加モデルの予測を組み合わせて保存します。 |
conf | float | 0.001 | 検出の最小信頼度閾値を設定する。この閾値以下の信頼度の検出は破棄される。 |
iou | float | 0.6 | Non-Maximum Suppression(NMS)のIntersection Over Union(IoU)しきい値を設定します。重複検出の低減に役立ちます。 |
max_det | int | 300 | 画像あたりの最大検出数を制限します。密なシーンで過剰な検出を防ぐのに便利です。 |
half | bool | True | 半精度(FP16)計算が可能になり、メモリ使用量が削減され、精度への影響を最小限に抑えながら速度が向上する可能性があります。 |
device | str | None | 検証用デバイスを指定する (cpu , cuda:0 など)。CPU またはGPU のリソースを柔軟に利用できる。 |
dnn | bool | False | もし True を使用している。 オープンCV ONNX モデル推論のためのDNNモジュール。 PyTorch 推論方法。 |
plots | bool | False | に設定した場合 True また、モデルの性能を視覚的に評価するために、予測値とグランドトゥルースのプロットを生成し、保存します。 |
rect | bool | True | もし True 矩形推論をバッチングに使用することで、パディングを減らし、スピードと効率を向上させる可能性がある。 |
split | str | val | 検証に使うデータセットの分割を決定する (val , test あるいは train ).性能評価用のデータセグメントを柔軟に選択できる。 |
project | str | None | 検証出力が保存されるプロジェクト・ディレクトリの名前。 |
name | str | None | 検証実行の名前。プロジェクトフォルダ内にサブディレクトリを作成し、そこに検証ログと出力を保存します。 |
これらの各設定は、検証プロセスにおいて重要な役割を果たし、YOLO モデルのカスタマイズ可能で効率的な評価を可能にします。特定のニーズやリソースに応じてこれらのパラメータを調整することで、精度と性能の最適なバランスを達成することができます。
引数によるバリデーションの例
以下の例では、Python とCLI のカスタム引数を使用したYOLO モデルの検証を紹介します。
例
よくあるご質問
YOLO11モデルをUltralytics で検証するには?
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モデルを検証できますか?
はい。 カスタムデータセット.を指定する。 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 モデル検証の引数をチェックしてください。