Modèles personnalisés avec ML Kit

Par défaut, les API de ML Kit utilisent les modèles de machine learning entraînés par Google. Ces modèles sont conçus pour couvrir un large éventail d'applications. Cependant, certains cas d'utilisation nécessitent des modèles plus ciblés. C'est pourquoi certaines API ML Kit vous permettent maintenant de remplacer les modèles par défaut par des modèles TensorFlow Lite personnalisés.

Les API Image Labeling et Object Detection & Tracking sont toutes deux compatibles avec des modèles de classification d'images personnalisés. Ils sont compatibles avec une sélection de modèles pré-entraînés de haute qualité sur TensorFlow Hub ou sur votre propre modèle personnalisé entraîné avec TensorFlow, AutoML Vision Edge ou TensorFlow Lite Model Maker.

Si vous avez besoin d'une solution personnalisée pour d'autres domaines ou cas d'utilisation, consultez la page Machine learning sur l'appareil afin d'obtenir des conseils sur l'ensemble des solutions et outils Google pour ce type de machine.

Avantages de l'utilisation de ML Kit avec des modèles personnalisés

Voici les avantages de l'utilisation d'un modèle de classification d'images personnalisé avec ML Kit:

  • API de haut niveau faciles à utiliser : vous n'avez pas besoin de gérer les entrées/sorties du modèle de bas niveau, de gérer le prétraitement/post-traitement des images ni de créer un pipeline de traitement.
  • Vous n'avez pas à vous soucier du mappage des étiquettes vous-même : ML Kit extrait les étiquettes des métadonnées du modèle TFLite et effectue le mappage pour vous.
  • Compatibilité avec des modèles personnalisés provenant d'un large éventail de sources, des modèles pré-entraînés publiés sur TensorFlow Hub aux nouveaux modèles entraînés avec TensorFlow, AutoML Vision Edge ou TensorFlow Lite Model Maker.
  • Compatible avec les modèles hébergés avec Firebase. Diminue la taille des APK en téléchargeant des modèles à la demande. Déployez les mises à jour du modèle sans republier votre application et effectuez des tests A/B faciles avec Firebase Remote Config.
  • Optimisé pour l'intégration avec les API Camera d'Android.

Et, plus précisément pour la détection et le suivi des objets:

  • Améliorez la précision de la classification en localisant d'abord les objets, puis n'exécutez le classificateur que sur la zone d'image associée.
  • Proposez une expérience interactive en temps réel en fournissant à vos utilisateurs des retours immédiats sur les objets détectés et classés.

Utiliser un modèle de classification d'images pré-entraîné

Vous pouvez utiliser des modèles TensorFlow Lite pré-entraînés, à condition qu'ils répondent à un ensemble de critères. Avec TensorFlow Hub, nous proposons un ensemble de modèles approuvés par Google ou d'autres créateurs qui répondent à ces critères.

Utiliser un modèle publié sur TensorFlow Hub

TensorFlow Hub offre une large gamme de modèles de classification d'images pré-entraînés, issus de divers créateurs de modèles, qui peuvent être utilisés avec les API d'étiquetage d'images et de détection d'objets et de suivi. Procédez comme suit :

  1. Choisissez un modèle dans la collection de modèles compatibles avec ML Kit.
  2. Téléchargez le fichier de modèle .tflite sur la page des détails du modèle. Le cas échéant, choisissez un format de modèle avec des métadonnées.
  3. Suivez les guides de l'API Image Labeling ou de l'API Object Detection and Tracking pour découvrir comment regrouper le fichier de modèle avec votre projet et l'utiliser dans votre application Android ou iOS.

Entraîner votre propre modèle de classification d'images

Si aucun modèle de classification d'images pré-entraîné ne répond à vos besoins, il existe différentes manières d'entraîner votre propre modèle TensorFlow Lite. Certaines sont décrites et expliquées plus en détail ci-dessous.

Options pour entraîner votre propre modèle de classification d'images
AutoML Vision Edge
  • Proposé via l'IA Google Cloud
  • Créez des modèles de classification d'images de pointe
  • Évaluez facilement les performances et la taille.
TensorFlow Lite Model Maker
  • Réentraîner un modèle (apprentissage par transfert) prend moins de temps et nécessite moins de données que l'entraînement à partir de zéro.
Convertir un modèle TensorFlow en modèle TensorFlow Lite
  • Entraîner un modèle avec TensorFlow, puis le convertir au format TensorFlow Lite

AutoML Vision Edge

Les modèles de classification d'images entraînés à l'aide d'AutoML Vision Edge sont compatibles avec les modèles personnalisés des API Image Labeling et Object Detection and Tracking. Ces API acceptent également le téléchargement de modèles hébergés avec le déploiement de modèles Firebase.

Pour en savoir plus sur l'utilisation d'un modèle entraîné avec AutoML Vision Edge dans vos applications Android et iOS, suivez les guides de modèles personnalisés pour chaque API, en fonction de votre cas d'utilisation.

TensorFlow Lite Model Maker

La bibliothèque TFLite Model Maker simplifie le processus d'adaptation et de conversion d'un modèle de réseau de neurones TensorFlow en données d'entrée particulières lors du déploiement de ce modèle pour les applications de ML sur l'appareil. Vous pouvez suivre le programme Colab pour la classification d'images avec TensorFlow Lite Model Maker.

Pour en savoir plus sur l'utilisation d'un modèle entraîné avec Model Maker dans vos applications Android et iOS, suivez les guides de l'API Image Labeling ou de l'API Object Detection and Tracking, selon votre cas d'utilisation.

Modèles créés à l'aide du convertisseur TensorFlow Lite

Si vous disposez d'un modèle de classification d'images TensorFlow, vous pouvez le convertir à l'aide du convertisseur TensorFlow Lite. Veuillez vous assurer que le modèle créé répond aux exigences de compatibilité ci-dessous.

Pour en savoir plus sur l'utilisation d'un modèle TensorFlow Lite dans vos applications Android et iOS, suivez les guides de l'API Image Labeling ou de l'API Object Detection and Tracking, selon votre cas d'utilisation.

Compatibilité des modèles TensorFlow Lite

Vous pouvez utiliser n'importe quel modèle de classification d'images TensorFlow Lite pré-entraîné, à condition qu'il réponde aux exigences suivantes:

Tensors

  • Le modèle ne doit comporter qu'un seul Tensor d'entrée avec les contraintes suivantes :
    • Les données sont au format de pixel RVB.
    • Les données sont de type UINT8 ou FLOAT32. Si le type de Tensor d'entrée est FLOAT32, il doit spécifier les NormalizationOptions en associant des Metadata.
    • Le Tensor comporte quatre dimensions : BxHxWxC, où :
      • B correspond à la taille de lot. Elle doit être égale à 1 (l'inférence sur des lots plus volumineux n'est pas prise en charge).
      • W et H correspondent à la largeur et à la hauteur d'entrée.
      • C correspond au nombre de canaux attendus. Il doit s'agir de 3.
  • Le modèle doit comporter au moins un Tensor de sortie avec N classes et deux ou quatre dimensions :
    • (1xN)
    • (1x1x1xN)
  • Actuellement, seuls les modèles à tête unique sont entièrement compatibles. Les modèles à plusieurs têtes peuvent produire des résultats inattendus.

Métadonnées

Vous pouvez ajouter des métadonnées au fichier TensorFlow Lite comme expliqué dans la section Ajouter des métadonnées à un modèle TensorFlow Lite.

Pour utiliser un modèle avec un Tensor d'entrée FLOAT32, vous devez spécifier les NormalizationOptions dans les métadonnées.

Nous vous recommandons également d'associer ces métadonnées au Tensor de sortie TensorMetadata:

  • Mappage de libellés spécifiant le nom de chaque classe de sortie, sous la forme d'un fichier AssociatedFile de type TENSOR_AXIS_LABELS (sinon, seuls les index de classe de sortie numériques peuvent être renvoyés)
  • Seuil de score par défaut en dessous duquel les résultats sont considérés comme ayant un niveau de confiance trop faible pour être renvoyés, en tant que ProcessUnit avec ScoreThresholdingOptions.