Usar o modelo de desfoque de rosto com o SDK do Python

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:

Para gerar uma estimativa de custo baseada na projeção de uso, use a calculadora de preços.

Novos Google Cloud usuários podem estar qualificados para um teste sem custo financeiro.

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

  1. 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.
  2. Instale a Google Cloud CLI.

  3. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  4. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  5. 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 a resourcemanager.projects.create permissão. Saiba como conceder papéis.
    • Crie um Google Cloud projeto:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por 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_ID pelo nome do Google Cloud projeto.

  6. Verifique se o faturamento está ativado para o Google Cloud projeto.

  7. 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 a serviceusage.services.enable permissão. Saiba como conceder papéis.

    gcloud services enable visionai.googleapis.com storage.googleapis.com
  8. 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.

  9. 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.objectAdmin

    gcloud 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.
  10. Instale a Google Cloud CLI.

  11. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  12. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  13. 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 a resourcemanager.projects.create permissão. Saiba como conceder papéis.
    • Crie um Google Cloud projeto:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por 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_ID pelo nome do Google Cloud projeto.

  14. Verifique se o faturamento está ativado para o Google Cloud projeto.

  15. 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 a serviceusage.services.enable permissão. Saiba como conceder papéis.

    gcloud services enable visionai.googleapis.com storage.googleapis.com
  16. 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.

  17. 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.objectAdmin

    gcloud 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.
  18. 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.

  19. 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.

  1. Crie um bucket do Cloud Storage:

    gcloud storage buckets create gs://BUCKET_NAME
    
  2. Faç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.

  1. Opcional. Configure seu ambiente virtual:

    1. Se não estiver instalado, instale virtualenv:

      sudo apt-get install python3-venv
      
    2. Crie um novo ambiente virtual:

      python3 -m venv vaivenv
      
    3. Ative seu ambiente virtual:

      source vaivenv/bin/activate
      
  2. Instale as dependências:

    pip3 install visionai-0.0.5-py3-none-any.whl
    pip3 install google-cloud-storage
    
  3. Envie 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_NAME
    

    A 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.

  1. Liste todos os objetos no bucket com o gcloud storage ls comando:

    gcloud storage ls gs://bucket
    

    Os arquivos de origem e de saída serão semelhantes a estes:

    test1.mp4
    test2.mp4
    test1_deid_output.mp4
    test2_deid_output.mp4
    
  2. Opcional. Faça o download dos arquivos de saída localmente com o gcloud storage cp comando 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