
Wir
kehren zur Geschichte der Open-Source-Computer-Vision-
Bibliothek OpenCV zurück . Das Projekt lebt und entwickelt sich, angetrieben von einem Team von Entwicklern, die bei Intel arbeiten, und einer dauerhaften Unterstützung durch die Community. Ende 2018 wurde die erste stabile Version aus dem 4.x-Zweig veröffentlicht, und vor einem Monat wurde ein neues Update veröffentlicht - Version 4.1. Wir haben die Autoren der Bibliothek gebeten, kurz aufzulisten, welche neuen Versionen dieser beiden Versionen für die OpenCV-Funktionalität verfügbar sind.
Opencv 4.0
Die Veröffentlichung von OpenCV 4.0 vervollständigte den Lebenszyklus von Version 3.x - um Fehler und kleinere Verbesserungen zu beheben, wurde ein 3.4-Zweig erstellt, aus dem bereits kleinere 3.4.x-Versionen erstellt werden (ähnlich wie bei 2.4.x).
Opencv 4.0 Finale- OpenCV ist jetzt eine C ++ 11-Bibliothek und erfordert einen C ++ 11-kompatiblen Compiler.
- Viele Funktionen der veralteten C-API (aus OpenCV 1.0) wurden entfernt, alte Konstanten und Funktionsdeklarationen wurden in separate Header-Dateien ( imgproc_c.h ) verschoben und sollten jetzt vom Benutzer explizit aufgenommen werden ( #include <opencv / imgproc / imgproc_c.h> ).
- Alle CUDA-Module wurden in das Repository opencv_contrib portiert .
- Die Persistenz-API zum Schreiben und Lesen von Daten in eine Datei wurde in C ++ neu geschrieben, alte Funktionen wurden entfernt.
- Es wurde ein neues G-API-Modul hinzugefügt, mit dem Sie Diagramme aus Operationen an Bildern erstellen und verschiedene Optimierungen auf diese anwenden können.
- Unterstützung für das Deep Learning Deployment Toolkit (einschließlich OpenSource-Versionen ) zum dnn-Modul hinzugefügt , einschließlich der Verwendung von Intel Movidius Neural Compute Stick oder Intel Neural Compute Stick 2 auf Raspberri Pi 3 ;
- Das dnn- Modul wurde um Unterstützung für Netzwerke im ONNX- Format (Open Neural Network Exchange) erweitert .
- Experimentelle Unterstützung für Berechnungen über Vulkan zum dnn-Modul hinzugefügt;
- Die Implementierung des Echtzeitalgorithmus zur Verarbeitung von 3D-Szenen / Modellen von KinectFusion (mit Optimierung für CPU und GPU / OpenCL) wurde hinzugefügt .
- Das Objdetect- Modul wurde um die Erkennung und Dekodierung von QR-Codes erweitert (der Decoder verwendet die QUirc-Bibliothek). In diesem Sommer wird im Rahmen des Sommerpraktikums daran gearbeitet, die Qualität und möglicherweise den Modus der gleichzeitigen Erkennung und Dekodierung von mehr als einem QR-Code im Bild zu verbessern.
- Ein sehr effizienter und gleichzeitig hochpräziser optischer DIS-Stream-Algorithmus wurde von opencv_contrib in das Videomodul des Haupt-Repositorys übertragen.
Opencv 4.1
- Versandoptimierte Implementierungen vieler Algorithmen in den Kern- und imgproc-Modulen hinzugefügt ;
- Verbesserungen im dnn- Modul:
- Unterstützung für das Starten von Netzwerken auf dem Intel Neural Compute Stick 2 (mit DLDT) implementiert;
- Reduzierter maximaler Speicherverbrauch, Unterstützung für viele neue Netzwerke von TensorFlow eingeführt
- Das Videoio- Modul bietet Unterstützung für die Android Media NDK-API zum Lesen von Videodateien / Streams auf Android-Geräten aus C ++ - Code (nützlich zum Testen von Algorithmen).
- Ein neues Modul zur Analyse der Bildqualität ( opencv_contrib / Qualität ) wurde hinzugefügt . Es implementiert sowohl grundlegende Algorithmen (PSNR, SSIM) als auch neue spezialisierte Algorithmen (wie den Qualitätsbewertungsalgorithmus ohne Verwendung der ursprünglichen BRISQUE-Bilder - Blind / Referenceless Image Spatial Quality Evaluator).
- Mehrere neue Algorithmen wurden implementiert: Robuster lokaler optischer Fluss, Quasi Dense Stereo, am Manipulator angebrachte Kamerakalibrierung (Hand-Auge);
Weitere Informationen zur Bibliothek finden Sie auf
der Projektwebsite, die sich bis zur Unkenntlichkeit geändert hat.
Die Anzahl der Patches von 4.0.0 bis 4.1.0: 462 (ca. 5,3 Patches pro Tag, außer an Wochenenden und Feiertagen). Wie Sie sehen, gibt es viele Änderungen, die von Bedeutung sind. Wenn Sie Fragen zur eingebetteten oder umgekehrt zur nicht implementierten Funktionalität haben, begrüßen Sie Kommentare. Die OpenCV-Entwickler werden versuchen, diese zu beantworten.