このチュートリアルでは、Python SDK を使用して動画内の顔をぼかす方法について説明します。この例では、Cloud Storage バケットの動画ファイルをぼかし、ぼかし処理された動画出力を生成します。これらの出力動画は、ソース動画と同じ Cloud Storage バケットに保存されます。
目標
このチュートリアルでは、次の方法を説明します。
- Cloud Storage バケットを作成する。
- ローカル動画ファイルをバケットにアップロードする。
- Python SDK を使用してリクエストを送信する。
- ぼかし処理された出力動画を表示する。
費用
このドキュメントでは、課金対象である次の コンポーネントを使用します Google Cloud:
- Vertex AI Vision (Models - Person / face blur)
- Cloud Storage
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
始める前に
- アカウントにログインします。 Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
プロジェクトを作成または選択します 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 プロジェクト名に置き換えます。
Vertex AI Vision と Cloud Storage の API を有効にします。
API を有効にするために必要なロール
API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(
roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enable詳しくは、ロールを付与する方法をご覧ください。gcloud services enable visionai.googleapis.com
storage.googleapis.com -
ローカルシェルを使用している場合は、ユーザー アカウントのローカル認証情報を作成します。
gcloud auth application-default login
Cloud Shell を使用している場合は、この操作を行う必要はありません。
認証エラーが返され、外部 ID プロバイダ (IdP)を使用している場合は、 フェデレーション ID を使用して gcloud CLI にログインしていることを確認します。
-
ユーザー アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/visionai.editor, roles/storage.objectAdmingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
次のように置き換えます。
PROJECT_ID: プロジェクト ID。USER_IDENTIFIER: ユーザー アカウントの識別子。 例:myemail@example.com。ROLE: ユーザー アカウントに付与する IAM ロール。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します:
gcloud init -
プロジェクトを作成または選択します 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 プロジェクト名に置き換えます。
Vertex AI Vision と Cloud Storage の API を有効にします。
API を有効にするために必要なロール
API を有効にするには、 権限を含む Service Usage 管理者 IAM ロール(
roles/serviceusage.serviceUsageAdmin)が必要です。serviceusage.services.enable詳しくは、ロールを付与する方法をご覧ください。gcloud services enable visionai.googleapis.com
storage.googleapis.com -
ローカルシェルを使用している場合は、ユーザー アカウントのローカル認証情報を作成します。
gcloud auth application-default login
Cloud Shell を使用している場合は、この操作を行う必要はありません。
認証エラーが返され、外部 ID プロバイダ (IdP)を使用している場合は、 フェデレーション ID を使用して gcloud CLI にログインしていることを確認します。
-
ユーザー アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/visionai.editor, roles/storage.objectAdmingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
次のように置き換えます。
PROJECT_ID: プロジェクト ID。USER_IDENTIFIER: ユーザー アカウントの識別子。 例:myemail@example.com。ROLE: ユーザー アカウントに付与する IAM ロール。
- Vertex AI Vision SDK のソースコードを取得します。
git clone https://github.com/google/visionai.git
Python のサンプルは
visionai/python/example/ディレクトリにあります。 - 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 バケットを作成し、入力として使用するローカル動画をアップロードします。
Cloud Storage バケットを作成します。
gcloud storage buckets create gs://BUCKET_NAMEローカル動画ファイルを新しいバケットにアップロードします。
gcloud storage cp LOCAL_FILE gs://BUCKET_NAME
依存関係をインストールしてリクエストを送信する
入力動画と出力動画用の Cloud Storage バケットを作成し、ローカル動画を追加したら、必要な依存関係をインストールしてリクエストを送信します。
省略可。仮想環境を設定します。
インストールされていない場合は、
virtualenvをインストールします。sudo apt-get install python3-venv新しい仮想環境を作成します。
python3 -m venv vaivenv仮想環境を有効にします。
source vaivenv/bin/activate
依存関係をインストールします。
pip3 install visionai-0.0.5-py3-none-any.whl pip3 install google-cloud-storagePython 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 バケットに保存されます。
gcloud storage lsコマンドを使用して、バケット内のすべてのオブジェクトを一覧表示します。gcloud storage ls gs://bucket次のように、ソースファイルと出力ファイルが表示されます。
test1.mp4 test2.mp4 test1_deid_output.mp4 test2_deid_output.mp4省略可。
gcloud storage cpコマンドを使用して出力ファイルをローカルにダウンロードし、ぼかし処理された動画を表示します。gcloud storage cp gs://BUCKET_NAME/FILE_NAME .
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
次のステップ
- 人物のぼかしモデルの詳細を確認する。
- Google Cloud に関するリファレンス アーキテクチャ、図、ベスト プラクティスを確認する。Cloud アーキテクチャ センターをご覧ください。