ImageClassifier

public final class ImageClassifier

Führt eine Klassifizierung von Bildern durch.

Die API erwartet ein TFLite-Modell mit optionalen, aber dringend empfohlenen TFLite-Modellmetadaten.

Die API unterstützt Modelle mit einem Bildeingabetensor und einem oder mehreren Ausgabetensoren. Genauer gesagt: Hier sind die Anforderungen.

  • Eingabebild-Tensor (kTfLiteUInt8/kTfLiteFloat32)
    • Bildeingabe mit der Größe [batch x height x width x channels].
    • Batchinferenz wird nicht unterstützt (batch muss 1 sein).
    • Es werden nur RGB-Eingaben unterstützt (channels muss 3 sein).
    • Wenn der Typ „kTfLiteFloat32“ ist, müssen „NormalizationOptions“ für die Eingabenormalisierung an die Metadaten angehängt werden.
  • Mindestens einen Ausgabetensor (kTfLiteUInt8/kTfLiteFloat32) mit:
    • N-Klassen und entweder 2 oder 4 Dimensionen, z.B. [1 x N] oder [1 x 1 x 1 x N]
    • Optionale (aber empfohlene) Labels enthalten Karten mit dem Typ TENSOR_AXIS_LABELS als AssignedFile-s und enthalten ein Label pro Zeile. Das erste AssignedFile-Element (falls vorhanden) wird verwendet, um das Feld class_name der Ergebnisse zu füllen. Das Feld display_name wird aus der AssignedFile (falls vorhanden) gefüllt, deren Sprache mit dem Feld display_names_locale der ImageClassifierOptions übereinstimmt, die bei der Erstellung verwendet wurde („en“ ist standardmäßig „en“, d.h. Englisch). Wenn keine dieser Optionen verfügbar sind, wird nur das Feld index der Ergebnisse gefüllt.
    • Die optionale Punktzahl-Kalibrierung kann mithilfe von ScoreCalibrationOptions und einer AssignedFile vom Typ TENSOR_AXIS_INDEX_CALIBRATION angehängt werden. Weitere Informationen finden Sie unter metadata_schema.fbs.

Ein Beispiel für ein solches Modell finden Sie unter TensorFlow Hub.

Verschachtelte Klassen

Klasse ImageClassifier.ImageClassifierOptions Optionen für die Einrichtung und ImageClassifier

Public Methods

ImageClassifierResult
classify(MPImage-Bild)
Führt eine Klassifizierung des bereitgestellten Einzelbilds mit Standardbildverarbeitungsoptionen durch, z.B.
ImageClassifierResult
classify(MPImage-Bild, ImageProcessingOptions imageProcessingOptions)
Führt eine Klassifizierung für das bereitgestellte einzelne Bild durch.
void
classifyAsync(MPImage-Bild, ImageProcessingOptions imageProcessingOptions, long timestampMs)
Sendet Live-Bilddaten zur Klassifizierung. Die Ergebnisse sind über die in ImageClassifier.ImageClassifierOptions angegebene OutputHandler.ResultListener verfügbar.
void
classifyAsync(MPImage-Bild, langer ZeitstempelMs)
Sendet Live-Bilddaten zur Klassifizierung mit Standard-Bildverarbeitungsoptionen wie
ImageClassifierResult
classifyForVideo(MPImage-Bild, langer ZeitstempelMs)
Führt eine Klassifizierung des bereitgestellten Videoframes mit Standardoptionen für die Bildverarbeitung durch, z.B.
ImageClassifierResult
classifyForVideo(MPImage-Bild, ImageProcessingOptions imageProcessingOptions, long timestampMs)
Führt eine Klassifizierung für den bereitgestellten Videoframe durch.
static ImageClassifier
createFromBuffer(Kontextkontext, ByteBuffer modelBuffer)
Erstellt eine ImageClassifier-Instanz aus einem Modellpuffer und dem Standard-ImageClassifier.ImageClassifierOptions.
static ImageClassifier
createFromFile(Kontextkontext, String ModelPath)
Erstellt eine ImageClassifier-Instanz aus einer Modelldatei und der Standard-ImageClassifier.ImageClassifierOptions.
static ImageClassifier
createFromFile(Kontextkontext, File-Modelldatei)
Erstellt eine ImageClassifier-Instanz aus einer Modelldatei und der Standard-ImageClassifier.ImageClassifierOptions.
static ImageClassifier
createFromOptions(Context context, ImageClassifier.ImageClassifierOptions-Optionen)
Erstellt eine ImageClassifier-Instanz aus einer ImageClassifier.ImageClassifierOptions-Instanz.

Übernommene Methoden

Public Methods

public ImageClassifierResult Klassifizierung (MPImage-Bild)

Führt eine Klassifizierung für das bereitgestellte einzelne Bild mit Standard-Bildverarbeitungsoptionen durch, d.h. es wird das gesamte Bild als interessierende Region verwendet, ohne dass eine Drehung angewendet wird. Verwenden Sie diese Methode nur, wenn das ImageClassifier mit ERROR(/RunningMode.IMAGE) erstellt wird.

ImageClassifier unterstützt die folgenden Farbraumtypen:

Parameter
Image Ein MediaPipe-MPImage-Objekt zur Verarbeitung
Löst aus
wenn ein interner Fehler vorliegt.

public ImageClassifierResult Klassifizierung (MPImage-Bild, ImageProcessingOptions imageProcessingOptions)

Führt eine Klassifizierung für das bereitgestellte einzelne Bild durch. Verwenden Sie diese Methode nur, wenn das ImageClassifier mit ERROR(/RunningMode.IMAGE) erstellt wird.

ImageClassifier 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.
Löst aus
wenn ein interner Fehler vorliegt.

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

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

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

ImageClassifier 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.
timestampMs den Eingabezeitstempel (in Millisekunden).
Löst aus
wenn ein interner Fehler vorliegt.

public void classifyAsync (MPImage-Bild, langer ZeitstempelMs)

Sendet Live-Bilddaten zur Klassifizierung mit Standard-Bildverarbeitungsoptionen, d. h. es wird das gesamte Bild als interessierende Region und ohne angewendete Drehung verwendet. Die Ergebnisse sind über die OutputHandler.ResultListener in der ImageClassifier.ImageClassifierOptions verfügbar. Verwenden Sie diese Methode nur, wenn das ImageClassifier mit ERROR(/RunningMode.LIVE_STREAM) erstellt wird.

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

ImageClassifier 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 ImageClassifierResult classifyForVideo (MPImage-Bild, langer ZeitstempelMs)

Führt eine Klassifizierung des bereitgestellten Videoframes mit Standardoptionen für die Bildverarbeitung durch, d.h. es wird das gesamte Bild als interessierende Region verwendet, ohne dass eine Drehung angewendet wird. Verwenden Sie diese Methode nur, wenn das ImageClassifier mit ERROR(/RunningMode.VIDEO) erstellt wird.

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

ImageClassifier 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 ImageClassifierResult classifyForVideo (MPImage-Bild, ImageProcessingOptions imageProcessingOptions, longtimestampMs)

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

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

ImageClassifier 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.
timestampMs den Eingabezeitstempel (in Millisekunden).
Löst aus
wenn ein interner Fehler vorliegt.

public static ImageClassifier createFromBuffer (Kontextkontext, ByteBuffer modelBuffer)

Erstellt eine ImageClassifier-Instanz aus einem Modellpuffer und dem Standard-ImageClassifier.ImageClassifierOptions.

Parameter
context ein Android-ERROR(/Context).
modelBuffer Ein direkter ByteBuffer oder ein ERROR(/MappedByteBuffer) des Klassifizierungsmodells.
Löst aus
Wenn beim Erstellen von ImageClassifier ein Fehler auftritt.

public static ImageClassifier createFromFile (Kontextkontext, String modelPath)

Erstellt eine ImageClassifier-Instanz aus einer Modelldatei und der Standard-ImageClassifier.ImageClassifierOptions.

Parameter
context ein Android-ERROR(/Context).
modelPath zum Klassifizierungsmodell in den Assets.
Löst aus
Wenn beim Erstellen von ImageClassifier ein Fehler auftritt.

public static ImageClassifier createFromFile (Kontextkontext, Datei Modelldatei)

Erstellt eine ImageClassifier-Instanz aus einer Modelldatei und der Standard-ImageClassifier.ImageClassifierOptions.

Parameter
context ein Android-ERROR(/Context).
modelFile Die File-Instanz des Klassifizierungsmodells.
Löst aus
IOException Wenn beim Öffnen der TFlite-Modelldatei ein E/A-Fehler auftritt.
Wenn beim Erstellen von ImageClassifier ein Fehler auftritt.

public static ImageClassifier createFromOptions (Context context, ImageClassifier.ImageClassifierOptions)

Erstellt eine ImageClassifier-Instanz aus einer ImageClassifier.ImageClassifierOptions-Instanz.

Parameter
context ein Android-ERROR(/Context).
Optionen Eine ImageClassifier.ImageClassifierOptions-Instanz.
Löst aus
Wenn beim Erstellen von ImageClassifier ein Fehler auftritt.