Zum Inhalt springen

Intel OpenVINO Exportieren

OpenVINO Ökosystem

In diesem Handbuch behandeln wir den Export YOLO11 Modelle in das OpenVINO -Format, das eine bis zu 3-fache CPU -Beschleunigung sowie eine Beschleunigung bietet YOLO Schlussfolgerung auf Intel GPU und NPU- Hardware.

OpenVINO, kurz für Open Visual Inference & Neural Network Optimization toolkit, ist ein umfassendes Toolkit für die Optimierung und den Einsatz von KI-Inferenzmodellen. Auch wenn der Name Visual enthält, unterstützt OpenVINO auch verschiedene zusätzliche Aufgaben wie Sprache, Audio, Zeitreihen usw.



Beobachten: Exportieren und Optimieren eines Ultralytics YOLOv8 Modells für die Inferenz mit OpenVINO.

Beispiele für die Verwendung

Exportieren Sie ein YOLO11n-Modell nach OpenVINO Formatieren Sie das exportierte Modell und führen Sie Inferenzen damit aus.

Beispiel

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

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

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

# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")

# Run inference with specified device, available devices: ["intel:gpu", "intel:npu", "intel:cpu"]
results = ov_model("https://ultralytics.com/images/bus.jpg", device="intel:gpu")
# Export a YOLO11n PyTorch model to OpenVINO format
yolo export model=yolo11n.pt format=openvino # creates 'yolo11n_openvino_model/'

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

# Run inference with specified device, available devices: ["intel:gpu", "intel:npu", "intel:cpu"]
yolo predict model=yolo11n_openvino_model source='https://ultralytics.com/images/bus.jpg' device="intel:gpu"

Argumente exportieren

Argument Typ Standard Beschreibung
format str 'openvino' Zielformat für das exportierte Modell, das die Kompatibilität mit verschiedenen Einsatzumgebungen definiert.
imgsz int oder tuple 640 Gewünschte Bildgröße für die Modelleingabe. Kann eine ganze Zahl für quadratische Bilder oder ein Tupel sein (height, width) für bestimmte Abmessungen.
half bool False Ermöglicht FP16-Quantisierung (mit halber Genauigkeit), wodurch die Modellgröße reduziert und die Inferenz auf unterstützter Hardware möglicherweise beschleunigt wird.
int8 bool False Aktiviert die INT8-Quantisierung, wodurch das Modell weiter komprimiert und die Inferenz mit minimalem Genauigkeitsverlust beschleunigt wird, vor allem für Randgeräte.
dynamic bool False Ermöglicht dynamische Eingabegrößen, was die Flexibilität bei der Handhabung unterschiedlicher Bildgrößen erhöht.
nms bool False Fügt die Nicht-Maximum-Unterdrückung (NMS) hinzu, die für eine genaue und effiziente Nachbearbeitung der Erkennung unerlässlich ist.
batch int 1 Gibt die Größe der exportierten Modellstapelinferenz oder die maximale Anzahl der Bilder an, die das exportierte Modell gleichzeitig in predict Modus.
data str 'coco8.yaml' Weg zum Datensatz Konfigurationsdatei (Standard: coco8.yaml), die für die Quantisierung unerlässlich ist.
fraction float 1.0 Gibt den Teil des Datensatzes an, der für die INT8-Quantisierungskalibrierung verwendet werden soll. Ermöglicht die Kalibrierung auf einer Teilmenge des vollständigen Datensatzes, was für Experimente oder bei begrenzten Ressourcen nützlich ist. Wird bei aktiviertem INT8 keine Angabe gemacht, wird der gesamte Datensatz verwendet.

Weitere Einzelheiten zum Exportvorgang finden Sie auf der Dokumentationsseite zum Exportieren unterUltralytics .

Warnung

OpenVINO™ ist mit den meisten Intel®-Prozessoren kompatibel, aber um eine optimale Leistung zu gewährleisten:

  1. Überprüfen Sie die OpenVINO™-Unterstützung. Überprüfen Sie anhand der Kompatibilitätsliste von Intel , ob Ihr Intel®-Chip offiziell von OpenVINO™ unterstützt wird.

  2. Identifizieren Sie Ihren Beschleuniger. Stellen Sie fest, ob Ihr Prozessor eine integrierte NPU (Neural Processing Unit) enthält oder GPU (integriert GPU ) indem Sie das Hardwarehandbuch von Intel zu Rate ziehen.

  3. Installieren Sie die neuesten Treiber. Wenn Ihr Chip eine NPU unterstützt oder GPU OpenVINO™ erkennt es jedoch nicht. Möglicherweise müssen Sie die zugehörigen Treiber installieren oder aktualisieren. Folgen Sie den Anweisungen zur Treiberinstallation, um die volle Beschleunigung zu aktivieren.

Indem Sie diese drei Schritte befolgen, können Sie sicherstellen, dass OpenVINO™ optimal auf Ihrer Intel®-Hardware läuft.

Vorteile von OpenVINO

  1. Leistung: OpenVINO bietet leistungsstarke Inferenzen durch die Nutzung der Leistung von Intel CPUs, integrierten und diskreten GPUs und FPGAs.
  2. Unterstützung für heterogene Ausführung: OpenVINO bietet eine API zum einmaligen Schreiben und Bereitstellen auf jeder unterstützten Intel Hardware (CPU, GPU, FPGA, VPU, etc.).
  3. Modell-Optimierer: OpenVINO bietet einen Modell-Optimierer, der Modelle aus gängigen Deep-Learning-Frameworks wie PyTorch importiert, konvertiert und optimiert, TensorFlow, TensorFlow Lite, Keras, ONNX, PaddlePaddle und Caffe.
  4. Benutzerfreundlichkeit: Das Toolkit wird mit mehr als 80 Lehrbüchern (einschließlich YOLOv8 optimization) geliefert, in denen verschiedene Aspekte des Toolkits behandelt werden.

OpenVINO Struktur der Ausfuhren

Wenn Sie ein Modell in das Format OpenVINO exportieren, erhalten Sie ein Verzeichnis mit folgendem Inhalt

  1. XML-Datei: Beschreibt die Netzwerktopologie.
  2. BIN-Datei: Enthält die Binärdaten von weights and biases .
  3. Mapping-Datei: Enthält die Zuordnung der ursprünglichen Modellausgangs-Tensoren zu den Namen OpenVINO tensor .

Sie können diese Dateien verwenden, um Inferenzen mit der OpenVINO Inference Engine durchzuführen.

Verwendung von OpenVINO Export in der Bereitstellung

Sobald Ihr Modell erfolgreich in das OpenVINO Format haben Sie zwei Hauptoptionen zum Ausführen von Inferenzen:

  1. Verwenden Sie die ultralytics Paket, das eine High-Level-API bereitstellt und die OpenVINO Laufzeit.

  2. Verwenden Sie die native openvino Paket für erweiterte oder benutzerdefinierte Kontrolle über das Inferenzverhalten.

Inferenz mit Ultralytics

Der ultralytics Paket ermöglicht Ihnen die einfache Ausführung von Inferenzen mit den exportierten OpenVINO Modell über die Predict-Methode. Sie können auch das Zielgerät angeben (z. B. intel:gpu, intel:npu, intel:cpu) mit dem Geräteargument.

from ultralytics import YOLO

# Load the exported OpenVINO model
ov_model = YOLO("yolo11n_openvino_model/")  # the path of your exported OpenVINO model
# Run inference with the exported model
ov_model.predict(device="intel:gpu")  # specify the device you want to run inference on

Dieser Ansatz ist ideal für schnelles Prototyping oder Deployment, wenn Sie keine vollständige Kontrolle über die Inferenzpipeline benötigen.

Inferenz mit OpenVINO Laufzeit

Der openvino Runtime bietet eine einheitliche API zur Inferenz über alle unterstützten Intel Hardware. Es bietet auch erweiterte Funktionen wie Lastausgleich über Intel Hardware und asynchrone Ausführung. Weitere Informationen zum Ausführen der Inferenz finden Sie in den YOLO11 Notebooks .

Denken Sie daran, dass Sie die XML- und BIN-Dateien sowie alle anwendungsspezifischen Einstellungen wie Eingabegröße, Skalierungsfaktor für die Normalisierung usw. benötigen, um das Modell mit der Runtime korrekt einzurichten und zu verwenden.

In Ihrer Verteilungsanwendung würden Sie normalerweise die folgenden Schritte durchführen:

  1. Initialisieren Sie OpenVINO durch Erstellen von core = Core().
  2. Laden Sie das Modell mit der Funktion core.read_model() Methode.
  3. Kompilieren Sie das Modell mit der core.compile_model() Funktion.
  4. Bereiten Sie die Eingabe vor (Bild, Text, Audio, etc.).
  5. Inferenz ausführen mit compiled_model(input_data).

Ausführlichere Schritte und Codeschnipsel finden Sie in der DokumentationOpenVINO oder im API-Tutorial.

OpenVINO YOLO11 Benchmarks

Der Ultralytics Team-Benchmarking YOLO11 über verschiedene Modellformate und Präzision , Bewertung von Geschwindigkeit und Genauigkeit auf verschiedenen Intel Geräte kompatibel mit OpenVINO .

Hinweis

Die nachstehenden Benchmarking-Ergebnisse dienen als Referenz und können je nach der genauen Hardware- und Softwarekonfiguration eines Systems sowie der aktuellen Arbeitslast des Systems zum Zeitpunkt der Ausführung der Benchmarks variieren.

Alle Benchmarks laufen mit openvino Python Paket-Version 2025.1.0.

Intel Kern CPU

Die Intel® Core® Serie ist eine Reihe von Hochleistungsprozessoren von Intel. Die Reihe umfasst Core i3 (Einstiegsmodell), Core i5 (Mittelklasse), Core i7 (Spitzenmodell) und Core i9 (extreme Leistung). Jede Serie eignet sich für unterschiedliche Anforderungen und Budgets, von alltäglichen Aufgaben bis hin zu anspruchsvollen professionellen Workloads. Mit jeder neuen Generation werden die Leistung, die Energieeffizienz und die Funktionen verbessert.

Die folgenden Benchmarks laufen auf dem Intel® Core® i9-12900KS der 12. Generation CPU mit FP32-Präzision.

Zentrale CPU Benchmarks
Modell Format Status Größe (MB) metrisch/mAP50-95(B) Inferenzzeit (ms/im)
YOLO11n PyTorch 5.4 0.61 28.73
YOLO11n TorchScript 10.5 0.6082 36.27
YOLO11n ONNX 10.2 0.6082 19.62
YOLO11n OpenVINO 10.4 0.6082 12.72
YOLO11s PyTorch 18.4 0.7526 35.28
YOLO11s TorchScript 36.6 0.74 54.57
YOLO11s ONNX 36.3 0.74 37.91
YOLO11s OpenVINO 36.4 0.74 34.38
YOLO11m PyTorch 38.8 0.7598 82.46
YOLO11m TorchScript 77.3 0.7643 121.66
YOLO11m ONNX 76.9 0.7643 87.21
YOLO11m OpenVINO 77.1 0.7643 78.94
YOLO11l PyTorch 49.0 0.743 111.51
YOLO11l TorchScript 97.7 0.725 161.36
YOLO11l ONNX 97.0 0.725 109.23
YOLO11l OpenVINO 97.3 0.725 100.42
YOLO11x PyTorch 109.3 0.8288 241.93
YOLO11x TorchScript 218.1 0.8308 307.04
YOLO11x ONNX 217.5 0.8308 205.75
YOLO11x OpenVINO 217.8 0.8308 211.69

Intel® Core™ Ultra

Die Intel® Core™ Ultra™ Serie setzt neue Maßstäbe im Hochleistungsrechnen und wurde entwickelt, um den steigenden Anforderungen moderner Anwender gerecht zu werden – von Gamern und Kreativen bis hin zu Profis, die KI nutzen. Diese Produktreihe der nächsten Generation ist mehr als eine traditionelle CPU Serie; es vereint leistungsstarke CPU Kerne, integrierte Hochleistungs GPU Funktionen und eine dedizierte Neural Processing Unit (NPU) in einem einzigen Chip und bietet so eine einheitliche Lösung für vielfältige und intensive Rechenlasten.

Das Herzstück der Intel® Core Ultra™ Architektur ist ein Hybriddesign, das außergewöhnliche Leistung bei herkömmlichen Verarbeitungsaufgaben ermöglicht, GPU -beschleunigte Workloads und KI-gesteuerte Vorgänge. Die Integration der NPU verbessert die KI-Inferenz auf dem Gerät und ermöglicht schnelleres, effizienteres maschinelles Lernen und Datenverarbeitung in einer Vielzahl von Anwendungen.

Die Core Ultra™-Familie umfasst verschiedene Modelle, die auf unterschiedliche Leistungsanforderungen zugeschnitten sind. Die Optionen reichen von energieeffizienten Designs bis hin zu Hochleistungsvarianten mit dem „H“-Kennzeichen – ideal für Laptops und kompakte Formfaktoren, die hohe Rechenleistung erfordern. Über die gesamte Produktpalette hinweg profitieren Anwender von der Synergie von CPU , GPU und NPU-Integration, die bemerkenswerte Effizienz, Reaktionsfähigkeit und Multitasking-Fähigkeiten bietet.

Im Rahmen Intel Die Core Ultra™-Serie setzt mit ihrer kontinuierlichen Innovation neue Maßstäbe für zukunftsfähiges Computing. Mit mehreren verfügbaren Modellen und weiteren in der Zukunft unterstreicht diese Serie Intel Das Engagement von besteht darin, Spitzenlösungen für die nächste Generation intelligenter, KI-gestützter Geräte bereitzustellen.

Die folgenden Benchmarks laufen auf Intel® Core™ Ultra™ 7 258V mit FP32- und INT8-Präzision.

Intel® Core™ Ultra™ 7 258 V

Benchmarks

Modell Format Präzision Status Größe (MB) metrisch/mAP50-95(B) Inferenzzeit (ms/im)
YOLO11n PyTorch FP32 5.4 0.6316 39.52
YOLO11n OpenVINO FP32 10.4 0.6112 19.59
YOLO11n OpenVINO INT8 3.3 0.6219 14.43
YOLO11s PyTorch FP32 18.4 0.7469 104.09
YOLO11s OpenVINO FP32 36.4 0.7414 16.274
YOLO11s OpenVINO INT8 9.8 0.7086 19.436
YOLO11m PyTorch FP32 38.8 0.7642 286.281
YOLO11m OpenVINO FP32 77.1 0.7642 18.69
YOLO11m OpenVINO INT8 20.2 0.7445 21.74
YOLO11l PyTorch FP32 49.0 0.7401 352.25
YOLO11l OpenVINO FP32 97.3 0.7264 31.90
YOLO11l OpenVINO INT8 25.7 0.7376 25.64
YOLO11x PyTorch FP32 109.3 0.8467 731.15
YOLO11x OpenVINO FP32 217.8 0.8308 45.12
YOLO11x OpenVINO INT8 55.9 0.8156 32.57

Intel Core Ultra GPU Benchmarks

Modell Format Präzision Status Größe (MB) metrisch/mAP50-95(B) Inferenzzeit (ms/im)
YOLO11n PyTorch FP32 5.4 0.6316 39.52
YOLO11n OpenVINO FP32 10.4 0.6082 30.21
YOLO11n OpenVINO INT8 3.3 0.6256 17.98
YOLO11s PyTorch FP32 18.4 0.7469 104.09
YOLO11s OpenVINO FP32 36.4 0.7400 81.09
YOLO11s OpenVINO INT8 9.8 0.7488 41.04
YOLO11m PyTorch FP32 38.8 0.7642 286.28
YOLO11m OpenVINO FP32 77.1 0.7642 204.31
YOLO11m OpenVINO INT8 20.2 0.7504 109.51
YOLO11l PyTorch FP32 49.0 0.7401 352.25
YOLO11l OpenVINO FP32 97.3 0.7249 319.97
YOLO11l OpenVINO INT8 25.7 0.7318 136.44
YOLO11x PyTorch FP32 109.3 0.8467 731.15
YOLO11x OpenVINO FP32 217.8 0.8308 742.98
YOLO11x OpenVINO INT8 55.9 0.819 288.02

Intel Core Ultra CPU Benchmarks

Modell Format Präzision Status Größe (MB) metrisch/mAP50-95(B) Inferenzzeit (ms/im)
YOLO11n PyTorch FP32 5.4 0.6316 39.52
YOLO11n OpenVINO FP32 10.4 0.6096 11.58
YOLO11n OpenVINO INT8 3.3 0.6380 12.60
YOLO11s PyTorch FP32 18.4 0.7469 104.09
YOLO11s OpenVINO FP32 36.4 0.7430 15.15
YOLO11s OpenVINO INT8 9.8 0.744 21.22
YOLO11m PyTorch FP32 38.8 0.7642 286.28
YOLO11m OpenVINO FP32 77.1 0.7642 32.92
YOLO11m OpenVINO INT8 20.2 0.7445 21.74
YOLO11l PyTorch FP32 49.0 0.7401 352.25
YOLO11l OpenVINO FP32 97.3 0.7264 43.15
YOLO11l OpenVINO INT8 25.7 0.7313 42.27
YOLO11x PyTorch FP32 109.3 0.8467 731.15
YOLO11x OpenVINO FP32 217.8 0.8308 74.33
YOLO11x OpenVINO INT8 55.9 0.8211 59.41

Intel Core Ultra NPU-Benchmarks

Reproduzieren Sie unsere Ergebnisse

Um die obigen Ultralytics Benchmarks für alle Exportformate zu reproduzieren, führen Sie diesen Code aus:

Beispiel

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

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

Beachten Sie, dass die Benchmarking-Ergebnisse je nach der genauen Hardware- und Softwarekonfiguration eines Systems sowie der aktuellen Arbeitslast des Systems zum Zeitpunkt der Durchführung der Benchmarks variieren können. Die zuverlässigsten Ergebnisse erhalten Sie, wenn Sie einen Datensatz mit einer großen Anzahl von Bildern verwenden, d. h. data='coco128.yaml' (128 val-Bilder), oder data='coco.yaml' (5000 val-Bilder).

Schlussfolgerung

Die Benchmarking-Ergebnisse zeigen deutlich die Vorteile des Exports der YOLO11 Modell zum OpenVINO Format. Über verschiedene Modelle und Hardwareplattformen hinweg OpenVINO Das Format übertrifft andere Formate hinsichtlich der Inferenzgeschwindigkeit durchweg, während die Genauigkeit vergleichbar bleibt.

Die Benchmarks unterstreichen die Effektivität von OpenVINO als Werkzeug für den Einsatz von Deep-Learning-Modellen. Durch die Konvertierung von Modellen in das Format OpenVINO können Entwickler erhebliche Leistungsverbesserungen erzielen, die den Einsatz dieser Modelle in realen Anwendungen erleichtern.

Ausführlichere Informationen und Anweisungen zur Verwendung von OpenVINO finden Sie in der offiziellen Dokumentation OpenVINO .

FAQ

Wie exportiere ich YOLO11 Modelle zu OpenVINO Format?

Exportieren YOLO11 Modelle zum OpenVINO Format kann erheblich verbessern CPU beschleunigen und ermöglichen GPU und NPU-Beschleunigungen auf Intel Hardware. Zum Exportieren können Sie entweder Python oder CLI wie unten gezeigt:

Beispiel

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Export the model
model.export(format="openvino")  # creates 'yolo11n_openvino_model/'
# Export a YOLO11n PyTorch model to OpenVINO format
yolo export model=yolo11n.pt format=openvino # creates 'yolo11n_openvino_model/'

Weitere Informationen finden Sie in der Dokumentation zu den Exportformaten.

Welche Vorteile bietet die Verwendung OpenVINO mit YOLO11 Modelle?

Verwenden Intel 'S OpenVINO Werkzeugkasten mit YOLO11 Modelle bieten mehrere Vorteile:

  1. Leistung: Erzielen Sie eine bis zu 3-fache Beschleunigung der CPU Inferenz und nutzen Sie Intel GPUs und NPUs zur Beschleunigung.
  2. Modell-Optimierer: Konvertieren, Optimieren und Ausführen von Modellen aus gängigen Frameworks wie PyTorch, TensorFlow und ONNX.
  3. Benutzerfreundlichkeit : Über 80 Lernhefte stehen zur Verfügung, um den Benutzern den Einstieg zu erleichtern, darunter auch solche für YOLO11 .
  4. Heterogene Ausführung: Bereitstellung von Modellen auf verschiedener Intel Hardware mit einer einheitlichen API.

Detaillierte Leistungsvergleiche finden Sie in unserem Benchmarking-Bereich.

Wie kann ich Inferenzen ausführen mit einem YOLO11 Modell exportiert nach OpenVINO ?

Nach dem Export eines YOLO11n-Modells nach OpenVINO Format können Sie Inferenzen ausführen mit Python oder CLI :

Beispiel

from ultralytics import YOLO

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

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

Weitere Einzelheiten finden Sie in unserer Dokumentation zum Vorhersagemodus.

Warum sollte ich wählen Ultralytics YOLO11 gegenüber anderen Modellen für OpenVINO Export?

Ultralytics YOLO11 ist für die Echtzeit-Objekterkennung mit hoher Genauigkeit und Geschwindigkeit optimiert. Insbesondere in Kombination mit OpenVINO , YOLO11 bietet:

  • Bis zu 3-fache Beschleunigung auf Intel CPUs
  • Nahtloser Einsatz auf Intel GPUs und NPUs
  • Konsistente und vergleichbare Genauigkeit bei verschiedenen Exportformaten

Für eine umfassende Leistungsanalyse sehen Sie sich unsere ausführlichen YOLO11 Benchmarks auf unterschiedlicher Hardware an.

Kann ich Benchmarking durchführen? YOLO11 Modelle auf verschiedenen Formaten wie PyTorch , ONNX , Und OpenVINO ?

Ja, Sie können Benchmarking durchführen YOLO11 Modelle in verschiedenen Formaten, einschließlich PyTorch , TorchScript , ONNX , Und OpenVINO . Verwenden Sie den folgenden Codeausschnitt, um Benchmarks für den von Ihnen gewählten Datensatz auszuführen:

Beispiel

from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Benchmark YOLO11n speed and [accuracy](https://www.ultralytics.com/glossary/accuracy) on the COCO8 dataset for all export formats
results = model.benchmark(data="coco8.yaml")
# Benchmark YOLO11n speed and accuracy on the COCO8 dataset for all export formats
yolo benchmark model=yolo11n.pt data=coco8.yaml

Detaillierte Benchmark-Ergebnisse finden Sie in unserem Abschnitt über Benchmarks und Exportformate.



📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 1 Tag

Kommentare