ML.ANNOTATE_IMAGE pour extraire des insights à partir de données d'image non structurées. Lorsque vous travaillez avec de grands dépôts d'images, vous devrez peut-être catégoriser automatiquement les fichiers, détecter des objets spécifiques ou extraire les propriétés des images pour rendre l'ensemble de données consultable. En créant un modèle distant BigQuery ML qui se connecte à l'API Cloud Vision, vous pouvez effectuer ces tâches d'analyse d'images directement sur une table d'objets BigQuery à l'aide du langage SQL standard. Vous n'avez ainsi pas besoin de déplacer des fichiers ni de créer des pipelines de données complexes.
Objectifs
- Créez un ensemble de données et une connexion de ressource.
- Créez une table d'objets pour les fichiers image stockés dans Cloud Storage.
- Créez un modèle distant qui se connecte à l'API Cloud Vision.
- Annotez des images à l'aide de la fonction
ML.ANNOTATE_IMAGE.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Cloud de Confiance by S3NS :
Avant de commencer
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
Enable the BigQuery, BigQuery Connection API, and Cloud Vision API APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
Rôles requis
Pour obtenir les autorisations nécessaires pour suivre ce tutoriel, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :
-
Créer et utiliser des ensembles de données, des tables et des modèles BigQuery : Éditeur de données BigQuery (
roles/bigquery.dataEditor) -
Créer, déléguer et utiliser des connexions BigQuery : Administrateur de connexion BigQuery (
roles/bigquery.connectionAdmin) -
Accorder des autorisations au compte de service de la connexion : Administrateur de projet IAM (
roles/resourcemanager.projectIamAdmin) -
Pour créer des jobs BigQuery : Utilisateur de job BigQuery (
roles/bigquery.jobUser)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Créer un ensemble de données
Pour créer un ensemble de données BigQuery, sélectionnez l'une des options suivantes :
Console
Dans la console Cloud de Confiance , accédez à la page BigQuery.
Dans le volet de gauche, cliquez sur Explorateur :

Si le volet de gauche ne s'affiche pas, cliquez sur Développer le volet de gauche pour l'ouvrir.
Dans l'explorateur, développez votre projet, puis cliquez sur Ensembles de données.
Sur la page Ensembles de données, cliquez sur Créer un ensemble de données.
Dans le volet Créer un ensemble de données, procédez comme suit :
Dans le champ ID de l'ensemble de données, saisissez
bqml_tutorial.Pour Emplacement des données, sélectionnez US.
Ne modifiez pas les autres paramètres par défaut.
Cliquez sur Créer un ensemble de données.
bq
Pour créer un ensemble de données, utilisez la commande bq mk --dataset.
Créez un ensemble de données nommé
bqml_tutorialavec l'emplacement des données défini surUS:bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Vérifiez que l'ensemble de données a été créé :
bq ls
API
Appelez la méthode datasets.insert avec une ressource d'ensemble de données définie :
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Créer une table d'objets
Créez une table d'objets nommée my_object_table contenant des images. La table d'objets permet d'analyser les images sans les déplacer depuis Cloud Storage.
Le bucket Cloud Storage utilisé par la table d'objets doit se trouver dans le même projet que celui dans lequel vous prévoyez de créer le modèle et d'appeler la fonction ML.ANNOTATE_IMAGE. Si vous souhaitez appeler la fonction ML.ANNOTATE_IMAGE dans un projet différent de celui qui contient le bucket Cloud Storage utilisé par la table d'objets, vous devez attribuer le rôle d'Administrateur de l'espace de stockage au niveau du bucket.
Créer un modèle
Créez un modèle distant nommé my_model avec un REMOTE_SERVICE_TYPE de valeur CLOUD_AI_VISION_V1 :
CREATE OR REPLACE MODEL `PROJECT_ID.bqml_tutorial.my_model` REMOTE WITH CONNECTION DEFAULT OPTIONS (REMOTE_SERVICE_TYPE = 'CLOUD_AI_VISION_V1');
Remplacez PROJECT_ID par l'ID du projet.
Annoter des images
Utilisez la fonction ML.ANNOTATE_IMAGE avec vos caractéristiques préférées pour annoter les images de la table d'objets.
Pour étiqueter les éléments affichés dans les images, utilisez la fonction
ML.ANNOTATE_IMAGEavec la fonctionnalitélabel_detection:SELECT * FROM ML.ANNOTATE_IMAGE( MODEL `PROJECT_ID.bqml_tutorial.my_model`, TABLE `PROJECT_ID.bqml_tutorial.my_object_table`, STRUCT(['label_detection'] AS vision_features) );
Remplacez
PROJECT_IDpar l'ID du projet.Pour détecter les visages affichés sur les images et renvoyer des attributs d'image, tels que les couleurs dominantes, utilisez la fonction
ML.ANNOTATE_IMAGEavec les fonctionnalitésface_detectionetimage_properties:SELECT * FROM ML.ANNOTATE_IMAGE( MODEL `PROJECT_ID.bqml_tutorial.my_model`, TABLE `PROJECT_ID.bqml_tutorial.my_object_table`, STRUCT(['face_detection', 'image_properties'] AS vision_features) );
Remplacez
PROJECT_IDpar l'ID du projet.
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
Supprimer le projet
Console
- Dans la console Cloud de Confiance , accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.
gcloud
Supprimer un projet Cloud de Confiance :
gcloud projects delete PROJECT_ID
Supprimer des ressources individuelles
Si vous prévoyez de conserver le projet que vous avez utilisé pour ce tutoriel, vous pouvez éviter des frais supplémentaires en supprimant les ressources individuelles que vous avez créées :
Supprimez l'ensemble de données : la suppression de l'ensemble de données supprime également le modèle distant et la table d'objets que vous avez créés à l'intérieur.
- Dans la console Cloud de Confiance , accédez à BigQuery Studio.
- Dans le volet Explorateur, développez votre projet et sélectionnez l'ensemble de données que vous avez créé.
- Cliquez sur Afficher les actions, puis sur Supprimer.
- Dans la boîte de dialogue, saisissez
delete, puis cliquez sur Supprimer.
Supprimez la connexion :
- Dans le volet Explorateur, développez le nom de votre projet, puis cliquez sur Connexions.
- Cliquez sur l'icône Afficher les actions à côté de la connexion que vous avez créée, puis sélectionnez Supprimer.
- Dans la boîte de dialogue, cliquez sur Supprimer pour confirmer.
Étapes suivantes
- Pour en savoir plus sur l'inférence de modèle dans BigQuery ML, consultez la présentation de l'inférence de modèle.
- Pour en savoir plus sur l'utilisation des API Cloud AI pour effectuer des tâches d'IA, consultez la page Présentation des applications d'IA.
- Pour en savoir plus sur les instructions et les fonctions SQL compatibles avec les modèles d'IA générative, consultez Parcours utilisateur de bout en bout pour les modèles d'IA générative.
- Essayez le notebook Analyses de données non structurées avec des modèles pré-entraînés BigQuery ML et Gemini Enterprise Agent Platform.