Mit der Aufgabe MediaPipe Image Segmenter können Sie Bilder basierend auf vordefinierten Kategorien. Sie können diese Funktionalität nutzen, um bestimmte Objekte oder Texturen erstellen und dann visuelle Effekte wie das Weichzeichnen des Hintergrunds anwenden. Diese Aufgabe umfasst mehrere Modelle, die speziell für die Segmentierung von Personen und Funktionen in Bilddaten, einschließlich:
- 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 oder einen kontinuierlichen Videostream. Es wird eine Liste segmentierter Regionen ausgegeben, Sie können Objekte oder Bereiche in einem Bild darstellen, je nachdem, welches Modell Sie verwenden auswählen.
Jetzt starten
Beginnen Sie mit dieser Aufgabe, indem Sie einen dieser Implementierungsleitfäden für Ihr Zielplattform. Diese plattformspezifischen Anleitungen führen Sie durch Implementierung dieser Aufgabe, einschließlich eines empfohlenen Modells und eines Codebeispiels mit den empfohlenen Konfigurationsoptionen:
- Android – Code Beispiel – Leitfaden
- Python – Codebeispiel Leitfaden
- Web – Code Beispiel – Leitfaden
Taskdetails
In diesem Abschnitt werden die Funktionen, Eingaben, Ausgaben und Konfiguration beschrieben. Optionen dieser Aufgabe.
Funktionen
- Verarbeitung von Eingabebildern – Die Verarbeitung umfasst Rotation, Größenanpassung und Normalisierung und Farbraumkonvertierung.
Aufgabeneingaben | Aufgabenausgaben |
---|---|
Folgende Datentypen sind zulässig:
|
Die Bildsegmentierung gibt segmentierte Bilddaten aus, die ein oder
Dies hängt von den von Ihnen festgelegten Konfigurationsoptionen ab:
|
Konfigurationsoptionen
Diese Aufgabe hat die folgenden Konfigurationsoptionen:
Option | Beschreibung | Wertebereich | Standardwert |
---|---|---|---|
running_mode |
Legt den Ausführungsmodus für die Task fest. Es gibt drei
Modi: IMAGE: Der Modus für Einzelbildeingaben. VIDEO: Der Modus für decodierte Frames eines Videos. LIVE_STREAM: Der Modus für einen Livestream mit Eingabe zum Beispiel von einer Kamera. In diesem Modus muss der resultListener wird aufgerufen, um einen Listener für den Empfang von Ergebnissen einzurichten asynchron programmiert. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
output_category_mask |
Wenn True festgelegt ist, enthält die Ausgabe eine Segmentierungsmaske
als Uint8-Bild, wobei jeder Pixelwert die Gewinnerkategorie angibt
Wert. |
{True, False } |
False |
output_confidence_masks |
Wenn True festgelegt ist, enthält die Ausgabe eine Segmentierungsmaske
als Gleitkommawert, wobei jeder Gleitkommawert den Konfidenzwert darstellt
Kurzübersicht der Kategorie. |
{True, False } |
True |
display_names_locale |
Legt die Sprache der Labels fest, die für Anzeigenamen in der
Metadaten des Aufgabenmodells, falls verfügbar. Standardwert ist en für
Englisch. Sie können den Metadaten eines benutzerdefinierten Modells lokalisierte Labels hinzufügen
mit der TensorFlow Lite Metadata Writer API |
Gebietsschemacode | de |
result_callback |
Legt den Ergebnis-Listener fest, der die Segmentierungsergebnisse empfangen soll
asynchron, wenn sich der Bildsegmentierer im LIVE_STREAM -Modus befindet.
Kann nur verwendet werden, wenn der Ausführungsmodus auf LIVE_STREAM festgelegt ist |
– | – |
Modelle
Der Image Segmenter kann mit mehr als einem ML-Modell verwendet werden. Die meisten der folgenden Segmentierungsmodelle erstellt und trainiert, um eine Segmentierung mit Bildern von Menschen. Das DeepLab-v3 -Modell wird jedoch als allgemeine verwendet werden. Wählen Sie das Modell aus, das am besten zu Ihrer Anwendung passt.
Selfie-Segmentierungsmodell
Dieses Modell kann das Porträt einer Person segmentieren und als Ersatz für oder den Hintergrund in einem Bild ändern. Das Modell gibt zwei Kategorien aus: Hintergrund bei Index 0 und Person bei Index 1. Dieses Modell hat Versionen mit verschiedene Eingabeformen, darunter eine quadratische Version und eine Version im Querformat, für Anwendungen, bei denen die Eingabe immer diese Form aufweist, z. B. Videoanrufe.
Modellname | Eingabeform | Quantisierungstyp | Modellkarte | Versionen |
---|---|---|---|---|
Selfie-Segmenter (Quadrat) | 256 x 256 | Gleitkommazahl 16 | Informationen | Neueste |
SelfieSegmenter (Querformat) | 144 x 256 | Gleitkommazahl 16 | Informationen | Neueste |
Haarsegmentierungsmodell
Dieses Modell nimmt ein Bild einer Person auf, sucht nach den Haaren auf dem Kopf und gibt eine Bildsegmentierungs-Map für ihr Haar aus. Sie können dieses Modell für Haarneufärben oder andere Haareffekte. Das Modell gibt Folgendes aus: Segmentierungskategorien:
0 - background
1 - hair
Modellname | Eingabeform | Quantisierungstyp | Modellkarte | Versionen |
---|---|---|---|---|
HairSegmenter | 512 x 512 | Keine (float32) | Informationen | Neueste |
Selfie-Segmentierungsmodell mit mehreren Klassen
Dieses Modell nimmt ein Bild einer Person auf, ermittelt Bereiche für verschiedene Bereiche wie Haare, Haut und Kleidung und gibt eine Bildsegmentierungs-Map für diese Artikel aus. Mit diesem Modell können Sie verschiedene Effekte auf Personen in Bildern oder Video. 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) | Informationen | Neueste |
DeepLab-v3-Modell
Dieses Modell identifiziert Segmente für eine Reihe von Kategorien, darunter Hintergrund-, Person, Katze, Hund und Topfpflanze. Das Modell verwendet eine atroose Raumpyramide um Informationen aus längeren Entfernungen zu erfassen. Weitere Informationen finden Sie unter DeepLab-v3 auf.
Modellname | Eingabeform | Quantisierungstyp | Versionen |
---|---|---|---|
DeepLab V3 | 257 x 257 | Keine (float32) | Neueste |
Aufgaben-Benchmarks
Hier sind die Aufgaben-Benchmarks für die gesamte Pipeline basierend auf den oben vortrainierten Modelle. Das Latenzergebnis ist die durchschnittliche Latenz auf Pixel 6 mit CPU / GPU.
Modellname | CPU-Latenz | GPU-Latenz |
---|---|---|
Selfie-Segmenter (Quadrat) | 33,46 ms | 35,15 ms |
SelfieSegmenter (Querformat) | 34,19 ms | 33,55 ms |
HairSegmenter | 57,90 ms | 52,14 ms |
SelfieMulticlass (256 x 256) | 217,76 ms | 71,24 ms |
DeepLab V3 | 123,93 ms | 103,30 ms |