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
- 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
Cataloge unProductRecognitionIndexda 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, creane uno seguendo la guida al modello 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 da elaborare.
User journey
Per elaborare in batch i dati delle immagini, completa i seguenti passaggi generali:
Abilita l'API Vision di Gemini Enterprise Agent Platform.
Crea un processore supportato (riconoscimento dei prodotti o riconoscimento 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 dell'output specificando dove sono memorizzati i dati elaborati in Cloud Storage.
Crea istanze batch della tua app, ognuna 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 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
Apri la scheda Applicazioni della dashboard Vision di Gemini Enterprise Agent Platform.
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 sulla fatturazione a consumo rispetto a quella mensile, consulta la pagina dei prezzi.
Fai clic su Crea.
Specificare gli input dell'elaborazione batch
Nella pagina del builder di app grafiche, fai clic sul nodo Input universale.
Nel riquadro laterale Input universale, fai clic su Seleziona sorgenti di input.
Nella pagina Seleziona origini input, seleziona Previsioni in 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.
Aggiungere il modello
Nella pagina del builder di app grafiche, fai clic sul nodo del modello Riconoscimento dei prodotti della sezione Modelli specializzati.
Nel riquadro Riconoscimento dei prodotti, fai clic su Seleziona modello.
Seleziona Seleziona 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 builder di grafici dell'app, fai clic sul nodo del modello Cloud Storage della sezione Output.
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
- 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.
Crea un modello di riconoscimento dei prodotti con il metodo
projects.locations.processors.create.Questa richiesta include un riferimento alle risorse
CatalogeProductRecognitionIndex. Per informazioni sulla creazione di risorseCatalogeProductRecognitionIndex, 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 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'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'Recupera le istanze dell'app. Queste informazioni indicano quando viene completata l'elaborazione batch.
In particolare, il campo
statemostra quando l'elaborazione è completa:"state": "FINISHED". Una volta completata l'istanza, non puoi modificarla.Puoi utilizzare il metodo
projects.locations.applications.instances.listper monitorare le istanze. Allo stesso modo, per rimuovere le 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 & CMD LINE
Completa i seguenti passaggi per inviare la richiesta di elaborazione batch delle immagini.
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" } }'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 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'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'Recupera le istanze dell'app. Queste informazioni indicano quando viene completata l'elaborazione batch.
In particolare, il campo
statemostra quando l'elaborazione è completa:"state": "FINISHED". Una volta completata l'istanza, non puoi modificarla.Puoi utilizzare il metodo
projects.locations.applications.instances.listper monitorare le istanze. Allo stesso modo, per rimuovere le 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" } }