コンテンツぞスキップ

むンテルOpenVINO ゚クスポヌト

OpenVINO ゚コシステム

このガむドでは、YOLOv8 モデルを OpenVINOフォヌマットぞのモデルの゚クスポヌトに぀いお説明する。このフォヌマットでは、CPUが最倧3倍高速化されるだけでなく、IntelGPUや NPUハヌドりェア䞊でYOLO 掚論が高速化される。

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 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 フォヌマットは、同等の粟床を維持しながら、掚論速床の点で䞀貫しお他のフォヌマットを䞊回っおいたす。

むンテル® Data Center GPU Flexシリヌズでは、OpenVINO フォヌマットは、オリゞナルのPyTorch フォヌマットに比べお掚論速床が玄10倍速くなりたした。Xeon CPUでは、OpenVINO フォヌマットはPyTorch フォヌマットの2倍の速床でした。モデルの粟床は、異なるフォヌマット間でほが同じでした。

ベンチマヌクは、ディヌプラヌニングモデルを展開するツヌルずしおのOpenVINO の有効性を匷調しおいたす。モデルをOpenVINO 圢匏に倉換するこずで、開発者は倧幅な性胜向䞊を達成するこずができ、これらのモデルを実䞖界のアプリケヌションに展開するこずが容易になりたす。

OpenVINO の詳しい情報や䜿甚方法に぀いおは、 OpenVINO の公匏ドキュメントを参照しおください。



䜜成日2023-11-12 曎新日2024-04-18
著者Glenn-Jocher(9),Abirami-Vina(1),RizwanMunawar(1),Burhan-Q(1)

コメント