İçeriğe geç

Intel OpenVINO Dışa Aktarma

OpenVINO Ekosistem

Bu kılavuzda, YOLOv8 modellerini şu adrese aktarmayı ele alıyoruz OpenVINO biçimi, 3 kata kadar CPU hızlandırması sağlayabilir ve Intel GPU ve NPU donanımında YOLO çıkarımını hızlandırabilir.

OpenVINOOpen Visual Inference & Neural Network Optimization toolkit'in kısaltması olan bu araç, yapay zeka çıkarım modellerini optimize etmek ve dağıtmak için kapsamlı bir araç setidir. İsmi Görsel içermesine rağmen, OpenVINO ayrıca dil, ses, zaman serisi vb. dahil olmak üzere çeşitli ek görevleri de destekler.



İzle: OpenVINO ile Çıkarım için bir Ultralytics YOLOv8 Modeli Nasıl Dışa Aktarılır ve Optimize Edilir?

Kullanım Örnekleri

Bir YOLOv8n modelini OpenVINO biçiminde dışa aktarın ve dışa aktarılan modelle çıkarım çalıştırın.

Örnek

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'

Argümanlar

Anahtar Değer Açıklama
format 'openvino' dışa aktarılacak format
imgsz 640 skaler veya (h, w) listesi olarak görüntü boyutu, yani (640, 480)
half False FP16 niceleme

Faydaları OpenVINO

  1. Performans: OpenVINO , Intel CPU'ların, entegre ve ayrık GPU'ların ve FPGA'ların gücünü kullanarak yüksek performanslı çıkarım sağlar.
  2. Heterojen Yürütme Desteği: OpenVINO bir kez yazmak ve desteklenen herhangi bir Intel donanımına (CPU, GPU, FPGA, VPU, vb.) dağıtmak için bir API sağlar.
  3. Model Optimize Edici: OpenVINO , PyTorch, TensorFlow, TensorFlow Lite, Keras, ONNX, PaddlePaddle ve Caffe gibi popüler derin öğrenme çerçevelerinden modelleri içe aktaran, dönüştüren ve optimize eden bir Model Optimize Edici sağlar.
  4. Kullanım Kolaylığı: Araç seti, araç setinin farklı yönlerini öğreten 80'den fazla öğretici not defteri ( YOLOv8 optimizasyonu dahil) ile birlikte gelir.

OpenVINO İhracat Yapısı

Bir modeli OpenVINO biçiminde dışa aktardığınızda, aşağıdakileri içeren bir dizinle sonuçlanır:

  1. XML dosyası: Ağ topolojisini açıklar.
  2. BIN dosyası: weights and biases ikili verilerini içerir.
  3. Eşleme dosyası: Orijinal model çıktı tensörlerinin OpenVINO tensor adlarıyla eşlenmesini tutar.

Bu dosyaları OpenVINO Inference Engine ile çıkarım yapmak için kullanabilirsiniz.

Dağıtımda OpenVINO Dışa Aktarmayı Kullanma

OpenVINO dosyalarına sahip olduğunuzda, modeli çalıştırmak için OpenVINO Çalışma Zamanını kullanabilirsiniz. Çalışma Zamanı, desteklenen tüm Intel donanımlarında çıkarım yapmak için birleşik bir API sağlar. Ayrıca Intel donanımları arasında yük dengeleme ve eşzamansız yürütme gibi gelişmiş özellikler de sağlar. Çıkarımın çalıştırılması hakkında daha fazla bilgi için OpenVINO Çalışma Zamanı Kılavuzu ile Çıkarım'a bakın.

Modeli Çalışma Zamanı ile doğru şekilde kurmak ve kullanmak için XML ve BIN dosyalarının yanı sıra girdi boyutu, normalleştirme için ölçek faktörü vb. gibi uygulamaya özel ayarlara ihtiyacınız olacağını unutmayın.

Dağıtım uygulamanızda genellikle aşağıdaki adımları uygularsınız:

  1. OpenVINO adresini oluşturarak başlatın core = Core().
  2. Kullanarak modeli yükleyin core.read_model() yöntem.
  3. kullanarak modeli derleyin core.compile_model() fonksiyon.
  4. Girişi hazırlayın (görüntü, metin, ses, vb.).
  5. Kullanarak çıkarım çalıştırın compiled_model(input_data).

Daha ayrıntılı adımlar ve kod parçacıkları için OpenVINO belgelerine veya API öğreticisine bakın.

OpenVINO YOLOv8 Ölçütler

YOLOv8 Aşağıdaki kıyaslamalar Ultralytics ekibi tarafından hız ve doğruluğu ölçen 4 farklı model formatında çalıştırılmıştır: PyTorch, TorchScript, ONNX ve OpenVINO. Benchmarklar Intel Flex ve Arc GPU'larda ve Intel Xeon CPU'larda FP32 hassasiyetinde çalıştırılmıştır (aşağıdaki half=False argümanı).

Not

Aşağıdaki kıyaslama sonuçları referans amaçlıdır ve bir sistemin tam donanım ve yazılım yapılandırmasının yanı sıra kıyaslamaların çalıştırıldığı sırada sistemin mevcut iş yüküne bağlı olarak değişiklik gösterebilir.

Tüm kıyaslamalar şu şekilde çalıştırılır openvino Python paket sürümü 2023.0.1.

Intel Flex GPU

Intel® Data Center GPU Flex Serisi, akıllı görsel bulut için tasarlanmış çok yönlü ve sağlam bir çözümdür. Bu GPU, medya akışı, bulut oyunları, yapay zeka görsel çıkarımı ve sanal masaüstü Altyapısı iş yükleri dahil olmak üzere çok çeşitli iş yüklerini destekler. Yüksek performanslı, çapraz mimarili uygulamalar için standartlara dayalı bir yazılım yığını sağlayan açık mimarisi ve AV1 kodlama için yerleşik desteği ile öne çıkıyor. Flex Serisi GPU, yoğunluk ve kalite için optimize edilmiştir ve yüksek güvenilirlik, kullanılabilirlik ve ölçeklenebilirlik sunar.

Aşağıdaki kıyaslamalar Intel® Data Center GPU Flex 170 üzerinde FP32 hassasiyetinde çalıştırılmıştır.

Flex GPU kıyaslamaları
Model Biçim Durum Boyut (MB) mAP50-95(B) Çıkarım süresi (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

Bu tablo, dört farklı formatta (PyTorch, TorchScript, ONNX, OpenVINO) beş farklı model (YOLOv8n, YOLOv8s, YOLOv8m, YOLOv8l, YOLOv8x) için kıyaslama sonuçlarını temsil eder ve bize her kombinasyon için durum, boyut, mAP50-95(B) metriği ve çıkarım süresini verir.

Intel Arc GPU

Intel® Arc™, Intel'in özel GPU pazarına girişini temsil etmektedir. AMD ve Nvidia gibi önde gelen GPU üreticileriyle rekabet etmek üzere tasarlanan Arc™ serisi, hem dizüstü hem de masaüstü bilgisayar pazarlarına hitap ediyor. Seri, dizüstü bilgisayarlar gibi kompakt cihazlar için mobil versiyonlar ve masaüstü bilgisayarlar için daha büyük, daha güçlü versiyonlar içeriyor.

Arc™ serisi üç kategoriye ayrılmıştır: Arc™ 3, Arc™ 5 ve Arc™ 7, her bir numara performans seviyesini göstermektedir. Her kategori birkaç model içerir ve GPU model adındaki 'M' mobil, entegre bir varyantı ifade eder.

İlk incelemeler Arc™ serisini, özellikle de entegre A770M GPU'yu etkileyici grafik performansı nedeniyle övdü. Arc™ serisinin bulunabilirliği bölgelere göre değişmektedir ve yakında başka modellerin de piyasaya sürülmesi beklenmektedir. Intel® Arc™ GPU'lar oyundan içerik oluşturmaya kadar bir dizi bilgisayar ihtiyacı için yüksek performanslı çözümler sunar.

Aşağıdaki kıyaslamalar Intel® Arc 770 GPU üzerinde FP32 hassasiyetinde çalıştırılmıştır.

Arc GPU kıyaslamaları
Model Biçim Durum Boyut (MB) metrik/mAP50-95(B) Çıkarım süresi (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 Xeon CPU

Intel® Xeon® CPU, karmaşık ve zorlu iş yükleri için tasarlanmış yüksek performanslı, sunucu sınıfı bir işlemcidir. Üst düzey bulut bilişim ve sanallaştırmadan yapay zeka ve makine öğrenimi uygulamalarına kadar, Xeon® CPU'lar günümüzün veri merkezleri için gereken gücü, güvenilirliği ve esnekliği sağlar.

Özellikle, Xeon® CPU'lar yüksek işlem yoğunluğu ve ölçeklenebilirlik sunarak hem küçük işletmeler hem de büyük kuruluşlar için idealdir. Kuruluşlar, Intel® Xeon® CPU'ları tercih ederek en zorlu bilgi işlem görevlerini güvenle yerine getirebilir ve maliyet etkinliği ile operasyonel verimliliği korurken inovasyonu teşvik edebilirler.

Aşağıdaki kıyaslamalar FP32 hassasiyetinde 4. Nesil Intel® Xeon® Ölçeklenebilir CPU üzerinde çalıştırılmıştır.

Xeon CPU karşılaştırmaları
Model Biçim Durum Boyut (MB) metrik/mAP50-95(B) Çıkarım süresi (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 Çekirdek İşlemci

Intel® Core® serisi, Intel'in yüksek performanslı işlemcilerinden oluşan bir seridir. Seride Core i3 (giriş seviyesi), Core i5 (orta seviye), Core i7 (üst seviye) ve Core i9 (aşırı performans) bulunmaktadır. Her seri, günlük işlerden zorlu profesyonel iş yüklerine kadar farklı bilgisayar ihtiyaçlarına ve bütçelerine hitap ediyor. Her yeni nesilde performans, enerji verimliliği ve özelliklerde iyileştirmeler yapılır.

Aşağıdaki kıyaslamalar 13. Nesil Intel® Core® i7-13700H CPU üzerinde FP32 hassasiyetinde çalıştırılmıştır.

Çekirdek CPU kıyaslamaları
Model Biçim Durum Boyut (MB) metrik/mAP50-95(B) Çıkarım süresi (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

Sonuçlarımızı Yeniden Üretin

Yukarıdaki Ultralytics kıyaslamalarını tüm dışa aktarma biçimlerinde yeniden oluşturmak için bu kodu çalıştırın:

Örnek

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

Kıyaslama sonuçlarının, bir sistemin tam donanım ve yazılım yapılandırmasının yanı sıra kıyaslamaların çalıştırıldığı sırada sistemin mevcut iş yüküne bağlı olarak değişebileceğini unutmayın. En güvenilir sonuçlar için çok sayıda görüntü içeren bir veri kümesi kullanın, örn. data='coco128.yaml' (128 val images), ordata='coco.yaml'` (5000 val görüntü).

Sonuç

Kıyaslama sonuçları, YOLOv8 modelini OpenVINO formatına aktarmanın faydalarını açıkça göstermektedir. Farklı modeller ve donanım platformları arasında OpenVINO formatı, karşılaştırılabilir doğruluğu korurken çıkarım hızı açısından diğer formatlardan sürekli olarak daha iyi performans göstermektedir.

Intel® Data Center GPU Flex Serisi için OpenVINO formatı, orijinal PyTorch formatından neredeyse 10 kat daha hızlı çıkarım hızları sunabilmiştir. Xeon CPU'da OpenVINO formatı PyTorch formatından iki kat daha hızlıydı. Modellerin doğruluğu farklı formatlar arasında neredeyse aynı kaldı.

Kıyaslamalar, derin öğrenme modellerini dağıtmak için bir araç olarak OpenVINO 'un etkinliğinin altını çiziyor. Geliştiriciler, modelleri OpenVINO formatına dönüştürerek önemli performans iyileştirmeleri elde edebilir ve bu modellerin gerçek dünya uygulamalarında kullanılmasını kolaylaştırabilir.

OpenVINO adresini kullanma hakkında daha ayrıntılı bilgi ve talimatlar için resmi OpenVINO belgelerine bakın.



Oluşturuldu 2023-11-12, Güncellendi 2024-04-18
Yazarlar: glenn-jocher (9), abirami-vina (1), RizwanMunawar (1), Burhan-Q (1)

Yorumlar