ObjectDetector

classe pubblica finale ObjectDetector

Esegue il rilevamento di oggetti sulle immagini.

L'API prevede un modello TFLite con metadati di modelli TFLite.

L'API supporta modelli con un tensore di input dell'immagine e quattro tensori di output. Per essere più specifici, di seguito sono riportati i requisiti.

  • Tensore immagine di input (kTfLiteUInt8/kTfLiteFloat32)
    • immagine di dimensione [batch x height x width x channels].
    • l'inferenza batch non è supportata (batch deve essere 1).
    • sono supportati solo gli ingressi RGB (channels deve essere pari a 3).
    • Se il tipo è kTfLiteFloat32, è necessario collegare NormalizationOptions ai metadati per la normalizzazione dell'input.
  • I tensori di output devono essere i quattro output di un'operazione DetectionPostProcess, ad esempio:
    • Tensore di località (kTfLiteFloat32):
      • tensore della dimensione [1 x num_results x 4], l'array interno che rappresenta i riquadri di delimitazione nel formato [in alto, a sinistra, a destra, in basso].
      • I campi BoundingBoxProperties devono essere allegati ai metadati e devono specificare type=BOUNDARIES e coordinate_type=RATIO.
    • Tensore di classi (kTfLiteFloat32):
      • tensore di dimensione [1 x num_results], ciascun valore rappresenta l'indice intero di una classe.
      • Se ai metadati sono allegate mappe di etichette come file associati a TENSOR_VALUE_LABELS, vengono utilizzate per convertire i valori tensore in etichette.
    • tensore dei punteggi (kTfLiteFloat32):
      • tensore di dimensione [1 x num_results], ciascun valore rappresenta il punteggio dell'oggetto rilevato.
    • Numero di tensore di rilevamento (kTfLiteFloat32):
      • numero intero num_results come un tensore di dimensione [1].

Puoi trovare un esempio di questo modello su TensorFlow Hub.

Corsi nidificati

classe ObjectDetector.ObjectDetectorOptions Opzioni per configurare un ObjectDetector

Metodi pubblici

ObjectDetector statico
createFromBuffer(Context context, ByteBuffer modelBuffer)
Crea un'istanza ObjectDetector da un buffer del modello e il valore predefinito ObjectDetector.ObjectDetectorOptions.
ObjectDetector statico
createFromFile(Contesto del contesto, Stringa modelPath)
Crea un'istanza ObjectDetector da un file del modello e dal valore predefinito ObjectDetector.ObjectDetectorOptions.
ObjectDetector statico
createFromFile(Contesto del contesto, File modelFile)
Crea un'istanza ObjectDetector da un file del modello e dal valore predefinito ObjectDetector.ObjectDetectorOptions.
ObjectDetector statico
ObjectDetectorResult
detect(immagine MPImage)
Esegue il rilevamento degli oggetti sulla singola immagine fornita con opzioni di elaborazione delle immagini predefinite, ad esempio
ObjectDetectorResult
detect(MPImage immagine, ImageProcessingOptions imageElaborazioneOptions)
Esegue il rilevamento degli oggetti sull'immagine singola fornita.
void
detectAsync(MPImage immagine, ImageProcessingOptions image elaborazioneOptions, timestamp lunghiMs)
Invia i dati delle immagini in tempo reale per eseguire il rilevamento degli oggetti e i risultati saranno disponibili tramite il OutputHandler.ResultListener fornito in ObjectDetector.ObjectDetectorOptions.
void
detectAsync(immagine MPImage, timestamp lunghiM)
Invia i dati delle immagini in tempo reale per il rilevamento degli oggetti con opzioni di elaborazione delle immagini predefinite, ad esempio
ObjectDetectorResult
detectForVideo(MPImage immagine, ImageProcessingOptions imageElaborazioneOptions, timestamp lunghiMs)
Esegue il rilevamento di oggetti sul frame video fornito.
ObjectDetectorResult
detectForVideo(immagine MPImage, timestamp lunghiM)
Esegue il rilevamento di oggetti sul frame video fornito con opzioni di elaborazione delle immagini predefinite, ad esempio

Metodi ereditati

Metodi pubblici

pubblico statico ObjectDetector createFromBuffer (Context context, ByteBuffer modelBuffer)

Crea un'istanza ObjectDetector da un buffer del modello e il valore predefinito ObjectDetector.ObjectDetectorOptions.

Parametri
context un ERROR(/Context) Android.
modelBuffer un ByteBuffer diretto o un ERROR(/MappedByteBuffer) del modello di rilevamento.
Lanci
in caso di errore durante la creazione di ObjectDetector.

pubblico statico ObjectDetector createFromFile (Contesto del contesto, String modelPath)

Crea un'istanza ObjectDetector da un file del modello e dal valore predefinito ObjectDetector.ObjectDetectorOptions.

Parametri
context un ERROR(/Context) Android.
modelPath percorso del modello di rilevamento con metadati negli asset.
Lanci
in caso di errore durante la creazione di ObjectDetector.

pubblico statico ObjectDetector createFromFile (Contesto del contesto, File modelFile)

Crea un'istanza ObjectDetector da un file del modello e dal valore predefinito ObjectDetector.ObjectDetectorOptions.

Parametri
context un ERROR(/Context) Android.
modelFile l'istanza del modello di rilevamento File.
Lanci
IOException se si verifica un errore I/O all'apertura del file del modello tflite.
in caso di errore durante la creazione di ObjectDetector.

pubblico statico ObjectDetector createFromOptions (Context context, ObjectDetector.ObjectDetectorOptions detectorOptions)

Parametri
context un ERROR(/Context) Android.
detectorOptions un'istanza ObjectDetector.ObjectDetectorOptions.
Lanci
in caso di errore durante la creazione di ObjectDetector.

Public ObjectDetectorResult detect (MPImage immagine)

Esegue il rilevamento degli oggetti sulla singola immagine fornita con opzioni di elaborazione delle immagini predefinite, ovvero senza alcuna rotazione applicata. Utilizza questo metodo solo quando ObjectDetector viene creato con ERROR(/RunningMode.IMAGE).

ObjectDetector supporta i seguenti tipi di spazi colore:

Parametri
immagine un oggetto MPImage di MediaPipe per l'elaborazione.
Lanci
in caso di errore interno.

pubblici ObjectDetectorResult detect (MPImage immagine, ImageProcessingOptions imageElaborazioneOptions)

Esegue il rilevamento degli oggetti sull'immagine singola fornita. Utilizza questo metodo solo quando ObjectDetector viene creato con ERROR(/RunningMode.IMAGE).

ObjectDetector supporta i seguenti tipi di spazi colore:

Parametri
immagine un oggetto MPImage di MediaPipe per l'elaborazione.
imageProcessingOptions ImageProcessingOptions che specifica come elaborare l'immagine di input prima di eseguire l'inferenza. Tieni presente che la regione di interesse non è supportata da questa attività: se specifichi ImageProcessingOptions.regionOfInterest(), questo metodo genererà un'eccezione di IllegalArgumentException.
Lanci
IllegalArgumentException se ImageProcessingOptions specifica una regione di interesse.
in caso di errore interno.

Public void detectAsync (immagine MPImage, ImageProcessingOptions imageElaborazioneOptions, timestamp lunghiMs)

Invia i dati delle immagini in tempo reale per eseguire il rilevamento degli oggetti e i risultati saranno disponibili tramite il OutputHandler.ResultListener fornito in ObjectDetector.ObjectDetectorOptions. Utilizza questo metodo solo quando ObjectDetector viene creato con ERROR(/RunningMode.LIVE_STREAM).

È necessario fornire un timestamp (in millisecondi) per indicare quando l'immagine di input viene inviata al rilevatore di oggetti. I timestamp di input devono essere crescenti in modo monotonico.

ObjectDetector supporta i seguenti tipi di spazi colore:

Parametri
immagine un oggetto MPImage di MediaPipe per l'elaborazione.
imageProcessingOptions ImageProcessingOptions che specifica come elaborare l'immagine di input prima di eseguire l'inferenza. Tieni presente che la regione di interesse non è supportata da questa attività: se specifichi ImageProcessingOptions.regionOfInterest(), questo metodo genererà un'eccezione di IllegalArgumentException.
timestampMs il timestamp di input (in millisecondi).
Lanci
IllegalArgumentException se ImageProcessingOptions specifica una regione di interesse.
in caso di errore interno.

Public void detectAsync (immagine MPImage, timestamp lunghiM)

Invia i dati delle immagini in tempo reale per eseguire il rilevamento degli oggetti con opzioni di elaborazione delle immagini predefinite, ovvero senza alcuna rotazione applicata, e i risultati saranno disponibili tramite l'OutputHandler.ResultListener fornito in ObjectDetector.ObjectDetectorOptions. Utilizza questo metodo solo quando ObjectDetector viene creato con ERROR(/RunningMode.LIVE_STREAM).

È necessario fornire un timestamp (in millisecondi) per indicare quando l'immagine di input viene inviata al rilevatore di oggetti. I timestamp di input devono essere crescenti in modo monotonico.

ObjectDetector supporta i seguenti tipi di spazi colore:

Parametri
immagine un oggetto MPImage di MediaPipe per l'elaborazione.
timestampMs il timestamp di input (in millisecondi).
Lanci
in caso di errore interno.

Public ObjectDetectorResult detectForVideo (immagine MPImage, ImageProcessingOptions imageElaborazioneOptions, timestamp lunghiMs)

Esegue il rilevamento di oggetti sul frame video fornito. Utilizza questo metodo solo quando ObjectDetector viene creato con ERROR(/RunningMode.VIDEO).

È necessario fornire il timestamp (in millisecondi) del frame video. I timestamp di input devono essere crescenti in modo monotonico.

ObjectDetector supporta i seguenti tipi di spazi colore:

Parametri
immagine un oggetto MPImage di MediaPipe per l'elaborazione.
imageProcessingOptions ImageProcessingOptions che specifica come elaborare l'immagine di input prima di eseguire l'inferenza. Tieni presente che la regione di interesse non è supportata da questa attività: se specifichi ImageProcessingOptions.regionOfInterest(), questo metodo genererà un'eccezione di IllegalArgumentException.
timestampMs il timestamp di input (in millisecondi).
Lanci
IllegalArgumentException se ImageProcessingOptions specifica una regione di interesse.
in caso di errore interno.

Public ObjectDetectorResult detectForVideo (immagine MPImage, timestamp lungoMs)

Esegue il rilevamento degli oggetti sul frame video fornito con opzioni di elaborazione delle immagini predefinite, ovvero senza alcuna rotazione applicata. Utilizza questo metodo solo quando ObjectDetector viene creato con ERROR(/RunningMode.VIDEO).

È necessario fornire il timestamp (in millisecondi) del frame video. I timestamp di input devono essere crescenti in modo monotonico.

ObjectDetector supporta i seguenti tipi di spazi colore:

Parametri
immagine un oggetto MPImage di MediaPipe per l'elaborazione.
timestampMs il timestamp di input (in millisecondi).
Lanci
in caso di errore interno.