Después de crear (entrenar) un modelo, puedes solicitar una predicción para uno o más videos con el método batchPredict
. Proporciona un archivo CSV con una lista de videos al método batchPredict
.
El método batchPredict
anota videos mediante la detección y el seguimiento de objetos que predice tu modelo.
La vida útil máxima de un modelo personalizado 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 a partir del seguimiento de objetos de AutoML Video, crea un archivo CSV que enumere las rutas de Cloud Storage a los videos que deseas anotar. También puedes especificar una hora de inicio y de finalización para indicarle a AutoML Video Object Tracking que solo debe anotar un segmento del video. La hora de inicio debe ser igual o mayor que la hora de finalización y debe ser anterior a la hora de finalización. La hora de finalización debe ser superior a 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 si se especifica una hora de inicio y de 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 de archivo de salida en la que el seguimiento de objetos de AutoML Video deba escribir los resultados de las predicciones de tu modelo. Esta ruta debe ser un objeto y un depósito 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. El seguimiento de objetos de AutoML Video puede generar predicciones durante, aproximadamente, 100 horas de video en 12 horas de tiempo de procesamiento.
IU web
- Abre la IU de seguimiento de objetos de AutoML Video.
- Haz clic en el modelo personalizado 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 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 depósito 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.
LÍNEA DE REST Y CMD
Antes de usar cualquiera de los datos de solicitud siguientes, realiza estos 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 depósito de Cloud Storage. Por ejemplo:
my-project-vcm
- input-file: reemplaza el nombre del archivo CSV que identifica los videos que se anotarán.
- output-storage-path: reemplaza con la ruta de acceso al depósito de Cloud Storage en el que se almacenarán el resultado de las predicciones.
El seguimiento de objetos de AutoML Video 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: 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 application-default print-access-token) \
-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 application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
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
Node.js
Python
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.
LÍNEA DE REST Y CMD
Antes de usar cualquiera de los datos de solicitud siguientes, realiza estos 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 application-default print-access-token) \
https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
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 depósito 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": [ ] } }