ImageSegmenter

public final class ImageSegmenter

Führt eine Bildsegmentierung auf Bildern durch.

Zusätzlich zur Standard-Segmentierungs-API ERROR(/segment) und ERROR(/segmentForVideo), die ein Eingabebild aufnehmen und die Ausgaben zurückgeben, aber eine Deep-Kopie der Rückgaben umfasst, unterstützt ImageSegmenter auch die Callback-API ERROR(/segmentWithResultListener) und ERROR(/segmentForVideoWithResultListener), mit denen Sie auf die Ausgaben ohne Kopie zugreifen können.

Die Callback API ist für alle RunningMode in ImageSegmenter verfügbar. Lege OutputHandler.ResultListener korrekt in ImageSegmenter.ImageSegmenterOptions fest, um die Callback API zu verwenden.

Die API erwartet ein TFLite-Modell mit TFLite-Modellmetadaten.

  • Eingabebild MPImage
    • Das Bild, auf dem das Bildsegmentrer ausgeführt wird.
  • Ausgabe von ImageSegmenterResult ImageSegmenterResult
    • Ein ImageSegmenterResult , das segmentierte Masken enthält.

Verschachtelte Klassen

Klasse ImageSegmenter.ImageSegmenterOptions Optionen zum Einrichten eines ImageSegmenter-Objekts. 
Klasse ImageSegmenter.SegmentationOptions Optionen zum Konfigurieren des Laufzeitverhaltens von ImageSegmenter

Public Methods

Statisches ImageSegmenter
createFromOptions(Context context, ImageSegmenter.ImageSegmenterOptions segmenterOptions)
Erstellt eine ImageSegmenter-Instanz aus einer ImageSegmenter.ImageSegmenterOptions.
List<String>
getLabels()
Liste der Kategorielabels abrufen, die ImageSegmenter erkennen kann.
ImageSegmenterResult
segment(MPImage-Bild, ImageSegmenter.SegmentationOptionssegmentierungOptions)
Führt eine Bildsegmentierung für das bereitgestellte Einzelbild durch.
ImageSegmenterResult
segment(MPImage-Bild, ImageProcessingOptions imageProcessingOptions)
Führt eine Bildsegmentierung für das bereitgestellte Einzelbild durch.
ImageSegmenterResult
segment(MPImage-Bild)
Führt eine Bildsegmentierung für das bereitgestellte Einzelbild mit Standardbildverarbeitungsoptionen durch, z.B.
void
segmentAsync(MPImage-Bild, ImageProcessingOptions imageProcessingOptions, long timestampMs)
Sendet Live-Bilddaten zur Bildsegmentierung. Die Ergebnisse sind über die OutputHandler.ResultListener in der ImageSegmenter.ImageSegmenterOptions verfügbar.
void
segmentAsync(MPImage-Bild, ImageSegmenter.SegmentationOptionssegmentierungOptions, long timestampMs)
Sendet Live-Bilddaten zur Bildsegmentierung. Die Ergebnisse sind über die OutputHandler.ResultListener in der ImageSegmenter.ImageSegmenterOptions verfügbar.
void
segmentAsync(MPImage-Bild, langer ZeitstempelMs)
Sendet Live-Bilddaten zur Bildsegmentierung mit Standard-Bildverarbeitungsoptionen wie
ImageSegmenterResult
segmentForVideo(MPImage-Bild, ImageProcessingOptions imageProcessingOptions, long timestampMs)
Führt eine Bildsegmentierung für den bereitgestellten Videoframe durch.
ImageSegmenterResult
segmentForVideo(MPImage-Bild, langer ZeitstempelMs)
Führt eine Bildsegmentierung für den bereitgestellten Videoframe mit Standard-Bildverarbeitungsoptionen durch, z.B.
ImageSegmenterResult
segmentForVideo(MPImage-Bild, ImageSegmenter.SegmentationOptions segmentOptions, long timestampMs)
Führt eine Bildsegmentierung für den bereitgestellten Videoframe durch.
void
segmentForVideoWithResultListener(MPImage-Bild, ImageProcessingOptions imageProcessingOptions, long timestampMs)
Führt eine Bildsegmentierung für den bereitgestellten Videoframe durch und liefert über OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions ohne Kopie kopierte Ergebnisse.
void
segmentForVideoWithResultListener(MPImage-Bild, ImageSegmenter.SegmentationOptions segmentOptions, long timestampMs)
Führt eine Bildsegmentierung für den bereitgestellten Videoframe durch und liefert über OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions ohne Kopie kopierte Ergebnisse.
void
segmentForVideoWithResultListener(MPImage-Bild, langer ZeitstempelMs)
Führt eine Bildsegmentierung für den bereitgestellten Videoframe mit Standard-Bildverarbeitungsoptionen durch, z.B.
void
segmentWithResultListener(MPImage-Bild, ImageProcessingOptions imageProcessingOptions)
Führt eine Bildsegmentierung für das bereitgestellte einzelne Bild durch und liefert null kopierte Ergebnisse über OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions.
void
segmentWithResultListener(MPImage-Bild)
Führt eine Bildsegmentierung für das bereitgestellte Einzelbild mit Standardbildverarbeitungsoptionen durch, z.B.
void
segmentWithResultListener(MPImage-Bild, ImageSegmenter.SegmentationOptions segmentOptions)
Führt eine Bildsegmentierung für das bereitgestellte einzelne Bild durch und liefert null kopierte Ergebnisse über OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions.

Übernommene Methoden

Public Methods

public static ImageSegmenter createFromOptions (Kontextkontext, ImageSegmenter.ImageSegmenterOptions segmenterOptions)

Erstellt eine ImageSegmenter-Instanz aus einer ImageSegmenter.ImageSegmenterOptions.

Parameter
context ein Android-ERROR(/Context).
segmenterOptions Eine ImageSegmenter.ImageSegmenterOptions-Instanz.
Löst aus
Wenn beim Erstellen von ImageSegmenter ein Fehler auftritt.

public List<String> getLabels ()

Liste der Kategorielabels abrufen, die ImageSegmenter erkennen kann. Beim Typ CATEGORY_MASK entspricht der Index in der Kategoriemaske der Kategorie in der Labelliste. Beim Typ CONFIDENCE_MASK entspricht die Liste der Ausgabemaske am Index der Kategorie in der Labelliste.

Wenn in der Modelldatei keine Labelmap bereitgestellt wird, wird eine leere Labelliste zurückgegeben.

public ImageSegmenterResult segment (MPImage-Image, ImageSegmenter.SegmentationOptions segmentOptions)

Führt eine Bildsegmentierung für das bereitgestellte Einzelbild durch. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.IMAGE) erstellt wird. TODO-Update der Java-Dokumentation für das Eingabebildformat.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
segmentationOptions das ImageSegmenter.SegmentationOptions, mit dem das Laufzeitverhalten von ImageSegmenter konfiguriert wird.
Löst aus
wenn ein interner Fehler vorliegt. Oder wenn ImageSegmenter mit einer OutputHandler.ResultListener erstellt wird.

public ImageSegmenterResult Segment (MPImage-Bild, ImageProcessingOptions imageProcessingOptions)

Führt eine Bildsegmentierung für das bereitgestellte Einzelbild durch. Die Ausgabemaske hat dieselbe Größe wie das Eingabebild. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.IMAGE) erstellt wird. TODO-Aktualisierung der Java-Dokumentation für das Eingabebildformat.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
imageProcessingOptions den ImageProcessingOptions, der angibt, wie das Eingabebild vor dem Ausführen der Inferenz verarbeitet wird. Beachten Sie, dass die Region von Interesse von dieser Aufgabe nicht unterstützt wird: Die Angabe von ImageProcessingOptions.regionOfInterest() führt dazu, dass diese Methode eine geschmeidige Ausnahme auslöst.
Löst aus
IllegalArgumentException wenn ImageProcessingOptions eine relevante Region angibt.
wenn ein interner Fehler vorliegt. Oder wenn ImageSegmenter mit einer OutputHandler.ResultListener erstellt wird.

public ImageSegmenterResult Segment (MPImage-Bild)

Führt eine Bildsegmentierung für das bereitgestellte Einzelbild mit Standard-Bildverarbeitungsoptionen durch, d.h. ohne Drehung. Die Ausgabemaske hat dieselbe Größe wie das Eingabebild. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.IMAGE) erstellt wird. TODO-Aktualisierung der Java-Dokumentation für das Eingabebildformat.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
Löst aus
wenn ein interner Fehler vorliegt. Oder wenn ImageSegmenter mit einer OutputHandler.ResultListener erstellt wird.

public void segmentAsync (MPImage-Bild, ImageProcessingOptions imageProcessingOptions, long timestampMs)

Sendet Live-Bilddaten zur Bildsegmentierung. Die Ergebnisse sind über die OutputHandler.ResultListener in der ImageSegmenter.ImageSegmenterOptions verfügbar. Die Ausgabemaske hat dieselbe Größe wie das Eingabebild. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.LIVE_STREAM) erstellt wird.

Es muss ein Zeitstempel (in Millisekunden) angegeben werden, um anzugeben, wann das Eingabebild an den Bildsegmentierer gesendet wird. Die Eingabezeitstempel müssen kontinuierlich ansteigen.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
imageProcessingOptions den ImageProcessingOptions, der angibt, wie das Eingabebild vor dem Ausführen der Inferenz verarbeitet wird. Beachten Sie, dass die Region von Interesse von dieser Aufgabe nicht unterstützt wird: Die Angabe von ImageProcessingOptions.regionOfInterest() führt dazu, dass diese Methode eine geschmeidige Ausnahme auslöst.
timestampMs den Eingabezeitstempel (in Millisekunden).
Löst aus
IllegalArgumentException wenn ImageProcessingOptions eine relevante Region angibt.
wenn ein interner Fehler vorliegt.

public void segmentAsync (MPImage-Image, ImageSegmenter.SegmentationOptions segmentOptions, long timestampMs)

Sendet Live-Bilddaten zur Bildsegmentierung. Die Ergebnisse sind über die OutputHandler.ResultListener in der ImageSegmenter.ImageSegmenterOptions verfügbar. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.LIVE_STREAM) erstellt wird.

Es muss ein Zeitstempel (in Millisekunden) angegeben werden, um anzugeben, wann das Eingabebild an den Bildsegmentierer gesendet wird. Die Eingabezeitstempel müssen kontinuierlich ansteigen.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
segmentationOptions das ImageSegmenter.SegmentationOptions, mit dem das Laufzeitverhalten von ImageSegmenter konfiguriert wird.
timestampMs den Eingabezeitstempel (in Millisekunden).
Löst aus
wenn ein interner Fehler vorliegt.

public void segmentAsync (MPImage-Bild, long timestampMs)

Sendet Live-Bilddaten zur Bildsegmentierung mit Standard-Bildverarbeitungsoptionen, d. h. ohne Drehung. Die Ergebnisse sind über die OutputHandler.ResultListener in der ImageSegmenter.ImageSegmenterOptions verfügbar. Die Ausgabemaske hat dieselbe Größe wie das Eingabebild. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.LIVE_STREAM) erstellt wird.

Es muss ein Zeitstempel (in Millisekunden) angegeben werden, um anzugeben, wann das Eingabebild an den Bildsegmentierer gesendet wird. Die Eingabezeitstempel müssen kontinuierlich ansteigen.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
timestampMs den Eingabezeitstempel (in Millisekunden).
Löst aus
wenn ein interner Fehler vorliegt.

public ImageSegmenterResult segmentForVideo (MPImage-Bild, ImageProcessingOptions imageProcessingOptions, longtimestampMs)

Führt eine Bildsegmentierung für den bereitgestellten Videoframe durch. Die Ausgabemaske hat dieselbe Größe wie das Eingabebild. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.VIDEO) erstellt wird.

Sie müssen den Zeitstempel des Videoframes (in Millisekunden) angeben. Die Eingabezeitstempel müssen kontinuierlich ansteigen.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
imageProcessingOptions den ImageProcessingOptions, der angibt, wie das Eingabebild vor dem Ausführen der Inferenz verarbeitet wird. Beachten Sie, dass die Region von Interesse von dieser Aufgabe nicht unterstützt wird: Die Angabe von ImageProcessingOptions.regionOfInterest() führt dazu, dass diese Methode eine geschmeidige Ausnahme auslöst.
timestampMs den Eingabezeitstempel (in Millisekunden).
Löst aus
IllegalArgumentException wenn ImageProcessingOptions eine relevante Region angibt.
wenn ein interner Fehler vorliegt. Oder wenn ImageSegmenter mit einer OutputHandler.ResultListener erstellt wird.

public ImageSegmenterResult segmentForVideo (MPImage-Bild, langer ZeitstempelMs)

Führt eine Bildsegmentierung für den bereitgestellten Videoframe mit Standard-Bildverarbeitungsoptionen durch, d.h. ohne Drehung. Die Ausgabemaske hat dieselbe Größe wie das Eingabebild. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.VIDEO) erstellt wird.

Sie müssen den Zeitstempel des Videoframes (in Millisekunden) angeben. Die Eingabezeitstempel müssen kontinuierlich ansteigen.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
timestampMs den Eingabezeitstempel (in Millisekunden).
Löst aus
wenn ein interner Fehler vorliegt. Oder wenn ImageSegmenter mit einer OutputHandler.ResultListener erstellt wird.

public ImageSegmenterResult segmentForVideo (MPImage-Bild, ImageSegmenter.SegmentationOptionssegmentierungOptions, long timestampMs)

Führt eine Bildsegmentierung für den bereitgestellten Videoframe durch. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.VIDEO) erstellt wird.

Sie müssen den Zeitstempel des Videoframes (in Millisekunden) angeben. Die Eingabezeitstempel müssen kontinuierlich ansteigen.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
segmentationOptions das ImageSegmenter.SegmentationOptions, mit dem das Laufzeitverhalten von ImageSegmenter konfiguriert wird.
timestampMs den Eingabezeitstempel (in Millisekunden).
Löst aus
wenn ein interner Fehler vorliegt. Oder wenn ImageSegmenter mit einer OutputHandler.ResultListener erstellt wird.

public void segmentForVideoWithResultListener (MPImage-Bild, ImageProcessingOptions imageProcessingOptions, long timestampMs)

Führt eine Bildsegmentierung für den bereitgestellten Videoframe durch und liefert über OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions ohne Kopie kopierte Ergebnisse. Die Ausgabemaske hat dieselbe Größe wie das Eingabebild. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.VIDEO) erstellt wird.

Sie müssen den Zeitstempel des Videoframes (in Millisekunden) angeben. Die Eingabezeitstempel müssen kontinuierlich ansteigen.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
imageProcessingOptions
timestampMs den Eingabezeitstempel (in Millisekunden).
Löst aus
IllegalArgumentException wenn ImageProcessingOptions eine relevante Region angibt.
wenn ein interner Fehler vorliegt. Oder wenn ImageSegmenter nicht mit OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions erstellt wurde.

public void segmentForVideoWithResultListener (MPImage-Bild, ImageSegmenter.SegmentationOptions segmentOptions, long timestampMs)

Führt eine Bildsegmentierung für den bereitgestellten Videoframe durch und liefert über OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions ohne Kopie kopierte Ergebnisse. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.VIDEO) erstellt wird.

Sie müssen den Zeitstempel des Videoframes (in Millisekunden) angeben. Die Eingabezeitstempel müssen kontinuierlich ansteigen.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
segmentationOptions das ImageSegmenter.SegmentationOptions, mit dem das Laufzeitverhalten von ImageSegmenter konfiguriert wird.
timestampMs den Eingabezeitstempel (in Millisekunden).
Löst aus
wenn ein interner Fehler vorliegt. Oder wenn ImageSegmenter nicht mit OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions erstellt wurde.

public void segmentForVideoWithResultListener (MPImage-Bild, long timestampMs)

Führt eine Bildsegmentierung für den bereitgestellten Videoframe mit Standard-Bildverarbeitungsoptionen durch, d.h. ohne Drehung, und liefert null kopierte Ergebnisse über OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions. Die Ausgabemaske hat dieselbe Größe wie das Eingabebild. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.VIDEO) erstellt wird.

Sie müssen den Zeitstempel des Videoframes (in Millisekunden) angeben. Die Eingabezeitstempel müssen kontinuierlich ansteigen.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
timestampMs den Eingabezeitstempel (in Millisekunden).
Löst aus
wenn ein interner Fehler vorliegt. Oder wenn ImageSegmenter nicht mit OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions erstellt wurde.

public void segmentWithResultListener (MPImage-Bild, ImageProcessingOptions imageProcessingOptions)

Führt eine Bildsegmentierung für das bereitgestellte einzelne Bild durch und liefert null kopierte Ergebnisse über OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions. Die Ausgabemaske hat dieselbe Größe wie das Eingabebild. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.IMAGE) erstellt wird.

TODO-Aktualisierung der Java-Dokumentation für das Eingabebildformat.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
imageProcessingOptions den ImageProcessingOptions, der angibt, wie das Eingabebild vor dem Ausführen der Inferenz verarbeitet wird. Beachten Sie, dass die Region von Interesse von dieser Aufgabe nicht unterstützt wird: Die Angabe von ImageProcessingOptions.regionOfInterest() führt dazu, dass diese Methode eine geschmeidige Ausnahme auslöst.
Löst aus
IllegalArgumentException wenn ImageProcessingOptions eine relevante Region angibt.
wenn ein interner Fehler vorliegt. Oder wenn ImageSegmenter nicht mit OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions erstellt wurde.

public void segmentWithResultListener (MPImage-Bild)

Führt eine Bildsegmentierung für das bereitgestellte Einzelbild mit Standard-Bildverarbeitungsoptionen (d.h. ohne Drehung) durch und liefert null kopierte Ergebnisse über OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions. Die Ausgabemaske hat dieselbe Größe wie das Eingabebild. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.IMAGE) erstellt wird.

TODO-Aktualisierung der Java-Dokumentation für das Eingabebildformat.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
Löst aus
wenn ein interner Fehler vorliegt. Oder wenn ImageSegmenter nicht mit OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions erstellt wurde.

public void segmentWithResultListener (MPImage-Bild, ImageSegmenter.SegmentationOptions segmentOptions)

Führt eine Bildsegmentierung für das bereitgestellte einzelne Bild durch und liefert null kopierte Ergebnisse über OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions. Verwenden Sie diese Methode nur, wenn das ImageSegmenter mit ERROR(/RunningMode.IMAGE) erstellt wird.

TODO-Aktualisierung der Java-Dokumentation für das Eingabebildformat.

ImageSegmenter unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
segmentationOptions das ImageSegmenter.SegmentationOptions, mit dem das Laufzeitverhalten von ImageSegmenter konfiguriert wird.
Löst aus
wenn ein interner Fehler vorliegt. Oder wenn ImageSegmenter nicht mit OutputHandler.ResultListener in ImageSegmenter.ImageSegmenterOptions erstellt wurde.