Realiza un seguimiento de objetos en videos
Después de crear (entrenar) un modelo, puedes solicitar una predicción para
uno o más videos a través de batchPredict
. Proporcionas un archivo CSV con una lista de videos al método batchPredict
.
El método batchPredict
anota videos detectando y monitoreando
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 nuevo modelo para seguir anotando tu videos.
Ejemplo de predicción
Para solicitar un lote de predicciones de AutoML Video Object Tracking, crea un archivo CSV que enumera las rutas de acceso de Cloud Storage a los videos que quieres realizar anotaciones. También puedes especificar una hora de inicio y finalización para indicarle a AutoML Video Object Tracking para anotar solo 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 posterior a la hora de inicio tiempo e inferior o igual a la duración del video.
En el siguiente ejemplo se muestra cómo anotar un video completo
especifica 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 del archivo de salida en la que se debería especificar AutoML Video Object Tracking escribirás 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 durante aproximadamente 100 horas. de video en las 12 horas posteriores al tiempo de procesamiento.
IU web
- Abre la IU de seguimiento de objetos de AutoML Video.
- Haz clic en el modelo que deseas usar en la
lista.
- 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 Probar tu modelo, selecciona un directorio dentro de tu depósito 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: Reemplázalo por el nombre de tu archivo CSV que identifica los videos que se realizar anotaciones.
- output-storage-path: Reemplázalo por la ruta de acceso a la
El bucket de Cloud Storage en el que se almacenará el resultado de las predicciones.
AutoML Video Object Tracking crea una subcarpeta para los resultados
en esta ruta de acceso con el siguiente formato:
prediction-model_name-timestamp
La subcarpeta contendrá un archivo de predicción para cada video en 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.
Método HTTP y 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....
.
Método HTTP y 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": [ ] } }