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

AIソリューションが最初に注目を集め始めた頃、ほとんどのモデルは管理された環境の強力なサーバー上でデプロイされていました。しかし、テクノロジーの進歩に伴い、デプロイはデータセンターをはるかに超えて拡大しています。
今日では、AIモデルはクラウドサーバーやデスクトップからスマートフォン、エッジデバイスに至るまで、あらゆる場所で動作しています。この変化は、より高速な処理、オフラインでの機能性、そしてデータが生成される場所に近いところで動作するよりスマートなシステムをサポートします。
これが特に明確に現れている分野の1つが、機械が視覚データを解釈できるようにするAIの分野であるコンピュータビジョンです。これは、顔認識、自動運転、リアルタイムビデオ解析などのアプリケーションを駆動するために使用されています。こうしたユースケースの増加に伴い、多様なハードウェアやプラットフォーム全体でスムーズに実行できるモデルの必要性も高まっています。
しかし、様々なデプロイメントターゲットにわたってコンピュータビジョンモデルをデプロイすることは、必ずしも単純ではありません。デバイスはハードウェア、オペレーティングシステム、サポートされるフレームワークの面で異なるため、柔軟性と互換性が不可欠です。
そのため、Ultralytics YOLO11などのコンピュータビジョンモデルをさまざまなフォーマットにエクスポートするオプションを持つことが重要になります。例えば、UltralyticsがサポートするONNX(Open Neural Network Exchange)統合は、トレーニングとデプロイの間のギャップを埋める実用的な方法を提供します。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の主な機能#
export 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プロジェクトにとって理想的な選択肢となる理由は以下の通りです。
-
ポータブルなデプロイ: 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や自動車業界におけるコンピュータビジョンなどのイノベーションを検討している場合は、ソリューションページにアクセスして詳細をご覧ください。






