使用 Python SDK 搭配臉部模糊處理模型

本教學課程說明如何使用 Python SDK 模糊處理影片中的臉部。這個範例會模糊處理 Cloud Storage bucket 中的影片檔案,並產生模糊處理後的影片輸出內容。這些輸出影片會儲存在與來源影片相同的 Cloud Storage 值區。

目標

本教學課程說明如何執行下列操作:

  • 建立 Cloud Storage bucket。
  • 將本機影片檔案上傳至值區。
  • 使用 Python SDK 傳送要求。
  • 查看模糊處理後的輸出影片。

費用

在本文件中,您會使用下列 Google Cloud的計費元件:

如要根據預測用量估算費用,請使用 Pricing Calculator

初次使用 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 角色,只要您已獲授角色,即可選取任何專案。
    • 建立專案:如要建立專案,您需要具備專案建立者角色 (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 和 Cloud Storage API:

    啟用 API 時所需的角色

    如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    gcloud services enable visionai.googleapis.com storage.googleapis.com
  8. 如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:

    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:使用者帳戶的 ID。 例如:myemail@example.com
    • ROLE:授予使用者帳戶的 IAM 角色。
  10. 安裝 Google Cloud CLI。

  11. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  12. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  13. 建立或選取 Google Cloud 專案

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
    • 建立專案:如要建立專案,您需要具備專案建立者角色 (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 和 Cloud Storage API:

    啟用 API 時所需的角色

    如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    gcloud services enable visionai.googleapis.com storage.googleapis.com
  16. 如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:

    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:使用者帳戶的 ID。 例如: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 bucket,並上傳要當做輸入內容的本機影片。

  1. 建立 Cloud Storage bucket:

    gcloud storage buckets create gs://BUCKET_NAME
    
  2. 將本機影片檔案上傳至新值區:

    gcloud storage cp LOCAL_FILE gs://BUCKET_NAME
    

安裝依附元件並傳送要求

建立 Cloud Storage bucket 來存放輸入和輸出影片,並新增本機影片後,請安裝必要依附元件並傳送要求。

  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 bucket。
    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 bucket。

  1. 使用 gcloud storage ls 指令列出 bucket 中的所有物件:

    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 帳戶收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。

後續步驟