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.
- 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. BoundingBoxProperties
müssen an die Metadaten angehängt werden und müssentype=BOUNDARIES
undcoordinate_type=RATIO
angeben.
- 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_LABELS
verknü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. |