Créer une application

Cette page explique comment créer une application et combiner des composants, tels que des flux d'entrée, des modèles pour l'analyse et des entrepôts pour le stockage, à utiliser sur la plate-forme d'applications de Vertex AI Vision.

Pour créer une application, vous devez tenir compte de vos sources de données, de l'analyse que vous souhaitez effectuer et de la manière dont vous souhaitez stocker les résultats. Une application de bout en bout peut prendre différentes formes en fonction de votre cas d'utilisation. Par conséquent, la manière dont vous créez une application dépend de votre objectif.

Avant de commencer, évaluez votre cas d'utilisation et votre objectif d'un point de vue de l'IA responsable, et réfléchissez à l'impact que vos modèles et applications pourraient avoir sur vos utilisateurs finaux en cas de problème. Découvrez les premières étapes à suivre pour évaluer l'équité de votre cas d'utilisation. Assurez-vous également que votre utilisation de Vertex AI Vision est conforme aux Conditions d'utilisation de Google Cloudou à une variante hors connexion, ainsi qu'aux conditions d'utilisation de l'URL intégrée, comme la Politique d'utilisation autorisée de Google Cloud.

Lorsque vous créez votre application, gardez à l'esprit que les technologies de vision par IA peuvent renforcer ou introduire des biais injustes et avoir un impact sur les droits fondamentaux de l'homme. Le développement de votre application doit impliquer une réflexion éthique basée sur les valeurs de votre entreprise et une diligence raisonnable juridique pour votre cas d'utilisation particulier, y compris les cas d'utilisation à haut risque. Comme pour toutes les technologies, vous devez tenir compte de toutes les lois et réglementations applicables qui régissent votre utilisation des technologies d'IA/ML dans la région où vous les implémentez. Les clients sont responsables de la diligence requise pour implémenter des cas d'utilisation considérés comme à haut risque dans une région donnée.

Créer une application

Avant de pouvoir ajouter des composants tels qu'un flux ou des modèles à une application, vous devez créer l'application elle-même. Pour être déployées, toutes les applications doivent contenir les éléments suivants:

  • Nœud d'entrée de flux (source de données).
  • Au moins un autre nœud de composant, tel qu'un modèle ou un entrepôt.

Créer une application personnalisée

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 le nom d'une application et choisissez votre région. Régions où le service est disponible

  4. Cliquez sur Créer.

Créer une application à l'aide d'un modèle

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 le nom d'une application et choisissez votre région. Régions où le service est disponible

  4. Cliquez sur Créer.

  5. Sur la page de l'outil de création d'applications, cliquez sur le nœud Modèle d'application.

  6. Dans le panneau des paramètres latéraux, cliquez sur le bouton Sélectionner un modèle.

  7. Sélectionnez un modèle dans le menu déroulant.

Ajouter une entrée de flux

Une application doit contenir un nœud de flux vidéo. Vous ne pouvez pas déployer l'application si vous n'ajoutez pas de nœud Streams.

Si votre application n'est pas déployée, la mise à jour de l'entrée de flux sera automatiquement appliquée à l'application. Si votre application est déjà déployée, vous devez la désinstaller et la mettre à jour pour que les modifications soient appliquées. Pour en savoir plus, consultez la section Mettre à jour une application.

Console

Ajoutez un flux à 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 Afficher l'application pour votre application.

  3. Dans la liste latérale des composants, sélectionnez Flux vidéo dans la liste des connecteurs. Le nœud de flux est ajouté au graphique de l'application, et un menu "Flux vidéo" s'ouvre.

  4. Sélectionnez Ajouter des flux vidéo.

  5. Si vous choisissez Sélectionner un flux existant, sélectionnez le flux existant, puis Ajouter des flux.

    Si vous choisissez d'enregistrer de nouveaux flux, attribuez un nom au nouveau flux, puis sélectionnez Ajouter des flux.

REST

Pour ajouter un flux à une application, envoyez une requête POST à l'aide de la méthode projects.locations.applications.addStreamInput.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

Méthode HTTP et URL :

POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput

Corps JSON de la requête :

{
  "applicationStreamInputs": [
     {
       "streamWithAnnotation": {
         "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
       }
     },
     {
       "streamWithAnnotation": {
         "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
       }
     }
   ]
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content

Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

Ajouter une entrée de flux avec des annotations de nœuds

Lorsque vous créez un flux d'entrée d'application, vous pouvez y ajouter des annotations à l'aide de l'API Vertex AI Vision. Vous pouvez également ajouter des annotations à un nœud dans la console Google Cloud.

Console

L'exemple suivant ajoute les annotations disponibles (STREAM_ANNOTATION_TYPE_ACTIVE_ZONE et STREAM_ANNOTATION_TYPE_CROSSING_LINE) à un modèle de calcul du nombre d'occupants.

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

    Accéder à l'onglet "Applications"

  2. Sélectionnez Afficher l'application à côté du nom de votre application dans la liste.

  3. Sur la page de l'outil de création d'applications, sélectionnez le modèle avec l'entrée de flux auquel vous souhaitez ajouter des annotations.

  4. Dans le panneau de paramètres du modèle latéral, développez la section "Paramètre avancé". Après avoir développé la section, cliquez sur le bouton Créer des zones/lignes actives.

  5. Dans la vue Galerie de flux, sélectionnez un flux d'entrée pour dessiner des zones ou des lignes actives.

  6. Dans la vue de l'éditeur, sélectionnez Ajouter des lignes multipoints ou Ajouter un polygone simple pour ajouter des annotations. Utilisez le panneau latéral pour renommer la zone ou la ligne, supprimer des zones/lignes existantes ou changer de sens de la ligne.

API REST et ligne de commande

Le code suivant ajoute des annotations de flux.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT: ID ou numéro de votre projet. Google Cloud
  • LOCATION_ID: région dans laquelle vous utilisez Vertex AI Vision. Par exemple: us-central1, europe-west4. Consultez les régions disponibles.
  • APPLICATION_ID: ID de votre application cible.
  • STREAM_ID: ID du flux cible.
  • NODE_NAME: nom du nœud cible du graphique de l'application. Par exemple, builtin-occupancy-count.
  • ANNOTATION_ID: ID de votre annotation cible.
  • ANNOTATION_DISPLAYNAME: nom à afficher spécifié par l'utilisateur pour votre annotation cible.
  • ANNOTATION_TYPE: l'une des valeurs d'énumération disponibles. Ce type doit correspondre à l'objet annotation_payload, soit activeZone, soit crossingLine. Valeurs disponibles :
    • STREAM_ANNOTATION_TYPE_UNSPECIFIED
    • STREAM_ANNOTATION_TYPE_ACTIVE_ZONE
    • STREAM_ANNOTATION_TYPE_CROSSING_LINE
  • normalizedVertices: chaque sommet est spécifié par des valeurs de coordonnées x et y. Les coordonnées sont des valeurs flottantes normalisées au format [0,1] par rapport à l'image d'origine. 0,0 correspond à X_MIN ou Y_MIN, et 1,0 correspond à X_MAX ou Y_MAX.

Méthode HTTP et URL :

POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput

Corps JSON de la requête :

{
  "applicationStreamInputs": [
    {
      "streamWithAnnotation": {
        "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID",
        "nodeAnnotations": [
          {
            "node": "NODE_NAME",
            "annotations": [
              {
                "id": "ANNOTATION_ID",
                "displayName": "ANNOTATION_DISPLAYNAME",
                "sourceStream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID",
                "type": ANNOTATION_TYPE,
                "activeZone": {
                  "normalizedVertices": {
                    "x": 0.07434944,
                    "y": 0.18061674
                  },
                  "normalizedVertices": {
                    "x": 0.64684016,
                    "y": 0.16079295
                  },
                  "normalizedVertices": {
                    "x": 0.6047088,
                    "y": 0.92070484
                  },
                  "normalizedVertices": {
                    "x": 0.1251549,
                    "y": 0.76651984
                  }
                }
              }
            ]
          }
        ]
      }
    }
  ]
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content

Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

Supprimer l'entrée de flux

REST

Pour supprimer un flux d'une application, envoyez une requête POST à l'aide de la méthode projects.locations.applications.removeStreamInput.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

Méthode HTTP et URL :

POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput

Corps JSON de la requête :

{
  "targetStreamInputs": [
     {
       "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
     },
     {
       "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
     }
   ]
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput" | Select-Object -Expand Content

Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

Ajouter un modèle Vertex AI Vision pré-entraîné

Une fois que vous avez créé une application, vous pouvez ajouter un modèle et les connecter à des flux, à d'autres modèles ou à un entrepôt multimédia.

Il existe deux types de modèles : les modèles pré-entraînés et les modèles entraînés par l'utilisateur. De même, les modèles entraînés par l'utilisateur peuvent également être de deux types : AutoML ou entraînés personnalisés :

  • Les modèles pré-entraînés remplissent un objectif spécifique, sont entraînés sur des données généralisées et sont prêts à l'emploi.
  • Les modèles AutoML ou personnalisés entraînés par l'utilisateur vous obligent à identifier et à fournir des exemples de données, puis à entraîner des modèles plus adaptés à votre cas d'utilisation unique. Vous entraînez ces modèles à l'aide de Vertex AI, un produit qui propose deux options d'entraînement: les modèles entraînés par AutoML et les modèles entraînés personnalisés. Pour en savoir plus, consultez la section Choisir une méthode d'entraînement.

Suivez les instructions ci-dessous pour ajouter un modèle Vertex AI Vision pré-entraîné à votre graphique d'application.

Console

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

    Accéder à l'onglet "Applications"

  2. Sélectionnez Afficher l'application à côté du nom de votre application dans la liste.

  3. Sur la page de l'outil de création d'applications, sélectionnez le modèle que vous souhaitez ajouter dans la liste des modèles d'IA. Chaque modèle dispose de ses propres paramètres de configuration.

  4. Pour connecter ce modèle à un nœud de source d'entrée, sélectionnez le nœud de source et Ajouter une sortie.

  5. Sélectionnez le nœud de modèle d'IA que vous venez de créer dans la liste des nœuds disponibles.

Ajouter un modèle Vertex AI entraîné par l'utilisateur

Une fois que vous avez créé une application, vous pouvez ajouter un modèle et les connecter à des flux, à d'autres modèles ou à un entrepôt multimédia.

Il existe deux types de modèles : les modèles pré-entraînés et les modèles entraînés par l'utilisateur. De même, les modèles entraînés par l'utilisateur peuvent également être de deux types : AutoML ou entraînés personnalisés :

  • Les modèles pré-entraînés remplissent un objectif spécifique, sont entraînés sur des données généralisées et sont prêts à l'emploi.
  • Les modèles AutoML ou personnalisés entraînés par l'utilisateur vous obligent à identifier et à fournir des exemples de données, puis à entraîner des modèles plus adaptés à votre cas d'utilisation unique. Vous entraînez ces modèles à l'aide de Vertex AI, un produit qui propose deux options d'entraînement: les modèles entraînés par AutoML et les modèles entraînés personnalisés. Pour en savoir plus, consultez la section Choisir une méthode d'entraînement.

Ajouter un modèle de traitement en flux continu pour la détection d'objets AutoML Vertex AI

Suivez les instructions ci-dessous pour ajouter un modèle de détection d'objets AutoML Vertex AI que vous entraînez à votre graphique d'application.

Avant de pouvoir entraîner un modèle AutoML Vertex AI, vous devez préparer vos données de détection d'objets et créer un ensemble de données.

Entraîner un modèle à utiliser dans Vertex AI Vision

Une fois que vous avez créé un ensemble de données avec une collection représentative de données dans Vertex AI, vous pouvez entraîner un modèle à utiliser dans Vertex AI Vision.

Console

  1. Dans la console Google Cloud, dans le tableau de bord Vertex AI, accédez à la page Ensembles de données.

    Accéder à la page Ensembles de données

  2. Cliquez sur le nom de l'ensemble de données que vous souhaitez utiliser pour entraîner votre modèle afin d'ouvrir sa page d'informations.

  3. Si votre type de données utilise des ensembles d'annotations, sélectionnez celui que vous souhaitez utiliser pour ce modèle.

  4. Cliquez sur Entraîner un nouveau modèle.

  5. Sur la page Entraîner un nouveau modèle, procédez comme suit pour votre modèle de détection d'objets au sein d'images AutoML:

    1. Dans la section Méthode d'entraînement du modèle, choisissez AutoML.

    2. Dans la section Choisir où utiliser le modèle, sélectionnez Vertex AI Vision.

    3. Cliquez sur Continuer.

    4. Renseignez les valeurs des sections Informations sur le modèle, Options d'entraînement et Options de calcul et tarifs. Pour en savoir plus, consultez la page Entraîner un modèle AutoML (console Google Cloud).

    5. Cliquez sur Démarrer l'entraînement.

      L'entraînement de modèle peut prendre plusieurs heures, en fonction de la taille et de la complexité de vos données et du budget d'entraînement, le cas échéant. Vous pouvez fermer cet onglet et y revenir plus tard. Vous recevrez un e-mail une fois l'entraînement terminé.

Ajouter le modèle entraîné à votre application

Une fois l'entraînement de votre modèle terminé, vous pouvez l'ajouter à votre application Vertex AI Vision.

Console

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

    Accéder à l'onglet "Applications"

  2. Sélectionnez Afficher l'application à côté du nom de votre application dans la liste.

  3. Sur la page de l'outil de création d'applications, sélectionnez Ajouter un modèle Vertex AI dans la liste des composants sur le côté. Cette option ouvre un menu latéral.

  4. Dans le menu "Ajouter un modèle Vertex AI", laissez l'option Importer un modèle entraîné à partir de Vertex AI sélectionnée, puis choisissez le modèle dans la liste des modèles AutoML Vertex AI existants.

  5. Après avoir choisi le modèle à importer, sélectionnez Ajouter un modèle.

    Une fois que vous avez cliqué sur le bouton Ajouter un modèle, un modèle en attente s'affiche sur le côté de la page de l'outil de création de graphiques. Après quelques secondes, le modèle est prêt à l'emploi.

Ajouter un modèle personnalisé Vertex AI

Vous pouvez également importer des modèles entraînés personnalisés Vertex AI dans Vertex AI Vision pour les utiliser à des fins d'analyse de données. Ces modèles entraînés sur mesure doivent présenter les propriétés suivantes:

  • Le modèle doit être sans état, car l'entrée du modèle est constituée des images provenant de différentes instances d'application (flux) et qui peuvent être dans le désordre. Si vous avez besoin d'un traitement de streaming avec état, vous devrez peut-être conserver les états dans votre propre conteneur.
  • La taille de l'entrée de votre modèle est limitée à 1,5 Mo. Par conséquent, Vertex AI Vision doit compresser l'image RVB d'origine dans un format avec pertes, tel que JPG.

Suivez les instructions ci-dessous pour ajouter un modèle vidéo Vertex AI personnalisé que vous avez entraîné à votre graphique d'application.

Pour savoir comment créer un modèle Vertex AI entraîné à l'aide d'un conteneur personnalisé, consultez la section Utiliser un conteneur personnalisé pour la prédiction.

Spécifier un fichier YAML d'instances

Lorsque vous ajoutez un modèle Vertex AI entraîné sur mesure, vous devez spécifier un fichier YAML d'instances (instances.yaml) stocké dans Cloud Storage. Ce fichier spécifie l'entrée attendue pour votre conteneur de modèle.

Vertex AI envoie la requête de prédiction dans un format:

{
  "instances": [
    <value>|<simple/nested list>|<object>,
    ...
  ]
}

Ici, instances.yaml définit le schéma de la charge utile. Pour en savoir plus, consultez la section Obtenir des prédictions en ligne à partir de modèles personnalisés.

Vertex AI Vision n'est compatible qu'avec les modèles entraînés personnalisés avec exactement une entrée de prédiction nommée. Ce type d'entrée doit être une chaîne JPEG encodée. Le schéma de l'entrée de prédiction doit être spécifié avec le fichier YAML du schéma des instances. Ce fichier YAML de schéma doit être au format d'un objet de schéma OpenAPI.

Par exemple, le schéma suivant recevra la requête avec l'image encodée dans un champ appelant image_bytes:

properties:
  image_bytes:
    type: string

Votre modèle personnalisé reçoit les entrées de prédiction au format suivant:

{
  "instances": [
    {
      "image_bytes" : {
        "b64": "BASE64_ENCODED_IMAGE_BYTES"
      }
    }
  ]
}

Avant d'importer le modèle dans Vertex AI Vision, vérifiez qu'il fonctionne correctement avec cette entrée.

Spécifier un fichier YAML de prédictions

Lorsque vous ajoutez un modèle Vertex AI entraîné sur mesure, vous pouvez spécifier un fichier YAML de prédictions (predictions.yaml) stocké dans Cloud Storage. Ce fichier spécifie la sortie de votre conteneur de modèle.

Ce fichier est facultatif, mais recommandé pour indiquer à Vertex AI Vision la structure de sortie de votre modèle. Par exemple, le fichier classification_1.0.0.yaml suivant décrit les informations de sortie du modèle pour un modèle de classification d'images:

title: Classification
type: object
description: >
  The predicted AnnotationSpecs.
properties:
  ids:
    type: array
    description: >
      The resource IDs of the AnnotationSpecs that had been identified.
    items:
      type: integer
      format: int64
      enum: [0]  # As values of this enum all AnnotationSpec IDs the Model
      # was trained on will be populated.
  displayNames:
    type: array
    description: >
      The display names of the AnnotationSpecs that had been identified,
      order matches the IDs.
    items:
      type: string
      enum: [""]  # As values of this enum all AnnotationSpec display_names
      # the Model was trained on will be populated.
  confidences:
    type: array
    description: >
      The Model's confidences in correctness of the predicted IDs, higher
      value means higher confidence. Order matches the Ids.
    items:
      type: number
      format: float
      minimum: 0.0
      maximum: 1.0

Ajouter le modèle avec entraînement personnalisé

Utilisez l'exemple suivant pour ajouter le modèle entraîné personnalisé Vertex AI à votre application.

Console

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

    Accéder à l'onglet "Applications"

  2. Sélectionnez Afficher l'application à côté du nom de votre application dans la liste.

  3. Sur la page de l'outil de création d'applications, sélectionnez Ajouter un modèle Vertex AI dans la liste des composants sur le côté. Cette option ouvre un menu latéral.

  4. Dans le menu "Ajouter un modèle Vertex AI", laissez l'option Importer un modèle entraîné à partir de Vertex AI sélectionnée, puis choisissez le modèle dans la liste des modèles AutoML Vertex AI existants.

  5. Attribuez un nom au modèle.

  6. Spécifiez le fichier YAML des instances dans Cloud Storage qui définit le format d'une instance unique utilisée dans les requêtes de prédiction et d'explication.

  7. Facultatif: spécifiez le fichier YAML du schéma de prédiction dans Cloud Storage qui définit le format d'une seule prédiction ou explication.

  8. Après avoir fourni le nom du modèle, les instances et les informations sur les prédictions, sélectionnez Ajouter un modèle.

  9. Une fois que vous avez cliqué sur le bouton Ajouter un modèle, un modèle en attente s'affiche sur le côté de la page de l'outil de création de graphiques. Après quelques secondes, le modèle est prêt à l'emploi.

Facultatif. joindre des métadonnées d'application ;

En plus des octets d'image, vous pouvez définir attach_application_metadata pour demander à la plate-forme d'application Vertex AI Vision d'inclure les métadonnées de l'application à envoyer avec le conteneur personnalisé.

Les métadonnées présentent le schéma suivant:

'appPlatformMetadata': {
     'application': STRING;
     'instanceId': STRING;
     'node': STRING;
     'processor': STRING;
   }

Facultatif. Ajouter un sujet Pub/Sub de configuration dynamique

Pour contrôler dynamiquement la fréquence d'images que l'opérateur personnalisé Vertex envoie aux conteneurs personnalisés Vertex, vous pouvez créer un sujet Pub/Sub. Ajoutez-le à la section Dynamic Configuration des paramètres du nœud.

configuration dynamique

Si le sujet Pub/Sub est configuré, la fréquence d'images initiale est de 0. Lors du traitement vidéo, vous pouvez envoyer des messages Pub/Sub au sujet Pub/Sub au format suivant en temps réel pour modifier la fréquence d'images:

{
  "stream_id": "input-stream-id",
  "fps": 5,
}

Le champ stream_id doit correspondre à l'ID du flux d'entrée de l'application.

Compte de service et autorisations

Les identifiants de service par défaut du conteneur personnalisé ont été configurés sur le compte de service appartenant à Google de la plate-forme d'applications Vertex AI Vision. Pour accéder à d'autres Google Cloudservices depuis le conteneur, accordez l'autorisation appropriée aux éléments suivants : service-<var>PROJECT_NUMBER</var>@gcp-sa-visionai.iam.gserviceaccount.com

Facultatif. Modéliser la notification d'événement avec les fonctions Cloud Run et Pub/Sub

Dans Vertex AI Vision, les modèles reçoivent des données multimédias provenant d'appareils tels que des caméras, exécutent des prédictions d'IA sur les données et produisent des annotations en continu. Vous envoyez généralement ces données traitées à une destination de données ("puits de données"), comme un entrepôt multimédia ou BigQuery, pour d'autres tâches d'analyse. Toutefois, il est possible que certaines annotations doivent être gérées différemment ou que les besoins d'annotation soient urgents. Les intégrations avec les fonctions Cloud Run et Pub/Sub vous aident à répondre à ces besoins.

Modèles compatibles

Les modèles suivants proposent des intégrations de génération d'événements de fonctions Cloud Run et de notification d'événements Pub/Sub:

Configurer des fonctions Cloud Run pour traiter la sortie du modèle

Pour déclencher des notifications basées sur des événements, vous devez d'abord configurer des fonctions Cloud Run pour traiter la sortie du modèle et générer des événements.

Votre fonction Cloud Run se connecte au modèle et écoute sa sortie en tant qu'action de post-traitement. La fonction Cloud Run doit renvoyer un AppPlatformCloudFunctionResponse. Les événements (appplatformeventbody) sont envoyés au sujet Pub/Sub que vous configurez à l'étape suivante.

Pour consulter un exemple de fonction Cloud Run, consultez Activer la notification d'événements de modèle avec Cloud Functions et Pub/Sub.

Suivez les instructions ci-dessous pour envoyer le flux de sortie du modèle à votre fonction Cloud Run:

Console

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

    Accéder à l'onglet "Applications"

  2. Sélectionnez Afficher l'application à côté du nom de votre application dans la liste.

  3. Cliquez sur le modèle compatible pour ouvrir le panneau latéral d'informations sur le modèle.

  4. Dans la liste post-traitement de la section Notification d'événement, sélectionnez votre fonction Cloud Run existante ou créez-en une.

    Sélectionner l&#39;image de la fonction Cloud post-traitement dans Cloud Console

Activer la notification d'événements de modèle avec Pub/Sub

Une fois que vous avez configuré des fonctions Cloud Run pour traiter la sortie du modèle et générer des événements, vous pouvez configurer la notification d'événements avec Pub/Sub. Pour lire les messages d'un sujet, vous devez également choisir et créer un abonnement Pub/Sub.

Console

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

    Accéder à l'onglet "Applications"

  2. Sélectionnez Afficher l'application à côté du nom de votre application dans la liste.

  3. Cliquez sur le modèle compatible pour ouvrir le panneau latéral d'informations sur le modèle.

  4. Dans la section Notifications relatives à un événement, sélectionnez Configurer une notification d'événement.

  5. Dans la fenêtre d'options Configurer Pub/Sub pour les notifications d'événements qui s'ouvre, choisissez votre sujet Pub/Sub existant ou en créez un.

  6. Dans le champ Frequency (Fréquence), définissez une valeur entière pour la fréquence en secondes à laquelle une notification pour le même type d'événement peut être envoyée.

    Configurer l&#39;image de notification d&#39;événement dans la console Cloud

  7. Cliquez sur Configurer.

Connecter la sortie du modèle à un nœud en aval

Une fois que vous avez créé un nœud de modèle, vous pouvez connecter sa sortie à un autre nœud.

Console

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

    Accéder à l'onglet "Applications"

  2. Sélectionnez Afficher l'application à côté du nom de votre application dans la liste.

  3. Cliquez sur un nœud de modèle qui produit des données dans l'outil de création de graphiques d'application (par exemple, le nœud de modèle Nombre d'occupations).

  4. Dans le panneau des paramètres latéral, cliquez sur le bouton Ajouter une sortie.

  5. Ajoutez une sortie et choisissez un nœud de sortie à ajouter, ou sélectionnez un nœud disponible existant auquel envoyer la sortie.

Connecter la sortie à une destination de données

Une fois que vous avez créé le flux d'ingestion de données et ajouté les nœuds de traitement à votre application, vous devez choisir où envoyer les données traitées. Cette destination de données est le point de terminaison de votre graphique d'application qui accepte les données de flux sans en produire. La destination que vous choisissez dépend de la façon dont vous utilisez les données de sortie de l'application.

image des nœuds de connecteur
Dans la console Google Cloud, les destinations de données sont disponibles dans la section Connecteurs de la page du graphique de l'application.

Vous pouvez connecter les données de sortie de l'application aux destinations de données suivantes:

  1. Vision Warehouse: stockez des données vidéo originales ou analysées que vous pouvez consulter et interroger.

    Pour en savoir plus sur l'envoi de données de sortie d'application à un entrepôt Vision, consultez la section Connecter et stocker des données dans un entrepôt.

  2. BigQuery: stockez des données dans BigQuery pour utiliser ses fonctionnalités d'analyse hors connexion.

    Pour en savoir plus sur l'envoi des données de sortie de l'application vers BigQuery, consultez la section Connecter et stocker des données dans BigQuery.

  3. Données de diffusion en direct: si vous souhaitez un contrôle plus précis pour agir sur les données analytiques en temps réel, vous pouvez recevoir la sortie en direct de votre application.

    Pour en savoir plus sur la diffusion directe des données de sortie de l'application, consultez la section Activer la sortie de diffusion en direct.

Mettre à jour une application

Applications non déployées

Apportez des modifications à l'application (par exemple, en ajoutant ou en supprimant des nœuds de composants). Vertex AI Vision stockera automatiquement les modifications.

Étape suivante

  • Découvrez comment déployer votre application pour ingérer et analyser des données dans la section Déployer une application.
  • Pour savoir comment commencer l'ingestion de données à partir du flux d'entrée d'une application, consultez Créer et gérer des flux.
  • Découvrez comment lister des applications et afficher les instances d'une application déployée dans la section Gérer les applications.
  • Découvrez comment lire les données d'entrée de l'application à partir d'un flux d'ingestion ou de données de sortie de modèle analysées dans Lire les données de flux.