Annotare le immagini con la funzione ML.ANNOTATE_IMAGE

Questo tutorial spiega come utilizzare la funzione ML.ANNOTATE_IMAGE per estrarre approfondimenti dai dati delle immagini non strutturati. Quando lavori con repository di immagini di grandi dimensioni, potresti dover categorizzare automaticamente i file, rilevare oggetti specifici o estrarre le proprietà delle immagini per rendere il set di dati ricercabile. Creando un modello remoto BigQuery ML che si connette all'API Cloud Vision, puoi eseguire queste attività di analisi delle immagini direttamente su una tabella degli oggetti BigQuery utilizzando SQL standard, eliminando la necessità di spostare i file o creare pipeline di dati complesse.

Obiettivi

  • Crea un set di dati e una connessione alla risorsa.
  • Crea una tabella degli oggetti per i file immagine archiviati in Cloud Storage.
  • Crea un modello remoto che si connette all'API Cloud Vision.
  • Annota le immagini utilizzando la funzione ML.ANNOTATE_IMAGE.

Costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il calcolatore prezzi.

I nuovi utenti di Google Cloud potrebbero avere diritto a una prova senza costi.

Prima di iniziare

  1. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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.enable permission. 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.

    Enable the APIs

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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.enable permission. 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.

    Enable the APIs

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per completare questo tutorial, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Crea un set di dati

Per creare un set di dati BigQuery, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro a sinistra, fai clic su Explorer:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

    Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro sinistro per aprirlo.

  3. In Explorer, espandi il progetto e fai clic su Set di dati.

  4. Nella pagina Set di dati, fai clic su Crea set di dati.

  5. Nel riquadro Crea set di dati, segui questi passaggi:

    • In ID set di dati, inserisci bqml_tutorial.

    • Per Località dei dati, seleziona USA.

    Lascia invariate le altre impostazioni predefinite.

  6. Fai clic su Crea set di dati.

bq

Per creare un nuovo set di dati, utilizza il comando bq mk --dataset.

  1. Crea un set di dati denominato bqml_tutorial con la località dei dati impostata su US:

    bq mk --dataset \
      --location=US \
      --description "BigQuery ML tutorial dataset." \
      bqml_tutorial
  2. 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 una tabella degli oggetti

Crea una tabella degli oggetti denominata my_object_table che contenga immagini. La tabella degli oggetti consente di analizzare le immagini senza spostarle da Cloud Storage.

Il bucket Cloud Storage utilizzato dalla tabella degli oggetti deve trovarsi nello stesso progetto in cui prevedi di creare il modello e chiamare la funzione ML.ANNOTATE_IMAGE. Se vuoi chiamare la funzione ML.ANNOTATE_IMAGE in un progetto diverso da quello che contiene il bucket Cloud Storage utilizzato dalla tabella degli oggetti, devi concedere il ruolo Amministratore Storage a livello di bucket.

crea un modello

Crea un modello remoto denominato my_model con un REMOTE_SERVICE_TYPE di 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');

Sostituisci PROJECT_ID con l'ID progetto.

Annotare le immagini

Utilizza la funzione ML.ANNOTATE_IMAGE con le tue funzionalità preferite per annotare le immagini nella tabella degli oggetti.

  1. Per etichettare gli elementi mostrati nelle immagini, utilizza la funzione ML.ANNOTATE_IMAGE con la funzionalità 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)
    );

    Sostituisci PROJECT_ID con l'ID progetto.

  2. Per rilevare i volti mostrati nelle immagini e restituire gli attributi dell'immagine, come i colori dominanti, utilizza la funzione ML.ANNOTATE_IMAGE con le funzionalità face_detection e image_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)
    );

    Sostituisci PROJECT_ID con l'ID progetto.

Esegui la pulizia

Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

Elimina il progetto

Console

  1. Nella console Google Cloud , vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.

gcloud

    Elimina un progetto Google Cloud :

    gcloud projects delete PROJECT_ID

Elimina singole risorse

Se prevedi di conservare il progetto che hai utilizzato per questo tutorial, puoi evitare di incorrere in ulteriori addebiti eliminando le singole risorse che hai creato:

  1. Elimina il set di dati:l'eliminazione del set di dati rimuove anche il modello remoto e la tabella degli oggetti che hai creato al suo interno.

    • Nella console Google Cloud , vai a BigQuery Studio.
    • Nel riquadro Explorer, espandi il progetto e seleziona il set di dati che hai creato.
    • Fai clic su Visualizza azioni e poi su Elimina.
    • Nella finestra di dialogo, digita delete e fai clic su Elimina.
  2. Elimina la connessione:

    • Nel riquadro Explorer, espandi il nome del progetto e fai clic su Connessioni.
    • Fai clic sull'icona Visualizza azioni accanto alla connessione che hai creato e seleziona Elimina.
    • Nella finestra di dialogo, fai clic su Elimina per confermare.

Passaggi successivi