Поделиться через


Интеграция службы хранилища Azure для уведомлений и резервирования

Вы можете интегрировать проект Пользовательское визуальное распознавание с очередью хранилища BLOB-объектов Azure, чтобы получить push-уведомления об обучении и экспорте проекта. Эта функция позволяет избежать постоянного опроса службы на предмет результатов, когда выполняются длительные операции. Вместо этого уведомления очереди хранилища можно интегрировать в рабочий процесс.

Вы также можете использовать хранилище Azure для хранения резервных копий опубликованных моделей.

Из этого руководства вы узнаете, как использовать эти REST API с cURL. Для выполнения запросов можно также использовать службу HTTP-запросов, например REST Client для Visual Studio Code.

Примечание.

Push-уведомления отправляются в зависимости от необязательного параметра notificationQueueUri в API CreateProject, а для резервного копирования моделей вам понадобится добавить параметр exportModelContainerUri. В этом руководством представлена реализация обоих параметров для полного набора функций.

Необходимые компоненты

Настройка интеграции службы хранилища Azure

Перейдите к ресурсу обучения Пользовательское визуальное распознавание на портал Azure, выберите страницу удостоверений и включите управляемое удостоверение, назначаемое системой.

Далее откройте свой ресурс хранилища на портале Microsoft Azure. Перейдите на страницу Управление доступом (IAM) и выберите элемент + Добавить назначение ролей (предварительная версия). Затем добавьте назначение роли для каждой функции интеграции или для обеих:

  • Если вы планируете использовать функция резервного копирования модели, выберите роль Участник для данных BLOB-объектов хранилища и добавьте учебный ресурс по Пользовательскому визуальному распознаванию в роли участника. Чтобы завершить процесс, выберите элемент Просмотр и назначение.
  • Если вы планируете использовать функцию очереди уведомлений, выберите роль Участник для данных очереди хранилища и добавьте учебный ресурс по Пользовательскому визуальному распознаванию в роли участника. Чтобы завершить процесс, выберите элемент Просмотр и назначение.

Справочные сведения см. в статье Назначение ролей Azure с помощью портала Azure.

Получение URL-адресов для интеграции

Далее вы получите URL-адреса, по которым Пользовательское визуальное распознавание будет получать доступ к этим конечным точкам.

Чтобы получить URL-адрес для интеграции очереди уведомлений, перейдите на страницу Очереди своей учетной записи хранения, добавьте новую очередь и сохраните ее URL-адрес во временное расположение.

Страница очереди службы хранилища Azure

чтобы получить URL-адрес для интеграции резервирования модели, перейдите на страницу Контейнеры своей учетной записи хранения и создайте новый контейнер. Затем выберите его и перейдите на страницу Свойства. Скопируйте URL-адрес во временное расположение.

Страница свойств контейнера службы хранилища Azure

Интеграция проекта Пользовательское визуальное распознавание

После того как вы получите URL-адреса для интеграции, вы сможете создать новый проект Пользовательского визуального распознавания, который интегрирует функции службы хранилища Microsoft Azure. Также вы можете добавить в существующий проект новые функции.

Когда вы вызовите API CreateProject, добавьте дополнительные параметры exportModelContainerUri и notificationQueueUri. Назначьте значения URL-адресов, которые вы получили на предыдущем этапе.

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

Ответ 200/OK означает, что URL-адреса назначены успешно. Также вы увидите значения URL-адресов в ответе 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"
}

Проверка подключения

Ваш вызов API на предыдущем этапе должен был активировать новую информацию в вашей учетной записи хранения Azure.

Назначенный контейнер должен содержать тестовый большой двоичный объект внутри папки CustomVision-TestPermission. Этот большой двоичный объект будет существовать лишь временно.

В очереди уведомлений должно отобразиться тестовое уведомление в следующем формате:

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

Получение уведомление о событиях

Когда вы будете готовы, вызовите API TrainProject в своем проекте, чтобы выполнить стандартную операцию обучения.

По завершении обучения в очереди уведомлений службы хранилища появится уведомление:

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

В поле "trainingStatus" может быть одно из двух значений: "TrainingCompleted" или "TrainingFailed". Поле "iterationId" содержит идентификатор обученной модели.

Получение резервных копий экспортированных моделей

Когда вы будете готовы, вызовите API ExportIteration, чтобы экспортировать обученную модель в указанную платформу.

В назначенном контейнере хранилища появится резервная копия экспортированной модели. Имя большого двоичного объекта будет представлено в следующем формате:

{projectId} - {iterationId}.{platformType}

Кроме того, по завершении экспорта в вашей очереди появится уведомление.

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

В поле "exportStatus" может быть одно из двух значений: "ExportCompleted" или "ExportFailed". Поле "modelUri" будет содержать URL-адрес резервной модели, хранящейся в контейнере, при условии, что вы сначала интегрировали уведомления в очередях. Если вы этого не сделали, в поле "modelUri" будет содержаться подписанный URL-адрес вашего большого двоичного объекта модели Пользовательского визуального распознавания.

Следующие шаги

Из этого руководства вы узнали, как копировать и создавать резервную копию проекта между ресурсами Пользовательского визуального распознавания. Далее предлагаем изучить справочную документацию по API, чтобы узнать о других возможностях Пользовательского визуального распознавания.