Batch processing gambar

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

Perjalanan pengguna

Untuk memproses data gambar secara massal, selesaikan langkah-langkah umum berikut:

  1. Aktifkan Vertex AI Vision API.

  2. Buat pemroses yang didukung (Pengenal produk atau Pengenal tag).

  3. Buat aplikasi.

    1. Input: Tambahkan node input universal yang menentukan file yang akan diproses di Cloud Storage.

    2. Pemrosesan: Tambahkan node model Anda.

    3. Output: Tambahkan node penyimpanan output yang menentukan tempat data yang diproses disimpan di Cloud Storage.

  4. Buat instance batch aplikasi Anda, setiap instance sesuai dengan lokasi input bucket Cloud Storage.

  5. Men-deploy aplikasi dan instance aplikasi.

  6. 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

  1. Buka tab Applications di dasbor Vertex AI Vision.

    Buka tab Applications

  2. Klik tombol Create.

  3. Masukkan nama aplikasi dan pilih wilayah Anda.

  4. Klik Lanjutkan.

  5. Pilih metode penagihan Anda. Untuk mengetahui informasi selengkapnya tentang penagihan bayar sesuai penggunaan versus penagihan bulanan, lihat halaman harga.

  6. Klik Buat.

Menentukan input pemrosesan batch

  1. Di halaman pembuat aplikasi grafik, klik node Input universal.

  2. Di panel Input universal samping, klik Pilih sumber input.

  3. Di halaman Select input sources, pilih Batch prediction.

  4. Klik Lanjutkan.

  5. Di panel Sumber, klik Jelajahi di kolom pemilih lokasi untuk menunjukkan lokasi file Anda di Cloud Storage.

  6. Opsional. Untuk menentukan sumber lainnya, klik Add an item dan ulangi langkah sebelumnya.

  7. Klik Kirim.

Menambahkan model

  1. Di halaman pembuat aplikasi grafik, klik node model Pengenali produk dari bagian Model khusus.

  2. Di panel Pengenal produk, klik Pilih model.

  3. Pilih Pilih model pengenal produk yang ada.

    Jika Anda perlu membuat model atau indeks baru, pilih opsi yang sesuai untuk membuat resource.

  4. Pilih model dari daftar.

  5. Klik Pilih.

  6. Opsional. Ubah Nilai minimum keyakinan.

  7. Klik Terapkan setelan.

Menambahkan tujuan output

  1. Di halaman pembuat aplikasi grafik, klik node model Cloud Storage dari bagian Output.

  2. Di panel Cloud Storage, klik Browse untuk memilih tujuan output prediksi batch di Cloud Storage.

Men-deploy aplikasi

  1. Di halaman pembuat aplikasi grafik, klik Deploy.

REST & CMD LINE

Selesaikan langkah-langkah berikut untuk mengirim permintaan pemrosesan batch gambar Anda.

  1. Buat model Pengenal produk dengan metode projects.locations.processors.create.

    Permintaan ini menyertakan referensi ke resource Catalog dan ProductRecognitionIndex. Untuk informasi tentang cara membuat resource Catalog dan ProductRecognitionIndex, 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",
         }
       }
     }'
    
  2. 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'
    
  3. 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'
    
  4. 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'
    
  5. 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 metode projects.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.

  1. 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"
       }
     }'
    
  2. 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'
    
  3. 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'
    
  4. 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'
    
  5. 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 metode projects.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"
         }
     }