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. 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
- Subir un archivo de video local al bucket
- Enviar 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:
- Gemini Enterprise Agent Platform 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 completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.
Antes de comenzar
- Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crea un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos
(
roles/resourcemanager.projectCreator), que contiene elresourcemanager.projects.createpermiso. Obtén más información para otorgar roles.
-
Crea un proyecto de: Google Cloud
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el Google Cloud proyecto de que estás creando. -
Selecciona el Google Cloud proyecto de que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre del proyecto de Google Cloud .
-
Verifica que la facturación esté habilitada para tu Google Cloud proyecto.
Habilita las APIs de Vertex AI Vision y Cloud Storage:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene elserviceusage.services.enablepermiso. Obtén más información para otorgar roles.gcloud services enable visionai.googleapis.com
storage.googleapis.com -
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
-
Otorga roles a tu cuenta de usuario. Ejecuta el siguiente comando una vez para cada uno de los siguientes roles de IAM:
roles/visionai.editor, roles/storage.objectAdmingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto.USER_IDENTIFIER: Es el identificador de tu cuenta de usuario. Por ejemplo,myemail@example.com.ROLE: Es el rol de IAM que otorgas a tu cuenta de usuario.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Selecciona un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crea un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos
(
roles/resourcemanager.projectCreator), que contiene elresourcemanager.projects.createpermiso. Obtén más información para otorgar roles.
-
Crea un proyecto de: Google Cloud
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el Google Cloud proyecto de que estás creando. -
Selecciona el Google Cloud proyecto de que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre del proyecto de Google Cloud .
-
Verifica que la facturación esté habilitada para tu Google Cloud proyecto.
Habilita las APIs de Vertex AI Vision y Cloud Storage:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene elserviceusage.services.enablepermiso. Obtén más información para otorgar roles.gcloud services enable visionai.googleapis.com
storage.googleapis.com -
Si usas un shell local, crea credenciales de autenticación locales para tu cuenta de usuario:
gcloud auth application-default login
No es necesario que lo hagas si usas Cloud Shell.
-
Otorga roles a tu cuenta de usuario. Ejecuta el siguiente comando una vez para cada uno de los siguientes roles de IAM:
roles/visionai.editor, roles/storage.objectAdmingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto.USER_IDENTIFIER: Es el identificador de tu cuenta de usuario. Por ejemplo,myemail@example.com.ROLE: Es el rol de IAM que otorgas a tu cuenta de usuario.
- Obtén el código fuente del SDK de Vision de Gemini Enterprise Agent Platform:
git clone https://github.com/google/visionai.git
Los ejemplos de Python se encuentran en el
visionai/python/example/directorio. - 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 que puedas 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_NAMESube un archivo de video local al nuevo bucket:
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 videos de entrada y salida, y agregar un video local, instala las dependencias necesarias y envía tu solicitud.
Es opcional. Configura tu entorno virtual:
Si no está instalado, instala
virtualenv:sudo apt-get install python3-venvCrea un nuevo entorno virtual:
python3 -m venv vaivenvActiva tu entorno virtual:
source vaivenv/bin/activate
Instala las dependencias:
pip3 install visionai-0.0.5-py3-none-any.whl pip3 install google-cloud-storageEnvía tu solicitud con el SDK de Python.
Realiza las siguientes sustituciones de variables:
- PROJECT_ID: Es el ID del Google Cloud proyecto.
- 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_NAMEDeberí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 se termine de procesar el video, puedes examinar el resultado en tu bucket de Cloud Storage. Los archivos de video desenfocados generados estarán en el mismo bucket de Cloud Storage que el video fuente.
Enumera todos los objetos de tu bucket con el
gcloud storage lscomando:gcloud storage ls gs://bucketDeberías ver los archivos fuente y los archivos de resultado similares a los siguientes:
test1.mp4 test2.mp4 test1_deid_output.mp4 test2_deid_output.mp4Es opcional. Descarga los archivos de resultado de forma local con el
gcloud storage cpcomando y mira los videos desenfocados:gcloud storage cp gs://BUCKET_NAME/FILE_NAME .
Limpia
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.