Cómo usar el modelo Face Blur con el SDK de Python

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:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.

Es posible que los usuarios de Google Cloud nuevos cumplan con los requisitos para acceder a una prueba gratuita.

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

  1. Accede a tu cuenta de Google Cloud . 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.
  2. Instala Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. 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.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (roles/resourcemanager.projectCreator), que contiene el permiso resourcemanager.projects.create. Obtén más información para otorgar roles.
    • Crea un proyecto de Google Cloud :

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto Google Cloud que estás creando.

    • Selecciona el proyecto Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto.

  6. Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .

  7. 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 el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    gcloud services enable visionai.googleapis.com storage.googleapis.com
  8. 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.

    Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.

  9. 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.objectAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Reemplaza lo siguiente:

    • PROJECT_ID: ID del proyecto
    • USER_IDENTIFIER: Es el identificador de tu cuenta de usuario de . Por ejemplo, myemail@example.com.
    • ROLE: Es el rol de IAM que otorgas a tu cuenta de usuario.
  10. Instala Google Cloud CLI.

  11. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  12. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  13. 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.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos (roles/resourcemanager.projectCreator), que contiene el permiso resourcemanager.projects.create. Obtén más información para otorgar roles.
    • Crea un proyecto de Google Cloud :

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto Google Cloud que estás creando.

    • Selecciona el proyecto Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto.

  14. Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .

  15. 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 el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    gcloud services enable visionai.googleapis.com storage.googleapis.com
  16. 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.

    Si se devuelve un error de autenticación y usas un proveedor de identidad (IdP) externo, confirma que accediste a la gcloud CLI con tu identidad federada.

  17. 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.objectAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Reemplaza lo siguiente:

    • PROJECT_ID: ID del proyecto
    • USER_IDENTIFIER: Es el identificador de tu cuenta de usuario de . Por ejemplo, myemail@example.com.
    • ROLE: Es el rol de IAM que otorgas a tu cuenta de usuario.
  18. 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/.

  19. 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.

  1. Crea un bucket de Cloud Storage:

    gcloud storage buckets create gs://BUCKET_NAME
    
  2. 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.

  1. Es opcional. Configura tu entorno virtual:

    1. Si no está instalado, instala virtualenv:

      sudo apt-get install python3-venv
      
    2. Crea un nuevo entorno virtual:

      python3 -m venv vaivenv
      
    3. Activa tu entorno virtual:

      source vaivenv/bin/activate
      
  2. Instala las dependencias:

    pip3 install visionai-0.0.5-py3-none-any.whl
    pip3 install google-cloud-storage
    
  3. Envía tu solicitud con el SDK de Python.

    Realiza las siguientes sustituciones de variables:

    • PROJECT_ID: Es el ID del 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.

  1. 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
    
  2. Es 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?