YOLO26モデルのONNXエクスポート
コンピュータビジョンモデルをデプロイする場合、柔軟性があり、複数のプラットフォームと互換性のあるモデル形式が必要になることがよくあります。
Ultralytics YOLO26モデルをONNX形式でエクスポートすることで、デプロイメントが効率化され、様々な環境で最適なパフォーマンスが保証されます。このガイドでは、YOLO26モデルをONNXに簡単に変換し、実世界でのアプリケーションにおけるスケーラビリティと有効性を向上させる方法を説明します。
ONNXとONNX Runtime
ONNX(Open Neural Network Exchangeの略)は、FacebookとMicrosoftが最初に開発したコミュニティプロジェクトです。 ONNXの継続的な開発は、IBM、Amazon(AWS経由)、Googleなどのさまざまな組織によってサポートされている共同作業です。このプロジェクトは、さまざまなAIフレームワークおよびハードウェアで使用できるように、機械学習モデルを表現するように設計されたオープンファイル形式を作成することを目的としています。
ONNXモデルを使用すると、異なるフレームワーク間をシームレスに移行できます。たとえば、PyTorchでトレーニングされた深層学習モデルをONNX形式にエクスポートし、TensorFlowに簡単にインポートできます。

あるいは、ONNXモデルはONNX Runtimeと併用できます。ONNX Runtimeは、PyTorch、TensorFlow、TFLite、scikit-learnなどのフレームワークと互換性のある、機械学習モデル向けの多用途なクロスプラットフォームアクセラレータです。
ONNX Runtimeは、ハードウェア固有の機能を活用してONNXモデルの実行を最適化します。この最適化により、モデルはCPU、GPU、および専用アクセラレータを含むさまざまなハードウェアプラットフォーム上で効率的かつ高性能に実行できます。

ONNX ランタイムと連携するかどうかにかかわらず、ONNX は機械学習のモデルデプロイメントと互換性のための柔軟なソリューションを提供します。
ONNXモデルの主な機能
ONNXがさまざまな形式を処理できるのは、次の主な機能によるものです。
共通モデル表現: ONNXは、共通の演算子セット(畳み込み、レイヤーなど)と標準データ形式を定義します。モデルがONNX形式に変換されると、そのアーキテクチャと重みはこの共通表現に変換されます。この均一性により、ONNXをサポートするすべてのフレームワークがモデルを理解できるようになります。
Versioning and Backward Compatibility(バージョニングと下位互換性): ONNXはそのオペレーターのバージョニングシステムを維持しています。これにより、標準が進化しても、古いバージョンで作成されたモデルは引き続き使用できます。下位互換性は、モデルがすぐに廃止されないようにするための重要な機能です。
グラフベースのモデル表現: ONNXはモデルを計算グラフとして表現します。このグラフベースの構造は、機械学習モデルを表現するための普遍的な方法であり、ノードは演算または計算を表し、エッジはそれらの間を流れるtensorを表します。この形式は、モデルをグラフとして表現するさまざまなフレームワークに容易に適応できます。
ツールとエコシステム:ONNX には、モデルの変換、視覚化、最適化を支援する豊富なツールエコシステムがあります。これらのツールを使用すると、開発者は ONNX モデルをより簡単に操作し、異なるフレームワーク間でモデルをシームレスに変換できます。
ONNX の一般的な使用法
YOLO26モデルをONNX形式にエクスポートする方法に入る前に、ONNXモデルが通常どこで使用されているかを見てみましょう。
CPU展開
ONNXモデルは、ONNX Runtimeとの互換性から、CPU上で展開されることがよくあります。このランタイムはCPU実行に最適化されており、推論速度を大幅に向上させ、リアルタイムCPU展開を可能にします。
サポートされているデプロイメントオプション
ONNX モデルは通常 CPU で使用されますが、次のプラットフォームにもデプロイできます。
GPUアクセラレーション: ONNXはGPUアクセラレーション、特にNVIDIA CUDAを完全にサポートしています。これにより、高い計算能力を必要とするタスクのためにNVIDIA GPU上で効率的な実行が可能になります。
エッジおよびモバイルデバイス: ONNX はエッジおよびモバイルデバイスに拡張され、デバイス上およびリアルタイムの推論シナリオに最適です。軽量でエッジハードウェアと互換性があります。
Webブラウザ: ONNXはWebブラウザで直接実行でき、インタラクティブで動的なWebベースのAIアプリケーションを強化します。
YOLO26モデルのONNXへのエクスポート
YOLO26モデルをONNX形式に変換することで、モデルの互換性とデプロイメントの柔軟性を拡大できます。Ultralytics YOLO26は、モデルのパフォーマンスを様々なプラットフォームで大幅に向上させることができる、簡単なエクスポートプロセスを提供します。
インストール
必要なパッケージをインストールするには、以下を実行します:
インストール
# Install the required package for YOLO26
pip install ultralytics
インストールプロセスに関する詳細な手順とベストプラクティスについては、当社のYOLO26インストールガイドを確認してください。YOLO26に必要なパッケージをインストールする際に何らかの問題に遭遇した場合は、解決策とヒントについては、当社の一般的な問題ガイドを参照してください。
使用法
使用方法の説明に入る前に、Ultralyticsが提供するYOLO26モデルのラインナップを必ずご確認ください。これにより、プロジェクトの要件に最も適したモデルを選択できます。
使用法
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to ONNX format
model.export(format="onnx") # creates 'yolo26n.onnx'
# Load the exported ONNX model
onnx_model = YOLO("yolo26n.onnx")
# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO26n PyTorch model to ONNX format
yolo export model=yolo26n.pt format=onnx # creates 'yolo26n.onnx'
# Run inference with the exported model
yolo predict model=yolo26n.onnx source='https://ultralytics.com/images/bus.jpg'
エクスポート引数
YOLO26モデルをONNX形式にエクスポートする際、特定のデプロイメント要件に合わせてプロセスを最適化するために、様々な引数を使用してカスタマイズできます。
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
format | str | 'onnx' | エクスポートされたモデルのターゲット形式。さまざまなデプロイメント環境との互換性を定義します。 |
imgsz | int または tuple | 640 | モデル入力に必要な画像サイズ。正方形の画像の場合は整数、タプルの場合は (height, width) 特定の寸法の場合。 |
half | bool | False | FP16(半精度)量子化を有効にし、モデルサイズを縮小し、サポートされているハードウェアでの推論を高速化する可能性があります。 |
dynamic | bool | False | 動的な入力サイズを許可し、さまざまな画像寸法を処理する際の柔軟性を高めます。 |
simplify | bool | True | でモデルグラフを簡素化します onnxslimことで、パフォーマンスと互換性が向上する可能性があります。 |
opset | int | None | さまざまな ONNX パーサーおよびランタイムとの互換性のために、ONNX opset バージョンを指定します。設定されていない場合は、サポートされている最新バージョンを使用します。 |
nms | bool | False | 正確かつ効率的なdetect後処理に不可欠なNon-Maximum Suppression (NMS)を追加します。 |
batch | int | 1 | エクスポートされたモデルのバッチ推論サイズ、またはエクスポートされたモデルが同時に処理する画像の最大数を指定します。 predict モードを参照してください。 |
device | str | None | エクスポート先のデバイス(GPU(device=0)、CPU (device=cpu)、Apple シリコン用 MPS (device=mps)。 |
エクスポートプロセスの詳細については、エクスポートに関するUltralyticsドキュメントページをご覧ください。
エクスポートされたYOLO26 ONNXモデルのデプロイ
Ultralytics YOLO26モデルをONNX形式に正常にエクスポートしたら、次のステップはこれらのモデルを様々な環境にデプロイすることです。ONNXモデルのデプロイに関する詳細な手順については、以下のリソースを参照してください。
ONNX Runtime python APIドキュメント: このガイドでは、ONNX Runtimeを使用してONNXモデルをロードおよび実行するための重要な情報を提供します。
エッジデバイスへのデプロイ: エッジへのONNXモデルのデプロイに関するさまざまな例については、こちらのドキュメントページをご覧ください。
GitHubのONNXチュートリアル: さまざまなシナリオでONNXモデルの使用と実装のさまざまな側面を網羅した包括的なチュートリアル集です。
Triton Inference Server: NVIDIAのTriton Inference Serverを使用してONNXモデルをデプロイし、高性能でスケーラブルなデプロイメントを実現する方法を学びます。
概要
このガイドでは、Ultralytics YOLO26モデルをONNX形式にエクスポートして、様々なプラットフォームでの相互運用性とパフォーマンスを向上させる方法を学びました。また、ONNX RuntimeとONNXのデプロイオプションについても紹介しました。
ONNXエクスポートは、Ultralytics YOLO26がサポートする数多くのエクスポート形式の1つであり、事実上あらゆる環境でモデルをデプロイできます。特定のニーズに応じて、最大のGPUパフォーマンスを得るためのTensorRTや、Appleデバイス向けのCoreMLなど、他のエクスポートオプションも検討するとよいでしょう。
使用方法の詳細については、ONNXの公式ドキュメントをご覧ください。
また、他のUltralytics YOLO26統合について詳しく知りたい場合は、当社の統合ガイドページをご覧ください。そこには役立つリソースと洞察が豊富にあります。
よくある質問
Ultralyticsを使用してYOLO26モデルをONNX形式にエクスポートするにはどうすればよいですか?
Ultralyticsを使用してYOLO26モデルをONNX形式にエクスポートするには、以下の手順に従ってください。
使用法
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to ONNX format
model.export(format="onnx") # creates 'yolo26n.onnx'
# Load the exported ONNX model
onnx_model = YOLO("yolo26n.onnx")
# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO26n PyTorch model to ONNX format
yolo export model=yolo26n.pt format=onnx # creates 'yolo26n.onnx'
# Run inference with the exported model
yolo predict model=yolo26n.onnx source='https://ultralytics.com/images/bus.jpg'
詳細については、エクスポートに関するドキュメントをご覧ください。
YOLO26モデルのデプロイにONNX Runtimeを使用することの利点は何ですか?
YOLO26モデルのデプロイにONNX Runtimeを使用すると、いくつかの利点があります。
- クロスプラットフォーム互換性: ONNX Runtimeは、Windows、macOS、Linuxなどのさまざまなプラットフォームをサポートしており、異なる環境でモデルがスムーズに実行されるようにします。
- ハードウェアアクセラレーション: ONNX Runtimeは、CPU、GPU、および専用アクセラレータ向けにハードウェア固有の最適化を活用し、高性能な推論を提供します。
- フレームワークの相互運用性:PyTorchやTensorFlowのような一般的なフレームワークで学習されたモデルは、ONNX形式に簡単に変換でき、ONNX Runtimeを使用して実行できます。
- パフォーマンスの最適化: ONNX Runtimeは、ネイティブのPyTorchモデルと比較して最大3倍のCPU高速化を実現し、GPUリソースが限られているデプロイメントシナリオに最適です。
詳細については、ONNX Runtimeドキュメントをご確認ください。
ONNXにエクスポートされたYOLO26モデルには、どのようなデプロイオプションが利用可能ですか?
ONNXにエクスポートされたYOLO26モデルは、以下を含む様々なプラットフォームにデプロイできます。
- CPU:最適化されたCPU推論のためにONNX Runtimeを利用します。
- GPU: NVIDIA CUDAを活用し、高性能なGPUアクセラレーションを実現します。
- エッジデバイス: リアルタイムのオンデバイス推論のために、エッジおよびモバイルデバイスで軽量モデルを実行します。
- Webブラウザ: インタラクティブなWebベースのアプリケーションのために、Webブラウザ内でモデルを直接実行します。
- クラウドサービス: スケーラブルな推論のためにONNX形式をサポートするクラウドプラットフォームへのデプロイ。
詳細については、モデルのデプロイメントオプションに関するガイドをご覧ください。
Ultralytics YOLO26モデルにONNX形式を使用すべき理由は何ですか?
Ultralytics YOLO26モデルにONNX形式を使用すると、数多くの利点があります。
- 相互運用性:ONNXを使用すると、モデルを異なる機械学習フレームワーク間でシームレスに転送できます。
- パフォーマンスの最適化: ONNX Runtimeは、ハードウェア固有の最適化を利用してモデルのパフォーマンスを向上させることができます。
- 柔軟性: ONNXはさまざまな展開環境をサポートしており、変更なしに異なるプラットフォームで同じモデルを使用できます。
- 標準化: ONNXは、業界全体で広くサポートされている標準化された形式を提供し、長期的な互換性を保証します。
YOLO26モデルをONNXにエクスポートするための包括的なガイドを参照してください。
YOLO26モデルをONNXにエクスポートする際の問題をトラブルシューティングするにはどうすればよいですか?
YOLO26モデルをONNXにエクスポートする際、依存関係の不一致やサポートされていない操作など、一般的な問題に遭遇する可能性があります。これらの問題をトラブルシューティングするには:
- 必要な依存関係の正しいバージョンがインストールされていることを確認してください。
- サポートされているオペレーターと機能については、公式のONNXドキュメントを確認してください。
- エラーメッセージを確認して手がかりを探し、Ultralyticsのよくある問題ガイドを参照してください。
- 次のようなさまざまなエクスポート引数を使用してみてください
simplify=Trueまたは調整opsetバージョン。 - 動的な入力サイズの問題については、以下を設定してください。
dynamic=Trueエクスポート中。
問題が解決しない場合は、Ultralyticsのサポートに連絡して、さらに支援を求めてください。