Computer Vision

 

Was ist Computer Vision?

3 Dinge, die Sie wissen sollten

Computer Vision umfasst eine Reihe von Techniken zur Extraktion von Informationen aus Bildern, Videos oder Punktwolken. Computer Vision beinhaltet Bilderkennung, Objekterkennung, Aktivitätserkennung, 3D-Posenabschätzung, Video-Tracking sowie Bewegungsschätzung. Zu den praktischen Anwendungen zählen Gesichtserkennung für die Anmeldung auf Smartphones, die Vermeidung von Fußgängern und anderen Fahrzeugen bei selbstfahrenden Fahrzeugen sowie die Tumorerkennung in medizinischen MRTs. Software-Tools wie MATLAB® und Simulink® werden für die Entwicklung von Computer Vision-Techniken eingesetzt.

Funktionsweise

Die meisten Computer-Vision-Techniken werden mit einer umfassenden Sammlung von realen Daten und unter Verwendung eines Workflows aus Datenuntersuchung, Modelltraining und Algorithmenentwicklung entwickelt. Computer-Vision-Entwickler passen dabei häufig eine bestehende Reihe von Techniken an das konkret vorliegende Problem an. Nachstehend werden die wichtigsten Ansätze von Computer-Vision-Systemen beschrieben.

Deep-Learning-basierte Techniken

Deep-Learning-Ansätze für Computer Vision sind nützlich für die Objekterkennung, die Schärfung von Bildern sowie die Segmentierung von Szenen. Deep-Learning-Ansätze beinhalten das Trainieren von neuronalen Faltungsnetzen (Convolutional Neural Networks, CNNs), die mithilfe von Mustern in unterschiedlichen Maßstäben direkt aus Daten lernen können. Das Training von CNNs erfordert eine große Menge von gekennzeichneten Trainingsbildern oder Punktwolken. Beim Transfer Learning werden vortrainierte Netze zur Beschleunigung dieses Prozesses mit weniger Trainingsdaten verwendet.

Semantische Segmentierung einer Straße mithilfe der Computer Vision Toolbox in MATLAB.

Semantische Segmentierung einer Straße mithilfe der Computer Vision Toolbox in MATLAB.

Merkmalsbasierte Techniken

Merkmalserkennungs- und -extraktionstechniken sind Computer-Vision-Algorithmen, die Muster oder Strukturen in Bildern und Punktwolken erkennen und diese für Bildausrichtung, Videostabilisierung, Objekterkennung und weitere Zwecke nutzen. Zu den nützlichen Arten von Merkmalen in Bildern zählen Kanten, Ecken oder Regionen mit gleichmäßiger Dichte. Diese Merkmale erkennen Sie mit Detektoren wie BRISK, SURF oder ORB. In Punktwolken können Sie eigenwertbasierte Merkmalsextraktoren oder FPFH-Extraktoren (fast point feature histogram) verwenden.

Merkmalsabgleich zum Vergleich eines Bildes aus einem Raumfahrzeug in Bewegung mit einem Referenzbild.

Merkmalsabgleich zum Vergleich eines Bildes aus einem Raumfahrzeug in Bewegung (rechtes Bild) mit einem Referenzbild (linkes Bild). (Bild mit freundlicher Genehmigung der NASA)

Bildverarbeitung

Bildverarbeitungstechniken werden häufig als Vorverarbeitungsschritt im Computer-Vision-Workflow herangezogen. Die Art der Vorverarbeitung hängt von der jeweiligen Aufgabe ab. Relevante Bildverarbeitungstechniken:

Erkennung roter Kegel mithilfe der rgb2hsv-Farbkonvertierung in MATLAB.

Erkennung roter Kegel mithilfe der rgb2hsv-Farbkonvertierung in MATLAB.

Verarbeitung von Punktwolken

Bei Punktwolken handelt es sich um eine Reihe von Datenpunkten im dreidimensionalen Raum, die zusammen eine dreidimensionale Form oder ein Objekt repräsentieren. Punktwolken werden in der Regel zur Vorverarbeitung der Daten zur Vorbereitung auf die Computer-Vision-Algorithmen verarbeitet, mit denen sie analysiert werden. Die Verarbeitung von Punktwolken beinhaltet in der Regel Folgendes:

Registrierung und Zusammenfügen einer 3D-Punktwolke mithilfe von Iterative Closest Point (ICP) in MATLAB.

Registrierung und Zusammenfügen einer 3D-Punktwolke mithilfe von Iterative Closest Point (ICP) in MATLAB.

3D-Vision-Verarbeitung

Mit 3D-Vision-Verarbeitungstechniken wird die dreidimensionale Struktur einer Szene mithilfe mehrerer Bilder bestimmt, die mit einer kalibrierten Kamera aufgenommen wurden. Diese Bilder werden in der Regel von einer monokularen Kamera oder einem Stereokamerapaar generiert. 3D-Vision-Verarbeitungstechniken:

3D-Rekonstruktion eines Objekts mithilfe von Structure from Motion (SfM) in MATLAB.

3D-Rekonstruktion eines Objekts mithilfe von Structure from Motion (SfM) in MATLAB.

Warum es wichtig ist

Computer Vision ist wesentlich für zahlreiche praktische Anwendungen. Nachstehend werden einige der häufigsten Anwendungen besprochen.

Autonome Systeme

Autonome Systeme in der Luft oder am Boden erfassen mithilfe verschiedener Sensoren visuelle Daten oder Punktwolkendaten aus ihrer Umgebung. Die Systeme verwenden diese Daten in Verbindung mit Computer-Vision-Funktionen, z. B. Simultaneous Localization and Mapping (SLAM) und Objektverfolgung (Tracking), um die Umgebung zu kartieren. Autonome Systeme können mithilfe dieser Karten Straßen, Fußwege oder Gebäude segmentieren sowie Menschen und Fahrzeuge erkennen und verfolgen. Beispielsweise verwendet BMW Computer-Vision-Funktionen in Assisted Driving View (ADV) zur Darstellung von Fahrzeugen in der Umgebung und zur Erkennung der Fahrzeugtypen.

MATLAB unterstützt End-to-End-Tests von BMWs Assisted Driving View mithilfe von realen Daten.

MATLAB unterstützt End-to-End-Tests von BMWs Assisted Driving View mithilfe von realen Daten.

Industrielle Anwendungen

Computer Vision wird in Fertigungsanwendungen wie der Überwachung der Teilequalität und der Instandhaltung der Infrastruktur eingesetzt. Beispielsweise verwendete Shell trainierte regionale neuronale Faltungsnetze (Regional Convolutional Neural Networks, R-CNNs) zur Erkennung von Etiketten an Maschinen. TimkenSteel nutzte die gleichen Funktionen zur Qualitätskontrolle, um minderwertige oder defekte Teile während der Fertigung zu erkennen.

Erkennung von Etiketten mit OCR und Deep Learning in MATLAB.

Erkennung von Etiketten mit OCR und Deep Learning in MATLAB.

Bauwesen und Landwirtschaft

Computer Vision wird im Bauwesen und in der Landwirtschaft zur Extraktion von Informationen aus Luftaufnahmen von Infrastruktur- oder Geländedaten verwendet. Computer-Vision-Funktionen wie die Abbildung spektraler Signaturen, Objekterkennung und Segmentierung werden zur Analyse von Bildern, Punktwolken oder hyperspektralen Daten von luftgestützten Plattformen eingesetzt. Das japanische Unternehmen Yachiyo Engineering nutzt diese Funktionen zur Erkennung von Schäden an Dämmen und Brücken durch semantische Segmentierung. Landwirte analysieren den Zustand von Pflanzen mithilfe von Drohnen, die hyperspektrale Bilder ihrer Betriebe aufnehmen.

Erkennen von Schäden an Dammoberflächen mithilfe von SegNet in MATLAB.

Erkennen von Schäden an Dammoberflächen mithilfe von SegNet in MATLAB.

Fotografie

Die Verwendung von Computer Vision in Kameras und Smartphones hat in den vergangenen zehn Jahren deutlich zugenommen. Diese Geräte verwenden Gesichtserkennung und -verfolgung, um Gesichter in den Fokus zu rücken, sowie Stitching-Algorithmen zur Erstellung von Panoramaaufnahmen. Darüber hinaus integrieren diese Geräte auch optische Zeichenerkennung (OCR) oder Barcode- oder QR-Code-Scanner für den Zugriff auf gespeicherte Informationen.

Erstellung einer Panoramaaufnahme mit merkmalsbasierten Bildregistrierungstechniken in MATLAB.

Erstellung einer Panoramaaufnahme mit merkmalsbasierten Bildregistrierungstechniken in MATLAB.

Computer Vision mit MATLAB

Die Image Processing Toolbox™, die Computer Vision Toolbox™ und die Lidar Toolbox™ in MATLAB enthalten Apps, Algorithmen und trainierte Netze, die Sie zur Entwicklung Ihrer Computer-Vision-Funktionen nutzen können. Sie können Daten aus Bildern oder Punktwolken importieren, diese vorverarbeiten und die Daten mithilfe von integrierten Algorithmen und Deep-Learning-Netzen analysieren. Für den Einstieg enthalten die Toolboxen außerdem Beispiele.

Fehlererkennung mit MATLAB

Mithilfe der Computer Vision Toolbox können Sie Anomalien und Fehler in Objekten wie beispielsweise Maschinenteilen oder Schaltkreisen erkennen. Sie können die Wahrscheinlichkeit der Erkennung der richtigen Merkmale erhöhen, indem Sie mit Algorithmen zur Bildvorverarbeitung in der Image Processing Toolbox beginnen und Funktionen wie Korrektur der Ausrichtung, Segmentierung nach Farbe und Anpassung der Bildintensität nutzen.

Der Fehlererkennungsschritt wird häufig mithilfe von Deep Learning umgesetzt. Zur Bereitstellung von Trainingsdaten für Deep Learning können Sie die Image, Video oder Lidar Labeler-App in MATLAB nutzen. Diese Apps helfen Ihnen durch semantische Segmentierung oder Instance-Segmentation-Masken bei der Kennzeichnung von Daten. Anschließend können Sie ein Deep-Learning-Netz entweder von Grund auf oder unter Verwendung von Transfer Learning trainieren. Dann können Sie das trainierte Netz oder eines von mehreren vortrainierten Netzen zur Klassifizierung der Objekte nach Anomalien oder Fehlern verwenden.

Erkennung von minderwertigen und hochwertigen Muttern mithilfe in MATLAB trainierter Deep-Learning-Netze.

Erkennung von minderwertigen und hochwertigen Muttern mithilfe in MATLAB trainierter Deep-Learning-Netze.

Objekterkennung und -verfolgung mit MATLAB

Die Objekterkennung und -verfolgung ist einer der bekannteren Einsatzbereiche von Computer Vision in Anwendungen wie der Erkennung von Fahrzeugen oder Menschen, dem Lesen von Barcodes und der Erkennung von Objekten in Szenen. Mithilfe von Deep Network Designer können Sie in MATLAB Deep-Learning-Netze für Anwendungen wie die Erkennung von Fahrzeugen mit einem YOLOv3-Algorithmus erstellen. Sie laden gekennzeichnete Trainingsdaten, verarbeiten die Daten vor, definieren und trainieren das YOLOv3-Netz und bewerten seine Genauigkeit und Fehlerquote anhand von Ground-Truth-Daten. Dann können Sie das Netz verwenden, um Fahrzeuge zu erkennen und Begrenzungsrahmen um die Fahrzeuge anzuzeigen.

Erkennung von Fahrzeugen mit YOLOv3 mithilfe von Deep Network Designer in MATLAB.

Erkennung von Fahrzeugen mit YOLOv3 mithilfe von Deep Network Designer in MATLAB.

Verwendung von Computer Vision und Simulink in der Simulation autonomer Systeme

Sie können die durch Computer Vision ermöglichten Objekterkennungs- und -verfolgungsergebnisse in der Entscheidungsfindung eines Robotik- oder autonomen Systems einsetzen. Das Beispiel der automatischen Notbremsung (Autonomous Emergency Braking, AEB) mit Sensor Fusion zeigt, wie einfach die Erstellung von Simulink-Modellen mit Computer-Vision-Funktionen ist. Das Modell besteht aus zwei Teilen: einem Computer-Vision- und Sensor-Fusion-Modell zur Erkennung von Hindernissen vor dem Fahrzeug und einem Kollisionswarnsystem (Forward Collision Warning, FCW), das den Fahrer warnt und automatisch die Bremsen betätigt. Anhand dieses Beispiels sehen Sie, wie Sie mithilfe von Simulink Computer-Vision-Algorithmen in eine weiter gefasste Systemsimulation integrieren können.

Erkennung von Objekten vor dem Fahrzeug mit Simulink.

Erkennung von Objekten vor dem Fahrzeug mit Simulink.

Lokalisierung und Kartierung mit Computer Vision Toolbox

Mithilfe von Computer Vision in MATLAB können Sie Kamerapositionen schätzen und die Umgebung mithilfe von Visual Simultaneous Localization and Mapping (vSLAM) kartieren, um mit Structure from Motion (SfM) 3D-Modelle der Objekte zu erstellen und die Tiefe zu schätzen.

Sie können die Position eines Stereokamerapaars schätzen und die Umgebung mithilfe der integrierten Funktionen von MATLAB, wie imageDatastore und bagOfFeatures, kartieren. Sie initialisieren die Karte durch die Erkennung übereinstimmender Merkmale im Bildpaar und schätzen dann die Kameraposition und die Positionen der Merkmale auf der Karte. Dabei verfeinern Sie mithilfe von Bündelanpassung die Position und Ausrichtung der Kamera, während sie sich durch die Szene bewegt.

Abgleich von Merkmalen eines Stereokamerapaars mithilfe von ORB-SLAM2 in Computer Vision Toolbox.

Abgleich von Merkmalen eines Stereokamerapaars mithilfe von ORB-SLAM2 in Computer Vision Toolbox.

Objektzählung

Mithilfe von Computer Vision können Sie auch Objekte in einem Bild oder Video zählen. Im Zellzählungsbeispiel wenden Sie morphologische Operatoren zur Segmentierung der Zellen an, finden die Mittelpunkte der Zellen durch Blob-Analyse und zählen die Anzahl der gefundenen Mittelpunkte. Anschließend wiederholen Sie den Prozess für jeden Frame des Videos.

Zellzählung in MATLAB mithilfe von morphologischen Operatoren und Blob-Analysen.

Zellzählung in MATLAB mithilfe von morphologischen Operatoren und Blob-Analysen.

Apps in MATLAB, wie beispielsweise Image Segmenter und Color Thresholder, bieten eine interaktive Benutzeroberfläche zur Segmentierung von Objekten in einem Bild. Die Image Region Analyzer-App hilft Ihnen beim Zählen von Objekten in einem Bild und bei der Berechnung ihrer Eigenschaften, z. B. Fläche, Massenschwerpunkt usw.