Guide des tâches d'intégration d'images

La tâche de l'outil d'intégration d'images MediaPipe vous permet de créer la représentation numérique d'une image, ce qui est utile pour effectuer diverses tâches d'image basées sur le ML. Cette fonctionnalité est fréquemment utilisée pour comparer la similarité de deux images à l'aide de techniques mathématiques telles que la similarité cosinus. Cette tâche s'exécute sur des données d'image avec un modèle de machine learning (ML) sous forme de données statiques ou de flux continu. Elle génère une représentation numérique des données d'image sous la forme d'une liste de vecteurs de caractéristiques de grande dimension, également appelés vecteurs de représentation vectorielle continue, sous forme de valeurs flottantes ou quantifiées.

Essayer

Commencer

Commencez à utiliser cette tâche en suivant l'un de ces guides d'implémentation pour votre plate-forme cible. Ces guides spécifiques à la plate-forme vous guident tout au long d'une implémentation de base de cette tâche à l'aide d'un modèle recommandé et fournissent des exemples de code avec les options de configuration recommandées:

Détails de la tâche

Cette section décrit les capacités, les entrées, les sorties et les options de configuration de cette tâche.

Caractéristiques

  • Traitement de l'image d'entrée : le traitement comprend la rotation, le redimensionnement, la normalisation et la conversion de l'espace colorimétrique de l'image.
  • Région d'intérêt : effectue une représentation vectorielle continue sur une région de l'image au lieu de l'image entière.
  • Calcul de similarité de représentation vectorielle continue : fonction utilitaire intégrée permettant de calculer la similarité cosinus entre deux vecteurs de caractéristiques
  • Quantisation : accepte la quantification scalaire pour les vecteurs de caractéristiques.
Entrées des tâches Sorties de tâches
Vous pouvez saisir l'un des types de données suivants:
  • Images fixes
  • Images vidéo décodées
  • Flux vidéo en direct
L'outil d'intégration d'images génère une liste de représentations vectorielles continues composées des éléments suivants:
  • Représentation vectorielle continue: le vecteur de caractéristiques lui-même, soit sous forme à virgule flottante, soit sous forme de quantification scalaire.
  • "Head Index" : index de la tête à l'origine de cette représentation vectorielle continue.
  • Head name (Nom de la tête) (facultatif): nom de la tête qui a généré cette représentation vectorielle continue.

Options de configuration

Cette tâche comporte les options de configuration suivantes:

Nom de l'option Description Plage de valeurs Valeur par défaut
running_mode Définit le mode d'exécution de la tâche. Il existe trois modes:

IMAGE: mode pour les entrées d'une seule image.

VIDEO: mode pour les images décodées d'une vidéo.

LIVE_STREAM: mode de diffusion en direct de données d'entrée, issues par exemple d'une caméra. Dans ce mode, resultListener doit être appelé pour configurer un écouteur afin de recevoir les résultats de manière asynchrone.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
l2_normalize Indique s'il faut normaliser le vecteur de caractéristiques renvoyé avec la norme L2. N'utilisez cette option que si le modèle ne contient pas encore d'opération TFLite L2_NORMALIZATION native. Dans la plupart des cas, c'est déjà le cas et la normalisation L2 est donc obtenue via l'inférence TFLite sans utiliser cette option. Boolean False
quantize Indique si la représentation vectorielle continue renvoyée doit être quantifiée en octets via une quantification scalaire. Les représentations vectorielles continues sont implicitement considérées comme de norme unitaire. Par conséquent, la valeur de toute dimension est forcément comprise dans [-1.0, 1.0]. Si ce n'est pas le cas, utilisez l'option l2_normalize. Boolean False
result_callback Définit l'écouteur de résultats pour recevoir les résultats de la représentation vectorielle continue de manière asynchrone lorsque l'outil d'intégration d'images est en mode de diffusion en direct. Ne peut être utilisé que lorsque le mode En cours d'exécution est défini sur LIVE_STREAM N/A Non définie

Modèles

L'outil d'intégration d'images nécessite le téléchargement et le stockage d'un modèle de représentation vectorielle continue d'images dans le répertoire de votre projet. Commencez avec le modèle par défaut recommandé pour votre plate-forme cible lorsque vous démarrez le développement avec cette tâche. Les autres modèles disponibles font généralement des compromis entre les exigences de performances, de précision, de résolution et de ressources. Dans certains cas, ils incluent des fonctionnalités supplémentaires.

Modèle MobileNetV3

Cette famille de modèles utilise une architecture MobileNet V3 et a été entraînée à l'aide de données ImageNet. Ce modèle utilise un multiplicateur de 0,75 pour la profondeur (nombre de caractéristiques) dans les couches convolutives afin d'ajuster le compromis entre précision et latence. De plus, MobileNet V3 est disponible en deux tailles différentes, petite et grande, pour adapter le réseau aux cas d'utilisation de ressources faibles ou élevées.

Nom du modèle Forme de saisie Type de quantification Versions
MobileNet-V3 (petit) 224 x 224 Aucune (float32) Les plus récents
MobileNet-V3 (grand modèle) 224 x 224 Aucune (float32) Les plus récents

Benchmarks de tâches

Voici les benchmarks de tâches pour l'ensemble du pipeline, sur la base des modèles pré-entraînés ci-dessus. Le résultat correspond à la latence moyenne sur le Pixel 6 en utilisant le processeur / GPU.

Nom du modèle Latence du processeur Latence du GPU
MobileNet-V3 (petit format) 3,94 ms 7,83 ms
MobileNet-V3 (grand) 9,75 ms 9,08 ms