yolo-export について
Ultralytics モデルのエクスポート、量子化、デプロイ準備を解説するガイドです。形式の選択、エクスポート設定、対象ハードウェアでの検証を扱います。
主な機能
- 01Platform、Python、CLI からのエクスポート
- 02対象ハードウェアに応じた形式選択
- 03量子化とキャリブレーションの設定
- 04エクスポート後のモデル整合性検証
- 05デプロイ先ハードウェアでの形式ベンチマーク
活用シーン
- 01エッジデバイス向けのモデル準備
- 02エクスポート形式と精度の比較
- 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 / Jetson | engine (TensorRT) | NVIDIA で最速。デプロイ先デバイスでビルドしてください — エンジンは GPU/TRT バージョン間でポータブルではありません |
| Intel CPU/iGPU/NPU | openvino | Intel で最大 3 倍の CPU 高速化 |
| Apple iOS/macOS | coreml | 幅広い OS 対応、Vision/iOS/Flutter サポート |
| Apple iOS 27+/macOS 27+ | coreai | ネイティブな .aimodel。iOS/Flutter SDK はデフォルトで coreml。Apple シリコンの macOS 26+ または x86_64 Linux でエクスポート |
| Android | litert (tflite から名称変更) または ncnn | NCNN は ARM に強い |
| Raspberry Pi | ncnn | ARM CPU で最高のレイテンシ |
| PyTorch Edge | executorch | |
| クロスプラットフォーム / 不明 | onnx | どこでも動作します。まずここから始め、レイテンシが要求されたら特化してください |
| NPU (Rockchip/Qualcomm/Hailo/Huawei/Sony/Axelera/DeepX/AMD) | rknn / qnn / hailo / ascend / imx / axelera / deepx / xilinx | name= は rknn/qnn/hailo/ascend/xilinx の正確なチップを選択します |
22 ターゲットすべてのローカルエクスポートマトリクスとフォーマット別サポート引数: format-matrix.md (このフォルダー)。
主な引数
| 引数 | デフォルト | 備考 |
|---|---|---|
imgsz | model | 読み込まれたモデルから継承されます。デプロイ時の形状を明示的に設定してください |
quantize | None | 精度リクエスト: 16/fp16、8/int8/w8a8、w8a16、w8a32、または 32/fp32。サポート、速度、サイズ、精度はバックエンドに依存します — format-matrix.md を参照し、対象環境でベンチマークしてください |
data | None | 必要な場合に使用する代表的なキャリブレーションデータ。一般的には 300 枚以上、TensorRT では 500 枚以上を使用してください。省略するとタスクごとの小さなデフォルトが選択されるため、デプロイを代表するデータを明示的に渡してください |
dynamic | False | サポートされている場合は可変の入力形状/バッチ。format-matrix.md を確認し、対象環境でベンチマークしてください |
batch | 1 | エクスポートに組み込まれる最大バッチ |
simplify | True | ONNX グラフを簡略化 |
opset | None | 未設定の場合は互換性のある ONNX opset が自動的に選択されます。利用側のランタイムで問題が発生する場合は、より低い値を固定してください |
nms | None | None は外部 NMS 用に生の出力をエクスポートします(YOLO26 も同様)。True は format-matrix.md に nms が記載されている場合に NMS を埋め込みます。False は YOLO26/YOLOv10 の NMS フリーヘッドを選択し、それ以外では生の出力となります |
workspace | None | TensorRT ビルダーの GiB — ビルドが OOM になる場合は下げてください |
device | None | TensorRT には GPU が必要です(未設定の場合は device=0 に自動設定されます)。GPU は INT8 キャリブレーションも高速化します |
fraction | 1.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 を信頼してください。