En el siguiente muestra de código, se muestra cómo detectar personas en un archivo de video con la API de Video Intelligence.
Video Intelligence puede detectar la presencia de personas en un archivo de video y seguirlas en un segmento de video o en un video.
Detección de persona desde un archivo en 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
Envía una solicitud de anotación de video
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 de Video Intelligence.
Consulta también PersonDetectionConfig
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- INPUT_URI: Es el bucket de Cloud Storage que contiene el archivo que deseas anotar, incluido el nombre del archivo. Debe comenzar con
gs://
.
Por ejemplo:
"inputUri": "gs://cloud-samples-data/video/googlework_short.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": "INPUT_URI", "features": ["PERSON_DETECTION"], "videoContext": { "personDetectionConfig": { "includeBoundingBoxes": true, "includePoseLandmarks": true, "includeAttributes": true } } }
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 respuesta es correcta, la API de Video Intelligence muestra name
para tu operación. Lo anterior corresponde a un ejemplo de una respuesta en la que:
- 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
12345...
.
Obtén resultados de anotaciones
Para recuperar el resultado de la operación, realiza una solicitud GET con el nombre de la operación que se muestra en 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: Es 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:
Las anotaciones de detección de tomas se muestran como una listashotAnnotations
.
Nota: El campo done solo se muestra cuando su valor es True.
No se incluye en las respuestas para las que no se completó la operació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.
Java
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.
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
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.
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.
Detección de personas desde un archivo local
En el siguiente ejemplo, se usa la detección de personas para encontrar entidades en un video de un archivo de video que se subió desde tu máquina local.
REST
Envía la solicitud de proceso
Para realizar una detección de rostro en un archivo de video local, codifica el contenido del archivo de video en Base64. Para obtener información sobre cómo codificar en Base64 el contenido de un archivo de video, consulta Codificación en Base64. Luego, realiza 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
.
El siguiente es un ejemplo de una solicitud POST que usa 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 de Video Intelligence.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- inputContent: Archivo de video local en formato binario
Por ejemplo: 'AAAAGGZ0eXBtcDQyAAAAAGlzb21tcDQyAAGVYW1vb3YAAABsbXZozaAAAADWvhlR1r4ZUQABX5ABCOxa AAEAAAAAAAAAAAA4A...' - 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": "Local video file in binary format", "features": ["PERSON_DETECTION"], "videoContext": { "personDetectionConfig": { "includeBoundingBoxes": true, "includePoseLandmarks": true, "includeAttributes": true } } }
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.
{
"name": "us-west1.17122464255125931980"
}
Obtén los resultados
Para recuperar el resultado de la operación, realiza una solicitud GET al extremo operations
y especifica el nombre de la operación.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- OPERATION_NAME: Es 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:
Java
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.
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
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.
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.