Die Objekterkennung ist eine Computer-Vision-Technik zur Identifizierung von Objekten in Bildern oder Videos. Die Objekterkennung ist ein wichtiges Anwendungsfeld von Deep Learning- und Machine Learning- Algorithmen. Wenn Menschen ein Foto oder Video betrachten, können sie leicht Personen, Objekte, Szenen und visuelle Details identifizieren. Das Ziel ist, einem Computer beizubringen, was Menschen von Natur aus können: zu verstehen, welche Objekte ein Bild enthält.
Die Objekterkennung ist eine Schlüsseltechnologie in fahrerlosen Autos, die es diesen ermöglicht, ein Stoppschild zu erkennen oder einen Fußgänger von einer Straßenlaterne zu unterscheiden. Außerdem ist die Objekterkennung für eine Reihe von Anwendungen nützlich wie etwa die Identifizierung von Krankheiten im Bio-Imaging, industrielle Inspektionen und Bildverarbeitung durch Roboter.
Objekterkennung vs. Objekterfassung
Objekterfassung und Objekterkennung sind ähnliche Techniken zur Identifizierung von Objekten, unterscheiden sich aber in ihrer Ausführung. Die Objekterfassung ist der Vorgang, mit dem Instanzen von Objekten in Bildern gefunden werden. Im Fall des Deep Learning ist die Objekterfassung eine Teilmenge der Objekterkennung, bei der das Objekt in einem Bild nicht nur identifiziert, sondern auch lokalisiert wird. So können mehrere Objekte innerhalb eines Bildes identifiziert und geortet werden.
Für die Objekterkennung sehen verschiedene Ansätze zur Verfügung. In letzter Zeit sind Techniken des Machine Learning und des Deep Learning populäre Ansätze für Problemstellungen der Objekterkennung geworden. Mit beiden Techniken lässt sich die Identifizierung von Objekten in Bildern erlernen, sie unterscheiden sich aber in ihrer Ausführung.
Im folgenden Abschnitt werden die Unterschiede zwischen Machine Learning und Deep Learning für die Objekterkennung erläutert, und es wird gezeigt, wie beide Techniken implementiert werden können.
Techniken für die Objekterkennung
Objekterkennung mit Deep Learning
Deep Learning-Techniken sind mittlerweile eine populäre Methode für die Objekterkennung. Deep-Learning-Modelle, wie Convolutional Neural Networks (neuronale Faltungsnetzwerke) oder CNNs, werden verwendet, um die typischen Eigenschaften eines Objekts automatisch zu erlernen und dieses Objekt zu identifizieren. Beispielsweise kann ein CNN lernen, Unterschiede zwischen Katzen und Hunden zu identifizieren, indem es Tausende von Trainingsbildern analysiert und die Merkmale erlernt, die Katzen und Hunde voneinander unterscheiden.
Es gibt zwei Ansätze zur Objekterkennung mit Hilfe von Deep Learning:
- Trainieren eines Modells von Grund auf: Um ein Deep-Learning-Netz von Grund auf zu trainieren, sammeln Sie einen sehr großen Datensatz mit Kennzeichnungen und entwerfen eine Netzarchitektur, die die Merkmale lernen und das Modell erstellt. Die Ergebnisse können beeindruckend sein, allerdings erfordert dieser Ansatz umfangreiche Trainingsdaten und Sie müssen die Schichten und Gewichtungen im CNN einrichten.
- Verwenden eines vortrainierten Deep-Learning-Modells: Die meisten Deep-Learning-Anwendungen verwenden den Ansatz des Transfer Learning, bei dem ein vortrainiertes Modell verfeinert wird. Sie beginnen mit einem vorhandenen Netz, wie AlexNet oder GoogLeNet, und geben neue Daten zu bisher unbekannten Klassen ein. Diese Methode ist weniger zeitaufwändig und kann schneller ein Ergebnis liefern, da das Modell bereits anhand von Tausenden oder Millionen von Bildern trainiert wurde.
Deep Learning bietet sehr präzise Vorhersagen, benötigt dafür aber umfangreiche Daten.
Objekterkennung mit Machine Learning
Techniken des Machine Learning sind ebenfalls für die Objekterkennung beliebt und bieten andere Ansätze als das Deep Learning. Häufige Beispiele für Machine-Learning–Techniken sind:
- HOG-Merkmalsextraktion mit einem SVM-Modell des Machine Learning
- Bag-of-Words-Modelle mit Merkmalen wie SURF und MSER
- Der Viola-Jones Algorithmus, mit dem eine Reihe von Objekten einschließlich Gesichtern und Oberkörpern erkannt werden können
Workflow für das Machine Learning
Um eine Objekterkennung mithilfe eines standardmäßigen Machine-Learning-Ansatzes durchzuführen, beginnen Sie mit einer Zusammenstellung von Bildern (oder Videos) und bestimmen die relevanten Merkmale in jedem Bild. Beispielsweise kann ein Merkmalsextraktionsalgorithmus Kanten- oder Eck-Merkmale extrahieren, die zur Unterscheidung von Klassen in Ihren Daten verwendet werden können.
Diese Merkmale werden zu einem Machine-Learning-Modell hinzugefügt, das diese Merkmale in ihre verschiedenen Kategorien aufteilt und diese Informationen dann bei der Analyse und Klassifizierung neuer Objekte verwendet.
Sie können eine Reihe unterschiedlicher Machine-Learning-Algorithmen und Merkmalsextraktionsmethoden verwenden. Diese bieten zahlreiche Kombinationen für die Erstellung eines präzisen Objekterkennungsmodells.
Die Verwendung von Machine Learning für die Objekterkennung bietet die Flexibilität, die beste Kombination von Merkmalen und Klassifizierern für das Lernen zu wählen. Sie kann mit sehr wenig Daten präzise Ergebnisse erreichen.
Machine Learning vs. Deep Learning für die Objekterkennung
Der beste Ansatz für die Objekterkennung hängt von Ihrer Anwendung und dem zu lösenden Problem ab. In vielen Fällen kann Machine Learning eine effektive Technik sein, vor allem, wenn man weiß, welche Merkmale oder Eigenschaften des Bildes am besten geeignet sind, um Objektklassen zu unterscheiden.
Die wichtigste Überlegung für die Wahl zwischen Machine Learning und Deep Learning ist, ob Sie über eine Hochleistungs-GPU und zahlreiche Trainingsbilder mit Kennzeichnungen verfügen. Wenn die Antwort auf eine dieser Fragen Nein lautet, ist vermutlich ein Machine-Learning-Ansatz die beste Wahl. Deep-Learning-Techniken funktionieren im Allgemeinen besser mit einer höheren Anzahl von Bildern, und eine GPU trägt dazu bei, den Zeitaufwand für das Trainieren des Modells zu verringern.
Erfahren Sie mehr
Weitere Objekterkennungsmethoden
Andere, einfachere Ansätze für die Objekterkennung können je nach Anwendung bereits ausreichen.
- Template Matching – Verwendung eines kleinen Bildes oder Vorlage, um übereinstimmende Regionen in einem größeren Bild zu finden
- Bildsegmentierung und Blob-Analyse – Verwendung einfacher Objekteigenschaften, wie Größe, Farbe oder Form
Wenn ein Objekt mithilfe eines einfachen Ansatzes wie der Bildsegmentierung erkannt werden kann, ist es am besten, mit dem einfacheren Ansatz zu beginnen. Dies kann zu einer robusten Lösung führen, die nicht Hunderte oder Tausende von Trainingsbildern oder ein kompliziertes Verfahren erfordert.
Deep Learning und Machine Learning mit MATLAB
Mit nur wenigen Zeilen MATLAB-Code lassen sich Machine Learning- und Deep Learning-Modelle für die Objekterkennung erstellen – ohne ein Experte zu sein.
Der Einsatz von MATLAB für die Objekterkennung ermöglicht es, in kürzerer Zeit erfolgreich zu sein:
- Nutzen Sie Ihr Fachwissen und lernen Sie Data Science mit MATLAB:
Mit MATLAB können Sie sich Wissen zu Machine Learning und Deep Learning aneignen und Erfahrungen sammeln. MATLAB macht das Lernen in diesen Bereichen praktikabel und bietet einfache Zugänge . Außerdem können Fachexperten mit MATLAB Objekterkennungsmodelle erstellen – statt diese Aufgabe Data Scientists zu überlassen, die Ihre Branche oder Anwendung möglicherweise nicht kennen.
- Verwenden Sie Apps, um Daten zu labeln und Modelle zu erstellen:
Mit MATLAB können Sie Machine Learning- und Deep Learning-Modelle mit minimalem Code-Aufwand erstellen.
Mit der Classification Learner-App können Sie schnell Machine Learning-Modelle erstellen und unterschiedliche Machine Learning-Algorithmen vergleichen, ohne Code zu schreiben.
Mit der Image Labeler-App können Sie Objekte in Bildern interaktiv labeln, und Sie können Ground-Truth-Labeling in Videos automatisieren, um Deep Learning-Modelle zu trainieren und zu testen. Mit diesem interaktiven und automatisierten Ansatz führt zu besseren Resultate in kürzerer Zeit.
- Integrieren Sie die Objekterkennung in einen einzigen Workflow:
MATLAB kann mehrere Domänen in einem einzigen Workflow vereinen. Mit MATLAB können Sie in ein und derselben Umgebung all Ihre Forschungs- und Programmieraufgaben erledigen. Es bietet Tools und Funktionen für Deep Learning und Machine Learning sowie für eine Reihe von Bereichen, die solche Algorithmen nutzen, wie Robotik, Computer Vision und Datenanalysen.
MATLAB automatisiert die Bereitstellung Ihrer Modelle auf Unternehmenssystemen, in Clustern, in Clouds und auf Embedded-Geräten.
Weitere Informationen über Objekterkennung
Weitere Informationen finden Sie unter MATLAB, Image Processing Toolbox, Computer Vision Toolbox, Statistics and Machine Learning Toolbox und Deep Learning Toolbox.
Videos
Objekterkennung: Deep Learning und Machine Learning für Computer Vision (26:57)
Download: Sie können auch den in der Präsentation verwendeten Demo-Code herunterladen.
Deep Learning mit MATLAB: Deep Learning in 11 Zeilen MATLAB-Code (2:38)