Membuat aplikasi pemburaman wajah dengan penyimpanan warehouse


Vertex AI Vision adalah platform yang didukung AI yang dapat Anda gunakan untuk menyerap, menganalisis, dan menyimpan data video. Vertex AI Vision memungkinkan Anda membangun dan men-deploy aplikasi AI. Anda dapat membuat solusi Vertex AI Vision menyeluruh 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: Mengaktifkan koneksi antara streaming dan pemroses AI untuk melakukan operasi machine learning pada video. Misalnya, Anda dapat menghubungkan streaming kamera ke model AI yang menghitung orang yang lewat di depannya.

  • Media warehouse: Menyimpan video yang ditransfer oleh streaming ke penyimpananGoogle Cloud . Menyimpan data ke tujuan ini memungkinkan Anda mengkueri output analisis dan metadata dari pemroses AI yang digunakan pada data dari streaming yang ditransfer.

Tujuan

Tutorial ini menunjukkan cara melakukan hal berikut:

  • Buat resource aliran input data.
  • Mulai streaming data video ke resource streaming ini.
  • Buat aplikasi kosong.
  • Tambahkan node ke aplikasi Anda untuk melakukan streaming data, mengubah data, dan menyimpan data.
  • Deploy aplikasi untuk Anda gunakan.
  • 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 diburamkan 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, baik secara lokal (misalnya, ./sample_video.mp4) maupun alamat IP feed RTSP live (misalnya, rtsp://192.168.1.180:540). Anda memerlukan informasi ini untuk mulai menyerap data ke dalam streaming setelah membuat resource streaming.
  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 streaming (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 pada skenario apa pun yang Anda buat menggunakan Vertex AI Vision.

Konsol

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

  1. Buka tab Aliran Data di dasbor Vertex AI Vision.

    Buka tab Streaming

  2. Klik Daftar.

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

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

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

  • PROJECT_ID: Google Cloud Project ID 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 mengirim feed RTSP ke streaming. 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 streaming, 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. Alih-alih meneruskan informasi kamera IP, teruskan jalur untuk file video lokal. Lakukan penggantian variabel berikut:

  • PROJECT_ID: Google Cloud Project ID 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. Mengulangi data file untuk menyimulasikan streaming.

Perintah ini melakukan streaming file video ke streaming. Jika menggunakan tanda --loop, video akan diputar berulang 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 perlu waktu ~100 detik antara memulai operasi transfer vaictl dan video muncul di dasbor.

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

Buka tab Streaming

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

Membuat aplikasi pemburaman wajah

Setelah membuat aliran data dan menyerap data ke dalam aliran data, 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 streaming.
  • Analisis data: Model AI dapat ditambahkan setelah penyerapan. Setiap operasi visi komputer dapat dilakukan pada informasi video yang ditransfer.
  • Penyimpanan data: Dua versi feed video (streaming asli dan streaming yang diproses oleh model AI) dapat disimpan di media warehouse.

Di konsol Google Cloud , aplikasi direpresentasikan 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 Applications di dasbor Vertex AI Vision.

    Buka tab Applications

  2. Klik tombol Create.

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

  4. Klik Buat.

    Membuat dialog 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 data yang sudah menyerap data.
  2. Node pemrosesan: Model pemburaman orang yang bertindak pada data yang diserap.
  3. Node penyimpanan: Pengelola media yang menyimpan video yang telah diproses, dan juga berfungsi sebagai penyimpanan metadata. Dengan warehouse, informasi analisis dapat dihasilkan tentang data video yang diserap, serta menyimpan informasi 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 Applications

  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 data input, pilih opsi Streams di bagian Connectors pada menu samping.

  2. Di bagian Source pada menu Stream yang terbuka, pilih Add streams.

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

    Menambahkan menu aliran data di UI

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

Menambahkan node pemrosesan data

  1. Untuk menambahkan node model pemburaman orang, pilih opsi Pemburaman orang di bagian Pemroses umum pada menu samping.

  2. Di menu opsi "Person blur" yang terbuka, biarkan Full occlusion dipilih dan aktifkan opsi Blur faces only.

    Menambahkan model blur wajah di UI

Menambahkan node penyimpanan data

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

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

  3. Di menu Hubungkan gudang, pilih Buat gudang baru. Beri nama gudang person-blur-app, dan biarkan durasi TTL tetap 14 hari.

  4. Untuk menambahkan gudang, klik Buat.

    Menambahkan node gudang di UI

Men-deploy aplikasi Anda

Setelah Anda mem-build aplikasi menyeluruh 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 Applications

  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 berikut, 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. Temukan 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