Intel OpenVINO Dışa Aktarma
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')
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
- 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.
- 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.
- 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.
- 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:
- XML dosyası: Ağ topolojisini açıklar.
- BIN dosyası: weights and biases ikili verilerini içerir.
- 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:
- OpenVINO adresini oluşturarak başlatın
core = Core()
. - Kullanarak modeli yükleyin
core.read_model()
yöntem. - kullanarak modeli derleyin
core.compile_model()
fonksiyon. - Girişi hazırlayın (görüntü, metin, ses, vb.).
- 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.
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.
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.
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.
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
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), or
data='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)