将“面部模糊处理”模型与 Python SDK 搭配使用

本教程将向您展示如何使用 Python SDK 模糊视频中的人脸。此示例会模糊处理 Cloud Storage 存储桶中的视频文件,并生成模糊处理后的视频输出。这些输出视频会存储在与源视频相同的 Cloud Storage 存储桶中。

目标

本教程介绍了如何执行以下操作:

  • 创建 Cloud Storage 存储桶。
  • 将本地视频文件上传到存储桶。
  • 使用 Python SDK 发送请求。
  • 查看模糊处理后的输出视频。

费用

在本文档中,您将使用 Google Cloud的以下收费组件:

如需根据您的预计使用情况来估算费用,请使用价格计算器

新 Google Cloud 用户可能有资格申请免费试用

完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud新手,请 创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 安装 Google Cloud CLI。

  3. 如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  4. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  5. 创建或选择 Google Cloud 项目

    选择或创建项目所需的角色

    • 选择项目:选择项目不需要特定的 IAM 角色,您可以选择已获授角色的任何项目。
    • 创建项目:如需创建项目,您需要拥有 Project Creator 角色 (roles/resourcemanager.projectCreator),该角色包含 resourcemanager.projects.create 权限。了解如何授予角色
    • 创建 Google Cloud 项目:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替换为您要创建的 Google Cloud 项目的名称。

    • 选择您创建的 Google Cloud 项目:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替换为您的 Google Cloud 项目名称。

  6. 验证是否已为您的 Google Cloud 项目启用结算功能

  7. 启用 Vertex AI Vision API 和 Cloud Storage API:

    启用 API 所需的角色

    如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予角色

    gcloud services enable visionai.googleapis.com storage.googleapis.com
  8. 如果您使用的是本地 shell,请为您的用户账号创建本地身份验证凭证:

    gcloud auth application-default login

    如果您使用的是 Cloud Shell,则无需执行此操作。

    如果系统返回身份验证错误,并且您使用的是外部身份提供方 (IdP),请确认您已 使用联合身份登录 gcloud CLI

  9. 向您的用户账号授予角色。对以下每个 IAM 角色运行以下命令一次: roles/visionai.editor, roles/storage.objectAdmin

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

    替换以下内容:

    • PROJECT_ID:您的项目 ID。
    • USER_IDENTIFIER:您的用户 账号的标识符。例如,myemail@example.com
    • ROLE:您授予用户账号的 IAM 角色。
  10. 安装 Google Cloud CLI。

  11. 如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  12. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  13. 创建或选择 Google Cloud 项目

    选择或创建项目所需的角色

    • 选择项目:选择项目不需要特定的 IAM 角色,您可以选择已获授角色的任何项目。
    • 创建项目:如需创建项目,您需要拥有 Project Creator 角色 (roles/resourcemanager.projectCreator),该角色包含 resourcemanager.projects.create 权限。了解如何授予角色
    • 创建 Google Cloud 项目:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替换为您要创建的 Google Cloud 项目的名称。

    • 选择您创建的 Google Cloud 项目:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替换为您的 Google Cloud 项目名称。

  14. 验证是否已为您的 Google Cloud 项目启用结算功能

  15. 启用 Vertex AI Vision API 和 Cloud Storage API:

    启用 API 所需的角色

    如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予角色

    gcloud services enable visionai.googleapis.com storage.googleapis.com
  16. 如果您使用的是本地 shell,请为您的用户账号创建本地身份验证凭证:

    gcloud auth application-default login

    如果您使用的是 Cloud Shell,则无需执行此操作。

    如果系统返回身份验证错误,并且您使用的是外部身份提供方 (IdP),请确认您已 使用联合身份登录 gcloud CLI

  17. 向您的用户账号授予角色。对以下每个 IAM 角色运行以下命令一次: roles/visionai.editor, roles/storage.objectAdmin

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

    替换以下内容:

    • PROJECT_ID:您的项目 ID。
    • USER_IDENTIFIER:您的用户 账号的标识符。例如,myemail@example.com
    • ROLE:您授予用户账号的 IAM 角色。
  18. 获取 Vertex AI Vision SDK 源代码:
    git clone https://github.com/google/visionai.git

    Python 示例位于 visionai/python/example/ 目录中。

  19. 获取 Python SDK:
    wget https://github.com/google/visionai/releases/download/v0.0.5/visionai-0.0.5-py3-none-any.whl

将输入文件添加到 Cloud Storage

在使用 Python SDK 发送请求之前,请先创建一个 Cloud Storage 存储桶并上传本地视频以用作输入。

  1. 创建 Cloud Storage 存储分区,请运行以下命令:

    gcloud storage buckets create gs://BUCKET_NAME
    
  2. 将本地视频文件上传到新存储桶:

    gcloud storage cp LOCAL_FILE gs://BUCKET_NAME
    

安装依赖项并发送请求

为输入和输出视频创建 Cloud Storage 存储桶并添加本地视频后,安装必要的依赖项并发送请求。

  1. 可选。设置虚拟环境:

    1. 如果未安装,请安装 virtualenv

      sudo apt-get install python3-venv
      
    2. 创建新的虚拟环境:

      python3 -m venv vaivenv
      
    3. 激活虚拟环境:

      source vaivenv/bin/activate
      
  2. 安装依赖项:

    pip3 install visionai-0.0.5-py3-none-any.whl
    pip3 install google-cloud-storage
    
  3. 使用 Python SDK 发送请求。

    进行以下变量替换:

    • PROJECT_ID:您的 Google Cloud 项目 ID。
    • LOCATION_ID:您的位置 ID。例如 us-central1了解详情支持的区域
    • BUCKET_NAME:您创建的 Cloud Storage 存储桶。
    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
    

    您将看到如下所示的输出:

     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!
     ```
    

检查输出

视频处理完毕后,您可以在 Cloud Storage 存储桶中查看输出。生成的模糊处理后的视频文件将位于源视频所在的 Cloud Storage 存储桶中。

  1. 使用 gcloud storage ls 命令列出存储桶中的所有对象:

    gcloud storage ls gs://bucket
    

    您应该会看到类似于以下内容的源文件和输出文件:

    test1.mp4
    test2.mp4
    test1_deid_output.mp4
    test2_deid_output.mp4
    
  2. 可选。使用 gcloud storage cp 命令将输出文件下载到本地,然后查看模糊处理后的视频:

    gcloud storage cp gs://BUCKET_NAME/FILE_NAME .
    

清理

为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。

后续步骤