Open Neural Network Exchange (ONNX) フォーマットを探りましょう。高速なクロスプラットフォーム展開とハードウェア最適化のために、Ultralytics YOLO26をONNXにエクスポートする方法を学びましょう。
ONNX (Open Neural Network Exchange)は、機械学習モデルを表現するために設計されたオープンソース形式であり、様々なAIフレームワークとツール間の相互運用性を可能にします。これはディープラーニングのユニバーサル翻訳機として機能し、開発者がPyTorch、TensorFlow、Scikit-learnなどの1つのフレームワークでモデルを構築し、推論に最適化された別の環境にシームレスにデプロイできるようにします。共通のオペレーターセットと標準ファイル形式を定義することで、ONNXは、モデルを研究から本番環境に移行するために歴史的に必要とされていた複雑なカスタム変換スクリプトの必要性を排除します。この柔軟性は、トレーニングが強力なクラウドGPUで行われ、デプロイがエッジデバイス、携帯電話、ウェブブラウザなどの多様なハードウェアをターゲットとする現代のAIワークフローにとって不可欠です。
急速に進化する 人工知能の分野では、研究者や エンジニアは、開発ライフサイクルの異なる段階で異なるツールを使用することがよくあります。データサイエンティストは実験やトレーニングにPyTorchの柔軟性を好むかもしれませんが、プロダクションエンジニアはデプロイメントのために TensorRTやOpenVINOの最適化されたパフォーマンスを必要とします。 標準的な交換フォーマットがなければ、これらのエコシステム間でモデルを移動させることは困難でエラーが発生しやすくなります。
ONNXは、計算グラフの共有定義を提供することでこのギャップを埋めます。モデルがONNXにエクスポートされると、ネットワーク構造(層、接続)とパラメータ(重み、バイアス)をフレームワークに依存しない形で捉えるフォーマットにシリアライズされます。これにより、ONNX Runtimeのようなハードウェアアクセラレーションに特化して調整された推論エンジンが、Linux、Windows、macOS、Android、iOSを含む複数のプラットフォームでモデルを効率的に実行できるようになります。
Open Neural Network Exchange (ONNX) フォーマットを採用することは、AIプロジェクトにいくつかの戦略的な利点をもたらします。
.onnx ファイルは、NVIDIA GPU、Intel CPU、またはモバイルNPU(Neural Processing Units)上で、ツールを使用して高速化できます。
OpenVINO またはCoreML。
ONNXの汎用性により、様々な産業で不可欠な存在となっています。その応用例を2つ具体的に示します。
リアルタイム作物健康モニタリング用に設計されたモバイルアプリケーションを考えてみましょう。モデルは、植物画像の大きなデータセットを使用して強力なクラウドサーバーでトレーニングされるかもしれません。しかし、このアプリは農家のスマートフォンでオフラインで実行する必要があります。トレーニング済みモデルをONNXにエクスポートすることで、開発者はONNX Runtime Mobileを使用してモバイルアプリに統合できます。これにより、スマートフォンのプロセッサがローカルでobject detectionを実行し、インターネット接続なしで害虫や病気を即座に特定できます。
eコマースでは、「バーチャル試着」機能が姿勢推定を使用して、ユーザーのウェブカメラフィードに服を重ね合わせる場合があります。このモデルの訓練はpythonで行われるかもしれませんが、デプロイターゲットはウェブブラウザです。ONNXを使用すると、モデルは変換され、ONNX Runtime Webを介してユーザーのブラウザで直接実行できます。これにより、クライアントのデバイス機能(WebGLまたはWebAssembly)を利用してコンピュータビジョンタスクを実行し、動画データがユーザーのコンピュータから離れることがないため、スムーズでプライバシーを保護した体験が保証されます。
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 Runtimeを使用してエッジデバイスに直接デプロイされ、ほぼあらゆる環境で高性能なコンピュータービジョンを利用可能にします。

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