コンテンツへスキップ

インテルOpenVINO エクスポート

OpenVINO エコシステム

このガイドでは、YOLOv8 のモデルを OpenVINOフォーマットへのエクスポートについて説明します。このフォーマットでは、CPUが最大3倍高速化されるだけでなく、他のIntelハードウェア(iGPU、dGPU、VPUなど)でも高速化されます。

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. パフォーマンス:OpenVINO は、インテルCPU、統合GPU、ディスクリートGPU、FPGAのパワーを活用することで、高性能な推論を実現します。
  2. ヘテロジニアス実行のサポート:OpenVINO は、一度書けば、サポートされているあらゆるインテル・ハードウェア(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 を使用してモデルを実行できます。ランタイムは、サポートされているすべてのインテル・ハードウェアで推論を行うための統一された API を提供します。また、インテル® ハー ドウェア間のロードバランシングや非同期実行などの高度な機能も提供します。推論の実行に関する詳細は、『Inference withOpenVINO Runtime Guide ( ランタイム・ガイド)』を参照してください。

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 PyTorch 、 、 、 の4つの異なるモデルフォーマットで、 チームによって実行されました。ベンチマークはIntel Flex GPUとArc GPU、およびIntel Xeon CPUでFP32精度で実行された(FP32精度ではTorchScript ONNX OpenVINO Ultralytics half=False 引数)。

備考

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

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

インテル・フレックスGPU

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

以下のベンチマークは、インテル® データセンター GPU 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)メトリック、推論時間を示している。

インテル・アークGPU

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

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

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

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

Arc GPUベンチマーク
モデル フォーマット ステータス サイズ (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

インテルXeon CPU

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

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

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

Xeon CPUベンチマーク
モデル フォーマット ステータス サイズ (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

インテル・コアCPU

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

以下のベンチマークは、第13世代インテル® Core® i7-13700H CPUを使用し、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 COCO128 dataset for all all export formats
results= model.benchmarks(data='coco128.yaml')
# Benchmark YOLOv8n speed and accuracy on the COCO128 dataset for all all export formats
yolo benchmark model=yolov8n.pt data=coco128.yaml

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

結論

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

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

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

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



作成日:2023-11-12 更新日:2024-02-13
著者:chr043416@gmail.com(1),glenn-jocher(7),Burhan-Q(1)

コメント