Un modèle de détection d'objets est semblable à un modèle d'étiquetage d'image, mais au lieu d'attribuer des étiquettes à des images entières, il attribue des étiquettes à des régions d'images. Vous pouvez utilisent des modèles de détection d'objets pour reconnaître et localiser des objets dans une image, suivre les mouvements d'un objet à travers une série d'images.
Pour entraîner un modèle de détection d'objets, vous devez fournir à AutoML Vision Edge un ensemble de avec les étiquettes et limites des objets 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 la détection d'objets sur l'appareil.
La fonctionnalité d'entraînement de modèle deAvant 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 Guide sur l'inclusion dans le ML – AutoML
Si vous souhaitez simplement essayer AutoML Vision Edge, mais que vous ne disposez pas de votre propre téléchargez un exemple d'ensemble de données, par exemple:
- L'un des ensembles de données recommandés de TensorFlow.
- Un ensemble de données hébergé sur Kaggle.
1. Assembler vos données d'entraînement
Tout d'abord, vous devez constituer un ensemble de données d'entraînement composé d'images étiquetées. Gardez le consignes suivantes à l'esprit:
Les images doivent être dans l'un des formats suivants: JPEG, PNG, GIF, BMP ou ICO.
La taille de chaque image ne doit pas dépasser 30 Mo. Notez qu'AutoML Vision Edge effectue un scaling à la baisse la plupart des images pendant le prétraitement. Il n'y a donc généralement aucun avantage en termes de précision qui fournit des images en très haute résolution.
Incluez au moins 10 exemples, et de préférence 100 ou plus, pour chaque étiquette.
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 de des objets dans le monde réel. Ils risquent de ne pas être adaptés aux rayons X, aux dessins à la main, des documents scannés, des reçus, etc.
De plus, les modèles ne sont généralement pas capables de prédire les étiquettes que des humains ne peuvent pas attribuer. Donc, si un humain ne peut pas attribuer d'étiquettes en regardant l'image pendant 1 à 2 secondes, ne peut probablement pas être entraîné à le faire non plus.
Lorsque vos images d'entraînement sont prêtes, préparez-les à importer dans Google Cloud Deux possibilités s'offrent à vous :
Option 1: Cloud Storage avec l'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 d'objet et les régions de délimitation appropriés pour chaque image. Cette option est utile lorsque vous utilisez de grands ensembles de données.
Par exemple, importez vos images dans Cloud Storage, puis préparez un fichier CSV de type les éléments suivants:
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 en tant que coordonnées relatives dans l'image. Voir 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
.
du projet Google Cloud correspondant à votre projet Firebase.
Option 2: Images sans libellé
Étiquetez vos images d'entraînement et tracez des limites d'objet dans le Google Cloud après les avoir importés. Cette option n'est recommandée des ensembles de données. Reportez-vous à l'étape suivante.
2. Entraîner le modèle
Entraînez ensuite un modèle à l'aide de vos images :
Ouvrez les ensembles de données Vision. de la console Google Cloud. Sélectionnez votre projet lorsque vous y êtes invité.
Cliquez sur Nouvel ensemble de données, attribuez un nom à l'ensemble de données, 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 les images d'entraînement, une archive ZIP de vos images d'entraînement ou un fichier CSV contenant le fichier Cloud Storage vers les établissements dans lesquels vous les avez importés. Voir Assemblez 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, tracez des cadres de délimitation autour des objets que vous souhaitez reconnaître et étiqueter 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 de modèle à utiliser. L'entraînement est plus rapide, plus petit, s'ils ont besoin d'une faible latence ou d'une petite taille de package, ou des modèles plus lents et plus grands quand la justesse est le plus important. Budget par nœud-heure Le temps maximal, en heures de calcul, pour entraîner le modèle du modèle de ML. Plus la durée d'entraînement est longue, plus l'apprentissage du modèle de ML.
Notez que l'entraînement peut être effectué en moins de si le système détermine que le modèle est optimisé un entraînement supplémentaire n'améliorerait pas la précision. Seules les heures réellement utilisées vous sont facturées.
Temps d'entraînement habituels Très petits ensembles 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 images 18 heures
3. Évaluez le modèle :
Une fois l'entraînement terminé, vous pouvez cliquer sur l'onglet Évaluer pour voir les métriques de performances du modèle.
L'une des principales utilisations de cette page est de déterminer le seuil de confiance qui fonctionne les mieux adaptés à votre modèle. Le seuil de confiance représente le niveau de confiance minimum requis pour que le modèle attribue un libellé à une image. En déplaçant le seuil de confiance vous pouvez voir l'impact 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 ratio entre le nombre d'images correctement étiquetées par rapport au nombre d'images étiquetées par le modèle selon le seuil sélectionné. Lorsqu'un modèle présente une précision élevée, il attribue les étiquettes sont incorrectes moins souvent (moins de faux positifs).
Le rappel correspond au rapport entre le nombre d'images correctement étiquetées et le nombre le nombre d'images comportant du contenu que le modèle aurait dû étiqueter. Lorsqu'un modèle présente un taux de rappel élevé, il n'attribue aucune étiquette moins souvent (moins de faux négatifs).
Votre cas d'utilisation déterminera si vous devez optimiser pour la précision ou le rappel. 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 utiliserez ce seuil de confiance 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, parmi lesquelles vous pouvez choisir n'importe quelle combinaison : déployer le modèle pour la prédiction en ligne, publier le modèle dans Firebase ou télécharger le modèle et le regrouper avec votre application.
Déployer le modèle
Dans la section Test et utiliser, vous pouvez déployer votre modèle en ligne qui exécute votre modèle dans le cloud. Cette option est abordée dans le Documentation Cloud AutoML Les documents de ce site traitent des deux options restantes.
Publier le modèle
En publiant le modèle sur Firebase, vous pouvez le mettre à jour sans le publier Une nouvelle version de l'application, et vous pouvez utiliser Remote Config et A/B Testing pour diffuser dynamiquement différents modèles à différents ensembles d'utilisateurs.
Si vous choisissez de fournir le modèle uniquement en l'hébergeant avec Firebase, et non de l'intégrer à votre application, vous pouvez réduire la taille de téléchargement initiale de votre application. Gardez toutefois à l'esprit que si le modèle n'est pas fourni avec votre application, liées au modèle ne seront pas disponibles tant que votre application n'aura pas téléchargé 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 à partir de l'interface Test et utiliser de la console Google Cloud, puis importez le modèle sur le Page Modèle personnalisé de la console Firebase. C'est généralement le moyen le plus simple de publier un seul modèle.
- Publiez le modèle directement depuis votre projet Google Cloud sur Firebase en utilisant le SDK Admin. Cette méthode vous permet de publier plusieurs modèles par lot et aident à 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 devez spécifier l'identifiant de ressource du modèle, qui est une chaîne semblable à l'exemple suivant :
projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
PROJECT_NUMBER
Numéro de projet du bucket Cloud Storage contenant le du modèle de ML. Il peut s'agir de votre projet Firebase ou d'un autre Google Cloud projet. Vous trouverez cette valeur sur la page "Paramètres" Console Firebase ou tableau de bord de la console Google Cloud. MODEL_ID
L'ID du modèle, obtenu auprès 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 lier le modèle à votre application
En regroupant votre modèle avec votre application, vous pouvez vous assurer que les fonctionnalités ML de votre application fonctionnent toujours lorsque le modèle hébergé par Firebase n'est pas disponible.
Si vous publiez le modèle et l'associez à 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.