Monitoraggio degli oggetti nei video
Dopo aver creato (addestrato) un modello, puoi richiedere una previsione per uno o più video utilizzando il metodo batchPredict
. Fornisci un file CSV con un elenco di video per il metodo batchPredict
.
Il metodo batchPredict
annota i video rilevando e monitorando gli oggetti previsti dal modello.
La durata massima di un modello è due anni. Dopo due anni, devi creare e addestrare un nuovo modello per continuare ad annotare i video.
Esempio di previsione
Per richiedere un batch di previsioni da AutoML Video Object Tracking, crea un file CSV che elenchi i percorsi Cloud Storage dei video da annotare. Puoi anche specificare un'ora di inizio e di fine per indicare ad AutoML Video Object Tracking di annotare solo un segmento del video. L'ora di inizio deve essere pari a zero o superiore e deve essere precedente all'ora di fine. L'ora di fine deve essere superiore all'ora di inizio e inferiore o uguale alla durata del video.
L'esempio seguente mostra come annotare un intero video specificando un'ora di inizio e di fine come 0,inf
.
gs://my-videos-vcm/cow_video.mp4,0,inf gs://my-videos-vcm/bird_video.mp4,10.00000,15.50000
Devi inoltre specificare un percorso file di output in cui AutoML Video Object Tracking deve scrivere i risultati delle previsioni dal modello. Questo percorso deve essere un bucket e un oggetto Cloud Storage in cui disponi delle autorizzazioni di scrittura.
Ogni video può durare fino a 3 ore con una dimensione massima dei file di 50 GB. AutoML Video Object Tracking può generare previsioni per circa 100 ore di video in 12 ore di elaborazione.
UI web
- Apri l'interfaccia utente di monitoraggio degli oggetti video AutoML.
- Fai clic sul modello che vuoi utilizzare dall'elenco visualizzato.
- Nella scheda Testa e utilizza del modello, segui questi passaggi:
- In Testa il modello, seleziona un file CSV da utilizzare per la previsione. Il file CSV deve fornire un elenco di video a cui vuoi aggiungere annotazioni.
Sempre in Testa il modello, seleziona una directory all'interno del bucket Cloud Storage per ricevere i risultati delle annotazioni.
Potresti voler creare una cartella "risultati" specifica nel tuo bucket Cloud Storage per contenere i risultati delle annotazioni.
- Fai clic su Ottieni previsioni.
La procedura per ottenere le previsioni può richiedere del tempo, a seconda del numero di video che vuoi che vengano annotati.
Al termine del processo, i risultati vengono visualizzati nella pagina del modello in Previsioni recenti. Per visualizzare i risultati:
- Sotto Previsioni recenti nella colonna Previsioni, fai clic su Visualizza per visualizzare la previsione che vuoi esaminare.
- In Video, seleziona il nome del video per cui vuoi vedere i risultati.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- model-id: sostituiscilo con l'ID del tuo modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio, se il nome del modello è
projects/project-number/locations/location-id/models/VOT6312181905852727296
, l'ID del modello èVOT6312181905852727296
. - request-id: assegna un valore digitale a questo campo.
- bucket-name: sostituisci con il nome del tuo bucket Cloud Storage. Ad esempio:
my-project-vcm
. - input-file: sostituiscilo con il nome del tuo file CSV che identifica i video a cui aggiungere annotazioni.
- output-storage-path: sostituiscilo con il percorso del bucket Cloud Storage in cui devono essere archiviati l'output delle previsioni.
AutoML Video Object Tracking crea una sottocartella per i risultati
in questo percorso, denominata nel seguente formato:
prediction-model_name-timestamp
. La sottocartella conterrà un file di previsione per ogni video nella richiesta batch. Devi disporre delle autorizzazioni di scrittura per questo percorso. - Nota:
- project-number: numero del progetto
- location-id: la regione Cloud in cui deve avvenire l'annotazione. Le regioni cloud supportate sono:
us-east1
,us-west1
,europe-west1
easia-east1
. Se non viene specificata alcuna regione, verrà determinata in base alla posizione del file video.
Metodo HTTP e URL:
POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-id:batchPredict
Corpo JSON della richiesta:
{ "request_id": "request-id", "inputConfig": { "gcsSource": { "inputUris": ["gs://bucket-name/input-file.csv"] } }, "outputConfig": { "gcsDestination": { "outputUriPrefix": "gs://output-storage-path" } }, "params": { "score_threshold": "0.0" } }
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 "x-goog-user-project: project-number" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-id:batchPredict"
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"; "x-goog-user-project" = "project-number" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-id:batchPredict" | Select-Object -Expand Content
VOT1741767155885539328
.
Java
Per eseguire l'autenticazione in AutoML Video Object Tracking, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in AutoML Video Object Tracking, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in AutoML Video Object Tracking, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ottieni lo stato dell'operazione di previsione
Puoi eseguire una query sullo stato dell'operazione di previsione batch utilizzando i seguenti comandi curl
o PowerShell.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-number: il numero del progetto
- location-id: la regione Cloud in cui deve avvenire l'annotazione. Le regioni cloud supportate sono:
us-east1
,us-west1
,europe-west1
easia-east1
. Se non viene specificata alcuna regione, verrà determinata in base alla posizione del file video. - operation-id: l'ID dell'operazione a lunga esecuzione creata per la richiesta e fornito nella risposta al momento dell'avvio dell'operazione, ad esempio
VOT12345....
Metodo HTTP e URL:
GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id" | Select-Object -Expand Content
projects/project-number/locations/location-id/operations/operation-id
Quando l'attività di previsione batch è completa, l'output della previsione viene archiviato nel bucket Cloud Storage specificato nel comando. È disponibile un file JSON per ogni segmento video. I file JSON hanno un formato simile a my-video-01.avi.json, in cui l'estensione del file .json viene aggiunta al nome del file originale.
{ "inputUris": ["automl-video-demo-data/sample_video.avi"], "object_annotations": [ { "annotation_spec": { "display_name": "Cat", "description": "Cat" }, "confidence": 0.43253016 "frames": [ { "frame": { "time_offset": { "seconds": 4, "nanos": 960000000 }, "normalized_bounding_box": { "x_min": 0.1, "y_min": 0.1, "x_max": 0.8, "y_max": 0.8 } } }, { "frame": { "time_offset": { "seconds": 5, "nanos": 960000000 }, "normalized_bounding_box": { "x_min": 0.2, "y_min": 0.2, "x_max": 0.9, "y_max": 0.9 } } } ], "segment": { "start_time_offset": { "seconds": 4, "nanos": 960000000 }, "end_time_offset": { "seconds": 5, "nanos": 960000000 } } } ], "error": { "details": [ ] } }