OpenCV (englische Abk. für Open Source Computer Vision Library) ist eine freie Programmbibliothek mit Algorithmen für die Bildverarbeitung und Computer Vision. Sie ist für die Programmiersprachen C, C++, Python und Java geschrieben und steht als freie Software unter den Bedingungen der Apache 2 License. Die Entwicklung der Bibliothek wurde von Intel initiiert und bis 2013 von der Firma Willow Garage gepflegt. Nach deren Auflösung wurde sie vom Unternehmen Itseez fortgeführt, das im Jahr 2016 von Intel übernommen wurde.
Im September 2006 wurde die Version 1.0 von OpenCV herausgegeben. Ende September 2009 folgte nach längerer Pause die Version 2.0.0, welche die Bezeichnung „Gold“ trug. Anfang Juni 2015 erschien Version 3.0, die erstmals OpenCL unterstützte.OpenCV 3.0 – The Transparent API and OpenCL Acceleration, Harris Gasparakis, 15. Oktober 2014
Die Stärke von OpenCV liegt in ihrer Geschwindigkeit und in der großen Menge der Algorithmen aus neuesten Forschungsergebnissen.
Anwendungsbereiche Die Bibliothek umfasst unter anderem Algorithmen für Gesichtserkennung, 3D-Funktionalität, Haar-Klassifikatoren, verschiedene sehr schnelle Filter (z. B. Sobel, Canny, Gauß) und Funktionen für die Kamerakalibrierung.
OpenCV besteht aus Modulen für verschiedene Anwendungsfelder: 2D- und 3D-Merkmale (z. B. Interest-Operator oder Deskriptoren) Eigenbewegungsschätzung, siehe Photogrammetrie: Rückwärtsschnitt Gesichtserkennung mini|Automatische Gesichtserkennung mit OpenCV Gestenerkennung Mensch-Computer-Interaktion (HCI) Mobile Roboter Klassifizierung mit Hilfe der Viola-Jones-Methode Segmentierung und Erkennung Stereoskopisches Sehen (Stereopsis), ergibt Tiefenbilder Structure from Motion (SfM), siehe Computer Vision Optisches Tracking, Motion Compensation und Optischer Fluss Kalman-Filter zum Tracking
Ferner beinhaltet OpenCV eine Bibliothek für Maschinelles Lernen mit folgendem Funktionsumfang: Boosting (automatische Klassifizierung) Lernen eines Entscheidungsbaumes EM-Algorithmus (Expectation-Maximization) Nächste-Nachbarn-Klassifikation Bayes-Klassifikator Künstliche neuronale Netze, inkl. DNN Random Forest Support Vector Machine (SVM)
Deep Learning mini|Automatische Objekterkennung mit OpenCV. Hierzu wurde ein auf dem COCO-Dataset trainiertes YOLOv3 Modell geladen, das 80 verschiedene Objekte identifizieren kann. Das DNN-Modul von OpenCV kann die von gängigen Deep Learning Frameworks vortrainierten Netze einlesen und auf ihnen einen Forward Pass ausführen. D. h., es werden Werte in der sichtbaren Eingangsschicht (englisch input layer) des künstlichen neuronalen Netzwerks eingelesen und beim Durchlaufen aller Schichten des Netzwerks verarbeitet, bis sie dann an der sichtbaren letzten Schicht (output layer) ausgegeben werden. Objekterkennung mit z. B. YOLO wurde auf diese Weise realisiert. Das seit OpenCV 3.1 existierende DNN-Modul wurde mit Release 3.3 in das Haupt-Repository verschoben und ist somit leichter, also ohne Kompilierung des Quellcodes, benutzbar.
Unterstützt werden folgende Bibliotheken: Caffe TensorFlow Torch Darknet Modelle im ONNX Format
Einzelnachweise
Literatur
Weblinks
SourceForge-Projektseite OpenCV-WiKi OpenCV auf GPU (nvidia.de)
Kategorie:Computer Vision Kategorie:Freie KI-Software