mcpField
Y
yolo-export

yolo-export

github.com/ultralytics開発33125 回インストール1 日前に更新
リポジトリ

yolo-export について

Ultralytics モデルのエクスポート、量子化、デプロイ準備を解説するガイドです。形式の選択、エクスポート設定、対象ハードウェアでの検証を扱います。

主な機能

  1. 01Platform、Python、CLI からのエクスポート
  2. 02対象ハードウェアに応じた形式選択
  3. 03量子化とキャリブレーションの設定
  4. 04エクスポート後のモデル整合性検証
  5. 05デプロイ先ハードウェアでの形式ベンチマーク

活用シーン

  1. 01エッジデバイス向けのモデル準備
  2. 02エクスポート形式と精度の比較
  3. 03エクスポート後の精度変化の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ultralytics/skills --skill yolo-export

インストール後、Claude Code で/yolo-exportを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yamlformat-matrix.md

詳細

エクスポート、量子化、デプロイ

最速ルート: Platform でのエクスポート

完了したモデルの Export タブを開き、フォーマットを選択し、引数を設定して、Start Export をクリックします。Platform は CPU エクスポートを直接実行し、フォーマットがターゲット GPU を必要とする場合(特に TensorRT)は対象 GPU を尋ねます。ジョブが完了したら成果物をダウンロードしてください。TensorRT では、デプロイ先デバイスの GPU ファミリーまたは Jetson ターゲットを選択します。そのデバイスの TensorRT/CUDA バージョンと異なる場合は、そのデバイス上でローカルにエクスポートしてください。

各エクスポーターのツールチェーンをローカルにインストールしたくない場合は Platform を使用してください。カスタムキャリブレーション、再現可能な自動化、ローカルハードウェア向けビルド、または即時のパリティ検証には、以下の Python/CLI の方法を使用します。詳しくは Platform model export をご覧ください。

クイックスタート

from ultralytics import YOLO

model = YOLO("runs/detect/train/weights/best.pt")
path = model.export(format="onnx")  # returns the exported file/dir path
yolo export model=best.pt format=onnx

エクスポートしたモデルは predict/val 用にそのまま YOLO() へ読み戻せます — 同じ API です:

model = YOLO("best.onnx")  # or best.engine, best_openvino_model/, ...

ターゲットハードウェア別のフォーマット選択

ターゲットformat=理由
NVIDIA GPU / Jetsonengine (TensorRT)NVIDIA で最速。デプロイ先デバイスでビルドしてください — エンジンは GPU/TRT バージョン間でポータブルではありません
Intel CPU/iGPU/NPUopenvinoIntel で最大 3 倍の CPU 高速化
Apple iOS/macOScoreml幅広い OS 対応、Vision/iOS/Flutter サポート
Apple iOS 27+/macOS 27+coreaiネイティブな .aimodel。iOS/Flutter SDK はデフォルトで coreml。Apple シリコンの macOS 26+ または x86_64 Linux でエクスポート
Androidlitert (tflite から名称変更) または ncnnNCNN は ARM に強い
Raspberry PincnnARM CPU で最高のレイテンシ
PyTorch Edgeexecutorch
クロスプラットフォーム / 不明onnxどこでも動作します。まずここから始め、レイテンシが要求されたら特化してください
NPU (Rockchip/Qualcomm/Hailo/Huawei/Sony/Axelera/DeepX/AMD)rknn / qnn / hailo / ascend / imx / axelera / deepx / xilinxname= は rknn/qnn/hailo/ascend/xilinx の正確なチップを選択します

22 ターゲットすべてのローカルエクスポートマトリクスとフォーマット別サポート引数: format-matrix.md (このフォルダー)。

主な引数

引数デフォルト備考
imgszmodel読み込まれたモデルから継承されます。デプロイ時の形状を明示的に設定してください
quantizeNone精度リクエスト: 16/fp16、8/int8/w8a8、w8a16、w8a32、または 32/fp32。サポート、速度、サイズ、精度はバックエンドに依存します — format-matrix.md を参照し、対象環境でベンチマークしてください
dataNone必要な場合に使用する代表的なキャリブレーションデータ。一般的には 300 枚以上、TensorRT では 500 枚以上を使用してください。省略するとタスクごとの小さなデフォルトが選択されるため、デプロイを代表するデータを明示的に渡してください
dynamicFalseサポートされている場合は可変の入力形状/バッチ。format-matrix.md を確認し、対象環境でベンチマークしてください
batch1エクスポートに組み込まれる最大バッチ
simplifyTrueONNX グラフを簡略化
opsetNone未設定の場合は互換性のある ONNX opset が自動的に選択されます。利用側のランタイムで問題が発生する場合は、より低い値を固定してください
nmsNoneNone は外部 NMS 用に生の出力をエクスポートします(YOLO26 も同様)。True は format-matrix.md に nms が記載されている場合に NMS を埋め込みます。False は YOLO26/YOLOv10 の NMS フリーヘッドを選択し、それ以外では生の出力となります
workspaceNoneTensorRT ビルダーの GiB — ビルドが OOM になる場合は下げてください
deviceNoneTensorRT には GPU が必要です(未設定の場合は device=0 に自動設定されます)。GPU は INT8 キャリブレーションも高速化します
fraction1.0使用されるキャリブレーションデータの割合

エクスポート後の一致を検証する(常に)

yolo val model=best.pt data=data.yaml   # baseline
yolo val model=best.onnx data=data.yaml # compare the same task metric with the baseline

許容される差異は、タスク、モデル、バックエンド、精度、キャリブレーションデータによって異なります。予期しない乖離がある場合は、imgsz と前処理/後処理を一致させ、必要に応じて代表的なキャリブレーションデータを使用して調査してください。また、1 件の予測を .pt と比較してください。

すべてのフォーマットを実測でベンチマークする

yolo benchmark model=best.pt data=data.yaml imgsz=640                                    # all formats at default precision
yolo benchmark model=best.pt data=data.yaml format=engine quantize=16 device=0 imgsz=640 # targeted FP16

このマシン上で、エクスポート可能な各フォーマットのタスクメトリクスとレイテンシを生成します。サポートされている各精度について繰り返し、開発マシンではなくデプロイ先のハードウェアでベンチマークしてください。

Python 以外でのエクスポートの利用

  • 生のランタイム(C++、モバイル、JS)では、前処理(レターボックスリサイズ、BGR→RGB、/255)と出力のデコードは あなた自身 が担当します。
  • 検出出力のレイアウトは nms に従います。デフォルトの nms=None は、YOLO26 を含むすべてのモデルに対して生の [4+nc, anchors] ヘッド(xywh ボックス + クラススコア)を出力するため、NMS はあなたが実行します(代わりに imx を使うと常に NMS が組み込まれます)。YOLO26/YOLOv10 で nms=False を指定すると、NMS 不要の [max_det, 6] 行 [x1,y1,x2,y2,conf,cls] が出力され、nms=True を指定すると、対応している場合は同じ行レイアウトで NMS が組み込まれます。一部のフォーマットでは生のヘッドにフォールバックします(format-matrix.md)。セグメント、ポーズ、OBB はタスク固有の出力を追加します。エクスポートの警告とシェイプを確認してください。
  • クラス名は、対応している場合はエクスポートのメタデータに含まれます。そうでない場合は、モデルとともに names マップを配布してください。
  • サービング: Triton には ultralytics.utils.triton.TritonRemoteModel を使用します。ultralytics リポジトリの examples/ には ONNXRuntime の C++/Rust/Python のリファレンスがあります。

トラブルシューティング

症状修正
パッケージが見つからないためにエクスポートがクラッシュするほとんどのバックエンドは初回エクスポート時に自動インストールされます。再実行してください。Linux では、TensorRT は tensorrt-cu<torch CUDA major> として自動インストールされます。それ以外の環境では、NVIDIA のドキュメントに従ってインストールしてください。Hailo(Dataflow Compiler)と Ascend(CANN atc)は、先にベンダー SDK が必要です
下流で Unsupported ONNX opsetより低い opset= でエクスポートするか、ランタイムをアップグレードしてください
TensorRT のビルドが OOM/遅いworkspace を下げ、batch=1、dynamic=False を指定してください
エクスポートの精度が大幅に低下するimgsz の不一致、キャリブレーションデータが少なすぎる/代表的でない、カスタムの前処理/後処理が誤っているなどが原因です。対応しているより高い精度またはバックエンドを使用してください
別のマシンでエンジンが失敗するTensorRT エンジンはデバイスとバージョンに依存します — ターゲット上で再ビルドしてください
Windows で CoreML エクスポートが失敗するmacOS または Linux でエクスポートしてください
Core AI エクスポートが利用できないApple シリコンまたは x86_64 Linux(glibc 2.34 以上)で macOS 26 以降、torch>=2.8、Python 3.11〜3.14 が必要です。より広範な本番サポートには CoreML を使用してください
half/int8/end2end/tflite の非推奨警告自動的に転送されます(half→quantize=16、int8→quantize=8、end2end=True→nms=False、end2end=False→nms=None(ただし nms=True も同時に渡された場合を除く)、tflite→litert)— 新しい名前への切り替えを推奨します

関連ページ

  • format-matrix.md — 22 種類すべてのローカルエクスポート対象、生成されるアーティファクト、およびサポートされる引数。onnx/engine/openvino/coreml 以外の形式を使用する場合に読んでください。

インストールされているバージョンが引数を拒否する場合は、このファイルよりもエラーメッセージ(format および quantize のエラーには有効な値が一覧表示されます)と yolo cfg を信頼してください。

コメント