Selain pemrosesan streaming, Anda dapat memilih pemrosesan batch sebagai cara untuk mendapatkan informasi dari data. Mode pemrosesan non-streaming ini memungkinkan Anda mem-build aplikasi untuk mendukung jenis media lainnya.
Anda dapat memproses file gambar secara massal yang disimpan di Cloud Storage dengan model tertentu. Output disimpan di Cloud Storage.
Model yang didukung
Model berikut mendukung pemrosesan batch:
- Pengenal tag
- Pengenal produk
Jenis data yang didukung
Halaman ini menjelaskan cara memproses jenis data berikut secara massal:
- Data gambar
Sebelum memulai
- Tinjau model yang didukung dan
jenis data yang didukung untuk pemrosesan batch yang dijelaskan di halaman
ini.
- Jika Anda menggunakan model Pengenal produk, buat
Catalog
danProductRecognitionIndex
untuk digunakan saat membuat model Pengenal produk untuk pemrosesan batch. Atau, identifikasi indeks pengenal produk atau model Pengenal produk yang ada untuk digunakan. - Jika Anda menggunakan model Pengenal tag, buat model menggunakan panduan model pengenal tag.
- Jika Anda menggunakan model Pengenal produk, buat
- Buat satu atau beberapa bucket Cloud Storage untuk input dan output pemrosesan batch.
- Temukan file yang didukung dan upload ke bucket input Cloud Storage untuk diproses.
Perjalanan pengguna
Untuk memproses data gambar secara massal, selesaikan langkah-langkah umum berikut:
Aktifkan Vertex AI Vision API.
Buat pemroses yang didukung (Pengenal produk atau Pengenal tag).
Buat aplikasi.
Input: Tambahkan node input universal yang menentukan file yang akan diproses di Cloud Storage.
Pemrosesan: Tambahkan node model Anda.
Output: Tambahkan node penyimpanan output yang menentukan tempat data yang diproses disimpan di Cloud Storage.
Buat instance batch aplikasi Anda, setiap instance sesuai dengan lokasi input bucket Cloud Storage.
Men-deploy aplikasi dan instance aplikasi.
Setelah instance pemrosesan batch selesai, periksa output yang disimpan di Cloud Storage.
Memproses gambar secara batch
Langkah-langkah untuk mengirim permintaan pemrosesan batch bervariasi dari model ke model. Ikuti petunjuk untuk model target Anda guna memproses gambar secara batch.
Model pengenal produk
Gunakan contoh ini untuk memproses gambar secara massal dengan model Pengenal produk.
Konsol
Buat permintaan pemrosesan batch gambar di konsol Google Cloud.
Membuat aplikasi baru
Buka tab Applications di dasbor Vertex AI Vision.
Klik tombol
Create.Masukkan nama aplikasi dan pilih wilayah Anda.
Klik Lanjutkan.
Pilih metode penagihan Anda. Untuk mengetahui informasi selengkapnya tentang penagihan bayar sesuai penggunaan versus penagihan bulanan, lihat halaman harga.
Klik Buat.
Menentukan input pemrosesan batch
Di halaman pembuat aplikasi grafik, klik node Input universal.
Di panel Input universal samping, klik Pilih sumber input.
Di halaman Select input sources, pilih
Batch prediction.Klik Lanjutkan.
Di panel Sumber, klik Jelajahi di kolom pemilih lokasi untuk menunjukkan lokasi file Anda di Cloud Storage.
Opsional. Untuk menentukan sumber lainnya, klik Add an item dan ulangi langkah sebelumnya.
Klik Kirim.
Menambahkan model
Di halaman pembuat aplikasi grafik, klik node model Pengenali produk dari bagian Model khusus.
Di panel Pengenal produk, klik Pilih model.
Pilih
Pilih model pengenal produk yang ada.Jika Anda perlu membuat model atau indeks baru, pilih opsi yang sesuai untuk membuat resource.
Pilih model dari daftar.
Klik Pilih.
Opsional. Ubah Nilai minimum keyakinan.
Klik Terapkan setelan.
Menambahkan tujuan output
Di halaman pembuat aplikasi grafik, klik node model Cloud Storage dari bagian Output.
Di panel Cloud Storage, klik Browse untuk memilih tujuan output prediksi batch di Cloud Storage.
Men-deploy aplikasi
- Di halaman pembuat aplikasi grafik, klik Deploy.
REST & CMD LINE
Selesaikan langkah-langkah berikut untuk mengirim permintaan pemrosesan batch gambar Anda.
Buat model Pengenal produk dengan metode
projects.locations.processors.create
.Permintaan ini menyertakan referensi ke resource
Catalog
danProductRecognitionIndex
. Untuk informasi tentang cara membuat resourceCatalog
danProductRecognitionIndex
, lihat Panduan model pengenal produk.curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/processors?processor_id=product-recognition-model1 \ -d '{ "display_name": "DISPLAY_NAME", "model_type": PRODUCT_RECOGNIZER, "custom_processor_source_info": { "source_type": PRODUCT_RECOGNIZER, "product_recognizer_artifact": { "retail_product_recognition_index":"projects/PROJECT_ID/locations/LOCATION_ID/retailCatalogs/CATALOG_ID/retailProductRecognitionIndexes/INDEX_ID", } } }'
Buat aplikasi dengan model Pengenal produk yang baru dibuat. Permintaan ini menggunakan metode
projects.locations.applications.create
.Isi permintaan (
app.json
):{ "applicationConfigs": { "nodes": [ { "displayName": "Universal Input", "name": "universal-input-0", "processor": "builtin:universal-input" }, { "displayName": "Product Recognition", "name": "product-recognition", "nodeConfig": { "product_recognizer_config": { "recognition_confidence_threshold": 0.75 } }, "parents": [ { "parentNode": "universal-input-0" } ], "processor": "projects/PROJECT_ID/locations/LOCATION_ID/processors/product-recognition-model1" }, { "displayName": "Storage output", "name": "gcs-output", "nodeConfig": { "gcs_output_config": { "gcs_path":"gs://product_recognizer_app_output" } }, "parents": [ { "parentNode": "product-recognition" } ], "processor": "builtin:gcs-output" } ] } }
Permintaan:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @app.json \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications?application_id=product-recognition-app'
Buat instance aplikasi Anda menggunakan metode
projects.locations.applications.createApplicationInstances
.Isi permintaan (
instances.json
):{ "applicationInstances": [ { "instance": { "instanceType": "BATCH_PREDICTION", "inputResources": [ { "consumerNode": "universal-input-0", "dataType": "IMAGE", "inputResource": "gs://product_recognition_input" } ] }, "instanceId": "instance1" }, { "instance": { "instanceType":"BATCH_PREDICTION", "inputResources": [ { "consumerNode": "universal-input-0", "dataType": "IMAGE", "inputResource": "gs://product_recognition_input2" } ] }, "instanceId": "instance2" } ] }
Permintaan:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @instances.json \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/product-recognition-app:createApplicationInstances'
Deploy aplikasi.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/product-recognition-app:deploy'
Mendapatkan instance aplikasi. Informasi ini memberi tahu Anda saat pemrosesan batch selesai.
Secara khusus, kolom
state
menunjukkan saat pemrosesan selesai:"state": "FINISHED"
. Setelah instance selesai, Anda tidak dapat mengubahnya.Anda dapat menggunakan metode
projects.locations.applications.instances.list
untuk melacak instance. Demikian pula, untuk menghapus instance dari daftar ini, gunakan metodeprojects.locations.applications.deleteApplicationInstances
.Permintaan:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/product-recognition-app/instances'
Contoh respons:
{ "instances": [ { "name": "projects/PROJECT_ID/locations/LOCATION_ID/applications/product-recognition-app/instances/instance1", "createTime": "2023-03-30T18:30:51.991004265Z", "inputResources": [ { "inputResource": "gs://product_recognition_input", "consumerNode": "universal-input-0", "dataType": "IMAGE" } ], "outputResources": [ { "outputResource": "gs://product_recognition_output/instance1", "producerNode": "product-recognition", "autogen": true } ], "updateTime": "2023-04-18T04:58:18.592092259Z", "state": "FINISHED", "instanceType": "BATCH_PREDICTION" } }
Model pengenal tag
Gunakan contoh ini untuk memproses gambar secara massal dengan model Pengenal tag.
REST & CMD LINE
Selesaikan langkah-langkah berikut untuk mengirim permintaan pemrosesan batch gambar Anda.
Buat model Pengenal tag dengan metode
projects.locations.processors.create
.Hal ini mengharuskan Anda menentukan nama resource model asli yang dihosting di platform Vertex AI (
vertex_model
).curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/processors?processor_id=tag-recognition-model1 \ -d '{ "display_name": "DISPLAY_NAME", "model_type": TAG_RECOGNIZER, "custom_processor_source_info": { "source_type": VERTEX_AUTOML, "vertex_model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID" } }'
Buat aplikasi dengan model Pengenal tag yang baru dibuat. Permintaan ini menggunakan metode
projects.locations.applications.create
.Isi permintaan (
app.json
):{ "applicationConfigs": { "nodes": [ { "displayName": "Universal Input", "name": "universal-input-0", "processor": "builtin:universal-input" }, { "displayName": "Tag Recognition", "name": "tag-recognition", "nodeConfig": { "tag_recognizer_config": { "tag_parsing_config": { "entity_parsing_configs": [ { "entity_class": "price", "regex": "\\$\\d+\\.\\d{2}", "entity_matching_strategy": "MAX_OVERLAP_AREA" } ] }, "entity_detection_confidence_threshold": 0.0 } }, "parents": [ { "parentNode": "universal-input-0" } ], "processor": "projects/PROJECT_ID/locations/LOCATION_ID/processors/tag-recognition-model1" }, { "displayName": "Storage output", "name": "gcs-output", "nodeConfig": { "gcs_output_config": { "gcs_path": "gs://tag_recognizer_app_output" } }, "parents": [ { "parentNode": "tag-recognition" } ], "processor": "builtin:gcs-output" } ] } }
Permintaan:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @app.json \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications?application_id=tag-recognition-app'
Buat instance aplikasi Anda menggunakan metode
projects.locations.applications.createApplicationInstances
.Isi permintaan (
instances.json
):{ "applicationInstances": [ { "instance": { "instanceType": "BATCH_PREDICTION", "inputResources": [ { "consumerNode": "universal-input-0", "dataType": "IMAGE", "inputResource": "gs://tag_recognition_input" } ] }, "instanceId": "instance1" }, { "instance": { "instanceType":"BATCH_PREDICTION", "inputResources": [ { "consumerNode": "universal-input-0", "dataType": "IMAGE", "inputResource": "gs://tag_recognition_input2" } ] }, "instanceId": "instance2" } ] }
Permintaan:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @instances.json \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/tag-recognition-app:createApplicationInstances'
Deploy aplikasi.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/tag-recognition-app:deploy'
Mendapatkan instance aplikasi. Informasi ini memberi tahu Anda saat pemrosesan batch selesai.
Secara khusus, kolom
state
menunjukkan saat pemrosesan selesai:"state": "FINISHED"
. Setelah instance selesai, Anda tidak dapat mengubahnya.Anda dapat menggunakan metode
projects.locations.applications.instances.list
untuk melacak instance. Demikian pula, untuk menghapus instance dari daftar ini, gunakan metodeprojects.locations.applications.deleteApplicationInstances
.Permintaan:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ 'https://visionai.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/LOCATION_ID/applications/tag-recognition-app/instances'
Contoh respons:
{ "instances": [ { "name": "projects/PROJECT_ID/locations/LOCATION_ID/applications/tag-recognition-app/instances/instance1", "createTime": "2023-03-30T18:30:51.991004265Z", "inputResources": [ { "inputResource": "gs://tag_recognition_input", "consumerNode": "universal-input-0", "dataType": "IMAGE" } ], "outputResources": [ { "outputResource": "gs://tag_recognition_output/instance1", "producerNode": "tag-recognition", "autogen": true } ], "updateTime": "2023-04-18T04:58:18.592092259Z", "state": "FINISHED", "instanceType": "BATCH_PREDICTION" } }