Menganotasi gambar dengan fungsi ML.ANNOTATE_IMAGE

Tutorial ini menjelaskan cara menggunakan fungsi ML.ANNOTATE_IMAGE untuk mengekstrak insight dari data gambar tidak terstruktur. Saat bekerja dengan repositori gambar yang besar, Anda mungkin perlu mengategorikan file secara otomatis, mendeteksi objek tertentu, atau mengekstrak properti gambar untuk membuat set data dapat ditelusuri. Dengan membuat model jarak jauh BigQuery ML yang terhubung ke Cloud Vision API, Anda dapat melakukan tugas analisis gambar ini langsung di tabel objek BigQuery menggunakan SQL standar, sehingga tidak perlu memindahkan file atau membuat pipeline data yang kompleks.

Tujuan

  • Buat set data dan koneksi resource.
  • Buat tabel objek untuk file gambar yang disimpan di Cloud Storage.
  • Buat model jarak jauh yang terhubung ke Cloud Vision API.
  • Beri anotasi pada gambar menggunakan fungsi ML.ANNOTATE_IMAGE.

Biaya

Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga.

Pengguna Google Cloud baru mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  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

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan tutorial ini, minta administrator Anda untuk memberi Anda peran IAM berikut di project:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Membuat set data

Untuk membuat set data BigQuery, pilih salah satu opsi berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman BigQuery.

    Buka BigQuery

  2. Di panel kiri, klik Explorer:

    Tombol yang ditandai untuk panel Explorer.

    Jika Anda tidak melihat panel kiri, klik Luaskan panel kiri untuk membuka panel.

  3. Di Explorer, luaskan project Anda, lalu klik Datasets.

  4. Di halaman Set Data, klik Buat set data.

  5. Di panel Create dataset, lakukan hal berikut:

    • Untuk Dataset ID, masukkan bqml_tutorial.

    • Untuk Data location, pilih US.

    Jangan ubah setelan default yang tersisa.

  6. Klik Create dataset.

bq

Untuk membuat set data baru, gunakan perintah bq mk --dataset.

  1. Buat set data bernama bqml_tutorial dengan lokasi data yang ditetapkan ke US:

    bq mk --dataset \
      --location=US \
      --description "BigQuery ML tutorial dataset." \
      bqml_tutorial
  2. Pastikan set data telah dibuat:

    bq ls

API

Panggil metode datasets.insert dengan resource set data yang ditentukan:

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

Membuat tabel objek

Buat tabel objek bernama my_object_table yang memiliki konten gambar. Tabel objek memungkinkan analisis gambar tanpa memindahkannya dari Cloud Storage.

Bucket Cloud Storage yang digunakan oleh tabel objek harus berada di project yang sama tempat Anda berencana membuat model dan memanggil fungsi ML.ANNOTATE_IMAGE. Jika Anda ingin memanggil fungsi ML.ANNOTATE_IMAGE dalam project yang berbeda dengan project yang berisi bucket Cloud Storage yang digunakan oleh tabel objek, Anda harus memberi peran Storage Admin di tingkat bucket.

Membuat model

Buat model jarak jauh bernama my_model dengan REMOTE_SERVICE_TYPE dari 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');

Ganti PROJECT_ID dengan project ID Anda.

Menganotasi gambar

Gunakan fungsi ML.ANNOTATE_IMAGE dengan fitur pilihan Anda untuk menganotasi gambar dalam tabel objek.

  1. Untuk memberi label pada item yang ditampilkan dalam gambar, gunakan fungsi ML.ANNOTATE_IMAGE dengan fitur 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)
    );

    Ganti PROJECT_ID dengan project ID Anda.

  2. Untuk mendeteksi wajah yang ditampilkan dalam gambar dan menampilkan atribut gambar, seperti warna dominan, gunakan fungsi ML.ANNOTATE_IMAGE dengan fitur face_detection dan 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)
    );

    Ganti PROJECT_ID dengan project ID Anda.

Pembersihan

Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.

Menghapus project

Konsol

  1. Di konsol Google Cloud , buka halaman Manage resources.

    Buka Kelola resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

gcloud

    Menghapus Google Cloud project:

    gcloud projects delete PROJECT_ID

Menghapus resource satu per satu

Jika Anda berencana untuk mempertahankan project yang Anda gunakan untuk tutorial ini, Anda dapat menghindari biaya lebih lanjut dengan menghapus setiap resource yang Anda buat:

  1. Menghapus set data: menghapus set data juga akan menghapus model jarak jauh dan tabel objek yang Anda buat di dalamnya.

    • Di konsol Google Cloud , buka BigQuery Studio.
    • Di panel Explorer, luaskan project Anda dan pilih set data yang Anda buat.
    • Klik Lihat tindakan, lalu klik Hapus.
    • Pada dialog, ketik delete, lalu klik Hapus.
  2. Menghapus koneksi:

    • Di panel Explorer, luaskan nama project Anda, lalu klik Koneksi.
    • Klik ikon Lihat tindakan di samping koneksi yang Anda buat, lalu pilih Hapus.
    • Dalam dialog, klik Hapus untuk mengonfirmasi.

Langkah berikutnya