Analizzare le immagini
Questo tutorial mostra come ottenere insight da dati di immagini non strutturati integrando BigQuery ML con Gemini. Nel tutorial, crei un modello remoto basato su gemini-2.5-flash e utilizzi la funzione AI.GENERATE_TEXT per estrarre automaticamente i metadati, come titoli e anni di uscita, da una raccolta di locandine di film.
Obiettivi
- Crea una tabella degli oggetti BigQuery sui dati delle immagini in un bucket Cloud Storage.
- Crea un modello remoto BigQuery ML che abbia come target il modello
gemini-2.5-flashdi Gemini Enterprise Agent Platform. - Utilizza il modello remoto con la funzione
AI.GENERATE_TEXTper identificare i film associati a un insieme di locandine.
Costi
Questo tutorial utilizza i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto, utilizza il calcolatore prezzi.
Al termine delle attività descritte in questo documento, puoi evitare l'addebito di ulteriori costi eliminando le risorse che hai creato. Per saperne di più, consulta Esegui la pulizia.
Prima di iniziare
-
Nella console Google Cloud , nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud .
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico. Puoi selezionare qualsiasi progetto per il quale ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'autorizzazioneresourcemanager.projects.create. Scopri come concedere i ruoli.
-
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .
-
Abilita le API BigQuery, BigQuery Connection e Agent Platform.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
Ruoli obbligatori
Per eseguire questo tutorial, devi disporre dei seguenti ruoli Identity and Access Management (IAM):
- Crea e utilizza set di dati, connessioni e modelli BigQuery:
Amministratore BigQuery (
roles/bigquery.admin). - Concedi le autorizzazioni al account di servizio della connessione: Project IAM Admin
(
roles/resourcemanager.projectIamAdmin).
Questi ruoli predefiniti contengono le autorizzazioni necessarie per eseguire le attività descritte in questo documento. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
- Crea un set di dati:
bigquery.datasets.create - Crea, delega e utilizza una connessione:
bigquery.connections.* - Imposta la connessione predefinita:
bigquery.config.* - Imposta le autorizzazioni del account di servizio:
resourcemanager.projects.getIamPolicyeresourcemanager.projects.setIamPolicy - Crea una tabella degli oggetti:
bigquery.tables.createebigquery.tables.update - Crea un modello ed esegui l'inferenza:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.models.updateMetadata
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Prepara l'ambiente
Per eseguire l'inferenza BigQuery ML sulle tabelle di oggetti utilizzando gemini-2.5-flash, devi assegnare una prenotazione BigQuery al tuo progetto. Se al tuo progetto è già assegnata una prenotazione, puoi saltare questo passaggio.
Crea una prenotazione
Nella console Google Cloud , vai alla pagina BigQuery.
Nel menu di navigazione, fai clic su Gestione dei workload.
Fai clic su Crea prenotazione.
Nella pagina Crea prenotazione:
- In Nome prenotazione, inserisci
bqml-tutorial-reservation. - Per Località, seleziona us (più regioni negli Stati Uniti).
- Lascia invariate le restanti impostazioni predefinite e fai clic su Salva.
- In Nome prenotazione, inserisci
Assegna la prenotazione
Nella console Google Cloud , vai alla pagina BigQuery.
Nel menu di navigazione, fai clic su Gestione dei workload.
Nella tabella Prenotazioni slot, individua la prenotazione che vuoi assegnare al tuo progetto.
Fai clic su Visualizza azioni > Crea assegnazione.
In Crea un'assegnazione, fai clic su Sfoglia e seleziona il tuo progetto.
Per Tipo di prestazione, seleziona QUERY. Questa selezione garantisce che le query SQL utilizzino gli slot di questa prenotazione.
Fai clic su Crea.
Crea un set di dati
Crea un set di dati BigQuery per archiviare il tuo modello ML.
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro Explorer, fai clic sul nome del progetto.
Fai clic su Visualizza azioni > Crea set di dati.
Nella pagina Crea set di dati, segui questi passaggi:
In ID set di dati, inserisci
bqml_tutorial.Per Tipo di località, seleziona Più regioni, quindi seleziona Stati Uniti.
Lascia invariate le restanti impostazioni predefinite e fai clic su Crea set di dati.
bq
Per creare un nuovo set di dati, utilizza il
comando bq mk --dataset.
Crea un set di dati denominato
bqml_tutorialcon la località dei dati impostata suUS.bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Verifica che il set di dati sia stato creato:
bq ls
API
Chiama il metodo datasets.insert con una risorsa dataset definita.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Crea la tabella degli oggetti
Crea una tabella degli oggetti sulle immagini dei poster dei film nel bucket Cloud Storage pubblico. La tabella degli oggetti ti consente di analizzare le immagini senza spostarle da Cloud Storage.
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente query per creare la tabella degli oggetti:
CREATE OR REPLACE EXTERNAL TABLE `bqml_tutorial.movie_posters` WITH CONNECTION DEFAULT OPTIONS ( object_metadata = 'SIMPLE', uris = ['gs://cloud-samples-data/vertex-ai/dataset-management/datasets/classic-movie-posters/*']);
Crea il modello remoto
Crea un modello remoto che rappresenti un modello
gemini-2.5-flash Agent Platform:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente query per creare il modello remoto:
CREATE OR REPLACE MODEL `bqml_tutorial.gemini-vision` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'gemini-2.5-flash');
Il completamento della query potrebbe richiedere alcuni minuti, dopodiché il modello
gemini-visionviene visualizzato nel set di datibqml_tutorialnel riquadro Explorer. Poiché la query utilizza un'istruzioneCREATE MODELper creare un modello, non ci sono risultati della query.
Analizza i poster dei film
Utilizza il modello remoto per analizzare i poster dei film e determinare a quale film si riferisce ciascun poster, quindi scrivi questi dati in una tabella.
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente query per analizzare le immagini dei poster dei film:
CREATE OR REPLACE TABLE `bqml_tutorial.movie_posters_results` AS ( SELECT uri, result FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini-vision`, TABLE `bqml_tutorial.movie_posters`, STRUCT( 0.2 AS temperature, 'For the movie represented by this poster, what is the movie title and year of release? Answer in JSON format with two keys: title, year. title should be string, year should be integer.' AS PROMPT)));
Nell'editor di query, esegui la seguente istruzione per visualizzare i dati della tabella:
SELECT * FROM `bqml_tutorial.movie_posters_results`;
L'output è simile al seguente:
+--------------------------------------------+----------------------------------+ | uri | result | +--------------------------------------------+----------------------------------+ | gs://cloud-samples-data/vertex-ai/dataset- |
json | | management/datasets/classic-movie- | { | | posters/little_annie_rooney.jpg | "title": "Little Annie Rooney", | | | "year": 1912 | | | } | | || +--------------------------------------------+----------------------------------+ | gs://cloud-samples-data/vertex-ai/dataset- |json | | management/datasets/classic-movie- | { | | posters/mighty_like_a_mouse.jpg | "title": "Mighty Like a Moose", | | | "year": 1926 | | | } | | || +--------------------------------------------+----------------------------------+ | gs://cloud-samples-data/vertex-ai/dataset- |json | | management/datasets/classic-movie- | { | | posters/brown_of_harvard.jpeg | "title": "Brown of Harvard", | | | "year": 1926 | | | } | | || +--------------------------------------------+----------------------------------+
Formatta l'output del modello
Per semplificare la lettura dei dati relativi al titolo e all'anno del film, formatta i dati restituiti dal modello.
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente query per formattare i dati:
CREATE OR REPLACE TABLE `bqml_tutorial.movie_posters_results_formatted` AS ( SELECT uri, JSON_QUERY(RTRIM(LTRIM(results.result, " ```json"), "```"), "$.title") AS title, JSON_QUERY(RTRIM(LTRIM(results.result, " ```json"), "```"), "$.year") AS year FROM `bqml_tutorial.movie_posters_results` results );
Nell'editor di query, esegui la seguente istruzione per visualizzare i dati della tabella:
SELECT * FROM `bqml_tutorial.movie_posters_results_formatted`;
L'output è simile al seguente:
+--------------------------------------------+----------------------------+------+ | uri | title | year | +--------------------------------------------+----------------------------+------+ | gs://cloud-samples-data/vertex-ai/dataset- | "Barque sortant du port" | 1895 | | management/datasets/classic-movie- | | | | posters/barque_sortant_du_port.jpeg | | | +--------------------------------------------+----------------------------+------+ | gs://cloud-samples-data/vertex-ai/dataset- | "The Great Train Robbery" | 1903 | | management/datasets/classic-movie- | | | | posters/the_great_train_robbery.jpg | | | +--------------------------------------------+----------------------------+------+ | gs://cloud-samples-data/vertex-ai/dataset- | "Little Annie Rooney" | 1912 | | management/datasets/classic-movie- | | | | posters/little_annie_rooney.jpg | | | +--------------------------------------------+----------------------------+------+
Elimina il progetto
- Nella console Google Cloud , vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona quello che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.
Elimina singole risorse
Se vuoi riutilizzare il progetto, elimina le risorse che hai creato per il tutorial.
Eliminazione del set di dati
Console
Elimina l'intero set di dati bqml_tutorial e tutti i relativi contenuti eseguendo il seguente comando SQL:
DROP SCHEMA IF EXISTS `bqml_tutorial` CASCADE;
bq
Elimina l'intero set di dati bqml_tutorial e tutti i relativi contenuti:
bq rm -r bqml_tutorial
Elimina la prenotazione
Console
Se hai creato una prenotazione BigQuery nell'ambito di questo tutorial, devi rimuoverla per evitare addebiti continui per gli slot.
Nella console Google Cloud , vai alla pagina BigQuery.
Nel menu di navigazione, fai clic su Gestione dei workload.
Nella tabella Prenotazioni slot, individua
bqml-tutorial-reservation.Fai clic su Visualizza azioni > Elimina.
bq
Se hai creato una prenotazione BigQuery denominata
bqml-tutorial-reservation nella località us, utilizza il seguente comando per
rimuoverla:
bq rm --reservation --location=us bqml-tutorial-reservation
Elimina la connessione
Console
Nella console Google Cloud , vai alla pagina BigQuery.
Nel riquadro a sinistra, fai clic su Explorer, individua il progetto e poi fai clic su Connessioni.
Nella tabella, individua la tua connessione.
Fai clic su Visualizza azioni > Elimina.
bq
Elimina la connessione:
bq rm --connection --location=us CONNECTION_ID
Sostituisci CONNECTION_ID con l'ID effettivo della tua connessione.
Passaggi successivi
- Scopri di più sulle funzioni di AI generativa in BigQuery.
- Scopri come ottimizzare un modello utilizzando i tuoi dati.
- Esplora architetture, diagrammi e best practice di riferimento su Google Cloud. Consulta il nostro Cloud Architecture Center.