ObjectDetector

public final class ObjectDetector

Führt eine Objekterkennung für Bilder durch.

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

Die API unterstützt Modelle mit einem Bildeingabetensor und vier 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.
  • Ausgabetensoren müssen die 4 Ausgaben eines DetectionPostProcess-Vorgangs sein, also:
    • Standorttensor (kTfLiteFloat32):
      • Tensor der Größe [1 x num_results x 4], das innere Array, das Begrenzungsrahmen in der Form [oben, links, rechts, unten] darstellt.
      • BoundingBoxProperties müssen an die Metadaten angehängt werden und müssen type=BOUNDARIES und coordinate_type=RATIO angeben.
    • Klassen Tensor (kTfLiteFloat32):
      • Tensor der Größe [1 x num_results], wobei jeder Wert den Ganzzahlindex einer Klasse darstellt.
      • Wenn Labelzuordnungen als mit TENSOR_VALUE_LABELS verknüpfte Dateien an die Metadaten angehängt sind, werden sie verwendet, um die Tensorwerte in Labels zu konvertieren.
    • Score-Tensor (kTfLiteFloat32):
      • Tensor der Größe [1 x num_results], wobei jeder Wert den Wert des erkannten Objekts darstellt.
    • Anzahl des Erkennungstensors (kTfLiteFloat32):
      • Ganzzahl num_results als Tensor der Größe [1].

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

Verschachtelte Klassen

Klasse ObjectDetector.ObjectDetectorOptions Optionen zum Einrichten eines ObjectDetector-Objekts. 

Public Methods

Statischer ObjectDetector
createFromBuffer(Kontextkontext, ByteBuffer modelBuffer)
Erstellt eine ObjectDetector-Instanz aus einem Modellpuffer und dem Standardwert ObjectDetector.ObjectDetectorOptions.
Statischer ObjectDetector
createFromFile(Kontextkontext, String ModelPath)
Erstellt eine ObjectDetector-Instanz aus einer Modelldatei und der Standard-ObjectDetector.ObjectDetectorOptions.
Statischer ObjectDetector
createFromFile(Kontextkontext, File-Modelldatei)
Erstellt eine ObjectDetector-Instanz aus einer Modelldatei und der Standard-ObjectDetector.ObjectDetectorOptions.
Statischer ObjectDetector
createFromOptions(Kontextkontext, ObjectDetector.ObjectDetectorOptions-Detektoroptionen)
Erstellt eine ObjectDetector-Instanz aus einer ObjectDetector.ObjectDetectorOptions.
ObjectDetectorResult
detect(MPImage-Bild)
Führt eine Objekterkennung für das bereitgestellte Einzelbild mit Standard-Bildverarbeitungsoptionen durch, z.B.
ObjectDetectorResult
detect(MPImage-Bild, ImageProcessingOptions imageProcessingOptions)
Führt eine Objekterkennung für das bereitgestellte Einzelbild durch.
void
detectAsync(MPImage-Bild, ImageProcessingOptions imageProcessingOptions, longtimestampMs)
Sendet Live-Bilddaten, um eine Objekterkennung durchzuführen. Die Ergebnisse sind über die in ObjectDetector.ObjectDetectorOptions angegebene OutputHandler.ResultListener verfügbar.
void
detectAsync(MPImage-Image, langer ZeitstempelMs)
Sendet Live-Bilddaten, um eine Objekterkennung mit standardmäßigen Bildverarbeitungsoptionen wie
ObjectDetectorResult
detectForVideo(MPImage-Bild, ImageProcessingOptions imageProcessingOptions, long timestampMs)
Führt eine Objekterkennung für den bereitgestellten Videoframe durch.
ObjectDetectorResult
detectForVideo(MPImage-Bild, langer ZeitstempelMs)
Führt eine Objekterkennung im bereitgestellten Videoframe mit Standardoptionen für die Bildverarbeitung durch, d.h.

Übernommene Methoden

Public Methods

public static ObjectDetector createFromBuffer (Kontextkontext, ByteBuffer modelBuffer)

Erstellt eine ObjectDetector-Instanz aus einem Modellpuffer und dem Standardwert ObjectDetector.ObjectDetectorOptions.

Parameter
context ein Android-ERROR(/Context).
modelBuffer ein direktes ByteBuffer oder ein ERROR(/MappedByteBuffer) des Erkennungsmodells.
Löst aus
Wenn beim Erstellen von ObjectDetector ein Fehler auftritt.

public static ObjectDetector createFromFile (Kontextkontext, String modelPath)

Erstellt eine ObjectDetector-Instanz aus einer Modelldatei und der Standard-ObjectDetector.ObjectDetectorOptions.

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

public static ObjectDetector createFromFile (Kontextkontext, Datei Modelldatei)

Erstellt eine ObjectDetector-Instanz aus einer Modelldatei und der Standard-ObjectDetector.ObjectDetectorOptions.

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

public static ObjectDetector createFromOptions (Kontextkontext, ObjectDetector.ObjectDetectorOptions Detektoroptionen)

Erstellt eine ObjectDetector-Instanz aus einer ObjectDetector.ObjectDetectorOptions.

Parameter
context ein Android-ERROR(/Context).
detectorOptions Eine ObjectDetector.ObjectDetectorOptions-Instanz.
Löst aus
Wenn beim Erstellen von ObjectDetector ein Fehler auftritt.

public ObjectDetectorResult detect (MPImage-Image)

Führt eine Objekterkennung für das bereitgestellte Einzelbild mit Standard-Bildverarbeitungsoptionen, d.h. ohne Drehung, durch. Verwenden Sie diese Methode nur, wenn das ObjectDetector mit ERROR(/RunningMode.IMAGE) erstellt wird.

ObjectDetector unterstützt die folgenden Farbraumtypen:

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

public ObjectDetectorResult detect (MPImage-Bild, ImageProcessingOptions imageProcessingOptions)

Führt eine Objekterkennung für das bereitgestellte Einzelbild durch. Verwenden Sie diese Methode nur, wenn das ObjectDetector mit ERROR(/RunningMode.IMAGE) erstellt wird.

ObjectDetector 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.

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

Sendet Live-Bilddaten, um eine Objekterkennung durchzuführen. Die Ergebnisse sind über die in ObjectDetector.ObjectDetectorOptions angegebene OutputHandler.ResultListener verfügbar. Verwenden Sie diese Methode nur, wenn das ObjectDetector 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.

ObjectDetector 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 detectAsync (MPImage-Image, long timestampMs)

Sendet Live-Bilddaten, um eine Objekterkennung mit standardmäßigen Bildverarbeitungsoptionen ohne Drehung durchzuführen. Die Ergebnisse sind über die in ObjectDetector.ObjectDetectorOptions angegebene OutputHandler.ResultListener verfügbar. Verwenden Sie diese Methode nur, wenn das ObjectDetector 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.

ObjectDetector 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 ObjectDetectorResult detectForVideo (MPImage-Bild, ImageProcessingOptions imageProcessingOptions, long timestampMs)

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

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

ObjectDetector 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 ObjectDetectorResult detectForVideo (MPImage-Bild, langer ZeitstempelMs)

Führt eine Objekterkennung auf dem bereitgestellten Videoframe mit Standardoptionen für die Bildverarbeitung durch, d.h. ohne Drehung. Verwenden Sie diese Methode nur, wenn das ObjectDetector mit ERROR(/RunningMode.VIDEO) erstellt wird.

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

ObjectDetector 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.