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

Perjalanan pengguna

Untuk memproses batch data gambar, selesaikan langkah-langkah umum berikut:

  1. Aktifkan Gemini Enterprise Agent Platform 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, dengan setiap instance sesuai dengan lokasi input bucket Cloud Storage.

  5. Deploy aplikasi dan instance aplikasi.

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

  1. Buka tab Applications di dasbor Gemini Enterprise Agent Platform Vision.

    Buka tab Aplikasi

  2. Klik tombol Create.

  3. Masukkan nama aplikasi dan pilih wilayah Anda.

  4. Klik Continue.

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

  6. Klik Create.

Menentukan input pemrosesan batch

  1. Di halaman pembuat aplikasi grafik, klik node Universal input.

  2. Di panel samping Universal input, klik Select input sources.

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

  4. Klik Continue.

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

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

  7. Klik Submit.

Menambahkan model

  1. Di halaman pembuat aplikasi grafik, klik node model Product recognizer dari bagian Specialized models.

  2. Di panel Product recognizer, klik Select model.

  3. Pilih Select existing product recognizer model.

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

  4. Pilih model dari daftar.

  5. Klik Select.

  6. Opsional. Ubah Confidence threshold.

  7. Klik Apply settings.

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

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

    Permintaan ini mencakup referensi ke resource Catalog dan ProductRecognitionIndex. Untuk mengetahui informasi tentang cara membuat Catalog dan ProductRecognitionIndex resource, 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 the projects.locations.applications.createApplicationInstances metode.

    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. Dapatkan instance aplikasi. Informasi ini memberi tahu Anda kapan pemrosesan batch selesai.

    Secara khusus, kolom state menunjukkan kapan 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 the projects.locations.applications.deleteApplicationInstances metode.

    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.

  1. 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"
       }
     }'
    
  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 the projects.locations.applications.createApplicationInstances metode.

    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. Dapatkan instance aplikasi. Informasi ini memberi tahu Anda kapan pemrosesan batch selesai.

    Secara khusus, kolom state menunjukkan kapan 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 the projects.locations.applications.deleteApplicationInstances metode.

    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"
         }
     }