コンテンツへスキップ

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

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 のような別のフォーマットにエクスポートする。 エクスポート引数の完全なリストについては、以下の引数のセクションを参照のこと。

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.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=yolov8n.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', '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


作成日:2023-11-12 更新日:2024-04-27
作成者:glenn-jocher(11),Burhan-Q(2)

コメント