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
- Sehen Sie sich die unterstützten Modelle und unterstützten Datentypen für die auf dieser Seite beschriebene Batchverarbeitung an.
- Wenn Sie ein Modell zur Produkterkennung verwenden, erstellen Sie
Catalog
undProductRecognitionIndex
, um sie beim Erstellen eines Modells zur Produkterkennung für die Batchverarbeitung zu verwenden. Alternativ können Sie einen vorhandenen Index oder ein vorhandenes Modell für die Produkterkennung verwenden. - Wenn Sie ein Modell zur Tag-Erkennung verwenden, erstellen Sie ein Modell anhand der Anleitung zum Erstellen eines Modells zur Tag-Erkennung.
- Wenn Sie ein Modell zur Produkterkennung verwenden, erstellen Sie
- Erstellen Sie einen oder mehrere Cloud Storage-Buckets für die Batchverarbeitung von Eingabe- und Ausgabedaten.
- Suchen Sie nach unterstützten Dateien und laden Sie sie zur Verarbeitung in Ihren Cloud Storage-Eingabe-Bucket hoch.
Nutzerpfad
So verarbeiten Sie Bilddaten im Batch-Verfahren:
Aktivieren Sie die Vertex AI Vision API.
Erstellen Sie einen unterstützten Prozessor (Produkterkennung oder Tag-Erkennung).
Erstellen Sie eine Anwendung.
Eingabe: Fügen Sie einen universellen Eingabeknoten hinzu, in dem die Dateien angegeben werden, die in Cloud Storage verarbeitet werden sollen.
Verarbeitung: Fügen Sie den Modellknoten hinzu.
Ausgabe: Fügen Sie den Ausgabespeicherknoten hinzu und geben Sie an, wo die verarbeiteten Daten in Cloud Storage gespeichert werden.
Erstellen Sie Batchinstanzen Ihrer App, wobei jede Instanz einem Cloud Storage-Bucket-Eingabeort entspricht.
Stellen Sie die App und die App-Instanzen bereit.
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
Öffnen Sie den Tab Anwendungen des Vertex AI Vision-Dashboards.
Klicken Sie auf die Schaltfläche
Erstellen.Geben Sie den Namen einer App ein und wählen Sie Ihre Region aus.
Klicken Sie auf Weiter.
Wählen Sie die Abrechnungsmethode aus. Weitere Informationen zur Abrechnung nach Verbrauch und zur monatlichen Abrechnung finden Sie auf der Preisseite.
Klicken Sie auf Erstellen.
Eingabedaten für die Batchverarbeitung angeben
Klicken Sie auf der Seite „Graph App Builder“ auf den Knoten Universale Eingabe.
Klicken Sie im seitlichen Bereich Universale Eingabe auf Eingabequellen auswählen.
Wählen Sie auf der Seite Eingabequellen auswählen die Option
Batchvorhersage aus.Klicken Sie auf Weiter.
Klicken Sie im Bereich Quellen im Feld für die Speicherortauswahl auf Durchsuchen, um anzugeben, wo sich Ihre Dateien in Cloud Storage befinden.
Optional. Wenn Sie weitere Quellen angeben möchten, klicken Sie auf Element hinzufügen und wiederholen Sie den vorherigen Schritt.
Klicken Sie auf Senden.
Modell hinzufügen
Klicken Sie auf der Seite „Graph App Builder“ im Bereich Spezielle Modelle auf den Modellknoten Produkterkennung.
Klicken Sie im Bereich Produkterkennung auf Modell auswählen.
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.
Wählen Sie das Modell aus der Liste aus.
Klicken Sie auf Auswählen.
Optional. Ändern Sie den Konfidenzwert.
Klicken Sie auf Einstellungen anwenden.
Ausgabeziel hinzufügen
Klicken Sie auf der Seite „Graph App Builder“ im Bereich Output auf den Modellknoten Cloud Storage.
Klicken Sie im Bereich Cloud Storage auf Durchsuchen, um das Ausgabeziel für die Batch-Vorhersage in Cloud Storage auszuwählen.
Anwendung bereitstellen
- 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.
Erstellen Sie ein Modell zur Produkterkennung mit der Methode
projects.locations.processors.create
.Diese Anfrage enthält einen Verweis auf
Catalog
- undProductRecognitionIndex
-Ressourcen. Informationen zum Erstellen vonCatalog
- undProductRecognitionIndex
-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", } } }'
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'
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'
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'
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 Methodeprojects.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.
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" } }'
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'
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'
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'
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 Methodeprojects.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" } }