Partilhar via


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

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.

Conjunto de dados

  1. Transfira o subconjunto do conjunto de dados EuroSAT e guarde-o em qualquer parte do computador.
  2. 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.

  1. No Explorador de Soluções, clique com o botão direito do rato no projeto LandUse e selecione Adicionar > Modelo de Machine Learning....
  2. Na caixa de diálogo, atribua o nome LandUse ao projeto do Model Builder e clique em Adicionar.

Escolher um cenário

Ecrã de Cenário do Model Builder

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.

  1. 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 .

  2. 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 .

  3. 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.

  4. Selecione a ligação Novo junto à lista pendente Grupos de Recursos .

    1. Na caixa de diálogo Criar Novo Grupo de Recursos, escreva "landuse-rg" na caixa de texto Nome do Grupo de Recursos .
    2. Selecione OK.
  5. Escolha o grupo de recursos criado recentemente na lista pendente Grupos de Recursos .

  6. 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
  7. 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.

  1. Na caixa de diálogo Criar Nova Experimentação, selecione a ligação Novo junto à lista pendente Nome da computação .
  2. Na caixa de diálogo Criar Nova Computação, escreva "landuse-cpt" na caixa de texto Nome da computação .
  3. 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.
  4. Selecione Criar. Os recursos de computação podem demorar alguns minutos a aprovisionar.
  5. 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.
  6. Selecione o botão Passo seguinte para carregar os dados.

Carregar os dados

  1. No passo de dados da ferramenta Model Builder, selecione o botão junto à caixa de texto Selecionar uma pasta .
  2. Utilize Explorador de Ficheiros para navegar e selecionar o diretório deszipado que contém as imagens.
  3. 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.

  1. 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.
  2. 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.

  1. Atribua o nome LandUse_Console projeto da consola.

  2. Clique em Adicionar à solução para adicionar o projeto à sua solução atual.

  3. 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.

  1. Dê o nome LandUse_API projeto da API Web.

  2. Clique em Adicionar à solução para adicionar o projeto à sua solução atual.

  3. Execute a aplicação.

  4. 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"
    
  5. 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.

  1. Navegue para o portal do Azure e selecione Grupos de recursos no menu do portal.
  2. Na lista de grupos de recursos, selecione o grupo de recursos que criou. Neste caso, é "landuse-rg".
  3. Selecione Eliminar grupo de recursos.
  4. 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: