Este tutorial mostra como usar o SDK do Python para desfocar rostos em vídeos. O exemplo desfoca arquivos de vídeo de um bucket do Cloud Storage e gera saídas de vídeo desfocadas. Esses vídeos de saída são armazenados no mesmo bucket do Cloud Storage que os vídeos de origem.
Objetivos
Este tutorial mostra como fazer o seguinte:
- Criar um bucket do Cloud Storage.
- Fazer upload de um arquivo de vídeo local para o bucket.
- Enviar uma solicitação usando o SDK do Python.
- Visualizar vídeos de saída desfocados.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
- Vertex AI Vision (Models - Person / face blur)
- Cloud Storage
Para gerar uma estimativa de custo baseada na projeção de uso,
use a calculadora de preços.
Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Para mais informações, consulte Limpeza.
Antes de começar
- Faça login na sua Google Cloud conta. Se você é novo no Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em cenários reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Papéis necessários para selecionar ou criar um projeto
- Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Crie um Google Cloud projeto:
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o Google Cloud projeto que você está criando. -
Selecione o Google Cloud projeto que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do Google Cloud projeto.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
Ative as APIs Vertex AI Vision e Cloud Storage:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de Service Usage role (
roles/serviceusage.serviceUsageAdmin), que contém aserviceusage.services.enablepermissão. Saiba como conceder papéis.gcloud services enable visionai.googleapis.com
storage.googleapis.com -
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
-
Conceda papéis à sua conta de usuário. Execute o seguinte comando uma vez para cada um dos seguintes papéis do IAM:
roles/visionai.editor, roles/storage.objectAdmingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Substitua:
PROJECT_ID: o ID do projeto.USER_IDENTIFIER: o identificador da sua conta de usuário. Por exemplo,myemail@example.com.ROLE: o papel do IAM que você concede à sua conta de usuário.
-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Crie ou selecione um Google Cloud projeto.
Papéis necessários para selecionar ou criar um projeto
- Selecionar um projeto: a seleção de um projeto não exige um papel específico do IAM. Você pode selecionar qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de criador de projetos
(
roles/resourcemanager.projectCreator), que contém aresourcemanager.projects.createpermissão. Saiba como conceder papéis.
-
Crie um Google Cloud projeto:
gcloud projects create PROJECT_ID
Substitua
PROJECT_IDpor um nome para o Google Cloud projeto que você está criando. -
Selecione o Google Cloud projeto que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_IDpelo nome do Google Cloud projeto.
-
Verifique se o faturamento está ativado para o Google Cloud projeto.
Ative as APIs Vertex AI Vision e Cloud Storage:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de Service Usage role (
roles/serviceusage.serviceUsageAdmin), que contém aserviceusage.services.enablepermissão. Saiba como conceder papéis.gcloud services enable visionai.googleapis.com
storage.googleapis.com -
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
-
Conceda papéis à sua conta de usuário. Execute o seguinte comando uma vez para cada um dos seguintes papéis do IAM:
roles/visionai.editor, roles/storage.objectAdmingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Substitua:
PROJECT_ID: o ID do projeto.USER_IDENTIFIER: o identificador da sua conta de usuário. Por exemplo,myemail@example.com.ROLE: o papel do IAM que você concede à sua conta de usuário.
- Acesse o código-fonte do SDK da Vertex AI Vision:
git clone https://github.com/google/visionai.git
Os exemplos do Python estão localizados no
visionai/python/example/diretório. - Acesse o SDK do Python:
wget https://github.com/google/visionai/releases/download/v0.0.5/visionai-0.0.5-py3-none-any.whl
Adicionar arquivos de entrada ao Cloud Storage
Antes de enviar uma solicitação usando o SDK do Python, crie um bucket do Cloud Storage e faça upload de um vídeo local para usar como entrada.
Crie um bucket do Cloud Storage:
gcloud storage buckets create gs://BUCKET_NAMEFaça upload de um arquivo de vídeo local para o novo bucket:
gcloud storage cp LOCAL_FILE gs://BUCKET_NAME
Instalar dependências e enviar a solicitação
Depois de criar o bucket do Cloud Storage para vídeos de entrada e saída e adicionar um vídeo local, instale as dependências necessárias e envie sua solicitação.
Opcional. Configure seu ambiente virtual:
Se não estiver instalado, instale
virtualenv:sudo apt-get install python3-venvCrie um novo ambiente virtual:
python3 -m venv vaivenvAtive seu ambiente virtual:
source vaivenv/bin/activate
Instale as dependências:
pip3 install visionai-0.0.5-py3-none-any.whl pip3 install google-cloud-storageEnvie sua solicitação com o SDK do Python.
Faça as seguintes substituições de variáveis:
- PROJECT_ID: o ID do Google Cloud projeto do.
- LOCATION_ID: o ID do local. Por exemplo,
us-central1. Mais informações. Regiões compatíveis. - BUCKET_NAME: o bucket do Cloud Storage que você criou.
python3 visionai/python/example/blur_gcs_video.py \ --project_id=PROJECT_ID –cluster_id=application-cluster-0 \ –location_id=LOCATION_ID –bucket_name=BUCKET_NAMEA resposta será semelhante a esta:
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! ```
Examinar saída
Depois que o vídeo terminar de ser processado, você poderá examinar a saída no bucket do Cloud Storage. Os arquivos de vídeo desfocados gerados estarão no mesmo bucket do Cloud Storage que o vídeo de origem.
Liste todos os objetos no bucket com o
gcloud storage lscomando:gcloud storage ls gs://bucketOs arquivos de origem e de saída serão semelhantes a estes:
test1.mp4 test2.mp4 test1_deid_output.mp4 test2_deid_output.mp4Opcional. Faça o download dos arquivos de saída localmente com o
gcloud storage cpcomando e visualize os vídeos desfocados:gcloud storage cp gs://BUCKET_NAME/FILE_NAME .
Liberar espaço
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
A seguir
- Leia mais sobre o modelo de desfoque de pessoas.
- Confira arquiteturas de referência, diagramas, tutoriais e práticas recomendadas do Google Cloud. Confira o Centro de arquitetura do Cloud.