Compartilhar via


Treinar um modelo de classificação de imagem no Azure usando o Model Builder

Saiba como treinar um modelo de classificação de imagem no Azure usando o Model Builder para categorizar o uso da terra a partir de imagens de satélite.

Este tutorial mostra 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, você:

  • Preparar e compreender os dados
  • Criar um arquivo de configuração do Model Builder
  • Escolha um cenário
  • Carregar os dados
  • Criar um experimento no Azure
  • Treinar o modelo
  • Avaliar o modelo
  • Consumir o modelo

Pré-requisitos

Visão geral da classificação de imagem do Model Builder

Este exemplo cria uma biblioteca de classes C# que categoriza o uso da terra a partir de imagens de satélite do mapa usando um modelo de aprendizado profundo treinado no Azure com o Model Builder. Você 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# chamada "LandUse".

Preparar e compreender os dados

Observação

Os dados para este tutorial são de:

  • Eurosat: Um novo conjunto de dados e referência de aprendizado profundo para classificação de uso e cobertura da terra. Patrick Helber, Benjamin Bischke, Andreas Dengel, Damian Borth. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2019.
  • Apresentando o EuroSAT: um novo conjunto de dados e referência de aprendizado profundo para classificação de uso e cobertura do solo. 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 usa apenas 2.000 dessas imagens.

Dataset

  1. Faça download do subconjunto do conjunto de dados EuroSAT e salve-o em qualquer lugar do seu computador.
  2. Descompacte-o.

Criar um arquivo de configuração do Model Builder

Ao adicionar primeiro o Model Builder à solução, ele solicitará que você crie um arquivo mbconfig. O arquivo mbconfig controla tudo o que você faz no Model Builder para permitir que você reabra a sessão.

  1. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto LandUse e selecione Add > Machine Learning Model....
  2. Na caixa de diálogo, nomeie o projeto do Model Builder como LandUse e clique em Adicionar.

Escolha um cenário

Tela de cenário do Model Builder

Para treinar seu modelo, você precisa selecionar na lista de cenários disponíveis de aprendizado de máquina fornecidos pelo Construtor de Modelo.

Para este exemplo, a tarefa é a classificação de imagem. Na etapa de cenário da ferramenta Model Builder, selecione o cenário Classificação de imagem.

Selecionar um ambiente

O Model Builder pode executar o treinamento em ambientes diferentes, dependendo do cenário selecionado.

Selecione o Azure como seu ambiente e clique no botão Configurar workspace.

Criar experimento no Azure

Um experimento do Azure Machine Learning é um recurso que precisa ser criado antes da execução do treinamento do Model Builder no Azure.

O experimento encapsula a configuração e os resultados de uma ou mais execuções de treinamento de aprendizado de máquina. Os experimentos pertencem a um workspace específico. Na primeira vez que um experimento é criado, o nome dele é registrado no workspace. Todas as execuções subsequentes (se o mesmo nome do experimento for usado) serão registradas como parte do mesmo experimento. Caso contrário, um novo experimento será criado.

Na caixa de diálogo Criar novo experimento, escolha sua assinatura na lista suspensa Assinatura.

Criar o workspace

Um workspace é um recurso do Azure Machine Learning que fornece um local central para todos os recursos e artefatos do Azure Machine Learning criados como parte da execução de um treinamento.

  1. Na caixa de diálogo Criar novo experimento, selecione o link Novo ao lado da lista suspensa Nome do espaço de trabalho de aprendizado de máquina.

  2. Na caixa de diálogo Criar um novo espaço de trabalho, digite "landuse-wkspc" na caixa de texto Nome do espaço de trabalho do Machine Learning.

  3. Escolha Leste dos EUA na lista suspensa Regiões. Uma região é a localização geográfica do data center onde seu espaço de trabalho e recursos são implantados. É recomendável escolher um local próximo de você ou de seus clientes.

  4. Selecione o link Novo ao lado da lista suspensa Grupos de recursos.

    1. Na caixa de diálogo Criar novo grupo de recursos, digite "landuse-rg" na caixa de texto Nome do grupo de recursos.
    2. Selecione OK.
  5. Escolha seu grupo de recursos recém-criado na lista suspensa Grupos de recursos.

  6. Selecione Criar.

    O processo de provisionamento leva alguns minutos. Uma solicitação é feita ao Azure para provisionar os seguintes recursos de nuvem:

    • Workspace do Azure Machine Learning
    • Conta de Armazenamento do Azure
    • Azure Application Insights
    • Registro de Contêiner do Azure
    • Cofre de Chave do Azure
  7. Quando o processo de provisionamento estiver concluído, escolha seu espaço de trabalho recém-criado na lista suspensa Nome do espaço de trabalho de Machine Learning na caixa de diálogo Criar novo experimento.

Criar computação

Uma computação do Azure Machine Learning é uma VM do Linux baseada em nuvem que é usada para treinamento.

  1. Na caixa de diálogo Criar novo experimento, selecione o link Novo ao lado da lista suspensa Nome da computação.
  2. Na caixa de diálogo Criar nova computação, digite "landuse-cpt" na caixa de texto Nome da computação.
  3. Escolha Standard_NC24 na lista suspensa Tamanho da computação. O Model Builder usa tipos de computação otimizados para GPU. Visite a documentação da VM do Linux da série NC para saber mais sobre os tipos de computação otimizados para GPU.
  4. Selecione Criar. Os recursos de computação podem levar alguns minutos para serem provisionados.
  5. Quando o processo de provisionamento estiver concluído, escolha seu workspace recém-criado na lista suspensa Compute name na caixa de diálogo Create New Experiment.
  6. Selecione o botão Próxima etapa para carregar os dados.

Carregar os dados

  1. Na etapa de dados da ferramenta Model Builder, selecione o botão ao lado da caixa de texto Selecionar uma pasta.
  2. Use o Explorador de Arquivos para navegar e selecionar o diretório descompactado que contém as imagens.
  3. Selecione o botão Próxima etapa para passar para a próxima etapa na ferramenta Model Builder.

Treinar o modelo

O treinamento no Azure está disponível somente para o cenário de classificação de imagem do Model Builder. O algoritmo usado para treinar esses modelos é uma rede neural profunda baseada na arquitetura ResNet50. Durante o processo de treinamento do modelo, o Model Builder treina modelos separados usando o algoritmo e as configurações ResNet50 para encontrar o modelo com melhor desempenho para seu conjunto de dados.

Iniciar treinamento

Depois de configurar seu espaço de trabalho e tipo de computação, é hora de terminar de criar o experimento e iniciar o treinamento.

  1. Clique no botão Iniciar treinamento.

    O processo de treinamento leva algum tempo e a quantidade de tempo pode variar dependendo do tamanho da computação selecionada, bem como da quantidade de dados. Na primeira vez que um modelo é treinado, você pode esperar um tempo de treinamento um pouco mais longo porque os recursos precisam ser provisionados. É possível acompanhar o progresso de suas execuções clicando no link Monitorar a execução atual no portal do Azure no Visual Studio.

    Durante todo o processo de treinamento, os dados de progresso são exibidos na seção Progresso da etapa de treinamento.

    • O status exibe o status de conclusão do processo de treinamento.
    • A melhor precisão exibe a precisão do modelo com melhor desempenho encontrado pelo Model Builder até o momento. Maior precisão significa que o modelo é previsto mais corretamente nos dados de teste.
    • Algoritmo exibe o nome do algoritmo de melhor desempenho realizado encontrado pelo Model Builder até o momento.
  2. Quando o treinamento estiver concluído, selecione o botão Próxima etapa para mover para avaliar o modelo.

Avaliar o modelo

O resultado da etapa de treinamento será um modelo com o melhor desempenho. Na etapa de avaliação da ferramenta Model Builder, a guia Detalhes na seção de saída conterá o algoritmo usado pelo modelo com melhor desempenho na entrada Algoritmo junto com as métricas na Precisão nos detalhes do Melhor modelo.

Se você não estiver satisfeito com suas métricas de precisão, algumas maneiras fáceis de tentar melhorar a precisão do modelo são usar mais dados ou aumentar os dados existentes. Caso contrário, selecione o botão Próxima etapa para ir para a etapa final na ferramenta Model Builder.

(Opcional) Consumir o modelo

Esta etapa terá modelos de projeto que você poderá usar para consumir o modelo. Ela é opcional, e você pode escolher o método que melhor atende às suas necessidades sobre como fornecer o modelo.

  • Aplicativo de Console
  • API Web

Aplicativo de Console

Ao adicionar um aplicativo de console à sua solução, você precisará nomear o projeto.

  1. Nomeie o projeto do console LandUse_Console.

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

  3. Executar o aplicativo.

    A saída gerada pelo programa deve ser semelhante ao snippet a seguir:

    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, você precisará nomear o projeto.

  1. Nomeie o projeto de API da Web como LandUse_API.

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

  3. Executar o aplicativo.

  4. Abra o PowerShell e insira o código a seguir, em que PORT é a porta que o seu aplicativo escuta.

    $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 houver sucesso, a saída será 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 recursos

Se você não planeja mais usar os recursos do Azure que criou, exclua-os. Isso impede a cobrança por recursos não utilizados que ainda estão em execução.

  1. Navegue até 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 você criou. Nesse caso, é "landuse-rg".
  3. Selecione Excluir grupo de recursos.
  4. Digite o nome do grupo de recursos, "landuse-rg", na caixa de texto e selecione Enter.

Próximas etapas

Neste tutorial, você aprendeu a:

  • Preparar e compreender os dados
  • Criar um arquivo de configuração do Model Builder
  • Escolha um cenário
  • Carregar os dados
  • Criar um experimento no Azure
  • Treinar o modelo
  • Avaliar o modelo
  • Consumir o modelo

Experimente um dos outros cenários do Model Builder: