ONNX統合を使用したUltralytics YOLOモデルのエクスポート
ONNX統合を使用して、Ultralytics YOLO11などのUltralytics YOLOモデルをエクスポートし、さまざまなハードウェアにクロスプラットフォームでデプロイする方法を解説します。

AIソリューションが初めて注目を集めた頃、ほとんどのモデルは、管理された環境内の高性能サーバーにデプロイされていました。しかし、技術の進歩に伴い、デプロイ先はデータセンターをはるかに超えて広がっています。
現在では、AIモデルはクラウドサーバーやデスクトップから、スマートフォンやエッジデバイスまで、あらゆる環境で実行されています。この変化により、処理の高速化、オフライン機能、そしてデータが生成される場所の近くで動作する、よりスマートなシステムが実現します。
このことが特に明確に表れている分野の一つが、コンピュータービジョンです。これは、機械が視覚データを解釈できるようにするAIの一分野です。コンピュータービジョンは、顔認識、自動運転、リアルタイム動画解析などのアプリケーションを支えています。こうしたユースケースが増えるにつれて、さまざまなハードウェアやプラットフォーム上でスムーズに実行できるモデルの必要性も高まっています。
しかし、さまざまなデプロイ先にコンピュータービジョンモデルをデプロイすることは、必ずしも簡単ではありません。デバイスごとにハードウェア、オペレーティングシステム、サポートされるフレームワークが異なるため、柔軟性と互換性が不可欠です。
そのため、Ultralytics YOLO11のようなコンピュータービジョンモデルを異なる形式にエクスポートできることが重要になります。例えば、UltralyticsがサポートするONNX(オープン・ニューラル・ネットワーク・エクスチェンジ)連携は、トレーニングとデプロイの間のギャップを埋める実用的な方法を提供します。ONNXはオープン形式であり、モデルをフレームワークに依存しないものにして、さまざまなプラットフォームでデプロイできる状態にします。

図1。ONNXを使用すると、あるフレームワークでトレーニングしたモデルを別のフレームワークで簡単に実行できます。
この記事では、UltralyticsがサポートするONNX連携について詳しく説明し、柔軟なクロスプラットフォームデプロイに向けてYOLO11モデルをエクスポートする方法を紹介します。
ONNXとONNX Runtimeとは?#
オープン・ニューラル・ネットワーク・エクスチェンジ(ONNX)は、機械学習モデルの標準形式を定義するオープンソースプロジェクトです。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の主な特徴#
Ultralytics YOLO11をONNX形式にエクスポートする方法を説明する前に、ONNXモデル形式の主な特徴を確認しましょう。
ツール間の切り替え、異なるデバイスへのデプロイ、システムのアップグレードのいずれの場合でも、ONNXはすべてをスムーズに動作させるのに役立ちます。ONNXモデル形式が独自である理由は次のとおりです。
-
1つの標準形式: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)としてエクスポートします。これにより、さまざまなプラットフォームやデバイスへのデプロイが可能になります。
モデルをONNX形式に変換した後は、さまざまなプラットフォームにデプロイできます。
以下の例では、エクスポートしたYOLO11モデル(yolo11n.onnx)を読み込み、推論を実行する方法を示します。推論とは、トレーニング済みモデルを使用して新しいデータに対する予測を行うことです。この例では、バスの画像URLを使用してモデルをテストします。
このコードを実行すると、以下の出力画像がruns/detect/predictフォルダーに保存されます。

図3。画像上でエクスポートしたUltralytics YOLO11モデルを使用して推論を実行。
ONNX連携を選択すべきタイミング#
Ultralytics Pythonパッケージは、TorchScript、CoreML、TensorRT、ONNXなど、複数の形式へのモデルのエクスポートをサポートしています。それでは、なぜONNXを選ぶのでしょうか?
ONNXの特徴は、フレームワークに依存しない形式であることです。他の多くのエクスポート形式が特定のツールや環境に結び付いているのに対し、ONNXは標準化された形式と共通のオペレーターセットを使用します。そのため、移植性とハードウェアとの親和性が高く、クラウドサーバー、モバイルアプリ、エッジデバイスのいずれを扱う場合でも、クロスプラットフォームデプロイに適しています。
ONNX連携がUltralytics YOLO11プロジェクトに最適な選択肢となり得る理由は次のとおりです。
-
ポータブルなデプロイ:Ultralytics YOLO11モデルをONNXにエクスポートすれば、コードの変更や再トレーニングを行わずに、さまざまなプラットフォームへデプロイできます。
-
業界全体でのサポート: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や自動車業界におけるコンピュータービジョンなどのイノベーションを検討している場合は、ソリューションページをご覧ください。









