Интеграция службы хранилища Azure для уведомлений и резервирования
Вы можете интегрировать проект Пользовательское визуальное распознавание с очередью хранилища BLOB-объектов Azure, чтобы получить push-уведомления об обучении и экспорте проекта. Эта функция позволяет избежать постоянного опроса службы на предмет результатов, когда выполняются длительные операции. Вместо этого уведомления очереди хранилища можно интегрировать в рабочий процесс.
Вы также можете использовать хранилище Azure для хранения резервных копий опубликованных моделей.
Из этого руководства вы узнаете, как использовать эти REST API с cURL. Для выполнения запросов можно также использовать службу HTTP-запросов, например REST Client для Visual Studio Code.
Примечание.
Push-уведомления отправляются в зависимости от необязательного параметра notificationQueueUri в API CreateProject, а для резервного копирования моделей вам понадобится добавить параметр exportModelContainerUri. В этом руководством представлена реализация обоих параметров для полного набора функций.
Необходимые компоненты
- Ресурс Пользовательское визуальное распознавание Azure. Если у вас нет этого ресурса, перейдите на портал Azure и создайте ресурс Пользовательского визуального распознавания.
Примечание.
Эта функция не поддерживает ресурс нескольких служб ИИ Azure.
- Учетная запись службы хранилища Microsoft Azure с контейнером больших двоичных объектов. Если на этом этапе вам нужна помощь, ознакомьтесь с кратким руководством по службе хранилища.
- PowerShell версии 6.0 и выше или аналогичное приложение командной строки.
Настройка интеграции службы хранилища Azure
Перейдите к ресурсу обучения Пользовательское визуальное распознавание на портал Azure, выберите страницу удостоверений и включите управляемое удостоверение, назначаемое системой.
Далее откройте свой ресурс хранилища на портале Microsoft Azure. Перейдите на страницу Управление доступом (IAM) и выберите элемент + Добавить назначение ролей (предварительная версия). Затем добавьте назначение роли для каждой функции интеграции или для обеих:
- Если вы планируете использовать функция резервного копирования модели, выберите роль Участник для данных BLOB-объектов хранилища и добавьте учебный ресурс по Пользовательскому визуальному распознаванию в роли участника. Чтобы завершить процесс, выберите элемент Просмотр и назначение.
- Если вы планируете использовать функцию очереди уведомлений, выберите роль Участник для данных очереди хранилища и добавьте учебный ресурс по Пользовательскому визуальному распознаванию в роли участника. Чтобы завершить процесс, выберите элемент Просмотр и назначение.
Справочные сведения см. в статье Назначение ролей Azure с помощью портала Azure.
Получение URL-адресов для интеграции
Далее вы получите URL-адреса, по которым Пользовательское визуальное распознавание будет получать доступ к этим конечным точкам.
Чтобы получить URL-адрес для интеграции очереди уведомлений, перейдите на страницу Очереди своей учетной записи хранения, добавьте новую очередь и сохраните ее URL-адрес во временное расположение.
чтобы получить URL-адрес для интеграции резервирования модели, перейдите на страницу Контейнеры своей учетной записи хранения и создайте новый контейнер. Затем выберите его и перейдите на страницу Свойства. Скопируйте URL-адрес во временное расположение.
Интеграция проекта Пользовательское визуальное распознавание
После того как вы получите URL-адреса для интеграции, вы сможете создать новый проект Пользовательского визуального распознавания, который интегрирует функции службы хранилища Microsoft Azure. Также вы можете добавить в существующий проект новые функции.
Когда вы вызовите API CreateProject, добавьте дополнительные параметры exportModelContainerUri и notificationQueueUri. Назначьте значения URL-адресов, которые вы получили на предыдущем этапе.
curl -v -X POST "{endpoint}/customvision/v3.3/Training/projects?exportModelContainerUri={inputUri}¬ificationQueueUri={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, чтобы узнать о других возможностях Пользовательского визуального распознавания.