Mengaktifkan output live stream

Setelah membuat aliran penyerapan data dan menambahkan node pemrosesan ke aplikasi, Anda harus memilih tempat untuk mengirim data yang diproses. Salah satu opsi adalah menerima output aplikasi live stream secara langsung sehingga Anda dapat menindaklanjuti analisis real-time ini.

Secara umum, Anda mengonfigurasi aplikasi untuk menyimpan output model ke dalam data warehouseGoogle Cloud seperti Media Warehouse Vertex AI Vision atau BigQuery. Setelah data disimpan di salah satu gudang ini, data tersebut dapat digunakan untuk tugas analisis offline berdasarkan grafik aplikasi Anda. Namun, Anda juga dapat menerima output model dengan cara live streaming. Anda dapat meminta Vertex AI Vision meneruskan output model ke resource streaming, dan Anda dapat menggunakan alat command line (vaictl) atau Vertex AI Vision API untuk menggunakannya secara real-time.

Dengan asumsi Anda memiliki grafik aplikasi berikut yang memiliki tiga node berikut:

  1. Node sumber data "Aliran Input" (input-stream)
  2. Node pemrosesan "Jumlah Penghunian" (occupancy-count)
  3. Node tujuan output aplikasi "Media Warehouse" (warehouse)

Output aplikasi saat ini dikirim dari streaming ke proses penghitungan jumlah tamu, lalu keluar ke Media Warehouse Vertex AI Vision tempat output disimpan.

Konfigurasi aplikasi API:

Contoh konfigurasi aplikasi di Cloud Console
{
  "applicationConfigs": {
    "nodes": [
        {
          "displayName": "Input Stream",
          "name": "input-stream",
          "processor": "builtin:stream-input"
        },
        {
          "displayName": "Occupancy Count",
          "name": "occupancy-count",
          "nodeConfig": {
            "occupancyCountConfig": {
              "enablePeopleCounting": true,
              "enableVehicleCounting": true
            }
          },
          "parents": [
            {
              "parentNode": "input-stream"
            }
          ],
          "processor": "builtin:occupancy-count"
        },
        {
          "displayName": "Media Warehouse",
          "name": "warehouse",
          "nodeConfig": {
            "mediaWarehouseConfig": {
              "corpus": "projects/PROJECT_ID/locations/LOCATION_ID/corpora/CORPUS_ID",
              "ttl": "86400s"
            }
          },
          "parents": [
            {
              "parentNode": "input-stream"
            },
            {
              "parentNode": "occupancy-count"
            }
          ],
          "processor": "builtin:media-warehouse"
        }
    ]
  }
}

Mengaktifkan output streaming (Konsol Google Cloud)

Anda dapat mengaktifkan output streaming di konsol Google Cloud saat pertama kali men-deploy model atau saat membatalkan deployment, lalu men-deploy ulang model.

Konsol

  1. Buka tab Applications di dasbor Vertex AI Vision.

    Buka tab Applications

  2. Pilih Lihat grafik di samping nama aplikasi Anda dari daftar.

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

  4. Di menu opsi Deploy application yang terbuka, pilih Enable output streaming.

    menu deploy aplikasi di konsol

  5. Dari menu dropdown Model yang sesuai, pilih model yang ingin Anda aktifkan output streaming-nya.

  6. Klik Deploy

Mengaktifkan output streaming (API)

Memperbarui node aplikasi

Anda dapat mengupdate konfigurasi aplikasi di command line sehingga node model secara khusus mengirim output ke streaming.

Setelah menyelesaikan langkah ini, Anda memiliki opsi untuk memperbarui instance aplikasi guna menentukan resource streaming yang menerima data output node analisis.

REST

Contoh ini menggunakan metode projects.locations.applications.patch. Permintaan ini memperbarui konfigurasi aplikasi API dari aplikasi contoh sebelumnya agar node occupancy-count mengirim anotasi output ke streaming Vertex AI Vision. Perilaku ini diaktifkan oleh kolom output_all_output_channels_to_stream.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

Metode HTTP dan URL:

PATCH https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID

Isi JSON permintaan:

{
  "applicationConfigs": {
    "nodes": [
        {
          "displayName": "Input Stream",
          "name": "input-stream",
          "processor": "builtin:stream-input"
        },
        {
          "displayName": "Occupancy Count",
          "name": "occupancy-count",
          "nodeConfig": {
            "occupancyCountConfig": {
              "enablePeopleCounting": true,
              "enableVehicleCounting": true
            }
          },
          "parents": [
            {
              "parentNode": "input-stream"
            }
          ],
          "processor": "builtin:occupancy-count",
          "output_all_output_channels_to_stream": true
        }
    ]
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID" | Select-Object -Expand Content
Jika operasi update selesai, operasi akan menampilkan status 200 OK tanpa error, dan layanan akan memperbarui resource aplikasi sesuai kebutuhan.

Mengupdate instance aplikasi

Contoh sebelumnya menunjukkan cara memperbarui aplikasi, yang memungkinkan node target mengirim output ke aliran data. Setelah mengaktifkan opsi ini, Anda dapat memperbarui instance aplikasi secara opsional untuk menentukan resource streaming yang menerima data output node analisis.

Jika Anda tidak menentukan streaming dengan perintah ini, platform aplikasi akan terus menggunakan streaming default yang dibuat saat node aplikasi di-deploy.

Anda harus membuat resource streaming tempat node mengirim output

sebelum Anda mengirimkan permintaan berikut.

REST

Contoh ini menggunakan metode projects.locations.applications.updateApplicationInstances. Permintaan ini menggunakan konfigurasi aplikasi API yang diperbarui dari aplikasi contoh sebelumnya. Perintah update sebelumnya menetapkan node occupancy-count agar dapat mengirim anotasi output ke aliran Vertex AI Vision. Perintah ini memperbarui instance aplikasi untuk mengirim data dari node occupancy-count produsen tersebut ke resource streaming yang ada.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT: Project ID atau nomor project Google CloudAnda.
  • LOCATION_ID: Region tempat Anda menggunakan Vertex AI Vision. Misalnya: us-central1, europe-west4. Lihat region yang tersedia.
  • APPLICATION_ID: ID aplikasi target Anda.
  • inputResources: Resource input (atau resource) untuk instance aplikasi saat ini. Ini adalah array objek yang berisi kolom berikut:
    • consumerNode: Nama node grafik yang menerima resource input.
    • inputResource: Nama resource input lengkap.
  • outputResources.outputResource: Resource stream untuk menghasilkan data aplikasi.
  • outputResources.producerNode: Nama node produsen output aplikasi. Dalam contoh ini, ini adalah node analisis, occupancy-count.
  • INSTANCE_ID: ID instance aplikasi.

Metode HTTP dan URL:

POST https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances

Isi JSON permintaan:

{
  "applicationInstances": [
    {
      "instance": {
        "inputResources": [
          {
            "consumerNode": "input-stream",
            "inputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/clusters/application-cluster-0/streams/INPUT_STREAM_ID"
          }
        ],
        "outputResources":[
          {
            "outputResource": "projects/PROJECT_NUMBER/locations/LOCATION_ID/clusters/application-cluster-0/streams/OUTPUT_STREAM_ID",
            "producerNode": "occupancy-count"
          }
        ]
      },
      "instanceId": INSTANCE_ID
    }
  ]
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/applications/APPLICATION_ID:updateApplicationInstances" | Select-Object -Expand Content
Jika operasi update selesai, operasi akan menampilkan status 200 OK tanpa error, dan layanan akan memperbarui instance aplikasi sesuai kebutuhan.