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

この記事では、Ultralytics サポートするONNX 統合を詳しく見ていき、柔軟でクロスプラットフォームな展開のためにYOLO11 モデルをエクスポートする方法を探ります。
Open Neural Network Exchangeは、機械学習モデルの標準フォーマットを定義するオープンソースプロジェクトだ。もともとはMicrosoft フェイスブックによって開発されたもので、開発者は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 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フォルダに保存される。

Ultralytics Python パッケージは、TorchScript、CoreML、TensorRT、ONNX含むいくつかのフォーマットへのモデルのエクスポートをサポートしています。では、なぜONNX選ぶのでしょうか?
ONNX 特徴は、フレームワークにとらわれないフォーマットであることです。他の多くのエクスポートフォーマットが特定のツールや環境に縛られているのに対し、ONNX 標準化されたフォーマットと共有されたオペレータセットを使用しています。このため、移植性が高く、ハードウェアにやさしく、クラウドサーバー、モバイルアプリ、エッジデバイスなど、クロスプラットフォームの展開に理想的です。
ONNX 統合がYOLO11 プロジェクトに理想的な選択となりうる理由は以下の通りです:
次に、YOLO11 ONNX 統合の助けを借りて展開できる実際のアプリケーションをいくつか探ってみよう。
混雑した倉庫では、すべての製品やパッケージを常に監視することは困難です。コンピュータビジョンシステムは、作業員が棚にある製品を見つけたり、製品の数や種類などの情報を得たりするのに役立ちます。このようなシステムは、企業が膨大な在庫を自動的に管理し、倉庫作業員の時間を大幅に節約するのに役立ちます。
具体的には、スマート倉庫において、ONNX エクスポートされたYOLO11 モデルは、カメラやエッジ・デバイスを使ってリアルタイムで商品を識別し、カウントするのに使うことができる。エクスポートされたモデルは、棚やパレットをスキャンして、在庫レベル、欠品、空所をdetect のに役立ちます。ONNX エクスポートすることで、モデルは軽量かつ効率的になり、スマートカメラなどの小型エッジデバイスで直接実行できるため、高価なサーバーや常時クラウドにアクセスする必要がなくなります。

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

作物の収穫時期を適切に知ることは、農産物の品質と農場全体の生産性の両方に大きな影響を与えます。従来、農家は経験と手作業による検査に頼っていましたが、最近の技術の進歩により、状況は変わり始めています。
現在、ONNX フォーマットでエクスポートされるYOLO11ようなコンピュータ・ビジョンの革新により、農家は自動化と精度を畑に持ち込むことができる。ドローンやトラクターや支柱に取り付けたカメラを使って、農家は作物(トマト、リンゴ、小麦など)の画像を撮影することができる。その後、YOLO11 使用して、作物の色、大きさ、分布などの重要な指標をdetect ことができる。この情報に基づいて、農家は作物が収穫の準備ができているのか、まだ成熟していないのか、それともすでにピークを過ぎているのかを判断できる。

ONNX 、移植性、クロスプラットフォーム互換性、フレームワークの相互運用性など、多くの利点を提供するが、留意すべき制限もある。
Ultralytics YOLO11 ONNX エクスポートすることで、学習済みのコンピュータビジョンモデルを、ラップトップ、モバイルデバイス、あるいはコンパクトなスマートカメラなど、ほとんどどこにでも簡単に導入することができます。ONNX 統合により、単一のフレームワークやプラットフォームに縛られることなく、アプリケーションに最適な環境で柔軟にモデルを実行することができます。
これにより、トレーニングから実際の展開への移行がより迅速かつ効率的になります。倉庫での在庫追跡であろうと、病院の廃棄物が正しく処分されていることを確認することであろうと、このセットアップはシステムの円滑な実行を支援し、エラーを減らし、貴重な時間を節約します。
コンピュータビジョンと AI についてもっと知りたいですか? GitHub リポジトリを探索し、コミュニティとつながり、ライセンスオプションを確認して、コンピュータビジョンプロジェクトを始めましょう。製造業における AIや自動車産業におけるコンピュータビジョンなどのイノベーションに関心がある場合は、ソリューションページをご覧ください。