Version 5 veröffentlicht: OpenCV bekommt bessere KI- und Python-Integration
Eine neue Engine für neuronale Netze ist schneller und unterstützt nativ LLMs und VLMs. Die Tage der alten C-API des Frameworks sind gezählt. ( Frameworks , Grafikkarten )
Fast acht Jahre sind seit dem letzten Major-Release von OpenCV vergangen. Die kürzlich vorgestellte Version 5(öffnet im neuen Fenster) des Bildverarbeitungs-Frameworks bringt die größten Änderungen seit Langem. Kern der neuen Version ist eine komplett neue DNN-Engine (Deep Neural Network): Die ist nicht nur leistungsfähiger, sondern unterstützt auch sogenannte dynamische Shapes, Tensoren mit erst zur Laufzeit bestimmter Größe. Auch sollen wesentlich mehr Modelle ohne Anpassungen funktionieren.
Die bedeutendsten Änderungen betreffen die DNN-Engine. Die stellt Modelle nicht mehr in Form einzelner Ebenen, sondern als Berechnungsgraph dar. So kann der Compiler Modelle umfangreicher analysieren und Operationen fusionieren, was die Anzahl an Berechnungen reduzieren kann. Das gilt etwa für den Aufmerksamkeitsmechanismus von Transformer-Modellen, die Implementierung ist an Flash Attention angelehnt.
Die neue Engine unterstützt zudem wesentlich mehr Operatoren. So deckt OpenCV 5 80 Prozent der durch das Austauschformat ONNX definierten Operatoren ab, bei älteren Versionen sind es nur 22 Prozent. Erstmals werden auch Bedingungen und Schleifen unterstützt. Neu sind außerdem ein integrierter Tokenizer und KV-Cache.
Damit kann OpenCV 5 nativ LLMs und VLMs (Large Language und Vision Language Models) der Familien Qwen 2.5, Gemma 3, Paligemma und GPT-2/-4 ausführen. So lassen sich Sprachmodelle ohne externes Framework direkt in eine OpenCV-Anwendung einbauen.
Einen Nachteil hat die neue DNN-Engine allerdings: Sie läuft vorerst nur auf der CPU. Wer Beschleuniger wie eine GPU nutzen will, muss vorerst auf das ONNX Runtime Backend (ORT) zurückgreifen. Künftig soll die neue Engine allerdings auch für GPUs und andere Beschleuniger portiert werden. Die alte Engine bleibt aber parallel erhalten.
OpenCV nutzt sie implizit, wenn das Laden eines Modells mit der neuen Implementierung fehlschlägt. Alternativ kann die zu verwendende Engine beim Aufruf der Funktion readNetFromONNX() explizit ausgewählt werden.
OpenCV 5 bringt zudem eine transparente Hardware-Abstraktion (HAL, Hardware Abstraction Layer) mit. Sie soll die Ausführung von OpenCV-Operationen ohne Kontextwissen auf der CPU – hier sind Optimierungen für AVX und SSE, ARMs Neon, SVE und SME sowie die RISC-V-Vektorerweiterung RVV vorhanden – oder verfügbaren Beschleunigern wie GPU, NPU oder DSP ausführen.
Hersteller können hierfür Plug-ins bereitstellen, OpenCV soll automatisch das beste Backend auswählen. Langfristig soll das zusammen mit der neuen DNN-Engine die einfache Auslagerung komplexer Verarbeitungs-Pipelines
📌 Kaynak
Bu özet Golem kaynağından otomatik derlenmiştir. Tamamı için orijinal habere gidin.
Orijinal haberi oku →