Semantische Segmentierungsmodelle erstellen eine Segmentierungskarte eines Eingabebildes. Eine Segmentierungskarte ist im Grunde eine Rekonstruktion des ursprünglichen Bildes, in dem jedes Pixel von seiner semantischen Klasse farbcodiert wurde, um Segmentierungsmasken zu erstellen. Eine Segmentierungsmaske ist einfach ein Teil des Bildes, der sich von anderen Bereichen des Bildes unterscheidet. Beispielsweise enthält eine Segmentierungskarte einen Baum in einem leeren Feld wahrscheinlich drei Segmentierungsmasken: eine für den Baum, eine für den Boden und eine für den Himmel im Hintergrund.
Dazu verwenden semantische Segmentierungsmodelle komplexe neuronale Netze, um verwandte Pixel in Segmentierungsmasken zu gruppieren und die reale semantische Klasse für jede Pixelgruppe (oder jedes Segment) korrekt zu erkennen. Solche Deep Learning-Methoden (DL) erfordern das Trainieren eines Modells auf großen, von menschlichen Experten kommentierten, vorbeschrifteten Datensätzen, wobei die Gewichte und Verzerrungen durch maschinelle Lerntechniken wie Backpropagation und Gradientenabstieg angepasst werden.
DL-Methoden ersetzen andere „traditionelle“ Machine-Learning-Algorithmen wie Support Vector Machines (SVM) und Random Forest. Obwohl tiefe neuronale Netzwerke mehr Zeit, Daten und Rechenressourcen zum Trainieren benötigen, übertreffen sie andere Methoden und wurden schnell zum gewählten Ansatz, nachdem sich frühe Innovationen als erfolgreich erwiesen hatten.
Die Verwendung von Datensätzen für das Training
Für die genaue Klassifizierung von Bilddaten sind Datensätze erforderlich, die aus Pixelwerten bestehen, die Masken für verschiedene Objekte oder Klassenbeschriftungen darstellen, die in einem Bild enthalten sind. Aufgrund der Komplexität der Trainingsdaten für die Bildsegmentierung sind diese Art von Datensätzen in der Regel größer und komplexer als andere Datensätze für maschinelles Lernen.
Es sind viele Open Source-Bildsegmentierungsdatensätze verfügbar, die eine Vielzahl von semantischen Klassen mit Tausenden von Beispielen und detaillierten Kommentaren für jede Klasse abdecken. Stellen Sie sich zum Beispiel ein Segmentierungsproblem vor, bei dem Computer Vision in einem fahrerlosen Auto beigebracht wird, all die verschiedenen Objekte zu erkennen, für die es bremsen muss, wie Fußgänger, Fahrräder und andere Autos. Das Bildverarbeitungssystem des Fahrzeugs muss so trainiert werden, dass es alle diese Objekte konsequent erkennt, sonst könnte es dem Fahrzeug nicht immer sagen, dass es bremsen soll; das Training muss auch extrem genau und präzise sein, sonst könnte es ständig bremsen, nachdem es fälschlicherweise harmlose Objekte als bedenklich eingestuft hat.
Hier sind einige der beliebtesten Open Source-Datensätze, die bei der Bild- und semantischen Segmentierung verwendet werden:
Pascal Visual Object Classes (Pascal VOC): Der Pascal VOC-Datensatz besteht aus vielen verschiedenen Objektklassen, umgebenden Rahmen und zuverlässigen Segmentierungskarten.
MS COCO: MS COCO enthält ca. 330.000 Bilder und Anmerkungen für viele Aufgaben wie Erkennung, Segmentierung und Bildunterschrift.
Cityscapes: Der beliebte Cityscapes-Datensatz interpretiert Daten aus städtischen Umgebungen und besteht aus 5.000 Bildern mit 20.000 Anmerkungen und 30 Klassenlabels.
Semantische Segmentierungsmodelle
Trainierte Modelle erfordern eine robuste Architektur, um ordnungsgemäß zu funktionieren. Hier sind einige häufig verwendete semantische Segmentierungsmodelle.
Fully Convolutional Networks (FCNs)
Ein Fully Convolutional Network (FCN) ist eine moderne neuronale Netzarchitektur, die für die semantische Segmentierung verwendet wird und auf mehreren verbundenen, gefalteten Schichten beruht. Während die traditionelle CNN-Architektur aus Faltungsschichten und flachen Schichten besteht, die einzelne Beschriftungen ausgeben, ersetzen FCN-Modelle einige dieser flachen Schichten durch 1:1-Faltungsblöcke, die weitere Informationen über das Bild extrahieren können. Durch den Verzicht auf flache, dichtere Schichten zugunsten von Faltungsschichten, Pooling- oder Upsampling-Schichten lassen sich FCN-Netze leichter trainieren.
- Upsampling und Downsampling: Wenn das Netz mehr Faltungsschichten aufnimmt, wird die Bildgröße reduziert, was zu weniger räumlichen Informationen sowie Informationen auf Pixelebene führt, ein notwendiger Prozess, der als Downsampling bezeichnet wird. Ganz am Ende dieses Prozesses führen Data Engineers eine Bildoptimierung durch, indem sie die erstellte Karte an Merkmalen wieder auf die Form des Eingabebilds erweitern oder hochrechnen.
- Max-Pooling: Max-Pooling ist ein weiteres wichtiges Tool beim Extrahieren von Informationen aus Bereichen eines Bildes und deren Analyse. Beim Max-Pooling wird das größte Element in einem zu analysierenden Bereich ausgewählt, so dass die Ausgabe eine Merkmalskarte mit den auffälligsten Merkmalen aus der vorherigen Merkmalskarte ergeben kann.
U-Nets
Die U-Net-Architektur ist eine Modifikation der ursprünglichen FCN-Architektur, die 2015 eingeführt wurde und durchweg bessere Ergebnisse erzielt. Sie besteht aus zwei Teilen, einem Encoder und einem Decoder. Während der Encoder Faltungsschichten stapelt, die das Bild konsequent downsampeln, um Informationen daraus zu extrahieren, baut der Decoder die Bildmerkmale durch den Prozess der Dekonvolution wieder auf. Die U-Net-Architektur wird vor allem in der Medizin eingesetzt, um krebsartige und nicht krebsartige Tumore in der Lunge und im Gehirn zu identifizieren.
- Skip-Verbindungen: Eine wichtige Innovation, die U-Net in FCNs eingeführt hat, sind sogenannte Skip-Verbindungen, mit denen der Ausgang einer Faltungsschicht mit einer anderen, nicht benachbarten Schicht verbunden wird. Dieser Prozess zum Überspringen von Verbindungen reduziert den Datenverlust beim Downsampling und ermöglicht eine Ausgabe mit höherer Auflösung. Jede Faltungsschicht wird unabhängig voneinander hochgerechnet und mit Merkmalen aus anderen Ebenen kombiniert, bis die endgültige Ausgabe das zu analysierende Bild genau wiedergibt.
DeepLab
Das semantische Segmentierungsmodell DeepLab wurde 2015 von Google entwickelt, um die Architektur des ursprünglichen FCN weiter zu verbessern und noch präzisere Ergebnisse zu erzielen. Während die Schichtenstapel in einem FCN-Modell die Bildauflösung erheblich reduzieren, verwendet die DeepLab-Architektur einen Prozess namens „Atrous Convolution“, um die Daten hochzurechnen. Mit dem Atrous-Faltungsprozess können Faltungskerne Informationen aus einem Bild entfernen und Lücken zwischen den Kernelparametern hinterlassen.
Der Ansatz von DeepLab zur erweiterten Faltung zieht Daten aus dem größeren Sichtfeld und behält dabei die gleiche Auflösung bei. Der Merkmalsraum wird dann durch einen vollständig verbundenen bedingten Zufallsfeld-Algorithmus (CRF) gezogen, sodass mehr Details erfasst und für die pixelweise Verlustfunktion verwendet werden können, was zu einer klareren, genaueren Segmentierungsmaske führt.
Pyramid Scene Parsing Network (PSPNet)
2017 wurde ein neuer Segmentierungsalgorithmus für die Bildsegmentierung eingeführt. PSPNet stellt ein Pyramidenanalysemodul bereit, das kontextbezogene Bild-Datensätze mit einer höheren Genauigkeit als seine Vorgänger sammelt. Wie seine Vorgänger verwendet die PSPNet-Architektur den Encoder-Decoder-Ansatz, aber während DeepLab für die Berechnungen auf Pixelebene eine Hochskalierung anwendet, fügt PSPNet eine neue Pyramiden-Pooling-Schicht hinzu, um seine Ergebnisse zu erzielen. Durch das Multi-Scale-Pooling kann PSPNet ein größeres Fenster an Bildinformationen analysieren als andere Modelle.