コンテンツへスキップ

モデル・エクスポートUltralytics YOLO

Ultralytics YOLO エコシステムと統合

はじめに

モデルをトレーニングする最終的な目標は、実世界のアプリケーションにモデルを導入することです。Ultralytics YOLO11 のエクスポートモードでは、トレーニングしたモデルをさまざまなフォーマットにエクスポートするための多彩なオプションを提供し、さまざまなプラットフォームやデバイスに展開できるようにします。この包括的なガイドは、モデルのエクスポートのニュアンスを説明し、最大の互換性とパフォーマンスを達成する方法を紹介することを目的としています。



見るんだ: カスタム学習Ultralytics YOLO モデルをエクスポートし、ウェブカメラ上でライブ推論を実行する方法。

なぜYOLO11 のエクスポート・モードを選ぶのか?

  • 汎用性:次のような複数のフォーマットにエクスポートできます。 ONNX, TensorRT, CoreMLなどがあります。
  • パフォーマンス TensorRT GPU 最大5倍高速化し、ONNX またはONNX CPU 最大3倍高速化します。 OpenVINO.
  • 互換性:多数のハードウェアおよびソフトウェア環境において、モデルを普遍的に展開できるようにします。
  • 使いやすさ:シンプルなCLI 、Python APIにより、素早く簡単にモデルをエクスポートできます。

エクスポート・モードの主な特徴

ここでは、目立った機能をいくつか紹介しよう:

  • ワンクリックエクスポート:簡単なコマンドで様々なフォーマットにエクスポートできます。
  • バッチエクスポート:バッチ推論可能なモデルをエクスポートします。
  • 最適化された推論:エクスポートされたモデルは、推論時間を短縮するために最適化されています。
  • チュートリアルビデオ:スムーズな書き出しのための詳細なガイドとチュートリアル。

チップ

  • 輸出先 ONNXまたは OpenVINOにエクスポートすると、CPU が最大3倍高速化されます。
  • にエクスポートする。 TensorRTにエクスポートすると、GPU が最大5倍高速化されます。

使用例

YOLO11n モデルをONNX やTensorRT のような別のフォーマットにエクスポートします。 エクスポート引数の完全なリストについては、以下の引数のセクションを参照してください。

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n.pt format=onnx      # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

議論

この表は、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 の両方のメソッドが用意されています。

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n.pt format=onnx      # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

異なる入力サイズの処理などの高度なオプションを含む、プロセスの詳細については、ONNX 統合ガイドを参照してください。

モデルのエクスポートにTensorRT を使用する利点は何ですか?

モデルのエクスポートにTensorRT を使用すると、パフォーマンスが大幅に向上します。TensorRT にエクスポートされたYOLO11 モデルは、GPU 最大5倍のスピードアップを達成でき、リアルタイム推論アプリケーションに最適です。

  • 汎用性:特定のハードウェアセットアップにモデルを最適化します。
  • スピード:高度な最適化により、より高速な推論を実現。
  • 互換性: NVIDIA ハードウェアとスムーズに統合。

TensorRT の統合の詳細については、TensorRT 統合ガイドを参照してください。

YOLO11 モデルをエクスポートする際、INT8量子化を有効にするにはどうすればよいですか?

INT8量子化は、特にエッジデバイスにおいて、モデルを圧縮し、推論を高速化する優れた方法です。ここでは、INT8量子化を有効にする方法を説明します:

from ultralytics import YOLO

model = YOLO("yolo11n.pt")  # Load a model
model.export(format="engine", int8=True)
yolo export model=yolo11n.pt format=engine int8=True # export TensorRT model with INT8 quantization

INT8量子化は、次のようなさまざまなフォーマットに適用できる。 TensorRT, OpenVINOそして CoreML.最適な量子化結果を得るために、代表的な量子化結果を提供する。 データセット を使用している。 data パラメータが必要だ。

モデルをエクスポートする際に、なぜ動的入力サイズが重要なのですか?

動的な入力サイズにより、エクスポートされたモデルはさまざまな画像サイズに対応できるため、さまざまな使用ケースに柔軟に対応し、処理効率を最適化することができます。次のような形式にエクスポートする場合 ONNXまたは TensorRTなどにエクスポートする場合、動的入力サイズを有効にすることで、モデルが異なる入力形状にシームレスに適応できるようになります。

この機能を有効にするには dynamic=True フラグを立てる:

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="onnx", dynamic=True)
yolo export model=yolo11n.pt format=onnx dynamic=True

動的入力サイジングは、ビデオ処理や異なるソースからの画像を扱う場合など、入力寸法が変化する可能性のあるアプリケーションで特に有用です。

モデルのパフォーマンスを最適化するために考慮すべき重要な輸出論拠とは?

エクスポートの引数を理解し設定することは、モデルのパフォーマンスを最適化するために非常に重要です:

  • format: エクスポートされるモデルのターゲットフォーマット(例. onnx, torchscript, tensorflow).
  • imgsz: モデル入力に必要な画像サイズ(例. 640 または (height, width)).
  • half: FP16量子化が可能になり、モデルサイズが小さくなり、推論が高速化される可能性がある。
  • optimize: モバイル環境や制約のある環境向けに、特定の最適化を適用する。
  • int8: INT8の量子化を有効にする。 エッジAI 配備される。

特定のハードウェア・プラットフォームへのデプロイには、次のような特殊なエクスポート・フォーマットの使用を検討してください。 TensorRTNVIDIA ような特殊なエクスポートフォーマットを使用することを検討してください、 CoreMLやGoogle Coralデバイス用のEdgeTPUような特別なエクスポートフォーマットを使用することを検討してください。

📅作成:1年前 ✏️更新 3日前

コメント