Interaktiver Leitfaden zur Bildsegmentierung

Nebeneinander liegende Bilder, auf denen auf einem Bild ein Foto eines Stuhls und auf dem anderen Bild derselbe Stuhl hervorgehoben zu sehen ist, um anzuzeigen, dass das Modell den Stuhl erkannt hat

Mit der Aufgabe „MediaPipe Interactive Image Segmenter“ können Sie ein Bild in zwei Bereiche unterteilen: ein ausgewähltes Objekt und alles andere. Bei dieser Aufgabe wird ein Ort in einem Bild ausgewählt, die Grenzen eines Objekts an diesem Ort geschätzt und Bilddaten zurückgegeben, die den Bereich des Objekts definieren. Mit dieser Aufgabe können Sie ein Objekt in einem Bild interaktiv auswählen und mit der Ausgabe Effekte auf das Bild anwenden, z. B. Farbüberlagerungen, die das Objekt hervorheben oder den Hintergrund um das Objekt herum unscharf machen. Bei dieser Aufgabe werden Bilddaten mit einem Modell für maschinelles Lernen verarbeitet. Sie können sie auf einzelne Bilder, Videodateien oder einen kontinuierlichen Videostream anwenden.

Jetzt testen!

Jetzt starten

Folgen Sie einer dieser Implementierungsanleitungen für Ihre Zielplattform, um diese Aufgabe zu verwenden. In diesen plattformspezifischen Anleitungen werden Sie durch die grundlegende Implementierung dieser Aufgabe geführt. Sie finden dort auch ein empfohlenes Modell und ein Codebeispiel mit empfohlenen Konfigurationsoptionen:

Taskdetails

In diesem Abschnitt werden die Funktionen, Eingaben, Ausgaben und Konfigurationsoptionen dieser Aufgabe beschrieben.

Funktionen

  • Eingabebildverarbeitung: Dazu gehören Bilddrehung, Größenänderung, Normalisierung und Farbraumkonvertierung.
Aufgabeneingaben Aufgabenausgaben
  • Koordinaten eines POI für ein Objekt in einem Bild
  • Zu verarbeitende Bilddatei
Der interaktive Bildsegmentierer gibt segmentierte Bilddaten aus, die je nach den von Ihnen festgelegten Konfigurationsoptionen eine oder beide der folgenden Optionen enthalten können:
  • CATEGORY_MASK: Eine Liste mit einer segmentierten Maske als Bild im uint8-Format. Jeder Pixelwert gibt an, ob er zum Objekt im gewünschten Bereich gehört.
  • CONFIDENCE_MASK: Eine Liste von Kanälen, die eine segmentierte Maske mit Pixelwerten im Format „float32“ enthält. Jeder Pixelwert gibt an, wie wahrscheinlich es ist, dass er zu dem Objekt gehört, das sich im gewünschten Bereich befindet.

Konfigurationsoptionen

Für diese Aufgabe gibt es die folgenden Konfigurationsoptionen:

Option Beschreibung Wertebereich Standardwert
output_category_mask Wenn dieser Wert auf True gesetzt ist, enthält die Ausgabe eine Segmentierungsmaske als uint8-Bild, bei der jeder Pixelwert angibt, ob das Pixel zum Objekt im Bereich von Interesse gehört. {True, False} False
output_confidence_masks Wenn dieser Wert auf True gesetzt ist, enthält die Ausgabe eine Segmentierungsmaske als Bild mit Gleitkommawerten. Jeder Gleitkommawert gibt die Wahrscheinlichkeit an, dass das Pixel Teil des Objekts im interessierenden Bereich ist. {True, False} True
display_names_locale Legt die Sprache der Labels fest, die für die Anzeigenamen verwendet werden, die in den Metadaten des Modells der Aufgabe angegeben sind, sofern verfügbar. Der Standardwert ist en für Englisch. Mit der TensorFlow Lite Metadata Writer API können Sie den Metadaten eines benutzerdefinierten Modells lokalisierte Labels hinzufügen. Gebietscode de

Modelle

Der interaktive Bildsegmenter kann mit mehreren ML-Modellen verwendet werden. Beginnen Sie mit dem standardmäßigen, empfohlenen Modell für Ihre Zielplattform, wenn Sie mit dieser Aufgabe beginnen. Bei den anderen verfügbaren Modellen müssen in der Regel Kompromisse zwischen Leistung, Genauigkeit, Auflösung und Ressourcenanforderungen eingegangen werden. In einigen Fällen sind auch zusätzliche Funktionen verfügbar.

Dieses Modell identifiziert Segmente anhand von Bildkoordinaten für einen bestimmten Bereich. Das Modell verwendet ein Convolutional Neural Network, ähnlich einer MobileNetV3-Architektur, mit einem benutzerdefinierten Decoder.

Modellname Eingabeform Quantisierungstyp Modellkarte Versionen
MagicTouch 512 × 512 × 4 Keine (float32) info Neueste

Benchmarks für Aufgaben

Hier sind die Aufgaben-Benchmarks für die gesamte Pipeline, die auf den oben genannten vorab trainierten Modellen basieren. Das Latenzergebnis ist die durchschnittliche Latenz auf Pixel 6 mit CPU / GPU.

Modellname CPU-Latenz GPU-Latenz
MagicTouch 130,11 ms 67,25 ms