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.
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:
- Android – Exemple de code – Guide
- Python – Exemple de code – Guide
- Web – Exemple de code – Guide
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:
|
L'outil d'intégration d'images génère une liste de représentations vectorielles continues composées des éléments suivants:
|
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 |