Créer une application de comptage de l'occupation avec une entrée de streaming à distance


Vertex AI Vision est une plate-forme basée sur l'IA que vous pouvez utiliser pour ingérer, analyser et stocker des données vidéo. Vertex AI Vision vous permet de créer et de déployer des applications d'IA. Vous pouvez créer des solutions Vertex AI Vision de bout en bout en tirant parti de l'intégration de Vertex AI Vision à d'autres composants du produit.

Pour commencer à implémenter des solutions à l'aide de la plate-forme Vertex AI Vision, consultez les concepts et composants Vertex AI Vision suivants :

  • Flux : représentent un calque de streaming vidéo de votre solution. La source du flux peut être une vidéo en direct (par exemple, une caméra IP) ou un fichier vidéo (par exemple, un fichier MP4).

  • Applications : permettent d'établir la connexion entre un flux et un processeur d'IA pour effectuer une opération de machine learning sur la vidéo. Par exemple, vous pouvez connecter un flux de caméra à un modèle d'IA qui compte les personnes qui passent devant.

  • Entrepôts multimédias : stockent les vidéos ingérées par les flux dans l'Google Cloud . Le stockage des données dans cette destination vous permet d'interroger les résultats d'analyse et les métadonnées des processeurs d'IA utilisés sur les données des flux ingérés.

Objectifs

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

  • Créez une application de comptage d'occupation.
  • déployer votre application pour l'utiliser.
  • Configurez une machine distante pour diffuser des vidéos en streaming.
  • Ingérez la vidéo en streaming dans un nœud de flux de votre application.
  • Recherchez des vidéos dans le Media Warehouse de Vertex AI Vision.

Coûts

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

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

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

Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.

Avant de commencer

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine and Vision AI APIs.

    Enable the APIs

  5. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the following roles to the service account: Vision AI > Vision AI Editor, Compute Engine > Compute Instance Admin (beta), Storage > Storage Object Viewer.

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    6. Click Continue.
    7. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  6. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.
  7. Install the Google Cloud CLI.

  8. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  11. Make sure that billing is enabled for your Google Cloud project.

  12. Enable the Compute Engine and Vision AI APIs.

    Enable the APIs

  13. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the following roles to the service account: Vision AI > Vision AI Editor, Compute Engine > Compute Instance Admin (beta), Storage > Storage Object Viewer.

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    6. Click Continue.
    7. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  14. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.
  15. Install the Google Cloud CLI.

  16. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  17. To initialize the gcloud CLI, run the following command:

    gcloud init
  18.  Rôle requis uniquement si vous copiez un exemple de fichier vidéo à partir d'un bucket Cloud Storage.

Créer une application de comptage d'occupation

Une fois votre environnement configuré, la première étape consiste à créer l'application qui traite vos données. Une application peut être considérée comme un pipeline automatisé qui relie les éléments suivants :

  • Ingestion de données : un flux vidéo est ingéré dans un flux.
  • Analyse des données : un modèle d'IA peut être ajouté après l'ingestion. Toute opération de vision par ordinateur peut être effectuée sur les informations vidéo ingérées.
  • Stockage des données : les deux versions du flux vidéo (le flux d'origine et le flux traité par le modèle d'IA) peuvent être stockées dans un entrepôt multimédia.

Dans la console Google Cloud , une application est représentée sous forme de graphique. De plus, dans Vertex AI Vision, un graphique d'application doit comporter au moins deux nœuds : un nœud de source vidéo (flux) et au moins un autre nœud (un modèle de traitement ou une destination de sortie).

Créer une application vide

Avant de pouvoir remplir le graphique de l'application, vous devez d'abord créer une application vide.

Console

Créez une application dans la console Google Cloud .

  1. Ouvrez l'onglet Applications du tableau de bord Vertex AI Vision.

    Accéder à l'onglet "Applications"

  2. Cliquez sur le bouton Créer.

  3. Saisissez occupancy-count-app comme nom d'application, puis choisissez votre région.

  4. Cliquez sur Créer.

Ajouter des nœuds de composant d'application

Une fois l'application vide créée, vous pouvez ajouter les trois nœuds au graphique de l'application :

  1. Nœud d'ingestion : ressource de flux qui ingère les données envoyées à partir d'une instance de VM Compute Engine que vous créez.
  2. Nœud de traitement : modèle d'analyse de l'occupation qui agit sur les données ingérées.
  3. Nœud de stockage : entrepôt multimédia qui stocke les vidéos traitées et sert également de magasin de métadonnées. L'entrepôt permet de générer des informations analytiques sur les données vidéo ingérées et de stocker les informations que les modèles d'IA déduisent des données.

Console

Ajoutez des nœuds de composant à votre application dans la console.

  1. Ouvrez l'onglet Applications du tableau de bord Vertex AI Vision.

    Accéder à l'onglet "Applications"

  2. Sur la ligne occupancy-count-app, sélectionnez Afficher le graphique. Vous êtes alors redirigé vers la visualisation graphique du pipeline de traitement.

Ajouter un nœud d'ingestion de données

  1. Pour ajouter un nœud de flux d'entrée, sélectionnez l'option Flux dans la section Connecteurs du menu latéral.

  2. Dans la section Source du menu Flux qui s'affiche, sélectionnez Ajouter des flux.

  3. Dans le menu Ajouter des flux, sélectionnez Enregistrer les nouveaux flux et ajoutez occupancy-count-stream comme nom de flux.

  4. Pour ajouter le flux au graphique de l'application, cliquez sur Ajouter des flux.

Ajouter un nœud de traitement des données

  1. Pour ajouter le nœud de modèle de comptage d'occupation, sélectionnez l'option Analyse de l'occupation dans la section Modèles spécialisés du menu latéral.

  2. Laissez les sélections par défaut Personnes et Véhicules.

Ajouter un nœud de stockage de données

  1. Pour ajouter le nœud de destination de sortie (stockage), sélectionnez l'option Entrepôt de ressources multimédias Vertex AI Vision dans la section Connecteurs du menu latéral.

  2. Dans le menu Entrepôt de données multimédias de Vertex AI Vision, cliquez sur Connecter un entrepôt.

  3. Dans le menu Connecter un entrepôt, sélectionnez Créer un entrepôt. Nommez l'entrepôt occupancy-count-warehouse et laissez la durée TTL à 14 jours.

  4. Cliquez sur le bouton Créer pour ajouter l'entrepôt.

Déployer votre application pour l'utiliser

Une fois que vous avez créé votre application de bout en bout avec tous les composants nécessaires, la dernière étape pour l'utiliser consiste à la déployer.

Console

  1. Ouvrez l'onglet Applications du tableau de bord Vertex AI Vision.

    Accéder à l'onglet "Applications"

  2. Sélectionnez Afficher le graphique à côté de l'application occupancy-count-app dans la liste.

  3. Sur la page du générateur de graphiques d'application, cliquez sur le bouton Deploy (Déployer) .

  4. Dans la boîte de dialogue de confirmation suivante, sélectionnez Déployer.

    Le déploiement peut prendre plusieurs minutes. Une fois le déploiement terminé, des coches vertes s'affichent à côté des nœuds.

    Application déployée dans l'UI

Configurer une machine distante pour diffuser des vidéos

Maintenant que vous avez déployé une application de comptage d'occupation prête à recevoir, traiter et stocker des données de streaming, vous devez réellement diffuser des données vidéo dans l'application.

Dans ce tutoriel, vous allez créer une instance de VM Compute Engine qui héberge une vidéo, puis envoyer les données de streaming vidéo depuis la VM.

Créer une VM Linux

La première étape pour envoyer une vidéo depuis une instance de VM Compute Engine consiste à créer l'instance de VM.

Console

  1. Dans la console, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Sélectionnez le projet et cliquez sur Continuer.

  3. Cliquez sur Créer une instance.

  4. Spécifiez un nom pour votre VM. Pour en savoir plus, consultez Recommandation pour l'attribution de noms aux ressources.

  5. Facultatif : modifiez la zone de cette VM. Compute Engine choisit de manière aléatoire la liste des zones de chaque région pour encourager l'utilisation dans plusieurs zones.

  6. Acceptez les autres options par défaut. Pour en savoir plus sur ces options, consultez Créer et démarrer une VM.

  7. Pour créer et démarrer la VM, cliquez sur Créer.

Configurer l'environnement de VM

Une fois la VM démarrée, vous pouvez utiliser la console pour établir une connexion SSH dans votre navigateur. Une fois cette connexion établie, vous pouvez télécharger l'outil de ligne de commande vaictl pour ingérer des vidéos dans votre application.

Console

Établir une connexion SSH avec votre VM

  1. Dans la console, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Dans la section Se connecter de la ligne de l'instance que vous avez créée, cliquez sur SSH. Une connexion SSH s'ouvre dans une nouvelle fenêtre de navigateur.

    Option SSH dans l'UI

Téléchargez l'outil de ligne de commande vaictl.

  1. Dans la fenêtre SSH dans le navigateur, téléchargez l'outil de ligne de commande Vertex AI Vision (vaictl) à l'aide de la commande suivante :

    wget https://github.com/google/visionai/releases/download/v0.0.5/visionai_0.0-5_amd64.deb
    
  2. Installez l'outil de ligne de commande en exécutant la commande suivante :

    sudo apt install ./visionai_0.0-5_amd64.deb
    
  3. Vous pouvez tester l'installation en exécutant la commande suivante :

    vaictl --help
    

Ingérer un fichier vidéo dans votre application

Après avoir configuré votre environnement de VM, vous pouvez copier un exemple de fichier vidéo, puis utiliser vaictl pour diffuser les données vidéo vers votre application de comptage d'occupation.

SSH dans votre navigateur

Copier un exemple de vidéo sur votre VM

  1. Dans la fenêtre SSH dans le navigateur de votre VM, copiez un exemple de vidéo avec la commande gcloud storage cp suivante. Remplacez la variable suivante :
    • SOURCE : emplacement d'un fichier vidéo à utiliser. Vous pouvez utiliser votre propre fichier vidéo source (par exemple, gs://BUCKET_NAME/FILENAME.mp4) ou l'une des vidéos exemples :
      • gs://cloud-samples-data/vertex-ai-vision/street_vehicles_people.mp4 (vidéo avec des personnes et des véhicules, source)
      • gs://cloud-samples-data/vertex-ai-vision/highway_vehicles.mp4 (vidéo avec véhicules uniquement, source)
    gcloud storage cp SOURCE .

Diffuser des vidéos depuis une VM et ingérer des données dans votre application

  1. Pour envoyer ce fichier vidéo local au flux d'entrée de l'application, utilisez la commande suivante. Vous devez effectuer les substitutions de variables suivantes :
    • PROJECT_ID : ID de votre projet Google Cloud .
    • LOCATION_ID : ID de votre emplacement. Par exemple, us-central1. Pour en savoir plus, consultez la section Emplacements Cloud.
    • LOCAL_FILE.EXT : nom d'un fichier vidéo local. Exemple :my-video.mp4
    • Option --loop : facultative. Boucle les données du fichier pour simuler le streaming.

    Cette commande diffuse un fichier vidéo dans un flux. Si vous utilisez l'indicateur --loop, la vidéo est mise en boucle dans le flux jusqu'à ce que vous arrêtiez la commande :

    vaictl -p PROJECT_ID \
        -l LOCATION_ID \
        -c application-cluster-0 \
        --service-endpoint visionai.googleapis.com \
    send video-file to streams 'occupancy-count-stream' --file-path LOCAL_FILE.EXT --loop

Il peut s'écouler environ 100 secondes entre le début de l'opération d'ingestion vaictl et l'apparition de la vidéo dans le tableau de bord.

Une fois l'ingestion du flux disponible, vous pouvez voir le flux vidéo dans l'onglet Flux du tableau de bord Vertex AI Vision en sélectionnant le flux occupancy-count-stream.

Accéder à l'onglet "Flux"

Vue de la vidéo en direct diffusée dans l'UI
Aperçu en direct de la vidéo ingérée dans le flux dans la console Google Cloud . Crédit vidéo : Elizabeth Mavor sur Pixabay (pixelisation ajoutée).

Rechercher du contenu vidéo dans l'entrepôt de stockage

Une fois les données vidéo ingérées dans votre application de traitement, vous pouvez afficher les données vidéo analysées et les rechercher en fonction des informations analytiques sur l'occupation.

Console

  1. Ouvrez l'onglet Entrepôts du tableau de bord Vertex AI Vision.

    Accéder à l'onglet "Entrepôts"

  2. Recherchez l'entrepôt occupancy-count-warehouse dans la liste, puis cliquez sur Afficher les composants.

  3. Dans la section Nombre de personnes ou Nombre de véhicules, définissez la valeur Min sur 1 et la valeur Max sur 5.

  4. Pour filtrer les données vidéo traitées stockées dans le Media Warehouse de Vertex AI Vision, cliquez sur Rechercher.

    Vue des données stockées à facettes dans l'UI
    Vue des données vidéo stockées correspondant aux critères de recherche dans la console Google Cloud . Crédit vidéo : Elizabeth Mavor sur Pixabay (critères de recherche appliqués).

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.

Supprimer le projet

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Supprimer des ressources individuelles

Supprimer une instance de VM Compute Engine

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. Select the checkbox for the instance that you want to delete.
  3. To delete the instance, click More actions, click Delete, and then follow the instructions.

Supprimer un entrepôt

  1. In the Google Cloud console, go to the Warehouses page.

    Go to the Warehouses tab

  2. Locate your occupancy-count-warehouse warehouse.
  3. To delete the warehouse, click Actions, click Delete warehouse, and then follow the instructions.

Supprimer un flux

  1. In the Google Cloud console, go to the Streams page.

    Go to the Streams tab

  2. Locate your occupancy-count-stream stream.
  3. To delete the stream, click Actions, click Delete stream, and then follow the instructions.

Supprimer une application

  1. In the Google Cloud console, go to the Applications page.

    Go to the Applications tab

  2. Locate your occupancy-count-app app.
  3. To delete the app, click Actions, click Delete application, and then follow the instructions.

Étapes suivantes