El seguimiento de objetos monitoriza los objetos detectados en un vídeo de entrada. Para hacer una solicitud de seguimiento de objetos, llama al método annotate
y especifica OBJECT_TRACKING
en el campo features
.
En el caso de las entidades y las ubicaciones espaciales que se detectan en un vídeo o en segmentos de vídeo, una solicitud de seguimiento de objetos anota el vídeo con las etiquetas adecuadas para esas entidades y ubicaciones espaciales. Por ejemplo, un vídeo de vehículos cruzando un semáforo podría generar etiquetas como "coche", "camión", "bicicleta", "neumáticos", "luces", "ventanilla", etc. Cada etiqueta puede incluir una serie de cuadros de delimitación, y cada cuadro de delimitación tiene un segmento de tiempo asociado que contiene un desfase de tiempo que indica el desfase de duración desde el inicio del vídeo. La anotación también contiene información adicional sobre la entidad, incluido un ID de entidad que puedes usar para obtener más información sobre la entidad en la API Knowledge Graph Search de Google.
Seguimiento de objetos y detección de etiquetas
El seguimiento de objetos es diferente a la detección de etiquetas. La detección de etiquetas proporciona etiquetas sin cuadros delimitadores, mientras que el seguimiento de objetos proporciona las etiquetas de los objetos individuales presentes en un vídeo determinado, así como el cuadro delimitador de cada instancia de objeto en cada paso de tiempo.
Se asignan varias instancias del mismo tipo de objeto a diferentes instancias del mensaje ObjectTrackingAnnotation
, donde todas las apariciones de un objeto determinado se conservan en su propia instancia de ObjectTrackingAnnotation
. Por ejemplo, si en un vídeo aparecen un coche rojo y un coche azul durante 5 segundos, la solicitud de seguimiento debe devolver dos instancias de ObjectTrackingAnnotation
. La primera instancia contendrá las ubicaciones de uno de los dos coches (por ejemplo, el rojo), mientras que la segunda contendrá las ubicaciones del otro coche.
Solicitar la monitorización de objetos en un vídeo de Cloud Storage
En los siguientes ejemplos se muestra el seguimiento de objetos en un archivo ubicado en Cloud Storage.
REST
Enviar la solicitud de proceso
A continuación, se muestra cómo enviar una solicitud POST
al método annotate
.
En el ejemplo se usa el token de acceso de una cuenta de servicio configurada para el proyecto con la CLI de Google Cloud. Para obtener instrucciones sobre cómo instalar la CLI de Google Cloud, configurar un proyecto con una cuenta de servicio y obtener un token de acceso, consulta la guía de inicio rápido de Video Intelligence.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- INPUT_URI: STORAGE_URI
Por ejemplo:
"inputUri": "gs://cloud-videointelligence-demo/assistant.mp4",
- PROJECT_NUMBER: identificador numérico de tu Google Cloud proyecto
Método HTTP y URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
Cuerpo JSON de la solicitud:
{ "inputUri": "STORAGE_URI", "features": ["OBJECT_TRACKING"] }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
Si la solicitud se realiza correctamente, la API Video Intelligence devuelve el name
de la operación. En el ejemplo anterior se muestra una respuesta de este tipo, donde PROJECT_NUMBER
es el número de tu proyecto y OPERATION_ID
es el ID de la operación de larga duración creada para la solicitud.
Obtener los resultados
Para obtener los resultados de tu solicitud, envía una GET
con el nombre de la operación devuelto por la llamada a videos:annotate
, como se muestra en el siguiente ejemplo.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- OPERATION_NAME: el nombre de la operación tal como lo devuelve la API Video Intelligence. El nombre de la operación tiene el formato
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
- PROJECT_NUMBER: identificador numérico de tu Google Cloud proyecto
Método HTTP y URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
Descargar resultados de anotación
Copia la anotación del segmento de origen al de destino (consulta Copiar archivos y objetos).
gcloud storage cp gcs_uri gs://my-bucket
Nota: Si el usuario proporciona el URI de GCS de salida, la anotación se almacenará en ese URI.
Go
Java
Node.js
Para autenticarte en Video Intelligence, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Video Intelligence para .NET.
PHP Sigue las instrucciones de configuración de PHP en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Video Intelligence para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Video Intelligence para Ruby.
Solicitar la monitorización de objetos en un vídeo de un archivo local
En los siguientes ejemplos se muestra cómo monitorizar objetos en un archivo almacenado de forma local.
REST
Enviar la solicitud de proceso
Para añadir anotaciones a un archivo de vídeo local, codifica en Base64 el contenido del archivo de vídeo.
Incluye el contenido codificado en base64 en el campo inputContent
de la solicitud.
Para obtener información sobre cómo codificar en Base64 el contenido de un archivo de vídeo, consulta Codificación Base64.
A continuación, se muestra cómo enviar una solicitud POST
al método videos:annotate
. En el ejemplo se usa el token de acceso de una cuenta de servicio configurada para el proyecto con la CLI de Google Cloud. Para obtener instrucciones sobre cómo instalar la CLI de Google Cloud, configurar un proyecto con una cuenta de servicio y obtener un token de acceso, consulta el inicio rápido de Video Intelligence.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- inputContent: BASE64_ENCODED_CONTENT
Por ejemplo:"UklGRg41AwBBVkkgTElTVAwBAABoZHJsYXZpaDgAAAA1ggAAxPMBAAAAAAAQCAA..."
- PROJECT_NUMBER: identificador numérico de tu Google Cloud proyecto
Método HTTP y URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
Cuerpo JSON de la solicitud:
{ "inputContent": "BASE64_ENCODED_CONTENT", "features": ["OBJECT_TRACKING"] }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
Si la solicitud se realiza correctamente, Video Intelligence devolverá el name
de tu operación. A continuación, se muestra un ejemplo de este tipo de respuesta, donde PROJECT_NUMBER
es el número de tu proyecto y OPERATION_ID
es el ID de la operación de larga duración creada para la solicitud.
Obtener los resultados
Para obtener los resultados de tu solicitud, debes enviar una solicitud GET
con el nombre de la operación devuelto por la llamada a videos:annotate
, tal como se muestra en el siguiente ejemplo.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- OPERATION_NAME: el nombre de la operación tal como lo devuelve la API Video Intelligence. El nombre de la operación tiene el formato
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
- PROJECT_NUMBER: identificador numérico de tu Google Cloud proyecto
Método HTTP y URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
Go
Java
Node.js
Para autenticarte en Video Intelligence, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Video Intelligence para .NET.
PHP Sigue las instrucciones de configuración de PHP en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Video Intelligence para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Video Intelligence para Ruby.