En este instructivo, se muestra cómo usar el SDK de Python para desenfocar rostros en videos. En el ejemplo, se desenfocan archivos de video de un bucket de Cloud Storage y se generan videos desenfocados como resultado. Estos videos de salida se almacenan en el mismo bucket de Cloud Storage que los videos fuente.
Objetivos
En este instructivo, se muestra cómo realizar lo siguiente:
- Crear un bucket de Cloud Storage
- Sube un archivo de video local al bucket.
- Envía una solicitud con el SDK de Python.
- Ver videos de salida desenfocados
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
- Vertex AI Vision (Models - Person / face blur)
- Cloud Storage
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.
Antes de comenzar
- 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.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI Vision, Cloud Storage APIs:
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
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
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.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI Vision, Cloud Storage APIs:
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
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
- 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
Agrega archivos de entrada a Cloud Storage
Antes de enviar una solicitud con el SDK de Python, crea un bucket de Cloud Storage y sube un video local para usarlo como entrada.
Crea un bucket de Cloud Storage:
gcloud storage buckets create gs://BUCKET_NAME
Sube un archivo de video local al bucket nuevo:
gcloud storage cp LOCAL_FILE gs://BUCKET_NAME
Instala las dependencias y envía la solicitud
Después de crear tu bucket de Cloud Storage para los videos de entrada y salida, y agregar un video local, instala las dependencias necesarias y envía tu solicitud.
Opcional. Configura tu entorno virtual:
Si no está instalado, instala
virtualenv
:sudo apt-get install python3-venv
Crea un nuevo 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.
Realiza las siguientes sustituciones de variables:
- PROJECT_ID: El ID de tu proyecto de Google Cloud .
- LOCATION_ID: Es el ID de tu ubicación. Por ejemplo,
us-central1
Más información. Regiones admitidas. - BUCKET_NAME: Es el bucket de Cloud Storage que creaste.
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 ver un resultado similar al 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! ```
Examina el resultado
Una vez que finalice el procesamiento del video, puedes examinar el resultado en tu bucket de Cloud Storage. Los archivos de video desenfocados generados se encontrarán en el mismo bucket de Cloud Storage que el video fuente.
Enumera todos los objetos de tu bucket con el comando
gcloud storage ls
:gcloud storage ls gs://bucket
Deberías ver los archivos fuente y los archivos de salida similares a los siguientes:
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 mira los videos desenfocados:gcloud storage cp gs://BUCKET_NAME/FILE_NAME .
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
¿Qué sigue?
- Obtén más información sobre el modelo de desenfoque de personas.
- Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Cloud Architecture Center.