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 de ML Kit vous permettent désormais de remplacer les modèles par défaut par des modèles TensorFlow Lite personnalisés.

Les modèles d'étiquetage d'images et de détection d'objets et de suivi sont tous deux compatibles avec les 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 avec 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 toutes les solutions et tous les outils Google de machine learning sur les appareils.

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

Les avantages d'un modèle de classification d'images personnalisé avec ML Kit sont les suivants:

  • API de haut niveau faciles à utiliser : pas besoin de gérer les entrées/sorties de 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. ML Kit extrait les étiquettes des métadonnées du modèle TFLite et se charge de la mise en correspondance.
  • 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 Réduction de la taille des APK en téléchargeant des modèles à la demande Transférez les mises à jour de votre modèle sans republier votre application et effectuez facilement des tests A/B avec Firebase Remote Config.
  • Optimisé pour l'intégration avec les API Camera d'Android.

Concernant la détection et le suivi des objets:

  • Améliorez la précision de la classification en localisant les objets en premier, puis n'exécutez le classificateur que sur la zone d'image associée.
  • Proposez une expérience interactive en temps réel en offrant à vos utilisateurs des commentaires 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. Via TensorFlow Hub, nous proposons un ensemble de modèles approuvés, fournis par Google ou d'autres créateurs de modèles, qui répondent à ces critères.

Utiliser un modèle publié sur TensorFlow Hub

TensorFlow Hub propose un large éventail de modèles de classification d'images pré-entraînés (provenant de divers créateurs de modèles) pouvant être utilisés avec les API d'étiquetage d'images, 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 depuis la page d'informations 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 grouper un 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 correspond à vos besoins, il existe plusieurs façons d'entraîner votre propre modèle TensorFlow Lite. Certaines sont décrites et abordé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éer 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 complet d'un modèle
Convertir un modèle TensorFlow en modèle TensorFlow Lite
  • Entraîner un modèle avec TensorFlow, puis le convertir en 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 permettent également de télécharger des 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èle 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 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 concernant l'API Image Labeling ou 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 existant, 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 nos guides pour l'API Image Labeling ou 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 pré-entraîné de classification d'images TensorFlow Lite, à 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 pixels RVB.
    • Les données sont de type UINT8 ou FLOAT32. Si le Tensor d'entrée est de type FLOAT32, il doit spécifier les options de normalisation en associant des métadonnées.
    • Le Tensor comporte quatre dimensions : BxHxWxC, où :
      • B est la taille de lot. La valeur doit être égale à 1 (l'inférence sur les lots plus volumineux n'est pas acceptée).
      • L et H correspondent à la largeur et la hauteur d'entrée.
      • C correspond au nombre de canaux attendus. La valeur doit être 3.
  • Le modèle doit comporter au moins un Tensor de sortie avec N classes et deux ou quatre dimensions :
    • (1xN)
    • (1 x 1 x N)
  • Actuellement, seuls les modèles à une seule tête sont entièrement compatibles. Les modèles à plusieurs têtes peuvent générer 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 au modèle TensorFlow Lite.

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

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

  • Mappage d'étiquettes spécifiant le nom de chaque classe de sortie en tant que classe AssociatedFile avec le type TENSOR_AXIS_LABELS (sinon, seuls les index numériques de classe de sortie peuvent être renvoyés)
  • Un seuil de score par défaut au-dessous duquel les résultats sont considérés comme trop peu fiables pour être renvoyé, sous forme de ProcessUnit avec ScoreThresholdingOptions