コンテンツぞスキップ

モデル怜蚌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 メモリの可甚性に基づいお自動的に調敎されたす。
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

よくあるご質問

Ultralytics を䜿っおYOLOv8 モデルを怜蚌するには

YOLOv8 モデルの怜蚌には、Ultralytics が提䟛する Val モヌドを䜿うこずができる。䟋えば、Python APIを䜿っお、モデルをロヌドし、怜蚌を実行するこずができたす

from ultralytics import YOLO

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

# Validate the model
metrics = model.val()
print(metrics.box.map)  # map50-95

たた、コマンドラむンむンタヌフェむス(CLI)を䜿うこずもできたす

yolo val model=yolov8n.pt

さらにカスタマむズするには、次のようなさたざたな匕数を調敎できたす。 imgsz, batchそしお conf Python ずCLI の䞡方のモヌドで。をチェックする。 YOLO モデル怜蚌の論拠 セクションを参照のこず。

YOLOv8 モデル怜蚌からどのような指暙を埗るこずができたすか

YOLOv8 モデルの怜蚌は、モデルの性胜を評䟡するためのいく぀かの重芁な指暙を提䟛する。これらには以䞋が含たれる

  • 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 を怜蚌に䜿甚するず、いく぀かの利点がある

  • 粟床 YOLOv8 は、mAP50、mAP75、mAP50-95を含む正確な性胜指暙を提䟛したす。
  • 利䟿性モデルは孊習蚭定を蚘憶しおいるため、怜蚌は簡単です。
  • 柔軟性同䞀たたは異なるデヌタセットや画像サむズに察しお怜蚌できたす。
  • ハむパヌパラメヌタのチュヌニング怜蚌メトリクスは、より良いパフォヌマンスのためにモデルを埮調敎するのに圹立ちたす。

これらの利点により、モデルが培底的に評䟡され、優れた結果を埗るために最適化されるこずが保蚌されたす。これらの利点に぀いおは、 Ultralytics YOLO で怜蚌する理由をご芧ください。

カスタムデヌタセットを䜿っおYOLOv8 モデルを怜蚌できたすか

はい、カスタムデヌタセットを䜿甚しおYOLOv8 モデルを怜蚌するこずができたす。その堎合は data 匕数にデヌタセット蚭定ファむルぞのパスを指定したす。このファむルには、怜蚌デヌタぞのパス、クラス名、その他の関連する詳现を含める必芁がありたす。

Python の䟋

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.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=yolov8n.pt data=path/to/your/custom_dataset.yaml

バリデヌション䞭のカスタマむズ可胜なオプションに぀いおは、匕数を䜿ったバリデヌションの䟋を参照しおください。

YOLOv8 、怜蚌結果をJSONファむルに保存するには

怜蚌結果をJSONファむルに保存するには save_json 匕数 True を実行する。これはPython API ずCLI の䞡方で行うこずができる。

Python の䟋

from ultralytics import YOLO

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

# Save validation results to JSON
metrics = model.val(save_json=True)

CLI を䜿った䟋

yolo val model=yolov8n.pt save_json=True

この機胜は、さらなる分析や他のツヌルずの統合に特に圹立ちたす。詳现に぀いおは、 YOLO モデル怜蚌の匕数をチェックしおください。



䜜成日2023-11-12 曎新日2024-07-04
著者glenn-jocher(14),Burhan-Q(1),RizwanMunawar(1)

コメント