Preparar um modelo de classificação de imagens no Azure com o Model Builder
Saiba como preparar um modelo de classificação de imagens no Azure com o Model Builder para categorizar o uso da terra a partir de imagens de satélite.
Este tutorial mostra-lhe como criar uma biblioteca de classes C# para categorizar o uso da terra com base em imagens de satélite com o Model Builder.
Neste tutorial:
- Preparar e compreender os dados
- Criar um ficheiro de configuração do Model Builder
- Escolher um cenário
- Carregar os dados
- Criar uma experimentação no Azure
- Preparar o modelo
- Avaliar o modelo
- Consumir o modelo
Pré-requisitos
- Para obter uma lista de pré-requisitos e instruções de instalação, visite o guia de instalação do Model Builder.
- Conta do Azure. Se não tiver uma, crie uma conta gratuita do Azure.
- ASP.NET e carga de trabalho de desenvolvimento Web.
Descrição geral da classificação de imagens do Model Builder
Este exemplo cria uma biblioteca de classes C# que categoriza o uso da terra a partir de imagens de satélite de mapa com um modelo de aprendizagem profunda preparado no Azure com o Model Builder. Pode encontrar o código fonte deste tutorial no repositório do GitHub dotnet/machinelearning-samples
Criar uma Biblioteca de Classes C#
Crie uma Biblioteca de Classes C# denominada "LandUse".
Preparar e compreender os dados
Nota
Os dados deste tutorial são de:
- Eurosat: Um novo conjunto de dados e referência de aprendizagem profunda para utilização de terras e classificação de coberturas terrestres. Patrick Helber, Benjamin Bischke, Andreas Dengel, Damian Borth. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2019.
- Apresentação do EuroSAT: Um Novo Conjunto de Dados e Referência de Aprendizagem Profunda para Uso Terrestre e Classificação de Capas Terrestres. Patrick Helber, Benjamin Bischke, Andreas Dengel. 2018 IEEE International Geoscience and Remote Sensing Symposium, 2018.
O conjunto de dados EuroSAT contém uma coleção de imagens de satélite divididas em dez categorias (rural, industrial, fluvial, etc.). O conjunto de dados original contém 27 000 imagens. Por conveniência, este tutorial utiliza apenas 2000 dessas imagens.
- Transfira o subconjunto do conjunto de dados EuroSAT e guarde-o em qualquer parte do computador.
- Deszipe-o.
Criar um ficheiro de configuração do Model Builder
Quando adicionar o Model Builder à solução pela primeira vez, irá pedir-lhe para criar um mbconfig
ficheiro. O mbconfig
ficheiro controla tudo o que faz no Model Builder para permitir que reabra a sessão.
- No Explorador de Soluções, clique com o botão direito do rato no projeto LandUse e selecione Adicionar > Modelo de Machine Learning....
- Na caixa de diálogo, atribua o nome LandUse ao projeto do Model Builder e clique em Adicionar.
Escolher um cenário
Para preparar o modelo, tem de selecionar a partir da lista de cenários de machine learning disponíveis fornecidos pelo Model Builder.
Para este exemplo, a tarefa é classificação de imagens. No passo de cenário da ferramenta Model Builder, selecione o cenário Classificação de Imagens .
Selecionar um ambiente
O Model Builder pode executar a preparação em diferentes ambientes consoante o cenário selecionado.
Selecione Azure como ambiente e clique no botão Configurar área de trabalho .
Criar experimentação no Azure
Uma experimentação do Azure Machine Learning é um recurso que tem de ser criado antes de executar a preparação do Model Builder no Azure.
A experimentação encapsula a configuração e os resultados de uma ou mais execuções de preparação de machine learning. As experimentações pertencem a uma área de trabalho específica. Na primeira vez que uma experimentação é criada, o respetivo nome é registado na área de trabalho. Todas as execuções subsequentes - se for utilizado o mesmo nome da experimentação - são registadas como parte da mesma experimentação. Caso contrário, é criada uma nova experimentação.
Na caixa de diálogo Criar Nova Experimentação, selecione a sua subscrição na lista pendente Subscrição .
Criar área de trabalho
Uma área de trabalho é um recurso do Azure Machine Learning que fornece um local central para todos os recursos e artefactos do Azure Machine Learning criados como parte de uma execução de preparação.
Na caixa de diálogo Criar Nova Experimentação, selecione a ligação Nova junto ao menu pendente Nome da Área de Trabalho do Machine Learning .
Na caixa de diálogo Criar Uma Nova Área de Trabalho, escreva "landuse-wkspc" na caixa de texto Nome da Área de Trabalho do Machine Learning .
Selecione E.U.A. Leste na lista pendente Regiões . Uma região é a localização geográfica do datacenter onde a área de trabalho e os recursos são implementados. Recomenda-se que escolha uma localização perto do local onde se encontra ou os seus clientes.
Selecione a ligação Novo junto à lista pendente Grupos de Recursos .
- Na caixa de diálogo Criar Novo Grupo de Recursos, escreva "landuse-rg" na caixa de texto Nome do Grupo de Recursos .
- Selecione OK.
Escolha o grupo de recursos criado recentemente na lista pendente Grupos de Recursos .
Selecione Criar.
O processo de aprovisionamento demora alguns minutos. É feito um pedido ao Azure para aprovisionar os seguintes recursos na cloud:
- Área de trabalho do Azure Machine Learning
- Conta de Armazenamento do Azure
- Azure Application Insights
- Registo de Contentores do Azure
- Azure Key Vault
Assim que o processo de aprovisionamento estiver concluído, selecione a área de trabalho recém-criada na lista pendente Nome da Área de Trabalho do Machine Learning na caixa de diálogo Criar Nova Experimentação.
Criar computação
Uma computação do Azure Machine Learning é uma VM do Linux baseada na cloud utilizada para preparação.
- Na caixa de diálogo Criar Nova Experimentação, selecione a ligação Novo junto à lista pendente Nome da computação .
- Na caixa de diálogo Criar Nova Computação, escreva "landuse-cpt" na caixa de texto Nome da computação .
- Selecione Standard_NC24 na lista pendente Tamanho da computação . O Model Builder utiliza tipos de computação otimizados para GPU. Veja a documentação da VM linux da série NC para obter mais detalhes sobre os tipos de computação otimizados para GPU.
- Selecione Criar. Os recursos de computação podem demorar alguns minutos a aprovisionar.
- Assim que o processo de aprovisionamento estiver concluído, escolha a área de trabalho recém-criada na lista pendente Nome da computação na caixa de diálogo Criar Nova Experimentação.
- Selecione o botão Passo seguinte para carregar os dados.
Carregar os dados
- No passo de dados da ferramenta Model Builder, selecione o botão junto à caixa de texto Selecionar uma pasta .
- Utilize Explorador de Ficheiros para navegar e selecionar o diretório deszipado que contém as imagens.
- Selecione o botão Passo seguinte para avançar para o passo seguinte na ferramenta Construtor de Modelos.
Preparar o modelo
A formação no Azure só está disponível para o cenário de classificação de imagens do Model Builder. O algoritmo utilizado para preparar estes modelos é uma Rede Neural Profunda baseada na arquitetura resNet50. Durante o processo de preparação de modelos, o Model Builder prepara modelos separados com o algoritmo ResNet50 e as definições para encontrar o modelo de melhor desempenho para o seu conjunto de dados.
Iniciar formação
Depois de configurar a área de trabalho e o tipo de computação, está na altura de concluir a criação da experimentação e iniciar a preparação.
Clique no botão Iniciar Preparação .
O processo de preparação demora algum tempo e a quantidade de tempo pode variar consoante o tamanho da computação selecionada, bem como a quantidade de dados. Quando um modelo é preparado pela primeira vez, pode esperar um tempo de preparação ligeiramente mais longo porque os recursos têm de ser aprovisionados. Pode controlar o progresso das suas execuções ao selecionar a ligação Monitorizar a execução atual no portal do Azure no Visual Studio.
Ao longo do processo de preparação, os dados de progresso são apresentados na secção Progresso do passo de preparação.
- O estado apresenta o estado de conclusão do processo de preparação.
- A melhor precisão apresenta a precisão do modelo com melhor desempenho encontrado até agora pelo Model Builder. Maior precisão significa que o modelo previu mais corretamente os dados de teste.
- O algoritmo apresenta o nome do algoritmo com melhor desempenho executado até agora pelo Model Builder.
Quando a preparação estiver concluída, selecione o botão Passo seguinte para mover para avaliar o modelo.
Avaliar o modelo
O resultado do passo de preparação é um modelo que teve o melhor desempenho. No passo de avaliação da ferramenta Model Builder, o separador Detalhes na secção de saída irá conter o algoritmo utilizado pelo modelo de melhor desempenho na entrada Algoritmo juntamente com as métricas na entrada Precisão nos detalhes do melhor modelo .
Se não estiver satisfeito com as métricas de precisão, algumas formas fáceis de tentar melhorar a precisão do modelo são utilizar mais dados ou aumentar os dados existentes. Caso contrário, selecione o botão Passo seguinte para avançar para o passo final na ferramenta Model Builder.
(Opcional) Consumir o modelo
Este passo terá modelos de projeto que pode utilizar para consumir o modelo. Este passo é opcional e pode escolher o método mais adequado às suas necessidades sobre como servir o modelo.
- Aplicação de Consola
- API Web
Aplicação de Consola
Ao adicionar uma aplicação de consola à sua solução, ser-lhe-á pedido para atribuir um nome ao projeto.
Atribua o nome LandUse_Console projeto da consola.
Clique em Adicionar à solução para adicionar o projeto à sua solução atual.
Execute a aplicação.
O resultado gerado pelo programa deve ter um aspeto semelhante ao fragmento abaixo:
Predicted Label value: AnnualCrop Predicted Label scores: [0.9941197,3.3146807E-06,4.4344174E-06,0.000101028825,7.763133E-06,0.0015898133,0.0040994748,1.6308518E-06,6.265567E-05,1.0236401E-05]
API Web
Ao adicionar uma API Web à sua solução, ser-lhe-á pedido que atribua um nome ao projeto.
Dê o nome LandUse_API projeto da API Web.
Clique em Adicionar à solução para adicionar o projeto à sua solução atual.
Execute a aplicação.
Abra o PowerShell e introduza o seguinte código em que PORT é a porta em que a sua aplicação está a escutar.
$body = @{ ImageSource = <Image location on your local machine> } Invoke-RestMethod "https://localhost:<PORT>/predict" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
Se for bem-sucedido, o resultado deverá ter um aspeto semelhante ao texto abaixo.
output1 prediction score ------- ---------- ----- {9.508701, -3.1025503, -2.8115153, 0.31449434...} AnnualCrop {0.9941197, 3.3146807E-06, 4.4344174E-06, 0.00010102882...
Limpar os recursos
Se já não planear utilizar os recursos do Azure que criou, elimine-os. Isto impede que lhe sejam cobrados recursos não utilizados que ainda estão em execução.
- Navegue para o portal do Azure e selecione Grupos de recursos no menu do portal.
- Na lista de grupos de recursos, selecione o grupo de recursos que criou. Neste caso, é "landuse-rg".
- Selecione Eliminar grupo de recursos.
- Escreva o nome do grupo de recursos, "landuse-rg", na caixa de texto e, em seguida, selecione Enter.
Passos seguintes
Neste tutorial, ficou a saber como:
- Preparar e compreender os dados
- Criar um ficheiro de configuração do Model Builder
- Escolher um cenário
- Carregar os dados
- Criar uma experimentação no Azure
- Preparar o modelo
- Avaliar o modelo
- Consumir o modelo
Experimente um dos outros cenários do Model Builder: