OpenCV 5.0.0

Veröffentlicht OpenCV 5.0.0 — eine umfassende Veröffentlichung der Open-Source-Bibliothek für Computer Vision und Bildverarbeitung. Die Veröffentlichung fand statt am 6. Juni 2026 und wird bereits als aktuell im Projekt-Repository auf GitHub hervorgehoben. OpenCV wird unter der Lizenz Apache-2.0.

verbreitet. Der Kern der Veröffentlichung liegt im Übergang von OpenCV von einer «klassischen Bibliothek für Computer Vision» zu einer moderneren Plattform für CV-/AI-Aufgaben: Das Projekt hat die alte API bereinigt, das Modul für neuronale Netzinferenz überarbeitet, die Unterstützung für ONNX erweitert, Grundlagen für VLM-/LLM-Szenarien hinzugefügt und den 3D-/Kalibrierungs-Stack aktualisiert. Entwickler beschreiben OpenCV 5.0 als einen Zweig, der nun auch als stabil angesehen wird, während die neue Funktionalität überwiegend dort integriert wird.

Wesentliche Änderungen

  • Eine neue DNN-Inferenz-Engine.
    Im dnn-Modul wurde eine neue Engine eingeführt, die neben der alten koexistiert. Sie arbeitet besser mit dynamischen Tensorformen, Untergraphen und modernen ONNX-Funktionen. Es wird eine Abdeckung von über 80 % der ONNX-Spezifikation, während in OpenCV 4.x weniger als 23 % abgedeckt waren.
    Dies ist wahrscheinlich die Hauptänderung der Veröffentlichung: OpenCV versucht, nicht nur eine Umhüllung um Modelle zu sein, sondern eine vollwertige integrierte Inferenz-Engine für moderne neuronale Netze.

  • Die Auswahl der Engine beim Laden eines Modells.
    In cv::dnn::readNet() und verwandten Funktionen wurde der Parameter ENGINE_AUTO hinzugefügt. Standardmäßig versucht OpenCV zunächst die neue Engine, und im Falle eines Misserfolgs wird zur klassischen zurückgekehrt. Das Verhalten kann auch über die Umgebungsvariable OPENCV_FORCE_DNN_ENGINE festgelegt werden: alte Engine, neue, automatischer Modus oder ONNX Runtime nutzen. Alte Projekte müssen nicht sofort vollständig auf die neue Engine umsteigen, aber neue Modelle können schrittweise darauf umgestellt werden.

  • Integration mit ONNX Runtime.
    OpenCV kann jetzt mit aktivierter ONNX Runtime compilierte werden. In diesem Fall verwendet OpenCV seinen eigenen ONNX-Parser zum Erstellen des ORT-Diagramms, sodass das vollständige ONNX-Paket nicht erforderlich ist. Für den Build sind die CMake-Parameter -DWITH_ONNXRUNTIME=ON und -DDOWNLOAD_ONNXRUNTIME=ON vorgesehen; für NVIDIA-GPUs — -DDOWNLOAD_ONNXRUNTIME_GPU=ON. Diese Funktion wird nützlich sein für diejenigen, die bereits jetzt GPU-Inferenz benötigen, da die neue DNN-Engine von OpenCV derzeit nur auf der CPU arbeitet.

  • Unterstützung für Vision-Language-Modelle.
    Die neue DNN-Engine umfasst Tokenizer, Attention-Schichten, Decoding-Blöcke, Nachbearbeitung und KV-Cache, die erforderlich sind, um VLM-Modelle "out of the box" auszuführen. Die Bibliothek war historisch mit der Bildverarbeitung verbunden und betritt nun den Bereich der Modelle, die gleichzeitig mit Bild und Text arbeiten.

  • Die GPU-Unterstützung der neuen DNN-Engine ist derzeit noch nicht verfügbar.
    Die neue Engine in OpenCV 5.0 funktioniert nur auf der CPU. Native GPU-Unterstützung soll in künftigen Versionen hinzugefügt werden; bis dahin wird empfohlen, die klassische Engine oder eine Version mit ONNX Runtime und NVIDIA-Ausführungsträgern für GPU zu verwenden. Für serverseitige oder Desktop-CUDA-Inferenz ersetzt OpenCV 5.0 noch nicht spezialisierte Runtimes.

  • Die alten Parser für Darknet und Caffe wurden entfernt.
    Die Entwickler haben die Parser für Darknet und Caffe entfernt, da die meisten Modelle bereits in ONNX konvertiert wurden. TFLite bleibt zunächst über die klassische Engine verfügbar, die Übertragung auf die neue Engine ist später geplant. OpenCV gibt alte Formate auf und konzentriert sich auf ONNX als primäres Austauschformat für Modelle.

  • Große Bereinigung des veralteten API.
    Die C API von OpenCV 1.x wurde entfernt: Funktionen wie cvCreateMat() und alte Strukturen wie CvMat gehören nicht mehr zur Haupt-API. Auch die Unterstützung von OpenVX wurde entfernt, das G-API-Modul wurde in opencv_contrib verschoben, ebenso der klassische ML-Modul. Eine durchschlagende Änderung für alte Projekte, aber sie war längst fällig: Die Bibliothek befreit sich von der technischen Schuld, die über Jahrzehnte angesammelt wurde.

  • Features2D wurde in Features umbenannt.
    Das Modul wurde auf moderne Merkmalsvektoren aus neuronalen Netzwerken ausgeweitet. Im Hauptrepository sind SIFT, ORB, FAST, GoodFeaturesToTrack und MSER geblieben, während veraltete Detektoren und Deskriptoren in opencv_contrib verschoben wurden. ALIKED, DISK und der Matcher LightGlue wurden hinzugefügt. OpenCV passt sich deutlich an moderne Pipelines an, in denen Bildmerkmale immer häufiger nicht mit klassischen Algorithmus, sondern mit neuronalen Netzwerken extrahiert werden.

  • Neue Datentypen im Kern.
    Die Datentypen CV_16BF / cv::bfloat, CV_32U, CV_64U, CV_64S und CV_Bool wurden hinzugefügt. Auch die Unterstützung für N-dimensionale Arrays, 1D-Arrays und 0D-Skalare wurde verbessert. LAPACK ist jetzt immer verfügbar: Wenn die externe Bibliothek fehlt, baut OpenCV ein minimales eingebautes Teilensemble zusammen. Diese Änderungen sind wichtig für DNN, numerische Algorithmen und die Kompatibilität mit modernen Datenformaten, in denen bfloat16 und erweiterte Typen immer häufiger vorkommen.

  • Die Bildverarbeitung wurde beschleunigt.
    In imgproc wurden warpAffine, warpPerspective und remap überarbeitet. Die Leistungsverbesserungen liegen zwischen 10% und mehr als 300%, abhängig von der Plattform, der Bildgröße, dem Datentyp und den Betriebsflags.
    Das betrifft nicht mehr das AI-Modul – solche Optimierungen sind direkt wichtig für klassische Aufgaben: Video-Streams, Stabilisierung, projektive Transformationen und die Datenvorbereitung vor dem Inferenzprozess.

  • Die Textausgabe wurde verbessert.
    Der alte Text-Rendering-Mechanismus wurde durch einen STB-basierten TrueType-Renderer mit der eingebetteten variablen Schriftart Rubik ersetzt. Benutzerspezifische Schriftarten können angeschlossen werden, und es gibt eine umfassende Unterstützung für Unicode. Komplexe Schriftsysteme wie Arabisch und Devanagari werden jedoch nach wie vor ohne Harfbuzz nicht korrekt dargestellt, und farbige Emojis werden nicht unterstützt. OpenCV wird benutzerfreundlicher für die Generierung von Anmerkungen, Debug-Bildern und Visualisierungen ohne externe Bibliotheken.

  • 3D und Kalibrierung von Kameras wurden aktualisiert.
    calib3d wurde in geometry, calib, stereo und ptcloud unterteilt. USAC ist der Standard-Backend für die robuste Schätzung von Homographien, der essenziellen/fundamentalen Matrix, PnP und anderen Aufgaben geworden. Eine Pipeline zur Kalibrierung mehrerer Kameras wurde hinzugefügt, erste Unterstützung für die Verarbeitung von Netzen und Punktwolken, einschließlich TSDF, ICP, Import und Export von .ply und .obj. Dies ist ein wichtiger Schritt für Robotik, SLAM, AR/VR und Multikamerasysteme, wo eine 2D-Verarbeitung längst nicht mehr ausreichend ist.

  • Die Beispiele und die Dokumentation wurden überarbeitet.
    Veraltete Beispiele wurden entfernt, die verbleibenden aktualisiert. Für DNN-Beispiele wird eine gemeinsame Sammlung von Modellen verwendet, die mit dem Skript download_models.py heruntergeladen werden kann. Experimentelle Beispiele für VLM und LDM wurden hinzugefügt, und die Dokumentation erhielt ein modernes Design mit schneller Suche, hellen/dunklen Modi und verbesserter Navigation. Für eine so große Bibliothek ist dies kein kosmetisches Update: Eine ordentliche Dokumentation und funktionierende Beispiele haben direkten Einfluss darauf, ob Entwickler tatsächlich auf OpenCV 5.x umsteigen können.

Insgesamt ist OpenCV 5.0 nicht nur ein weiteres Release mit Optimierungen, sondern ein signifikantes Update in allen Bereichen: weniger Erbe aus der Ära von OpenCV 1.x und mehr Orientierung an ONNX, neuronaler Inferenz, modernen Merkmalen, 3D-Verarbeitung und heterogenem Beschleunigung. Der Übergang für alte Projekte kann jedoch Anpassungen erfordern, da die C-API entfernt und Teile der Module nach opencv_contrib verschoben wurden.

Quelle: linux.org.ru

60GB SSD 8Gb DDR4