En el siguiente código de ejemplo se muestra cómo detectar personas en un archivo de vídeo mediante la API Video Intelligence.
Video Intelligence puede detectar la presencia de personas en un archivo de vídeo y hacer un seguimiento de las personas a lo largo de un vídeo o un segmento de vídeo.
Detección de personas en un archivo de Cloud Storage
A continuación, se muestra cómo enviar una solicitud de anotación a Video Intelligence con la función de detección de personas.
REST
Enviar solicitud de anotación de vídeo
A continuación, se muestra cómo enviar una solicitud POST al método videos:annotate
. En el ejemplo se usa Google Cloud CLI para crear un token de acceso. Para obtener instrucciones sobre cómo instalar gcloud CLI, consulta la guía de inicio rápido de la API Video Intelligence.
Consulta también PersonDetectionConfig
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- INPUT_URI: un segmento de Cloud Storage que contiene
el archivo que quieres anotar, incluido el nombre del archivo. Debe
empezar por
gs://
.
Por ejemplo:
"inputUri": "gs://cloud-samples-data/video/googlework_short.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": "INPUT_URI", "features": ["PERSON_DETECTION"], "videoContext": { "personDetectionConfig": { "includeBoundingBoxes": true, "includePoseLandmarks": true, "includeAttributes": true } } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
Si la respuesta es correcta, la API Video Intelligence devuelve el name
de tu operación. Arriba se muestra un ejemplo de este tipo de respuesta, donde:
- PROJECT_NUMBER: el número de tu proyecto
- LOCATION_ID: la región de Cloud en la que se debe realizar la anotación. Las regiones de nube admitidas son
us-east1
,us-west1
,europe-west1
yasia-east1
. Si no se especifica ninguna región, se determinará una en función de la ubicación del archivo de vídeo. - OPERATION_ID: 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,
12345...
.
Obtener resultados de anotación
Para obtener el resultado de la operación, haz una solicitud 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:
Las anotaciones de detección de planos se devuelven como una listashotAnnotations
.
Nota: El campo done solo se devuelve cuando su valor es True.
No se incluye en las respuestas de las operaciones que no se han completado.
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.
Java
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.
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
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.
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.
Detección de personas en archivos locales
En el siguiente ejemplo se usa la detección de personas para encontrar entidades en un vídeo de un archivo de vídeo subido desde tu máquina local.
REST
Enviar la solicitud de proceso
Para detectar personas en un archivo de vídeo local, codifica en Base64 el contenido del archivo de vídeo. 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, haz una solicitud POST al método videos:annotate
. Incluye el contenido codificado en Base64 en el campo inputContent
de la solicitud y especifica la función PERSON_DETECTION
.
A continuación, se muestra un ejemplo de una solicitud POST que utiliza curl. En el ejemplo se usa Google Cloud CLI para crear un token de acceso. Para obtener instrucciones sobre cómo instalar gcloud CLI, consulta la guía de inicio rápido de la API Video Intelligence.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- inputContent: Archivo de vídeo local en formato binario.
Por ejemplo: "AAAAGGZ0eXBtcDQyAAAAAGlzb21tcDQyAAGVYW1vb3YAAABsbXZoZAAAAADWvhlR1r4ZUQABX5ABCOxo AAEAAAEAAAAAAA4..." - 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": "Local video file in binary format", "features": ["PERSON_DETECTION"], "videoContext": { "personDetectionConfig": { "includeBoundingBoxes": true, "includePoseLandmarks": true, "includeAttributes": true } } }
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. Arriba 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.
{
"name": "us-west1.17122464255125931980"
}
Obtener los resultados
Para obtener el resultado de la operación, haz una solicitud GET al endpoint operations
y especifica el nombre de la operación.
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:
Java
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.
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
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.
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.