Partilhar via


Classificação de imagem com ML.NET e Windows Machine Learning

Fluxo de classificação de imagens

Este guia mostrará como treinar um modelo de rede neural para classificar imagens de alimentos usando ML.NET Construtor de Modelos, exportar o modelo para o formato ONNX e implantar o modelo em um aplicativo de Aprendizado de Máquina do Windows executado localmente em um dispositivo Windows. Nenhum conhecimento prévio em aprendizado de máquina é necessário, e vamos guiá-lo passo a passo através do processo.

Se você gosta de aprender a construir e treinar um modelo com ML.NET Model Builder, você pode prosseguir para Train a Model.

Se você tiver um modelo e quiser aprender a criar um aplicativo WinML do zero, navegue até o tutorial completo do aplicativo WinML.

Se você quiser obter a solução predefinida para um aplicativo WinML, você pode clonar o arquivo de solução e testá-lo imediatamente.

Cenário

Neste tutorial, criaremos um aplicativo de classificação de alimentos de aprendizado de máquina que é executado em dispositivos Windows. O modelo será treinado para reconhecer certos tipos de padrões para classificar uma imagem de alimento e, quando dada uma imagem, retornará uma tag de classificação e o valor de confiança percentual associado dessa classificação.

Pré-requisitos para treinamento modelo

Para criar e treinar seu modelo, você usará o ML.NET Model Buider no Visual Studio.

  • Você precisará do Visual Studio 2019 16.6.1 ou posterior para usar um ML.NET Model Builder. Você pode obter o Visual Studio aqui.
  • Você precisará de uma conta do Azure para treinar um modelo com ML.NET Construtor de Modelos no Espaço de Trabalho do Azure ML. Se você é novo no Azure, pode se inscrever para uma conta gratuita do Azure.

Observação

Interessado em saber mais sobre as opções de inscrição do Azure e as contas gratuitas do Azure? Confira Criar uma conta do Azure.

ML.NET Model Builder é uma extensão gráfica intuitiva do Visual Studio, usada para criar, treinar e implantar modelos personalizados de aprendizado de máquina. Ele usa aprendizado de máquina automatizado (AutoML) para explorar diferentes algoritmos e configurações de aprendizado de máquina para ajudá-lo a encontrar o que melhor se adapta ao seu cenário.

ML.NET Construtor de Modelos é fornecido com o Visual Studio versão 16.6.1 ou posterior, quando você instala uma das cargas de trabalho do .NET. Certifique-se de ter o componente Construtor de modelos ML.NET verificado no instalador quando você baixar ou modificar o Visual Studio. Para verificar se o VS tem os componentes ML.NET do Construtor de Modelos, vá para Extensões e selecione Gerenciar Extensões. Digite Model Builder na barra de pesquisa para revisar os resultados da extensão.

Extensão do construtor de modelos

O ML.NET Model Builder é atualmente uma funcionalidade em versão Preview. Portanto, para usar a ferramenta, no Visual Studio você deve ir para Ferramentas > Opções > de Recursos de Visualização do Ambiente > e habilitar ML.NET Construtor de Modelos:

Ativar a extensão do construtor de modelos

Observação

Interessado em saber mais sobre ML.NET Construtor de Modelos e os diferentes cenários suportados? Consulte a documentação do Construtor de Modelos.

Pré-requisitos para a implantação do aplicativo Windows ML

Para criar e implantar um aplicativo Widows ML, você precisará do seguinte:

  • Windows 10 versão 1809 (compilação 17763) ou superior. Você pode verificar o número da versão da compilação executando winver através do comando (Windows logo key + R)Executar.
  • SDK do Windows para compilação 17763 ou superior. Você pode obter o SDK aqui.
  • Visual Studio 2019 versão 16.6.1 ou posterior. Você pode obter o Visual Studio aqui.
  • Extensão do Visual Studio do Windows ML Code Generator (mlgen). Fazer download de VS 2019
  • Se você decidir criar um aplicativo UWP, precisará habilitar a carga de trabalho de desenvolvimento da Plataforma Universal do Windows no Visual Studio.
  • Também terá de ativar o Modo de Programador no seu PC

Observação

As APIs de ML do Windows são incorporadas nas versões mais recentes do Windows 10 (1809 ou superior) e do Windows Server 2019. Se sua plataforma de destino for versões mais antigas do Windows, você poderá portar seu aplicativo WinML para o pacote NuGet redistribuível (Windows 8.1 ou superior).

Preparar os dados

Os modelos de aprendizado de máquina devem ser treinados com dados existentes. Neste guia, você usará um conjunto de dados de imagens de alimentos do Kaggle Open Datasets. Este conjunto de dados é distribuído sob a licença de domínio público.

Importante

Para usar esse conjunto de dados, você precisa aderir ao termo de uso do site Kaggle e aos termos de liscência que acompanham o próprio conjunto de dados Food-11. A Microsoft não oferece nenhuma garantia ou representação em relação ao site ou a este conjunto de dados.

O conjunto de dados tem três divisões - avaliação, formação e validação - e contém 16643 imagens de alimentos agrupadas em 11 categorias principais de alimentos. As imagens no conjunto de dados de cada categoria de alimentos são colocadas em uma pasta separada, o que torna o processo de treinamento do modelo mais conveniente.

Faça o download do conjunto de dados aqui. Por favor, note que o conjunto de dados tem cerca de 1 gb de tamanho, e você pode ser solicitado a criar uma conta no site do Kaggle para baixar os dados.

Conjunto de dados de imagens de alimentos

Se desejar, você pode usar qualquer outro conjunto de dados de imagens relevantes. No mínimo, recomendamos que você use pelo menos 30 imagens por tag no conjunto de treinamento inicial. Você também vai querer coletar algumas imagens extras para testar seu modelo depois que ele for treinado.

Além disso, certifique-se de que todas as suas imagens de treinamento atendam aos seguintes critérios:

  • formato .jpg, .png, .bmpou .gif.
  • não superior a 6MB de tamanho (4MB para imagens de previsão).
  • não menos de 256 pixels na borda mais curta; quaisquer imagens mais curtas do que isso serão automaticamente ampliadas pelo Serviço de Visão Personalizada.

Próximas Etapas

Agora que você tem seus pré-requisitos resolvidos e preparado seu conjunto de dados, você pode prosseguir para a criação do seu modelo WinML. Na próxima parte, você usará o ML.NET Construtor de Modelos para criar e treinar seu modelo de classificação.