Batchverarbeitung von Bildern

Neben der Streamingverarbeitung können Sie auch die Batchverarbeitung verwenden, um Informationen aus Daten zu gewinnen. Mit diesem Verarbeitungsmodus ohne Streaming können Sie Anwendungen erstellen, die andere Medientypen unterstützen.

Sie können Bilddateien, die in Cloud Storage gespeichert sind, mit ausgewählten Modellen im Batchverfahren verarbeiten. Die Ausgabe wird in Cloud Storage gespeichert.

Unterstützte Modelle

Die folgenden Modelle unterstützen die Batchverarbeitung:

  • Tag-Erkennung
  • Produkterkennung

Unterstützte Datentypen

Auf dieser Seite wird beschrieben, wie Sie die folgenden Datentypen im Batchverfahren verarbeiten:

  • Bilddaten

Hinweis

Nutzerpfad

So verarbeiten Sie Bilddaten im Batchverfahren:

  1. Aktivieren Sie die Gemini Enterprise Agent Platform Vision API.

  2. Erstellen Sie einen unterstützten Prozessor (Produkterkennung oder Tag-Erkennung).

  3. Erstellen Sie eine Anwendung.

    1. Eingabe: Fügen Sie einen universellen Eingabeknoten hinzu, der die in Cloud Storage zu verarbeitenden Dateien angibt.

    2. Verarbeitung: Fügen Sie Ihren Modellknoten hinzu.

    3. Ausgabe: Fügen Sie den Ausgabespeicherknoten hinzu, der angibt, wo die verarbeiteten Daten in Cloud Storage gespeichert werden.

  4. Erstellen Sie Batchinstanzen Ihrer Anwendung. Jede Instanz entspricht einem Cloud Storage-Bucket-Eingabestandort.

  5. Stellen Sie die Anwendung und die Anwendungsinstanzen bereit.

  6. Nachdem die Batchverarbeitungsinstanz abgeschlossen ist, sehen Sie sich die in Cloud Storage gespeicherte Ausgabe an.

Bilder im Batchverfahren verarbeiten

Die Schritte zum Senden einer Batchverarbeitungsanfrage variieren je nach Modell. Folgen Sie der Anleitung für Ihr Zielmodell, um Bilder im Batchverfahren zu verarbeiten.

Modell für die Produkterkennung

Verwenden Sie diese Beispiele, um Bilder mit einem Modell für die Produkterkennung im Batchverfahren zu verarbeiten.

Console

Erstellen Sie in der Google Cloud Console eine Batchverarbeitungsanfrage für Bilder.

Neue Anwendung erstellen

  1. Öffnen Sie den Tab Anwendungen des Gemini Enterprise Agent Platform Vision-Dashboards.

    Tab „Anwendungen“ aufrufen

  2. Klicken Sie auf die Schaltfläche „Hinzufügen“ Erstellen.

  3. Geben Sie einen Anwendungsnamen ein und wählen Sie Ihre Region aus.

  4. Klicken Sie auf Weiter.

  5. Wählen Sie Ihre Abrechnungsmethode aus. Weitere Informationen zur nutzungsabhängigen Abrechnung und zur monatlichen Abrechnung finden Sie auf der Preisseite.

  6. Klicken Sie auf Erstellen.

Eingaben für die Batchverarbeitung angeben

  1. Klicken Sie auf der Seite des Graph-App-Builders auf den Knoten Universelle Eingabe.

  2. Klicken Sie im Seitenbereich Universelle Eingabe auf Eingabequellen auswählen.

  3. Wählen Sie auf der Seite Eingabequellen auswählen die Option Batchvorhersage aus.

  4. Klicken Sie auf Weiter.

  5. Klicken Sie im Bereich Quellen im Feld für die Standortauswahl auf Durchsuchen und geben Sie an, wo sich Ihre Dateien in Cloud Storage befinden.

  6. Optional. Wenn Sie weitere Quellen angeben möchten, klicken Sie auf Element hinzufügen und wiederholen Sie den vorherigen Schritt.

  7. Klicken Sie auf Senden.

Modell hinzufügen

  1. Klicken Sie auf der Seite des Graph-App-Builders im Bereich Spezialisierte Modelle auf den Modellknoten Produkterkennung.

  2. Klicken Sie im Bereich Produkterkennung auf Modell auswählen.

  3. Wählen Sie Vorhandenes Modell der Produkterkennung auswählen aus.

    Wenn Sie ein neues Modell oder einen neuen Index erstellen müssen, wählen Sie die entsprechende Option aus, um die Ressourcen zu erstellen.

  4. Wählen Sie das Modell aus der Liste aus.

  5. Klicken Sie auf Auswählen.

  6. Optional. Ändern Sie den Konfidenzschwellenwert.

  7. Klicken Sie auf Einstellungen anwenden.

Ausgabeziel hinzufügen

  1. Klicken Sie auf der Seite des Graph-App-Builders im Bereich Ausgabe auf den Modellknoten Cloud Storage.

  2. Klicken Sie im Bereich Cloud Storage auf Durchsuchen und wählen Sie das Ausgabeziel für die Batchvorhersage in Cloud Storage aus.

Anwendung bereitstellen

  1. Klicken Sie auf der Seite des Graph-App-Builders auf Bereitstellen.

REST UND BEFEHLSZEILE

Führen Sie die folgenden Schritte aus, um Ihre Batchverarbeitungsanfrage für Bilder zu senden.

  1. Erstellen Sie mit der projects.locations.processors.create Methode ein Modell für die Produkterkennung.

    Diese Anfrage enthält einen Verweis auf die Ressourcen Catalog und ProductRecognitionIndex. Informationen zum Erstellen von Catalog und ProductRecognitionIndex -Ressourcen finden Sie in der Anleitung für das Modell für die Produkterkennung.

    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. Erstellen Sie eine Anwendung mit dem neu erstellten Modell für die Produkterkennung. Diese Anfrage verwendet die projects.locations.applications.create Methode.

    Anfragetext (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"
          }
        ]
      }
    }
    

    Anfrage :

    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. Erstellen Sie Instanzen Ihrer Anwendung mit der projects.locations.applications.createApplicationInstances Methode.

    Anfragetext (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"
         }
       ]
     }
    

    Anfrage :

    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. Anwendung bereitstellen

     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. Rufen Sie Anwendungsinstanzen ab. Diese Informationen geben an, wann die Batchverarbeitung abgeschlossen ist.

    Insbesondere das Feld state zeigt an, wann die Verarbeitung abgeschlossen ist: "state": "FINISHED". Nach Abschluss der Instanz können Sie sie nicht mehr ändern.

    Sie können die projects.locations.applications.instances.list Methode verwenden, um Instanzen zu verfolgen. Verwenden Sie die projects.locations.applications.deleteApplicationInstances Methode, um Instanzen aus dieser Liste zu entfernen.

    Anfrage :

     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'
    

    Beispielantwort :

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

Modell für die Tag-Erkennung

Verwenden Sie diese Beispiele, um Bilder mit einem Modell für die Tag-Erkennung im Batchverfahren zu verarbeiten.

REST UND BEFEHLSZEILE

Führen Sie die folgenden Schritte aus, um Ihre Batchverarbeitungsanfrage für Bilder zu senden.

  1. Erstellen Sie mit der projects.locations.processors.create Methode ein Modell für die Tag-Erkennung.

    Dazu müssen Sie den Ressourcennamen des ursprünglichen Modells angeben, das in der Vertex AI-Plattform gehostet wird (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. Erstellen Sie eine Anwendung mit dem neu erstellten Modell für die Tag-Erkennung. Diese Anfrage verwendet die projects.locations.applications.create Methode.

    Anfragetext (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"
           }
         ]
       }
     }
    

    Anfrage :

    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. Erstellen Sie Instanzen Ihrer Anwendung mit der projects.locations.applications.createApplicationInstances Methode.

    Anfragetext (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"
         }
       ]
     }
    

    Anfrage :

    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. Anwendung bereitstellen

     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. Rufen Sie Anwendungsinstanzen ab. Diese Informationen geben an, wann die Batchverarbeitung abgeschlossen ist.

    Insbesondere das Feld state zeigt an, wann die Verarbeitung abgeschlossen ist: "state": "FINISHED". Nach Abschluss der Instanz können Sie sie nicht mehr ändern.

    Sie können die projects.locations.applications.instances.list Methode verwenden, um Instanzen zu verfolgen. Verwenden Sie die projects.locations.applications.deleteApplicationInstances Methode, um Instanzen aus dieser Liste zu entfernen.

    Anfrage :

     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'
    

    Beispielantwort :

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