Mit der Aufgabe „MediaPipe Image Segmenter“ können Sie Bilder anhand vordefinierter Kategorien in Regionen unterteilen. Mit dieser Funktion können Sie bestimmte Objekte oder Texturen identifizieren und dann visuelle Effekte wie das Weichzeichnen des Hintergrunds anwenden. Diese Aufgabe umfasst mehrere Modelle, die speziell für die Segmentierung von Personen und deren Merkmalen in Bilddaten trainiert wurden, darunter:
- Person und Hintergrund
- Nur Haare der Person
- Haare, Gesicht, Haut, Kleidung und Accessoires der Person
Bei dieser Aufgabe werden Bilddaten mit einem ML-Modell (Maschinelles Lernen) mit einzelnen Bildern oder einem kontinuierlichen Videostream verarbeitet. Es gibt eine Liste der segmentierten Regionen aus, die je nach ausgewähltem Modell Objekte oder Bereiche in einem Bild darstellen.
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:
- Android – Codebeispiel – Anleitung
- Python – Codebeispiel Leitfaden
- Web – Codebeispiel – Anleitung
Taskdetails
In diesem Abschnitt werden die Funktionen, Eingaben, Ausgaben und Konfigurationsoptionen dieser Aufgabe beschrieben.
Funktionen
- Eingabebildverarbeitung: Die Verarbeitung umfasst Bilddrehung, Größenänderung, Normalisierung und Farbraumkonvertierung.
Aufgabeneingaben | Aufgabenausgaben |
---|---|
Die Eingabe kann einen der folgenden Datentypen haben:
|
Der Bildsegmentierungstool gibt segmentierte Bilddaten aus, die je nach den von Ihnen festgelegten Konfigurationsoptionen eine oder beide der folgenden Optionen enthalten können:
|
Konfigurationsoptionen
Für diese Aufgabe gibt es die folgenden Konfigurationsoptionen:
Option | Beschreibung | Wertebereich | Standardwert |
---|---|---|---|
running_mode |
Legt den Ausführungsmodus für die Aufgabe fest. Es gibt drei Modi: IMAGE: Der Modus für Eingaben mit einem einzelnen Bild. VIDEO: Der Modus für decodierte Frames eines Videos. LIVE_STREAM: Der Modus für einen Livestream von Eingabedaten, z. B. von einer Kamera. In diesem Modus muss resultListener aufgerufen werden, um einen Listener für den asynchronen Empfang von Ergebnissen einzurichten. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
output_category_mask |
Wenn dieser Wert auf True festgelegt ist, enthält die Ausgabe eine Segmentierungsmaske als uint8-Bild, bei der jeder Pixelwert den Wert der Gewinnerkategorie angibt. |
{True, False } |
False |
output_confidence_masks |
Wenn dieser Parameter auf True festgelegt ist, enthält die Ausgabe eine Segmentierungsmaske als Bild mit Gleitkommawerten. Dabei steht jeder Gleitkommawert für die Konfidenzkarte der Kategorie. |
{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 |
result_callback |
Legt fest, dass der Ergebnisempfänger die Segmentierungsergebnisse asynchron empfängt, wenn sich der Bildsegmenter im Modus LIVE_STREAM befindet.
Kann nur verwendet werden, wenn der Ausführungsmodus auf LIVE_STREAM festgelegt ist. |
– | – |
Modelle
Der Bildsegmenter kann mit mehreren ML-Modellen verwendet werden. Die meisten der folgenden Segmentierungsmodelle wurden für die Segmentierung von Bildern von Personen erstellt und trainiert. Das DeepLab-v3-Modell wurde jedoch als Bildsegmentierungstool für allgemeine Zwecke entwickelt. Wählen Sie das Modell aus, das für Ihre Anwendung am besten geeignet ist.
Selfie-Segmentierungsmodell
Dieses Modell kann das Porträt einer Person segmentieren und verwendet werden, um den Hintergrund in einem Bild zu ersetzen oder zu ändern. Das Modell gibt zwei Kategorien aus: „Hintergrund“ mit dem Index 0 und „Person“ mit dem Index 1. Dieses Modell hat Versionen mit verschiedenen Eingabeformen, darunter eine quadratische Version und eine Querformatversion, die für Anwendungen, bei denen die Eingabe immer diese Form hat, effizienter sein kann, z. B. für Videoanrufe.
Modellname | Eingabeform | Quantisierungstyp | Modellkarte | Versionen |
---|---|---|---|---|
SelfieSegmenter (quadratisch) | 256 x 256 | float 16 | info | Neueste |
SelfieSegmenter (Querformat) | 144 × 256 | float 16 | info | Neueste |
Haarsegmentierungsmodell
Dieses Modell nimmt ein Bild einer Person auf, lokalisiert das Haar auf ihrem Kopf und gibt eine Bildsegmentierungskarte für ihr Haar aus. Sie können dieses Modell verwenden, um Haare neu zu färben oder andere Haareffekte anzuwenden. Das Modell gibt die folgenden Segmentierungskategorien aus:
0 - background
1 - hair
Modellname | Eingabeform | Quantisierungstyp | Modellkarte | Versionen |
---|---|---|---|---|
HairSegmenter | 512 × 512 | Keine (float32) | info | Neueste |
Mehrfachklassiges Selfie-Segmentierungsmodell
Dieses Modell nimmt ein Bild einer Person auf, lokalisiert Bereiche für verschiedene Bereiche wie Haare, Haut und Kleidung und gibt eine Bildsegmentierungskarte für diese Elemente aus. Mit diesem Modell können Sie Personen in Bildern oder Videos verschiedene Effekte hinzufügen. Das Modell gibt die folgenden Segmentierungskategorien aus:
0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
Modellname | Eingabeform | Quantisierungstyp | Modellkarte | Versionen |
---|---|---|---|---|
SelfieMulticlass (256 × 256) | 256 x 256 | Keine (float32) | info | Neueste |
DeepLab-v3-Modell
Dieses Modell identifiziert Segmente für eine Reihe von Kategorien, darunter Hintergrund, Person, Katze, Hund und Topfpflanze. Das Modell verwendet atrous spatial pyramid pooling, um Informationen mit größerer Reichweite zu erfassen. Weitere Informationen finden Sie unter DeepLab-v3.
Modellname | Eingabeform | Quantisierungstyp | Versionen |
---|---|---|---|
DeepLab-V3 | 257 × 257 | Keine (float32) | Neueste |
Benchmarks für Aufgaben
Hier sind die Aufgaben-Benchmarks für die gesamte Pipeline basierend auf den oben genannten vorab trainierten Modellen. Das Latenzergebnis ist die durchschnittliche Latenz auf Pixel 6 mit CPU / GPU.
Modellname | CPU-Latenz | GPU-Latenz |
---|---|---|
SelfieSegmenter (quadratisch) | 33,46 ms | 35,15 ms |
SelfieSegmenter (Querformat) | 34,19 ms | 33,55 ms |
HairSegmenter | 57,90 ms | 52,14 ms |
SelfieMulticlass (256 × 256) | 217,76 ms | 71,24 ms |
DeepLab-V3 | 123,93 ms | 103,30 ms |