This tutorial shows you how to use the Python SDK to blur faces in video. The example blurs video files from a Cloud Storage bucket and generates blurred video outputs. These output videos are stored to the same Cloud Storage bucket as the source videos.
Objectives
This tutorial shows you how to do the following:
- Create a Cloud Storage bucket.
- Upload a local video file to the bucket.
- Send a request using the Python SDK.
- View blurred output videos.
Costs
In this document, you use the following billable components of Google Cloud:
- Vertex AI Vision (Models - Person / face blur)
- Cloud Storage
To generate a cost estimate based on your projected usage,
use the pricing calculator.
When you finish the tasks that are described in this document, you can avoid continued billing by deleting the resources that you created. For more information, see Clean up.
Before you begin
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI Vision, Cloud Storage APIs:
gcloud services enable visionai.googleapis.com
storage.googleapis.com -
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/visionai.editor, roles/storage.objectAdmin
gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI Vision, Cloud Storage APIs:
gcloud services enable visionai.googleapis.com
storage.googleapis.com -
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/visionai.editor, roles/storage.objectAdmin
gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
- Get the Vertex AI Vision SDK source code:
git clone https://github.com/google/visionai.git
The Python examples are located in the
visionai/python/example/
directory. - Get the Python SDK:
wget https://github.com/google/visionai/releases/download/v0.0.5/visionai-0.0.5-py3-none-any.whl
Add input files to Cloud Storage
Before you can send a request using the Python SDK, create a Cloud Storage bucket and upload a local video to use as input.
Create a Cloud Storage bucket:
gcloud storage buckets create gs://BUCKET_NAME
Upload a local video file to the new bucket:
gcloud storage cp LOCAL_FILE gs://BUCKET_NAME
Install dependencies and send the request
After you create your Cloud Storage bucket for input and output videos and add a local video, install the necessary dependencies and send your request.
Optional. Set up your virtual environment:
If not installed, install
virtualenv
:sudo apt-get install python3-venv
Create a new virtual environment:
python3 -m venv vaivenv
Activate your virtual environment:
source vaivenv/bin/activate
Install dependencies:
pip3 install visionai-0.0.5-py3-none-any.whl pip3 install google-cloud-storage
Send your request with the Python SDK.
Make the following variable substitutions:
- PROJECT_ID: Your Google Cloud project ID.
- LOCATION_ID: Your location ID. For example,
us-central1
. More information. Supported regions. - BUCKET_NAME: The Cloud Storage bucket you created.
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
You should see output similar to the following:
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! ```
Examine output
After your video has finished processing you can examine the output in your Cloud Storage bucket. The generated blurred video files will be in the same Cloud Storage bucket as the source video.
List all objects in your bucket with the
gcloud storage ls
command:gcloud storage ls gs://bucket
You should see the source files and output files similar to the following:
test1.mp4 test2.mp4 test1_deid_output.mp4 test2_deid_output.mp4
Optional. Download the output files locally with the
gcloud storage cp
command and view the blurred videos:gcloud storage cp gs://BUCKET_NAME/FILE_NAME .
Clean up
To avoid incurring charges to your Google Cloud account for the resources used in this tutorial, either delete the project that contains the resources, or keep the project and delete the individual resources.
What's next
- Read more about the Person blur model.
- Explore reference architectures, diagrams, and best practices about Google Cloud. Take a look at our Cloud Architecture Center.