Pour entraîner un modèle d'étiquetage d'images, vous fournissez à AutoML Vision Edge un ensemble d'images et les étiquettes correspondantes. AutoML Vision Edge utilise cet ensemble de données pour entraîner un nouveau modèle dans le cloud, que vous pouvez utiliser pour le libellé d'images sur l'appareil dans votre application. (Pour obtenir des informations générales sur cette fonctionnalité, consultez la présentation.)
AutoML Vision Edge est un service Google Cloud. L'utilisation du service est soumise au Contrat de licence Google Cloud Platform et aux Conditions spécifiques au service, et facturée en conséquence. Pour en savoir plus sur la facturation, consultez la page Tarifs d'AutoML.
Avant de commencer
Si vous n'avez pas encore de projet Firebase ou Google Cloud, créez-en un dans la console Firebase.
Familiarisez-vous avec les consignes présentées dans le Guide sur l'inclusion dans le ML – AutoML.
Si vous souhaitez simplement essayer AutoML Vision Edge et que vous ne disposez pas de vos propres données d'entraînement, téléchargez un exemple d'ensemble de données, par exemple l'un des suivants :
- Ensemble de données d'images de fleurs officiel de TensorFlow
- Cet ensemble de données de l'alphabet de la langue des signes américaine (ASL)
Vous trouverez d'autres ensembles de données hébergés sur Kaggle.
1. Assembler vos données d'entraînement
Tout d'abord, vous devez créer un ensemble de données d'entraînement composé d'images libellées. Tenez compte des consignes suivantes :
Les images doivent être au format JPEG, PNG, GIF, BMP ou ICO.
La taille de chaque image ne doit pas dépasser 30 Mo. Notez qu'AutoML Vision Edge réduit la résolution de la plupart des images lors du prétraitement. Il n'est donc généralement pas plus précis de fournir des images à très haute résolution.
Incluez au moins 10 exemples de chaque libellé, et de préférence 100 ou plus.
Incluez plusieurs angles, résolutions et arrière-plans pour chaque libellé.
Les données d'entraînement doivent être aussi proches que possible des données sur lesquelles les prédictions sont fondées. Par exemple, si votre cas pratique implique des images floues en basse résolution (comme celles d'une caméra de sécurité), vos données d'entraînement doivent être composées d'images floues à basse résolution.
Les modèles générés par AutoML Vision Edge sont optimisés pour les photographies d'objets dans le monde réel. Les documents tels que radiographies, dessins à la main, numérisations, reçus, etc. ne sont pas adaptés.
De plus, les modèles ne peuvent généralement pas prédire les libellés que les humains ne peuvent pas attribuer. Ainsi, si un humain ne peut pas attribuer d'étiquettes en regardant l'image pendant une ou deux secondes, le modèle ne pourra probablement pas être entraîné à le faire non plus.
Une fois vos images d'entraînement prêtes, préparez-les pour l'importation dans Firebase. Vous avez trois possibilités :
Option 1 : Archive ZIP structurée
Organisez vos images d'entraînement dans des répertoires, chacun portant le nom d'une étiquette et contenant des images qui sont des exemples de cette étiquette. Compressez ensuite la structure du répertoire dans une archive ZIP.
Les noms de répertoire de cette archive ZIP peuvent comporter jusqu'à 32 caractères ASCII et ne peuvent contenir que des caractères alphanumériques et le trait de soulignement (_
).
Exemple :
my_training_data.zip |____accordion | |____001.jpg | |____002.jpg | |____003.jpg |____bass_guitar | |____hofner.gif | |____p-bass.png |____clavier |____well-tempered.jpg |____well-tempered (1).jpg |____well-tempered (2).jpg
Option 2 : Cloud Storage avec un index CSV
Importez vos images d'entraînement dans Google Cloud Storage et préparez un fichier CSV listant l'URL de chaque image et, éventuellement, les libellés corrects pour chaque image. Cette option est utile lorsque vous utilisez des ensembles de données très volumineux.
Par exemple, importez vos images dans Cloud Storage et préparez un fichier CSV comme suit :
gs://your-training-data-bucket/001.jpg,accordion gs://your-training-data-bucket/002.jpg,accordion gs://your-training-data-bucket/003.jpg,accordion gs://your-training-data-bucket/hofner.gif,bass_guitar gs://your-training-data-bucket/p-bass.png,bass_guitar gs://your-training-data-bucket/well-tempered.jpg,clavier gs://your-training-data-bucket/well-tempered%20(1).jpg,clavier gs://your-training-data-bucket/well-tempered%20(2).jpg,clavier
Les images doivent être stockées dans un bucket qui fait partie du projet Google Cloud correspondant à votre projet Firebase.
Pour en savoir plus sur la préparation du fichier CSV, consultez Préparer les données d'entraînement dans la documentation Cloud AutoML Vision.
Option 3 : Images sans libellé
Après avoir importé vos images d'entraînement dans la console Firebase, étiquetez-les individuellement ou dans un fichier ZIP non structuré. Reportez-vous à l'étape suivante.
2. Entraîner le modèle
Ensuite, entraînez un modèle à l'aide de vos images :
Ouvrez la page Ensembles de données Vision dans la console Google Cloud. Lorsque vous y êtes invité, sélectionnez votre projet.
Cliquez sur Nouvel ensemble de données, donnez-lui un nom, sélectionnez le type de modèle que vous souhaitez entraîner, puis cliquez sur Créer un ensemble de données.
Dans l'onglet Importer de votre ensemble de données, importez une archive ZIP de vos images d'entraînement ou un fichier CSV contenant les emplacements Cloud Storage où vous les avez importées. Consultez Assembler vos données d'entraînement.
Une fois la tâche d'importation terminée, utilisez l'onglet Images pour vérifier les données d'entraînement et libeller les images sans libellé.
Dans l'onglet Entraînement, cliquez sur Démarrer l'entraînement.
Nommez le modèle et sélectionnez le type de modèle Edge.
Configurez les paramètres d'entraînement suivants, qui régissent les performances du modèle généré :
Optimiser le modèle pour… Configuration du modèle à utiliser. Vous pouvez entraîner des modèles plus rapides et plus petits lorsque la faible latence ou la petite taille du package sont importantes, ou des modèles plus lents et plus grands lorsque la précision est primordiale. Budget en nœuds-heure Temps maximal (en heures de calcul) à consacrer à l'entraînement du modèle. Plus le temps d'entraînement est long, plus le modèle est généralement précis.
Notez que l'entraînement peut être terminé en moins de temps que prévu si le système détermine que le modèle est optimisé et qu'un entraînement supplémentaire n'améliorerait pas la précision. Vous n'êtes facturé que pour les heures réellement utilisées.
Durées d'entraînement typiques Ensembles très petits 1 heure 500 images 2 heures 1 000 images 3 heures 5 000 images 6 heures 10 000 images 7 heures 50 000 images 11 heures 100 000 images 13 heures 1 000 000 d'images 18 heures
3. Évaluez le modèle :
Une fois l'entraînement terminé, vous pouvez cliquer sur l'onglet Évaluer pour afficher les métriques de performances du modèle.
Cette page est particulièrement utile pour déterminer le seuil de confiance le plus adapté à votre modèle. Le seuil de confiance est le niveau de confiance minimum requis pour que le modèle attribue un libellé à une image. Vous pouvez déplacer le curseur Seuil de confiance pour voir l'effet des différents seuils sur les performances du modèle. Les performances du modèle sont mesurées à l'aide de deux métriques : la précision et le rappel.
Dans le contexte de la classification d'images, la précision correspond au rapport entre le nombre d'images correctement libellées et le nombre d'images libellées par le modèle en fonction du seuil sélectionné. Lorsqu'un modèle présente une précision élevée, il attribue moins souvent des libellés incorrects (moins de faux positifs).
Le rappel correspond au rapport entre le nombre d'images correctement étiquetées et le nombre d'images dont le contenu aurait dû pouvoir être étiqueté par le modèle. Lorsqu'un modèle présente un rappel élevé, il échoue moins souvent à attribuer une étiquette (moins de faux négatifs).
Le choix entre la précision et le rappel dépendra de votre cas d'utilisation. Pour en savoir plus, consultez le guide du débutant pour AutoML Vision et le guide sur l'inclusion dans le ML – AutoML.
Lorsque vous trouvez un seuil de confiance qui produit des métriques qui vous conviennent, notez-le. Vous l'utiliserez pour configurer le modèle dans votre application. Vous pouvez utiliser cet outil à tout moment pour obtenir une valeur de seuil appropriée.
4. Publier ou télécharger votre modèle
Si vous êtes satisfait des performances du modèle et que vous souhaitez l'utiliser dans une application, vous avez trois options, que vous pouvez combiner : déployer le modèle pour la prédiction en ligne, publier le modèle sur Firebase ou télécharger le modèle et l'inclure dans votre application.
Déployer le modèle
Dans l'onglet Test et utilisation de votre ensemble de données, vous pouvez déployer votre modèle pour la prédiction en ligne, qui exécute votre modèle dans le cloud. Cette option est décrite dans la documentation Cloud AutoML. La documentation de ce site traite des deux autres options.
Publier le modèle
En publiant le modèle sur Firebase, vous pouvez le mettre à jour sans publier une nouvelle version de l'application. Vous pouvez également utiliser Remote Config et A/B Testing pour diffuser dynamiquement différents modèles à différents ensembles d'utilisateurs.
Si vous choisissez de ne fournir le modèle qu'en l'hébergeant avec Firebase, et non en l'incluant dans votre application, vous pouvez réduire la taille du téléchargement initial de votre application. Toutefois, gardez à l'esprit que si le modèle n'est pas inclus dans votre application, toute fonctionnalité associée au modèle ne sera disponible qu'une fois que votre application aura téléchargé le modèle pour la première fois.
Pour publier votre modèle, vous pouvez utiliser l'une des deux méthodes suivantes :
- Téléchargez le modèle TF Lite depuis la page Test et utilisation de votre ensemble de données dans la console Google Cloud, puis importez-le sur la page Modèle personnalisé de la console Firebase. Il s'agit généralement du moyen le plus simple de publier un seul modèle.
- Publiez le modèle directement depuis votre projet Google Cloud vers Firebase à l'aide du SDK Admin. Vous pouvez utiliser cette méthode pour publier plusieurs modèles par lot ou pour créer des pipelines de publication automatisés.
Pour publier le modèle avec l'API de gestion des modèles du SDK Admin :
Publiez le modèle.
Vous devrez spécifier l'identifiant de ressource du modèle, qui est une chaîne de caractères semblable à l'exemple suivant :
projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
PROJECT_NUMBER
Numéro du projet du bucket Cloud Storage contenant le modèle. Il peut s'agir de votre projet Firebase ou d'un autre projet Google Cloud. Vous trouverez cette valeur sur la page "Paramètres" de la console Firebase ou du tableau de bord de la console Google Cloud. MODEL_ID
ID du modèle, que vous avez obtenu à partir de l'API AutoML Cloud. Python
# First, import and initialize the SDK. # Get a reference to the AutoML model source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format( # See above for information on these values. project_number, model_id )) # Create the model object tflite_format = ml.TFLiteFormat(model_source=source) model = ml.Model( display_name="example_model", # This is the name you will use from your app to load the model. tags=["examples"], # Optional tags for easier management. model_format=tflite_format) # Add the model to your Firebase project and publish it new_model = ml.create_model(model) new_model.wait_for_unlocked() ml.publish_model(new_model.model_id)
Node.js
// First, import and initialize the SDK. (async () => { // Get a reference to the AutoML model. See above for information on these // values. const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`; // Create the model object and add the model to your Firebase project. const model = await ml.createModel({ displayName: 'example_model', // This is the name you use from your app to load the model. tags: ['examples'], // Optional tags for easier management. tfliteModel: { automlModel: automlModel }, }); // Wait for the model to be ready. await model.waitForUnlocked(); // Publish the model. await ml.publishModel(model.modelId); process.exit(); })().catch(console.error);
Télécharger et regrouper le modèle avec votre application
En regroupant votre modèle avec votre application, vous pouvez vous assurer que les fonctionnalités de ML de votre application fonctionnent toujours lorsque le modèle hébergé sur Firebase n'est pas disponible.
Si vous publiez le modèle et l'incluez dans votre application, celle-ci utilisera la dernière version disponible.
Pour télécharger votre modèle, cliquez sur TF Lite sur la page Test et utilisation de votre ensemble de données.
Étapes suivantes
Maintenant que vous avez publié ou téléchargé le modèle, découvrez comment l'utiliser dans vos applications iOS et Android.