コンテンツへスキップ

モデル・ベンチマークUltralytics YOLO

Ultralytics YOLO エコシステムと統合

はじめに

モデルの学習と検証が完了したら、次の論理的なステップは、さまざまな実世界のシナリオでそのパフォーマンスを評価することです。Ultralytics YOLOv8 のベンチマークモードは、様々なエクスポートフォーマットでモデルのスピードと精度を評価するための堅牢なフレームワークを提供することで、この目的に役立ちます。



見るんだ: Ultralytics モードのチュートリアルベンチマーク

なぜベンチマーキングが重要なのか?

  • 情報に基づいた決断:スピードと精度のトレードオフに関する洞察を得る。
  • リソースの割り当て:異なるエクスポート・フォーマットが異なるハードウェア上でどのように動作するかを理解する。
  • 最適化:特定のユースケースに最適なパフォーマンスを提供するエクスポート形式をご覧ください。
  • コスト効率:ベンチマークの結果に基づき、ハードウェアリソースをより効率的に使用します。

ベンチマークモードでの主要指標

  • mAP50-95:物体検出、セグメンテーション、姿勢推定用。
  • accuracy_top5:画像分類用。
  • 推論時間:各画像にかかった時間(ミリ秒単位)。

対応エクスポート形式

  • ONNX:最適なCPUパフォーマンスのために
  • TensorRT:GPU効率を最大化する
  • OpenVINO:インテルハードウェアの最適化
  • CoreML TensorFlow SavedModel など:多様な配備ニーズに対応

チップ

  • ONNX またはOpenVINO にエクスポートして、CPUを最大3倍高速化。
  • 最大5倍のGPUスピードアップのためにTensorRT 。

使用例

ONNX,TensorRT など、サポートされているすべてのエクスポート・フォーマットでYOLOv8n ベンチマークを実行する。エクスポート引数の完全なリストについては、以下の引数のセクションを参照してください。

例

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model='yolov8n.pt', data='coco8.yaml', imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

論争

などの議論がある。 model, data, imgsz, half, deviceそして verbose は、ベンチマークを特定のニーズに合わせて微調整し、異なるエクスポート形式のパフォーマンスを簡単に比較できる柔軟性をユーザーに提供します。

キー デフォルト値 説明
model None モデルファイルへのパスを指定します。以下の両方を受け入れます。 .pt そして .yaml などの形式がある、 "yolov8n.pt" 訓練済みモデルや設定ファイル
data None ベンチマーク用のデータセットを定義するYAMLファイルへのパス。通常、検証データのパスと設定を含む。例 "coco128.yaml".
imgsz 640 モデルの入力画像サイズ。正方形画像の場合は1つの整数,正方形画像の場合は1つのタプルになります. (width, height) 非正方形の場合、 (640, 480).
half False FP16(半精度)推論を有効にし、メモリ使用量を削減し、互換性のあるハードウェアでは速度を向上させることができる。使用方法 half=True を有効にする。
int8 False INT8 量子化を有効にすることで、サポートされているデバイスのパフォーマンスがさらに最適化されます。設定 int8=True を使用する。
device None ベンチマーク用の計算デバイスを定義します。 "cpu", "cuda:0"のようなデバイスのリストがある。 "cuda:0,1" マルチGPUセットアップ用。
verbose False ロギング出力の詳細レベルを制御する。ブール値。 verbose=True は詳細なログを、float は閾値エラーを表示する。

輸出フォーマット

ベンチマークは、以下のすべての可能なエクスポートフォーマットで自動的に実行されます。

フォーマット format 議論 モデル メタデータ 論争
PyTorch - yolov8n.pt ✅ -
TorchScript torchscript yolov8n.torchscript ✅ imgsz, optimize
ONNX onnx yolov8n.onnx ✅ imgsz, half, dynamic, simplify, opset
OpenVINO openvino yolov8n_openvino_model/ ✅ imgsz, half, int8
TensorRT engine yolov8n.engine ✅ imgsz, half, dynamic, simplify, workspace
CoreML coreml yolov8n.mlpackage ✅ imgsz, half, int8, nms
TF SavedModel saved_model yolov8n_saved_model/ ✅ imgsz, keras, int8
TF GraphDef pb yolov8n.pb ❌ imgsz
TF ライト tflite yolov8n.tflite ✅ imgsz, half, int8
TF エッジTPU edgetpu yolov8n_edgetpu.tflite ✅ imgsz
TF.js tfjs yolov8n_web_model/ ✅ imgsz, half, int8
PaddlePaddle paddle yolov8n_paddle_model/ ✅ imgsz
NCNN ncnn yolov8n_ncnn_model/ ✅ imgsz, half

詳細を見る export 詳細は 輸出 ページを参照されたい。



作成日:2023-11-12 更新日:2024-03-01
作成者:glenn-jocher(10),chr043416@gmail.com(1),Laughing-q(1),maianumerosky(1)

コメント