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

Ultralytics YOLO11などのUltralytics YOLOモデルを、さまざまなハードウェアでのクロスプラットフォーム展開のためにONNX統合を使用してエクスポートする方法を学びます。
AIソリューションが最初に注目を集め始めたとき、ほとんどのモデルは管理された環境の強力なサーバーにデプロイされていました。しかし、テクノロジーが進歩するにつれて、デプロイメントはデータセンターをはるかに超えて拡大しました。
今日、AIモデルはクラウドサーバーやデスクトップからスマートフォンやエッジデバイスまで、あらゆるもの上で実行されています。この変化は、より高速な処理、オフライン機能、およびデータが生成される場所に近い場所で動作するよりスマートなシステムをサポートします。
特にそれが明確な分野の1つがコンピュータビジョンです。これは、機械が視覚データを解釈できるようにするAIの分野です。顔認識、自動運転、リアルタイムビデオ分析などのアプリケーションを推進するために使用されています。これらのユースケースの増加に伴い、多様なハードウェアとプラットフォームでスムーズに実行できるモデルの必要性も高まっています。
しかし、さまざまな展開ターゲットにわたってコンピュータビジョンモデルを展開することは、必ずしも簡単ではありません。デバイスは、ハードウェア、オペレーティングシステム、およびサポートされているフレームワークの点で異なるため、柔軟性と互換性が不可欠です。
Ultralytics YOLO11のようなコンピュータビジョンモデルをさまざまな形式でエクスポートできるオプションがあるのはそのためです。たとえば、UltralyticsがサポートするONNX(Open Neural Network Exchange)統合は、トレーニングとデプロイメントの間のギャップを埋めるための実用的な方法を提供します。ONNXは、モデルをフレームワークに依存せず、プラットフォーム全体でデプロイメントに対応できるようにするオープン形式です。
この記事では、UltralyticsがサポートするONNX統合について詳しく見ていき、柔軟なクロスプラットフォーム展開のためにYOLO11モデルをエクスポートする方法を探ります。
Open Neural Network Exchange(ONNX)は、機械学習モデルの標準フォーマットを定義するオープンソースプロジェクトです。元々MicrosoftとFacebookによって開発され、開発者はPyTorchのようなあるフレームワークでモデルをトレーニングし、TensorFlowのような別のフレームワークで実行できます。これにより、特にコンピュータビジョンのような分野において、AI開発がより柔軟で、協調的で、アクセスしやすくなります。
ONNXは、共通のオペレーターセットと統一されたファイル形式を提供し、さまざまなツール、フレームワーク、ランタイム、およびコンパイラ間でモデルを簡単に移動できるようにします。通常、あるフレームワークでトレーニングされたモデルは、別のフレームワークと簡単には互換性がありません。しかし、ONNXを使用すると、モデルを一度エクスポートして、CPU(中央処理装置)、GPU(グラフィックス処理装置)、モバイルデバイス、またはエッジハードウェアなど、ほぼどこにでもデプロイできます。
また、ONNX Runtimeは、ONNX形式でモデルを実行するために特別に開発された高性能な推論エンジンです。ONNXモデルを、サーバー、モバイルデバイス、エッジハードウェアなど、幅広いプラットフォームでより高速かつ効率的に実行できるように設計されています。ONNX Runtimeは、PyTorch、TensorFlow、TensorFlow Lite、scikit-learnなどの一般的なフレームワークと互換性があり、さまざまなワークフローに簡単に統合して、必要な場所にモデルをデプロイできます。
YOLO11をONNX形式にエクスポートする方法を説明する前に、ONNXモデル形式の主要な機能のいくつかを確認しましょう。
ツール間の切り替え、異なるデバイスへのデプロイ、システムのアップグレードなど、どのような場合でも、ONNXはすべてをスムーズに実行し続けるのに役立ちます。ONNXモデル形式をユニークにする理由をご紹介します。
Ultralytics YOLOモデル(Ultralytics YOLO11など)を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フォルダーに保存されます。
Ultralytics Pythonパッケージは、TorchScript、CoreML、TensorRT、ONNXなど、いくつかの形式へのモデルのエクスポートをサポートしています。では、なぜONNXを選択するのでしょうか?
ONNXの特筆すべき点は、フレームワークに依存しない形式であることです。他の多くのエクスポート形式が特定のツールや環境に結び付けられているのに対し、ONNXは標準化された形式と共有された演算子のセットを使用します。これにより、クラウドサーバー、モバイルアプリ、エッジデバイスなど、プラットフォームを問わず、移植性が高く、ハードウェアとの親和性が高く、クロスプラットフォームのデプロイに最適です。
ONNX統合がYOLO11プロジェクトに最適な選択肢となる理由を以下に示します。
次に、ONNX統合の助けを借りてYOLO11をデプロイできる、いくつかの実際のアプリケーションを見ていきましょう。
混雑した倉庫では、すべての製品やパッケージを常に監視することは困難です。コンピュータビジョンシステムは、作業員が棚にある製品を見つけたり、製品の数や種類などの情報を得たりするのに役立ちます。このようなシステムは、企業が膨大な在庫を自動的に管理し、倉庫作業員の時間を大幅に節約するのに役立ちます。
具体的には、スマート倉庫では、ONNXにエクスポートされたYOLO11モデルを使用して、カメラとエッジデバイスを使用してリアルタイムでアイテムを識別およびカウントできます。エクスポートされたモデルは、棚またはパレットをスキャンして、在庫レベル、不足しているアイテム、または空のスポットを検出するのに役立ちます。ONNXにエクスポートすると、モデルが軽量で効率的になるため、スマートカメラなどの小型エッジデバイスで直接実行でき、高価なサーバーや постоянныйクラウドアクセスは不要になります。
世界中の病院では、使用済みの手袋や注射器から、手術中に使用される器具(使い捨てまたは汚染されたハサミやメスなどの手術器具)まで、毎日大量の廃棄物が発生しています。実際、調査によると、病院は年間約500万トンの廃棄物を生成しており、これは1床あたり1日29ポンドの廃棄物に相当します。
このような廃棄物を適切に分別することは、衛生、安全、および規制遵守のために不可欠です。ONNX形式でエクスポートされたYOLO11モデルを使用することで、病院は廃棄物処理をリアルタイムで自動化し、監視できます。
例えば、手術室や廊下などのエリアにあるゴミ箱の近くにカメラを設置し、廃棄物を監視できます。さまざまな種類の医療廃棄物を認識するようにトレーニングされたカスタムYOLO11モデルは、映像を分析して何が捨てられているかを識別できます。使用済みの注射器が一般ゴミに入っているなど、誤ったゴミ箱に廃棄物が入った場合、システムはスタッフにライトや音で直ちに警告するように設定でき、汚染を防ぎ、コンプライアンスを確保できます。
作物の収穫時期を適切に知ることは、農産物の品質と農場全体の生産性の両方に大きな影響を与えます。従来、農家は経験と手作業による検査に頼っていましたが、最近の技術の進歩により、状況は変わり始めています。
現在、YOLO11のようなコンピュータビジョンの革新により、ONNX形式でエクスポートされ、農家は自動化と精度を現場に導入できます。ドローンやトラクターまたはポールに取り付けられたカメラを使用することで、農家は作物(トマト、リンゴ、小麦など)の画像をキャプチャできます。次に、YOLO11を使用して、色、サイズ、作物の分布などの主要な指標を検出できます。この情報に基づいて、農家は作物が収穫の準備ができているか、まだ成熟しているか、またはすでにピークを過ぎているかを判断できます。
ONNXは、移植性、クロスプラットフォーム互換性、フレームワークの相互運用性など、多くの利点を提供する一方で、留意すべきいくつかの制限事項があります。
Ultralytics YOLO11をONNXにエクスポートすると、トレーニング済みのコンピュータビジョンモデルを簡単に利用して、ラップトップ、モバイルデバイス、さらにはコンパクトなスマートカメラなど、ほぼどこにでもデプロイできます。ONNX統合により、単一のフレームワークやプラットフォームに縛られることなく、アプリケーションに最適な環境でモデルを実行できる柔軟性が得られます。
これにより、トレーニングから実際の展開への移行がより迅速かつ効率的になります。倉庫での在庫追跡であろうと、病院の廃棄物が正しく処分されていることを確認することであろうと、このセットアップはシステムの円滑な実行を支援し、エラーを減らし、貴重な時間を節約します。
コンピュータビジョンと AI についてもっと知りたいですか? GitHub リポジトリを探索し、コミュニティとつながり、ライセンスオプションを確認して、コンピュータビジョンプロジェクトを始めましょう。製造業における AIや自動車産業におけるコンピュータビジョンなどのイノベーションに関心がある場合は、ソリューションページをご覧ください。