Yolo 深圳
深セン
今すぐ参加

ONNX 統合を使用してUltralytics YOLO モデルをエクスポートする

Abirami Vina

4分で読めます

2025年5月2日

様々なハードウェアにクロスプラットフォームで展開するために、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 ランタイムとは何ですか?

Open Neural Network Exchangeは、機械学習モデルの標準フォーマットを定義するオープンソースプロジェクトだ。もともとはMicrosoft フェイスブックによって開発されたもので、開発者はPyTorchようなあるフレームワークでモデルを訓練し、TensorFlowような別のフレームワークでそれを実行することができる。これにより、特にコンピューター・ビジョンのような分野では、AI開発がより柔軟で、協調的で、利用しやすくなる。

ONNX 、共通の演算子と統一されたファイル形式を提供し、異なるツール、フレームワーク、ランタイム、コンパイラ間でのモデルの移動を容易にします。通常、あるフレームワークでトレーニングされたモデルは、他のフレームワークと簡単に互換性を持つことはできません。しかし、ONNX使えば、モデルを一度エクスポートすれば、CPU(中央演算処理装置)、GPU(グラフィックス・プロセッシング・ユニット)、モバイルデバイス、エッジハードウェアなど、ほとんどどこにでも展開することができます。

また、ONNX Runtimeは、ONNX 形式のモデルを実行するために特別に開発された高性能推論エンジンです。サーバー、モバイルデバイス、エッジハードウェアなど、幅広いプラットフォームでONNX モデルをより高速かつ効率的に実行できるように設計されています。ONNX Runtimeは、PyTorch、TensorFlow、TensorFlow Lite、scikit-learnなどの一般的なフレームワークと互換性があるため、さまざまなワークフローに簡単に統合でき、必要な場所にモデルを配置できます。

図2. ONNX ONNX Runtimeは、柔軟なクロスプラットフォームでのモデル展開を可能にします。

ONNX主な特徴 

YOLO11 ONNX フォーマットにエクスポートする方法を説明する前に、ONNX モデルフォーマットの主な特徴をチェックしておこう。 

ツール間の切り替え、異なるデバイスへの展開、システムのアップグレードなど、ONNX すべてをスムーズに実行するのに役立ちます。ONNX モデルフォーマットの特徴は以下の通りです:

  • 一つの標準フォーマット:ONNX 、レイヤーやオペレーション(ビルディング・ブロックのようなものと考えてください)など、モデルの構築方法を記述するための共通の方法を使用します。モデルがONNX変換されると、ONNX サポートするどのシステムでも理解し実行できるように、この標準に従います。
  • 下位互換性: ONNX 改良を続けていますが、古いモデルでも新しいバージョンで動作することを保証しています。つまり、ONNX アップデートされるたびに、モデルを再トレーニングしたり、再構築したりする必要はありません。
  • グラフベースのモデル設計: ONNX モデルは計算グラフとして構成され、各ノードは演算(レイヤーや数学関数など)を表し、エッジはデータの流れを示します。このグラフベースの設計により、同様の計算グラフ構造を利用するさまざまなシステムとの統合が容易になります。
  • 開発者向けの使いやすいツール: モデルの変換、検証、最適化に役立つ幅広いツールが付属しています。これらのツールは、異なるフレームワーク間でのモデルの移動プロセスを簡素化し、特にコンピュータビジョンアプリケーションの場合、デプロイを高速化できます。

ONNX 統合の概要

Ultralytics YOLO YOLO11 ようなUltralytics YOLO モデルを ONNX フォーマットでエクスポートするのは簡単で、数ステップでできます。 

開始するには、'pip'のようなパッケージマネージャを使用してUltralytics Python パッケージをインストールします。これは、コマンドプロンプトまたはターミナルで"pip installultralytics"コマンドを実行することで開始できます。

Ultralytics パッケージを使用すると、様々なコンピュータビジョンタスクのためのモデルのトレーニング、テスト、微調整、エクスポート、デプロイを簡単に行うことができます。Ultralyticsのインストール中に問題が発生した場合は、「よくある問題」ガイドを参照して解決策やヒントを得ることができます。

Ultralytics パッケージがインストールされたら、以下のコードを使用して、YOLO11 モデルをロードし、ONNX フォーマットにエクスポートすることができます。この例では、事前にトレーニングされたYOLO11 モデル(yolo11n.pt)をロードし、ONNX ファイル(yolo11nonnx)としてエクスポートします。

モデルをONNX フォーマットに変換した後、様々なプラットフォームで展開することができます。 

以下の例は、エクスポートされたYOLO11 モデル(yolo11nonnx)をロードし、推論を実行する方法を示しています。推論とは、単純に新しいデータに対して予測を行うために学習済みモデルを使用することを意味します。今回は、バスの画像のURLを使ってモデルをテストします。

このコードを実行すると、以下の出力画像がdetect/detect/predictフォルダに保存される。

図3.エクスポートされたYOLO11 モデルを使った画像上での推論の実行。

どのような場合にONNX 統合を選択すべきでしょうか?

Ultralytics Python パッケージは、TorchScript、CoreML、TensorRT、ONNX含むいくつかのフォーマットへのモデルのエクスポートをサポートしています。では、なぜONNX選ぶのでしょうか?

ONNX 特徴は、フレームワークにとらわれないフォーマットであることです。他の多くのエクスポートフォーマットが特定のツールや環境に縛られているのに対し、ONNX 標準化されたフォーマットと共有されたオペレータセットを使用しています。このため、移植性が高く、ハードウェアにやさしく、クラウドサーバー、モバイルアプリ、エッジデバイスなど、クロスプラットフォームの展開に理想的です。 

ONNX 統合がYOLO11 プロジェクトに理想的な選択となりうる理由は以下の通りです:

  • ポータブルなデプロイメント:一度ONNXエクスポートされたYOLO11 モデルは、コードの変更や再トレーニングをすることなく、様々なプラットフォームに展開することができます。
  • 業界全体のサポート: ONNX 、主要なAI企業やフレームワークによってサポートされており、信頼性が高く、広く受け入れられているフォーマットです。これは、PDFがデバイス間で機能するのと同じように、長期的な互換性を保証します。
  • 将来を見据えた開発: ONNX 使用することで、モデルへの投資を保護することができます。ツールの進化に伴い、ONNX 、新しい環境や異なる環境においても、あなたのモデルを適切で使いやすいものに保ちます。
  • ベンダーに縛られない:ツールの中には、その会社のシステムしか使えないという縛りがあり、モデルのできることが制限されてしまうものもあります。ONNX 、一つのセットアップにとらわれることなく、あなたのニーズに最適なプラットフォームを選択できるようにすることで、このような事態を回避しています。

YOLO11 ONNX モデル・フォーマットのアプリケーション

次に、YOLO11 ONNX 統合の助けを借りて展開できる実際のアプリケーションをいくつか探ってみよう。

YOLO11使用した倉庫での在庫追跡

混雑した倉庫では、すべての製品やパッケージを常に監視することは困難です。コンピュータビジョンシステムは、作業員が棚にある製品を見つけたり、製品の数や種類などの情報を得たりするのに役立ちます。このようなシステムは、企業が膨大な在庫を自動的に管理し、倉庫作業員の時間を大幅に節約するのに役立ちます。

具体的には、スマート倉庫において、ONNX エクスポートされたYOLO11 モデルは、カメラやエッジ・デバイスを使ってリアルタイムで商品を識別し、カウントするのに使うことができる。エクスポートされたモデルは、棚やパレットをスキャンして、在庫レベル、欠品、空所をdetect のに役立ちます。ONNX エクスポートすることで、モデルは軽量かつ効率的になり、スマートカメラなどの小型エッジデバイスで直接実行できるため、高価なサーバーや常時クラウドにアクセスする必要がなくなります。

図4. YOLO11 使ったパッケージのdetect カウントの例。

YOLO11病院廃棄物管理

世界中の病院では、使用済みの手袋や注射器から、手術中に使用される器具(使い捨てまたは汚染されたハサミやメスなどの手術器具)まで、毎日大量の廃棄物が発生しています。実際、調査によると、病院は年間約500万トンの廃棄物を生成しており、これは1床あたり1日29ポンドの廃棄物に相当します。 

このような廃棄物を適切に分別することは、衛生、安全、そして規制に従うために不可欠です。ONNX フォーマットでエクスポートされたYOLO11 モデルを使えば、病院は廃棄物処理を自動化し、リアルタイムでモニターすることができます。

例えば、手術室や廊下などの廃棄物入れの近くにカメラを設置すれば、廃棄される物品を監視することができる。さまざまな種類の医療廃棄物を認識するように訓練されたカスタムYOLO11 モデルが映像を分析し、何が捨てられているかを特定することができる。使用済みの注射器が通常のゴミ箱に入っているなど、間違ったゴミ箱に入ってしまった場合、システムは直ちに光や音でスタッフに警告するよう設定することができ、汚染を防ぎ、コンプライアンスを確保するのに役立ちます。

図5.医療器具のdetect YOLO11 使用。

YOLO11作物モニタリング

作物の収穫時期を適切に知ることは、農産物の品質と農場全体の生産性の両方に大きな影響を与えます。従来、農家は経験と手作業による検査に頼っていましたが、最近の技術の進歩により、状況は変わり始めています。

現在、ONNX フォーマットでエクスポートされるYOLO11ようなコンピュータ・ビジョンの革新により、農家は自動化と精度を畑に持ち込むことができる。ドローンやトラクターや支柱に取り付けたカメラを使って、農家は作物(トマト、リンゴ、小麦など)の画像を撮影することができる。その後、YOLO11 使用して、作物の色、大きさ、分布などの重要な指標をdetect ことができる。この情報に基づいて、農家は作物が収穫の準備ができているのか、まだ成熟していないのか、それともすでにピークを過ぎているのかを判断できる。

図6.YOLO11 ドローンの空撮映像から農作物をdetect のに使用できる。 

ONNX 制限事項

ONNX 、移植性、クロスプラットフォーム互換性、フレームワークの相互運用性など、多くの利点を提供するが、留意すべき制限もある。

  • モデルのサイズ:モデルをONNX 形式に変換すると、元の形式に比べてファイルサイズが大きくなることがあります。量子化やプルーニングのようなテクニックは、パフォーマンスに大きな影響を与えることなくモデルサイズを小さくすることで、この問題を軽減するのに役立ちます。
  • ランタイムの互換性: ONNX ランタイムは、クロスプラットフォーム互換のために設計されていますが、ハードウェアやオペレーティングシステムによって、パフォーマンスやサポートが異なる場合があります。 
  • デバッグの課題: ONNX モデルのデバッグは、PyTorch TensorFlowようなネイティブフレームワークよりも複雑になる可能性がある。エラーメッセージの説明が少なく、問題を特定するのが難しくなります。しかし、モデルを可視化するNetronやONNX Runtimeのロギング機能のようなツールは、トラブルシューティングを支援します。

主なポイント

Ultralytics YOLO11 ONNX エクスポートすることで、学習済みのコンピュータビジョンモデルを、ラップトップ、モバイルデバイス、あるいはコンパクトなスマートカメラなど、ほとんどどこにでも簡単に導入することができます。ONNX 統合により、単一のフレームワークやプラットフォームに縛られることなく、アプリケーションに最適な環境で柔軟にモデルを実行することができます。 

これにより、トレーニングから実際の展開への移行がより迅速かつ効率的になります。倉庫での在庫追跡であろうと、病院の廃棄物が正しく処分されていることを確認することであろうと、このセットアップはシステムの円滑な実行を支援し、エラーを減らし、貴重な時間を節約します。

コンピュータビジョンと AI についてもっと知りたいですか? GitHub リポジトリを探索し、コミュニティとつながり、ライセンスオプションを確認して、コンピュータビジョンプロジェクトを始めましょう。製造業における AI自動車産業におけるコンピュータビジョンなどのイノベーションに関心がある場合は、ソリューションページをご覧ください。 

AIの未来を
共に築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。

無料ではじめる