モデル検証Ultralytics YOLO
はじめに
検証は機械学習パイプラインの重要なステップであり、学習したモデルの品質を評価することができます。Ultralytics YOLOv8 の Val モードは、オブジェクト検出モデルのパフォーマンスを評価するための、堅牢なツールとメトリクスのスイートを提供します。このガイドは、モデルが正確で信頼できることを保証するために、Valモードを効果的に使用する方法を理解するための完全なリソースとなります。
見るんだ: Ultralytics モードのチュートリアルバリデーション
なぜUltralytics YOLO で検証するのか?
YOLOv8 のバル・モードが有利な理由は以下の通り:
- 精度:mAP50、mAP75、mAP50-95のような正確なメトリクスを取得し、モデルを総合的に評価します。
- 利便性:トレーニング設定を記憶する内蔵機能を活用し、検証プロセスを簡素化。
- 柔軟性:同じまたは異なるデータセットと画像サイズでモデルを検証します。
- ハイパーパラメータのチューニング:検証メトリクスを使用して、より良いパフォーマンスのためにモデルを微調整します。
バル・モードの主な特徴
これらは、YOLOv8 「ヴァル」モードが提供する特筆すべき機能である:
- 自動設定:モデルはトレーニングの設定を記憶し、検証を容易にします。
- マルチメトリックサポート:さまざまな精度メトリクスに基づいてモデルを評価します。
- CLI およびPython APIを使用しています:コマンドラインインターフェイスまたはPython APIから、検証のお好みに応じてお選びください。
- データ互換性:トレーニング段階で使用されたデータセットだけでなく、カスタムデータセットでもシームレスに動作します。
チップ
- YOLOv8 モデルは自動的にトレーニング設定を記憶するので、同じ画像サイズと元のデータセットでモデルを検証することができます。
yolo val model=yolov8n.pt
またはmodel('yolov8n.pt').val()
使用例
COCO8 データセットで学習済みYOLOv8n モデルの精度を検証する。として引数を渡す必要はない。 model
トレーニング data
と引数をモデル属性として使用します。エクスポート引数の完全なリストについては、以下の引数のセクションを参照してください。
例
from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n.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メモリの利用可能性に基づいて自動的に調整されるAutoBatch用。 |
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 OpenCVのDNNモジュールは、ONNX モデル推論に使用され、PyTorch 推論手法の代替となる。 |
plots |
bool |
False |
に設定した場合 True また、モデルの性能を視覚的に評価するために、予測値とグランドトゥルースのプロットを生成し、保存します。 |
rect |
bool |
False |
もし True 矩形推論をバッチングに使用することで、パディングを減らし、スピードと効率を向上させる可能性がある。 |
split |
str |
val |
検証に使うデータセットの分割を決定する (val , test あるいは train ).性能評価用のデータセグメントを柔軟に選択できる。 |
これらの各設定は、検証プロセスにおいて重要な役割を果たし、YOLO モデルのカスタマイズ可能で効率的な評価を可能にします。特定のニーズやリソースに応じてこれらのパラメータを調整することで、精度と性能の最適なバランスを達成することができます。
引数によるバリデーションの例
以下の例では、Python とCLI のカスタム引数を使用したYOLO モデルの検証を紹介します。
例