Die Bildsegmentierung ist eine Computer-Vision-Technik, bei der ein digitales Bild in einzelne Gruppen von Pixeln – Bildsegmenten – aufgeteilt wird, um die Objekterkennung und damit verbundene Aufgaben zu unterstützen. Durch das Parsen der komplexen visuellen Daten eines Bildes in spezifisch geformte Segmente ermöglicht die Bildsegmentierung eine schnellere und fortschrittlichere Bildverarbeitung.
Bildsegmentierungstechniken reichen von der einfachen, intuitiven heuristischen Analyse bis zur hochmodernen Implementierung von Deep Learning. Herkömmliche Bildsegmentierungsalgorithmen verarbeiten allgemeine visuelle Merkmale der einzelnen Pixel, wie Farbe oder Helligkeit, um Objektgrenzen und Hintergrundregionen zu identifizieren. Maschinelles Lernen nutzt Datensätze mit Anmerkungen, um Modelle zu trainieren, die die spezifischen Arten von Objekten und Regionen, die ein Bild enthält, genau klassifizieren.
Die Bildsegmentierung ist eine äußerst vielseitige und praktische Methode der Computer Vision, die für eine Vielzahl von Anwendungsfällen der künstlichen Intelligenz genutzt wird, von der Unterstützung der Diagnose in der medizinischen Bildgebung über die Automatisierung der Fortbewegung in der Robotik und bei selbstfahrenden Autos bis hin zur Identifizierung von interessanten Objekten in Satellitenbildern.
IBM Newsletter abonnieren
Die Bildsegmentierung ist eine Weiterentwicklung der Bildklassifizierung und der Objekterkennung und umfasst eine Reihe einzigartiger Computer-Vision-Funktionen.
Bildklassifizierung wendet eine Klassenkennzeichnung auf ein gesamtes Bild an. Beispielsweise könnte ein einfaches Bildklassifizierungsmodell darauf trainiert werden, Fahrzeugbilder als „Auto“ oder „Lkw“ zu kategorisieren. Herkömmliche Bildklassifizierungssysteme sind in ihrer Komplexität begrenzt, da sie einzelne Bildmerkmale nicht separat verarbeiten.
Bei der Objekterkennung wird die Bildklassifizierung mit der Objektlokalisierung kombiniert, indem rechteckige Bereiche, so genannte „Bounding Boxes“ (Begrenzungsrahmen), erzeugt werden, in denen sich die Objekte befinden: Anstatt ein Fahrzeugbild lediglich als „Auto“ oder „Lkw“ zu kennzeichnen, könnte ein Objekterkennungsmodell angeben, wo im Bild das oder die Autos oder Lkw zu finden sind. Während die Objekterkennung mehrere Elemente innerhalb eines Bildes klassifizieren und die Breite und Höhe jedes Elements annähernd bestimmen kann, kann sie keine genauen Grenzen oder Formen erkennen. Dies schränkt die Fähigkeit herkömmlicher Objekterkennungsmodelle ein, eng gebündelte Objekte mit überlappenden Bounding Boxes abzugrenzen.
Bei der Bildsegmentierung werden visuelle Daten auf Pixelebene verarbeitet, wobei verschiedene Techniken verwendet werden, um einzelne Pixel als zu einer bestimmten Klasse oder Instanz gehörend zu kennzeichnen. „Klassische“ Bildsegmentierungsverfahren ermitteln Anmerkungen durch die Analyse inhärenter Eigenschaften jedes Pixels (so genannte „Heuristiken“) wie Farbe und Intensität, während Deep-Learning-Modelle komplexe neuronale Netze für eine anspruchsvolle Mustererkennung einsetzen. Die Ausgaben dieser Anmerkungen sind Segmentierungsmasken, die die spezifische Pixel-für-Pixel-Grenze und die Form jeder Klasse darstellen, die typischerweise verschiedenen Objekten, Merkmalen oder Regionen im Bild entspricht.
Im Großen und Ganzen wird die Bildsegmentierung für drei Arten von Aufgaben verwendet: semantische Segmentierung, Instanzsegmentierung und panoptische Segmentierung.
Der Unterschied zwischen den einzelnen Arten von Bildsegmentierungsaufgaben liegt in der Art und Weise, wie semantische Klassen behandelt werden: also die spezifischen Kategorien, zu denen ein bestimmtes Pixel gehören könnte.
Im Sprachgebrauch der Computer Vision gibt es zwei Arten semantischer Klassen. Beide eignen sich für unterschiedliche Techniken zur genauen und effektiven Segmentierung.
Dinge sind Klassen von Objekten mit charakteristischen Formen, wie „Auto“, „Baum“ oder „Person“. Typischerweise haben Dinge klar definierte Instanzen, die zählbar sind. Sie haben eine relativ geringe Größenabweichung von einem Fall zum nächsten sowie Bestandteile, die sich von der Sache selbst unterscheiden: Alle Autos haben beispielsweise Räder, aber ein Rad ist kein Auto.
Sachen bezieht sich auf semantische Klassen, die amorph geformt und in ihrer Größe sehr variabel sind, wie „Himmel“ oder „Wasser“ oder „Gras“. Typischerweise gibt es für Sachen keine klar definierten, zählbaren Einzelinstanzen. Im Gegensatz zu Dingen bestehen Sachen nicht aus unterschiedlichen Teilen: Ein Grashalm und eine Wiese sind beide gleichermaßen „Gras“.
Manche Klassen können unter bestimmten Bildbedingungen sowohl Dinge als auch Sachen sein.Eine große Gruppe von Menschen kann zum Beispiel als mehrere „Personen“ – jede davon ein eindeutig geformtes, zählbares Ding – oder als eine einzelne, amorph geformte „Menge“ interpretiert werden.
Während sich die meisten Bemühungen zur Objekterkennung in erster Linie auf Klassen von Dingen konzentrieren, ist es wichtig zu bedenken, dass Sachen – also Himmel, Wände, Böden, Erde – den Großteil unseres visuellen Kontexts ausmachen. Sachen sind ein wesentlicher Datenpunkt zur Identifizierung von Dingen und umgekehrt: ein Metallteil auf einer Straße ist in der Regel ein Auto; der blaue Hintergrund hinter einem Boot ist wahrscheinlich Wasser, während der blaue Hintergrund hinter einem Flugzeug wahrscheinlich der Himmel ist. Dies ist besonders wichtig für Deep-Learning-Modelle.
Die semantische Segmentierung ist die einfachste Art der Bildsegmentierung. Ein semantisches Segmentierungsmodell weist jedem Pixel eine semantische Klasse zu, gibt jedoch keine anderen Kontext oder Informationen (wie Objekte) aus.
Die semantische Segmentierung behandelt alle Pixel als Sache; sie unterscheidet nicht zwischen Sachen und Dingen.
Ein semantisches Segmentierungsmodell, das darauf trainiert ist, bestimmte Klassen auf einer städtischen Straße zu identifizieren, würde beispielsweise Segmentierungsmasken ausgeben, die die Grenzen und Konturen für jede relevante Klasse von Dingen (wie Fahrzeuge oder Lichtmasten) und Sachen (wie Straßen und Bürgersteige) angeben, aber keine Unterscheidung zwischen mehreren Instanzen derselben Klasse treffen (oder die Anzahl dieser Instanzen zählen). Beispielsweise könnten nebeneinander geparkte Autos einfach als ein einziges langes „Auto“-Segment behandelt werden.
Die Instanzsegmentierung kehrt die Prioritäten der semantischen Segmentierung um: Während semantische Segmentierungsalgorithmen nur die semantische Klassifizierung jedes Pixels vorhersagen (ohne Berücksichtigung der einzelnen Instanzen), beschreibt die Instanzsegmentierung die genaue Form jeder einzelnen Objektinstanz.
Die Instanzsegmentierung isoliert Dinge von Sachen – die sie ignoriert – und kann daher als eine weiterentwickelte Form der Objekterkennung verstanden werden, die eine präzise Segmentierungsmaske anstelle eines ungefähren Begrenzungsrahmens ausgibt.
Das ist eine schwierigere Aufgabe als die semantische Segmentierung: Selbst wenn sich Dinge derselben Klasse berühren oder sogar überlappen, müssen Instanzsegmentierungsmodelle in der Lage sein, jedes einzelne zu trennen und seine Form zu bestimmen, während semantische Segmentierungsmodelle sie einfach in einen Topf werfen können. Betrachten Sie zum Beispiel, wie die beiden unterschiedlichen Modelle die geparkten Autos in diesem Bild einer städtischen Straße behandeln.
Algorithmen zur Instanzsegmentierung verfolgen in der Regel entweder einen zweistufigen oder einen One-Shot-Ansatz für das Problem. Zweistufige Modelle, wie Region-based Convolutional Neural Networks (R-CNNs), führen eine konventionelle Objekterkennung durch, um Bounding Boxes für jede vorgeschlagene Instanz zu erzeugen, und führen dann eine verfeinerte Segmentierung und Klassifizierung innerhalb jeder Bounding Box durch. One-Shot-Modelle, wie YOLO (You Only Look Once), erreichen eine Instanzsegmentierung in Echtzeit, indem sie die Objekterkennung, Klassifizierung und Segmentierung gleichzeitig durchführen.
One-Shot-Ansätze bieten eine höhere Geschwindigkeit (mit Abstrichen bei der Genauigkeit), während zweistufige Ansätze eine höhere Genauigkeit bieten (mit Abstrichen bei der Geschwindigkeit).
Panoptische Segmentierungsmodelle bestimmen beide die semantische Klassifizierung aller Pixel und unterscheiden jede Objektinstanz in einem Bild, wobei die Vorteile der semantischen und Instanzsegmentierung kombiniert werden.
Bei einer Aufgabe zur panoptischen Segmentierung muss jedes Pixel sowohl mit einem semantischen Label als auch mit einer „Instanz-ID“ versehen werden. Pixel, die dasselbe Label und dieselbe ID haben, gehören zum selben Objekt; bei Pixeln, die als Sachen bestimmt wurden, wird die Instanz-ID ignoriert.
Die panoptische Segmentierung bietet Computer-Vision-Systemen somit ein umfassendes, ganzheitliches Verständnis eines bestimmten Bildes. Obwohl die Attraktivität dieser Methode auf der Hand liegt, ist es eine große Herausforderung, die panoptische Segmentierung auf konsistente und rechnerisch effiziente Weise durchzuführen.
Die Herausforderung besteht darin, zwei widersprüchliche Methoden zu vereinen: Semantische Segmentierungsmodelle behandeln alle Pixel als Sachen und lassen einzelne Instanzen von Dingen außer Acht; Instanzsegmentierungsmodelle isolieren einzelne Dinge und ignorieren Sachen. Keines der beiden Modelle kann die Aufgaben des anderen adäquat übernehmen.
Bei den ersten Versuchen mit panoptischen Segmentierungsmodellen wurden die beiden Modelle einfach miteinander kombiniert, indem jede Aufgabe separat ausgeführt und die Ergebnisse dann in einer Nachbearbeitungsphase kombiniert wurden. Dieser Ansatz hat zwei große Nachteile: Er erfordert einen hohen Rechenaufwand und hat mit Diskrepanzen zwischen Datenpunkten, die vom semantischen Segmentierungsnetzwerk ausgegeben werden, und Datenpunkten, die vom Instanzsegmentierungsnetzwerk ausgegeben werden, zu kämpfen.
Neuere panoptische Segmentierungsarchitekturen zielen darauf ab, diese Nachteile durch einen einheitlicheren Ansatz für Deep Learning zu vermeiden. Die meisten basieren auf einem „Backbone“-Netzwerk, wie einem Feature Pyramid Network (FPN), das Merkmale aus dem Eingabebild extrahiert, diese extrahierten Daten in parallele Zweige einspeist – wie einen „Vordergrund-Zweig“ und einen „Hintergrund-Zweig“ oder einen „semantischen Kopf“ und einen „Instanz-Kopf“ – und dann die Ausgaben der einzelnen Zweige mit Hilfe eines gewichteten Systems zusammenführt. Zu den vorgeschlagenen panoptischen Architekturen gehören EfficientPS, OANet, PanopticFPN, UPSNet, SOGNet, BGRNet, AUNet, FPSNet und SpatialFlow.
Traditionelle Bildsegmentierungstechniken verwenden Informationen aus den Farbwerten eines Pixels (und ähnliche Eigenschaften wie Helligkeit, Kontrast oder Intensität) für die Extraktion von Merkmalen und können schnell mit einfachen maschinellen Lernalgorithmen für Aufgaben wie semantische Klassifizierung trainiert werden.
Während auf Deep Learning basierende Segmentierungsmethoden zu größerer Präzision und anspruchsvolleren Bildanalysen in der Lage sind – insbesondere bei Aufgaben wie der panoptischen Segmentierung, die eine Vielzahl von Kontextinformationen erfordern – sind traditionelle Methoden weit weniger kostspielig und rechenintensiv und können bestimmte Probleme effizienter lösen.
Zu den üblichen traditionellen (oder „klassischen“) Bildsegmentierungstechniken gehören:
Die neuronalen Netze der Deep-Learning-Modelle für die Bildsegmentierung werden anhand eines Bilddatensatzes mit Anmerkungen trainiert, um die zugrundeliegenden Muster in den visuellen Daten zu erkennen und die wichtigsten Merkmale zu identifizieren, die für die Klassifizierung, Erkennung und Segmentierung relevant sind.
Trotz der Nachteile in puncto Rechenanforderungen und Trainingszeit übertreffen Deep-Learning-Modelle durchweg traditionelle Modelle und bilden die Grundlage für die meisten aktuellen Fortschritte im Bereich der Computer Vision.
Zu den wichtigsten Deep-Learning-Modellen, die bei der Bildsegmentierung verwendet werden, gehören:
Um nicht nur die Grenzen von Bildsegmenten abzubilden, sondern auch vorherzusagen, welche Sache oder welches Ding jedes Segment darstellt, werden Deep-Learning-Modelle anhand großer Datensätze mit Anmerkungen trainiert, um bestimmte semantische Klassen zu erkennen. Aus diesen vorab gekennzeichneten Bildern leiten Deep-Learning-Modelle die Muster und Pixelwerte ab, die typisch für jede Kennzeichnung sind.
Unterschiedliche Aufgaben erfordern unterschiedliche Trainingsdaten: Ein Computer-Vision-System für selbstfahrende Autos wird anhand von Bildern trainiert, die mit semantischen Klassen wie „Person“, „Auto“, „Fahrbahn“ und „Stoppschild“ gekennzeichnet sind, während medizinische Bildgebungsmodelle eine Optimierung für die Erkennung bestimmter Klassen von physischem Gewebe oder Tumoren und anderen Pathologien erfordern.
Trainingsdatensätze müssen sorgfältig von menschlichen Experten vorab gekennzeichnet werden, was extrem mühsam sein kann. Die meisten Bildsegmentierungsmodelle verwenden große Open-Source-Datensätze. Diese öffentlichen Datensätze dienen auch als „Ground Truth“, wenn es darum geht, den Erfolg der trainierten Modelle zu bewerten: Leistungsmetriken werden oft als Prozentsatz der Ergebnisse ausgedrückt, die genau mit den Anmerkungen im Trainingsdatensatz übereinstimmen.
Zu den beliebten Trainingsdatensätzen für Deep-Learning-Bildsegmentierungsmodelle gehören:
Die Bildsegmentierung ist in vielen Bereichen zu einem unverzichtbaren Tool geworden.
Nutzen Sie die Leistungsfähigkeit von Computer Vision ohne Code für die automatisierte visuelle Inspektion mit einem intuitiven Toolset für die Kennzeichnung, das Training und die Bereitstellung von Bildverarbeitungsmodellen mit künstlicher Intelligenz.
Moderne Computer-Vision-Systeme verfügen über eine übermenschliche Genauigkeit, wenn es um Bilderkennung und -analyse geht, aber sie verstehen nicht wirklich, was sie sehen. Bei IBM Research entwickeln wir KI-Systeme, die in der Lage sind, die Welt so zu sehen wie wir.
Dieser anfängerfreundliche Kurs hilft Ihnen, Computer Vision und ihre verschiedenen Anwendungen in vielen Branchen zu verstehen. Im Rahmen des Kurses werden Sie Python, Pillow und OpenCV für die grundlegende Bildverarbeitung verwenden und Bildklassifizierung und Objekterkennung durchführen.
Mit IBM Maximo Visual Inspection können Sie KI-basierte Modelle erstellen und trainieren, um Ihre Assets und Produkte zu inspizieren und Fehler zu identifizieren, die Produktions- und Qualitätsprobleme verursachen können.