Détecter les thèmes d'une image à l'aide de la ligne de commande

Cette page explique comment envoyer trois requêtes de détection de caractéristiques et d'annotation à l'API Vision à l'aide de l'interface REST et de la commande curl.

L'API Vision permet d'intégrer facilement les technologies de reconnaissance visuelle de Google dans des applications de développement. Vous pouvez envoyer les données d'image et les types de fonctionnalités demandées à l'API Vision, qui enverra en retour la réponse correspondante en fonction des attributs d'image recherchés. Pour plus d'informations sur les fonctionnalités proposées, consultez la liste de toutes les fonctionnalités de l'API Vision.

Avant de commencer

  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 sans frais pour exécuter, tester et déployer des charges de travail.
  2. Installez la Google Cloud CLI.

  3. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  4. Pour initialiser la gcloud CLI, exécutez la commande suivante :

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

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • 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 .

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

  7. Activez l'API Vision :

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    gcloud services enable vision.googleapis.com
  8. Attribuez des rôles à votre compte utilisateur. Exécutez la commande suivante une fois pour chacun des rôles IAM suivants : roles/storage.objectViewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet
    • USER_IDENTIFIER : identifiant de votre compte d'utilisateur. Par exemple, myemail@example.com.
    • ROLE : rôle IAM que vous accordez à votre compte utilisateur.
  9. Installez la Google Cloud CLI.

  10. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  11. Pour initialiser la gcloud CLI, exécutez la commande suivante :

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

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • 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 .

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

  14. Activez l'API Vision :

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    gcloud services enable vision.googleapis.com
  15. Attribuez des rôles à votre compte utilisateur. Exécutez la commande suivante une fois pour chacun des rôles IAM suivants : roles/storage.objectViewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet
    • USER_IDENTIFIER : identifiant de votre compte d'utilisateur. Par exemple, myemail@example.com.
    • ROLE : rôle IAM que vous accordez à votre compte utilisateur.

Créer une requête d'annotation d'image

Après avoir suivi la procédure de la section Avant de commencer, vous pouvez utiliser l'API Vision pour annoter un fichier image.

Dans cet exemple, la commande curl est utilisée pour envoyer à l'API Vision une requête portant sur l'image suivante :

URI Cloud Storage :

gs://cloud-samples-data/vision/using_curl/shanghai.jpeg

URL HTTPS :

https://console.cloud.google.com/storage/browser/cloud-samples-data/vision/using_curl/shanghai.jpeg

Image d'une rue de Shanghai
Crédit image : Steve Long sur Unsplash

Créer la requête JSON

Le fichier request.json suivant montre comment demander trois caractéristiques images:annotate et limiter les résultats dans la réponse.

Créez un fichier de requête JSON avec le texte suivant, puis enregistrez-le sous la forme d'un fichier texte brut nommé request.json dans votre répertoire de travail :

request.json

{
  "requests": [
    {
      "image": {
        "source": {
          "imageUri": "gs://cloud-samples-data/vision/using_curl/shanghai.jpeg"
        }
      },
      "features": [
        {
          "type": "LABEL_DETECTION",
          "maxResults": 3
        },
        {
          "type": "OBJECT_LOCALIZATION",
          "maxResults": 1
        },
        {
          "type": "TEXT_DETECTION",
          "maxResults": 1,
          "model": "builtin/latest"
        }
      ]
    }
  ]
}

Envoyer la requête

Utilisez curl et le corps du contenu de request.json pour envoyer la requête à l'API Vision. Saisissez les lignes suivantes depuis l'invite de ligne de commande :

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "x-goog-user-project: PROJECT_ID" \
    -H "Content-Type: application/json; charset=utf-8" \
    https://vision.googleapis.com/v1/images:annotate -d @request.json

Interpréter la réponse

Vous devriez obtenir une réponse JSON semblable à celle présentée ci-dessous.

Dans le corps JSON de la requête, maxResults était spécifié pour chaque type d'annotation. Par conséquent, les résultats obtenus dans le fichier JSON de la réponse sont les suivants :

Résultats de la détection de thèmes

  1. Description : "People" (Personnes), score : 0,950
  2. Description : "Street" (Rue), score : 0,891
  3. Description : "Mode of transport" (Mode de transport), score : 0,890
Image d'une rue de Shanghai contenant les résultats de la détection des thèmes
Crédit image : Steve Long sur Unsplash (annotations ajoutées)

Résultats de la détection de texte

  • Texte : 牛牛面馆\n
  • Sommets : (x : 159, y : 212), (x : 947, y : 212), (x : 947, y : 354), (x : 159, y : 354)
Image d'une rue de Shanghai contenant des résultats de détection de texte
Crédit image : Steve Long sur Unsplash (annotations ajoutées)

Résultats de la détection d'objets

  • Nom : "Person" (Personne), score : 0,944
  • Sommets normalisés : (x : 0,260, y : 0,468), (x : 0,407, y : 0,468), (x : 0,407, y : 0,895), (x : 0,260, y : 0,895)
Image d'une rue de Shanghai contenant les résultats de la détection d'objets
Crédit image : Steve Long sur Unsplash (annotations ajoutées)

Félicitations ! Vous avez envoyé votre première requête à l'API Vision.

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre compte Google Cloud , supprimez le projet Google Cloud qui les contient.

Facultatif : Révoquez les identifiants de la CLI gcloud.

gcloud auth revoke

Étapes suivantes