オープンニューラルネットワークエクスチェンジ(ONNX)形式を探求しましょう。Ultralytics ONNX にエクスポートする方法を学び、高速なクロスプラットフォーム展開とハードウェア最適化ONNX 。
ONNX Open Neural Network Exchange)は、機械学習モデルを表現するために設計されたオープンソース形式であり、様々なAIフレームワークやツール間の相互運用性を可能にします。これは深層学習のためのユニバーサル翻訳器として機能し、開発者がPyTorchなどの1つのフレームワークでモデルを構築できるようにします。 PyTorch、TensorFlow、Scikit-learnなど)でモデルを構築し、推論用に最適化された別の環境にシームレスにデプロイすることを可能にします。 共通の演算子セットと標準ファイル形式を定義することで、 ONNX 研究段階から本番環境へのモデル移行に従来必要だった複雑なカスタム変換スクリプトをONNX 。 この柔軟性は現代のAIワークフローにおいて極めて重要であり、 トレーニングは高性能なクラウドGPU上で実行されながら、 デプロイ先はエッジデバイス、モバイル端末、ウェブブラウザなど多様なハードウェアを対象とするケースが増えています。
人工知能の急速に進化する環境において、研究者やエンジニアは開発ライフサイクルの各段階で異なるツールを使用することが多い。データサイエンティストはPyTorch 柔軟性を好む一方、運用エンジニアは最適化されたパフォーマンスを必要とする。 TensorRT やOpenVINO 。 標準的な交換フォーマットがないため、これらのエコシステム間でモデルを移動することは困難でエラーが発生しやすい。
ONNX ギャップONNX 、計算グラフの共通定義を提供します。ONNXエクスポートされると、 ネットワーク構造(層、接続)とパラメータ(重み、バイアス)をフレームワークに依存しない方法で 表現する形式にシリアライズされます。 これにより、ハードウェアアクセラレーション向けに特別に調整された推論エンジン(ONNX など)が、 Linux、Windows、macOS、Android、iOSを含む複数のプラットフォームでモデルを効率的に実行できるようになります。
オープンニューラルネットワーク交換フォーマットを採用することは、AIプロジェクトにとっていくつかの戦略的利点をもたらします:
.onnx ファイルは、NVIDIA 、Intel 、または
モバイルNPU(ニューラル処理ユニット)上で、次のようなツールを使用して高速化できます。
OpenVINO またはCoreCoreML。
ONNX 汎用性により、様々な業界で欠かせない存在ONNX 。具体的な応用例を2つご紹介します:
リアルタイムの作物の生育状態を監視するために設計されたモバイルアプリケーションを考えてみましょう。 モデルは植物画像の大規模データセットを用いて高性能クラウドサーバーで学習される可能性がある。しかし、アプリは農家のスマートフォン上でオフライン動作する必要がある。学習済みモデルをONNXエクスポートすることで、開発ONNX Mobileを用いてモバイルアプリに統合できる。これにより、スマートフォンのプロセッサがローカルで物体検出を実行し、インターネット接続なしで害虫や病気を瞬時に特定することが可能となる。
電子商取引において、「バーチャル試着」機能は 姿勢推定を用いて、ユーザーのウェブカメラ映像に衣服を重ねて表示する可能性がある。 このモデルのトレーニングPythonわれる場合がありますが、デプロイ先はウェブブラウザです。ONNXを使用することで、モデルを変換し、ONNX Webを介してユーザーのブラウザで直接実行できます。これにより、クライアントのデバイス機能(WebGLまたはWebAssembly)を活用してコンピュータービジョンタスクを実行し、動画データがユーザーのコンピューター外に流出しないため、スムーズでプライバシーを保護した体験を保証します。
ONNX 他のモデル形式やツール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 を使用してエッジデバイスに直接展開され、事実上あらゆる環境で高性能なコンピュータービジョンを実現します。