Objekterkennung und -Segmentierung
In den letzten Jahren hat sich die Entwicklung im Bereich der Objekterkennung und -segmentierung erheblich beschleunigt. Heute können intelligente Algorithmen unzählige einzelne Objekte in einem Video oder einem Bild finden und klassifizieren. Obwohl dies für Maschinen anfänglich unglaublich schwierig war, gehört es heute zum Alltag.
Sowohl die Objekterkennung als auch die -segmentierung werden durch künstliche Intelligenz (KI), maschinelles Lernen (ML) und Deep Learning (DL) unterstützt. In diesem Szenario können Convolutional Neural Networks (zu dt. „faltendes neuronales Netzwerk“) die Klasse, zu der jedes Objekt in einem Bild gehört, lokalisieren und identifizieren.
Es hat sich auch zu weit mehr als einem intelligenten Algorithmus entwickelt, der Objekte, auf in einer Datenbank gespeicherten Fotos, erkennen kann. Der Algorithmus kann heute auch Objekte in Echtzeit finden und klassifizieren, um Technologien wie selbstfahrende autonome Fahrzeuge und mehr zu ermöglichen.
Was ist Objekterkennung?
Objekterkennung ist ein weit gefasster Begriff, der eine Reihe von Bildverarbeitungsaufgaben beschreibt, bei denen es um das Aufspüren, Erkennen, Lokalisieren und Klassifizieren von Objekten innerhalb mehrerer visueller Instanzen wie Fotos und Videos geht.
Es gibt auch eine Variante der Objekterkennung, die Personenerkennung. In diesem Fall nutzen wir die Objekterkennung, um die primäre Klasse zu bestimmen, zu der eine „Person“ in Bildern und Videoframes gehört. Daher ist die Personenerkennung ein wichtiger Bestandteil moderner Videoüberwachungssysteme und Gesichtserkennungstechnologien.
Was ist Segmentierung?
Die Objektsegmentierung beschreibt in diesem Zusammenhang den Prozess der Bestimmung der Bereiche und Grenzen eines Objekts in einem Bild. Wir Menschen tun dies die ganze Zeit, ohne uns dessen bewusst zu sein.
Für Maschinen, die sich in der Welt zurechtfinden, bleibt dies jedoch eine schwer zu überwindende Hürde. Tatsächlich ist die Segmentierung nach wie vor die anspruchsvollste Art von Klassifizierungsaufgaben.
Es gibt zwei Arten der Segmentierung:
- Semantische Segmentierung (beinhaltet die Angabe der Objektklasse jedes Pixels in einem Eingabebild)
- Instanzsegmentierung (beinhaltet die Trennung einzelner Instanzen jedes Objekttyps)
Aus praktischen Gründen wird der Output von Segmentierungsnetzen im Allgemeinen durch die Einfärbung von Pixeln dargestellt.
Wie funktioniert Objekterkennung?
Bei der Bildklassifizierung geht es darum, die Klasse eines Objekts vorherzusagen, oder festzustellen, ob ein bestimmtes Objekt in einem Bild vorhanden ist. Die Objekterkennung hebt die Bildklassifizierung auf die nächste Stufe, indem sie die Lokalisierung hinzufügt.
Bei der Lokalisierung wird die Position des Objekts innerhalb eines Bildes bestimmt und das Objekt segmentiert. Sobald es gefunden wurde, ziehen die Algorithmen einen Rahmen um das Objekt. Dies ermöglicht ein besseres Verständnis des Objekts in seiner Gesamtheit. Ohne diese Funktion bleibt uns nur eine einfache Objektklassifizierung.
Warum sind Objekterkennung und -segmentierung so wichtig?
Objekterkennung und -segmentierung sind wichtig, da sie die Grundlage für die meisten Bildverarbeitungsaufgaben bilden. Dazu gehören Bildbeschriftung, Bilderkennung, Bildanalyse, Bildsegmentierung und Objektverfolgung.
Die Objekterkennung ist ein duales Verfahren und kann Objekte in einem Bild klassifizieren und gleichzeitig ihre Position bestimmen. Außerdem ist sie äußerst genau, zuverlässig und effizient bei der Objekterkennung in Echtzeit.
Welche Algorithmen können Sie zur Objekterkennung trainieren?
Es gibt eine Vielzahl intelligenter Algorithmen, die Sie trainieren können, um Objekte und Personen zu identifizieren. Dies sind die acht wichtigsten Algorithmen, die in der Branche dominieren:
- Regionale Faltungsneuronale Netze (R-CNN)
- Schnelles R-CNN
- Schnelleres R-CNN
- Regionales vollständig gefaltetes Netzwerk (R-FCN)
- Histogramm der orientierten Verläufe (HOG)
- YOLO (You Only Look Once)
- Einzelschuss-Detektor (SSD)
- Räumliches Pyramiden-Pooling (SPP-net)
Tipp:
Bestellen Sie passende Trainingsdaten-Sätze, wie Bilder und Videos, mit denen Sie Ihre Systeme zur Objekterkennung perfekt trainieren können, über clickworker.
Jetzt Fotodatensätze oder Videodatensätze beauftragen.
1. R-CNN
Das R-CNN (Region-based Convolutional Neural Networks) wurde 2014 vorgeschlagen, um das Problem der Auswahl einer großen Anzahl von Regionen auf einmal zu lösen. Mit R-CNN können wir selektiv suchen, um nicht mehr als 2000 Regionen aus einem Bild zu extrahieren, die als Regionsvorschläge bekannt sind. Dieser Ansatz ermöglicht es Algorithmen, mit diesen 2000 Regionen zu arbeiten, anstatt eine enorme Anzahl von Regionen zu klassifizieren.
2. Schnelles R-CNN
Ein Jahr später wurde Fast R-CNN eingeführt, um sowohl die Auswahl von Regionen als auch die Merkmalextraktion in einem maschinellen Lernmodell zu kombinieren. Wenn Fast R-CNN ein Bild und eine Reihe von Rols erhält, liefert es eine Liste von Klassen und Begrenzungsrahmen der Objekte, die im Bild erkannt wurden.
Die wichtigste Neuerung war hier das Hinzufügen der RoI-Pooling-Schicht. Die Rol-Pooling-Schicht nimmt CNN-Merkmalkarten und Regionen von Interesse in einem Bild und gleicht sie mit entsprechenden Merkmalen für jede Region ab. Dies ermöglichte die schnelle Extraktion von Merkmalen für alle Regionen von Interesse. Vor Fast R-CNN verarbeitete R-CNN jede Region separat und war zeitintensiv.
3. Schnelleres R-CNN
Da Fast R-CNN immer noch die Extraktion von Regionen innerhalb eines Bildes und deren Eingabe in das Modell erforderte, reichte es nicht für die Objekterkennung in Echtzeit aus. Daher wurde 2016 das Faster R-CNN eingeführt, um dieses Problem zu lösen.
Faster R-CNN erhältim Gegensatz zu seinen Vorgängern ein Bild als Eingabe. Das neuronale Netz verarbeitet es dann und gibt eine Liste von Objektklassen zusammen mit den entsprechenden Begrenzungsrahmen zurück. Mit der in die Hauptarchitektur des neuronalen Netzes eingefügten Regionserkennung kann mit Faster R-CNN nun eine Objekterkennung nahezu in Echtzeit erreicht werden.
4. Regionsbasiertes volles Faltungsnetzwerk (R-FCN)
R-FCN ist ein vollständig gefalteter Bildklassifikator, der Regionen in vollem Umfang erkennt und fast alle Berechnungen auf das gesamte Bild verteilt. Es ist effizient und hochpräzise im Vergleich zu Fast/Faster R-CNN, das Hunderte von Teilnetzen pro Region nutzt. Im Gegensatz dazu verwendet R-FCN nur die neuesten Restnetzwerke, um Objekte in Bildern zu erkennen.
5. Histogramm der orientierten Verläufe (HOG)
HOG zählt die Anzahl der auftretenden Gradientenausrichtungen in lokalisierten Teilen eines Bildes. Dieser Ansatz hilft bei der Vorhersage der Wahrscheinlichkeit, dass ein Objekt in einem Bild enthalten ist.
6. YOLO
Ähnlich wie in der Umgangssprache (You Only Live Once) steht YOLO für „You Only Look Once“. Obwohl die R-CNN-Modellfamilie im Allgemeinen bei der Objekterkennung genauer ist, kann YOLO die Objekterkennung in Echtzeit viel schneller realisieren.
In diesem Szenario erhält ein einzelnes neuronales Netz ein Bild als Eingabe und sagt die Begrenzungsrahmen und die zugehörigen Klassenbezeichnungen für jeden Begrenzungsrahmen voraus. Obwohl diese Technik eine geringe Vorhersagegenauigkeit aufweist, kann sie als Ausgleich bis zu 155 Bilder pro Sekunde verarbeiten. Das ist beeindruckend und schnell!
Dadurch eignet sich YOLO für die Objekterkennung bei Videostreaming-Frameraten oder für jede Anwendung, die Echtzeit-Inferenz erfordert.
7. Einzelschussdetektor (SSD)
SSD kann mehrere Objekte innerhalb eines Bildes mit nur einer einzigen Aufnahme erkennen. Damit ist SSD viel schneller als R-CNN-basierte Ansätze mit zwei Aufnahmen.
8. Räumliches Pyramiden-Pooling (SPP-Net)
Die neuronale Faltungsarchitektur SSP-Net verwendet das räumliche Pyramiden-Pooling, um die Beschränkung der festen Größe des Netzwerks zu beseitigen. Dies bedeutet, dass das CNN kein Eingabebild fester Größe mehr benötigt. Es ermöglicht die Klassifizierung von Eingabebildern variabler Größe für das CNN.
Unabhängig davon, welchen Algorithmus oder welches Modell Sie verwenden, benötigen Sie umfangreiche Datensätze für das Training. Wenn Sie wollen, dass Ihre intelligenten Maschinen erfolgreich durch eine Welt voller Objekte und Menschen navigieren, müssen Sie sie stärker trainieren, damit sie den Menschen besser imitieren können.
Bei der Objekterkennung und -segmentierung ist noch ein langer Weg zurückzulegen. Die gute Nachricht ist jedoch, dass wir dem Ziel der völligen Autonomie immer näher kommen.