コンテンツへスキップ

Intel OpenVINO 輸出

OpenVINO エコシステム

このガイドでは、YOLOv8 のモデルを OpenVINOフォーマットへのエクスポートを取り上げます。 CPUのスピードアップと、YOLO 推論の高速化について説明する。Intel GPUおよびNPUハードウェア上での 推論の高速化について説明する。

OpenVINOOpen Visual Inference & Neural Network Optimization toolkitの略で、AI推論モデルの最適化と展開のための包括的なツールキットである。名前にVisualが含まれていますが、OpenVINO 、言語、音声、時系列など様々な追加タスクもサポートしています。



見るんだ: OpenVINO を使った推論のためにUltralytics YOLOv8 モデルをエクスポートして最適化する方法 .

使用例

YOLOv8n モデルをOpenVINO 形式にエクスポートし、エクスポートしたモデルで推論を実行する。

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Export the model
model.export(format="openvino")  # creates 'yolov8n_openvino_model/'

# Load the exported OpenVINO model
ov_model = YOLO("yolov8n_openvino_model/")

# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to OpenVINO format
yolo export model=yolov8n.pt format=openvino  # creates 'yolov8n_openvino_model/'

# Run inference with the exported model
yolo predict model=yolov8n_openvino_model source='https://ultralytics.com/images/bus.jpg'

論争

キー 価値 説明
format 'openvino' エクスポートするフォーマット
imgsz 640 スカラーまたは (h, w) リストとしての画像サイズ,すなわち (640, 480)
half False FP16量子化

メリットOpenVINO

  1. パフォーマンス:Intel CPU、統合GPU、ディスクリートGPU、FPGAのパワーを活用することで、OpenVINO 、高性能な推論を実現。
  2. ヘテロジニアス実行のサポート:OpenVINO は、一度書けば、サポートされているIntel ハードウェア(CPU 、GPU 、FPGA、VPU など)にデプロイできる API を提供する。
  3. Model Optimizer:OpenVINO は、PyTorch 、TensorFlow 、TensorFlow Lite、Keras、ONNX 、PaddlePaddle 、Caffe などの一般的なディープラーニングフレームワークからモデルをインポート、変換、最適化する Model Optimizer を提供します。
  4. 使いやすさ:ツールキットには、ツールキットのさまざまな側面を教える80以上のチュートリアルノートブック (YOLOv8 最適化を含む)が付属しています。

OpenVINO 輸出構造

モデルをOpenVINO フォーマットにエクスポートすると、次のようなディレクトリが作成されます:

  1. XMLファイル:ネットワークのトポロジーを記述する。
  2. BINファイル:weights and biases バイナリデータを含む。
  3. マッピングファイル:元のモデル出力テンソルのOpenVINO tensor へのマッピングを保持する。

これらのファイルを使用して、OpenVINO 推論エンジンで推論を実行することができる。

デプロイメントでOpenVINO エクスポートを使用する

OpenVINO ファイルを入手したら、OpenVINO Runtimeを使ってモデルを実行することができる。ランタイムは、サポートされているすべてのIntel ハードウェアにわたって推論を行うための統一されたAPIを提供する。また、Intel ハードウェア間のロードバランシングや非同期実行などの高度な機能も提供します。推論の実行に関する詳細は、『Inference withOpenVINO RuntimeGuide』を参照してください。

Runtimeでモデルを正しくセットアップして使用するには、XMLファイルとBINファイル、および入力サイズや正規化のためのスケールファクターなど、アプリケーション固有の設定が必要であることを忘れないでください。

デプロイメント・アプリケーションでは、通常、以下の手順を実行する:

  1. を作成してOpenVINO を初期化する。 core = Core().
  2. モデルをロードするには core.read_model() メソッドを使用する。
  3. モデルをコンパイルするには core.compile_model() 関数である。
  4. 入力(画像、テキスト、音声など)を準備する。
  5. を使用して推論を実行する。 compiled_model(input_data).

より詳細な手順とコード・スニペットについては、OpenVINO ドキュメントまたはAPI チュートリアルを参照してください。

OpenVINO YOLOv8 ベンチマーク

YOLOv8 以下のベンチマークは、Ultralytics チームによって、速度と精度を測定する 4 つの異なるモデル形式で実行されました:PyTorch 、TorchScript 、ONNX 、OpenVINO 。ベンチマークは、Intel Flex GPUとArc GPU、およびIntel Xeon CPUでFP32精度で実行されました(FP32精度では half=False 引数)。

以下のベンチマーク結果は参考値であり、システムの正確なハードウェアおよびソフトウェア構成、ベンチマーク実行時のシステムの現在の作業負荷によって異なる場合があります。

すべてのベンチマークは openvino Python パッケージバージョン 2023.0.1.

Intel フレックスGPU

インテル® Data CenterGPU Flex シリーズは、インテリジェントなビジュアルクラウド向けに設計された多用途で堅牢なソリューションです。このGPU は、メディア・ストリーミング、クラウド・ゲーミング、AI ビジュアル・インファレンス、仮想デスクトップ・インフラストラクチャ・ワークロードなど、幅広いワークロードをサポートします。オープン・アーキテクチャとAV1エンコードのビルトイン・サポートが特長で、高性能でクロスアーキテクチャのアプリケーションに標準ベースのソフトウェア・スタックを提供します。Flex SeriesGPU は密度と品質に最適化されており、高い信頼性、可用性、拡張性を提供する。

以下のベンチマークは、インテル® Data CenterGPU Flex 170上でFP32精度で実行されている。

フレックスGPU ベンチマーク
モデル フォーマット ステータス サイズ (MB) mAP50-95(B) 推論時間(ms/im)
YOLOv8n PyTorch 6.2 0.3709 21.79
YOLOv8n TorchScript 12.4 0.3704 23.24
YOLOv8n ONNX 12.2 0.3704 37.22
YOLOv8n OpenVINO 12.3 0.3703 3.29
YOLOv8s PyTorch 21.5 0.4471 31.89
YOLOv8s TorchScript 42.9 0.4472 32.71
YOLOv8s ONNX 42.8 0.4472 43.42
YOLOv8s OpenVINO 42.9 0.4470 3.92
YOLOv8m PyTorch 49.7 0.5013 50.75
YOLOv8m TorchScript 99.2 0.4999 47.90
YOLOv8m ONNX 99.0 0.4999 63.16
YOLOv8m OpenVINO 49.8 0.4997 7.11
YOLOv8l PyTorch 83.7 0.5293 77.45
YOLOv8l TorchScript 167.2 0.5268 85.71
YOLOv8l ONNX 166.8 0.5268 88.94
YOLOv8l OpenVINO 167.0 0.5264 9.37
YOLOv8x PyTorch 130.5 0.5404 100.09
YOLOv8x TorchScript 260.7 0.5371 114.64
YOLOv8x ONNX 260.4 0.5371 110.32
YOLOv8x OpenVINO 260.6 0.5367 15.02

この表は、5つの異なるモデル(YOLOv8n,YOLOv8s,YOLOv8m,YOLOv8l,YOLOv8x)と4つの異なるフォーマット(PyTorch,TorchScript,ONNX,OpenVINO)のベンチマーク結果であり、各組み合わせのステータス、サイズ、mAP50-95(B)メトリック、推論時間を示している。

Intel アークGPU

インテル® Arc™ は、Intel の専用市場(GPU )への進出を象徴しています。Arc™シリーズは、AMDやNvidia のような大手メーカーGPU と競合するように設計されており、ラップトップとデスクトップの両方の市場に対応している。このシリーズには、ノートパソコンのような小型機器向けのモバイル・バージョンと、デスクトップ・コンピュータ向けの大型で強力なバージョンがあります。

Arc™シリーズは3つのカテゴリーに分かれている:Arc™ 3、Arc™ 5、Arc™ 7の3つのカテゴリーに分けられ、それぞれの数字が性能レベルを示している。各カテゴリーには複数のモデルがあり、GPU のモデル名にある「M」は、モバイル一体型のバリエーションを意味します。

初期のレビューでは、Arc™シリーズ、特に統合型A770MGPU の素晴らしいグラフィック性能が高く評価されています。Arc™ シリーズは地域によって入手可能なモデルが異なり、近日中に追加モデルがリリースされる予定です。インテル® Arc™ GPUは、ゲームからコンテンツ制作まで、さまざまなコンピューティング・ニーズに対応する高性能ソリューションを提供します。

以下のベンチマークは、インテル® Arc 770GPU で FP32 精度で実行されています。

ArcGPU ベンチマーク
モデル フォーマット ステータス サイズ (MB) メトリック/mAP50-95(B) 推論時間(ms/im)
YOLOv8n PyTorch 6.2 0.3709 88.79
YOLOv8n TorchScript 12.4 0.3704 102.66
YOLOv8n ONNX 12.2 0.3704 57.98
YOLOv8n OpenVINO 12.3 0.3703 8.52
YOLOv8s PyTorch 21.5 0.4471 189.83
YOLOv8s TorchScript 42.9 0.4472 227.58
YOLOv8s ONNX 42.7 0.4472 142.03
YOLOv8s OpenVINO 42.9 0.4469 9.19
YOLOv8m PyTorch 49.7 0.5013 411.64
YOLOv8m TorchScript 99.2 0.4999 517.12
YOLOv8m ONNX 98.9 0.4999 298.68
YOLOv8m OpenVINO 99.1 0.4996 12.55
YOLOv8l PyTorch 83.7 0.5293 725.73
YOLOv8l TorchScript 167.1 0.5268 892.83
YOLOv8l ONNX 166.8 0.5268 576.11
YOLOv8l OpenVINO 167.0 0.5262 17.62
YOLOv8x PyTorch 130.5 0.5404 988.92
YOLOv8x TorchScript 260.7 0.5371 1186.42
YOLOv8x ONNX 260.4 0.5371 768.90
YOLOv8x OpenVINO 260.6 0.5367 19

Intel ジーオンCPU

インテル® Xeon®CPU は、複雑で要求の厳しいワークロード向けに設計された高性能なサーバーグレードのプロセッサーです。ハイエンドのクラウド・コンピューティングや仮想化から人工知能や機械学習アプリケーションまで、Xeon® CPUは今日のデータセンターに必要なパワー、信頼性、柔軟性を提供します。

特筆すべきは、Xeon® CPUが高い演算密度とスケーラビリティを実現し、中小企業から大企業まで理想的な環境を提供することです。インテル® Xeon® CPUを選択することで、企業は、費用対効果と運用効率を維持しながら、最も要求の厳しいコンピューティング・タスクを自信を持って処理し、イノベーションを促進することができます。

以下のベンチマークは、第4世代インテル® Xeon® ScalableCPU でFP32精度で実行されています。

XeonCPU ベンチマーク
モデル フォーマット ステータス サイズ (MB) メトリック/mAP50-95(B) 推論時間(ms/im)
YOLOv8n PyTorch 6.2 0.3709 24.36
YOLOv8n TorchScript 12.4 0.3704 23.93
YOLOv8n ONNX 12.2 0.3704 39.86
YOLOv8n OpenVINO 12.3 0.3704 11.34
YOLOv8s PyTorch 21.5 0.4471 33.77
YOLOv8s TorchScript 42.9 0.4472 34.84
YOLOv8s ONNX 42.8 0.4472 43.23
YOLOv8s OpenVINO 42.9 0.4471 13.86
YOLOv8m PyTorch 49.7 0.5013 53.91
YOLOv8m TorchScript 99.2 0.4999 53.51
YOLOv8m ONNX 99.0 0.4999 64.16
YOLOv8m OpenVINO 99.1 0.4996 28.79
YOLOv8l PyTorch 83.7 0.5293 75.78
YOLOv8l TorchScript 167.2 0.5268 79.13
YOLOv8l ONNX 166.8 0.5268 88.45
YOLOv8l OpenVINO 167.0 0.5263 56.23
YOLOv8x PyTorch 130.5 0.5404 96.60
YOLOv8x TorchScript 260.7 0.5371 114.28
YOLOv8x ONNX 260.4 0.5371 111.02
YOLOv8x OpenVINO 260.6 0.5371 83.28

Intel コアCPU

インテル® Core® シリーズは、Intel の高性能プロセッサー製品群である。ラインナップには、Core i3(エントリーレベル)、Core i5(ミッドレンジ)、Core i7(ハイエンド)、Core i9(エクストリームパフォーマンス)がある。各シリーズは、日常的なタスクから要求の厳しいプロフェッショナルなワークロードまで、さまざまなコンピューティングニーズと予算に対応しています。新しい世代になるごとに、パフォーマンス、エネルギー効率、機能が改善されています。

以下のベンチマークは、第13世代インテル® Core® i7-13700HCPU でFP32精度で実行されています。

コアCPU ベンチマーク
モデル フォーマット ステータス サイズ (MB) メトリック/mAP50-95(B) 推論時間(ms/im)
YOLOv8n PyTorch 6.2 0.4478 104.61
YOLOv8n TorchScript 12.4 0.4525 112.39
YOLOv8n ONNX 12.2 0.4525 28.02
YOLOv8n OpenVINO 12.3 0.4504 23.53
YOLOv8s PyTorch 21.5 0.5885 194.83
YOLOv8s TorchScript 43.0 0.5962 202.01
YOLOv8s ONNX 42.8 0.5962 65.74
YOLOv8s OpenVINO 42.9 0.5966 38.66
YOLOv8m PyTorch 49.7 0.6101 355.23
YOLOv8m TorchScript 99.2 0.6120 424.78
YOLOv8m ONNX 99.0 0.6120 173.39
YOLOv8m OpenVINO 99.1 0.6091 69.80
YOLOv8l PyTorch 83.7 0.6591 593.00
YOLOv8l TorchScript 167.2 0.6580 697.54
YOLOv8l ONNX 166.8 0.6580 342.15
YOLOv8l OpenVINO 167.0 0.0708 117.69
YOLOv8x PyTorch 130.5 0.6651 804.65
YOLOv8x TorchScript 260.8 0.6650 921.46
YOLOv8x ONNX 260.4 0.6650 526.66
YOLOv8x OpenVINO 260.6 0.6619 158.73

結果を再現する

上記のUltralytics のベンチマークをすべてのエクスポートフォーマットで再現するには、以下のコードを実行してください:

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
results = model.benchmarks(data="coco8.yaml")
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml

ベンチマークの結果は、システムの正確なハードウェアとソフトウェアの構成、およびベンチマークの実行時のシステムの現在の作業負荷によって異なる可能性があることに注意してください。最も信頼性の高い結果を得るには、画像数の多いデータセットを使用します。 data='coco128.yaml' (128 val images), ordata='coco.yaml'` (5000 val images)。

結論

ベンチマーク結果は、YOLOv8 モデルをOpenVINO 形式にエクスポートすることの利点を明確に示している。様々なモデルやハードウェアプラットフォームにおいて、OpenVINO フォーマットは、同等の精度を維持しながら、推論速度の点で一貫して他のフォーマットを上回っています。

インテル® データセンターGPU Flex シリーズでは、OpenVINO フォーマットは、オリジナルのPyTorch フォーマットに比べ、推論速度がほぼ 10 倍速くなりました。XeonCPU では、OpenVINO フォーマットはPyTorch フォーマットの 2 倍高速でした。モデルの精度は、異なるフォーマット間でほぼ同じでした。

ベンチマークは、ディープラーニングモデルを展開するツールとしてのOpenVINO の有効性を強調しています。モデルをOpenVINO 形式に変換することで、開発者は大幅な性能向上を達成することができ、これらのモデルを実世界のアプリケーションに展開することが容易になります。

OpenVINO の詳しい情報や使用方法については、 OpenVINO の公式ドキュメントを参照してください。

よくあるご質問

YOLOv8 モデルをOpenVINO フォーマットにエクスポートするには?

YOLOv8 モデルをOpenVINO フォーマットにエクスポートすると、CPU 速度が大幅に向上し、GPU とIntel ハードウェアでの NPU アクセラレーションが可能になります。エクスポートするには、以下に示すように、Python またはCLI のいずれかを使用できます:

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Export the model
model.export(format="openvino")  # creates 'yolov8n_openvino_model/'
# Export a YOLOv8n PyTorch model to OpenVINO format
yolo export model=yolov8n.pt format=openvino  # creates 'yolov8n_openvino_model/'

詳細については、エクスポート・フォーマットのドキュメントを参照してください。

YOLOv8 モデルでOpenVINO を使用する利点は何ですか?

YOLOv8 モデルでIntel のOpenVINO ツールキットを使用すると、いくつかの利点がある:

  1. パフォーマンス:CPU 推論で最大3倍のスピードアップを達成し、Intel GPUとNPUをアクセラレーションに活用。
  2. モデル・オプティマイザー:PyTorch 、TensorFlow 、ONNX のような一般的なフレームワークからモデルを変換、最適化、実行します。
  3. 使いやすさ:YOLOv8 を含む80以上のチュートリアルノートブックが用意されています。
  4. ヘテロジニアス実行:統一された API を使用して、さまざまなIntel ハードウェア上にモデルを展開します。

詳細な性能比較については、ベンチマークセクションをご覧ください。

OpenVINO にエクスポートされたYOLOv8 モデルを使って推論を実行するには?

YOLOv8 モデルをOpenVINO フォーマットにエクスポートした後、Python またはCLI を使って推論を実行することができます:

from ultralytics import YOLO

# Load the exported OpenVINO model
ov_model = YOLO("yolov8n_openvino_model/")

# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")
# Run inference with the exported model
yolo predict model=yolov8n_openvino_model source='https://ultralytics.com/images/bus.jpg'

詳細については、予測モードのドキュメントを参照してください。

OpenVINO エクスポートに、他のモデルではなくUltralytics YOLOv8 を選ぶべき理由は何ですか?

Ultralytics YOLOv8 は、高精度で高速なリアルタイムの物体検出に最適化されている。具体的には、OpenVINO と組み合わせることで、YOLOv8 を提供します:

  • Intel CPUで最大3倍のスピードアップ
  • Intel GPUおよびNPUへのシームレスな展開
  • 様々なエクスポート・フォーマットで一貫した同等の精度

詳細なパフォーマンス分析については、さまざまなハードウェアでの詳細なYOLOv8 ベンチマークをご覧ください。

PyTorch 、ONNX 、OpenVINO のような異なるフォーマットでYOLOv8 モデルのベンチマークを取ることはできますか?

PyTorch,TorchScript,ONNX,OpenVINO を含む様々な形式のYOLOv8 モデルのベンチマークが可能です。以下のコード・スニペットを使用して、選択したデータセットでベンチマークを実行します:

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all export formats
results = model.benchmarks(data="coco8.yaml")
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml

詳細なベンチマーク結果については、ベンチマークセクションおよびエクスポートフォーマットのドキュメントを参照してください。



作成日:2023-11-12 更新日:2024-07-05
著者:glenn-jocher(14),andreikochin(1),abirami-vina(1),RizwanMunawar(1),Burhan-Q(1)

コメント