Selain pemrosesan streaming, Anda dapat memilih pemrosesan batch sebagai cara untuk mendapatkan informasi dari data. Mode pemrosesan non-streaming ini memungkinkan Anda membuat aplikasi untuk mendukung jenis media lainnya.
Anda dapat memproses batch file gambar 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 Anda memproses batch jenis data berikut:
- 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
CatalogdanProductRecognitionIndexuntuk digunakan saat Anda 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 Anda untuk di proses.
Perjalanan pengguna
Untuk memproses batch data gambar, selesaikan langkah-langkah umum berikut:
Aktifkan Gemini Enterprise Agent Platform 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, dengan setiap instance sesuai dengan lokasi input bucket Cloud Storage.
Deploy aplikasi dan instance aplikasi.
Setelah instance pemrosesan batch selesai, periksa output yang disimpan di Cloud Storage.
Memproses batch gambar
Langkah-langkah untuk mengirim permintaan pemrosesan batch berbeda-beda dari satu model ke model lainnya. Ikuti petunjuk untuk model target Anda guna memproses batch gambar.
Model pengenal produk
Gunakan contoh ini untuk memproses batch gambar dengan model Pengenal produk.
Konsol
Buat permintaan pemrosesan batch gambar di Google Cloud konsol.
Membuat aplikasi baru
Buka tab Applications di dasbor Gemini Enterprise Agent Platform Vision.
Klik tombol Create.
Masukkan nama aplikasi dan pilih wilayah Anda.
Klik Continue.
Pilih metode penagihan Anda. Untuk mengetahui informasi selengkapnya tentang penagihan bulanan versus bayar sesuai penggunaan, lihat halaman harga.
Klik Create.
Menentukan input pemrosesan batch
Di halaman pembuat aplikasi grafik, klik node Universal input.
Di panel samping Universal input, klik Select input sources.
Di halaman Select input sources, pilih Batch prediction.
Klik Continue.
Di panel Sources, klik Browse di kolom pemilih lokasi untuk menunjukkan lokasi file Anda di Cloud Storage.
Opsional. Untuk menentukan lebih banyak sumber, klik Add an item dan ulangi langkah sebelumnya.
Klik Submit.
Menambahkan model
Di halaman pembuat aplikasi grafik, klik node model Product recognizer dari bagian Specialized models.
Di panel Product recognizer, klik Select model.
Pilih Select existing product recognizer model.
Jika Anda perlu membuat model atau indeks baru, pilih opsi yang sesuai untuk membuat resource.
Pilih model dari daftar.
Klik Select.
Opsional. Ubah Confidence threshold.
Klik Apply settings.
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 Anda 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.
Buat model Pengenal produk dengan metode
projects.locations.processors.create.Permintaan ini mencakup referensi ke resource
CatalogdanProductRecognitionIndex. Untuk mengetahui informasi tentang cara membuatCatalogdanProductRecognitionIndexresource, 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 the
projects.locations.applications.createApplicationInstancesmetode.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'Dapatkan instance aplikasi. Informasi ini memberi tahu Anda kapan pemrosesan batch selesai.
Secara khusus, kolom
statemenunjukkan kapan pemrosesan selesai:"state": "FINISHED". Setelah instance selesai, Anda tidak dapat mengubahnya.Anda dapat menggunakan metode
projects.locations.applications.instances.listuntuk melacak instance. Demikian pula, untuk menghapus instance dari daftar ini, gunakan theprojects.locations.applications.deleteApplicationInstancesmetode.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 batch gambar dengan model Pengenal tag.
REST &CMD LINE
Selesaikan langkah-langkah berikut untuk mengirim permintaan pemrosesan batch gambar.
Buat model Pengenal tag dengan metode
projects.locations.processors.create.Tindakan 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 the
projects.locations.applications.createApplicationInstancesmetode.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'Dapatkan instance aplikasi. Informasi ini memberi tahu Anda kapan pemrosesan batch selesai.
Secara khusus, kolom
statemenunjukkan kapan pemrosesan selesai:"state": "FINISHED". Setelah instance selesai, Anda tidak dapat mengubahnya.Anda dapat menggunakan metode
projects.locations.applications.instances.listuntuk melacak instance. Demikian pula, untuk menghapus instance dari daftar ini, gunakan theprojects.locations.applications.deleteApplicationInstancesmetode.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" } }