AIの採用は、AIソリューションが利用しやすいかどうかにかかっており、その大部分は、人々がすでに持っているハードウェア上で簡単に展開できるようにすることである。GPU(グラフィック・プロセッシング・ユニット)上でAIモデルを実行することは、パフォーマンスと並列処理能力の面で素晴らしい選択肢だ。
しかし現実には、特にエッジ環境や日常的なラップトップでは、誰もがハイエンドGPUを利用できるわけではありません。だからこそ、中央演算処理装置(CPU)、統合GPU、ニューラル・プロセッシング・ユニット(NPU)のような、より広く利用可能なハードウェアで効率的に実行できるようにモデルを最適化することが非常に重要なのです。
例えば、コンピュータ・ビジョンは、機械がリアルタイムで画像やビデオストリームを分析し、理解することを可能にするAIの一分野です。Ultralytics YOLO11の ようなビジョンAIモデルは、物体の検出やインスタンスのセグメンテーションなどの重要なタスクをサポートし、小売分析から医療診断までのアプリケーションを強力にサポートします。
これは、CPU、GPU、NPU間でAI推論を最適化して実行するためのオープンソースプロジェクトである。
この統合により、CPU上では最大3倍高速な推論、Intel GPUやNPU上では高速化されたパフォーマンスで、YOLO11モデルのエクスポートとデプロイが容易になります。この記事では、Ultralytics Pythonパッケージを使用してYOLO11モデルをOpenVINOフォーマットにエクスポートし、推論に使用する方法を説明します。さっそく始めましょう!
UltralyticsがサポートするOpenVINO統合の詳細に入る前に、YOLO11が信頼性が高く、インパクトのあるコンピュータビジョンモデルである理由を詳しく見ていきましょう。YOLO11は、Ultralytics YOLOシリーズの最新モデルで、スピードと精度の両方が大幅に強化されています。
その主なハイライトの一つは効率性である。例えば、Ultralytics YOLO11mは、Ultralytics YOLOv8mよりも22%少ないパラメーター数でありながら、COCOデータセットでより高い平均精度(mAP)を達成しています。これは、より高速に動作し、より正確にオブジェクトを検出することを意味し、パフォーマンスと応答性が重要なリアルタイムアプリケーションに最適です。
YOLO11は、物体検出以外にも、インスタンス分割、姿勢推定、画像分類、物体追跡、指向性バウンディングボックス検出など、様々な高度なコンピュータビジョンタスクをサポートしています。YOLO11は開発者にも優しく、Ultralytics Pythonパッケージは、モデルのトレーニング、評価、デプロイのためのシンプルで一貫したインターフェースを提供します。
これに加えて、Ultralytics Pythonパッケージは、OpenVINO、ONNX、TorchScriptを含む様々な統合と複数のエクスポート形式をサポートしており、YOLO11を様々なデプロイメント・パイプラインに簡単に統合することができます。クラウド・インフラストラクチャ、エッジ・デバイス、組み込みシステムのいずれをターゲットにしていても、エクスポート・プロセスは簡単で、ハードウェアのニーズに適応できます。
OpenVINO™(Open Visual Inference and Neural Network Optimization)は、AI推論を最適化し、幅広いハードウェアに展開するためのオープンソースのツールキットです。開発者は、CPU、統合GPU、ディスクリートGPU、NPU、FPGA(Field-Programmable Gate Array)など、さまざまなインテルプラットフォームで高性能な推論アプリケーションを効率的に実行することができます。
OpenVINOは、デバイス固有のプラグインを通じてハードウェアの違いを抽象化する統一ランタイム・インターフェースを提供する。つまり、開発者は一度コードを書けば、一貫したAPIを使用して複数のインテル・ハードウェア・ターゲットにデプロイできる。
OpenVINOをデプロイメントに最適な選択肢とする主な特徴をいくつか紹介しよう:
さて、OpenVINOとは何か、その意義について説明したところで、YOLO11モデルをOpenVINOフォーマットにエクスポートし、Intelハードウェア上で効率的な推論を実行する方法について説明しよう。
モデルをOpenVINOフォーマットにエクスポートするには、まずUltralytics Pythonパッケージをインストールする必要があります。このパッケージは、YOLO11を含むYOLOモデルのトレーニング、評価、エクスポートに必要なすべてを提供します。
ターミナルかコマンドプロンプトで「pip install ultralytics」コマンドを実行すればインストールできる。Jupyter NotebookやGoogle Colabのようなインタラクティブな環境で作業している場合は、コマンドの前に感嘆符をつけてください。
また、インストール中やエクスポート中に問題が発生した場合は、Ultralyticsのドキュメントとトラブルシューティングガイドが素晴らしいリソースとなります。
Ultralyticsパッケージがセットアップされたら、次のステップは、YOLO11モデルをロードし、OpenVINOと互換性のあるフォーマットに変換することです。
以下の例では、学習済みのYOLO11モデル("yolo11n.pt")を使用しています。エクスポート機能を使って、OpenVINO形式に変換します。このコードを実行すると、変換されたモデルは "yolo11n_openvino_model "という新しいディレクトリに保存されます。
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="openvino")
YOLO11モデルがOpenVINOフォーマットにエクスポートされると、Ultralytics PythonパッケージまたはネイティブのOpenVINO Runtimeの2つの方法で推論を実行することができます。
エクスポートされたYOLO11モデルは、以下のコード・スニペットに示すように、Ultralytics Pythonパッケージを使って簡単にデプロイできる。この方法は、迅速な実験とIntelハードウェア上での合理化されたデプロイに最適です。
また、お使いのシステムで利用可能なインテルハードウェアに応じて、"intel:cpu"、"intel:gpu"、"intel:npu "など、推論に使用するデバイスを指定することもできます。
ov_model = YOLO("yolo11n_openvino_model/")
results = ov_model("https://ultralytics.com/images/bus.jpg", device="intel:gpu")
上記のコードを実行すると、出力画像が "runs/detect/predict "ディレクトリに保存される。
OpenVINOランタイムは、モデルの実行方法をより自由にコントロールすることができます。非同期実行(複数の推論リクエストを並行して実行)やロードバランシング(推論ワークロードをインテルハードウェアに効率的に分散)などの高度な機能をサポートしています。
ネイティブ・ランタイムを使用するには、エクスポートされたモデル・ファイルが必要です。.xmlファイル(ネットワーク・アーキテクチャを定義)と.binファイル(モデルの学習済み重みを保存)です。また、アプリケーションに応じて、入力次元や前処理ステップなどの追加パラメーターを設定することもできる。
典型的なデプロイの流れは、OpenVINOコアの初期化、ターゲットデバイスのモデルのロードとコンパイル、入力の準備、推論の実行です。詳細な例とステップバイステップのガイダンスについては、Ultralytics OpenVINOの公式ドキュメントを参照してください。
Ultralyticsの統合を調べていると、Ultralytics Pythonパッケージが、TorchScript、CoreML、TensorRT、ONNXといった様々なフォーマットへのYOLO11モデルのエクスポートをサポートしていることに気づくでしょう。では、なぜOpenVINO統合を選ぶのでしょうか?
OpenVINOエクスポート・フォーマットがIntelハードウェアでのモデル展開に最適である理由は以下の通りです:
また、OpenVINO™ Model Hubでは、さまざまなインテル®プラットフォームにおけるYOLO11モデルの性能ベンチマークを評価することができます。OpenVINO Model Hubは、開発者がインテルハードウェア上でAIモデルを評価し、インテルCPU、内蔵GPU、NPU、ディスクリートグラフィックスにわたるOpenVINOのパフォーマンス上の優位性を発見するためのリソースです。
OpenVINOの統合により、インテル・ハードウェア上でのYOLO11モデルの展開がより簡単になります。
その好例がスマートリテールで、YOLO11はリアルタイムで空の棚を検知し、どの商品が少なくなっているかを追跡し、顧客が店内をどのように移動するかを分析するのに役立つ。これにより、小売業者は在庫管理を改善し、店舗レイアウトを最適化することができる。
同様に、スマートシティでは、YOLO11を使用して、リアルタイムで車両をカウントし、歩行者を追跡し、赤信号違反を検出することにより、交通を監視することができる。これらの洞察は、交通フローの最適化をサポートし、交通安全を向上させ、自動取締システムを支援することができる。
YOLO11を生産ラインに導入することで、部品の欠落、ズレ、表面の損傷などの視覚的欠陥を自動的に検出することができる。これにより、効率が向上し、コストが削減され、製品の品質が向上します。
YOLO11モデルをOpenVINOでデプロイする際、最良の結果を得るために留意すべき重要な点をいくつか挙げよう:
Ultralytics YOLO11をOpenVINOフォーマットにエクスポートすることで、高速で効率的なVision AIモデルをIntelハードウェア上で簡単に実行できます。CPU、GPU、NPUにまたがって、コードを再学習したり変更したりすることなくデプロイできます。シンプルでスケーラブルな状態を維持しながらパフォーマンスを向上させる素晴らしい方法です。
Ultralytics Pythonパッケージにサポートが組み込まれているため、OpenVINOでのエクスポートと推論の実行は簡単です。わずか数ステップでモデルを最適化し、様々なIntelプラットフォームで実行することができます。スマートリテール、交通監視、工業検査など、このワークフローは、開発から展開までのスピードと信頼性を高めます。
YOLOコミュニティに参加し、UltralyticsGitHubリポジトリをチェックして、Ultralyticsがサポートするインパクトのある統合の詳細をご覧ください。また、Ultralyticsのライセンスオプションもご覧ください!
UltralyticsとOpenVINOの統合を実際にご覧いただくには、近日中に開催されるウェビナーにご登録ください。また、OpenVINOのウェブサイトでは、AIを大規模に最適化して展開するためのツールをご覧いただけます。