ObjectDetector

classe finale publique ObjectDetector

Effectue une détection d'objets sur des images.

L'API attend un modèle TFLite avec des métadonnées de modèle TFLite.

L'API prend en charge les modèles avec un Tensor d'entrée d'image et quatre Tensors de sortie. Pour être plus précis, voici les conditions requises.

  • Tensor d'image d'entrée (kTfLiteUInt8/kTfLiteFloat32)
    • image d'entrée de taille [batch x height x width x channels].
    • L'inférence par lot n'est pas acceptée (la valeur de batch doit être définie sur 1).
    • Seules les entrées RVB sont acceptées (la valeur de channels doit être définie sur 3).
    • Si le type est kTfLiteFloat32, des options NormalizationOptions doivent être associées aux métadonnées pour la normalisation des entrées.
  • Les Tensors de sortie doivent être les quatre sorties d'une opération DetectionPostProcess, soit :
    • Tensor de localisation (kTfLiteFloat32) :
      • Tensor de taille [1 x num_results x 4], le tableau interne représentant les cadres de délimitation sous la forme [haut, gauche, droite, bas].
      • Les BoundingBoxProperties doivent être associés aux métadonnées et doivent spécifier type=BOUNDARIES et coordinate_type=RATIO.
    • Tensor des classes (kTfLiteFloat32) :
      • Tensor de taille [1 x num_results], chaque valeur représentant l'index entier d'une classe.
      • Si des mappages d'étiquettes sont associés aux métadonnées en tant que fichiers associés TENSOR_VALUE_LABELS, ils sont utilisés pour convertir les valeurs de Tensor en étiquettes.
    • Tensor des scores (kTfLiteFloat32) :
      • Tensor de taille [1 x num_results], chaque valeur représentant le score de l'objet détecté.
    • Nombre de Tensor de détection (kTfLiteFloat32) :
      • Nombre entier num_results en tant que Tensor de taille [1].

Vous trouverez un exemple de ce type de modèle sur TensorFlow Hub.

Classes imbriquées

classe ObjectDetector.ObjectDetectorOptions Options de configuration d'un ObjectDetector

Méthodes publiques

ObjectDetector statique
createFromBuffer(contexte de contexte, modelBuffer ByteBuffer)
Crée une instance ObjectDetector à partir d'un tampon de modèle et la valeur ObjectDetector.ObjectDetectorOptions par défaut.
ObjectDetector statique
createFromFile(contexte de contexte, String modelPath)
Crée une instance ObjectDetector à partir d'un fichier de modèle et de la valeur ObjectDetector.ObjectDetectorOptions par défaut.
ObjectDetector statique
createFromFile(contexte de contexte, File modelFile)
Crée une instance ObjectDetector à partir d'un fichier de modèle et de la valeur ObjectDetector.ObjectDetectorOptions par défaut.
ObjectDetector statique
createFromOptions(contexte de contexte, ObjectDetector.ObjectDetectorOptions detectOptions)
Crée une instance ObjectDetector à partir d'un ObjectDetector.ObjectDetectorOptions.
ObjectDetectorResult
detect(image MPImage)
Effectue une détection d'objets sur l'image unique fournie avec des options de traitement d'image par défaut (par exemple,
ObjectDetectorResult
detect(image MPImage, ImageProcessingOptions imageProcessingOptions)
Effectue une détection d'objets sur l'image unique fournie.
void
detectAsync(image MPImage, ImageProcessingOptions imageProcessOptions, code temporel long)
Envoie des données d'image en direct pour effectuer la détection d'objets. Les résultats seront disponibles via le OutputHandler.ResultListener fourni dans le ObjectDetector.ObjectDetectorOptions.
void
detectAsync(image MPImage, code temporel long)
Envoie des données d'image en direct pour effectuer la détection d'objets avec les options de traitement d'image par défaut (par exemple,
ObjectDetectorResult
detectForVideo(image MPImage, ImageProcessingOptions imageProcessingOptions, longtimestampMs)
Effectue la détection d'objets sur l'image vidéo fournie.
ObjectDetectorResult
detectForVideo(image MPImage, code temporel long)
Effectue une détection d'objets sur l'image vidéo fournie à l'aide des options de traitement d'image par défaut (par exemple,

Méthodes héritées

Méthodes publiques

public statique ObjectDetector createFromBuffer (contexte de contexte, ByteBuffer modelBuffer)

Crée une instance ObjectDetector à partir d'un tampon de modèle et la valeur ObjectDetector.ObjectDetectorOptions par défaut.

Paramètres
context un ERROR(/Context) Android.
modelBuffer un ByteBuffer ou un ERROR(/MappedByteBuffer) direct du modèle de détection.
Génère
si une erreur se produit lors de la création de ObjectDetector.

public statique ObjectDetector createFromFile (contexte de contexte, String modelPath)

Crée une instance ObjectDetector à partir d'un fichier de modèle et de la valeur ObjectDetector.ObjectDetectorOptions par défaut.

Paramètres
context un ERROR(/Context) Android.
modelPath le chemin d'accès au modèle de détection avec les métadonnées dans les éléments.
Génère
si une erreur se produit lors de la création de ObjectDetector.

public statique ObjectDetector createFromFile (contexte de contexte, File modelFile)

Crée une instance ObjectDetector à partir d'un fichier de modèle et de la valeur ObjectDetector.ObjectDetectorOptions par défaut.

Paramètres
context un ERROR(/Context) Android.
modelFile l'instance du modèle de détection File.
Génère
IOException si une erreur d'E/S se produit lors de l'ouverture du fichier de modèle tflite.
si une erreur se produit lors de la création de ObjectDetector.

public statique ObjectDetector createFromOptions (contexte de contexte, ObjectDetector.ObjectDetectorOptions detectOptions)

Crée une instance ObjectDetector à partir d'un ObjectDetector.ObjectDetectorOptions.

Paramètres
context un ERROR(/Context) Android.
detectorOptions une instance ObjectDetector.ObjectDetectorOptions.
Génère
si une erreur se produit lors de la création de ObjectDetector.

public ObjectDetectorResult detect (image MPImage)

Effectue une détection d'objets sur l'image unique fournie avec les options de traitement d'image par défaut, c'est-à-dire sans rotation appliquée. N'utilisez cette méthode que lorsque le ObjectDetector est créé avec ERROR(/RunningMode.IMAGE).

ObjectDetector accepte les types d'espaces colorimétriques suivants:

Paramètres
Image un objet MPImage MediaPipe à traiter.
Génère
en cas d'erreur interne.

public ObjectDetectorResult detect (image MPImage, ImageProcessingOptions imageProcessingOptions)

Effectue une détection d'objets sur l'image unique fournie. N'utilisez cette méthode que lorsque le ObjectDetector est créé avec ERROR(/RunningMode.IMAGE).

ObjectDetector accepte les types d'espaces colorimétriques suivants:

Paramètres
Image un objet MPImage MediaPipe à traiter.
imageProcessingOptions Le ImageProcessingOptions, qui indique comment traiter l'image d'entrée avant d'exécuter l'inférence. Notez que la valeur de la région d'intérêt n'est pas prise en charge par cette tâche. Si vous spécifiez ImageProcessingOptions.regionOfInterest(), cette méthode générera une exception IllegalArgumentException.
Génère
IllegalArgumentException si ImageProcessingOptions spécifie une région d'intérêt.
en cas d'erreur interne.

public void detectAsync (MPImage image, ImageProcessingOptions imageProcessingOptions, longTimestampMs)

Envoie des données d'image en direct pour effectuer la détection d'objets. Les résultats seront disponibles via le OutputHandler.ResultListener fourni dans le ObjectDetector.ObjectDetectorOptions. N'utilisez cette méthode que lorsque le ObjectDetector est créé avec ERROR(/RunningMode.LIVE_STREAM).

Il est nécessaire de fournir un horodatage (en millisecondes) pour indiquer le moment où l'image d'entrée est envoyée au détecteur d'objets. Les horodatages d'entrée doivent être croissants de manière monotone.

ObjectDetector accepte les types d'espaces colorimétriques suivants:

Paramètres
Image un objet MPImage MediaPipe à traiter.
imageProcessingOptions Le ImageProcessingOptions, qui indique comment traiter l'image d'entrée avant d'exécuter l'inférence. Notez que la valeur de la région d'intérêt n'est pas prise en charge par cette tâche. Si vous spécifiez ImageProcessingOptions.regionOfInterest(), cette méthode générera une exception IllegalArgumentException.
timestampMs l'horodatage d'entrée (en millisecondes) ;
Génère
IllegalArgumentException si ImageProcessingOptions spécifie une région d'intérêt.
en cas d'erreur interne.

public void detectAsync (image MPImage, code temporel long)

Envoie des données d'image en direct pour effectuer la détection d'objets avec les options de traitement d'image par défaut, c'est-à-dire sans rotation appliquée. Les résultats sont disponibles via le OutputHandler.ResultListener fourni dans le ObjectDetector.ObjectDetectorOptions. N'utilisez cette méthode que lorsque le ObjectDetector est créé avec ERROR(/RunningMode.LIVE_STREAM).

Il est nécessaire de fournir un horodatage (en millisecondes) pour indiquer le moment où l'image d'entrée est envoyée au détecteur d'objets. Les horodatages d'entrée doivent être croissants de manière monotone.

ObjectDetector accepte les types d'espaces colorimétriques suivants:

Paramètres
Image un objet MPImage MediaPipe à traiter.
timestampMs l'horodatage d'entrée (en millisecondes) ;
Génère
en cas d'erreur interne.

public ObjectDetectorResult detectForVideo (MPImage image, ImageProcessingOptions imageProcessingOptions, longTimestampMs)

Effectue la détection d'objets sur l'image vidéo fournie. N'utilisez cette méthode que lorsque le ObjectDetector est créé avec ERROR(/RunningMode.VIDEO).

Il est obligatoire de fournir le code temporel de l'image vidéo (en millisecondes). Les horodatages d'entrée doivent être croissants de manière monotone.

ObjectDetector accepte les types d'espaces colorimétriques suivants:

Paramètres
Image un objet MPImage MediaPipe à traiter.
imageProcessingOptions Le ImageProcessingOptions, qui indique comment traiter l'image d'entrée avant d'exécuter l'inférence. Notez que la valeur de la région d'intérêt n'est pas prise en charge par cette tâche. Si vous spécifiez ImageProcessingOptions.regionOfInterest(), cette méthode générera une exception IllegalArgumentException.
timestampMs l'horodatage d'entrée (en millisecondes) ;
Génère
IllegalArgumentException si ImageProcessingOptions spécifie une région d'intérêt.
en cas d'erreur interne.

public ObjectDetectorResult detectForVideo (image MPImage, code temporel long)

Détection d'objets sur l'image vidéo fournie avec les options de traitement d'image par défaut, c'est-à-dire sans rotation appliquée. N'utilisez cette méthode que lorsque le ObjectDetector est créé avec ERROR(/RunningMode.VIDEO).

Il est obligatoire de fournir le code temporel de l'image vidéo (en millisecondes). Les horodatages d'entrée doivent être croissants de manière monotone.

ObjectDetector accepte les types d'espaces colorimétriques suivants:

Paramètres
Image un objet MPImage MediaPipe à traiter.
timestampMs l'horodatage d'entrée (en millisecondes) ;
Génère
en cas d'erreur interne.