Setelah membuat dan melatih model, Anda dapat membuat
permintaan prediksi asinkron
untuk sekumpulan gambar menggunakan
metode
batchPredict
. Metode batchPredict
menerapkan label pada gambar Anda berdasarkan
objek utama gambar yang diprediksi model Anda.
Masa aktif maksimum untuk model kustom adalah 18 bulan sejak rilisnya GA. Setelah itu, Anda harus membuat dan melatih model baru untuk melanjutkan anotasi konten.
Prediksi batch
Anda dapat meminta anotasi (prediksi) untuk gambar menggunakan
perintah batchPredict
. Perintah batchPredict
mengambil file CSV sebagai input
yang disimpan dalam bucket Google Cloud Storage Anda yang berisi jalur ke
gambar yang akan dianotasi. Setiap baris menentukan jalur terpisah ke gambar di Google
Cloud Storage.
batch_prediction.csv
:
gs://my-cloud-storage-bucket/prediction_files/image1.jpg gs://my-cloud-storage-bucket/prediction_files/image2.jpg gs://my-cloud-storage-bucket/prediction_files/image3.jpg gs://my-cloud-storage-bucket/prediction_files/image4.jpg gs://my-cloud-storage-bucket/prediction_files/image5.jpg gs://my-cloud-storage-bucket/prediction_files/image6.png
Tugas prediksi batch ini dapat memakan waktu beberapa saat bergantung pada jumlah gambar yang Anda tentukan dalam file CSV. Bahkan prediksi batch gambar memerlukan waktu paling tidak 30 menit untuk menyelesaikan sejumlah kecil gambar.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID project GCP Anda.
- location-id: ID lokasi yang valid. Saat ini, Anda
harus menggunakan nilai berikut:
us-central1
- model-id: ID model Anda, dari
respons saat Anda membuat model. ID adalah elemen terakhir dari nama model Anda.
Misalnya:
- nama model:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- id model:
IOD4412217016962778756
- nama model:
- input-storage-path: jalur ke file CSV yang disimpan di Google Cloud Storage. Pengguna yang membuat permntaan harus memiliki paling tidak izin baca ke bucket.
- output-storage-bucket: bucket/direktori
Google Cloud Storage tempat file output disimpan, yang dinyatakan dalam bentuk berikut:
gs://bucket/directory/
. Pengguna yang membuat permintaan harus memiliki izin tulis ke bucket.
Pertimbangan khusus kolom:
params.score_threshold
- Nilai antara 0,0 hingga 1,0. Hanya hasil dengan skor lebih besar atau sama dengan nilai ini yang akan ditampilkan.
Metode HTTP dan URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID:batchPredict
Isi JSON permintaan:
{ "inputConfig": { "gcsSource": { "inputUris": [ "INPUT_STORAGE_PATH" ] } }, "outputConfig": { "gcsDestination": { "outputUriPrefix": "OUTPUT_STORAGE_BUCKET" } }, "params": { "score_threshold": "0.0" } }
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-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID:batchPredict"
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-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID:batchPredict" | Select-Object -Expand Content
Anda akan melihat output yang mirip dengan berikut ini:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/ICN926615623331479552", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-06-19T21:28:35.302067Z", "updateTime": "2019-06-19T21:28:35.302067Z", "batchPredictDetails": { "inputConfig": { "gcsSource": { "inputUris": [ "INPUT_STORAGE_PATH" ] } } } } }
Anda dapat menggunakan ID operasi
(dalam hal ini, ICN926615623331479552
) untuk mendapatkan status tugas. Sebagai
contoh, lihat Bekerja dengan operasi yang berjalan lama.
Setelah operasi selesai, state
akan ditampilkan sebagai DONE
dan hasilnya akan ditulis ke file Google Cloud Storage yang Anda tentukan:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/ICN926615623331479552", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-06-19T21:28:35.302067Z", "updateTime": "2019-06-19T21:57:18.310033Z", "batchPredictDetails": { "inputConfig": { "gcsSource": { "inputUris": [ "INPUT_STORAGE_PATH" ] } }, "outputInfo": { "gcsOutputDirectory": "gs://STORAGE_BUCKET_VCM/SUBDIRECTORY/prediction-8370559933346329705-YYYY-MM-DDThh:mm:ss.sssZ" } } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.BatchPredictResult" } }
Lihat bagian File output JSONL di bawah ini untuk file output contoh.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan untuk bahasa ini di halaman Library Klien.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan untuk bahasa ini di halaman Library Klien.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan untuk bahasa ini di halaman Library Klien.
Bahasa tambahan
C# : Ikuti Petunjuk penyiapan C# di halaman library klien, lalu kunjungi dokumentasi referensi AutoML Vision untuk .NET.
PHP : Ikuti Petunjuk penyiapan PHP di halaman library klien, lalu kunjungi dokumentasi referensi AutoML Vision untuk PHP.
Ruby: Ikuti petunjuk penyiapan Ruby pada halaman library klien, lalu kunjungi dokumentasi referensi AutoML Vision untuk Ruby.
Membuat output file JSONL
Ketika tugas prediksi batch selesai, output prediksi disimpan di bucket Google Cloud Storage yang Anda tentukan dalam perintah Anda.
Dalam bucket output Anda (jika ada, dalam direktori yang ditentukan),
file image_classification_1.jsonl
,
image_classification_2.jsonl
,...,image_classification_N.jsonl
akan dibuat,
di mana N mungkin bernilai 1, dan bergantung pada jumlah total gambar dan anotasi
yang berhasil diprediksi.
Satu gambar hanya akan dicantumkan sekali beserta semua anotasinya, dan anotasinya tidak akan pernah dibagi ke seluruh file.
Setiap file JSONL akan berisi, setiap barisnya, representasi JSON dari proto yang menggabungkan "ID" gambar: "<id_value>", yang diikuti dengan daftar nol atau lebih proto AnnotationPayload (disebut sebagai anotasi), yang berisi detail klasifikasi.
Contoh file JSONL:
image_image_classification_0.jsonl
- Satu file .jsonl dengan 4 baris,
dengan setiap barisnya berkaitan dengan JSON anotasi file gambar.
Bekerja dengan operasi yang berjalan lama
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: project ID GCP Anda.
- operation-id: ID operasi Anda. ID tersebut adalah elemen terakhir dari nama
operasi Anda. Contoh:
- nama operasi:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- ID Operasi:
IOD5281059901324392598
- nama operasi:
Metode HTTP dan URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/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-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID" | Select-Object -Expand Content
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T16:10:41.326614Z", "importDataDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Anda akan melihat output yang mirip dengan hal berikut ini untuk membuat operasi model yang telah selesai:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T18:35:06.881193Z", "updateTime": "2019-07-22T19:58:44.972235Z", "createModelDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Model", "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID" } }
Go
Sebelum mencoba sampel ini, ikuti petunjuk penyiapan untuk bahasa ini di halaman API & Referensi > Library Klien.
Java
Sebelum mencoba sampel ini, ikuti petunjuk penyiapan untuk bahasa ini di halaman API & Referensi > Library Klien.
Node.js
Sebelum mencoba sampel ini, ikuti petunjuk penyiapan untuk bahasa ini di halaman API & Referensi > Library Klien.
Python
Sebelum mencoba sampel ini, ikuti petunjuk penyiapan untuk bahasa ini di halaman API & Referensi > Library Klien.
Bahasa tambahan
C# : Ikuti Petunjuk penyiapan C# di halaman library klien, lalu kunjungi dokumentasi referensi AutoML Vision untuk .NET.
PHP : Ikuti Petunjuk penyiapan PHP di halaman library klien, lalu kunjungi dokumentasi referensi AutoML Vision untuk PHP.
Ruby : Ikuti Petunjuk penyiapan Ruby di halaman library klien, lalu kunjungi dokumentasi referensi AutoML Vision untuk Ruby.