Ultralytics YOLOによるモデルベンチマーク#
ベンチマークの可視化#
クッキーの問題によりグラフが正しく表示されない場合は、ページを更新してください。
はじめに#
モデルのトレーニングと検証が完了したら、次の論理的なステップは、さまざまな現実のシナリオにおけるパフォーマンスを評価することです。Ultralytics YOLO26のBenchmarkモードは、さまざまなエクスポート形式にわたるモデルの速度とaccuracyを評価するための堅牢なフレームワークを提供することで、この目的に役立ちます。
Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?
なぜベンチマークが重要なのか?#
- 情報に基づいた意思決定: 速度と精度のトレードオフに関する洞察を得ることができます。
- リソース配分: さまざまなエクスポート形式が異なるハードウェアでどのように動作するかを把握できます。
- 最適化: 特定のユースケースに対して、どのエクスポート形式が最高のパフォーマンスを提供するかを学習できます。
- コスト効率: ベンチマーク結果に基づいて、ハードウェアリソースをより効率的に活用できます。
ベンチマークモードにおける主要指標#
- mAP50-95: object detection、セグメンテーション、および姿勢推定用。
- accuracy_top1: image classification用。
- 推論時間: 各画像に対する処理時間(ミリ秒)。
サポートされているエクスポート形式#
- ONNX: CPUのパフォーマンスを最適化する場合
- TensorRT: GPUの効率を最大化する場合
- OpenVINO: Intelハードウェアを最適化する場合
- CoreML、TensorFlow SavedModelなど: 多様なデプロイのニーズに対応。
- ONNXまたはOpenVINOにエクスポートすると、CPU速度が最大3倍向上します。
- TensorRTにエクスポートすると、GPU速度が最大5倍向上します。
使用例#
ベンチマークを行う前に、必要なパッケージの不足を防ぐため、エクスポートの依存関係を含めてUltralyticsをインストールしてください。
pip install ultralytics[export]すべてのサポートされているエクスポート形式(ONNX、TensorRTなど)でYOLO26nのベンチマークを実行します。エクスポートオプションの全リストについては、以下の引数セクションを参照してください。
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)
# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")引数#
model、data、imgsz、quantize、device、verbose、formatなどの引数を使用すると、ユーザーは特定のニーズに合わせてベンチマークを微調整し、異なるエクスポート形式のパフォーマンスを簡単に比較できます。
| キー | デフォルト値 | 説明 |
|---|---|---|
model | None | モデルファイルのパスを指定します。.pt と .yaml の両方のフォーマットを受け付けます(例: 事前学習済みモデルや設定ファイル用の "yolo26n.pt")。 |
data | None | ベンチマーク用のデータセットYAMLへのパスであり、通常はvalidation dataのパスと設定が含まれます。例: "coco8.yaml"。分類の場合は、代わりにデータセットディレクトリまたは組み込みのデータセット名を受け入れます (例: imagenet10)。 |
imgsz | 640 | モデルの入力画像サイズ。正方形の画像の場合は単一の整数である必要があります(例:640)。benchmark() は正方形の画像サイズのみをサポートします。 |
quantize | None | 量子化精度:16(FP16)または 8(INT8/PTQ。キャリブレーション data / fraction が必要);32 / 未設定はFP32です。非推奨となった half / int8 フラグに置き換わるものです。 |
device | 'cpu' | ベンチマーク用の計算デバイス("cpu" や "cuda:0" など)を定義します。 |
verbose | False | ログ出力の詳細レベルを制御します。詳細なログを出力するには verbose=True を設定します。 |
eps | 0.001 | FPSへの変換前に画像ごとの推論時間へ加算される小さなイプシロン(ミリ秒)です。ゼロ除算を防ぐために使用されます。変更することはほとんどありません。 |
format | '' | 指定されたエクスポート形式のみをベンチマークします(例:format=onnx)。サポートされているすべての形式を自動的にテストするには、空白のままにします。 |
単体の benchmark() 関数(from ultralytics.utils.benchmarks import benchmark)は、上記の表の値ではなく独自のシグネチャのデフォルト値を使用します。特に model="yolo26n.pt" や imgsz=160 が該当します。yolo benchmark CLI と一致させるには、imgsz を明示的に渡してください。
エクスポート形式#
ベンチマークは、以下にリストされているすべての可能なエクスポート形式で自動的に実行されます。または、言及されている形式のいずれかを受け付ける format 引数を使用して、特定の形式のベンチマークを実行することもできます。
| 形式 | format 引数 | モデル | メタデータ | 引数 |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, quantize, dynamic, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz、quantize、dynamic、simplify、opset、nms、batch、data、fraction、device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz、quantize、dynamic、nms、batch、data、fraction、device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz、quantize、dynamic、simplify、opset、workspace、nms、batch、data、fraction、device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz、keras、quantize、opset、nms、batch、data、fraction、device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, opset, batch, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, quantize, opset, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz、batch、device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz、batch、dynamic、quantize、simplify、opset、nms、device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz、batch、name、quantize、simplify、opset、data、fraction、device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz、batch、device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, quantize, simplify, opset, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn.onnx | ✅ | imgsz、batch、name、quantize、simplify、opset、data、fraction、device |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz、name、quantize、data、fraction、simplify、conf、iou |
| Huawei Ascend | ascend | yolo26n_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms |
詳細な export については、Export ページをご覧ください。
よくある質問 (FAQ)#
Ultralyticsを使用してYOLO26モデルのパフォーマンスをベンチマークするにはどうすればよいですか?#
Ultralytics YOLO26には、さまざまなエクスポート形式にわたるモデルのパフォーマンスを評価するためのBenchmarkモードが用意されています。このモードにより、mean Average Precision(mAP50-95)、精度、ミリ秒単位の推論時間などの主要な指標に関する洞察を得ることができます。ベンチマークを実行するには、PythonまたはCLIコマンドを使用できます。たとえば、GPUでベンチマークを実行するには:
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)ベンチマークの引数の詳細については、Arguments セクションをご覧ください。
YOLO26モデルをさまざまな形式にエクスポートする利点は何ですか?#
YOLO26モデルを ONNX、TensorRT、OpenVINO などの異なる形式にエクスポートすることで、デプロイ環境に基づいてパフォーマンスを最適化できます。例:
- ONNX: CPU速度が最大3倍向上します。
- TensorRT: GPU速度が最大5倍向上します。
- OpenVINO: Intelハードウェア向けに特別に最適化されています。
これらの形式により、モデルの速度と精度の両方が向上し、さまざまな現実のアプリケーションでより効率的になります。詳細は Export ページをご覧ください。
YOLO26モデルの評価においてベンチマークが重要な理由は何ですか?#
YOLO26モデルのベンチマークが不可欠である理由はいくつかあります:
- 情報に基づいた意思決定: 速度と精度のトレードオフを理解できます。
- リソース割り当て: 異なるハードウェアオプション全体でのパフォーマンスを測定できます。
- 最適化: 特定のユースケースに対してどのエクスポート形式が最高のパフォーマンスを提供するかを判断できます。
- コスト効率: ベンチマーク結果に基づいてハードウェアの使用を最適化できます。
mAP50-95、Top-1精度、推論時間などの主要な指標は、これらの評価を行う際に役立ちます。詳細については、Key Metrics セクションをご参照ください。
YOLO26ではどのエクスポート形式がサポートされており、それぞれの利点は何ですか?#
YOLO26はさまざまなエクスポート形式をサポートしており、それぞれが特定のハードウェアやユースケースに合わせて調整されています:
- ONNX: CPUパフォーマンスに最適です。
- TensorRT: GPUの効率化に最適です。
- OpenVINO: Intelハードウェア用に最適化されています。
- CoreML & TensorFlow: iOSおよび一般的なMLアプリケーションに役立ちます。
サポートされている形式の完全なリストとそれぞれの利点については、Supported Export Formats セクションをご確認ください。
YOLO26のベンチマークを微調整するために使用できる引数は何ですか?#
ベンチマークを実行する際、特定のニーズに合わせていくつかの引数をカスタマイズできます:
- model: モデルファイルへのパス(例:「yolo26n.pt」)。
- data: データセットYAMLへのパス (例:
"coco8.yaml"); 分類の場合は、代わりにデータセットディレクトリまたは組み込みのデータセット名を受け入れます (例:imagenet10)。 - imgsz:
640のような単一の整数としての正方形の入力画像サイズ。Benchmark modeでは、公平な比較のためにPyTorchとエクスポートされた形式の間で同じ正方形の画像サイズを使用します。 - quantize: 量子化精度:FP16の場合は
16、INT8の場合は8(エッジデバイスに便利)、32/ 未設定はFP32です。 - device: 計算デバイスを指定します(例:「cpu」、「cuda:0」)。
- verbose: ログ出力の詳細レベルを制御します。
引数の完全なリストについては、Arguments セクションをご参照ください。