Elaborazione batch delle immagini

Oltre all'elaborazione in streaming, puoi scegliere l'elaborazione batch come modo per ottenere informazioni dai dati. Questa modalità di elaborazione non in streaming ti consente di creare applicazioni per supportare altri tipi di contenuti multimediali.

Puoi elaborare in batch i file immagine archiviati in Cloud Storage con modelli selezionati. L'output viene archiviato in Cloud Storage.

Modelli supportati

I seguenti modelli supportano l'elaborazione batch:

  • Riconoscimento tag
  • Riconoscimento dei prodotti

Tipi di dati supportati

Questa pagina descrive come elaborare in batch i seguenti tipi di dati:

  • Dati dell'immagine

Prima di iniziare

User journey

Per elaborare in batch i dati delle immagini, completa i seguenti passaggi generali:

  1. Abilita l'API Vision di Gemini Enterprise Agent Platform.

  2. Crea un processore supportato (riconoscimento dei prodotti o riconoscimento tag).

  3. Crea un'applicazione.

    1. Input: aggiungi un nodo di input universale che specifichi i file da elaborare in Cloud Storage.

    2. Elaborazione: aggiungi il nodo del modello.

    3. Output: aggiungi il nodo di archiviazione dell'output specificando dove sono memorizzati i dati elaborati in Cloud Storage.

  4. Crea istanze batch della tua app, ognuna corrispondente a una posizione di input del bucket Cloud Storage.

  5. Esegui il deployment dell'app e delle istanze dell'app.

  6. Al termine dell'istanza di elaborazione batch, esamina l'output archiviato in Cloud Storage.

Elaborare le immagini in batch

I passaggi per inviare una richiesta di elaborazione batch variano a seconda del modello. Segui le istruzioni per il modello di destinazione per elaborare le immagini in batch.

Modello di riconoscimento dei prodotti

Utilizza questi esempi per elaborare in batch le immagini con un modello di riconoscimento dei prodotti.

Console

Crea una richiesta di elaborazione batch delle immagini nella console Google Cloud .

Creare una nuova applicazione

  1. Apri la scheda Applicazioni della dashboard Vision di Gemini Enterprise Agent Platform.

    Vai alla scheda Applicazioni

  2. Fai clic sul pulsante Crea.

  3. Inserisci il nome di un'app e scegli la tua regione.

  4. Fai clic su Continua.

  5. Scegli il metodo di fatturazione. Per ulteriori informazioni sulla fatturazione a consumo rispetto a quella mensile, consulta la pagina dei prezzi.

  6. Fai clic su Crea.

Specificare gli input dell'elaborazione batch

  1. Nella pagina del builder di app grafiche, fai clic sul nodo Input universale.

  2. Nel riquadro laterale Input universale, fai clic su Seleziona sorgenti di input.

  3. Nella pagina Seleziona origini input, seleziona Previsioni in batch.

  4. Fai clic su Continua.

  5. Nel riquadro Origini, fai clic su Sfoglia nel campo del selettore di posizione per indicare dove si trovano i file in Cloud Storage.

  6. Facoltativo. Per specificare altre origini, fai clic su Aggiungi un elemento e ripeti il passaggio precedente.

  7. Fai clic su Invia.

Aggiungere il modello

  1. Nella pagina del builder di app grafiche, fai clic sul nodo del modello Riconoscimento dei prodotti della sezione Modelli specializzati.

  2. Nel riquadro Riconoscimento dei prodotti, fai clic su Seleziona modello.

  3. Seleziona Seleziona modello esistente di riconoscimento dei prodotti.

    Se devi creare un nuovo modello o indice, seleziona l'opzione corrispondente per creare le risorse.

  4. Scegli il modello dall'elenco.

  5. Fai clic su Seleziona.

  6. Facoltativo. Modifica la soglia di confidenza.

  7. Fai clic su Applica impostazioni.

Aggiungere una destinazione di output

  1. Nella pagina del builder di grafici dell'app, fai clic sul nodo del modello Cloud Storage della sezione Output.

  2. Nel riquadro Cloud Storage, fai clic su Sfoglia per selezionare la destinazione dell'output della previsione batch in Cloud Storage.

Esegui il deployment dell'applicazione

  1. Nella pagina del builder di app grafiche, fai clic su Esegui il deployment.

REST & CMD LINE

Completa i seguenti passaggi per inviare la richiesta di elaborazione batch delle immagini.

  1. Crea un modello di riconoscimento dei prodotti con il metodo projects.locations.processors.create.

    Questa richiesta include un riferimento alle risorse Catalog e ProductRecognitionIndex. Per informazioni sulla creazione di risorse Catalog e ProductRecognitionIndex, consulta la guida al modello di riconoscimento dei prodotti.

    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. Crea un'applicazione con il modello di riconoscimento dei prodotti appena creato. Questa richiesta utilizza il metodo projects.locations.applications.create.

    Corpo della richiesta (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"
          }
        ]
      }
    }
    

    Richiesta:

    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. Crea istanze della tua applicazione utilizzando il metodo projects.locations.applications.createApplicationInstances.

    Corpo della richiesta (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"
         }
       ]
     }
    

    Richiesta:

    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. Esegui il deployment dell'applicazione.

     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. Recupera le istanze dell'app. Queste informazioni indicano quando viene completata l'elaborazione batch.

    In particolare, il campo state mostra quando l'elaborazione è completa: "state": "FINISHED". Una volta completata l'istanza, non puoi modificarla.

    Puoi utilizzare il metodo projects.locations.applications.instances.list per monitorare le istanze. Allo stesso modo, per rimuovere le istanze da questo elenco, utilizza il metodo projects.locations.applications.deleteApplicationInstances.

    Richiesta:

     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'
    

    Risposta di esempio:

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

Modello di riconoscimento tag

Utilizza questi esempi per elaborare in batch le immagini con un modello di riconoscimento tag.

REST & CMD LINE

Completa i seguenti passaggi per inviare la richiesta di elaborazione batch delle immagini.

  1. Crea un modello di riconoscimento tag con il metodo projects.locations.processors.create.

    Per farlo, devi specificare il nome della risorsa del modello originale ospitato nella piattaforma 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. Crea un'applicazione con il modello di riconoscimento tag appena creato. Questa richiesta utilizza il metodo projects.locations.applications.create.

    Corpo della richiesta (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"
           }
         ]
       }
     }
    

    Richiesta:

    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. Crea istanze della tua applicazione utilizzando il metodo projects.locations.applications.createApplicationInstances.

    Corpo della richiesta (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"
         }
       ]
     }
    

    Richiesta:

    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. Esegui il deployment dell'applicazione.

     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. Recupera le istanze dell'app. Queste informazioni indicano quando viene completata l'elaborazione batch.

    In particolare, il campo state mostra quando l'elaborazione è completa: "state": "FINISHED". Una volta completata l'istanza, non puoi modificarla.

    Puoi utilizzare il metodo projects.locations.applications.instances.list per monitorare le istanze. Allo stesso modo, per rimuovere le istanze da questo elenco, utilizza il metodo projects.locations.applications.deleteApplicationInstances.

    Richiesta:

     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'
    

    Risposta di esempio:

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