1. Tujuan
Ringkasan
Codelab ini akan berfokus pada pembuatan aplikasi Vertex AI Vision end-to-end untuk memantau rekaman video lalu lintas real-time. Kita akan menggunakan fitur bawaan model Khusus terlatih Analisis hunian untuk merekam hal-hal berikut:
- Menghitung jumlah kendaraan dan orang yang menyeberang jalan di garis tertentu.
- Menghitung jumlah kendaraan/orang di wilayah tetap jalan.
- Mendeteksi kemacetan di bagian mana pun di jalan.
Yang akan Anda pelajari
- Cara menyiapkan VM untuk menyerap video untuk streaming
- Cara membuat aplikasi di Vertex AI Vision
- Berbagai fitur yang tersedia di Analisis Hunian dan cara menggunakannya
- Cara men-deploy aplikasi
- Cara menelusuri video di Media Warehouse Vertex AI Vision.
- Cara menghubungkan output ke BigQuery, menulis kueri SQL untuk mengekstrak insight dari output json model, dan memvisualisasikan hasilnya di Looker Studio secara real time.
2. Sebelum Memulai
- Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud. Catatan: Jika Anda tidak berencana untuk menyimpan resource yang Anda buat dalam prosedur ini, buat project baru alih-alih memilih project yang ada. Setelah menyelesaikan langkah-langkah ini, Anda dapat menghapus project, sehingga semua resource yang terkait dengan project tersebut akan dihapus. Buka pemilih project
- Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project.
- Aktifkan Compute Engine API dan Vision AI API. Aktifkan API
Buat akun layanan:
- Di konsol Google Cloud, buka halaman Buat akun layanan. Buka Buat akun layanan
- Pilih project Anda.
- Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan berdasarkan nama ini. Di kolom Deskripsi akun layanan, masukkan deskripsi. Misalnya, Akun layanan untuk panduan memulai cepat.
- Klik Buat dan lanjutkan.
- Untuk memberikan akses ke project Anda, berikan peran berikut kepada akun layanan Anda: Vision AI > Vision AI Editor, Compute Engine > Compute Instance Admin (beta), Storage > Storage Object Viewer † . Di daftar Select a role, pilih peran. Untuk peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan. Catatan: Kolom Peran memengaruhi resource mana yang dapat diakses oleh akun layanan Anda di project Anda. Anda dapat mencabut peran ini atau memberikan peran tambahan di lain waktu. Dalam lingkungan produksi, jangan berikan peran Pemilik, Editor, atau Pelihat. Sebagai gantinya, berikan peran standar atau peran khusus yang memenuhi kebutuhan Anda.
- Klik Lanjutkan.
- Klik Selesai untuk menyelesaikan pembuatan akun layanan. Jangan tutup jendela browser Anda. Anda akan menggunakannya pada langkah berikutnya.
Buat kunci akun layanan:
- Di konsol Google Cloud, klik alamat email untuk akun layanan yang telah Anda buat.
- Klik Kunci.
- Klik Tambahkan kunci, lalu klik Buat kunci baru.
- Klik Create. File kunci JSON akan didownload ke komputer Anda.
- Klik Tutup.
- Instal dan lakukan inisialisasi Google Cloud CLI.
† Peran hanya diperlukan jika Anda menyalin file video contoh dari bucket Cloud Storage.
3. Menyiapkan VM untuk melakukan streaming video
Sebelum membuat Aplikasi di Analisis Hunian, Anda harus mendaftarkan streaming yang dapat digunakan nanti oleh Aplikasi.
Dalam tutorial ini, Anda akan membuat instance VM Compute Engine yang menghosting video, dan Anda akan mengirim data video streaming tersebut dari VM.
Buat VM Linux.
Langkah pertama dalam mengirim video dari instance VM Compute Engine adalah membuat instance VM.
- Di konsol, buka halaman VM instances. Buka instance VM
- Pilih project Anda, lalu klik Continue.
- Klik Create instance.
- Tentukan Name untuk VM Anda. Untuk mengetahui informasi selengkapnya, lihat Konvensi penamaan resource.
- Opsional: Ubah Zone untuk VM ini. Compute Engine mengacak daftar zona di dalam setiap region untuk mendorong penggunaan di beberapa zona.
- Terima opsi default yang tersisa. Untuk mengetahui informasi selengkapnya tentang opsi ini, lihat Membuat dan memulai VM.
- Untuk membuat dan memulai VM, klik Create.
Menyiapkan lingkungan VM
Setelah VM dimulai, Anda dapat menggunakan konsol untuk melakukan SSH ke VM dari browser Anda. Kemudian, Anda dapat mendownload alat command line vaictl untuk memasukkan video ke dalam streaming.
Buat koneksi SSH ke VM Anda
- Di konsol, buka halaman VM instances. Buka instance VM
- Di bagian Connect pada baris instance yang Anda buat, klik SSH. Tindakan ini akan membuka koneksi SSH di jendela browser baru.

Download alat command line vaictl
- Di jendela SSH-in-browser, download alat command line Vertex AI Vision (vaictl) menggunakan perintah berikut:
wget https://github.com/google/visionai/releases/download/v0.0.4/visionai_0.0-4_amd64.deb
- Instal alat command line dengan menjalankan perintah berikut:
sudo apt install ./visionai_0.0-4_amd64.deb
- Anda dapat menguji penginstalan dengan menjalankan perintah berikut:
vaictl --help
4. Menyerap file video untuk streaming
Setelah menyiapkan lingkungan VM, Anda dapat menyalin file video contoh, lalu menggunakan vaictl untuk melakukan streaming data video ke aplikasi analisis hunian Anda.
Mulai dengan mengaktifkan Vision AI API di Cloud Console
Mendaftarkan streaming baru
- Klik tab aliran di panel kiri Vertex AI Vision.
- Klik Daftar
- Di Nama aliran data, masukkan 'traffic-stream'
- Di region, masukkan 'us-central1'
- Klik daftar
Pendaftaran streaming akan memerlukan waktu beberapa menit.
Menyalin video contoh ke VM Anda
- Di jendela SSH-in-browser untuk VM Anda, salin video contoh dengan perintah gsutil cp berikut. Ganti variabel berikut:
- SUMBER: Lokasi file video yang akan digunakan. Anda dapat menggunakan sumber file video Anda sendiri (misalnya, gs://BUCKET_NAME/FILENAME.mp4), atau menggunakan video contoh (gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4 )(video dengan orang dan kendaraan, sumber)
export SOURCE=gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4 gsutil cp $SOURCE .
Streaming video dari VM dan menyerap data ke dalam streaming Anda
- Untuk mengirim file video lokal ini ke aliran input aplikasi, gunakan perintah berikut. Anda harus melakukan penggantian variabel berikut:
- PROJECT_ID: Project ID Google Cloud Anda.
- LOCATION_ID: ID lokasi Anda. Misalnya, us-central1. Untuk mengetahui informasi selengkapnya, lihat Lokasi cloud.
- LOCAL_FILE: Nama file video lokal. Misalnya, street_vehicles_people.mp4.
- –loop flag: Opsional. Mengulang data file untuk menyimulasikan streaming.
export PROJECT_ID=<Your Google Cloud project ID> export LOCATION_ID=us-central1 export LOCAL_FILE=street_vehicles_people.mp4
- Perintah ini akan melakukan streaming file video ke stream. Jika Anda menggunakan tanda –loop, video akan diulang ke dalam streaming hingga Anda menghentikan perintah. Kita akan menjalankan perintah ini sebagai tugas latar belakang sehingga tetap melakukan streaming meskipun VM terputus.
- ( tambahkan nohup di awal dan '&' di akhir untuk menjadikannya tugas latar belakang)
nohup vaictl -p $PROJECT_ID \
-l $LOCATION_ID \
-c application-cluster-0 \
--service-endpoint visionai.googleapis.com \
send video-file to streams 'traffic-stream' --file-path $LOCAL_FILE --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 traffic-stream.
Tampilan langsung video yang diserap ke dalam aliran di konsol Google Cloud. Kredit video: Elizabeth Mavor di Pixabay (pikselasi ditambahkan).
5. Membuat aplikasi
Langkah pertama adalah membuat aplikasi yang memproses data Anda. Aplikasi dapat dianggap sebagai pipeline otomatis yang menghubungkan hal berikut:
- Penyerapan data: Feed video diserap ke dalam aliran.
- Analisis data: Model AI(Computer Vision) dapat ditambahkan setelah penyerapan.
- 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.
Membuat aplikasi kosong
Sebelum dapat mengisi grafik aplikasi, Anda harus membuat aplikasi kosong terlebih dahulu.
Buat aplikasi di konsol Google Cloud.
- Buka konsol Google Cloud.
- Buka tab Applications di dasbor Vertex AI Vision.
- Klik tombol Buat.
- Masukkan traffic-app sebagai nama aplikasi dan pilih region Anda.
- Klik Buat.
Menambahkan node komponen aplikasi
Setelah membuat aplikasi kosong, Anda dapat menambahkan tiga node ke grafik aplikasi:
- Node penyerapan: Resource streaming yang menyerap data yang dikirim dari instance VM Compute Engine yang Anda buat.
- Node pemrosesan: Model analisis hunian yang bertindak berdasarkan data yang di-ingest.
- Node penyimpanan: Gudang media yang menyimpan video yang diproses, dan berfungsi sebagai penyimpanan metadata. Penyimpanan metadata mencakup informasi analisis tentang data video yang di-ingest, dan informasi yang disimpulkan oleh model AI.
Tambahkan node komponen ke aplikasi Anda di konsol.
- Buka tab Applications di dasbor Vertex AI Vision. Buka tab Aplikasi
- Di garis traffic-aplikasi, pilih Lihat grafik. Tindakan ini akan membawa Anda ke visualisasi grafik pipeline pemrosesan.
Menambahkan node penyerapan data
- Untuk menambahkan node input stream, pilih opsi Streams di bagian Connectors pada menu samping.
- Di bagian Sumber pada menu Aliran yang terbuka, pilih Tambahkan aliran.
- Di menu Tambahkan aliran, pilih Daftarkan aliran baru dan tambahkan traffic-stream sebagai nama aliran.
- Untuk menambahkan aliran ke grafik aplikasi, klik Tambahkan aliran.
Menambahkan node pemrosesan data
- Untuk menambahkan node model jumlah hunian, pilih opsi analisis hunian di bagian Model khusus pada menu samping.
- Biarkan pilihan default Orang dan Kendaraan.
- Menambahkan Garis di Persimpangan garis. Gunakan alat garis multi-titik untuk menggambar garis di tempat Anda perlu mendeteksi mobil atau orang yang keluar atau masuk.
- Gambarkan zona aktif untuk menghitung orang/kendaraan di zona tersebut.
- Menambahkan setelan untuk waktu tunggu guna mendeteksi kemacetan jika zona aktif digambar.
- (saat ini, zona aktif dan deteksi garis tidak didukung secara bersamaan. Gunakan hanya satu fitur dalam satu waktu.)


Menambahkan node penyimpanan data
- Untuk menambahkan node tujuan output (penyimpanan), pilih opsi Vertex AI Vision's Media Warehouse di bagian Connectors pada menu samping.
- Di menu Vertex AI Vision's Media Warehouse, klik Connect warehouse.
- Di menu Connect warehouse, pilih Create new warehouse. Beri nama traffic gudang-gudang, dan biarkan durasi TTL 14 hari.
- Klik tombol Buat untuk menambahkan gudang.
6. Menghubungkan Output ke Tabel BigQuery
Saat Anda menambahkan konektor BigQuery ke aplikasi Vertex AI Vision, semua output model aplikasi yang terhubung akan di-ingest ke tabel target.
Anda dapat membuat tabel BigQuery sendiri dan menentukan tabel tersebut saat menambahkan konektor BigQuery ke aplikasi, atau membiarkan platform aplikasi Vertex AI Vision membuat tabel secara otomatis.
Pembuatan tabel otomatis
Jika Anda mengizinkan platform aplikasi Vertex AI Vision membuat tabel secara otomatis, Anda dapat menentukan opsi ini saat menambahkan node konektor BigQuery.
Kondisi set data dan tabel berikut berlaku jika Anda ingin menggunakan pembuatan tabel otomatis:
- Set data: Nama set data yang dibuat secara otomatis adalah visionai_dataset.
- Tabel: Nama tabel yang dibuat secara otomatis adalah visionai_dataset.APPLICATION_ID.
- Penanganan error:
- Jika tabel dengan nama yang sama di bawah set data yang sama sudah ada, tidak ada pembuatan otomatis.
- Buka tab Applications di dasbor Vertex AI Vision. Buka tab Aplikasi
- Pilih Lihat aplikasi di samping nama aplikasi Anda dari daftar.
- Di halaman pembuat aplikasi, pilih BigQuery dari bagian Connectors.
- Biarkan kolom BigQuery path kosong.

- Di bagian Simpan metadata dari:, pilih hanya ‘Analytics hunian' dan hapus centang pada aliran.
Grafik aplikasi akhir akan terlihat seperti ini:

7. Men-deploy aplikasi Anda untuk digunakan
Setelah Anda membuat aplikasi end-to-end dengan semua komponen yang diperlukan, langkah terakhir untuk menggunakan aplikasi adalah men-deploy-nya.
- Buka tab Applications di dasbor Vertex AI Vision. Buka tab Aplikasi
- Pilih Lihat grafik di samping aplikasi traffic-app dalam daftar.
- Dari halaman pembuat grafik aplikasi, klik tombol Deploy.
- 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.

8. Menelusuri konten video di data warehouse penyimpanan
Setelah menyerap data video ke dalam aplikasi pemrosesan, Anda dapat melihat data video yang dianalisis, dan menelusuri data berdasarkan informasi analisis hunian.
- Buka tab Warehouses di dasbor Vertex AI Vision. Buka tab Gudang
- Temukan gudang traffic-warehouse dalam daftar, lalu klik Lihat aset.
- Di bagian Jumlah orang atau Jumlah kendaraan, tetapkan nilai Min ke 1, dan nilai Maks ke 5.
- Untuk memfilter data video yang diproses dan disimpan di Media Warehouse Vertex AI Vision, klik Search.

Tampilan data video tersimpan yang cocok dengan kriteria penelusuran di konsol Google Cloud. Kredit video: Elizabeth Mavor di Pixabay (kriteria penelusuran diterapkan).
9. Menganalisis Output di Tabel BigQuery
Buka BigQuery
Pilih set data: visionai_dataset
Pilih tabel: APPLICATION_ID Anda (dalam hal ini traffic-app)
Klik tiga titik di sebelah kanan nama tabel, lalu klik Kueri
Tulis kueri berikut
Query1: Kueri untuk memeriksa Jumlah Kendaraan yang melintasi setiap garis per menit
abc.sql
—- Get list of active marked lines for each timeframe
WITH line_array AS (
SELECT
t.ingestion_time AS ingestion_time,
JSON_QUERY_ARRAY(t.annotation.stats["crossingLineCounts"]) AS lines
FROM
`PROJ_ID.visionai_dataset.APP_ID` AS t
),
—- Flatten active lines to get individual entities details
flattened AS (
SELECT
line_array.ingestion_time,
JSON_VALUE(line.annotation.id) as line_id,
JSON_QUERY_ARRAY(line["positiveDirectionCounts"]) AS entities
FROM line_array, unnest(line_array.lines) as line
)
—- Generate aggregate vehicle count per zone w.r.t time
SELECT
STRING(TIMESTAMP_TRUNC(ingestion_time, MINUTE) ) AS time, line_id,
SUM(INT64(entity["count"])) as vehicle_count
FROM
flattened, UNNEST(flattened.entities) AS entity
WHERE JSON_VALUE(entity['entity']['labelString']) = 'Vehicle'
GROUP BY time, line_id
Query2: Kueri untuk memeriksa Jumlah Kendaraan per menit di setiap Zona
—- Get list of active zones for each timeframe
WITH zone_array AS (
SELECT
t.ingestion_time AS ingestion_time,
JSON_QUERY_ARRAY(t.annotation.stats["activeZoneCounts"]) AS zones
FROM
`PROJ_ID.visionai_dataset.APP_ID` AS t
),
—- Flatten active zones to get individual entities details
flattened AS (
SELECT zone_array.ingestion_time, JSON_VALUE(zone.annotation.id) as zone_id,
JSON_QUERY_ARRAY(zone["counts"]) AS entities
FROM zone_array, unnest(zone_array.zones) as zone
)
—- Generate aggregate vehicle count per zone w.r.t time
SELECT
STRING(TIMESTAMP_TRUNC(ingestion_time, MINUTE) ) AS time,
zone_id,
SUM(INT64(entity["count"])) as vehicle_count
FROM flattened, UNNEST(flattened.entities) AS entity
WHERE JSON_VALUE(entity['entity']['labelString']) = 'Vehicle'
GROUP BY time, zone_id
Dalam kueri di atas, Anda dapat mengubah "Vehicle" menjadi "Person" untuk menghitung Orang.
Codelab ini hanya akan menampilkan data dan visualisasi sampel untuk Query1. Anda dapat mengikuti proses yang serupa untuk Query2.

Klik Jelajahi Data di menu sisi kanan, lalu pilih Jelajahi dengan Looker Studio

Di panel 'dimensi', tambahkan waktu dan ubah konfigurasi waktu menjadi tanggal-waktu. Di ‘breakdown dimension', tambahkan line_id. 
Grafik di atas menunjukkan jumlah kendaraan/orang yang melintasi setiap garis per menit.
Batang biru tua dan biru muda menunjukkan dua ID baris yang berbeda.
10. Selamat
Selamat, Anda telah menyelesaikan lab ini.
Pembersihan
Agar tidak menimbulkan 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
Menghapus resource satu per satu
Referensi
https://cloud.google.com/vision-ai/docs/overview
https://cloud.google.com/vision-ai/docs/occupancy-count-tutorial
Masukan
Klik di sini untuk Memberikan Masukan