Batchverarbeitung von Bildern

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

Sie können in Cloud Storage gespeicherte Bilddateien mit ausgewählten Modellen im Batch 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 Batch verarbeiten:

  • Bilddaten

Hinweise

Nutzerpfad

So verarbeiten Sie Bilddaten im Batch-Verfahren:

  1. Aktivieren Sie die Vertex AI 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, in dem die Dateien angegeben werden, die in Cloud Storage verarbeitet werden sollen.

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

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

  4. Erstellen Sie Batchinstanzen Ihrer App, wobei jede Instanz einem Cloud Storage-Bucket-Eingabeort entspricht.

  5. Stellen Sie die App und die App-Instanzen bereit.

  6. Nachdem die Batchverarbeitung abgeschlossen ist, können Sie sich die in Cloud Storage gespeicherte Ausgabe ansehen.

Bilder im Batch verarbeiten

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

Modell für die Produkterkennung

Verwenden Sie diese Beispiele, um Bilder mit einem Modell zur Produkterkennung im Batch zu verarbeiten.

Console

Erstellen Sie in der Google Cloud Console eine Anfrage für die Bildbatchverarbeitung.

Neue Anwendung erstellen

  1. Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.

    Gehen Sie zum Tab „Anwendungen“.

  2. Klicken Sie auf die Schaltfläche Erstellen.

  3. Geben Sie den Namen einer App ein und wählen Sie Ihre Region aus.

  4. Klicken Sie auf Weiter.

  5. Wählen Sie die Abrechnungsmethode aus. Weitere Informationen zur Abrechnung nach Verbrauch und zur monatlichen Abrechnung finden Sie auf der Preisseite.

  6. Klicken Sie auf Erstellen.

Eingabedaten für die Batchverarbeitung angeben

  1. Klicken Sie auf der Seite „Graph App Builder“ auf den Knoten Universale Eingabe.

  2. Klicken Sie im seitlichen Bereich Universale 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 Speicherortauswahl auf Durchsuchen, um anzugeben, 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 „Graph App Builder“ im Bereich Spezielle 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öchten, 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 Konfidenzwert.

  7. Klicken Sie auf Einstellungen anwenden.

Ausgabeziel hinzufügen

  1. Klicken Sie auf der Seite „Graph App Builder“ im Bereich Output auf den Modellknoten Cloud Storage.

  2. Klicken Sie im Bereich Cloud Storage auf Durchsuchen, um das Ausgabeziel für die Batch-Vorhersage in Cloud Storage auszuwählen.

Anwendung bereitstellen

  1. Klicken Sie auf der Seite „Graph App Builder“ auf Bereitstellen.

REST UND BEFEHLSZEILE

Führen Sie die folgenden Schritte aus, um eine Anfrage zur Batchverarbeitung von Bildern zu senden.

  1. Erstellen Sie ein Modell zur Produkterkennung mit der Methode projects.locations.processors.create.

    Diese Anfrage enthält einen Verweis auf Catalog- und ProductRecognitionIndex-Ressourcen. Informationen zum Erstellen von Catalog- und ProductRecognitionIndex-Ressourcen finden Sie im Leitfaden für Modelle zur 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 zur Produkterkennung. Diese Anfrage verwendet die Methode projects.locations.applications.create.

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

    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. Stellen Sie die Anwendung bereit.

     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. App-Instanzen abrufen Hier sehen Sie, wann die Batchverarbeitung abgeschlossen ist.

    Insbesondere wird im Feld state angezeigt, wann die Verarbeitung abgeschlossen ist: "state": "FINISHED". Nach Abschluss der Instanz kann sie nicht mehr geändert werden.

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

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

Tag-Erkennungsmodell

Verwenden Sie diese Beispiele, um Bilder mit einem Modell zur Tag-Erkennung im Batch zu verarbeiten.

REST UND BEFEHLSZEILE

Führen Sie die folgenden Schritte aus, um eine Anfrage zur Batchverarbeitung von Bildern zu senden.

  1. Erstellen Sie ein Tag-Erkennungsmodell mit der Methode projects.locations.processors.create.

    Dazu müssen Sie den Ressourcennamen des ursprünglichen Modells angeben, das auf 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 Tag-Erkennungsmodell. Diese Anfrage verwendet die Methode projects.locations.applications.create.

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

    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. Stellen Sie die Anwendung bereit.

     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. App-Instanzen abrufen Hier sehen Sie, wann die Batchverarbeitung abgeschlossen ist.

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

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

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