Realizar un seguimiento de objetos en videos
Después de crear (entrenar) un modelo, puedes solicitar una predicción para uno o más videos con el método batchPredict
. Proporcionas un archivo CSV con una lista de videos para el método batchPredict
.
El método batchPredict
anota los videos mediante la detección y el seguimiento de los objetos que predice tu modelo.
La vida útil máxima de un modelo es de dos años. Después de dos años, debes crear y entrenar un modelo nuevo para seguir anotando tus videos.
Ejemplo de predicción
Para solicitar un lote de predicciones de AutoML Video Object Tracking, crea un archivo CSV que enumere las rutas de acceso de Cloud Storage a los videos que deseas anotar. También puedes especificar una hora de inicio y finalización para indicarle a AutoML Video Object Tracking que solo anote un segmento del video. La hora de inicio debe ser cero o mayor y debe ser anterior a la hora de finalización. La hora de finalización debe ser mayor que la hora de inicio y menor o igual que la duración del video.
En el siguiente ejemplo, se muestra cómo anotar un video completo especificando una hora de inicio y finalización como 0,inf
.
gs://my-videos-vcm/cow_video.mp4,0,inf gs://my-videos-vcm/bird_video.mp4,10.00000,15.50000
También debes especificar una ruta de acceso al archivo de salida en la que AutoML Video Object Tracking debe escribir los resultados de las predicciones de tu modelo. Esta ruta debe ser un objeto y un bucket de Cloud Storage en el que tengas permisos de escritura.
Cada video puede tener hasta 3 horas de duración con un tamaño máximo de archivo de 50 GB. AutoML Video Object Tracking puede generar predicciones para aproximadamente 100 horas de video en 12 horas de procesamiento.
IU web
- Abre la IU de seguimiento de objetos de AutoML Video.
- Haz clic en el modelo que deseas usar de la lista que se muestra.
- En la pestaña Probar y usar del modelo, haz lo siguiente:
- En Prueba tu modelo, selecciona un archivo CSV para usar en la predicción. El archivo CSV debe proporcionar una lista de videos que deseas anotar.
También en Prueba tu modelo, selecciona un directorio dentro de tu bucket de Cloud Storage para recibir los resultados de la anotación.
Es posible que desees crear una carpeta específica “results” en tu bucket de Cloud Storage para almacenar los resultados de la anotación.
- Haz clic en Obtener predicciones.
El proceso para obtener predicciones puede demorar un poco, según la cantidad de videos que quieras anotar.
Cuando se completa el proceso, los resultados aparecen en la página del modelo en Predicciones recientes. Para ver los resultados, haz lo siguiente:
- En Predicciones recientes de la columna Predictions, haz clic en Ver para la predicción que quieres ver.
- En Video, selecciona el nombre del video del que deseas ver los resultados.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- Reemplaza model-id por el ID de tu modelo. El ID es el último elemento del nombre del modelo. Por ejemplo, si el nombre de tu modelo es
projects/project-number/locations/location-id/models/VOT6312181905852727296
, entonces el ID de tu modelo esVOT6312181905852727296
. - request-id: Asigna cualquier valor digital a este campo.
- bucket-name: Reemplaza por el nombre del bucket de Cloud Storage. Por ejemplo:
my-project-vcm
. - input-file: Se reemplaza por el nombre de tu archivo CSV que identifica los videos que se anotarán.
- output-storage-path: Se reemplaza por la ruta de acceso al bucket de Cloud Storage en el que se almacenarán los resultados de las predicciones.
AutoML Video Object Tracking crea una subcarpeta para los resultados de esta ruta de acceso con el siguiente formato:
prediction-model_name-timestamp
. La subcarpeta contendrá un archivo de predicción para cada video de la solicitud por lotes. Debes tener permisos de escritura para esta ruta de acceso - 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:
{ "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" } }
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/model-id:batchPredict"
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/model-id:batchPredict" | Select-Object -Expand Content
VOT1741767155885539328
.
Java
Para autenticarte en AutoML Video Object Tracking, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para autenticarte en AutoML Video Object Tracking, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para autenticarte en AutoML Video Object Tracking, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
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": [ ] } }