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.
- Bildeingabe mit der Größe
- 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 Felddisplay_name
wird aus der AssignedFile (falls vorhanden) gefüllt, deren Sprache mit dem Felddisplay_names_locale
derImageClassifierOptions
ü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 Feldindex
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 | |
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.
|