コンテンツへスキップ

モデル検証Ultralytics YOLO

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 detect val model=yolo11n.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 バッチあたりの画像数を設定します。値が高いほどGPU メモリを効率的に利用できますが、より多くのVRAMを必要とします。利用可能なハードウェアリソースに基づいて調整します。
save_json bool False もし Trueさらに分析したり、他のツールと統合したり、COCOのような評価サーバーに提出したりするために、JSONファイルに結果を保存します。
save_hybrid bool False もし Trueラベルのハイブリッドバージョンは、元の注釈と追加モデルの予測を組み合わせて保存します。半教師付き学習やデータセットの強化に役立ちます。
conf float 0.001 検出の最小信頼しきい値を設定する。値が低いほどリコールは高くなるが、誤検出が増える可能性がある。検証時に精度-再現率曲線を計算するために使用する。
iou float 0.6 Non-Maximum SuppressionIntersection 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 モデルの検証を紹介します。

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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=yolo11n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0

よくあるご質問

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)を使うこともできます:

yolo val model=yolo11n.pt

さらにカスタマイズするには、次のようなさまざまな引数を調整できます。 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 を使った例:

yolo val model=yolo11n.pt data=path/to/your/custom_dataset.yaml

バリデーション中のカスタマイズ可能なオプションについては、引数を使ったバリデーションの例を参照してください。

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 val model=yolo11n.pt save_json=True

この機能は、さらなる分析や他のツールとの統合に特に役立ちます。詳細については、 YOLO モデル検証の引数をチェックしてください。

📅作成:1年前 ✏️更新 3日前

コメント