Link to this sectionUltralytics YOLOによるモデルベンチマーク#
Link to this sectionベンチマークの可視化#
クッキーの問題によりグラフが正しく表示されない場合は、ページを更新してください。
Link to this sectionはじめに#
モデルの学習と検証が完了したら、次はさまざまな実世界のシナリオでそのパフォーマンスを評価するのが論理的なステップです。Ultralytics YOLO26のベンチマークモードは、この目的のために、幅広いエクスポート形式にわたってモデルの速度と精度を評価するための堅牢なフレームワークを提供します。
Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?
Link to this sectionなぜベンチマークが重要なのか?#
- 情報に基づいた意思決定: 速度と精度のトレードオフに関する洞察を得ることができます。
- リソース配分: さまざまなエクスポート形式が異なるハードウェアでどのように動作するかを把握できます。
- 最適化: 特定のユースケースに対して、どのエクスポート形式が最高のパフォーマンスを提供するかを学習できます。
- コスト効率: ベンチマーク結果に基づいて、ハードウェアリソースをより効率的に活用できます。
Link to this sectionベンチマークモードにおける主要指標#
Link to this sectionサポートされているエクスポート形式#
- ONNX: CPUのパフォーマンスを最適化する場合
- TensorRT: GPUの効率を最大化する場合
- OpenVINO: Intelハードウェアを最適化する場合
- CoreML、TensorFlow SavedModelなど: 多様なデプロイのニーズに対応。
- ONNXまたはOpenVINOにエクスポートすると、CPU速度が最大3倍向上します。
- TensorRTにエクスポートすると、GPU速度が最大5倍向上します。
Link to this section使用例#
ベンチマークを行う前に、必要なパッケージの不足を防ぐため、エクスポートの依存関係を含めて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, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")Link to this section引数#
model、data、imgsz、half、device、verbose、formatといった引数により、ユーザーは自身の特定のニーズに合わせてベンチマークを微調整し、さまざまなエクスポート形式のパフォーマンスを容易に比較できます。
| キー | デフォルト値 | 説明 |
|---|---|---|
model | None | モデルファイルへのパスを指定します。.pt形式と.yaml形式の両方を受け付けます(例: 事前学習済みモデルや設定ファイル用の"yolo26n.pt")。 |
data | None | ベンチマーク用のデータセットを定義するYAMLファイルへのパス。通常、検証データへのパスと設定を含みます。例: "coco8.yaml"。 |
imgsz | 640 | モデルへの入力画像サイズ。正方形の画像の場合は単一の整数(例: 640)である必要があります。benchmark()は正方形の画像サイズのみをサポートします。 |
half | False | FP16(半精度)推論を有効にします。メモリ使用量を削減し、互換性のあるハードウェアでは速度が向上する可能性があります。有効にするにはhalf=Trueを使用してください。 |
int8 | False | サポートされているデバイスでパフォーマンスをさらに最適化するためにINT8量子化を有効にします。特にエッジデバイスで有用です。使用するにはint8=Trueに設定してください。 |
device | 'cpu' | ベンチマークを実行する計算デバイスを指定します(例: "cpu"や"cuda:0")。 |
verbose | False | ログ出力の詳細レベルを制御します。詳細なログが必要な場合はverbose=Trueに設定してください。 |
format | '' | 指定したエクスポート形式のみをベンチマークします(例: format=onnx)。空白のままにすると、サポートされているすべての形式を自動的にテストします。 |
Link to this sectionエクスポート形式#
ベンチマークは、以下にリストされている可能なすべてのエクスポート形式で自動的に実行を試みます。または、format引数を使用して特定の形式のベンチマークを実行することもできます。この引数は以下に記載されている形式のいずれかを受け付けます。
| 形式 | format引数 | モデル | メタデータ | 引数 |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
exportの詳細については、Exportページを参照してください。
Link to this sectionよくある質問 (FAQ)#
Link to this sectionUltralyticsを使用してYOLO26モデルのパフォーマンスをベンチマークするにはどうすればよいですか?#
Ultralytics YOLO26は、モデルのパフォーマンスをさまざまなエクスポート形式で評価するためのベンチマークモードを提供しています。このモードでは、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, half=False, device=0)ベンチマーク引数の詳細については、Argumentsセクションをご覧ください。
Link to this sectionYOLO26モデルをさまざまな形式にエクスポートする利点は何ですか?#
YOLO26モデルをONNX、TensorRT、OpenVINOなどのさまざまな形式にエクスポートすることで、デプロイ環境に応じてパフォーマンスを最適化できます。例えば、以下の通りです:
- ONNX: CPU速度が最大3倍向上します。
- TensorRT: GPU速度が最大5倍向上します。
- OpenVINO: Intelハードウェア向けに特別に最適化されています。
これらの形式はモデルの速度と精度の両方を向上させ、さまざまな実世界のアプリケーションにおいてより効率的に動作させます。詳細については、Exportページを参照してください。
Link to this sectionYOLO26モデルの評価においてベンチマークが重要な理由は何ですか?#
YOLO26モデルのベンチマークが不可欠である理由はいくつかあります:
- 情報に基づいた意思決定: 速度と精度のトレードオフを理解できます。
- リソース割り当て: 異なるハードウェアオプション全体でのパフォーマンスを測定できます。
- 最適化: 特定のユースケースに対してどのエクスポート形式が最高のパフォーマンスを提供するかを判断できます。
- コスト効率: ベンチマーク結果に基づいてハードウェアの使用を最適化できます。
mAP50-95、Top-1 accuracy、推論時間などの主要な指標は、これらの評価を行う上で役立ちます。詳細については、主要な指標のセクションを参照してください。
Link to this sectionYOLO26ではどのエクスポート形式がサポートされており、それぞれの利点は何ですか?#
YOLO26はさまざまなエクスポート形式をサポートしており、それぞれが特定のハードウェアやユースケースに合わせて調整されています:
- ONNX: CPUパフォーマンスに最適です。
- TensorRT: GPUの効率化に最適です。
- OpenVINO: Intelハードウェア用に最適化されています。
- CoreML & TensorFlow: iOSや一般的なMLアプリケーションに役立ちます。
サポートされている形式の完全なリストとその利点については、Supported Export Formatsセクションを確認してください。
Link to this sectionYOLO26のベンチマークを微調整するために使用できる引数は何ですか?#
ベンチマークを実行する際、特定のニーズに合わせていくつかの引数をカスタマイズできます:
- model: モデルファイルへのパス(例:「yolo26n.pt」)。
- data: データセットを定義するYAMLファイルへのパス(例:「coco8.yaml」)。
- imgsz: 入力画像サイズ。単一の整数またはタプルで指定します。
- half: パフォーマンス向上のため、FP16推論を有効にします。
- int8: エッジデバイス向けにINT8量子化を有効にします。
- device: 計算デバイスを指定します(例:「cpu」、「cuda:0」)。
- verbose: ログ出力の詳細レベルを制御します。
引数の全リストについては、Argumentsセクションを参照してください。