OpenCV 4.0 liegt vollständig als C++11-Bibliothek vor
Das neue Major-Release der Computer-Vision-Bibliothek bietet Verbesserungen bei DNNs und setzt nun C++11-kompatible Compiler voraus.
![OpenCV 3.0 mit besserer Performance veröffentlicht](https://heise.cloudimg.io/width/600/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/5/4/3/1/4/2/opencv-e1fe7cf2e9e6b88a.jpeg)
Mit Veröffentlichung von OpenCV 4.0 haben die Macher der Computer-Vision-Bibliothek den Umbau zu einer C++11-Library abgeschlossen. Neben dem Fokus auf C++ bietet das neue Major Release einige leistungssteigernde Neuerungen, Verbesserungen im Hinblick auf Deep Neural Networks (DNN), einen QR-Code-Detektor sowie ein Vulkan-Backend, das sich allerdings noch im experimentellen Status befindet.
Im Zuge des Wechsels auf C++ konnten die OpenCV-Entwickler einen großen Teil der noch aus den Versionen 1.x verbliebenen C-API entfernen. Davon betroffen sind vor allem die Module objdetect, photo, video, videoio, imgcodecs und calib3d. Das zum Speichern und Laden von strukturierten Daten in XML, YAML oder JSON zuständige Core-Modul persistence liegt nun vollständig in C++ vor. Die base64-Unterstützung ist noch unvollständig. Mit base64 codierte XML- oder YAML-Dateien lassen sich laden, OpenCV selbst beherrscht das Codieren allerdings noch nicht. Als C++11-Bibliothek setzt OpenCV 4.0 nun auch C++11-kompatible Compiler voraus.
QR-Code-Detektor und Graph API
Das Modul opencv/objdetect verfügt nun über einen auf der QUirc-Library aufsetzenden QR-Code-Detektor und -Dekoder. Den Kinect-Fusion-Algorithmus haben die OpenCV-Macher weiter für CPU und GPU (OpenCL) optimiert und in das Modul opencv_contrib/rgbd integriert. Die in großer Zahl neu geschriebenen Kernels in OpenCV versprechen Performancevorteile durch die bessere Anpassung an Befehlssatzerweiterung wie SSE2, SSE4, AVX2, NEON oder VSX. Für eine noch effizientere Bildverarbeitung steht in OpenCV darüber hinaus das neue Modul opencv_gapi zur Verfügung. Die derzeit noch experimentelle Graph API lässt sich wie ein Framework nutzen, um Tasks für die Bildverarbeitung als Ausdrücke zu definieren, die sich dann zur Ausführung übergeben lassen.
Intels Deep Learning Deployment Toolkit (DLDT) OpenVINO soll dem DNN-Modul von OpenCV zu mehr Leistung verhelfen – unter anderen durch Zugriff auf mehr Layer aus DLDT. Für die Arbeit mit Deep Neural Networks unterstützt das neueste Release der Computer-Vision-Bibliothek nun außerdem das Modul Mask-RCNN. Der integrierte ONNX-Parser erlaubt den Zugriff auf eine Vielzahl von Klassifizierungsnetzwerken. Für Plattformen, auf denen OpenCL nicht verfügbar ist, können OpenCV-Anwender ab sofort auf ein neues Vulkan-Backend zurückgreifen, dass derzeit allerdings noch experimentellen Status hat. Eine vollständige Übersicht aller Neuerungen findet sich im ChangeLog zu OpenCV 4.0. (map)