Partilhar via


Criar um modelo personalizado de Análise de Imagem (visualização)

O Image Analysis 4.0 permite treinar um modelo personalizado usando suas próprias imagens de treinamento. Ao rotular manualmente suas imagens, você pode treinar um modelo para aplicar tags personalizadas às imagens (classificação de imagens) ou detetar objetos personalizados (deteção de objetos). Os modelos de Análise de Imagem 4.0 são especialmente eficazes na aprendizagem de poucas imagens, para que possa obter modelos precisos com menos dados de treino.

Este guia mostra como criar e treinar um modelo de classificação de imagem personalizado. As poucas diferenças entre treinar um modelo de classificação de imagem e um modelo de deteção de objetos são observadas.

Pré-requisitos

  • Subscrição do Azure - Criar uma gratuitamente
  • Depois de ter sua assinatura do Azure, crie um recurso Visão no portal do Azure para obter sua chave e ponto de extremidade. Se você estiver seguindo este guia usando o Vision Studio, deverá criar seu recurso na região Leste dos EUA. Depois de implantar, selecione Ir para recurso. Copie a chave e o ponto de extremidade para um local temporário para usar mais tarde.
  • Um recurso de Armazenamento do Azure - Crie um
  • Um conjunto de imagens com as quais treinar seu modelo de classificação. Você pode usar o conjunto de imagens de exemplo no GitHub. Ou, você pode usar suas próprias imagens. Você só precisa de cerca de 3-5 imagens por aula.

Nota

Não recomendamos o uso de modelos personalizados para ambientes críticos de negócios devido à alta latência potencial. Quando os clientes treinam modelos personalizados no Vision Studio, esses modelos personalizados pertencem ao recurso Vision no qual foram treinados e o cliente pode fazer chamadas para esses modelos usando a API Analyze Image . Quando eles fazem essas chamadas, o modelo personalizado é carregado na memória e a infraestrutura de previsão é inicializada. Enquanto isso acontece, os clientes podem experimentar latência maior do que o esperado para receber resultados de previsão.

Criar um novo modelo personalizado

Comece indo para o Vision Studio e selecionando a guia Análise de imagem . Em seguida, selecione o bloco Personalizar modelos .

Captura de ecrã do mosaico Personalizar modelos.

Em seguida, entre com sua conta do Azure e selecione seu recurso Visão. Se não tiver um, pode criar um a partir deste ecrã.

Importante

Para treinar um modelo personalizado no Vision Studio, sua assinatura do Azure precisa ser aprovada para acesso. Por favor, solicite acesso usando este formulário.

Captura de ecrã do ecrã de seleção de recursos.

Preparar imagens de treinamento

Você precisa carregar suas imagens de treinamento em um contêiner de Armazenamento de Blob do Azure. Vá para seu recurso de armazenamento no portal do Azure e navegue até a guia Navegador de armazenamento . Aqui você pode criar um contêiner de blob e fazer upload de suas imagens. Coloque todos na raiz do recipiente.

Adicionar um conjunto de dados

Para treinar um modelo personalizado, você precisa associá-lo a um conjunto de dados onde você fornece imagens e suas informações de rótulo como dados de treinamento. No Vision Studio, selecione a guia Conjuntos de dados para exibir seus conjuntos de dados.

Para criar um novo conjunto de dados, selecione adicionar novo conjunto de dados. Na janela pop-up, insira um nome e selecione um tipo de conjunto de dados para seu caso de uso. Os modelos de classificação de imagem aplicam rótulos de conteúdo à imagem inteira, enquanto os modelos de deteção de objeto aplicam rótulos de objeto a locais específicos na imagem. Os modelos de reconhecimento de produtos são uma subcategoria de modelos de deteção de objetos otimizados para detetar produtos de varejo.

Escolha o armazenamento de Blob

Em seguida, selecione o contêiner na conta de Armazenamento de Blob do Azure onde você armazenou as imagens de treinamento. Marque a caixa para permitir que o Vision Studio leia e grave no contêiner de armazenamento de blobs. Esta é uma etapa necessária para importar dados rotulados. Crie o conjunto de dados.

Criar um projeto de rotulagem do Azure Machine Learning

Você precisa de um arquivo COCO para transmitir as informações de rotulagem. Uma maneira fácil de gerar um arquivo COCO é criar um projeto do Azure Machine Learning, que vem com um fluxo de trabalho de rotulagem de dados.

Na página de detalhes do conjunto de dados, selecione Adicionar um novo projeto de Rotulagem de Dados. Nomeie-o e selecione Criar um novo espaço de trabalho. Isso abre uma nova guia do portal do Azure onde você pode criar o projeto do Azure Machine Learning.

Escolha o Azure Machine Learning

Depois que o projeto do Azure Machine Learning for criado, retorne à guia Vision Studio e selecione-o em Espaço de trabalho. O portal do Azure Machine Learning será aberto em uma nova guia do navegador.

Azure Machine Learning: Criar etiquetas

Para começar a rotular, siga o prompt Adicionar classes de rótulo para adicionar classes de rótulo.

Classes de rótulo

Adicionar rótulos de classe

Depois de adicionar todos os rótulos de classe, salve-os, selecione iniciar no projeto e, em seguida, selecione Dados do rótulo na parte superior.

Comece a rotular

Azure Machine Learning: rotular manualmente os dados de treinamento

Escolha Iniciar rotulagem e siga as instruções para rotular todas as suas imagens. Quando terminar, volte para a guia Vision Studio no navegador.

Agora selecione Adicionar arquivo COCO e, em seguida, selecione Importar arquivo COCO de um projeto de Rotulagem de Dados do Azure ML. Isso importa os dados rotulados do Aprendizado de Máquina do Azure.

O arquivo COCO que você acabou de criar agora está armazenado no contêiner de Armazenamento do Azure vinculado a este projeto. Agora você pode importá-lo para o fluxo de trabalho de personalização do modelo. Selecione-o na lista suspensa. Depois que o arquivo COCO é importado para o conjunto de dados, o conjunto de dados pode ser usado para treinar um modelo.

Nota

Importar arquivos COCO de outro lugar

Se você tiver um arquivo COCO pronto que deseja importar, vá para a guia Conjuntos de dados e selecione Add COCO files to this dataset. Você pode optar por adicionar um arquivo COCO específico de uma conta de armazenamento de Blob ou importar do projeto de rotulagem do Aprendizado de Máquina do Azure.

Atualmente, a Microsoft está resolvendo um problema que faz com que a importação de arquivos COCO falhe com grandes conjuntos de dados quando iniciada no Vision Studio. Para treinar usando um conjunto de dados grande, é recomendável usar a API REST.

Escolha COCO

Sobre os arquivos COCO

Os arquivos COCO são arquivos JSON com campos obrigatórios específicos: "images", "annotations"e "categories". Um arquivo COCO de exemplo terá esta aparência:

{
 "images": [
   {
     "id": 1,
     "width": 500,
     "height": 828,
     "file_name": "0.jpg",
     "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/0.jpg"
   },
    {
      "id": 2,
      "width": 754,
      "height": 832,
      "file_name": "1.jpg",
      "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/1.jpg"
    },

   ...

  ],
  "annotations": [
    {
      "id": 1,
      "category_id": 7,
      "image_id": 1,
      "area": 0.407,
      "bbox": [
        0.02663142641129032,
        0.40691584277841153,
        0.9524163571731749,
        0.42766634515266866
      ]
    },
    {
      "id": 2,
      "category_id": 9,
      "image_id": 2,
      "area": 0.27,
      "bbox": [
        0.11803319477782331,
        0.41586723392402375,
        0.7765206955096307,
        0.3483334397217212
      ]
    },
    ...

  ],
  "categories": [
    {
      "id": 1,
      "name": "vegall original mixed vegetables"
    },
    {
      "id": 2,
      "name": "Amy's organic soups lentil vegetable"
    },
    {
      "id": 3,
      "name": "Arrowhead 8oz"
    },

    ...

  ]
}

Referência de campo do arquivo COCO

Se você estiver gerando seu próprio arquivo COCO do zero, certifique-se de que todos os campos obrigatórios estejam preenchidos com os detalhes corretos. As tabelas a seguir descrevem cada campo em um arquivo COCO:

"imagens"

Chave Tipo Description Necessária?
id integer ID de imagem único, a partir de 1 Sim
width integer Largura da imagem em pixels Sim
height integer Altura da imagem em pixels Sim
file_name string Um nome exclusivo para a imagem Sim
absolute_url ou coco_url string Caminho da imagem como um URI absoluto para um blob em um contêiner de blob. O recurso Visão deve ter permissão para ler os arquivos de anotação e todos os arquivos de imagem referenciados. Sim

O valor para absolute_url pode ser encontrado nas propriedades do seu contêiner de blob:

url absoluto

"anotações"

Chave Tipo Description Necessária?
id integer ID da anotação Sim
category_id integer ID da categoria definida na categories secção Sim
image_id integer ID da imagem Sim
area integer Valor de 'Largura' x 'Altura' (terceiro e quarto valores de bbox) Não
bbox lista[float] Coordenadas relativas da caixa delimitadora (0 a 1), na ordem de 'Esquerda', 'Topo', 'Largura', 'Altura' Sim

"categorias"

Chave Tipo Description Necessária?
id integer ID exclusivo para cada categoria (classe de rótulo). Estes devem estar presentes na annotations secção. Sim
name string Nome da categoria (classe do rótulo) Sim

Verificação de arquivos COCO

Você pode usar nosso código de exemplo Python para verificar o formato de um arquivo COCO.

Treinar o modelo personalizado

Para começar a treinar um modelo com seu arquivo COCO, vá para a guia Modelos personalizados e selecione Adicionar um novo modelo. Insira um nome para o modelo e selecione Image classification ou Object detection como o tipo de modelo.

Criar modelo personalizado

Selecione seu conjunto de dados, que agora está associado ao arquivo COCO que contém as informações de rotulagem.

Em seguida, selecione um orçamento de tempo e treine o modelo. Para pequenos exemplos, você pode usar um 1 hour orçamento.

Rever os detalhes da formação

Pode levar algum tempo para que o treinamento seja concluído. Os modelos de Análise de Imagem 4.0 podem ser precisos com apenas um pequeno conjunto de dados de treinamento, mas levam mais tempo para treinar do que os modelos anteriores.

Avaliar o modelo treinado

Após a conclusão do treinamento, você pode visualizar a avaliação de desempenho do modelo. As seguintes métricas são usadas:

  • Classificação da imagem: Precisão Média, Precisão Top 1, Precisão Top 5
  • Deteção de objetos: Precisão média @ 30, Precisão média @ 50, Precisão média @ 75

Se um conjunto de avaliação não for fornecido durante o treinamento do modelo, o desempenho relatado será estimado com base em parte do conjunto de treinamento. É altamente recomendável que você use um conjunto de dados de avaliação (usando o mesmo processo acima) para ter uma estimativa confiável do desempenho do seu modelo.

Captura de ecrã da avaliação

Testar modelo personalizado no Vision Studio

Depois de criar um modelo personalizado, você pode testar selecionando o botão Experimentar na tela de avaliação do modelo.

Captura de ecrã do ecrã de avaliação do modelo com o botão Experimentar delineado.

Isso leva você para a página Extrair tags comuns de imagens . Escolha seu modelo personalizado no menu suspenso e carregue uma imagem de teste.

Captura de tela do modelo de teste de costura no Vision Studio.

Os resultados da previsão aparecem na coluna da direita.

Próximos passos

Neste guia, você criou e treinou um modelo de classificação de imagem personalizado usando a Análise de Imagem. Em seguida, saiba mais sobre a API Analyze Image 4.0, para que você possa chamar seu modelo personalizado de um aplicativo usando REST ou SDKs de biblioteca.

  • Consulte o Guia de conceitos de personalização de modelo para obter uma ampla visão geral desse recurso e uma lista de perguntas frequentes.
  • Chame a API Analyze Image.