Membuat aplikasi pemburaman wajah dengan penyimpanan warehouse

Vertex AI Vision adalah platform berteknologi AI yang dapat Anda gunakan untuk menyerap, menganalisis, dan menyimpan data video . Dengan Vertex AI Vision, Anda dapat membangun dan men-deploy aplikasi AI. Anda dapat membangun solusi Vertex AI Vision end-to-end dengan memanfaatkan integrasi Vertex AI Vision dengan komponen produk lainnya.

Untuk mulai menerapkan solusi menggunakan platform Vertex AI Vision, tinjau konsep dan komponen Vertex AI Vision berikut:

  • Streaming: Merepresentasikan lapisan streaming video dari solusi Anda. Sumber streaming dapat berupa video live (misalnya, kamera IP) atau file video (misalnya, file MP4).

  • Aplikasi: Aktifkan koneksi antara streaming dan prosesor AI untuk melakukan operasi machine learning pada video. Misalnya, Anda dapat menghubungkan aliran kamera ke model AI yang menghitung orang yang lewat di depannya.

  • Gudang media: Menyimpan video yang dimasukkan oleh aliran ke Google Cloud penyimpanan. Menyimpan data ke tujuan ini memungkinkan Anda membuat kueri output analisis dan metadata dari pemroses AI yang digunakan pada data dari stream yang di-ingest.

Tujuan

Tutorial ini menunjukkan kepada Anda cara melakukan hal berikut:

  • Buat resource aliran input data.
  • Mulai streaming data video ke resource aliran ini.
  • Buat aplikasi kosong.
  • Tambahkan node ke aplikasi Anda untuk melakukan streaming data, mengubah data, dan menyimpan data.
  • Deploy aplikasi Anda untuk digunakan.
  • Melihat output data yang diproses di konsol Google Cloud .

Sebelum memulai tutorial ini, Anda harus memiliki resource video streaming untuk mengirim data ke aplikasi Vertex AI Vision. Resource ini dapat berupa video lokal atau feed RTSP. Data video ini harus berisi wajah manusia yang kemudian dapat dikaburkan oleh aplikasi contoh.

Biaya

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

  • Vertex AI Vision (Streams - Data ingested, Streams - Data consumed, Models - Person / face blur, Warehouse - Video storage)

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

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

Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, baca bagian Pembersihan.

Sebelum memulai

  1. Dapatkan lokasi sumber video streaming Anda, baik secara lokal (misalnya, ./sample_video.mp4) atau alamat IP feed RTSP live (misalnya, rtsp://192.168.1.180:540). Anda memerlukan informasi ini untuk mulai menyerap data ke dalam aliran setelah membuat resource aliran.
  2. 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.
  3. 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

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

  5. Enable the Vision AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  6. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the Vision AI > Vision AI Editor role to the service account.

      To grant the role, find the Select a role list, then select Vision AI > Vision AI Editor.

    7. Click Continue.
    8. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  7. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.
  8. Set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again.

  9. Instal Google Cloud CLI.

  10. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  11. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  12. 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

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

  14. Enable the Vision AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  15. Create a service account:

    1. Ensure that you have the Create Service Accounts IAM role (roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles.
    2. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    3. Select your project.
    4. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    5. Click Create and continue.
    6. Grant the Vision AI > Vision AI Editor role to the service account.

      To grant the role, find the Select a role list, then select Vision AI > Vision AI Editor.

    7. Click Continue.
    8. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  16. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.
  17. Set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again.

  18. Instal Google Cloud CLI.

  19. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  20. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  21. Menginstal alat vaictl untuk menyerap data ke dalam stream (OS: Debian GNU/Linux, arsitektur CPU: x86_64):
    1. Download paket yang diperlukan:
      wget https://github.com/google/visionai/releases/download/v0.0.5/visionai_0.0-5_amd64.deb
    2. Setelah mendownload paket, jalankan perintah berikut di direktori tempat Anda mendownload file:
      sudo apt install ./visionai_0.0-5_amd64.deb
    3. Verifikasi penginstalan:
      vaictl --help

Membuat stream

Untuk membuat aplikasi analisis video streaming, Anda harus membuat dan mendaftarkan resource streaming terlebih dahulu. Sebagai resource yang menerima data video dari pengguna, streaming diperlukan dalam skenario apa pun yang Anda buat menggunakan Vertex AI Vision.

Konsol

Untuk membuat aliran baru di konsol Google Cloud , gunakan langkah-langkah berikut.

  1. Buka tab Streams di dasbor Vertex AI Vision.

    Buka tab Streams

  2. Klik Daftar.

  3. Masukkan input-stream sebagai nama stream dan pilih region tempat Anda ingin membuat stream.

  4. Klik Daftarkan untuk membuat satu atau beberapa aliran data.

    Mendaftarkan opsi aliran data di UI

Menyerap video ke dalam stream

Setelah membuat resource streaming, Anda dapat menggunakan alat command line vaictl untuk mengirim data video ke streaming.

Kamera IP

Jika Anda melakukan pengujian menggunakan kamera IP aktif, Anda harus mendapatkan alamat IP kamera. Anda harus memberikan informasi ini dengan permintaan, beserta penggantian variabel lainnya:

  • PROJECT_ID: Project ID Google Cloud Anda.
  • LOCATION_ID: ID lokasi Anda. Misalnya, us-central1. Untuk mengetahui informasi selengkapnya, lihat Lokasi cloud.
  • RTSP_ADDRESS: Alamat feed Real Time Streaming Protocol (RTSP). Contoh, rtsp://192.168.1.180:540.

Perintah ini mengirimkan feed RTSP ke dalam stream. Anda harus menjalankan perintah ini di jaringan yang memiliki akses langsung ke feed RTSP.

vaictl -p PROJECT_ID \
       -l LOCATION_ID \
       -c application-cluster-0 \
       --service-endpoint visionai.googleapis.com \
send rtsp to streams input-stream --rtsp-uri RTSP_ADDRESS
      

Jika perintah berhasil dijalankan, Anda akan mendapatkan output berikut:

[...]
Waiting for long running operation projects/your-project/locations/us-central1/operations/operation-1651364156981-5dde82db7e4a9-dfb17ca5-1051eb20 ⠙
I20220430 21:16:28.024988 211449 gstvaisink.cc:417] cluster-id=application-cluster-0
I20220430 21:16:28.025032 211449 gstvaisink.cc:418] cluster-endpoint=c8khq35ftg78mn61ef50.us-central1.visionai.goog
I20220430 21:16:28.025040 211449 gstvaisink.cc:419] event-id=ev-1651364114183255223
I20220430 21:16:28.025048 211449 gstvaisink.cc:420] stream-id=input-stream
I20220430 21:16:28.025053 211449 gstvaisink.cc:421] series-id=ev-1651364114183255223--input-stream
I20220430 21:16:28.025060 211449 gstvaisink.cc:422] Sending data

File video lokal

Anda juga dapat mengirim data file video ke stream, bukan feed video live. Opsi ini dapat berguna jika Anda tidak memiliki akses ke kamera IP.

Satu-satunya perbedaan dalam opsi ini adalah parameter perintah vaictl. Daripada meneruskan informasi kamera IP, teruskan jalur untuk file video lokal. Lakukan penggantian variabel berikut:

  • PROJECT_ID: Project ID Google Cloud Anda.
  • LOCATION_ID: ID lokasi Anda. Misalnya, us-central1. Informasi selengkapnya.
  • LOCAL_FILE.EXT: Nama file video lokal. Contoh, my-video.mp4.
  • Flag --loop: Opsional. Mengulang data file untuk menyimulasikan streaming.

Perintah ini akan melakukan streaming file video ke stream. Jika menggunakan flag --loop, video akan diulang ke dalam aliran hingga Anda menghentikan perintah:

vaictl -p PROJECT_ID \
       -l LOCATION_ID \
       -c application-cluster-0 \
       --service-endpoint visionai.googleapis.com \
send video-file to streams 'input-stream' --file-path LOCAL_FILE.EXT --loop

Mungkin diperlukan waktu sekitar 100 detik antara memulai operasi penyerapan vaictl dan video muncul di dasbor.

Setelah penyerapan streaming tersedia, Anda dapat melihat feed video di tab Streams di dasbor Vertex AI Vision dengan memilih streaming input-stream.

Buka tab Streams

Tampilan video live yang di-streaming di UI
Tampilan live video yang dimasukkan ke dalam streaming di konsol Google Cloud . Kredit video: Tima Miroshnichenko di Pexels (pikselasi ditambahkan).

Membuat aplikasi pemburaman wajah

Setelah membuat stream dan memasukkan data ke dalam stream, saatnya membuat aplikasi Vertex AI Vision untuk memproses data. Aplikasi dapat dianggap sebagai pipeline otomatis yang menghubungkan hal berikut:

  • Penyerapan data: Feed video diserap ke dalam aliran.
  • Analisis data: Model AI dapat ditambahkan setelah penyerapan. Setiap operasi computer vision dapat dilakukan pada informasi video yang telah di-ingest.
  • Penyimpanan data: Dua versi feed video (streaming asli dan streaming yang diproses oleh model AI) dapat disimpan di gudang media.

Di konsol Google Cloud , aplikasi ditampilkan sebagai grafik. Selain itu, di Vertex AI Vision, grafik aplikasi harus memiliki setidaknya dua node: node sumber video (streaming), dan setidaknya satu node lagi (model pemrosesan atau tujuan output).

Membuat aplikasi kosong

Sebelum dapat mengisi grafik aplikasi, Anda harus membuat aplikasi kosong terlebih dahulu.

Konsol

Buat aplikasi di konsol Google Cloud .

  1. Buka tab Applications di dasbor Vertex AI Vision.

    Buka tab Aplikasi

  2. Klik tombol Create.

  3. Masukkan person-blur-app sebagai nama aplikasi dan pilih wilayah Anda.

  4. Klik Create.

    Dialog buat aplikasi baru di UI

Menambahkan node komponen aplikasi

Setelah membuat aplikasi kosong, Anda dapat menambahkan tiga node ke grafik aplikasi:

  1. Node penyerapan: Resource aliran yang sudah menyerap data.
  2. Node pemrosesan: Model blur orang yang bertindak pada data yang diserap.
  3. Node penyimpanan: Gudang media yang menyimpan video yang diproses, dan juga berfungsi sebagai penyimpanan metadata. Data warehouse memungkinkan informasi analisis dibuat tentang data video yang di-ingest, serta informasi toko yang disimpulkan tentang data oleh model AI.

Konsol

Tambahkan node komponen ke aplikasi Anda di konsol.

  1. Buka tab Applications di dasbor Vertex AI Vision.

    Buka tab Aplikasi

  2. Di baris person-blur-app, pilih Lihat grafik. Tindakan ini akan membawa Anda ke visualisasi grafik pipeline pemrosesan.

Menambahkan node penyerapan data

  1. Untuk menambahkan node aliran input, pilih opsi Streams di bagian Connectors pada menu samping.

  2. Di bagian Sumber pada menu Aliran yang terbuka, pilih Tambahkan aliran.

  3. Di menu Tambahkan streaming, pilih Pilih dari streaming yang ada, lalu pilih person-blur-app dari daftar resource streaming.

    Menambahkan menu streaming di UI

  4. Untuk menambahkan aliran ke grafik aplikasi, klik Tambahkan aliran.

Menambahkan node pemrosesan data

  1. Untuk menambahkan node model buram orang, pilih opsi Buram orang di bagian Prosesor umum pada menu samping.

  2. Pada menu opsi "Peredupan orang" yang terbuka, biarkan Oklusi penuh dipilih dan aktifkan opsi Samarkan wajah saja.

    Menambahkan model blur wajah di UI

Menambahkan node penyimpanan data

  1. Untuk menambahkan node tujuan output (penyimpanan), pilih opsi Vertex AI Vision's Media Warehouse di bagian Connectors pada menu samping.

  2. Di menu Vertex AI Vision's Media Warehouse, klik Connect warehouse.

  3. Di menu Connect warehouse, pilih Create new warehouse. Beri nama gudang person-blur-app, dan biarkan durasi TTL 14 hari.

  4. Untuk menambahkan gudang, klik Buat.

    Menambahkan node gudang di UI

Men-deploy aplikasi Anda

Setelah Anda membuat aplikasi end-to-end dengan semua komponen yang diperlukan, langkah terakhir untuk menggunakan aplikasi adalah men-deploy-nya.

Konsol

  1. Buka tab Applications di dasbor Vertex AI Vision.

    Buka tab Aplikasi

  2. Pilih Lihat grafik di samping aplikasi person-blur-app dalam daftar.

  3. Dari halaman pembuat grafik aplikasi, klik tombol Deploy.

  4. Pada dialog konfirmasi berikutnya, pilih Deploy.

    Operasi deployment mungkin memerlukan waktu beberapa menit hingga selesai. Setelah deployment selesai, tanda centang hijau akan muncul di samping node.

    Aplikasi yang di-deploy di UI

Melihat data output yang diproses

Konsol

  1. Buka tab Warehouses di dasbor Vertex AI Vision.

    Buka tab Gudang

  2. Cari gudang person-blur-output-storage dalam daftar, lalu klik Lihat aset.

    Melihat output aplikasi di UI

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

  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.

Menghapus resource satu per satu

Menghapus gudang

  1. Di konsol Google Cloud , buka halaman Warehouses.

    Buka tab Gudang

  2. Temukan gudang person-blur-output-storage Anda.
  3. Untuk menghapus gudang, klik Tindakan, klik Hapus gudang, lalu ikuti petunjuknya.

Menghapus feed

  1. Di konsol Google Cloud , buka halaman Streams.

    Buka tab Streams

  2. Temukan aliran input-stream Anda.
  3. Untuk menghapus aliran, klik Tindakan, klik Hapus aliran, lalu ikuti petunjuknya.

Menghapus aplikasi

  1. Di konsol Google Cloud , buka halaman Applications.

    Buka tab Aplikasi

  2. Cari aplikasi person-blur-app Anda.
  3. Untuk menghapus aplikasi, klik Tindakan, klik Hapus aplikasi, lalu ikuti petunjuknya.

Langkah berikutnya