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 membuat 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 streaming ke Google Cloud penyimpanan. Menyimpan data ke tujuan ini memungkinkan Anda mengueri output dan metadata analisis dari pemroses AI yang digunakan pada data dari aliran 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.
  • Lihat output data yang diproses di Google Cloud konsol.

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, lihat 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. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  4. Make sure that billing is enabled for your Google Cloud project.

  5. Enable the Vision AI API.

    Enable the API

  6. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. 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.

    4. Click Create and continue.
    5. 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.

    6. Click Continue.
    7. 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. Install the Google Cloud CLI.

  10. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  13. Make sure that billing is enabled for your Google Cloud project.

  14. Enable the Vision AI API.

    Enable the API

  15. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. 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.

    4. Click Create and continue.
    5. 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.

    6. Click Continue.
    7. 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. Install the Google Cloud CLI.

  19. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  20. To initialize the gcloud CLI, run the following command:

    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, lalu pilih region tempat Anda ingin membuat stream.

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

    Mendaftarkan opsi aliran di UI

Menyerap video ke dalam streaming

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 live, Anda harus mendapatkan alamat IP kamera. Anda harus memberikan informasi ini dengan permintaan, beserta penggantian variabel lainnya:

  • PROJECT_ID: ID project 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) Anda. Misalnya, 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: ID project 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 streaming 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 ~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 aliran dan memasukkan data ke dalam aliran, 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 minimal 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 Aplikasi 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 Buat.

    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 telah diproses, dan juga berfungsi sebagai penyimpanan metadata. Data warehouse memungkinkan informasi analisis dibuat tentang data video yang di-ingest, serta menyimpan informasi yang disimpulkan tentang data oleh model AI.

Konsol

Tambahkan node komponen ke aplikasi Anda di konsol.

  1. Buka tab Aplikasi 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 Stream yang terbuka, pilih Tambahkan stream.

  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 blur orang, pilih opsi Blur 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 Aplikasi 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. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Menghapus resource satu per satu

Menghapus gudang

  1. In the Google Cloud console, go to the Warehouses page.

    Go to the Warehouses tab

  2. Locate your person-blur-output-storage warehouse.
  3. To delete the warehouse, click Actions, click Delete warehouse, and then follow the instructions.

Menghapus feed

  1. In the Google Cloud console, go to the Streams page.

    Go to the Streams tab

  2. Locate your input-stream stream.
  3. To delete the stream, click Actions, click Delete stream, and then follow the instructions.

Menghapus aplikasi

  1. In the Google Cloud console, go to the Applications page.

    Go to the Applications tab

  2. Locate your person-blur-app app.
  3. To delete the app, click Actions, click Delete application, and then follow the instructions.

Langkah berikutnya