Ajouter des libellés à des images en utilisant un modèle AutoML Vision Edge

Ce guide de démarrage rapide vous présente les processus suivants :

  • Copier un ensemble d’images dans Google Cloud Storage.
  • Créer un fichier CSV répertoriant les images et leurs libellés.
  • Utiliser AutoML Vision pour créer un ensemble de données, entraîner un modèle AutoML Vision Edge personnalisé (classification d'images ou détection d'objets) et effectuer une prédiction
  • Exporter et déployer votre modèle AutoML Vision Edge pour l'un des nombreux types de périphériques, tel que les téléphones mobiles, les appareils basés sur ARM et Coral Edge TPU

Avant de commencer

Configurer votre projet

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Installez Google Cloud CLI.
  3. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  4. Créez ou sélectionnez un projet Google Cloud.

    • Créez un projet Google Cloud :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du projet Google Cloud que vous créez.

    • Sélectionnez le projet Google Cloud que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud.

  5. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  6. Activer les API AutoML and Cloud Storage :

    gcloud services enable storage-component.googleapis.com automl.googleapis.com storage-api.googleapis.com
  7. Installez Google Cloud CLI.
  8. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  9. Créez ou sélectionnez un projet Google Cloud.

    • Créez un projet Google Cloud :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du projet Google Cloud que vous créez.

    • Sélectionnez le projet Google Cloud que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud.

  10. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  11. Activer les API AutoML and Cloud Storage :

    gcloud services enable storage-component.googleapis.com automl.googleapis.com storage-api.googleapis.com
  12. Définissez la variable d'environnement PROJECT_ID sur l'ID de votre projet.
    export PROJECT_ID=PROJECT_ID
    Les noms de ressources et les appels d'API AutoML incluent votre ID de projet. La variable d’environnement PROJECT_ID constitue un moyen pratique de spécifier l’ID.

Créer un bucket Cloud Storage

Utilisez Cloud Shell, une ligne de commande Linux basée sur navigateur et connectée à votre projet Google Cloud Console, pour créer votre bucket Cloud Storage :

  1. Ouvrez Cloud Shell.

  2. Créez un bucket Google Cloud Storage. Le nom du bucket doit respecter le format suivant : project-id-vcm. La commande ci-dessous permet de créer un bucket de stockage nommé project-id-vcm dans la région us-central1. Pour obtenir la liste complète des régions disponibles, consultez la page Emplacement des buckets.

    gsutil mb -p ${PROJECT_ID} -c regional -l us-central1 gs://${PROJECT_ID}-vcm/

  3. Définissez la variable BUCKET.

    export BUCKET=${PROJECT_ID}-vcm

Copier les exemples d'images dans le bucket

Ensuite, copiez l'ensemble de données de fleurs utilisé dans cet article de blog Tensorflow. Les images sont stockées dans un bucket Cloud Storage public. Vous pouvez donc les copier directement dans votre propre bucket.

  1. Dans votre session Cloud Shell, entrez la commande suivante :

    gsutil -m cp -R gs://cloud-samples-data/ai-platform/flowers/ gs://${BUCKET}/img/
    

    La copie des fichiers prend environ 20 minutes.

Créer le fichier CSV

L'exemple d'ensemble de données contient un fichier CSV avec tous les emplacements d'images et les libellés pour chaque image. Vous allez l'utiliser pour créer votre propre fichier CSV :

  1. Mettez à jour le fichier CSV de sorte qu'il pointe vers les fichiers de votre bucket :

    gsutil cat gs://${BUCKET}/img/flowers/all_data.csv | sed "s:cloud-ml-data/img/flower_photos/:${BUCKET}/img/flowers/:" > all_data.csv
    
  2. Copiez le fichier CSV dans le bucket :

    gsutil cp all_data.csv gs://${BUCKET}/csv/
    

Créer votre ensemble de données

Accédez à l'interface utilisateur AutoML Vision pour commencer le processus de création de l'ensemble de données et d'entraînement de votre modèle.

Lorsque vous y êtes invité, veillez à sélectionner le projet que vous avez utilisé pour créer le bucket Cloud Storage.

  1. Sur la page "AutoML Vision", cliquez sur Nouvel ensemble de données :

    Nouveau bouton d'ensemble de données dans la console

  2. Spécifiez un nom pour cet ensemble de données (facultatif), sélectionnez l'objectif du modèle, puis cliquez sur Create dataset (Créer un ensemble de données) pour poursuivre le processus de création de l'ensemble de données.

    Nouveau champ de nom d'ensemble de données

  3. Sur l'écran Select files to import (Sélectionner les fichiers à importer), cochez la case d'option Select a CSV file on Cloud Storage (Sélectionner un fichier CSV sur Cloud Storage). Spécifiez l'URI Cloud Storage de votre fichier CSV. Le fichier CSV utilisé dans ce guide de démarrage rapide se situe à l'emplacement :

    • gs://${PROJECT_ID}-vcm/csv/all_data.csv

    Remplacez PROJECT_ID par l'ID de votre projet.

    Écran de sélection du fichier à importer

  4. Cliquez sur Continue (Continuer) pour lancer l'importation de l'image. Le processus d'importation prend quelques minutes. Une fois l'opération terminée, vous êtes dirigé sur la page suivante, qui présente des informations détaillées sur toutes les images identifiées dans votre ensemble de données, avec et sans libellés.

    Images répertoriées une fois l'importation terminée

Entraîner le modèle

  1. Une fois l'ensemble de données créé et traité, sélectionnez l'onglet Train (Entraînement) pour commencer l'entraînement du modèle.

    Sélection de l'onglet Train (Entraîner)

  2. Sélectionnez Démarrer l'entraînement pour continuer. Une fenêtre Train new model (Entraîner un nouveau modèle) s'ouvre et propose des options d'entraînement.

  3. Dans la section Define your model (Définir votre modèle) de la nouvelle fenêtre d'entraînement, modifiez le nom du modèle (facultatif) et cochez la case d'option Edge. Cliquez sur Continue (Continuer) pour passer à la section suivante.

    Section "Définir votre modèle" pour l'entraînement

  4. Dans la section Optimiser le modèle pour, acceptez l'option Meilleur compromis et sélectionnez Continuer.

  5. Dans la section Set a node hour budget (Définir un budget pour une heure de nœud), acceptez le budget d'heures de nœud recommandé (4).

    Entraînement d'un modèle Edge

  6. Sélectionnez Démarrer l'entraînement pour commencer l'entraînement de modèle.

    L'entraînement du modèle commence et prend environ une heure. Il peut s'arrêter avant l'heure de nœud que vous avez sélectionnée. Le service vous enverra un e-mail à la fin de l'entraînement ou si des erreurs se sont produites.

Déployer le modèle

Avant de pouvoir exporter votre modèle, vous devez le déployer pour utilisation.

  1. Pour déployer votre modèle, sélectionnez l'onglet Test et utilisation, puis cliquez sur l'option Déployer le modèle située à côté du nom du modèle.

  2. Dans la fenêtre qui suit, spécifiez un nœud sur lequel effectuer le déploiement et sélectionnez Deploy (Déployer) pour lancer le processus de déploiement du modèle.

    Choix des heures de nœud pour le déploiement

Vous recevrez une notification une fois le déploiement du modèle terminé.

Exporter le modèle

La dernière étape de l'utilisation d'un modèle AutoML Vision Edge consiste à exporter (optimiser et télécharger) et à déployer (utiliser) ce modèle.

Il existe plusieurs façons d'exporter et de déployer les modèles à utiliser pour les prédictions sur les appareils Edge.

Dans ce guide de démarrage rapide, vous allez utiliser Tensorflow Lite (TF Lite) à titre d'exemple. Les modèles TF Lite sont faciles à employer et conçus pour de nombreux cas d'utilisation.

  1. Dans la section Use your model (Utiliser votre modèle) de l'onglet Test et utilisation, sélectionnez l'option TF Lite.

    Exporter un modèle TF Lite

  2. Dans la fenêtre Export TF Lite package (Exporter un package TF Lite) qui s'affiche, spécifiez un emplacement de bucket Cloud Storage vers lequel exporter un package TF Lite, puis sélectionnez Export (Exporter). Le processus d'exportation prend généralement plusieurs minutes.

    Fenêtre latérale Exporter un modèle TF Lite

Dans l'emplacement de destination Google Cloud Storage, vous trouverez un dossier nommé avec l'horodatage et le format du modèle. Celui-ci contient les fichiers suivants :

  • Un fichier tflite (model.tflite)
  • Un fichier de dictionnaire (dict.txt)
  • Un fichier de métadonnées (tflite_metadata.json)

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page ne soient facturées sur votre compte Google Cloud, supprimez le projet Google Cloud contenant les ressources.

Étape suivante

Avec ces fichiers, vous pouvez suivre des tutoriels pour procéder à des déploiements sur des appareils Android, iOS et Raspberry Pi 3, ou sur le Web.

Autres options d'utilisation d'un modèle

  • Vous pouvez exporter le modèle en tant que modèle compatible avec CoreML (iOS/macOS). Après l'entraînement, vous pouvez exporter le modèle en sélectionnant l'option CoreML dans l'onglet Test et utilisation et en suivant le tutoriel CoreML.
  • Vous pouvez exporter le modèle pour l'exécuter sur Coral Edge TPU. Après l'entraînement, exportez le modèle en sélectionnant l'option Coral dans l'onglet Test et utilisation. Toutefois, en raison de l'incompatibilité actuelle avec notre modèle de détection d'objets, nous vous recommandons de n'exporter que les modèles de classification d'images pour Edge TPU (pour entraîner un modèle de détection d'objets pour Edge TPU, suivez l'une de ces tutoriels Google Colab. Après avoir exporté votre modèle, consultez la documentation officielle de Coral pour savoir comment lancer une inférence sur Edge TPU.
  • Vous pouvez exporter le modèle sous la forme d'un modèle SavedModel TensorFlow et l'utiliser avec un conteneur Docker. Après l'entraînement, vous pouvez exporter le modèle en sélectionnant l'option Conteneur dans l'onglet Test et utilisation, puis suivre le tutoriel sur les conteneurs Edge concernant l'exportation vers un conteneur.
  • Vous pouvez exporter le modèle pour l'utiliser dans un navigateur ou dans Node.js en tant que modèle TensorFlow.js. Après l'entraînement, vous pouvez exporter le modèle en sélectionnant l'option TensorFlow.js dans l'onglet Test et utilisation, puis suivre le tutoriel sur le modèle TensorFlow.js Edge.

Nettoyage

Si vous n'avez plus besoin de votre modèle personnalisé ou de votre ensemble de données, vous pouvez les supprimer.

Pour éviter des frais Google Cloud Platform inutiles, supprimez votre projet à l'aide de la console GCP si vous n'en avez plus besoin.

Annuler le déploiement du modèle

Des frais vous sont facturés pour le déploiement du modèle. Pour les éviter :

  1. Sélectionnez l'onglet Test & Use (Test et utilisation) situé juste en dessous de la barre de titre.
  2. Sélectionnez Remove deployment (Supprimer le déploiement) dans la bannière située sous le nom de votre modèle pour ouvrir la fenêtre d'annulation du déploiement.

    menu contextuel d'annulation de déploiement

  3. Sélectionnez Supprimer le déploiement pour annuler le déploiement du modèle.

    déploiement du modèle

  4. Vous recevrez un e-mail une fois l'annulation du déploiement du modèle terminée.

Supprimer votre projet (facultatif)

Pour éviter d'encourir des frais inutiles liés à Google Cloud Platform, supprimez votre projet à l'aide de Google Cloud Console si vous n'en avez plus besoin.