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 (
batchmuss 1 sein). - Es werden nur RGB-Eingaben unterstützt (
channelsmuss 3 sein). - Wenn der Typ
kTfLiteFloat32ist, müssen „NormalizationOptions“ für die Eingabenormalisierung an die Metadaten angehängt werden.
- Bildeingabe mit der Größe
- 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. BoundingBoxPropertiesmüssen an die Metadaten angehängt werden und müssentype=BOUNDARIESundcoordinate_type=RATIOangeben.
- Tensor der Größe
- 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_LABELSverknüpfte Dateien an die Metadaten angehängt sind, werden sie verwendet, um die Tensorwerte in Labels zu konvertieren.
- Tensor der Größe
- Score-Tensor (
kTfLiteFloat32):- Tensor der Größe
[1 x num_results], wobei jeder Wert den Wert des erkannten Objekts darstellt.
- Tensor der Größe
- Anzahl des Erkennungstensors (
kTfLiteFloat32):- Ganzzahl num_results als Tensor der Größe
[1].
- Ganzzahl num_results als Tensor der Größe
- Standorttensor (
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 | |
| 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. |