Un modèle de détection d'objets est semblable à un modèle d'étiquetage d'images, mais au lieu d'attribuer des étiquettes à des images entières, il les attribue à des régions d'images. Vous pouvez utiliser des modèles de détection d'objets pour reconnaître et localiser des objets dans une image, ou pour suivre les mouvements d'un objet dans une série d'images.
Pour entraîner un modèle de détection d'objets, vous fournissez à AutoML Vision Edge un ensemble d'images avec les libellés et les limites d'objets correspondants. AutoML Vision Edge utilise cet ensemble de données pour entraîner un nouveau modèle dans le cloud, que vous pouvez utiliser pour la détection d'objets sur l'appareil.
Avant de commencer
Si vous n'avez pas encore de projet Firebase, 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 :
- Il s'agit de l'un des ensembles de données recommandés de TensorFlow.
- Ensemble de données hébergé 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.
Lorsque vos images d'entraînement sont prêtes, préparez-les à être importées dans Google Cloud. Deux possibilités s'offrent à vous :
Option 1 : 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, ainsi que, le cas échéant, les libellés d'objet et les régions de délimitation corrects pour chaque image. Cette option est utile lorsque vous utilisez de grands ensembles de données.
Par exemple, importez vos images dans Cloud Storage et préparez un fichier CSV comme suit :
gs://your-training-data-bucket/001.jpg,accordion,0.2,0.4,,,0.3,0.5,, gs://your-training-data-bucket/001.jpg,tuba,0.2,0.5,,,0.4,0.8,, gs://your-training-data-bucket/002.jpg,accordion,0.2,0.2,,,0.9,0.8,,
Les cadres de délimitation des objets sont spécifiés sous forme de coordonnées relatives dans l'image. Consultez Mettre en forme un fichier CSV de données d'entraînement.
Les images doivent être stockées dans un bucket situé dans la région us-central1
et faisant partie du projet Google Cloud correspondant de votre projet Firebase.
Option 2 : Images sans libellé
Après avoir importé vos images d'entraînement, ajoutez-leur des libellés et dessinez les limites des objets dans la console Google Cloud. Cette option n'est recommandée que pour les petits ensembles de données. 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 vos images d'entraînement, 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.
Si vous n'avez pas importé de fichier CSV, dessinez des cadres de délimitation autour des objets que vous souhaitez reconnaître pour chaque image, puis étiquetez chaque objet.
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.