OpenCV - Übersicht
OpenCV ist eine plattformübergreifende Bibliothek, mit der wir in Echtzeit entwickeln können computer vision applications. Es konzentriert sich hauptsächlich auf Bildverarbeitung, Videoaufnahme und -analyse, einschließlich Funktionen wie Gesichtserkennung und Objekterkennung.
Beginnen wir das Kapitel mit der Definition des Begriffs "Computer Vision".
Computer Vision
Computer Vision kann als eine Disziplin definiert werden, die erklärt, wie eine 3D-Szene anhand ihrer 2D-Bilder anhand der Eigenschaften der in der Szene vorhandenen Struktur rekonstruiert, unterbrochen und verstanden wird. Es befasst sich mit der Modellierung und Replikation des menschlichen Sehens mithilfe von Computersoftware und -hardware.
Computer Vision überschneidet sich erheblich mit den folgenden Feldern:
Image Processing - Es konzentriert sich auf die Bildmanipulation.
Pattern Recognition - Es werden verschiedene Techniken zur Klassifizierung von Mustern erläutert.
Photogrammetry - Es geht darum, genaue Messungen von Bildern zu erhalten.
Computer Vision gegen Bildverarbeitung
Image processingbefasst sich mit der Bild-zu-Bild-Transformation. Die Eingabe und Ausgabe der Bildverarbeitung sind beide Bilder.
Computer visionist die Konstruktion expliziter, aussagekräftiger Beschreibungen physischer Objekte aus ihrem Bild. Die Ausgabe von Computer Vision ist eine Beschreibung oder Interpretation von Strukturen in einer 3D-Szene.
Anwendungen von Computer Vision
Hier haben wir einige wichtige Bereiche aufgelistet, in denen Computer Vision stark genutzt wird.
Robotik-Anwendung
Lokalisierung - Bestimmen Sie den Roboterstandort automatisch
Navigation
Vermeidung von Hindernissen
Montage (Loch, Schweißen, Lackieren)
Manipulation (zB PUMA Robotermanipulator)
Human Robot Interaction (HRI) - Intelligente Robotik zur Interaktion mit und zum Dienst an Menschen
Medizin Anwendung
- Klassifizierung und Erkennung (z. B. Klassifizierung von Läsionen oder Zellen und Erkennung von Tumoren)
- 2D / 3D-Segmentierung
- 3D-Rekonstruktion menschlicher Organe (MRT oder Ultraschall)
- Vision-gesteuerte Robotik-Chirurgie
Industrielle Automatisierungsanwendung
- Industrielle Inspektion (Fehlererkennung)
- Assembly
- Lesen von Barcode und Verpackungsetiketten
- Objektsortierung
- Dokumentenverständnis (zB OCR)
Sicherheitsanwendung
Biometrie (Iris, Fingerabdruck, Gesichtserkennung)
Überwachung - Erkennen bestimmter verdächtiger Aktivitäten oder Verhaltensweisen
Transportanwendung
- Autonomes Fahrzeug
- Sicherheit, z. B. Überwachung der Wachsamkeit des Fahrers
Funktionen der OpenCV-Bibliothek
Mit der OpenCV-Bibliothek können Sie -
Bilder lesen und schreiben
Videos aufnehmen und speichern
Bilder verarbeiten (filtern, transformieren)
Führen Sie eine Funktionserkennung durch
Erkennen Sie bestimmte Objekte wie Gesichter, Augen, Autos in den Videos oder Bildern.
Analysieren Sie das Video, dh schätzen Sie die Bewegung darin, subtrahieren Sie den Hintergrund und verfolgen Sie die darin enthaltenen Objekte.
OpenCV wurde ursprünglich in C ++ entwickelt. Darüber hinaus wurden Python- und Java-Bindungen bereitgestellt. OpenCV läuft auf verschiedenen Betriebssystemen wie Windows, Linux, OSx, FreeBSD, Net BSD, Open BSD usw.
In diesem Tutorial werden die Konzepte von OpenCV anhand von Beispielen mit Java-Bindungen erläutert.
OpenCV-Bibliotheksmodule
Im Folgenden sind die Hauptbibliotheksmodule der OpenCV-Bibliothek aufgeführt.
Kernfunktionalität
Dieses Modul behandelt die grundlegenden Datenstrukturen wie Skalar, Punkt, Bereich usw., die zum Erstellen von OpenCV-Anwendungen verwendet werden. Zusätzlich zu diesen enthält es auch das mehrdimensionale ArrayMat, mit dem die Bilder gespeichert werden. In der Java-Bibliothek von OpenCV ist dieses Modul als Paket mit dem Namen enthaltenorg.opencv.core.
Bildverarbeitung
Dieses Modul behandelt verschiedene Bildverarbeitungsvorgänge wie Bildfilterung, geometrische Bildtransformationen, Farbraumkonvertierung, Histogramme usw. In der Java-Bibliothek von OpenCV ist dieses Modul als Paket mit dem Namen enthalten org.opencv.imgproc.
Video
Dieses Modul behandelt die Videoanalysekonzepte wie Bewegungsschätzung, Hintergrundsubtraktion und Objektverfolgung. In der Java-Bibliothek von OpenCV ist dieses Modul als Paket mit dem Namen enthaltenorg.opencv.video.
Video-E / A.
In diesem Modul werden die Videoaufzeichnung und die Video-Codecs mithilfe der OpenCV-Bibliothek erläutert. In der Java-Bibliothek von OpenCV ist dieses Modul als Paket mit dem Namen enthaltenorg.opencv.videoio.
calib3d
Dieses Modul enthält Algorithmen für grundlegende Geometriealgorithmen mit mehreren Ansichten, Einzel- und Stereokamerakalibrierung, Objektposenschätzung, Stereokorrespondenz und Elemente der 3D-Rekonstruktion. In der Java-Bibliothek von OpenCV ist dieses Modul als Paket mit dem Namen enthaltenorg.opencv.calib3d.
features2d
Dieses Modul enthält die Konzepte der Merkmalserkennung und -beschreibung. In der Java-Bibliothek von OpenCV ist dieses Modul als Paket mit dem Namen enthaltenorg.opencv.features2d.
Objekt erkennen
Dieses Modul umfasst die Erkennung von Objekten und Instanzen der vordefinierten Klassen wie Gesichter, Augen, Tassen, Personen, Autos usw. In der Java-Bibliothek von OpenCV ist dieses Modul als Paket mit dem Namen enthalten org.opencv.objdetect.
Highgui
Dies ist eine benutzerfreundliche Oberfläche mit einfachen UI-Funktionen. In der Java-Bibliothek von OpenCV sind die Funktionen dieses Moduls in zwei verschiedenen Paketen enthalten, nämlichorg.opencv.imgcodecs und org.opencv.videoio.
Eine kurze Geschichte von OpenCV
OpenCV war ursprünglich eine Intel-Forschungsinitiative zur Beratung von CPU-intensiven Anwendungen. Es wurde offiziell im Jahr 1999 ins Leben gerufen.
- Im Jahr 2006 wurde die erste Hauptversion, OpenCV 1.0, veröffentlicht.
- Im Oktober 2009 wurde die zweite Hauptversion, OpenCV 2, veröffentlicht.
- Im August 2012 wurde OpenCV von einer gemeinnützigen Organisation OpenCV.org übernommen.