モデル・エクスポートUltralytics YOLO
はじめに
モデルをトレーニングする最終的な目標は、実世界のアプリケーションにモデルを導入することです。Ultralytics YOLO11 のエクスポートモードでは、トレーニングしたモデルをさまざまなフォーマットにエクスポートするための多彩なオプションを提供し、さまざまなプラットフォームやデバイスに展開できるようにします。この包括的なガイドは、モデルのエクスポートのニュアンスを説明し、最大の互換性とパフォーマンスを達成する方法を紹介することを目的としています。
見るんだ: カスタム学習Ultralytics YOLO モデルをエクスポートし、ウェブカメラ上でライブ推論を実行する方法。
なぜYOLO11 のエクスポート・モードを選ぶのか?
- 汎用性:次のような複数のフォーマットにエクスポートできます。 ONNX, TensorRT, CoreMLなどがあります。
- パフォーマンス TensorRT GPU 最大5倍高速化し、ONNX またはONNX CPU 最大3倍高速化します。 OpenVINO.
- 互換性:多数のハードウェアおよびソフトウェア環境において、モデルを普遍的に展開できるようにします。
- 使いやすさ:シンプルなCLI 、Python APIにより、素早く簡単にモデルをエクスポートできます。
エクスポート・モードの主な特徴
ここでは、目立った機能をいくつか紹介しよう:
- ワンクリックエクスポート:簡単なコマンドで様々なフォーマットにエクスポートできます。
- バッチエクスポート:バッチ推論可能なモデルをエクスポートします。
- 最適化された推論:エクスポートされたモデルは、推論時間を短縮するために最適化されています。
- チュートリアルビデオ:スムーズな書き出しのための詳細なガイドとチュートリアル。
チップ
使用例
YOLO11n モデルをONNX やTensorRT のような別のフォーマットにエクスポートします。 エクスポート引数の完全なリストについては、以下の引数のセクションを参照してください。
例
議論
この表は、YOLO のモデルをさまざまなフォーマットにエクスポートする際に利用できる設定とオプションの詳細を示しています。これらの設定は、エクスポートされたモデルのパフォーマンス、サイズ、さまざまなプラットフォームや環境での互換性を最適化するために重要です。適切な設定を行うことで、モデルが最適な効率で目的のアプリケーションに展開できるようになります。
議論 | タイプ | デフォルト | 説明 |
---|---|---|---|
format |
str |
'torchscript' |
エクスポートされるモデルのターゲットフォーマット。 'onnx' , 'torchscript' , 'engine' TensorRT)などがある。それぞれのフォーマットは、異なる 配備環境. |
imgsz |
int または tuple |
640 |
モデル入力に必要な画像サイズ。正方形画像の場合は整数値(例:、 640 640×640の場合)またはタプル (height, width) 具体的な寸法については |
keras |
bool |
False |
のKerasフォーマットへのエクスポートを可能にする。 TensorFlowSavedModel TensorFlow サービングと API との互換性を提供します。 |
optimize |
bool |
False |
TorchScriptエクスポート時にモバイルデバイス向けの最適化を適用し、モデルサイズを縮小して推論パフォーマンスを向上させる可能性があります。NCNN フォーマットやCUDA デバイスとは互換性がありません。 |
half |
bool |
False |
FP16(半精度)量子化を有効にし、モデルサイズを縮小し、サポートされているハードウェアでの推論を高速化する可能性があります。ONNXINT8量子化またはCPUエクスポートとは互換性がありません。 |
int8 |
bool |
False |
INT8量子化を有効にすることで、モデルをさらに圧縮し、主にエッジデバイスに対して、最小限の精度損失で推論を高速化します。TensorRT使用する場合、学習後の量子化(PTQ)を実行します。 |
dynamic |
bool |
False |
ONNX、TensorRT 、OpenVINO エクスポートでダイナミックな入力サイズを可能にし、さまざまなサイズの画像を柔軟に扱えるようになりました。自動的に True TensorRT INT8で使用する場合。 |
simplify |
bool |
True |
でのONNX エクスポートのモデルグラフを簡素化する。 onnxslim 推論エンジンとの互換性が向上し、パフォーマンスが向上する可能性がある。 |
opset |
int |
None |
ONNX オペセットのバージョンを指定します。 ONNXパーサーとランタイムの互換性のために指定します。設定されていない場合は、サポートされている最新のバージョンを使用します。 |
workspace |
float または None |
None |
の最大ワークスペース・サイズをGiB単位で設定する。 TensorRT 最適化を行い、メモリ使用量とパフォーマンスのバランスをとる。使用方法 None TensorRT 、デバイスの最大値まで自動で割り当てられる。 |
nms |
bool |
False |
サポートされている場合(「エクスポート形式」を参照)、エクスポートされたモデルに非最大抑制(NMS)を追加し、検出の後処理効率を向上させます。end2endモデルでは使用できません。 |
batch |
int |
1 |
エクスポートモデルのバッチ推論サイズ、またはエクスポートされたモデルが同時に処理する画像の最大数を指定します。 predict モードに設定されます。エッジTPU 輸出の場合、これは自動的に1に設定される。 |
device |
str |
None |
エクスポートするデバイスを指定:GPU (device=0 )、CPU (device=cpu )、アップル・シリコン用MPS (device=mps )またはDLA forNVIDIA Jetson (device=dla:0 または device=dla:1 ).TensorRT エクスポートは、自動的にGPU使用します。 |
data |
str |
'coco8.yaml' |
への道 データセット 設定ファイル(デフォルト: coco8.yaml )、INT8量子化校正に不可欠である。INT8を有効にして指定しない場合、デフォルトのデータセットが割り当てられる。 |
これらのパラメータを調整することで、展開環境、ハードウェアの制約、パフォーマンス目標など、特定の要件に合わせてエクスポートプロセスをカスタマイズすることができます。適切なフォーマットと設定を選択することは、モデルサイズ、スピード、精度の最適なバランスを実現するために不可欠です。
輸出フォーマット
利用可能なYOLO11 エクスポート形式は以下の表の通りです。どのフォーマットでも format
引数、すなわち format='onnx'
または format='engine'
.エクスポートされたモデルを直接予測または検証することができます。 yolo predict model=yolo11n.onnx
.使用例は、エクスポート完了後に表示されます。
フォーマット | format 議論 |
モデル | メタデータ | 議論 |
---|---|---|---|---|
PyTorch | - | yolo11n.pt |
✅ | - |
TorchScript | torchscript |
yolo11n.torchscript |
✅ | imgsz , optimize , nms , batch |
ONNX | onnx |
yolo11n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch |
OpenVINO | openvino |
yolo11n_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data |
TensorRT | engine |
yolo11n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data |
CoreML | coreml |
yolo11n.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolo11n_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch |
TF GraphDef | pb |
yolo11n.pb |
❌ | imgsz , batch |
TF ライト | tflite |
yolo11n.tflite |
✅ | imgsz , half , int8 , nms , batch , data |
TF エッジTPU | edgetpu |
yolo11n_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolo11n_web_model/ |
✅ | imgsz , half , int8 , nms , batch |
PaddlePaddle | paddle |
yolo11n_paddle_model/ |
✅ | imgsz , batch |
MNN | mnn |
yolo11n.mnn |
✅ | imgsz , batch , int8 , half |
NCNN | ncnn |
yolo11n_ncnn_model/ |
✅ | imgsz , half , batch |
IMX500 | imx |
yolov8n_imx_model/ |
✅ | imgsz , int8 , data |
RKNN | rknn |
yolo11n_rknn_model/ |
✅ | imgsz , batch , name |
よくあるご質問
YOLO11 モデルをONNX フォーマットにエクスポートする方法を教えてください。
Ultralytics を使えば、YOLO11 のモデルをONNX フォーマットに簡単にエクスポートすることができます。モデルをエクスポートするために、Python とCLI の両方のメソッドが用意されています。
例
異なる入力サイズの処理などの高度なオプションを含む、プロセスの詳細については、ONNX 統合ガイドを参照してください。
モデルのエクスポートにTensorRT を使用する利点は何ですか?
モデルのエクスポートにTensorRT を使用すると、パフォーマンスが大幅に向上します。TensorRT にエクスポートされたYOLO11 モデルは、GPU 最大5倍のスピードアップを達成でき、リアルタイム推論アプリケーションに最適です。
- 汎用性:特定のハードウェアセットアップにモデルを最適化します。
- スピード:高度な最適化により、より高速な推論を実現。
- 互換性: NVIDIA ハードウェアとスムーズに統合。
TensorRT の統合の詳細については、TensorRT 統合ガイドを参照してください。
YOLO11 モデルをエクスポートする際、INT8量子化を有効にするにはどうすればよいですか?
INT8量子化は、特にエッジデバイスにおいて、モデルを圧縮し、推論を高速化する優れた方法です。ここでは、INT8量子化を有効にする方法を説明します:
例
INT8量子化は、次のようなさまざまなフォーマットに適用できる。 TensorRT, OpenVINOそして CoreML.最適な量子化結果を得るために、代表的な量子化結果を提供する。 データセット を使用している。 data
パラメータが必要だ。
モデルをエクスポートする際に、なぜ動的入力サイズが重要なのですか?
動的な入力サイズにより、エクスポートされたモデルはさまざまな画像サイズに対応できるため、さまざまな使用ケースに柔軟に対応し、処理効率を最適化することができます。次のような形式にエクスポートする場合 ONNXまたは TensorRTなどにエクスポートする場合、動的入力サイズを有効にすることで、モデルが異なる入力形状にシームレスに適応できるようになります。
この機能を有効にするには dynamic=True
フラグを立てる:
例
動的入力サイジングは、ビデオ処理や異なるソースからの画像を扱う場合など、入力寸法が変化する可能性のあるアプリケーションで特に有用です。
モデルのパフォーマンスを最適化するために考慮すべき重要な輸出論拠とは?
エクスポートの引数を理解し設定することは、モデルのパフォーマンスを最適化するために非常に重要です:
format:
エクスポートされるモデルのターゲットフォーマット(例.onnx
,torchscript
,tensorflow
).imgsz:
モデル入力に必要な画像サイズ(例.640
または(height, width)
).half:
FP16量子化が可能になり、モデルサイズが小さくなり、推論が高速化される可能性がある。optimize:
モバイル環境や制約のある環境向けに、特定の最適化を適用する。int8:
INT8の量子化を有効にする。 エッジAI 配備される。
特定のハードウェア・プラットフォームへのデプロイには、次のような特殊なエクスポート・フォーマットの使用を検討してください。 TensorRTNVIDIA ような特殊なエクスポートフォーマットを使用することを検討してください、 CoreMLやGoogle Coralデバイス用のEdgeTPUような特別なエクスポートフォーマットを使用することを検討してください。