ML.ANNOTATE_IMAGE
para extrair insights de dados de imagem não estruturados. Ao trabalhar com
grandes repositórios de imagens, talvez seja necessário
categorizar automaticamente os arquivos, detectar objetos específicos ou extrair propriedades
de imagem para tornar o conjunto de dados pesquisável. Ao criar um modelo remoto do BigQuery ML que se conecta à API Cloud Vision, é possível realizar essas tarefas de análise de imagens diretamente em uma tabela de objetos do BigQuery usando SQL padrão, eliminando a necessidade de mover arquivos ou criar pipelines de dados complexos.
Objetivos
- Criar um conjunto de dados e uma conexão de recurso.
- Crie uma tabela de objetos para arquivos de imagem armazenados no Cloud Storage.
- Crie um modelo remoto que se conecte à API Cloud Vision.
- Anotar imagens usando a função
ML.ANNOTATE_IMAGE.
Custos
Neste documento, você vai usar os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Antes de começar
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud 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 Google Cloud 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.
Funções exigidas
Para conseguir as permissões necessárias para concluir o tutorial, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Criar e usar conjuntos de dados, tabelas e modelos do BigQuery:
Editor de dados do BigQuery (
roles/bigquery.dataEditor) -
Criar, delegar e usar conexões do BigQuery:
Administrador de conexão do BigQuery (
roles/bigquery.connectionAdmin) -
Conceder permissões à conta de serviço da conexão:
Administrador do IAM do projeto (
roles/resourcemanager.projectIamAdmin) -
Criar jobs do BigQuery:
Usuário de jobs do BigQuery (
roles/bigquery.jobUser)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Criar um conjunto de dados
Para criar um conjunto de dados do BigQuery, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página BigQuery.
No painel à esquerda, clique em Explorer:

Se o painel esquerdo não aparecer, clique em Expandir painel esquerdo para abrir.
No Explorer, expanda o projeto e clique em Conjuntos de dados.
Na página Conjuntos de dados, clique em Criar conjunto de dados.
No painel Criar conjunto de dados, faça o seguinte:
Para o código do conjunto de dados, insira
bqml_tutorial.Em Local dos dados, selecione EUA.
Não altere as outras configurações padrão.
Clique em Criar conjunto de dados.
bq
Para criar um novo conjunto de dados, use o
comando bq mk --dataset.
Crie um conjunto de dados chamado
bqml_tutorialcom o local de dados definido comoUS:bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Confirme se o conjunto de dados foi criado:
bq ls
API
Chame o método datasets.insert com um recurso de conjunto de dados definido:
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
criar uma tabela de objetos
Crie uma tabela de objetos chamada my_object_table
com conteúdo de imagens. Com a tabela de objetos, é possível analisar as imagens sem movê-las do Cloud Storage.
O bucket do Cloud Storage usado pela tabela de objetos precisa estar no
mesmo projeto em que você planeja criar o modelo e chamar a
função ML.ANNOTATE_IMAGE. Se você quiser chamar a
função ML.ANNOTATE_IMAGE em um projeto diferente
que contém o bucket do Cloud Storage usado pela tabela de objetos, é preciso
conceder o papel de Administrador do Storage no nível do bucket
Criar um modelo
Crie um modelo remoto chamado my_model com um
REMOTE_SERVICE_TYPE de
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');
Substitua PROJECT_ID pelo ID do projeto.
Anotar imagens
Use a função ML.ANNOTATE_IMAGE com os
recursos
de sua preferência para anotar imagens na tabela de objetos.
Para rotular os itens mostrados nas imagens, use a função
ML.ANNOTATE_IMAGEcom o recursolabel_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) );
Substitua
PROJECT_IDpelo ID do projeto.Para detectar rostos mostrados nas imagens e retornar atributos de imagem, como cores dominantes, use a função
ML.ANNOTATE_IMAGEcom os recursosface_detectioneimage_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) );
Substitua
PROJECT_IDpelo ID do projeto.
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Excluir o projeto
Console
- No console Google Cloud , acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
gcloud
Exclua um projeto do Google Cloud :
gcloud projects delete PROJECT_ID
Excluir recursos individuais
Se você planeja manter o projeto usado neste tutorial, evite mais cobranças excluindo os recursos individuais que criou:
Exclua o conjunto de dados: isso também remove o modelo remoto e a tabela de objetos que você criou nele.
- No console do Google Cloud , acesse o BigQuery Studio.
- No painel Explorer, expanda o projeto e selecione o conjunto de dados que você criou.
- Clique em Ver ações e em Excluir.
- Na caixa de diálogo, digite
deletee clique em Excluir.
Exclua a conexão:
- No painel Explorer, expanda o nome do projeto e clique em Conexões.
- Clique no ícone Ver ações ao lado da conexão que você criou e selecione Excluir.
- Na caixa de diálogo, clique em Excluir para confirmar.
A seguir
- Para mais informações sobre inferência de modelo no BigQuery ML, consulte Visão geral de inferência de modelo.
- Para mais informações sobre como usar as APIs da IA do Google Cloud para executar tarefas de IA, consulte Visão geral do aplicativo de IA.
- Para informações sobre as instruções e funções SQL compatíveis com modelos de IA generativa, consulte Jornadas do usuário completas para modelos de IA generativa.
- Teste o notebook de análise de dados não estruturados com o BigQuery ML e os modelos pré-treinados da Gemini Enterprise Agent Platform.