モデル・エクスポートUltralytics YOLO
はじめに
モデルをトレーニングする最終的な目標は、実世界のアプリケーションにモデルを導入することです。Ultralytics YOLOv8 のエクスポートモードでは、トレーニングしたモデルをさまざまなフォーマットにエクスポートするための多彩なオプションを提供し、さまざまなプラットフォームやデバイスに展開できるようにします。この包括的なガイドは、モデルのエクスポートのニュアンスを説明し、最大の互換性とパフォーマンスを達成する方法を紹介することを目的としています。
見るんだ: カスタム学習Ultralytics YOLOv8 モデルをエクスポートし、ウェブカメラ上でライブ推論を実行する方法。
なぜYOLOv8 のエクスポート・モードを選ぶのか?
- 汎用性: ONNX,TensorRT,CoreML, などを含む複数のフォーマットにエクスポート。
- パフォーマンス: TensorRT 、GPUを最大5倍高速化し、ONNX またはOpenVINO 、CPUを最大3倍高速化する。
- 互換性:多数のハードウェアおよびソフトウェア環境において、モデルを普遍的に展開できるようにします。
- 使いやすさ:シンプルなCLI 、Python APIにより、素早く簡単にモデルをエクスポートできます。
エクスポート・モードの主な特徴
ここでは、目立った機能をいくつか紹介しよう:
- ワンクリックエクスポート:簡単なコマンドで様々なフォーマットにエクスポートできます。
- バッチエクスポート:バッチ推論可能なモデルをエクスポートします。
- 最適化された推論:エクスポートされたモデルは、推論時間を短縮するために最適化されています。
- チュートリアルビデオ:スムーズな書き出しのための詳細なガイドとチュートリアル。
チップ
- ONNX またはOpenVINO にエクスポートして、CPUを最大3倍高速化。
- 最大5倍のGPUスピードアップのためにTensorRT 。
使用例
YOLOv8n モデルをONNX やTensorRT のような別のフォーマットにエクスポートする。 エクスポート引数の完全なリストについては、以下の引数のセクションを参照のこと。
例
論争
この表は、YOLO のモデルをさまざまなフォーマットにエクスポートする際に利用できる設定とオプションの詳細を示しています。これらの設定は、エクスポートされたモデルのパフォーマンス、サイズ、さまざまなプラットフォームや環境での互換性を最適化するために重要です。適切な設定を行うことで、モデルが最適な効率で目的のアプリケーションに展開できるようになります。
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
format |
str |
'torchscript' |
エクスポートされるモデルのターゲットフォーマット。 'onnx' , 'torchscript' , 'tensorflow' など、さまざまな展開環境との互換性を定義している。 |
imgsz |
int または tuple |
640 |
モデル入力に必要な画像サイズ。正方形画像の場合は整数,正方形画像の場合はタプルになります. (height, width) 具体的な寸法については |
keras |
bool |
False |
TensorFlow SavedModel 用の Keras フォーマットへのエクスポートを可能にし、TensorFlow サービングや API との互換性を提供します。 |
optimize |
bool |
False |
TorchScript へのエクスポート時にモバイルデバイス向けの最適化を適用し、モデルサイズを縮小してパフォーマンスを向上させる可能性があります。 |
half |
bool |
False |
FP16(半精度)量子化を有効にし、モデルサイズを縮小し、サポートされているハードウェアでの推論を高速化する可能性があります。 |
int8 |
bool |
False |
INT8量子化を有効にすることで、モデルをさらに圧縮し、主にエッジデバイスに対して、最小限の精度損失で推論を高速化する。 |
dynamic |
bool |
False |
ONNX 、TensorRT エクスポートのための動的な入力サイズを可能にし、さまざまな画像寸法を扱う柔軟性を高めます。 |
simplify |
bool |
False |
ONNX エクスポートのモデルグラフが簡素化され、パフォーマンスと互換性が向上する可能性があります。 |
opset |
int |
None |
異なるONNX パーサーやランタイムとの互換性のために、ONNX のオペセットのバージョンを指定します。設定されていない場合は、サポートされている最新のバージョンを使用します。 |
workspace |
float |
4.0 |
TensorRT 最適化のための最大ワークスペース・サイズを GB 単位で設定し、メモリ使用量とパフォーマンスのバランスをとる。 |
nms |
bool |
False |
正確で効率的な検出の後処理に不可欠な非最大抑制(NMS)をCoreML エクスポートに追加します。 |
batch |
int |
1 |
エクスポートモデルのバッチ推論サイズ、またはエクスポートされたモデルが同時に処理する画像の最大数を指定します。 predict モードだ。 |
これらのパラメータを調整することで、展開環境、ハードウェアの制約、パフォーマンス目標など、特定の要件に合わせてエクスポートプロセスをカスタマイズすることができます。適切なフォーマットと設定を選択することは、モデルサイズ、スピード、精度の最適なバランスを実現するために不可欠です。
輸出フォーマット
利用可能なYOLOv8 エクスポート形式は以下の表の通りです。どのフォーマットでも format
引数、すなわち format='onnx'
または format='engine'
.エクスポートされたモデルを直接予測または検証することができます。 yolo predict model=yolov8n.onnx
.使用例は、エクスポート完了後に表示されます。
フォーマット | format 議論 |
モデル | メタデータ | 論争 |
---|---|---|---|---|
PyTorch | - | yolov8n.pt |
✅ | - |
TorchScript | torchscript |
yolov8n.torchscript |
✅ | imgsz , optimize , batch |
ONNX | onnx |
yolov8n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolov8n_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolov8n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , batch |
CoreML | coreml |
yolov8n.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolov8n_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolov8n.pb |
❌ | imgsz , batch |
TF ライト | tflite |
yolov8n.tflite |
✅ | imgsz , half , int8 , batch |
TF エッジTPU | edgetpu |
yolov8n_edgetpu.tflite |
✅ | imgsz , batch |
TF.js | tfjs |
yolov8n_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolov8n_paddle_model/ |
✅ | imgsz , batch |
NCNN | ncnn |
yolov8n_ncnn_model/ |
✅ | imgsz , half , batch |