Questa pagina mostra come ottenere previsioni batch dai modelli di riconoscimento dell'azione video utilizzando la console Google Cloud o l'API Vertex AI. Le previsioni batch sono richieste asincrone. Puoi richiedere previsioni batch direttamente dalla risorsa del modello senza dover eseguire il deployment del modello su un endpoint.
I modelli video AutoML non supportano le previsioni online.
Generazione di previsioni batch
Per effettuare una richiesta di previsione batch, devi specificare un'origine di input e un formato di output in cui Vertex AI archivia i risultati delle previsioni.
Requisiti dei dati di input
L'input per le richieste batch specifica gli elementi da inviare al modello per la previsione. Le previsioni batch per il tipo di modello video AutoML utilizzano un file JSON Lines per specificare un elenco di video per i quali fare previsioni, quindi archiviano il file JSON Lines in un bucket Cloud Storage. Puoi specificare Infinity
nel campo timeSegmentEnd
per indicare la fine del video. L'esempio seguente mostra una singola riga in un file JSON Lines di input.
{'content': 'gs://sourcebucket/datasets/videos/source_video.mp4', 'mimeType': 'video/mp4', 'timeSegmentStart': '0.0s', 'timeSegmentEnd': '2.366667s'}
Richiedi una previsione batch
Per le richieste di previsione batch, puoi utilizzare la console Google Cloud o l'API Vertex AI. A seconda del numero di elementi di input che hai inviato, il completamento di un'attività di previsione batch può richiedere del tempo.
Console Google Cloud
Utilizza la console Google Cloud per richiedere una previsione batch.
Nella sezione Vertex AI della console Google Cloud, vai alla pagina Previsioni batch.
Fai clic su Crea per aprire la finestra Nuova previsione batch e completa i seguenti passaggi:
- Inserisci un nome per la previsione batch.
- In Nome modello, seleziona il nome del modello da utilizzare per questa previsione batch.
- In Percorso di origine, specifica la località di Cloud Storage in cui si trova il file di input di JSON Lines.
- Per Percorso di destinazione, specifica una località di Cloud Storage in cui sono archiviati i risultati della previsione batch. Il formato Output è determinato dall'obiettivo del modello. I modelli AutoML per gli obiettivi immagine restituiscono file JSON Lines.
API
Utilizza l'API Vertex AI per inviare richieste di previsione batch.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: regione in cui viene archiviato il modello ed viene eseguito il job di previsione batch. Ad
esempio,
us-central1
. - PROJECT_ID: il tuo ID progetto
- BATCH_JOB_NAME: nome visualizzato per il job batch
- MODEL_ID: l'ID del modello da utilizzare per eseguire le previsioni.
- THRESHOLD_VALUE (facoltativo): il modello restituisce solo previsioni con punteggi di affidabilità con almeno questo valore
- URI: URI Cloud Storage in cui si trova il file JSON Lines di input.
- BUCKET: il tuo bucket Cloud Storage
- PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
Corpo JSON della richiesta:
{ "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID", "modelParameters": { "confidenceThreshold": THRESHOLD_VALUE, }, "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": ["URI"], }, }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "OUTPUT_BUCKET", }, }, }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/batchPredictionJobs/BATCH_JOB_ID", "displayName": "BATCH_JOB_NAME", "model": "projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID", "inputConfig": { "instancesFormat": "jsonl", "gcsSource": { "uris": [ "CONTENT" ] } }, "outputConfig": { "predictionsFormat": "jsonl", "gcsDestination": { "outputUriPrefix": "BUCKET" } }, "state": "JOB_STATE_PENDING", "createTime": "2020-05-30T02:58:44.341643Z", "updateTime": "2020-05-30T02:58:44.341643Z", "modelDisplayName": "MODEL_NAME", "modelObjective": "MODEL_OBJECTIVE" }
Puoi eseguire il polling dello stato del job batch utilizzando BATCH_JOB_ID fino a quando il job state
non è JOB_STATE_SUCCEEDED
.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Recupera i risultati della previsione batch
Vertex AI invia l'output della previsione batch alla destinazione specificata.
Quando un'attività di previsione batch è completata, l'output della previsione viene archiviato nel bucket Cloud Storage specificato nella richiesta.
Esempi di risultati della previsione batch
Di seguito è riportata una previsione batch di esempio da un modello di riconoscimento delle azioni video.
{ "instance": { "content": "gs://bucket/video.mp4", "mimeType": "video/mp4", "timeSegmentStart": "1s", "timeSegmentEnd": "5s" } "prediction": [{ "id": "1", "displayName": "swing", "timeSegmentStart": "1.2s", "timeSegmentEnd": "1.2s", "confidence": 0.7 }, { "id": "2", "displayName": "jump", "timeSegmentStart": "3.4s", "timeSegmentEnd": "3.4s", "confidence": 0.5 }] }