Yolo 深圳
深セン
今すぐ参加
用語集

ONNX (オープン・ニューラル・ネットワーク・エクスチェンジ)

オープンニューラルネットワークエクスチェンジ(ONNX)形式を探求しましょう。Ultralytics ONNX にエクスポートする方法を学び、高速なクロスプラットフォーム展開とハードウェア最適化ONNX 。

ONNX Open Neural Network Exchange)は、機械学習モデルを表現するために設計されたオープンソース形式であり、様々なAIフレームワークやツール間の相互運用性を可能にします。これは深層学習のためのユニバーサル翻訳器として機能し、開発者がPyTorchなどの1つのフレームワークでモデルを構築できるようにします。 PyTorch、TensorFlow、Scikit-learnなど)でモデルを構築し、推論用に最適化された別の環境にシームレスにデプロイすることを可能にします。 共通の演算子セットと標準ファイル形式を定義することで、 ONNX 研究段階から本番環境へのモデル移行に従来必要だった複雑なカスタム変換スクリプトをONNX 。 この柔軟性は現代のAIワークフローにおいて極めて重要であり、 トレーニングは高性能なクラウドGPU上で実行されながら、 デプロイ先はエッジデバイス、モバイル端末、ウェブブラウザなど多様なハードウェアを対象とするケースが増えています。

現代ONNX の役割

人工知能の急速に進化する環境において、研究者やエンジニアは開発ライフサイクルの各段階で異なるツールを使用することが多い。データサイエンティストはPyTorch 柔軟性を好む一方、運用エンジニアは最適化されたパフォーマンスを必要とする。 TensorRT やOpenVINO 。 標準的な交換フォーマットがないため、これらのエコシステム間でモデルを移動することは困難でエラーが発生しやすい。

ONNX ギャップONNX 、計算グラフの共通定義を提供します。ONNXエクスポートされると、 ネットワーク構造(層、接続)とパラメータ(重み、バイアス)をフレームワークに依存しない方法で 表現する形式にシリアライズされます。 これにより、ハードウェアアクセラレーション向けに特別に調整された推論エンジン(ONNX など)が、 Linux、Windows、macOS、Android、iOSを含む複数のプラットフォームでモデルを効率的に実行できるようになります。

ONNXを利用する主な利点

オープンニューラルネットワーク交換フォーマットを採用することは、AIプロジェクトにとっていくつかの戦略的利点をもたらします:

  • フレームワーク相互運用性:開発者は単一エコシステムに縛られることなく、フレームワークを切り替えられます。Ultralytics Python モデルを学習させ、C++アプリケーションやWebベースのJavaScript環境で使用するためにエクスポートできます。
  • ハードウェア最適化: 多くのハードウェアメーカーは、ONNXと連携する専用実行プロバイダーを提供しています。これは単一の .onnx ファイルは、NVIDIA 、Intel 、または モバイルNPU(ニューラル処理ユニット)上で、次のようなツールを使用して高速化できます。 OpenVINO またはCoreCoreML。
  • 高速推論: ONNX は、ノード融合や定数折り畳みといったグラフ最適化を適用し、推論レイテンシを大幅に削減します。これは自律走行車や高速製造ラインなどのリアルタイムアプリケーションに不可欠です。
  • 簡素化されたデプロイメント: 各トレーニングフレームワークごとに個別のデプロイメントパイプラインを維持する代わりに、 エンジニアリングチームはONNX をデリバリー形式ONNX 標準化でき、 ModelOpsプロセスを効率化できます。

実際のアプリケーション

ONNX 汎用性により、様々な業界で欠かせない存在ONNX 。具体的な応用例を2つご紹介します:

1. モバイル端末におけるエッジAI

リアルタイムの作物の生育状態を監視するために設計されたモバイルアプリケーションを考えてみましょう。 モデルは植物画像の大規模データセットを用いて高性能クラウドサーバーで学習される可能性がある。しかし、アプリは農家のスマートフォン上でオフライン動作する必要がある。学習済みモデルをONNXエクスポートすることで、開発ONNX Mobileを用いてモバイルアプリに統合できる。これにより、スマートフォンのプロセッサがローカルで物体検出を実行し、インターネット接続なしで害虫や病気を瞬時に特定することが可能となる。

2. クロスプラットフォームWeb推論

電子商取引において、「バーチャル試着」機能は 姿勢推定を用いて、ユーザーのウェブカメラ映像に衣服を重ねて表示する可能性がある。 このモデルのトレーニングPythonわれる場合がありますが、デプロイ先はウェブブラウザです。ONNXを使用することで、モデルを変換し、ONNX Webを介してユーザーのブラウザで直接実行できます。これにより、クライアントのデバイス機能(WebGLまたはWebAssembly)を活用してコンピュータービジョンタスクを実行し、動画データがユーザーのコンピューター外に流出しないため、スムーズでプライバシーを保護した体験を保証します。

関連用語との比較

ONNX 他のモデル形式やツールONNX 区別することは有益です:

  • vs.TensorRT: ONNX 交換フォーマット ONNX 一方、 TensorRTNVIDIA 専用の推論エンジンおよび最適化ツールです。一般的なワークフローでは、ONNX モデルをONNX にエクスポートし、その後そのONNONNX ファイルをTensorRT パースTensorRT NVIDIA 上で最大のスループットTensorRT 。
  • TensorFlow SavedModel との比較: SavedModel TensorFlow のネイティブシリアライズ形式SavedModel TensorFlowのネイティブシリアライズ形式です。Google 内では堅牢ですが、 ONNXほど普遍的な互換性はありません。より広範なプラットフォームサポートONNX SavedModelONNX に変換するツールがしばしば存在します。
  • vs.CoreML:CoreML はAppleの デバイス上での機械学習用フレームワークです。異なる技術ながら、モデルは頻繁にPyTorch ONNX変換され、 ONNX CoreML ONNX CoreML または直接)変換されて、iPhoneやiPad上で効率的に動作します。

ONNX Ultralytics ONNX エクスポート

Ultralytics は、YOLO26のような最先端モデルをONNX に変換するプロセスを簡素化します。エクスポート機能はライブラリに直接組み込まれており、複雑なグラフ探索や演算子マッピングを自動的に処理します。

以下の例は、事前学習済みYOLO26モデルをONNX にエクスポートしてデプロイする方法を示しています:

from ultralytics import YOLO

# Load the YOLO26n model (Nano version recommended for edge deployment)
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
# The 'dynamic' argument enables variable input sizes
path = model.export(format="onnx", dynamic=True)

print(f"Model exported successfully to: {path}")

一度エクスポートされると、この .onnx ファイルは以下で利用できます Ultralytics 管理用ONNX を使用してエッジデバイスに直接展開され、事実上あらゆる環境で高性能なコンピュータービジョンを実現します。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加