Oltre all'elaborazione in streaming, puoi scegliere l'elaborazione batch come metodo per recuperare 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 collettiva:
- 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
- Esamina i modelli supportati e i
tipi di dati supportati per l'elaborazione batch descritta in questa
pagina.
- Se utilizzi un modello di riconoscimento dei prodotti, crea un
Catalog
e unProductRecognitionIndex
da utilizzare quando crei un modello di riconoscimento dei prodotti per l'elaborazione batch. In alternativa, identifica un indice di riconoscimento dei prodotti o un modello di riconoscimento dei prodotti esistente da utilizzare. - Se utilizzi un modello di riconoscimento tag, crea un modello utilizzando la guida ai modelli di riconoscimento tag.
- Se utilizzi un modello di riconoscimento dei prodotti, crea un
- Crea uno o più bucket Cloud Storage per l'elaborazione batch di input e output.
- Individua i file supportati e caricali nel bucket di input Cloud Storage per farli elaborare.
Percorso dell'utente
Per elaborare in batch i dati delle immagini, segui questi passaggi generali:
Abilita l'API Vertex AI Vision.
Crea un elaboratore supportato (Riconoscimento dei prodotti o Riconosci tag).
Crea un'applicazione.
Input: aggiungi un nodo di input universale che specifichi i file da elaborare in Cloud Storage.
Elaborazione: aggiungi il nodo del modello.
Output: aggiungi il nodo di archiviazione di output specificando dove vengono memorizzati i dati elaborati in Cloud Storage.
Crea istanze batch della tua app, ciascuna corrispondente a una posizione di input del bucket Cloud Storage.
Esegui il deployment dell'app e delle istanze dell'app.
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 da un modello all'altro. 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 collettiva delle immagini nella console Google Cloud.
Creare una nuova applicazione
Apri la scheda Applicazioni della dashboard di Vertex AI Vision.
Fai clic sul pulsante
Crea.Inserisci il nome di un'app e scegli la tua regione.
Fai clic su Continua.
Scegli il metodo di fatturazione. Per ulteriori informazioni sul pagamento post-pagamento rispetto alla fatturazione mensile, consulta la pagina dei prezzi.
Fai clic su Crea.
Specificare gli input per l'elaborazione batch
Nella pagina del generatore di app di grafici, fai clic sul nodo Input universale.
Nel riquadro laterale Input universale, fai clic su Seleziona origini dati.
Nella pagina Seleziona le origini di input, seleziona
Predizione batch.Fai clic su Continua.
Nel riquadro Origini, fai clic su Sfoglia nel campo del selettore di posizione per indicare dove si trovano i file in Cloud Storage.
Facoltativo. Per specificare altre origini, fai clic su Aggiungi un elemento e ripeti il passaggio precedente.
Fai clic su Invia.
Aggiungi il modello
Nella pagina del Graph App Builder, fai clic sul nodo del modello Riconoscimento dei prodotti nella sezione Modelli specializzati.
Nel riquadro Riconoscimento dei prodotti, fai clic su Seleziona modello.
Seleziona
Seleziona un modello esistente di riconoscimento dei prodotti.Se devi creare un nuovo modello o indice, seleziona l'opzione corrispondente per creare le risorse.
Scegli il modello dall'elenco.
Fai clic su Seleziona.
Facoltativo. Modifica la soglia di confidenza.
Fai clic su Applica impostazioni.
Aggiungere una destinazione di output
Nella pagina del generatore di app di grafo, fai clic sul nodo del modello Cloud Storage nella sezione Output.
Nel riquadro Cloud Storage, fai clic su Sfoglia per selezionare la destinazione di output della previsione batch in Cloud Storage.
Esegui il deployment dell'applicazione
- Nella pagina del generatore di app di grafo, fai clic su Esegui il deployment.
REST e riga di comando
Completa i seguenti passaggi per inviare la richiesta di elaborazione collettiva delle immagini.
Crea un modello di riconoscimento dei prodotti con il metodo
projects.locations.processors.create
.Questa richiesta include un riferimento alle risorse
Catalog
eProductRecognitionIndex
. Per informazioni sulla creazione di risorseCatalog
eProductRecognitionIndex
, 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", } } }'
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'
Crea istanze dell'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'
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'
Ottieni le istanze dell'app. Queste informazioni ti indicano quando viene completata l'elaborazione collettiva.
In particolare, il campo
state
mostra quando l'elaborazione è completata:"state": "FINISHED"
. Una volta completata l'istanza, non puoi modificarla.Puoi utilizzare il metodo
projects.locations.applications.instances.list
per monitorare le istanze. Analogamente, per rimuovere istanze da questo elenco, utilizza il metodoprojects.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 e riga di comando
Completa i seguenti passaggi per inviare la richiesta di elaborazione collettiva delle immagini.
Crea un modello di riconoscimento dei 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" } }'
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'
Crea istanze dell'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'
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'
Ottieni le istanze dell'app. Queste informazioni ti indicano quando viene completata l'elaborazione collettiva.
In particolare, il campo
state
mostra quando l'elaborazione è completata:"state": "FINISHED"
. Una volta completata l'istanza, non puoi modificarla.Puoi utilizzare il metodo
projects.locations.applications.instances.list
per monitorare le istanze. Analogamente, per rimuovere istanze da questo elenco, utilizza il metodoprojects.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" } }