ONNXインテグレーションを使ったUltralytics YOLOモデルのエクスポート
Ultralytics YOLO11モデルをONNXにエクスポートし、エクスポートしたモデルで推論を実行して、CPU、GPU、モバイル、エッジデバイスにデプロイする方法をご紹介します。
Abirami Vina11 分で読めます
AIソリューションが注目され始めた当初、ほとんどのモデルは管理された環境にある高性能サーバーにデプロイされていました。しかし、テクノロジーの進歩に伴い、デプロイ先はデータセンターの枠を大きく超えて広がっています。
現在、AIモデルはクラウドサーバーやデスクトップからスマートフォン、エッジデバイスまで、あらゆる機器で動作しています。この変化により、より高速な処理、オフライン機能、データが生成される場所に近い位置で動作するスマートなシステムが実現します。
この変化が特に顕著な分野の1つが、視覚データを機械が解釈できるようにするAIの一分野であるコンピュータービジョンです。コンピュータービジョンは、顔認識、自動運転、リアルタイム動画分析などのアプリケーションを支えています。こうしたユースケースの拡大に伴い、多様なハードウェアやプラットフォーム上でスムーズに動作するモデルの必要性も高まっています。
しかし、さまざまな展開先にコンピュータービジョンモデルを展開するのは、必ずしも簡単ではありません。デバイスごとにハードウェア、オペレーティングシステム、対応フレームワークが異なるため、柔軟性と互換性が不可欠です。
そのため、Ultralytics YOLO11のようなコンピュータービジョンモデルをさまざまなフォーマットにエクスポートできることが重要です。たとえば、UltralyticsがサポートするONNX(オープンニューラルネットワーク交換形式)との統合は、トレーニングとデプロイの間のギャップを埋める実用的な方法です。ONNXは、モデルをフレームワークに依存しない形式にし、さまざまなプラットフォームでデプロイできるようにするオープンフォーマットです。

図1。ONNXを使うと、あるフレームワークでトレーニングしたモデルを、別のフレームワークで簡単に実行できます。
この記事では、UltralyticsがサポートするONNX連携について詳しく解説し、柔軟なクロスプラットフォームデプロイに向けてYOLO11モデルをエクスポートする方法をご紹介します。
ONNXとONNX Runtimeとは何ですか?#
Open Neural Network Exchangeは、機械学習モデルの標準形式を定義するオープンソースプロジェクトです。MicrosoftとFacebookによって開発され、開発者はPyTorchのようなフレームワークでモデルをトレーニングし、TensorFlowなどの別のフレームワークで実行できます。これにより、特にコンピュータービジョンなどの分野において、AI開発の柔軟性、共同作業のしやすさ、利用しやすさが向上します。
ONNXは共通のオペレーターセットと統一されたファイル形式を提供するため、異なるツール、フレームワーク、ランタイム、コンパイラー間でモデルを簡単に移動できます。通常、あるフレームワークでトレーニングしたモデルは別のフレームワークと簡単には互換性を持ちませんが、ONNXを使えばモデルを一度エクスポートするだけで、CPU(中央処理装置)、GPU(グラフィックス処理装置)、モバイルデバイス、エッジハードウェアなど、ほぼあらゆる環境にデプロイできます。
また、ONNX Runtimeは、ONNX形式のモデルを実行するために特化して開発された高性能な推論エンジンです。サーバー、モバイルデバイス、エッジハードウェアなど、幅広いプラットフォームでONNXモデルをより高速かつ効率的に実行できるよう設計されています。ONNX RuntimeはPyTorch、TensorFlow、TensorFlow Lite、scikit-learnなどの一般的なフレームワークと互換性があるため、さまざまなワークフローに簡単に統合でき、必要な場所にモデルをデプロイできます。

図2. ONNXとONNX Runtimeにより、柔軟なクロスプラットフォームのモデルデプロイが可能になります。
ONNXの主な機能#
ONNX形式へのUltralytics YOLO11のエクスポート方法を説明する前に、ONNXモデル形式の主な機能を確認しましょう。
ツールの切り替え、異なるデバイスへのデプロイ、システムのアップグレードなど、どのような場合でもONNXはスムーズな動作を支えます。ONNXモデル形式の主な特長は次のとおりです。
- 単一の標準形式:ONNXは、レイヤーや演算(構成要素のようなもの)など、モデルの構成を記述する共通の方法を使用します。モデルをONNXに変換すると、この標準に準拠するため、ONNXをサポートするあらゆるシステムでモデルを理解し、実行できます。
- 後方互換性: ONNXは継続的に改善されながらも、古いモデルが新しいバージョンでも引き続き動作することを保証します。そのため、ONNXが更新されるたびにモデルを再トレーニングしたり、再構築したりする必要はありません。
- グラフベースのモデル設計: ONNXモデルは計算グラフとして構成され、各ノードがレイヤーや数式などの演算を表し、エッジがデータの流れを示します。このグラフベースの設計により、同様の計算グラフ構造を利用するさまざまなシステムとの統合が容易になります。
- 開発者向けツール: モデルの変換、検証、最適化に役立つ幅広いツールが用意されています。これらのツールにより、異なるフレームワーク間でのモデル移行が簡素化され、特にコンピュータービジョンのアプリケーションでデプロイを高速化できます。
ONNX連携の概要#
Ultralytics YOLO11などのUltralytics YOLOモデルをONNX形式にエクスポートするのは簡単で、数ステップで完了します。
まず、pipなどのパッケージマネージャーを使ってUltralytics Pythonパッケージをインストールします。コマンドプロンプトまたはターミナルでpip install ultralyticsを実行するとインストールできます。
Ultralyticsパッケージを使うと、さまざまなコンピュータービジョンタスク向けに、モデルのトレーニング、テスト、ファインチューニング、エクスポート、デプロイを簡単に行うことができ、プロセス全体をより高速かつ効率的に進められます。インストール中に問題が発生した場合は、解決策やヒントを掲載した一般的な問題のガイドをご覧ください。
Ultralyticsパッケージをインストールしたら、以下のコードを使ってYOLO11モデルを読み込み、ONNX形式にエクスポートできます。この例では、事前トレーニング済みのYOLO11モデル(yolo11n.pt)を読み込み、ONNXファイル(yolo11n.onnx)としてエクスポートすることで、さまざまなプラットフォームやデバイスへのデプロイに備えます。
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="onnx")同じ手順は、Ultralytics YOLO26などの新しいモデルにも適用できます。モデルをONNX形式に変換し、元のモデルと同じ結果が得られることを確認したら、さまざまなプラットフォームにデプロイできます。
以下の例では、エクスポートしたYOLO11モデル(yolo11n.onnx)を読み込み、推論を実行する方法を示します。推論とは、トレーニング済みモデルを使って新しいデータに対する予測を行うことです。ここでは、バスの画像のURLを使ってモデルをテストします。
onnx_model = YOLO("yolo11n.onnx")
results = onnx_model("https://ultralytics.com/images/bus.jpg", save=True)このコードを実行すると、以下の出力画像がruns/detect/predictフォルダーに保存されます。

図3. エクスポートしたUltralytics YOLO11モデルを使った画像の推論実行。
ONNX連携を選ぶべきなのはどのような場合ですか?#
Ultralytics Pythonパッケージは、TorchScript、CoreML、TensorRT、ONNXなど、複数の形式へのモデルのエクスポートをサポートしています。それでは、なぜONNXを選ぶのでしょうか?
ONNXの特長は、特定のフレームワークに依存しない形式であることです。他の多くのエクスポート形式が特定のツールや環境に依存するのに対し、ONNXは標準化された形式と共通のオペレーターセットを使用します。そのため、高い移植性とハードウェアとの親和性を備え、クラウドサーバー、モバイルアプリ、エッジデバイスなど、クロスプラットフォームのデプロイに最適です。
Ultralytics YOLO11プロジェクトにONNX連携が最適な選択肢となる理由をいくつかご紹介します。
- 移植性の高いデプロイ: ONNXにエクスポートすると、コードを変更したり再トレーニングしたりせずに、Ultralytics YOLO11モデルをさまざまなプラットフォームにデプロイできます。
- 業界全体でのサポート: ONNXは主要なAI企業やフレームワークでサポートされているため、信頼性が高く広く受け入れられている形式です。PDFがさまざまなデバイスで利用できるのと同様に、長期的な互換性を確保します。
- 将来を見据えた開発: ONNXを使うことで、モデルへの投資を保護できます。ツールが進化しても、ONNXによってモデルの有用性が保たれ、新しい環境や異なる環境でも利用できます。
- ベンダーロックインなし: ツールによっては特定のシステムだけを使うよう制限され、モデルの可能性が狭まる場合があります。ONNXなら、単一の構成に縛られることなく、ニーズに最適なプラットフォームを選べます。
Ultralytics YOLO11とONNXモデル形式の活用例#
続いて、ONNX連携を活用してUltralytics YOLO11をデプロイできる、実際の活用例をいくつか見ていきましょう。
Ultralytics YOLO11による倉庫の在庫管理#
忙しい倉庫では、すべての商品や荷物を常に見守るのは困難です。コンピュータービジョンシステムは、作業員が棚の商品を見つけるのを支援し、商品の数や種類などのインサイトを提供できます。このようなシステムは、企業が膨大な在庫を自動管理するのに役立ち、倉庫作業員の時間を大幅に節約できます。
特にスマート倉庫では、ONNXにエクスポートしたUltralytics YOLO11モデルを使い、カメラやエッジデバイスでアイテムをリアルタイムに識別して数えられます。エクスポートしたモデルは、棚やパレットをスキャンして在庫数、欠品、空きスペースを検出するのに役立ちます。ONNXモデルは幅広いハードウェアで効率的に動作するため、スマートカメラなどの小型エッジデバイス上で直接実行でき、高価なサーバーや常時接続のクラウド環境が不要になります。

図4. YOLO11を使った荷物の検出とカウントの例。
Ultralytics YOLO11による病院廃棄物の管理#
世界中の病院では、使用済みの手袋や注射器から、手術で使われた器具(使い捨てまたは汚染されたハサミやメスなど)まで、毎日大量の廃棄物が発生しています。実際、調査によると、病院では毎年500万トンを超える廃棄物が発生しており、これは1床あたり1日29ポンドの廃棄物に相当します。
こうした廃棄物を適切に分別することは、衛生と安全を確保し、規制を遵守するうえで不可欠です。ONNX形式にエクスポートしたUltralytics YOLO11モデルを使えば、病院は医療分野のコンピュータービジョンを活用して、廃棄物処理をリアルタイムで自動化および監視できます。
たとえば、手術室や廊下などの廃棄物用ゴミ箱の近くに設置したカメラで、廃棄されるアイテムを監視できます。さまざまな種類の医療廃棄物を認識するようにトレーニングしたカスタムUltralytics YOLO11モデルで映像を分析し、捨てられたものを識別できます。使用済みの注射器が一般ゴミに捨てられるなど、アイテムが誤ったゴミ箱に入った場合、ライトや音でスタッフにすぐ通知するようシステムを設定でき、汚染の防止とコンプライアンスの確保に役立ちます。

図5. Ultralytics YOLO11を使った医療器具の検出。
Ultralytics YOLO11を活用した作物モニタリング#
適切な収穫時期を把握することは、農産物の品質と農場全体の生産性の両方に大きな影響を与えます。従来、農家は経験や目視確認に頼っていましたが、近年の技術の進歩によって状況が変わり始めています。
現在では、ONNX形式にエクスポートしたYOLO11のようなコンピュータービジョン技術を活用することで、農家は農地に自動化と精度を取り入れられます。ドローンや、トラクターまたは支柱に取り付けたカメラを使って、トマト、リンゴ、小麦などの作物を撮影できます。その後、YOLO11で色や大きさ、作物の分布などの重要な指標を検出できます。こうした情報に基づいて、作物が収穫可能な状態か、まだ生育中か、すでに最適な時期を過ぎているかを判断できます。

図6。YOLO11を使ってドローンの空撮映像から作物を検出できます。
考慮すべきONNXの制限事項#
ONNXには移植性、クロスプラットフォームの互換性、フレームワーク間の相互運用性など多くの利点がありますが、以下の制限事項にも留意してください。
- モデルサイズ:モデルをONNX形式に変換すると、元の形式よりファイルサイズが大きくなる場合があります。量子化やプルーニングなどの手法を使うと、性能への影響を抑えながらモデルサイズを縮小し、この問題を軽減できます。
- ランタイムの互換性: ONNX Runtimeはクロスプラットフォームの互換性を考慮して設計されていますが、性能やサポート状況はハードウェアやオペレーティングシステムによって異なる場合があります。
- デバッグの難しさ: ONNXモデルのデバッグは、PyTorchやTensorFlowなどのネイティブフレームワークより複雑になる場合があります。エラーメッセージの説明が不十分で、問題の特定が難しいことがあります。ただし、モデルを可視化するNetronやONNX Runtimeのロギング機能などのツールが、トラブルシューティングに役立ちます。
重要なポイント#
Ultralytics YOLO11をONNXにエクスポートすると、トレーニング済みのコンピュータービジョンモデルを、ノートパソコン、モバイルデバイス、小型スマートカメラなど、ほぼあらゆる環境に簡単にデプロイできます。ONNX連携を利用すれば、単一のフレームワークやプラットフォームに縛られることなく、アプリケーションに最適な環境でモデルを実行できます。
これにより、トレーニングから実環境へのデプロイまでを、より高速かつ効率的に進められます。倉庫の在庫管理から病院廃棄物の適切な処理まで、この構成はシステムの円滑な動作を支え、エラーを減らし、貴重な時間を節約します。
コンピュータービジョンとAIについてさらに詳しく知りたいですか?GitHubリポジトリをご覧いただき、コミュニティに参加して、ライセンスの選択肢を確認し、コンピュータービジョンプロジェクトを始めましょう。製造業におけるAIや自動車業界におけるコンピュータービジョンなどの技術革新に関心がある方は、ソリューションページをご覧ください。
執筆者
コメント
質問したり、結果を共有したり、ほかの人をサポートしたりできます。










