コンテンツへスキップ

モデル検証Ultralytics YOLO

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 detect val model=yolov8n.pt  # val official model
yolo detect val model=path/to/best.pt  # val custom model

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 もし TrueOpenCVのDNNモジュールは、ONNX モデル推論に使用され、PyTorch 推論手法の代替となる。
plots bool False に設定した場合 Trueまた、モデルの性能を視覚的に評価するために、予測値とグランドトゥルースのプロットを生成し、保存します。
rect bool False もし True矩形推論をバッチングに使用することで、パディングを減らし、スピードと効率を向上させる可能性がある。
split str val 検証に使うデータセットの分割を決定する (val, testあるいは train).性能評価用のデータセグメントを柔軟に選択できる。

これらの各設定は、検証プロセスにおいて重要な役割を果たし、YOLO モデルのカスタマイズ可能で効率的な評価を可能にします。特定のニーズやリソースに応じてこれらのパラメータを調整することで、精度と性能の最適なバランスを達成することができます。

引数によるバリデーションの例

以下の例では、Python とCLI のカスタム引数を使用したYOLO モデルの検証を紹介します。

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')

# Customize validation settings
validation_results = model.val(data='coco8.yaml',
                               imgsz=640,
                               batch=16,
                               conf=0.25,
                               iou=0.6,
                               device='0')
yolo val model=yolov8n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0


作成日:2023-11-12 更新日:2024-04-18
著者:Glenn-Jocher(9),Burhan-Q(1),RizwanMunawar(1)

コメント