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.
- image d'entrée de taille
- 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écifiertype=BOUNDARIES
etcoordinate_type=RATIO
.
- Tensor de taille
- 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 de taille
- Tensor des scores (
kTfLiteFloat32
) :- Tensor de taille
[1 x num_results]
, chaque valeur représentant le score de l'objet détecté.
- Tensor de taille
- Nombre de Tensor de détection (
kTfLiteFloat32
) :- Nombre entier num_results en tant que Tensor de taille
[1]
.
- Nombre entier num_results en tant que Tensor de taille
- Tensor de localisation (
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 | |
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. |