Tenere traccia degli oggetti video utilizzando la riga di comando
Questa guida rapida illustra il processo di:
- Copia di un insieme di video in Cloud Storage in corso...
- Creare file CSV che elencano i video e le relative etichette.
- Utilizzo di AutoML Video Object Tracking per creare il set di dati per addestrare e utilizzare un modello di machine learning.
Prima di iniziare
Configura il progetto
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API AutoML and Cloud Storage.
gcloud services enable storage-component.googleapis.com
automl.googleapis.com storage-api.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API AutoML and Cloud Storage.
gcloud services enable storage-component.googleapis.com
automl.googleapis.com storage-api.googleapis.com - Imposta la variabile di ambiente
PROJECT_ID
sul tuo ID progetto.export PROJECT_ID=PROJECT_ID
Le chiamate API e i nomi delle risorse AutoML includono l'ID progetto al loro interno. La variabile di ambientePROJECT_ID
consente di specificare facilmente l'ID.
crea un set di dati e importa i dati di addestramento
Crea un set di dati
Scegli un nome per il set di dati e utilizza curl
o
Comandi PowerShell per creare un nuovo set di dati con quel nome.
REST
Di seguito viene illustrato come inviare una richiesta POST. L'esempio utilizza Google Cloud CLI per creare un token di accesso. Per istruzioni sull'installazione di gcloud CLI, consulta Guida rapida al rilevamento degli oggetti di AutoML Video Intelligence.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- dataset-name: il nome del set di dati di destinazione.
Ad esempio,my_dataset_01
- Nota:
- project-number: il numero del progetto
- location-id: la regione Cloud in cui l'annotazione
deve avvenire. Le regioni cloud supportate sono:
us-east1
,us-west1
,europe-west1
,asia-east1
. Se non viene specificata alcuna regione, viene verrà determinato in base alla posizione del file video.
Metodo HTTP e URL:
POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets
Corpo JSON della richiesta:
{ "displayName": "dataset-name", "videoObjectTrackingDatasetMetadata": { } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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/datasets"
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/datasets" | Select-Object -Expand Content
VOT12345....
Importa dati di addestramento
REST
Per importare i dati di addestramento, utilizza il metodoimportData
. Questo
richiede che vengano forniti due parametri:
- il percorso del file CSV che contiene i percorsi di addestramento
- i file CSV dei dati del test. Nota: questi file sono disponibili in "automl-video-demo-data" su Cloud Storage.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- dataset-id: l'ID del set di dati. L'ID è l'ultimo elemento del nome del tuo
del set di dati. Ad esempio:
- nome set di dati:
projects/project-number/locations/location-id/datasets/3104518874390609379
- ID set di dati:
3104518874390609379
- nome set di dati:
- bucket-name: sostituiscilo con il nome del bucket Cloud Storage in cui hai archiviato il file CSV con l'elenco dei file di addestramento del modello.
- csv-file-name: sostituisci con il nome del file CSV con l'elenco dei file di addestramento del modello.
- Nota:
- project-number: il numero del progetto
- location-id: la regione Cloud in cui l'annotazione
deve avvenire. Le regioni cloud supportate sono:
us-east1
,us-west1
,europe-west1
,asia-east1
. Se non viene specificata alcuna regione, viene verrà determinato in base alla posizione del file video.
Metodo HTTP e URL:
POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id:importData
Corpo JSON della richiesta:
{ "inputConfig": { "gcsSource": { "inputUris": ["gs://bucket-name/csv-file-name.csv"] } } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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/datasets/dataset-id:importData"
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/datasets/dataset-id:importData" | Select-Object -Expand Content
VOT7506374678919774208
.
Visualizza lo stato dell'operazione di importazione
Puoi eseguire query sullo stato dell'operazione di importazione dei dati utilizzando il seguente
curl
o PowerShell.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- operation-id: l'ID dell'operazione a lunga esecuzione creata
della richiesta e fornito nella risposta quando hai avviato
operativa, ad esempio
VOT12345....
- Nota:
- project-number: il numero del progetto
- location-id: la regione Cloud in cui l'annotazione
deve avvenire. Le regioni cloud supportate sono:
us-east1
,us-west1
,europe-west1
,asia-east1
. Se non viene specificata alcuna regione, viene verrà determinato in base alla posizione del file video.
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:
curl
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
done: true
senza errori, come mostrato nell'esempio precedente.
- operation-name: il nome dell'operazione come
restituiti dall'API AutoML Video Intelligence Object Tracking. Il nome dell'operazione ha il formato
projects/project-number/locations/location-id/operations/operation-id
Elenco di tutti i set di dati
Usa i seguenti comandi curl
o PowerShell per ottenere un elenco dei tuoi set di dati
e il numero di video di esempio importati nel set di dati.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-number: il numero del tuo progetto
- location-id: la regione Cloud in cui deve essere eseguita l'annotazione
posto. Le regioni cloud supportate sono:
us-east1
,us-west1
,europe-west1
,asia-east1
. Se nessuna regione è specificata, verrà determinata una regione in base alla posizione del file video.
Metodo HTTP e URL:
GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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/datasets "
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/datasets " | Select-Object -Expand Content
VOT3940649673949184000
è l'ID operazione del
un'operazione a lunga esecuzione creata per la richiesta e fornita nella risposta all'avvio
operativa.
Addestra il modello
Avvia un'operazione di addestramento del modello
Dopo aver creato il set di dati e importato i dati di addestramento
set di dati, puoi addestrare il tuo modello personalizzato. Addestra il tuo modello utilizzando
i seguenti comandi curl
o PowerShell.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- dataset-id: il nome del set di dati di destinazione.
Ad esempio,
my_dataset_01
il nome visualizzato). - model-name: sostituisci con un nome a tua scelta per il modello.
- Nota:
- project-number: il numero del progetto
- location-id: la regione Cloud in cui l'annotazione
deve avvenire. Le regioni cloud supportate sono:
us-east1
,us-west1
,europe-west1
,asia-east1
. Se non viene specificata alcuna regione, viene verrà determinato in base alla posizione del file video.
Metodo HTTP e URL:
POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models
Corpo JSON della richiesta:
{ "datasetId": "dataset-id", "displayName": "model-name", "videoObjectTrackingModelMetadata": {}, }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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"
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" | Select-Object -Expand Content
VOT1741767155885539328
.
Visualizza lo stato dell'operazione di addestramento del modello
Puoi eseguire query sullo stato dell'operazione di addestramento del modello utilizzando:
curl
o PowerShell.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- operation-name: il nome dell'operazione come
restituiti dall'API AutoML Video Intelligence Object Tracking. Il nome dell'operazione ha il formato
projects/project-number/locations/location-id/operations/operation-id
- Nota:
- project-number: il numero del progetto
- location-id: la regione Cloud in cui l'annotazione
deve avvenire. Le regioni cloud supportate sono:
us-east1
,us-west1
,europe-west1
,asia-east1
. Se non viene specificata alcuna regione, viene verrà determinato in base alla posizione del file video.
Metodo HTTP e URL:
GET https://automl.googleapis.com/v1beta1/operation-name
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
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/operation-name"
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/operation-name" | Select-Object -Expand Content
done: true
, senza
vengono elencati gli errori.
Verifica che il modello sia disponibile
Una volta completata l'operazione di addestramento del modello, puoi verificare per rendere disponibile il modello usando il comando seguente per elencare i modelli per il tuo progetto.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-number: il numero del tuo progetto
- location-id: la regione Cloud in cui deve essere eseguita l'annotazione
posto. Le regioni cloud supportate sono:
us-east1
,us-west1
,europe-west1
,asia-east1
. Se nessuna regione è specificata, verrà determinata una regione in base alla posizione del file video.
Metodo HTTP e URL:
GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Fai una previsione
Puoi richiedere le annotazioni (previsioni) dei video utilizzando il metodo batchPredict.
. Il metodo batchPredict
richiede due input:
- a un file CSV archiviato nel bucket Cloud Storage che contiene i percorsi ai video per aggiungere annotazioni,
- i momenti di inizio e di fine che identificano il segmento del video da annotare.
Per questa guida rapida, utilizza il file CSV denominato traffic_video_batch_predict.csv
.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- model-id: sostituisci con l'identificatore del modello
- input-uri: un bucket Cloud Storage che contiene
al file a cui vuoi aggiungere un'annotazione, incluso il nome. Deve
iniziano con
gs://
.
Ad esempio:"inputUris": ["gs://automl-video-demo-data/traffic_videos/traffic_video_batch_predict.csv"],
- output-bucket: sostituisci con un bucket Cloud Storage che conterrà i risultati della tua previsione.
- object-id: sostituisci con un nome oggetto che identifichi dove archiviare l'output della richiesta di previsione nel bucket Cloud Storage. Nota: devi disporre delle autorizzazioni di scrittura al bucket Cloud Storage.
- Nota:
- project-number: il numero del progetto
- location-id: la regione Cloud in cui l'annotazione
deve avvenire. Le regioni cloud supportate sono:
us-east1
,us-west1
,europe-west1
,asia-east1
. Se non viene specificata alcuna regione, viene verrà determinato 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:
{ "inputConfig": { "gcsSource": { "inputUris": ["input-uri"] } }, "outputConfig": { "gcsDestination": { "outputUriPrefix": "gs://output-bucket/object-id" } } "params": { "score_threshold": "0.0" } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Ottieni lo stato dell'operazione di previsione
Puoi eseguire query sullo stato dell'operazione di previsione batch utilizzando:
curl
o PowerShell.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-number: il numero del tuo progetto
- location-id: la regione Cloud in cui deve essere eseguita l'annotazione
posto. Le regioni cloud supportate sono:
us-east1
,us-west1
,europe-west1
,asia-east1
. Se nessuna regione è specificata, verrà determinata una regione in base alla posizione del file video. - operation-id: l'ID dell'operazione a lunga esecuzione creata
della richiesta e fornito nella risposta quando hai avviato
operativa, 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:
curl
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 è completata, l'output della previsione viene archiviato nel bucket Cloud Storage specificato nel comando. Là è un file JSON per ogni segmento video. I file JSON hanno un formato simile in my-video-01.avi.json, dove l'estensione del file .json viene aggiunta all'originale nome del file.
{ "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": [ ] } }
Esegui la pulizia
Se non hai più bisogno del modello personalizzato e del set di dati correlato, puoi eliminare che li rappresentano.
Eliminazione di un modello
Puoi eliminare un modello utilizzando i seguenti comandi curl
o PowerShell.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-number: il numero del tuo progetto
- location-id: la regione Cloud in cui deve essere eseguita l'annotazione
posto. Le regioni cloud supportate sono:
us-east1
,us-west1
,europe-west1
,asia-east1
. Se nessuna regione è specificata, verrà determinata una regione in base alla posizione del file video. - model-id: sostituisci con l'identificatore del modello.
Metodo HTTP e URL:
DELETE https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-id
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere un codice di stato di operazione riuscita (2xx) e una risposta vuota.
Eliminazione di un set di dati
Puoi eliminare un set di dati utilizzando i seguenti comandi curl
o PowerShell.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-number: il numero del tuo progetto
- location-id: la regione Cloud in cui deve essere eseguita l'annotazione
posto. Le regioni cloud supportate sono:
us-east1
,us-west1
,europe-west1
,asia-east1
. Se nessuna regione è specificata, verrà determinata una regione in base alla posizione del file video. - datase-id: sostituisci con l'identificatore dell'ID del set di dati.
Metodo HTTP e URL:
DELETE https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere un codice di stato di operazione riuscita (2xx) e una risposta vuota.