コンテンツへスキップ

モデル・エクスポート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 エクスポートに追加します。

これらのパラメータを調整することで、展開環境、ハードウェアの制約、パフォーマンス目標など、特定の要件に合わせてエクスポートプロセスをカスタマイズすることができます。適切なフォーマットと設定を選択することは、モデルサイズ、スピード、精度の最適なバランスを実現するために不可欠です。

輸出フォーマット

利用可能なYOLOv8 エクスポート形式は以下の表の通りです。どのフォーマットでも format すなわち format='onnx' または format='engine'.

フォーマット format 議論 モデル メタデータ 論争
PyTorch - yolov8n.pt ✅ -
TorchScript torchscript yolov8n.torchscript ✅ imgsz, optimize
ONNX onnx yolov8n.onnx ✅ imgsz, half, dynamic, simplify, opset
OpenVINO openvino yolov8n_openvino_model/ ✅ imgsz, half, int8
TensorRT engine yolov8n.engine ✅ imgsz, half, dynamic, simplify, workspace
CoreML coreml yolov8n.mlpackage ✅ imgsz, half, int8, nms
TF SavedModel saved_model yolov8n_saved_model/ ✅ imgsz, keras, int8
TF GraphDef pb yolov8n.pb ❌ imgsz
TF ライト tflite yolov8n.tflite ✅ imgsz, half, int8
TF エッジTPU edgetpu yolov8n_edgetpu.tflite ✅ imgsz
TF.js tfjs yolov8n_web_model/ ✅ imgsz, half, int8
PaddlePaddle paddle yolov8n_paddle_model/ ✅ imgsz
NCNN ncnn yolov8n_ncnn_model/ ✅ imgsz, half


作成日:2023-11-12 更新日:2024-03-01
作成者:glenn-jocher(10),Burhan-Q(1)

コメント