El seguimiento de objetos realiza un seguimiento de los objetos detectados en un video de entrada. Para realizar 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 video o segmentos de video, una solicitud de seguimiento de objetos anota el video con las etiquetas adecuadas para estas entidades y ubicaciones espaciales. Por ejemplo, un video de vehículos que cruzan una señal de tráfico puede producir etiquetas como “automóvil”, “ camión”, “bicicleta”, “frenos”, “luces”, “ventana”, etcétera. Cada etiqueta puede incluir una serie de cuadros de límite, cada uno con un segmento de tiempo asociado que contiene una compensación de tiempo que indica la compensación de duración desde el principio del video. La anotación también contiene información adicional sobre la entidad, incluido un ID de la entidad que puedes usar para encontrar más información sobre la entidad en la API de búsqueda del Gráfico de conocimiento de Google.
Seguimiento de objetos en comparación con la detección de etiquetas
El seguimiento de objetos difiere de la detección de etiquetas. La detección de etiquetas proporciona etiquetas sin cuadros de límite, mientras que el seguimiento de objetos proporciona las etiquetas de los objetos individuales presentes en un video determinado con el cuadro delimitador de cada instancia de objeto en cada paso.
Varias instancias del mismo tipo de objeto se asignan a diferentes instancias del mensaje ObjectTrackingAnnotation
, en las que todas las ocurrencias de una pista de objeto determinada se mantienen en su propia instancia de ObjectTrackingAnnotation
. Por ejemplo, si hay un automóvil rojo y uno azul que aparecen durante 5 segundos en un video, la solicitud de seguimiento debe mostrar dos instancias de ObjectTrackingAnnotation
. La primera instancia contendrá las ubicaciones de uno de los dos automóviles, por ejemplo, el automóvil rojo, mientras que la segunda contendrá las ubicaciones del otro automóvil.
Solicita el seguimiento de objetos para un video en Cloud Storage
En los siguientes ejemplos, se muestra el seguimiento de objetos en un archivo ubicado en Cloud Storage.
REST
Envía 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 correspondiente a la configuración de una cuenta de servicio para el proyecto con Google Cloud CLI. Si deseas obtener instrucciones para instalar Google Cloud CLI, 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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- INPUT_URI: STORAGE_URI
Por ejemplo:"inputUri": "gs://cloud-videointelligence-demo/assistant.mp4",
- PROJECT_NUMBER: El identificador numérico de tu proyecto de Google Cloud
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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
Si la respuesta es correcta, la API de Video Intelligence muestra name
para tu operación. A continuación, se muestra un ejemplo de la respuesta, en la que 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.
Obtén los resultados
Para obtener los resultados de tu solicitud, debes enviar un GET
con el nombre de la operación que se muestra de la llamada a videos:annotate
, como se muestra en el siguiente ejemplo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- OPERATION_NAME: el nombre de la operación que muestra la API de Video Intelligence. El nombre de la operación tiene el formato
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
. - PROJECT_NUMBER: El identificador numérico de tu proyecto de Google Cloud
Método HTTP y URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Descarga los resultados de las anotaciones
Copia la anotación de la fuente al bucket de destino: (consulta Cómo 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 almacena en ese URI de GCS.
Go
Java
Node.js
Para autenticarte en Video Intelligence, 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
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Video Intelligence para .NET.
PHP: Sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Video Intelligence para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Video Intelligence para Ruby.
Solicita el seguimiento de objetos para video desde un archivo local
En los siguientes ejemplos, se demuestra el seguimiento de objetos en un archivo almacenado de forma local.
REST
Envía la solicitud de proceso
Para realizar una anotación en un archivo de video local, codifica el contenido del archivo de video en base64.
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 video, consulta Codificación en 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 correspondiente a la configuración de una cuenta de servicio para el proyecto con Google Cloud CLI. Si deseas obtener instrucciones para instalar Google Cloud CLI, 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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- inputContent: BASE64_ENCODED_CONTENT
Por ejemplo:"UklGRg41AwBBVkkgTElTVAwBAABoZHJsYXZpaDgAAAA1ggAAxPMBAAAAAAAQCAA..."
- PROJECT_NUMBER: El identificador numérico de tu proyecto de Google Cloud
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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Si la solicitud se realiza correctamente, Video Intelligence elige el name
para tu operación. A continuación, se muestra un ejemplo de la respuesta, en la que 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.
Obtén los resultados
Para obtener los resultados de tu solicitud, debes enviar un GET
con el nombre de la operación que se muestra de la llamada a videos:annotate
, como se muestra en el siguiente ejemplo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- OPERATION_NAME: el nombre de la operación que muestra la API de Video Intelligence. El nombre de la operación tiene el formato
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
. - PROJECT_NUMBER: El identificador numérico de tu proyecto de Google Cloud
Método HTTP y URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Go
Java
Node.js
Para autenticarte en Video Intelligence, 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
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Video Intelligence para .NET.
PHP: Sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Video Intelligence para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de Video Intelligence para Ruby.