Melacak objek video menggunakan command line

Panduan memulai ini akan memandu Anda terkait proses:

  • Menyalin sekumpulan video ke Cloud Storage.
  • Membuat file CSV yang mencantumkan video dan labelnya.
  • Menggunakan AutoML Video Object Tracking untuk membuat set data guna melatih dan menggunakan model Anda.

Sebelum memulai

Menyiapkan project

  1. 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.
  2. Menginstal Google Cloud CLI.
  3. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  4. Buat atau pilih project Google Cloud.

    • Membuat project Google Cloud:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk project Google Cloud yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

  5. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  6. Enable the AutoML and Cloud Storage APIs:

    gcloud services enable storage-component.googleapis.com automl.googleapis.com storage-api.googleapis.com
  7. Menginstal Google Cloud CLI.
  8. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  9. Buat atau pilih project Google Cloud.

    • Membuat project Google Cloud:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk project Google Cloud yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

  10. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  11. Enable the AutoML and Cloud Storage APIs:

    gcloud services enable storage-component.googleapis.com automl.googleapis.com storage-api.googleapis.com
  12. Tetapkan variabel lingkungan PROJECT_ID ke Project ID Anda.
    export PROJECT_ID=PROJECT_ID
    Panggilan dan nama resource AutoML API akan menyertakan Project ID Anda di dalamnya. Variabel lingkungan PROJECT_ID menyediakan cara yang mudah untuk menentukan ID.

Membuat set data dan mengimpor data pelatihan

Membuat set data

Tentukan nama untuk set data Anda dan gunakan perintah curl atau PowerShell berikut untuk membuat set data baru dengan nama tersebut.

REST

Berikut ini cara mengirim permintaan POST. Contoh tersebut menggunakan Google Cloud CLI untuk membuat token akses. Untuk mengetahui petunjuk cara menginstal gcloud CLI, baca Panduan Memulai AutoML Video Intelligence Object Tracking.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • dataset-name: nama set data target Anda.
    Misalnya, my_dataset_01
  • Catatan:
    • project-number: nomor project Anda
    • location-id: region Cloud tempat anotasi seharusnya dilakukan. Region cloud yang didukung adalah: us-east1, us-west1, europe-west1, asia-east1. Jika tidak ada wilayah yang ditentukan, wilayah akan ditentukan berdasarkan lokasi file video.

Metode HTTP dan URL:

POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets

Isi JSON permintaan:

{
    "displayName": "dataset-name",
    "videoObjectTrackingDatasetMetadata": { }
}

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 "x-goog-user-project: project-number" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets"

PowerShell

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

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets" | Select-Object -Expand Content
Jika respons berhasil, AutoML Video Intelligence Object Tracking API akan menampilkan nama untuk operasi Anda. Berikut adalah contoh respons tersebut, dengan project-number adalah nomor project Anda dan operation-id adalah ID operasi yang berjalan lama yang dibuat untuk permintaan tersebut. Contoh VOT12345....

Mengimpor data pelatihan

REST

Untuk mengimpor data pelatihan, gunakan metode importData. Metode ini mengharuskan Anda memberikan dua parameter:

  1. jalur ke CSV yang berisi jalur ke pelatihan,
  2. file CSV data pengujian. Catatan: File ini tersedia di bucket "automl-video-demo-data" di Cloud Storage.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • dataset-id: ID set data Anda. ID adalah elemen terakhir dari nama set data Anda. Contoh:
    • nama set data: projects/project-number/locations/location-id/datasets/3104518874390609379
    • id set data: 3104518874390609379
  • bucket-name: ganti dengan nama bucket Cloud Storage tempat Anda menyimpan file CSV daftar file pelatihan model.
  • csv-file-name: ganti dengan nama file CSV daftar file pelatihan model Anda.
  • Catatan:
    • project-number: nomor project Anda
    • location-id: region Cloud tempat anotasi seharusnya dilakukan. Region cloud yang didukung adalah: us-east1, us-west1, europe-west1, asia-east1. Jika tidak ada wilayah yang ditentukan, wilayah akan ditentukan berdasarkan lokasi file video.

Metode HTTP dan URL:

POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id:importData

Isi JSON permintaan:

{
  "inputConfig": {
    "gcsSource": {
      "inputUris": ["gs://bucket-name/csv-file-name.csv"]
    }
  }
}

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 "x-goog-user-project: project-number" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id:importData"

PowerShell

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

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id:importData" | Select-Object -Expand Content
Anda akan menerima ID operasi untuk operasi data impor. Contoh ini menunjukkan respons yang berisi ID operasi impor VOT7506374678919774208.

Mendapatkan status operasi impor

Anda dapat mengkueri status operasi impor data menggunakan perintah curl atau PowerShell berikut.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • operation-id: ID operasi yang berjalan lama yang dibuat untuk permintaan dan diberikan dalam respons saat Anda memulai operasi, misalnya VOT12345....
  • Catatan:
    • project-number: nomor project Anda
    • location-id: region Cloud tempat anotasi seharusnya dilakukan. Region cloud yang didukung adalah: us-east1, us-west1, europe-west1, asia-east1. Jika tidak ada wilayah yang ditentukan, wilayah akan ditentukan berdasarkan lokasi file video.

Metode HTTP dan URL:

GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id"

PowerShell

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id" | Select-Object -Expand Content
Operasi impor dapat memerlukan waktu beberapa saat untuk diselesaikan. Saat tugas impor selesai, status operasi menunjukkan done: true tanpa error yang tercantum, seperti yang ditunjukkan pada contoh di atas.
  • operation-name: nama operasi seperti yang ditampilkan oleh AutoML Video Intelligence Object Tracking API. Nama operasi memiliki format projects/project-number/locations/location-id/operations/operation-id

Mencantumkan semua set data

Gunakan perintah curl atau PowerShell berikut untuk mendapatkan daftar set data dan jumlah video contoh yang diimpor ke set data.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-number: jumlah project Anda
  • location-id: region Cloud tempat anotasi seharusnya dilakukan. Region cloud yang didukung adalah: us-east1, us-west1, europe-west1, asia-east1. Jika tidak ada wilayah yang ditentukan, wilayah akan ditentukan berdasarkan lokasi file video.

Metode HTTP dan URL:

GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets "

PowerShell

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets " | Select-Object -Expand Content
Dalam respons di bawah ini, VOT3940649673949184000 adalah ID operasi dari operasi yang berjalan lama yang dibuat untuk permintaan dan diberikan dalam respons saat Anda memulai operasi.

Latih model Anda

Meluncurkan operasi pelatihan model

Setelah membuat set data dan mengimpor data pelatihan ke dalam set data, Anda dapat melatih model kustom. Latih model Anda menggunakan perintah curl atau PowerShell berikut.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • dataset-id: nama set data target Anda. Misalnya, nama tampilan my_dataset_01).
  • model-name: ganti dengan nama yang Anda pilih untuk model Anda.
  • Catatan:
    • project-number: nomor project Anda
    • location-id: region Cloud tempat anotasi seharusnya dilakukan. Region cloud yang didukung adalah: us-east1, us-west1, europe-west1, asia-east1. Jika tidak ada wilayah yang ditentukan, wilayah akan ditentukan berdasarkan lokasi file video.

Metode HTTP dan URL:

POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models

Isi JSON permintaan:

{
  "datasetId": "dataset-id",
  "displayName": "model-name",
  "videoObjectTrackingModelMetadata": {},
}

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 "x-goog-user-project: project-number" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models"

PowerShell

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

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models" | Select-Object -Expand Content
Anda akan menerima ID operasi untuk operasi pelatihan model Anda. Contoh di atas menunjukkan respons yang berisi ID operasi pelatihan model VOT1741767155885539328.

Mendapatkan status operasi pelatihan model

Anda dapat membuat kueri status operasi pelatihan model menggunakan perintah curl atau PowerShell berikut.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • operation-name: nama operasi seperti yang ditampilkan oleh AutoML Video Intelligence Object Tracking API. Nama operasi memiliki format projects/project-number/locations/location-id/operations/operation-id
  • Catatan:
    • project-number: nomor project Anda
    • location-id: region Cloud tempat anotasi seharusnya dilakukan. Region cloud yang didukung adalah: us-east1, us-west1, europe-west1, asia-east1. Jika tidak ada wilayah yang ditentukan, wilayah akan ditentukan berdasarkan lokasi file video.

Metode HTTP dan URL:

GET https://automl.googleapis.com/v1beta1/operation-name

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
"https://automl.googleapis.com/v1beta1/operation-name"

PowerShell

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/operation-name" | Select-Object -Expand Content
Setelah operasi selesai, status operasi akan menampilkan done: true tanpa error yang tercantum.

Memverifikasi bahwa model tersedia

Setelah operasi pelatihan model berhasil diselesaikan, Anda dapat memverifikasi bahwa model Anda tersedia dengan menggunakan perintah berikut untuk membuat daftar model untuk project Anda.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-number: jumlah project Anda
  • location-id: region Cloud tempat anotasi seharusnya dilakukan. Region cloud yang didukung adalah: us-east1, us-west1, europe-west1, asia-east1. Jika tidak ada wilayah yang ditentukan, wilayah akan ditentukan berdasarkan lokasi file video.

Metode HTTP dan URL:

GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Membuat Prediksi

Anda dapat meminta anotasi (prediksi) untuk video dengan menggunakan metode batchPredict. Metode batchPredict memerlukan dua input:

  1. file CSV yang tersimpan di bucket Cloud Storage yang berisi jalur ke video yang akan dianotasi,
  2. waktu mulai dan berakhir yang mengidentifikasi segmen video untuk diberi anotasi.

Untuk panduan memulai ini, gunakan file CSV yang bernama traffic_video_batch_predict.csv.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • model-id: ganti dengan ID untuk model Anda
  • input-uri: bucket Cloud Storage yang berisi file yang ingin Anda beri anotasi, termasuk nama file-nya. Harus diawali dengan gs://.
    Contoh: "inputUris": ["gs://automl-video-demo-data/traffic_videos/traffic_video_batch_predict.csv"],
  • output-bucket: ganti dengan bucket Cloud Storage yang akan berisi hasil prediksi Anda.
  • object-id: ganti dengan nama objek yang mengidentifikasi tempat untuk menyimpan output permintaan prediksi Anda di bucket Cloud Storage. Catatan: Anda harus memiliki izin tulis ke bucket Cloud Storage.
  • Catatan:
    • project-number: nomor project Anda
    • location-id: region Cloud tempat anotasi seharusnya dilakukan. Region cloud yang didukung adalah: us-east1, us-west1, europe-west1, asia-east1. Jika tidak ada wilayah yang ditentukan, wilayah akan ditentukan berdasarkan lokasi file video.

Metode HTTP dan URL:

POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-id:batchPredict

Meminta isi JSON:

{
  "inputConfig": {
    "gcsSource": {
      "inputUris": ["input-uri"]
    }
  },
  "outputConfig": {
    "gcsDestination": {
      "outputUriPrefix": "gs://output-bucket/object-id"
    }
  }
  "params": {
    "score_threshold": "0.0"
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

Mendapatkan status operasi prediksi

Anda dapat membuat kueri status operasi prediksi batch menggunakan perintah curl atau PowerShell berikut.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • project-number: jumlah project Anda
    • location-id: region Cloud tempat anotasi seharusnya dilakukan. Region cloud yang didukung adalah: us-east1, us-west1, europe-west1, asia-east1. Jika tidak ada wilayah yang ditentukan, wilayah akan ditentukan berdasarkan lokasi file video.
    • operation-id: ID operasi yang berjalan lama yang dibuat untuk permintaan dan diberikan dalam respons saat Anda memulai operasi, misalnya VOT12345....

Metode HTTP dan URL:

GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id"

PowerShell

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id" | Select-Object -Expand Content
operation-name adalah nama operasi seperti yang ditampilkan oleh AutoML Video Intelligence Object Tracking API. Nama operasi memiliki format projects/project-number/locations/location-id/operations/operation-id

Setelah tugas prediksi batch selesai, output prediksi disimpan di bucket Cloud Storage yang Anda tentukan dalam perintah. Ada file JSON untuk setiap segmen video. File JSON memiliki format yang mirip dengan my-video-01.avi.json, dengan ekstensi file .json yang ditambahkan ke nama file asli.

{
  "inputUris": ["automl-video-demo-data/sample_video.avi"],
  "object_annotations": [ {
    "annotation_spec": {
      "display_name": "Cat",
      "description": "Cat"
    },
    "confidence": 0.43253016
    "frames": [ {
      "frame": {
        "time_offset": {
          "seconds": 4,
          "nanos": 960000000
        },
        "normalized_bounding_box": {
          "x_min": 0.1,
          "y_min": 0.1,
          "x_max": 0.8,
          "y_max": 0.8
        }
      }
    }, {
      "frame": {
        "time_offset": {
          "seconds": 5,
          "nanos": 960000000
        },
        "normalized_bounding_box": {
          "x_min": 0.2,
          "y_min": 0.2,
          "x_max": 0.9,
          "y_max": 0.9
        }
      }
    } ],
    "segment": {
      "start_time_offset": {
          "seconds": 4,
          "nanos": 960000000
      },
      "end_time_offset": {
          "seconds": 5,
          "nanos": 960000000
      }
    }
  } ],
  "error": {
    "details": [ ]
  }
}

Pembersihan

Jika tidak lagi memerlukan model kustom dan set data terkait, Anda dapat menghapusnya.

Menghapus model

Anda dapat menghapus model menggunakan perintah curl atau PowerShell berikut.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-number: jumlah project Anda
  • location-id: region Cloud tempat anotasi seharusnya dilakukan. Region cloud yang didukung adalah: us-east1, us-west1, europe-west1, asia-east1. Jika tidak ada wilayah yang ditentukan, wilayah akan ditentukan berdasarkan lokasi file video.
  • model-id: ganti dengan ID untuk model Anda.

Metode HTTP dan URL:

DELETE https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-id

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima kode status yang berhasil (2xx), serta respons yang kosong.

Menghapus set data

Anda dapat menghapus set data menggunakan perintah curl atau PowerShell berikut.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-number: jumlah project Anda
  • location-id: region Cloud tempat anotasi seharusnya dilakukan. Region cloud yang didukung adalah: us-east1, us-west1, europe-west1, asia-east1. Jika tidak ada wilayah yang ditentukan, wilayah akan ditentukan berdasarkan lokasi file video.
  • datase-id: ganti dengan ID untuk ID set data Anda.

Metode HTTP dan URL:

DELETE https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima kode status yang berhasil (2xx), serta respons yang kosong.