Integrar o armazenamento do Azure para notificações e backup
Você pode integrar seu projeto de Visão Personalizada com uma fila de armazenamento de blob do Azure para obter notificações por push da atividade de treinamento/exportação do projeto. Esse recurso é útil para evitar sondar continuamente o serviço em busca de resultados quando operações longas estão em execução. Em vez disso, você pode integrar as notificações da fila de armazenamento ao seu fluxo de trabalho.
Você também pode usar o armazenamento do Azure para armazenar cópias de backup de seus modelos publicados.
Este guia mostra como usar essas APIs REST com cURL. Você também pode usar um serviço de solicitação HTTP, como o cliente REST para Visual Studio Code, para fazer as solicitações.
Nota
As notificações por push dependem do parâmetro opcional notificationQueueUri na API CreateProject, e os backups de modelo exigem que você também use o parâmetro opcional exportModelContainerUri. Este guia usará ambos para o conjunto completo de recursos.
Pré-requisitos
- Um recurso de Visão Personalizada do Azure. Se você não tiver um, vá para o portal do Azure e crie um novo recurso de Visão Personalizada.
Nota
Esta funcionalidade não suporta o recurso multisserviço de serviços de IA do Azure.
- Uma conta de Armazenamento do Azure com um contêiner de blob. Siga o Guia de início rápido de armazenamento se precisar de ajuda com esta etapa.
- PowerShell versão 6.0+ ou um aplicativo de linha de comando semelhante.
Configurar a integração de armazenamento do Azure
Aceda ao seu recurso de formação Visão Personalizada no portal do Azure, selecione a página Identidade e habilite a identidade gerenciada atribuída ao sistema.
Em seguida, vá para seu recurso de armazenamento no portal do Azure. Vá para a página Controle de acesso (IAM) e selecione Adicionar atribuição de função (Visualização). Em seguida, adicione uma atribuição de função para o recurso de integração ou ambos:
- Se você planeja usar o recurso de backup de modelo, selecione a função de Colaborador de Dados de Blob de Armazenamento e adicione seu recurso de treinamento Visão Personalizada como membro. Selecione Rever + atribuir para concluir.
- Se você planeja usar o recurso de fila de notificações, selecione a função Colaborador de Dados da Fila de Armazenamento e adicione seu recurso de treinamento Visão Personalizada como membro. Selecione Rever + atribuir para concluir.
Para obter ajuda com atribuições de função, consulte Atribuir funções do Azure usando o portal do Azure.
Obter URLs de integração
Em seguida, você obterá as URLs que permitem que seu recurso Visão Personalizada acesse esses pontos de extremidade.
Para a URL de integração da fila de notificação, vá para a página Filas da sua conta de armazenamento, adicione uma nova fila e salve sua URL em um local temporário.
Para obter a URL de integração do backup do modelo, vá para a página Contêineres da sua conta de armazenamento e crie um novo contêiner. Em seguida, selecione-o e vá para a página Propriedades . Copie o URL para um local temporário.
Integrar um projeto de Visão Personalizada
Agora que você tem as URLs de integração, pode criar um novo projeto de Visão Personalizada que integra os recursos de Armazenamento do Azure. Você também pode atualizar um projeto existente para adicionar os recursos.
Ao chamar a API CreateProject , adicione os parâmetros opcionais exportModelContainerUri e notificationQueueUri. Atribua os valores de URL obtidos na seção anterior.
curl -v -X POST "{endpoint}/customvision/v3.3/Training/projects?exportModelContainerUri={inputUri}¬ificationQueueUri={inputUri}&name={inputName}"
-H "Training-key: {subscription key}"
Se você receber uma 200/OK
resposta, isso significa que os URLs foram configurados com êxito. Você também deve ver seus valores de URL na resposta 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"
}
Verificar a ligação
Sua chamada de API na seção anterior já deve ter acionado novas informações em sua conta de armazenamento do Azure.
Em seu contêiner designado, deve haver um blob de teste dentro de uma pasta CustomVision-TestPermission . Este blob só existirá temporariamente.
Na fila de notificações, você verá uma notificação de teste no seguinte formato:
{
"version": "1.0" ,
"type": "ConnectionTest",
"Content":
{
"projectId": "00000000-0000-0000-0000-000000000000"
}
}
Obter notificações de eventos
Quando estiver pronto, chame a API TrainProject em seu projeto para fazer uma operação de treinamento comum.
Na fila de notificações de armazenamento, você receberá uma notificação assim que o treinamento terminar:
{
"version": "1.0" ,
"type": "Training",
"Content":
{
"projectId": "00000000-0000-0000-0000-000000000000",
"iterationId": "00000000-0000-0000-0000-000000000000",
"trainingStatus": "TrainingCompleted"
}
}
O "trainingStatus"
campo pode ser um ou "TrainingFailed"
"TrainingCompleted"
. O "iterationId"
campo é o ID do modelo treinado.
Obter backups de exportação de modelo
Quando estiver pronto, chame a API ExportIteration para exportar um modelo treinado para uma plataforma especificada.
No contêiner de armazenamento designado, uma cópia de backup do modelo exportado será exibida. O nome do blob terá o formato:
{projectId} - {iterationId}.{platformType}
Além disso, você receberá uma notificação em sua fila quando a exportação terminar.
{
"version": "1.0" ,
"type": "Export",
"Content":
{
"projectId": "00000000-0000-0000-0000-000000000000",
"iterationId": "00000000-0000-0000-0000-000000000000",
"exportStatus": "ExportCompleted",
"modelUri": {url}
}
}
O "exportStatus"
campo pode ser um ou "ExportFailed"
"ExportCompleted"
. O "modelUri"
campo conterá a URL do modelo de backup armazenado em seu contêiner, supondo que você integrou notificações de fila no início. Caso contrário, o "modelUri"
campo mostrará a URL SAS do blob do modelo Visão Personalizada.
Próximos passos
Neste guia, você aprendeu como copiar e fazer backup de um projeto entre recursos da Visão Personalizada. Em seguida, explore os documentos de referência da API para ver o que mais você pode fazer com a Visão Personalizada.