En este tutorial se muestra cómo usar el SDK de Python para desenfocar caras en un vídeo. En el ejemplo se desenfocan archivos de vídeo de un segmento de Cloud Storage y se generan vídeos desenfocados. Estos vídeos de salida se almacenan en el mismo segmento de Cloud Storage que los vídeos de origen.
Objetivos
En este tutorial te explicamos cómo hacer lo siguiente:
- Crea un segmento de Cloud Storage.
- Sube un archivo de vídeo local al segmento.
- Envía una solicitud con el SDK de Python.
- Ver vídeos con la salida desenfocada.
Costes
En este documento, se utilizan los siguientes componentes facturables de Google Cloud:
- Vertex AI Vision (Models - Person / face blur)
- Cloud Storage
Para generar una estimación de costes basada en el uso previsto,
utiliza la calculadora de precios.
Cuando termines las tareas que se describen en este documento, puedes evitar que se te siga facturando eliminando los recursos que has creado. Para obtener más información, consulta la sección Limpiar.
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI Vision, Cloud Storage APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable visionai.googleapis.com
storage.googleapis.com -
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/visionai.editor, roles/storage.objectAdmin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID
: your project ID.USER_IDENTIFIER
: the identifier for your user account—for example,myemail@example.com
.ROLE
: the IAM role that you grant to your user account.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI Vision, Cloud Storage APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable visionai.googleapis.com
storage.googleapis.com -
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/visionai.editor, roles/storage.objectAdmin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID
: your project ID.USER_IDENTIFIER
: the identifier for your user account—for example,myemail@example.com
.ROLE
: the IAM role that you grant to your user account.
- Obtén el código fuente del SDK de Vertex AI Vision:
git clone https://github.com/google/visionai.git
Los ejemplos de Python se encuentran en el directorio
visionai/python/example/
. - Obtén el SDK de Python:
wget https://github.com/google/visionai/releases/download/v0.0.5/visionai-0.0.5-py3-none-any.whl
Crea un segmento de Cloud Storage:
gcloud storage buckets create gs://BUCKET_NAME
Sube un archivo de vídeo local al nuevo segmento:
gcloud storage cp LOCAL_FILE gs://BUCKET_NAME
Opcional. Configura tu entorno virtual:
Si no está instalada, instala
virtualenv
:sudo apt-get install python3-venv
Crea un entorno virtual:
python3 -m venv vaivenv
Activa tu entorno virtual:
source vaivenv/bin/activate
Instala las dependencias:
pip3 install visionai-0.0.5-py3-none-any.whl pip3 install google-cloud-storage
Envía tu solicitud con el SDK de Python.
Sustituye las siguientes variables:
- PROJECT_ID: tu ID de proyecto Google Cloud .
- LOCATION_ID: tu ID de ubicación. Por ejemplo,
us-central1
. Más información Regiones admitidas - BUCKET_NAME: el segmento de Cloud Storage que has creado.
python3 visionai/python/example/blur_gcs_video.py \ --project_id=PROJECT_ID –cluster_id=application-cluster-0 \ –location_id=LOCATION_ID –bucket_name=BUCKET_NAME
Debería aparecer lo siguiente:
Listing mp4 files... test1.mp4 test2.mp4 Creating deid processes... process vnluvxgl is created process rvrdoucx is created Waiting for processes to finish... process vnluvxgl state is COMPLETED process rvrdoucx state is COMPLETED All processes have finished, please check the GCS bucket! ```
Lista todos los objetos de tu segmento con el comando
gcloud storage ls
:gcloud storage ls gs://bucket
Deberías ver los archivos de origen y de salida, como se muestra a continuación:
test1.mp4 test2.mp4 test1_deid_output.mp4 test2_deid_output.mp4
Opcional. Descarga los archivos de salida de forma local con el comando
gcloud storage cp
y consulta los vídeos desenfocados:gcloud storage cp gs://BUCKET_NAME/FILE_NAME .
- Consulta más información sobre el modelo de desenfoque de personas.
- Consulta arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Centro de arquitectura de Cloud.
Añadir archivos de entrada a Cloud Storage
Antes de enviar una solicitud con el SDK de Python, crea un segmento de Cloud Storage y sube un vídeo local para usarlo como entrada.
Instalar dependencias y enviar la solicitud
Una vez que hayas creado el segmento de Cloud Storage para los vídeos de entrada y salida, y hayas añadido un vídeo local, instala las dependencias necesarias y envía tu solicitud.
Examinar el resultado
Cuando el vídeo haya terminado de procesarse, puedes examinar el resultado en tu cubo de Cloud Storage. Los archivos de vídeo desenfocados generados se encontrarán en el mismo segmento de Cloud Storage que el vídeo de origen.
Limpieza
Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.