Anota videos
Después de haber entrenado un modelo, puedes solicitar una predicción si proporcionas un archivo CSV al método batchPredict
que enumera tus videos. El método batchPredict
aplica etiquetas en función de las predicciones que realice tu modelo.
La vida útil máxima de un modelo es de dos años. Luego debes entrenar un modelo nuevo.
Ejemplo de predicción
Para solicitar un lote de predicciones de AutoML Video, 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 que solo anote un segmento (a nivel de segmento) del video. La hora de inicio debe ser anterior, e igual o mayor que 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. También puedes usar inf
para indicar el final de un video.
gs://my-videos-vcm/short_video_1.avi,0.0,5.566667 gs://my-videos-vcm/car_chase.avi,0.0,3.933333 gs://my-videos-vcm/northwest_wildlife_01.avi,0.0,3.7 gs://my-videos-vcm/northwest_wildlife_02.avi,0.0,1.666667 gs://my-videos-vcm/motorcycles_and_cars.avi,0.0,2.633333 gs://my-videos-vcm/drying_paint.avi,0.0,inf
También debes especificar una ruta de acceso del archivo de salida en la que AutoML Video 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 puede generar predicciones para aproximadamente 100 horas de video en 12 horas de procesamiento.
Cuando solicitas una predicción de tus videos, puedes configurar las siguientes opciones en la sección params
. Si no especificas ninguna de estas opciones, se aplica el umbral de puntuación predeterminado y se usa segment_classification.
score_threshold: valor de 0.0 (sin confianza) a 1.0 (confianza muy alta). Cuando el modelo hace predicciones para un video, solo producirá resultados que tengan al menos la puntuación de confianza que especificaste. El valor predeterminado para la API es 0.5.
segment_classification: configurado como verdadero para habilitar la clasificación a nivel de segmento. AutoML Video muestra las etiquetas y sus puntuaciones de confianza para todo el segmento de video que especificaste en la configuración de la solicitud. El valor predeterminado es verdadero.
shot_classification: configurado como verdadero para habilitar la clasificación a nivel de toma. AutoML Video determina los límites para cada toma de cámara en todo el segmento de video que especificaste en la configuración de la solicitud. Luego, AutoML Video Intelligence muestra etiquetas y sus puntuaciones de confianza para cada toma detectada, junto con la hora de inicio y finalización de la toma. El valor predeterminado es falso.
1s_interval_classification: configurado como verdadero para habilitar la clasificación de un video en intervalos de un segundo. AutoML Video muestra las etiquetas y sus puntuaciones de confianza de cada segundo de todo el segmento de video que especificaste en la configuración de la solicitud. El valor predeterminado es falso.
IU web
- Abre la IU de AutoML Video.
- En la lista que se muestra, haz clic en el modelo que deseas usar.
- 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.
Además, en Prueba tu modelo, selecciona un directorio dentro de tu bucket de Cloud Storage para recibir los resultados de las anotaciones.
Es posible que desees crear una carpeta específica “results” en tu bucket de Cloud Storage para almacenar los resultados de la anotación. Si lo haces, puedes acceder más fácilmente a las predicciones más antiguas si cargas el archivo
video_classification.csv
contenido en el directorio de resultados.- 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:
- input-uri: Es el depósito 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/hmdb_split1_test_gs_predict.csv"]
- output-bucket reemplaza por el nombre del bucket de Cloud Storage. Por ejemplo:
my-project-vcm
- Reemplaza object-id por el ID de la operación de importación de datos.
- 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" } } }
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
Deberías recibir un ID de operación para la solicitud de predicción por lotes. Por ejemplo: VCN926615623331479552
.
Según la cantidad de imágenes que especificaste en el archivo CSV, la tarea de predicción por lotes puede tomar un tiempo en completarse. Cuando la tarea de importación se complete, verás done: true
en el estado de la operación sin errores, como se muestra en el siguiente ejemplo.
{ "name": "projects/project-number/locations/location-id/operations/VCN926615623331479552", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata", "createTime": "2020-02-11T21:39:19.832131Z", "updateTime": "2020-02-11T21:43:43.908318Z", "done": true, "batchPredictDetails": { "inputConfig": { "gcsSource": { "inputUris": [ "gs://bucket-name/input-file.csv" ] } }, "outputInfo": { "gcsOutputDirectory": "output-storage-path/prediction-test_model_01-2019-01-11T21:39:19.684Z" } } } }
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. Por ejemplo:
my-video-01.avi.json
{ "input_uri": "automl-video-sample/sample_video.avi", "segment_classification_annotations": [ { "annotation_spec": { "display_name": "ApplyLipstick", "description": "ApplyLipstick" }, "segments": [ { "segment": { "start_time_offset": { }, "end_time_offset": { "seconds": 4, "nanos": 960000000 } }, "confidence": 0.43253016 }, { "segment": { "start_time_offset": { }, "end_time_offset": { "seconds": 4, "nanos": 960000000 } }, "confidence": 0.56746984 } ], "frames": [ ] } ], "shot_classification_annotations": [ { "annotation_spec": { "display_name": "ApplyLipstick", "description": "ApplyLipstick" }, "segments": [ { "segment": { "start_time_offset": { }, "end_time_offset": { "seconds": 5 } }, "confidence": 0.43253016 }, { "segment": { "start_time_offset": { }, "end_time_offset": { "seconds": 5 } }, "confidence": 0.56746984 } ], "frames": [ ] } ], "one_second_sliding_window_classification_annotations": [ { "annotation_spec": { "display_name": "ApplyLipstick", "description": "ApplyLipstick" }, "segments": [ ], "frames": [ { "time_offset": { "nanos": 800000000 }, "confidence": 0.54533803 }, { "time_offset": { "nanos": 800000000 }, ... "confidence": 0.57945728 }, { "time_offset": { "seconds": 4, "nanos": 300000000 }, "confidence": 0.42054281 } ] } ], "object_annotations": [ ], "error": { "details": [ ] } }
Java
Para autenticarte en AutoML Video, 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, 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, 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.