Die Instanzsegmentierung ist eine auf Deep Learningbasierende Aufgabe der Computer Vision, die die pixelgenauen Grenzen jeder einzelnen Objektinstanz in einem Bild vorhersagt.
Die Instanzsegmentierung, die eine Teilmenge des weiter gefassten Bereichs der Bildsegmentierung ist, liefert detailliertere und differenziertere Ergebnisse als herkömmliche Algorithmen zur Objekterkennung. Zu den weiteren Aufgaben der Bildsegmentierung gehören die semantische Segmentierung, bei der jedes Pixel in einem Bild nach einer semantischen Klasse kategorisiert wird – der Kategorie von „Dingen“ oder „Sachen“, die es repräsentiert – und die panoptische Segmentierung, die die Ziele der Instanzsegmentierung und der semantischen Segmentierung kombiniert.
Die Instanzsegmentierung hat eine Vielzahl von Anwendungsfällen in der Bildverarbeitung in vielen Branchen, von der Analyse medizinischer Bilder über die Erkennung von interessanten Objekten in Satellitenbildern bis hin zur Navigation in selbstfahrenden Autos.
Der Hauptunterschied zwischen Instanzsegmentierungsaufgaben und konventioneller Objekterkennung besteht darin, dass die Instanzsegmentierung die Grenzen der einzelnen Objekte auf Pixelebene vorhersagt, während die Objekterkennung nur die ungefähre Position eines Objekts vorhersagt.
Konventionelle Objekterkennungsmethoden sind eine weiterentwickelte Kombination aus Bildklassifizierung und Objektlokalisierung. Ein Objekterkennungsmodell, das mit verschiedenen Algorithmen des maschinellen Lernens trainiert wurde, um die visuellen Muster relevanter Objektkategorien zu erkennen – ein Modell für autonomes Fahren könnte beispielsweise darauf trainiert sein, Dinge wie „Auto“ oder „Fußgänger“ zu erkennen –, analysiert die visuellen Daten eines Eingabebildes, um relevante Objektinstanzen zu kennzeichnen und rechteckige Regionen, so genannte „Bounding Boxes“ (Begrenzungsrahmen), zu erzeugen, in denen sich jede Instanz befindet.
Systeme zur Instanzsegmentierung erkennen ebenfalls Objekte in einem Bild, aber viel detaillierter: Anstelle einer Bounding Box, die die Position einer Objektinstanz annähert, erzeugen Algorithmen zur Instanzsegmentierung eine pixelgenaue „Segmentierungsmaske“ mit der genauen Form und Fläche jeder Instanz.
Viele führende Modellarchitekturen für die Instanzsegmentierung, wie Mask R-CNN, führen eine konventionelle Objekterkennung als vorgelagerten Schritt bei der Erstellung von Segmentierungsmasken durch. Solche „zweistufigen“ Modelle bieten in der Regel die höchste Genauigkeit, wenn auch mit Abstrichen bei der Geschwindigkeit.
Die semantische Segmentierung ist eine weniger komplexe Aufgabe als die Instanzsegmentierung. Im Gegensatz zur Instanzsegmentierung geht es bei der semantischen Segmentierung nicht darum, verschiedene Instanzen zu zählen oder zwischen ihnen zu unterscheiden: Das einzige Ziel der semantischen Segmentierung besteht darin, jedes Pixel in einem Bild mit einer semantischen Klassenkennzeichnung zu versehen.
Semantische Segmentierungsmodelle unterscheiden nicht zwischen Dingen– also Klassen von zählbaren Entitäten mit eindeutigen Formen, wie „Auto“ oder „Person“ – und Sachen (d. h. Klassen von nicht zählbaren Entitäten mit variablen Formen, wie „Himmel“ oder „Straße“).
Wenn mehrere Objektinstanzen derselben Objektklasse eng nebeneinander liegen oder sich überlappen, fasst ein semantisches Segmentierungsmodell sie einfach in einem einzigen Bildsegment zusammen. Sehen Sie sich zum Beispiel an, wie ein semantisches Segmentierungsmodell die eng nebeneinander geparkten Autos auf jeder Straßenseite in diesem Bild behandelt.
Im Gegensatz dazu konzentrieren sich Modelle zur Instanzsegmentierung ausschließlich auf die Erkennung und Erzeugung von Segmentierungsmasken für einzelne Dinge. Ein Modell für die Instanzsegmentierung muss in der Lage sein, jede einzelne Objektinstanz abzugrenzen – selbst bei verdeckten Instanzen derselben Objektklasse.
Die panoptische Segmentierung umfasst sowohl die semantische Klassifizierung jedes Pixels in einem Bild als auch die Abgrenzung jeder einzelnen Objektinstanz.
Panoptische Segmentierungsmodelle können theoretisch eine Instanzsegmentierung durchführen, allerdings mit einem wesentlich höheren Rechenaufwand (da ihre Ausgabe zusätzliche Informationen enthält, die für die Instanzsegmentierung nicht unbedingt relevant sind).
Bei den ersten Versuchen der panoptischen Segmentierung wurden die Instanzsegmentierung und die semantische Segmentierung einfach getrennt durchgeführt und die Ergebnisse dann in einem Nachbearbeitungsschritt kombiniert. Diese Methode ist rechnerisch ineffizient und hat Schwierigkeiten, Diskrepanzen zwischen den Datenausgaben des semantischen Modells und den Datenausgaben des Instanzmodells zu beseitigen.
Neuere Ansätze verbinden einen „Kopf“ für die semantische Segmentierung und einen „Kopf“ für die Instanzsegmentierung mit einem gemeinsamen „Backbone“ – häufig ein Feature Pyramid Network (FPN) – für die Extraktion von Merkmalen: die Isolierung relevanter visueller Daten. Dies erhöht die Effizienz und beseitigt Diskrepanzen.
Die Instanzsegmentierung ist für eine Vielzahl von Computer-Vision-Aufgaben von entscheidender Bedeutung.
Deep Learning ist für die Instanzsegmentierung unverzichtbar geworden: Fast alle modernen Bildsegmentierungsmethoden nutzen neuronale Netze. Obwohl sich in den letzten Jahren Transformer-Modelle als praktikable Alternative herausgestellt haben, nutzen die meisten Bildsegmentierungsmethoden (einschließlich derjenigen, die beispielsweise zur Segmentierung verwendet werden) irgendeine Form von Convolutional Neural Networks (CNNs).
CNN-basierte Instanzsegmentierungsmodelle lassen sich in zwei Kategorien einteilen:
Sowohl CNN-basierte als auch Transformer-basierte Instanzsegmentierungsmodelle verwenden eine Encoder-Decoder-Struktur, in der ein Encoder-Netzwerk verwendet wird, um relevante Daten aus dem Eingabebild zu extrahieren. Ein Decoder-Netzwerk verwendet dann diese extrahierten Merkmalsdaten, um das Bild mit einer Segmentierungskarte zu rekonstruieren.
Um Instanzsegmentierungsmodelle zu verstehen, ist es hilfreich, ihre Bestandteile zu kennen.
Einfache CNNs können eine Bildklassifizierung und (bei Bildern, die ein einzelnes Objekt enthalten) eine Objektklassifizierung durchführen.
Damit mathematische Algorithmen mit einem Bild kompatibel sind, müssen sie das Bild in einem numerischen Format darstellen. CNNs verarbeiten ein RGB-Eingabebild als dreidimensionales (3D) Array von Pixeln, wobei die drei Dimensionen des Pixels jeweils seine R(ed)-, G(reen)- und (B)lue-Werte darstellen.
In einem herkömmlichen CNN gibt es drei Arten von Schichten:
Die konvolutionale(n) Schicht(en) verwenden zweidimensionale Filter, sogenannte Kernels, um relevante Merkmale aus dem Bild zu extrahieren, indem sie Convolutions durchführen. Nach jeder Convolution bewegt sich der Kernel in eine benachbarte Region und wiederholt diesen Vorgang, bis er das gesamte Bild durchlaufen hat. Die Ausgabe dieser Extraktion ist eine Merkmalskarte.
Die Pooling-Schichten komprimieren die Daten der Merkmalskarte. Dieser Prozess, der auch als Downsampling oder Dimensionsreduktion bezeichnet wird, erhöht die Recheneffizienz und verringert das Risiko einer Überanpassung beim Modelltraining.
Die vollständig verbundenen Schichten empfangen und sammeln visuelle Daten von jedem Knoten im neuronalen Netzwerk – daher die Bezeichnung „fully connected“, also „vollständig verbunden“ – und sagen voraus, ob das Bild mit den Kategorien übereinstimmt, für deren Erkennung sie trainiert wurden.
Während zusätzliche konvolutionale Schichten die Genauigkeit verbessern können, führt das Hinzufügen von zu vielen Schichten zu verschwindenden Gradienten, was eine Modelloptimierung verhindert. Die ResNet-Architektur löste dieses Problem und ebnete den Weg für CNNs mit Hunderten (oder sogar Tausenden) von Schichten.
R-CNN wurde entwickelt, um komplexe Aufgaben zur Erkennung mehrerer Objekte zu lösen, die mit Standard-CNNs nicht erreichbar sind. Die spätere Entwicklung, Faster R-CNN, ist ein integraler Bestandteil vieler Instanzsegmentierungsmodelle.
Um Vorhersagen auf Objektebene (und nicht auf Bildebene) zu treffen, hat R-CNN Regionsvorschläge eingeführt: R-CNN verwendet die selektive Suche, um etwa 2.000 sich überlappende Boxen vorzuschlagen, die ein Objekt enthalten könnten, und speist dann jeden „Objektvorschlag“ zur Merkmalsextraktion in ein CNN ein. Algorithmen der Support Vector Machine (SVM) klassifizieren dann die Objekte und erzeugen Bounding Boxes (Begrenzungsrahmen).
Fast R-CNN verbesserte die Geschwindigkeit von R-CNN erheblich, indem zunächst das gesamte Bild zur Merkmalsextraktion in ein CNN eingespeist und dann die resultierende Merkmalskarte zur Identifizierung von Regions of Interest (RoIs) verwendet wurde. Kurz darauf verbesserte Faster R-CNN die Geschwindigkeit und Genauigkeit weiter, indem es ein trainierbares Region Proposal Network (RPN) einführte, das den langsameren, nicht trainierbaren selektiven Suchalgorithmus ersetzte.
FCNs ersetzen die festen, vollständig verknüpften Schichten eines einfachen CNN durch zusätzliche konvolutionale und Pooling-Schichten – daher auch der Begriff „Fully Convolutional“, also „vollständig konvolutional“. Mit dem Aufkommen der FCNs wurde die moderne Ära der Bildsegmentierung eingeläutet.
Wie herkömmliche CNNs verwenden FCNs ein Encoder-Netzwerk, wie ResNet oder VGG, für die Merkmalsextraktion und das Downsampling. Doch anstatt die kodierten Daten an eine vollständig verknüpfte Schicht weiterzuleiten, um das gesamte Bild zu klassifizieren, leiten FCNs die kodierten Daten durch Schichten eines „Decoder“-Netzwerks, das die komprimierten Merkmalsdaten klassifiziert und hochrechnet, um das Originalbild mit pixelgenauen Segmentierungsmasken zu rekonstruieren.
Natürlich gehen beim Downsampling-Prozess einige Daten verloren. Spätere FCN-Varianten, wie U-Net, führten Skip-Verbindungen ein, die selektiv einige konvolutionale Schichten umgehen, um mehr Details zu erhalten.
Die Mask R-CNN-Architektur kombiniert die Objekterkennung eines Faster R-CNN mit den Segmentierungsfähigkeiten eines FCN, um einen Durchbruch bei der Instanzsegmentierung zu erzielen.
Nachdem das RPN Bounding Boxes für vorgeschlagene Objekte generiert hat und der Rest des Faster R-CNN-Netzwerks bestätigt hat, welche Regionsvorschläge Objekte enthalten (und Regressions durchführt, um die Genauigkeit der Objekt-Bounding-Boxes zu verbessern), erstellt ein FCN eine Segmentierungsmaske der Objekte, die in jeder Bounding Box enthalten sind.
Dieser Prozess ist auch dann effektiv, wenn Objekte verdeckt sind, da das Faster R-CNN-Netzwerk zwischen den einzelnen Objektinstanzen unterscheiden kann, um sicherzustellen, dass jede einzeln segmentiert wird.
Bestimmte Anwendungen der Instanzsegmentierung, wie z. B. die Erkennung defekter Artikel in einer Fertigungsstraße, erfordern Ergebnisse in Echtzeit. Für Anwendungsfälle, bei denen Geschwindigkeit oberste Priorität hat, wurden einstufige Modelle entwickelt.
Zweistufige Modelle wie Mask R-CNN sind sehr genau, aber ihr inhärent sequentieller Ansatz ist schwer zu beschleunigen. One-Shot-Modelle zur Instanzsegmentierung wie YOLACT (You Only Look At CoefficienTs) bauen stattdessen auf einstufigen Objekterkennungsmodellen wie YOLO (You Only Look Once) auf.
In YOLACT erstellt ein FPN hochauflösende Merkmalskarten, die in zwei parallele Zweige eingespeist werden: Ein FCN-Zweig schlägt k „Prototyp-Masken“ potenzieller Objektinstanzen vor. Gleichzeitig erzeugt ein Zweig vollständig verbundener Schichten viele „Ankerboxen“, ähnlich wie Regionsvorschläge, und sagt auch k „Maskenkoeffizienten“ voraus – einen für jede Prototyp-Maske –, die die Wahrscheinlichkeit darstellen, dass ein vorgeschlagenes Objekt mit einer vorgeschlagenen Segmentierungsmaske übereinstimmt. Die Non-Maximum Suppression (NMS) wird verwendet, um die vorgeschlagenen Instanzen mit den höchsten Maskenkoeffizienten herauszufiltern.
Jüngste Innovationen im Bereich der Instanz- und panoptischen Segmentierung haben Transformer-Modelle erforscht, inspiriert durch ihren Erfolg in Bereichen wie der Verarbeitung natürlicher Sprache. Modelle wie Vision Transformers (ViT) verwenden Selbstbeobachtung anstelle von Convolution und ermöglichen so eine ganzheitliche Analyse des visuellen Kontexts eines Bildes.
Die größte Herausforderung, die es zu bewältigen gilt, ist der Rechenaufwand: Die Rechenkomplexität der Selbstbeobachtung steigt quadratisch mit der Bildgröße. Swin-Transformer verwenden verschobene Fenster, also „ shifted windows“, (anstelle von herkömmlichen Gleitschritten), um nicht überlappende Selbstbeobachtungsschichten zu erzeugen, wodurch die Rechenkomplexität nicht quadratisch, sondern linear mit der Bildgröße zunimmt. Swin-basierte Modelle konkurrieren mittlerweile mit der Genauigkeit führender CNN-basierter Frameworks.
Algorithmen für maschinelles Lernen, einschließlich der für die Instanzsegmentierung verwendeten Deep-Learning-Algorithmen, müssen trainiert werden. Sowohl CNN-basierte als auch Transformer-basierte Modelle werden mit Backpropagation trainiert: Die Modelle führen ein Reverse-Engineering von Trainingsbildern mit Anmerkungen durch, um die geeigneten Gewichtungen und Verzerrungen für die jeweilige Aufgabe zu lernen.
Die Anmerkungen der Trainingsdaten müssen sehr genau sein, um das maschinelle Lernen zu maximieren und als „Ground Truth“ zu dienen, anhand derer die trainierten Modelle bewertet und optimiert werden können. Da die menschlichen Fähigkeiten selbst die genauesten Computer-Vision-Modelle bei weitem übertreffen, werden diese Anmerkungen von Hand gemacht – ein teurer, arbeitsintensiver Prozess.
Um den Zeit- und Kostenaufwand für benutzerdefinierte Datensätze zu vermeiden, nutzen die meisten Modelle große Open-Source-Trainingsdatensätze oder nehmen eine Feinabstimmung eines vorab trainierten Encoder-Netzwerks für spezifischere visuelle Aufgaben vor. Zu den gängigen Open-Source-Bilddatensätzen gehören:
COCO (Common Objects in Context): ein massiver Datensatz mit über 330.000 Bildern mit Segmenten mit Anmerkungen in 80 Ding -Kategorien und 91 Sache -Kategorien.
ADE20K: ein vom MIT erstellter Datensatz zur Szenensegmentierung, der über 20.000 Bilder mit über 150 semantischen Klassen enthält.
Cityscapes: ein umfangreicher Datensatz, der sich auf städtische Straßen konzentriert, mit Bildern aus 50 Städten zu verschiedenen Tageszeiten, Jahreszeiten und Wetterbedingungen.
Die am häufigsten verwendeten Maßstäbe für die Leistung der Instanzsegmentierung und Objekterkennung sind Intersection over Union (IoU) und Average Precision (AP). Diese Metriken werden in der Regel als Leistung im Vergleich zu einem Benchmark-Datensatz ausgedrückt, z. B. „eine AP von 54,4 auf dem COCO-Datensatz“.
IoU misst die pixelweise Überlappung zwischen einer Ground-Truth-Maske und der Vorhersage eines Modells, ausgedrückt als Prozentsatz oder Ganzzahl zwischen 0 und 1. Für Bilder mit mehreren Instanzen wird der mittlere IoU (mIoU) verwendet.
Obwohl IoU intuitiv ist, weist es bedeutende Einschränkungen auf:
AP wird als die Fläche unter der Präzisionsabrufkurve berechnet. Es gleicht die Kompromisse zwischen zwei Metriken, Präzision und Recall (Abruf), aus, die anhand diskreter Ergebniswerte wie True Positives (TP), True Negatives (TN), False Positives (FP) und False Negatives (FN) berechnet werden.
Um die Relevanz zu maximieren, wird AP häufig innerhalb bestimmter IoU-Schwellenwerte berechnet. Beispielsweise berechnet „AP50“ die AP nur für Vorhersagen mit einem IoU von mehr als 50 Prozent. Die mittlere durchschnittliche Präzision (mAP) wird situativ als durchschnittlicher AP-Wert über alle berechneten Schwellenwerte hinweg verwendet.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com, openliberty.io