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

AIソリューションが最初に注目を集め始めた頃、ほとんどのモデルは管理された環境下の強力なサーバー上でデプロイされていました。しかし、技術の進歩に伴い、デプロイメントはデータセンターをはるかに超えて拡大しています。
今日では、AIモデルはクラウドサーバーやデスクトップからスマートフォン、エッジデバイスに至るまで、あらゆる場所で動作しています。この変化は、より高速な処理、オフラインでの機能性、そしてデータが生成される場所に近いところで動作するよりスマートなシステムをサポートします。
このことが特に明確に表れている分野の一つが、機械が視覚データを解釈できるようにするAIの枝分かれであるコンピュータビジョンです。これは顔認識、自動運転、リアルタイムビデオ分析といったアプリケーションの推進に使用されています。これらのユースケースが増加するにつれて、多様なハードウェアやプラットフォーム間でスムーズに実行できるモデルの必要性も高まっています。
しかし、様々なデプロイメントターゲットにわたってコンピュータビジョンモデルをデプロイすることは、必ずしも単純ではありません。デバイスはハードウェア、オペレーティングシステム、サポートされるフレームワークの面で異なるため、柔軟性と互換性が不可欠です。
そのため、Ultralytics YOLO11のようなコンピュータビジョンモデルを異なるフォーマットにエクスポートするオプションを持つことが重要です。例えば、UltralyticsがサポートするONNX (Open Neural Network Exchange) 統合は、トレーニングとデプロイメントの間のギャップを埋める実用的な方法を提供します。ONNXは、モデルをフレームワーク非依存にし、プラットフォーム間でのデプロイを可能にするオープンフォーマットです。

図1。ONNXは、あるフレームワークでトレーニングされたモデルを別のフレームワークで簡単に実行するのに役立ちます。
この記事では、UltralyticsがサポートするONNX統合について詳しく解説し、柔軟なクロスプラットフォームデプロイメントのためにYOLO11モデルをエクスポートする方法を探ります。
Link to this sectionONNXおよびONNX Runtimeとは何か?#
Open Neural Network Exchangeは、機械学習モデルの標準フォーマットを定義するオープンソースプロジェクトです。元々はMicrosoftとFacebookによって開発され、開発者がPyTorchのようなフレームワークでモデルをトレーニングし、TensorFlowのような別のフレームワークで実行することを可能にします。これにより、特にコンピュータビジョンのような分野において、AI開発がより柔軟で協力的、かつアクセスしやすいものになります。
ONNXは共通の演算子セットと統一されたファイルフォーマットを提供し、異なるツール、フレームワーク、ランタイム、コンパイラ間でのモデルの移動を容易にします。通常、あるフレームワークでトレーニングされたモデルは別のフレームワークとの互換性が容易ではありませんが、ONNXを使用すれば、一度モデルをエクスポートするだけで、CPU (Central Processing Units)、GPU (Graphics Processing Units)、モバイルデバイス、またはエッジハードウェアなど、ほぼどこへでもデプロイできます。
また、ONNX Runtimeは、ONNXフォーマットのモデルを実行するために特別に開発された高性能な推論エンジンです。これは、サーバー、モバイルデバイス、エッジハードウェアを含む幅広いプラットフォーム全体で、ONNXモデルをより速く、より効率的に実行するように設計されています。ONNX RuntimeはPyTorch、TensorFlow、TensorFlow Lite、scikit-learnなどの人気のあるフレームワークと互換性があり、異なるワークフローへの統合や、必要な場所でのモデルデプロイを容易にします。

図2。ONNXおよびONNX Runtimeは、柔軟なクロスプラットフォームでのモデルデプロイメントを実現します。
Link to this sectionONNXの主な機能#
YOLO11をONNXフォーマットにエクスポートする方法を説明する前に、ONNXモデルフォーマットの主な機能を確認しましょう。
ツールの切り替え、異なるデバイスへのデプロイ、システムのアップグレードなど、どのような状況でもONNXはすべてをスムーズに動作させるのに役立ちます。ONNXモデルフォーマットがユニークである理由は以下の通りです:
-
1つの標準フォーマット:ONNXは、モデルがどのように構築されるか(レイヤーや演算など、構成要素と考えてください)を記述する共通の方法を使用します。モデルがONNXに変換されると、この標準に従うため、ONNXをサポートするあらゆるシステムがそれを理解し、実行できます。
-
後方互換性:ONNXは継続的に改善されていますが、古いモデルが新しいバージョンでも引き続き機能することを保証します。つまり、ONNXがアップデートされるたびにモデルを再トレーニングしたり再構築したりする必要はありません。
-
グラフベースのモデル設計:ONNXモデルは計算グラフとして構造化されており、各ノードは演算(レイヤーや数学関数など)を表し、エッジはデータの流れを示します。このグラフベースの設計により、同様の計算グラフ構造を利用する様々なシステムとの統合が容易になります。
-
開発者フレンドリーなツール:モデルを変換、検証、最適化するための幅広いツールが付属しています。これらのツールは、異なるフレームワーク間でモデルを移動するプロセスを簡素化し、特にコンピュータビジョンアプリケーションにおいてデプロイメントを高速化できます。
Link to this sectionONNX統合の概要#
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。画像に対してエクスポートされたYOLO11モデルを使用して推論を実行しています。
Link to this sectionいつONNX統合を選択すべきでしょうか?#
Ultralytics Pythonパッケージは、TorchScript、CoreML、TensorRT、ONNXなど、いくつかのフォーマットへのモデルのエクスポートをサポートしています。では、なぜONNXを選ぶのでしょうか?
ONNXが優れている点は、それがフレームワーク非依存のフォーマットであることです。他の多くのエクスポートフォーマットは特定のツールや環境に縛られていますが、ONNXは標準化されたフォーマットと共有の演算子セットを使用します。これにより、クラウドサーバー、モバイルアプリ、エッジデバイスのいずれを使用している場合でも、移植性が高く、ハードウェアとの親和性が良く、クロスプラットフォームデプロイメントに最適です。
ONNX統合がYOLO11プロジェクトにとって理想的な選択肢となり得る理由は以下の通りです:
-
移植可能なデプロイメント:一度ONNXにエクスポートすれば、YOLO11モデルはコードの変更や再トレーニングなしで様々なプラットフォームにデプロイできます。
-
業界全体のサポート:ONNXは主要なAI企業やフレームワークによってサポートされており、信頼性が高く広く受け入れられているフォーマットです。PDFがデバイス間で機能するのと同じように、長期的な互換性を保証します。
-
将来を見据えた開発:ONNXを使用することで、モデルへの投資を保護できます。ツールが進化しても、ONNXは新しい環境や異なる環境であってもモデルを関連性があり、使用可能な状態に保ちます。
-
ベンダーロックインの回避:一部のツールは特定のシステムの使用を強制するため、モデルが何を行えるかが制限される可能性があります。ONNXはそのようなことを回避し、単一のセットアップに縛られることなく、ニーズに最適なプラットフォームを選択できるようにします。
Link to this sectionYOLO11とONNXモデルフォーマットのアプリケーション#
次に、ONNX統合の助けを借りてYOLO11をデプロイできるいくつかの現実世界のアプリケーションを探ってみましょう。
Link to this sectionYOLO11を使用した倉庫の在庫追跡#
忙しい倉庫では、すべての製品やパッケージを常に監視し続けることは困難です。コンピュータビジョンシステムは、作業者が棚にある製品を見つけるのを助け、製品の数や種類などの洞察を得るのに役立ちます。このようなシステムは、企業が膨大な在庫を自動的に管理し、倉庫作業員の時間を大幅に節約するのに役立ちます。
具体的には、スマート倉庫において、ONNXにエクスポートされたYOLO11モデルを使用して、カメラとエッジデバイスでリアルタイムにアイテムを識別およびカウントできます。エクスポートされたモデルは、棚やパレットをスキャンして在庫レベル、不足しているアイテム、または空の場所を検出するのに役立ちます。ONNXへのエクスポートによりモデルが軽量で効率的になるため、スマートカメラのような小型のエッジデバイスで直接実行でき、高価なサーバーや常時クラウドへのアクセスが不要になります。

図4。YOLO11を使用してパッケージを検出およびカウントする例。
Link to this sectionYOLO11による病院の廃棄物管理#
世界中の病院では、使用済みの手袋や注射器から、手術中に使用される器具(ハサミやメスなどの使い捨てまたは汚染された手術用器具)に至るまで、毎日大量の廃棄物が発生しています。実際、研究によると、病院は年間約500万トンの廃棄物を生成しており、これは1日あたり1ベッドあたり29ポンドの廃棄物に相当します。
そのような廃棄物を適切に分別することは、衛生、安全性、および規制遵守のために不可欠です。ONNXフォーマットでエクスポートされたYOLO11モデルを使用することで、病院は廃棄物処理を自動化し、リアルタイムで監視できます。
例えば、手術室や廊下などのエリアにあるゴミ箱の近くに設置されたカメラは、廃棄されるアイテムを監視できます。異なる種類の医療廃棄物を認識するようにトレーニングされたカスタムYOLO11モデルは、映像を分析して何が捨てられているかを識別できます。通常のゴミに注射器が混入するなど、アイテムが間違ったゴミ箱に入れられた場合、光や音でスタッフに直ちに警告するシステムを構築でき、汚染を防ぎコンプライアンスを確保するのに役立ちます。

図5。YOLO11を使用して医療器具を検出する。
Link to this sectionYOLO11対応の作物モニタリング#
作物を収穫する適切な時期を知ることは、農作物の品質と農場の全体的な生産性の両方に大きな影響を与える可能性があります。伝統的に、農家は経験や手作業による検査に頼ってきましたが、近年の技術の進歩により、その状況は変わりつつあります。
現在、ONNXフォーマットでエクスポートされたYOLO11のようなコンピュータビジョンの革新により、農家は現場に自動化と精度をもたらすことができます。ドローンやトラクター、ポールに取り付けられたカメラを使用することで、農家は作物(トマト、リンゴ、小麦など)の画像をキャプチャできます。YOLO11は、色、サイズ、作物の分布などの重要な指標を検出するために使用できます。この情報に基づいて、農家は作物が収穫の準備ができているか、まだ成熟中か、あるいはすでにピークを過ぎているかを判断できます。

図6。YOLO11を使用してドローンの航空映像内の農作物を検出できます。
Link to this section考慮すべきONNXの制限事項#
ONNXは移植性、クロスプラットフォーム互換性、フレームワークの相互運用性など数多くの利点を提供しますが、留意すべきいくつかの制限事項があります:
-
モデルサイズ:モデルをONNXフォーマットに変換すると、元のフォーマットと比較してファイルサイズが大きくなることがあります。量子化やプルーニングなどの手法は、パフォーマンスに大きな影響を与えずにモデルサイズを削減することで、この問題を軽減するのに役立ちます。
-
ランタイムの互換性:ONNX Runtimeはクロスプラットフォームの互換性を考慮して設計されていますが、パフォーマンスやサポートはハードウェアやオペレーティングシステムによって異なる場合があります。
-
デバッグの課題:ONNXモデルのデバッグは、PyTorchやTensorFlowなどのネイティブフレームワークよりも複雑になる可能性があります。エラーメッセージの説明が不十分な場合があり、問題の特定が難しくなることがあります。ただし、モデル可視化のためのNetronやONNX Runtimeのログ機能といったツールは、トラブルシューティングを支援できます。
Link to this section重要なポイント#
Ultralytics YOLO11をONNXにエクスポートすることで、トレーニング済みのコンピュータビジョンモデルを取得し、ラップトップ、モバイルデバイス、さらにはコンパクトなスマートカメラなど、ほぼどこにでも簡単にデプロイできます。ONNX統合を使用すれば、単一のフレームワークやプラットフォームに縛られることはなく、アプリケーションに最適な環境でモデルを実行する柔軟性が得られます。
これにより、トレーニングから現実世界へのデプロイメントへの移行がより迅速かつ効率的になります。倉庫の在庫を追跡している場合でも、病院の廃棄物が適切に処分されていることを確認している場合でも、この設定はシステムをよりスムーズに動作させ、エラーを減らし、貴重な時間を節約するのに役立ちます。
コンピュータビジョンとAIについて詳しく知りたいですか?GitHubリポジトリを探索し、コミュニティとつながり、ライセンスオプションを確認して、コンピュータビジョンプロジェクトを立ち上げましょう。製造業におけるAIや自動車業界におけるコンピュータビジョンといった革新的な技術を探求している場合は、ソリューションページにアクセスして詳細をご覧ください。






