ONNX Export for YOLO11 Models
Often, when deploying computer vision models, you'll need a model format that's both flexible and compatible with multiple platforms.
Exporting Ultralytics YOLO11 models to ONNX format streamlines deployment and ensures optimal performance across various environments. This guide will show you how to easily convert your YOLO11 models to ONNX and enhance their scalability and effectiveness in real-world applications.
ONNX およびONNX ランタイム
ONNX, which stands for Open Neural Network Exchange, is a community project that Facebook and Microsoft initially developed. The ongoing development of ONNX is a collaborative effort supported by various organizations like IBM, Amazon (through AWS), and Google. The project aims to create an open file format designed to represent machine learning models in a way that allows them to be used across different AI frameworks and hardware.
ONNX models can be used to transition between different frameworks seamlessly. For instance, a deep learning model trained in PyTorch can be exported to ONNX format and then easily imported into TensorFlow.
Alternatively, ONNX models can be used with ONNX Runtime. ONNX Runtime is a versatile cross-platform accelerator for machine learning models that is compatible with frameworks like PyTorch, TensorFlow, TFLite, scikit-learn, etc.
ONNX ランタイムは、ハードウェア固有の機能を活用することで、ONNX モデルの実行を最適化します。この最適化により、CPU、GPU、専用アクセラレータなど、さまざまなハードウェアプラットフォーム上でモデルを効率的かつ高性能に実行することができる。
Whether used independently or in tandem with ONNX Runtime, ONNX provides a flexible solution for machine learning model deployment and compatibility.
ONNX モデルの主な特徴
ONNX 、様々なフォーマットを扱うことができるのは、次のような主な特長があるからだ:
-
共通のモデル表現:ONNX は、共通の演算子セット(畳み込み、レイヤーなど)と標準データフォーマットを定義している。モデルがONNX フォーマットに変換されるとき、そのアーキテクチャと重みはこの共通表現に変換されます。この統一性により、ONNX をサポートするどのフレームワークでもモデルを理解できることが保証される。
-
バージョニングと後方互換性:ONNX は、オペレータのためのバージョニング・システムを維持しています。これにより、規格が進化しても、古いバージョンで作成されたモデルが使用可能なままであることが保証されます。後方互換性は、モデルがすぐに時代遅れになるのを防ぐ重要な機能です。
-
グラフベースのモデル表現:ONNX モデルは計算グラフとして表現される。このグラフベースの構造は、機械学習モデルを表現する普遍的な方法であり、ノードは操作や計算を表し、エッジはそれらの間を流れるテンソルを表す。この形式は、同じくモデルをグラフとして表現する様々なフレームワークに容易に適応できる。
-
ツールとエコシステム:ONNX の周辺には、モデルの変換、視覚化、最適化を支援するツールの豊富なエコシステムがある。これらのツールにより、開発者はONNX のモデルで作業しやすくなり、異なるフレームワーク間でモデルをシームレスに変換できる。
一般的な使い方ONNX
Before we jump into how to export YOLO11 models to the ONNX format, let's take a look at where ONNX models are usually used.
CPU 配備
ONNX モデルは、ONNX Runtimeとの互換性があるため、CPU上で展開されることが多い。このランタイムはCPU 実行用に最適化されている。これにより推論速度が大幅に改善され、CPU のリアルタイム展開が可能になる。
サポートされる展開オプション
ONNX 、一般的にはCPU上で使用されることが多いが、以下のようなプラットフォームにも展開できる:
-
GPU アクセラレーション:ONNX GPU アクセラレーション、特にNVIDIA CUDA を完全にサポートしている。これにより、高い計算能力を必要とするタスクについて、NVIDIA GPU上での効率的な実行が可能になる。
-
エッジデバイスとモバイルデバイス:ONNX はエッジデバイスとモバイルデバイスに拡張され、オンデバイスとリアルタイム推論シナリオに最適です。軽量で、エッジハードウェアと互換性があります。
-
ウェブブラウザ:ONNX はウェブブラウザで直接実行でき、インタラクティブでダイナミックなウェブベースのAIアプリケーションを実現します。
Exporting YOLO11 Models to ONNX
You can expand model compatibility and deployment flexibility by converting YOLO11 models to ONNX format.
インストール
必要なパッケージをインストールするには、以下を実行する:
For detailed instructions and best practices related to the installation process, check our YOLO11 Installation guide. While installing the required packages for YOLO11, if you encounter any difficulties, consult our Common Issues guide for solutions and tips.
使用方法
Before diving into the usage instructions, be sure to check out the range of YOLO11 models offered by Ultralytics. This will help you choose the most appropriate model for your project requirements.
使用方法
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
model.export(format="onnx") # creates 'yolo11n.onnx'
# Load the exported ONNX model
onnx_model = YOLO("yolo11n.onnx")
# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
エクスポートプロセスの詳細については、Ultralytics ドキュメントのエクスポートに関するページをご覧ください。
Deploying Exported YOLO11 ONNX Models
Once you've successfully exported your Ultralytics YOLO11 models to ONNX format, the next step is deploying these models in various environments. For detailed instructions on deploying your ONNX models, take a look at the following resources:
-
ONNX ランタイムPython API ドキュメント:このガイドは、ONNX Runtimeを使用してONNX モデルをロードし、実行するための重要な情報を提供します。
-
エッジデバイスへの展開:ONNX モデルのエッジデバイスへの展開に関するさまざまな例については、こちらのドキュメントページをご覧ください。
-
ONNX GitHubのチュートリアル:ONNX モデルのさまざまなシナリオでの使用と実装のさまざまな側面をカバーする包括的なチュートリアルのコレクション。
概要
In this guide, you've learned how to export Ultralytics YOLO11 models to ONNX format to increase their interoperability and performance across various platforms. You were also introduced to the ONNX Runtime and ONNX deployment options.
使い方の詳細については、ONNX 公式ドキュメントをご覧ください。
Also, if you'd like to know more about other Ultralytics YOLO11 integrations, visit our integration guide page. You'll find plenty of useful resources and insights there.
よくあるご質問
How do I export YOLO11 models to ONNX format using Ultralytics?
To export your YOLO11 models to ONNX format using Ultralytics, follow these steps:
使用方法
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
model.export(format="onnx") # creates 'yolo11n.onnx'
# Load the exported ONNX model
onnx_model = YOLO("yolo11n.onnx")
# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
詳しくは、輸出に関する文書をご覧ください。
What are the advantages of using ONNX Runtime for deploying YOLO11 models?
Using ONNX Runtime for deploying YOLO11 models offers several advantages:
- クロスプラットフォームの互換性:ONNX ランタイムは、Windows、macOS、Linuxなど様々なプラットフォームをサポートしており、異なる環境間でモデルがスムーズに動作することを保証します。
- ハードウェアアクセラレーション:ONNX ランタイムは、CPU、GPU、専用アクセラレータのハードウェア固有の最適化を活用し、高性能な推論を提供することができる。
- Framework interoperability: Models trained in popular frameworks like PyTorch or TensorFlow can be easily converted to ONNX format and run using ONNX Runtime.
詳しくは、ONNX ランタイムのドキュメントをご覧ください。
What deployment options are available for YOLO11 models exported to ONNX?
YOLO11 models exported to ONNX can be deployed on various platforms including:
- CPU:CPU 推論を最適化するためのONNX ランタイムの活用。
- GPU:LeveragingNVIDIA CUDA for high-performanceGPU acceleration.
- エッジデバイス:エッジデバイスやモバイルデバイス上で軽量モデルを実行し、リアルタイムでデバイス上での推論を行う。
- ウェブブラウザ:インタラクティブなウェブベースのアプリケーションのために、ウェブブラウザ内で直接モデルを実行する。
詳しくは、モデル展開オプションに関するガイドをご覧ください。
Why should I use ONNX format for Ultralytics YOLO11 models?
Using ONNX format for Ultralytics YOLO11 models provides numerous benefits:
- 相互運用性:ONNX は、異なる機械学習フレームワーク間でモデルをシームレスに転送することを可能にする。
- パフォーマンスの最適化:ONNX ランタイムは、ハードウェア固有の最適化を利用することで、モデルのパフォーマンスを向上させることができる。
- 柔軟性:ONNX は様々な展開環境をサポートしており、異なるプラットフォーム上でも同じモデルを変更することなく使用することができます。
Refer to the comprehensive guide on exporting YOLO11 models to ONNX.
How can I troubleshoot issues when exporting YOLO11 models to ONNX?
When exporting YOLO11 models to ONNX, you might encounter common issues such as mismatched dependencies or unsupported operations. To troubleshoot these problems:
- 必要な依存関係が正しいバージョンでインストールされていることを確認する。
- サポートされているオペレーターや機能については、ONNX の公式ドキュメントをご確認ください。
- ヒントとなるエラーメッセージを確認し、Ultralytics 「よくある問題」ガイドを参照してください。
問題が解決しない場合は、Ultralytics サポートにお問い合わせください。