Haz un seguimiento de objetos de video con la línea de comandos
En esta guía de inicio rápido, se te guiará por los siguientes procesos:
- Copiar de un conjunto de videos en Cloud Storage
- Crear archivos CSV que enumeren videos y sus etiquetas
- Usar el seguimiento de objetos de AutoML Video a fin de crear tu conjunto de datos para entrenar y usar tu modelo.
Antes de comenzar
Configura tu proyecto
- Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea o selecciona un proyecto de Google Cloud.
-
Crea un proyecto de Google Cloud:
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_ID
por un nombre para el proyecto de Google Cloud que estás creando. -
Selecciona el proyecto de Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_ID
por el nombre del proyecto de Google Cloud.
-
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Habilita las APIs de AutoML and Cloud Storage:
gcloud services enable storage-component.googleapis.com
automl.googleapis.com storage-api.googleapis.com - Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
Crea o selecciona un proyecto de Google Cloud.
-
Crea un proyecto de Google Cloud:
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_ID
por un nombre para el proyecto de Google Cloud que estás creando. -
Selecciona el proyecto de Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_ID
por el nombre del proyecto de Google Cloud.
-
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Habilita las APIs de AutoML and Cloud Storage:
gcloud services enable storage-component.googleapis.com
automl.googleapis.com storage-api.googleapis.com - Establece la variable de entorno
PROJECT_ID
para tu ID del proyecto.export PROJECT_ID=PROJECT_ID
Las llamadas a la API de AutoML y los nombres de los recursos incluyen el ID del proyecto. La variable de entornoPROJECT_ID
proporciona una manera conveniente de especificar el ID.
Crea un conjunto de datos e importa datos de entrenamiento
Cree un conjunto de datos
Elige un nombre para tu conjunto de datos y usa los siguientes comandos curl
o PowerShell para crear un conjunto de datos nuevo con ese nombre.
REST
A continuación, se muestra cómo enviar una solicitud POST. En el ejemplo, se usa Google Cloud CLI para crear un token de acceso. Si deseas obtener instrucciones para instalar gcloud CLI, consulta la Guía de inicio rápido de seguimiento de objetos de AutoML Video Intelligence.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- dataset-name: Es el nombre de tu conjunto de datos de destino.
Por ejemplo,my_dataset_01
- Nota:
- project-number: Es el número de tu proyecto.
- location-id: Es la región de Cloud en la que se debe realizar la anotación. Las regiones en la nube compatibles son:
us-east1
,us-west1
,europe-west1
,asia-east1
. Si no se especifica ninguna región, se determinará una región en función de la ubicación del archivo de video.
HTTP method and URL:
POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets
Cuerpo JSON de la solicitud:
{ "displayName": "dataset-name", "videoObjectTrackingDatasetMetadata": { } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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 datos de entrenamiento
REST
Para importar tus datos de entrenamiento, usa el métodoimportData
. Este método requiere que proporciones dos parámetros:
- la ruta de acceso al archivo CSV que contiene las rutas de acceso al entrenamiento
- los archivos CSV de datos de prueba Nota: Estos archivos están disponibles en el bucket “automl-video-demo-data” en Cloud Storage.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- dataset-id: Es el ID del conjunto de datos. El ID es el último elemento del nombre de tu conjunto de datos. Por ejemplo:
- Nombre del conjunto de datos:
projects/project-number/locations/location-id/datasets/3104518874390609379
- ID del conjunto de datos:
3104518874390609379
- Nombre del conjunto de datos:
- bucket-name: Reemplaza por el nombre del depósito de Cloud Storage en el que almacenaste tu archivo CSV de la lista de archivos de entrenamiento de modelos.
- csv-file-name: Reemplaza por el nombre de tu archivo CSV de la lista de archivos de entrenamiento de modelos.
- Nota:
- project-number: Es el número de tu proyecto.
- location-id: Es la región de Cloud en la que se debe realizar la anotación. Las regiones en la nube compatibles son:
us-east1
,us-west1
,europe-west1
,asia-east1
. Si no se especifica ninguna región, se determinará una región en función de la ubicación del archivo de video.
HTTP method and URL:
POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id:importData
Cuerpo JSON de la solicitud:
{ "inputConfig": { "gcsSource": { "inputUris": ["gs://bucket-name/csv-file-name.csv"] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
.
Obtén el estado de la operación de importación
Puedes consultar el estado de la operación de importación de datos mediante los siguientes comandos curl
o PowerShell.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- operation-id: Es el ID de la operación de larga duración creada para la solicitud y proporcionada en la respuesta cuando iniciaste la operación, por ejemplo
VOT12345....
. - Nota:
- project-number: Es el número de tu proyecto.
- location-id: Es la región de Cloud en la que se debe realizar la anotación. Las regiones en la nube compatibles son:
us-east1
,us-west1
,europe-west1
,asia-east1
. Si no se especifica ninguna región, se determinará una región en función de la ubicación del archivo de video.
HTTP method and URL:
GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente 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
Ejecuta el siguiente 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
sin errores, como se muestra en el ejemplo anterior.
- operation-name: Es el nombre de la operación que muestra la API de seguimiento de objetos de AutoML Video Intelligence. El nombre de la operación tiene el formato
projects/project-number/locations/location-id/operations/operation-id
.
Enumera todos los conjuntos de datos
Usa los siguientes comandos curl
o PowerShell para obtener una lista de tus conjuntos de datos y la cantidad de videos de muestra que se importaron en él.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-number: Es el número de tu proyecto.
- location-id: Es la región de Cloud en la que se debe realizar la anotación. Las regiones en la nube compatibles son:
us-east1
,us-west1
,europe-west1
,asia-east1
. Si no se especifica ninguna región, se determinará una región en función de la ubicación del archivo de video.
HTTP method and URL:
GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente 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
Ejecuta el siguiente 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
es el ID de la operación de larga duración creada para la solicitud y proporcionado en la respuesta cuando iniciaste la operación.
Entrene su modelo
Inicia una operación de entrenamiento de modelos
Luego de crear el conjunto de datos y de importar los datos de entrenamiento en el conjunto, puedes entrenar el modelo personalizado. Entrena tu modelo con los siguientes comandos curl
o PowerShell.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- dataset-id: Es el nombre de tu conjunto de datos de destino.
Por ejemplo, el nombre visible de
my_dataset_01
. - Reemplaza model-name por un nombre que elijas para el modelo.
- Nota:
- project-number: Es el número de tu proyecto.
- location-id: Es la región de Cloud en la que se debe realizar la anotación. Las regiones en la nube compatibles son:
us-east1
,us-west1
,europe-west1
,asia-east1
. Si no se especifica ninguna región, se determinará una región en función de la ubicación del archivo de video.
HTTP method and URL:
POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models
Cuerpo JSON de la solicitud:
{ "datasetId": "dataset-id", "displayName": "model-name", "videoObjectTrackingModelMetadata": {}, }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
.
Obtén el estado de la operación de entrenamiento de modelos
Puedes consultar el estado de la operación de entrenamiento de modelos mediante los siguientes comandos curl
o PowerShell.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- operation-name: nombre de la operación que muestra la API de seguimiento de objetos de AutoML Video Intelligence. El nombre de la operación tiene el formato
projects/project-number/locations/location-id/operations/operation-id
. - Nota:
- project-number: Es el número de tu proyecto.
- location-id: Es la región de Cloud en la que se debe realizar la anotación. Las regiones en la nube compatibles son:
us-east1
,us-west1
,europe-west1
,asia-east1
. Si no se especifica ninguna región, se determinará una región en función de la ubicación del archivo de video.
HTTP method and URL:
GET https://automl.googleapis.com/v1beta1/operation-name
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente 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
Ejecuta el siguiente 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
sin errores.
Verifica que el modelo esté disponible
Una vez que la operación de entrenamiento de modelos se complete de forma correcta, puedes verificar que tu modelo esté disponible mediante el siguiente comando para enumerar los modelos de tu proyecto.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-number: Es el número de tu proyecto.
- location-id: Es la región de Cloud en la que se debe realizar la anotación. Las regiones en la nube compatibles son:
us-east1
,us-west1
,europe-west1
,asia-east1
. Si no se especifica ninguna región, se determinará una región en función de la ubicación del archivo de video.
HTTP method and URL:
GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Realiza una predicción
Puedes solicitar anotaciones (predicciones) para los videos con el método batchPredict. El método batchPredict
requiere dos entradas:
- un archivo CSV almacenado en tu bucket de Cloud Storage que contiene las rutas de acceso a los videos a anotar
- los tiempos de inicio y finalización que identifican el segmento de video que se anotará
Para esta guía de inicio rápido, usa el archivo CSV llamado traffic_video_batch_predict.csv
.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- Reemplaza model-id por el identificador del modelo.
- input-uri: Es el bucket de Cloud Storage que contiene el archivo que deseas anotar, incluido el nombre del archivo. Debe comenzar con
gs://
.
Por ejemplo:"inputUris": ["gs://automl-video-demo-data/traffic_videos/traffic_video_batch_predict.csv"],
- Reemplaza output-bucket por un bucket de Cloud Storage que contendrá los resultados de tu predicción.
- Reemplaza object-id por un nombre de objeto que identifique dónde almacenar la salida de tu solicitud de predicción en tu bucket de Cloud Storage. Nota: Debes tener permisos de escritura en el bucket de Cloud Storage.
- Nota:
- project-number: Es el número de tu proyecto.
- location-id: Es la región de Cloud en la que se debe realizar la anotación. Las regiones en la nube compatibles son:
us-east1
,us-west1
,europe-west1
,asia-east1
. Si no se especifica ninguna región, se determinará una región en función de la ubicación del archivo de video.
HTTP method and URL:
POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-id:batchPredict
Cuerpo JSON de la solicitud:
{ "inputConfig": { "gcsSource": { "inputUris": ["input-uri"] } }, "outputConfig": { "gcsDestination": { "outputUriPrefix": "gs://output-bucket/object-id" } } "params": { "score_threshold": "0.0" } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Obtén el estado de la operación de predicción
Puedes consultar el estado de la operación de predicción por lotes mediante los siguientes comandos curl
o PowerShell.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-number: Es el número de tu proyecto.
- location-id: Es la región de Cloud en la que se debe realizar la anotación. Las regiones en la nube compatibles son:
us-east1
,us-west1
,europe-west1
,asia-east1
. Si no se especifica ninguna región, se determinará una región en función de la ubicación del archivo de video. - operation-id: Es el ID de la operación de larga duración creada para la solicitud y proporcionada en la respuesta cuando iniciaste la operación, por ejemplo
VOT12345....
.
HTTP method and URL:
GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente 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
Ejecuta el siguiente 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
Cuando se completa la tarea de predicción por lotes, el resultado de la predicción se almacena en el bucket de Cloud Storage que especificaste en el comando. Hay un archivo JSON para cada segmento de video. Los archivos JSON tienen un formato similar a my-video-01.avi.json, en el que la extensión de archivo .json se agrega al nombre del archivo original.
{ "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": [ ] } }
Limpieza
Si ya no necesitas tu modelo personalizado ni el conjunto de datos relacionado, puedes borrarlos.
Borra un modelo
Puedes borrar un modelo con los siguientes comandos curl
o PowerShell.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-number: Es el número de tu proyecto.
- location-id: Es la región de Cloud en la que se debe realizar la anotación. Las regiones en la nube compatibles son:
us-east1
,us-west1
,europe-west1
,asia-east1
. Si no se especifica ninguna región, se determinará una región en función de la ubicación del archivo de video. - Reemplaza model-id por el identificador del modelo.
HTTP method and URL:
DELETE https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-id
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
Borra un conjunto de datos
Puedes borrar un conjunto de datos con los siguientes comandos curl
o PowerShell.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-number: Es el número de tu proyecto.
- location-id: Es la región de Cloud en la que se debe realizar la anotación. Las regiones en la nube compatibles son:
us-east1
,us-west1
,europe-west1
,asia-east1
. Si no se especifica ninguna región, se determinará una región en función de la ubicación del archivo de video. - datase-id: Reemplaza por el identificador de tu ID del conjunto de datos.
HTTP method and URL:
DELETE https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.