Partager via


Intégrer le stockage Azure pour les notifications et la sauvegarde

Vous pouvez intégrer votre projet Custom Vision à une file d’attente de stockage d’objets blob Azure pour recevoir des notifications Push de l’activité d’apprentissage/exportation du projet. Cette fonctionnalité évite de devoir interroger continuellement les résultats du service lors de l’exécution d’opérations de longue durée. En effet, vous pouvez intégrer les notifications de la file d’attente de stockage à votre workflow.

Vous pouvez également utiliser Stockage Azure pour stocker des copies de sauvegarde de vos modèles publiés.

Ce guide vous montre comment utiliser ces API REST avec cURL. Vous pouvez également utiliser un service de requête HTTP, comme le client REST pour Visual Studio Code, pour effectuer les requêtes.

Remarque

Les notifications push dépendent du paramètre facultatif notificationQueueUri de l’API CreateProject, et les sauvegardes de modèle impliquent que vous utilisiez également le paramètre facultatif exportModelContainerUri. Ce guide utilise ces deux paramètres pour l’ensemble complet des fonctionnalités.

Prérequis

Configurer l’intégration du stockage Azure

Accédez à votre ressource d’apprentissage Custom Vision sur le portail Azure, sélectionnez la page Identité, puis activez Identité managée affectée par le système.

Ensuite, accédez à votre ressource de stockage dans le portail Azue. Accédez à la page Contrôle d’accès (IAM) , puis sélectionnez Ajouter une attribution de rôle (préversion) . Ajoutez ensuite une attribution de rôle pour l’une des fonctionnalités d’intégration ou les deux :

  • Si vous envisagez d’utiliser la fonctionnalité de sauvegarde de modèle, sélectionnez le rôle Contributeur aux données Blob du stockage et ajoutez votre ressource d’entraînement Custom Vision comme membre. Sélectionnez Vérifier + attribuer pour terminer.
  • Si vous envisagez d’utiliser la fonctionnalité de file d’attente de notification, sélectionnez le rôle Contributeur aux données en file d’attente du stockage et ajoutez votre ressource d’entraînement Custom Vision comme membre. Sélectionnez Vérifier + attribuer pour terminer.

Pour obtenir de l’aide concernant les attributions de rôle, consultez Attribuer des rôles Azure à l’aide du portail Azure.

Obtenir les URL d'intégration

Vous obtenez ensuite les URL qui permettent à votre ressource Custom Vision d’accéder à ces points de terminaison.

Pour l’URL d’intégration de la file d’attente de notification, accédez à la page Files d’attente de votre compte de stockage, ajoutez une nouvelle file d’attente, puis enregistrez son URL dans un emplacement temporaire.

Page de file d’attente de stockage Azure

Pour l’URL d’intégration de la sauvegarde de modèle, accédez à la page Conteneurs de votre compte de stockage et créez un conteneur. Sélectionnez-le, puis accédez à la page Propriétés. Copiez l’URL dans un emplacement temporaire.

Page de propriétés du conteneur de stockage Azure

Intégrer un projet Custom Vision

Maintenant que vous disposez des URL d’intégration, vous pouvez créer un projet Custom Vision intégrant les fonctionnalités Stockage Azure. Vous pouvez également mettre à jour un projet existant pour ajouter les fonctionnalités.

Lorsque vous appelez l’API CreateProject, ajoutez les paramètres facultatifs exportModelContainerUri et notificationQueueUri. Attribuez les valeurs d’URL obtenues dans la section précédente.

curl -v -X POST "{endpoint}/customvision/v3.3/Training/projects?exportModelContainerUri={inputUri}&notificationQueueUri={inputUri}&name={inputName}"
-H "Training-key: {subscription key}"

Si vous recevez une réponse 200/OK, cela signifie que les URL ont été configurées avec succès. Les valeurs d’URL doivent également s’afficher dans la réponse JSON :

{
  "id": "00000000-0000-0000-0000-000000000000",
  "name": "string",
  "description": "string",
  "settings": {
    "domainId": "00000000-0000-0000-0000-000000000000",
    "classificationType": "Multiclass",
    "targetExportPlatforms": [
      "CoreML"
    ],
    "useNegativeSet": true,
    "detectionParameters": "string",
    "imageProcessingSettings": {
      "augmentationMethods": {}
},
"exportModelContainerUri": {url}
"notificationQueueUri": {url}
  },
  "created": "string",
  "lastModified": "string",
  "thumbnailUri": "string",
  "drModeEnabled": true,
  "status": "Succeeded"
}

Vérifier la connexion

Votre appel d’API de la section précédente doit avoir déjà déclenché de nouvelles informations dans votre compte Stockage Azure.

Votre conteneur désigné doit contenir un objet blob de test dans un dossier CustomVision-TestPermission. Cet objet blob est temporaire.

Dans votre file d’attente de notification, une notification de test au format suivant doit s’afficher :

{
"version": "1.0" ,
"type": "ConnectionTest",
"Content":
    {
    "projectId": "00000000-0000-0000-0000-000000000000"
    }
}

Recevoir des notifications d'événements

Lorsque vous êtes prêt, appelez l’API TrainProject sur votre projet pour effectuer une opération d’apprentissage classique.

Dans votre file d’attente de notification de stockage, vous recevrez une notification une fois l’opération terminée :

{
"version": "1.0" ,
"type": "Training",
"Content":
    {
    "projectId": "00000000-0000-0000-0000-000000000000",
    "iterationId": "00000000-0000-0000-0000-000000000000",
    "trainingStatus": "TrainingCompleted"
    }
}

Le champ "trainingStatus" peut être "TrainingCompleted" ou "TrainingFailed". Le champ "iterationId" correspond à l’ID du modèle formé.

Obtenir des sauvegardes d’exportation de modèle

Lorsque vous êtes prêt, appelez l’API ExportIteration pour exporter un modèle formé dans une plateforme spécifiée.

Dans votre conteneur de stockage désigné, une copie de sauvegarde du modèle exporté s’affiche. Le nom de l’objet blob se présentera comme suit :

{projectId} - {iterationId}.{platformType}

En outre, vous recevrez une notification dans votre file d’attente une fois l’exportation terminée.

{
"version": "1.0" ,
"type": "Export",
"Content":
    {
    "projectId": "00000000-0000-0000-0000-000000000000",
    "iterationId": "00000000-0000-0000-0000-000000000000",
    "exportStatus": "ExportCompleted",
    "modelUri": {url}
    }
}

Le champ "exportStatus" peut être "ExportCompleted" ou "ExportFailed". Le champ "modelUri" contient l’URL du modèle de sauvegarde stocké dans votre conteneur, sous réserve que vous ayez intégré les notifications de la file d’attente au début. Dans le cas contraire, le champ "modelUri" affichera l’URL SAS de votre objet blob de modèle Custom Vision.

Étapes suivantes

Dans ce guide, vous avez vu comment copier et sauvegarder un projet d’une ressource Custom Vision vers une autre. Explorez à présent la documentation de référence sur les API pour voir ce que vous pouvez faire d’autre avec Custom Vision.