Utiliser le modèle de floutage des visages avec le SDK Python

Ce tutoriel vous explique comment utiliser le SDK Python pour flouter des visages dans une vidéo. L'exemple floute des fichiers vidéo à partir d'un bucket Cloud Storage et génère des sorties vidéo floutées. Ces vidéos de sortie sont stockées dans le même bucket Cloud Storage que les vidéos sources.

Objectifs

Ce tutoriel vous explique comment effectuer les tâches suivantes :

  • Créez un bucket Cloud Storage.
  • Importez un fichier vidéo local dans le bucket.
  • Envoyez une requête à l'aide du SDK Python.
  • Affichez les vidéos de sortie floutées.

Coûts

Dans ce tutoriel, vous utilisez les composants facturables de suivants Google Cloud:

Obtenez une estimation des coûts en fonction de votre utilisation prévue, utilisez le simulateur de coût.

Les nouveaux utilisateurs de peuvent bénéficier d'un essai sans frais. Google Cloud

Une fois que vous avez terminé les tâches décrites dans ce document, supprimez les ressources que vous avez créées pour éviter que des frais vous soient facturés. Pour en savoir plus, consultez la section Effectuer un nettoyage.

Avant de commencer

  1. Connectez-vous à votre Google Cloud compte. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. Installez la Google Cloud CLI.

  3. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  4. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  5. Créez ou sélectionnez un Google Cloud projet.

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous avez besoin du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un Google Cloud projet :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par un nom pour le Google Cloud projet que vous créez.

    • Sélectionnez le Google Cloud projet que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre Google Cloud projet.

  6. Vérifiez que la facturation est activée pour votre Google Cloud projet.

  7. Activez les API Vertex AI Vision et Cloud Storage :

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l' serviceusage.services.enable autorisation. Découvrez comment attribuer des rôles.

    gcloud services enable visionai.googleapis.com storage.googleapis.com
  8. Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :

    gcloud auth application-default login

    Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.

    Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.

  9. Attribuez des rôles à votre compte utilisateur. Exécutez la commande suivante une fois pour chacun des rôles IAM suivants : roles/visionai.editor, roles/storage.objectAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet
    • USER_IDENTIFIER : identifiant de votre compte utilisateur Par exemple, myemail@example.com.
    • ROLE : rôle IAM que vous attribuez à votre compte utilisateur.
  10. Installez la Google Cloud CLI.

  11. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  12. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  13. Créez ou sélectionnez un Google Cloud projet.

    Rôles requis pour sélectionner ou créer un projet

    • Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
    • Créer un projet : pour créer un projet, vous avez besoin du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.
    • Créez un Google Cloud projet :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par un nom pour le Google Cloud projet que vous créez.

    • Sélectionnez le Google Cloud projet que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre Google Cloud projet.

  14. Vérifiez que la facturation est activée pour votre Google Cloud projet.

  15. Activez les API Vertex AI Vision et Cloud Storage :

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur d'utilisation du service (roles/serviceusage.serviceUsageAdmin), qui contient l' serviceusage.services.enable autorisation. Découvrez comment attribuer des rôles.

    gcloud services enable visionai.googleapis.com storage.googleapis.com
  16. Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :

    gcloud auth application-default login

    Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.

    Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.

  17. Attribuez des rôles à votre compte utilisateur. Exécutez la commande suivante une fois pour chacun des rôles IAM suivants : roles/visionai.editor, roles/storage.objectAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet
    • USER_IDENTIFIER : identifiant de votre compte utilisateur Par exemple, myemail@example.com.
    • ROLE : rôle IAM que vous attribuez à votre compte utilisateur.
  18. Obtenez le code source du SDK Vertex AI Vision :
    git clone https://github.com/google/visionai.git

    Les exemples Python se trouvent dans le visionai/python/example/ répertoire.

  19. Obtenez le SDK Python :
    wget https://github.com/google/visionai/releases/download/v0.0.5/visionai-0.0.5-py3-none-any.whl

Ajouter des fichiers d'entrée à Cloud Storage

Avant de pouvoir envoyer une requête à l'aide du SDK Python, créez un bucket Cloud Storage et importez une vidéo locale à utiliser comme entrée.

  1. Créez un bucket Cloud Storage :

    gcloud storage buckets create gs://BUCKET_NAME
    
  2. Importez un fichier vidéo local dans le nouveau bucket :

    gcloud storage cp LOCAL_FILE gs://BUCKET_NAME
    

Installer les dépendances et envoyer la requête

Une fois que vous avez créé votre bucket Cloud Storage pour les vidéos d'entrée et de sortie et que vous avez ajouté une vidéo locale, installez les dépendances nécessaires et envoyez votre requête.

  1. Facultatif. Configurez votre environnement virtuel :

    1. Si ce n'est pas déjà fait, installez virtualenv :

      sudo apt-get install python3-venv
      
    2. Créez un environnement virtuel :

      python3 -m venv vaivenv
      
    3. Activez votre environnement virtuel :

      source vaivenv/bin/activate
      
  2. Installez les dépendances :

    pip3 install visionai-0.0.5-py3-none-any.whl
    pip3 install google-cloud-storage
    
  3. Envoyez votre requête avec le SDK Python.

    Effectuez les substitutions de variables suivantes :

    • PROJECT_ID : ID de votre Google Cloud projet
    • LOCATION_ID : ID de votre emplacement Par exemple, us-central1. Plus d'infos Régions acceptées.
    • BUCKET_NAME : bucket Cloud Storage que vous avez créé
    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
    

    La sortie obtenue doit ressembler à ceci :

     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!
     ```
    

Examiner la sortie

Une fois le traitement de votre vidéo terminé, vous pouvez examiner la sortie dans votre bucket Cloud Storage. Les fichiers vidéo floutés générés se trouveront dans le même bucket Cloud Storage que la vidéo source.

  1. Répertoriez tous les objets de votre bucket à l'aide de la gcloud storage ls commande :

    gcloud storage ls gs://bucket
    

    Les fichiers sources et les fichiers de sortie doivent ressembler à ceci :

    test1.mp4
    test2.mp4
    test1_deid_output.mp4
    test2_deid_output.mp4
    
  2. Facultatif. Téléchargez les fichiers de sortie localement à l'aide de la gcloud storage cp commande et affichez les vidéos floutées :

    gcloud storage cp gs://BUCKET_NAME/FILE_NAME .
    

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

Étape suivante

  • En savoir plus sur le modèle de floutage des personnes .
  • Découvrez des architectures de référence, des schémas et des bonnes pratiques concernant Google Cloud. Consultez notre Cloud Architecture Center.